{
  "version": 3,
  "sources": ["../../../../node_modules/ws/lib/constants.js", "../../../../node_modules/ws/lib/buffer-util.js", "../../../../node_modules/ws/lib/limiter.js", "../../../../node_modules/ws/lib/permessage-deflate.js", "../../../../node_modules/ws/lib/validation.js", "../../../../node_modules/ws/lib/receiver.js", "../../../../node_modules/ws/lib/sender.js", "../../../../node_modules/ws/lib/event-target.js", "../../../../node_modules/ws/lib/extension.js", "../../../../node_modules/ws/lib/websocket.js", "../../../../node_modules/ws/lib/stream.js", "../../../../node_modules/ws/lib/subprotocol.js", "../../../../node_modules/ws/lib/websocket-server.js", "../../src/FIXServer.ts", "../../../fixparser-common/src/IAsyncMessageStore.ts", "../../../fixparser-common/src/MessageBuffer.ts", "../../../fixparser-common/src/uuidv4.ts", "../../../../node_modules/ws/wrapper.mjs", "../../src/FIXParser.ts", "../../src/spec/SpecEnums.ts", "../../src/enums/EnumType.ts", "../../src/enums/Enums.ts", "../../src/fields/Field.ts", "../../src/fieldtypes/Field.ts", "../../src/spec/MessageType.json", "../../src/messagetype/MessageType.ts", "../../src/spec/SpecFields.ts", "../../src/spec/SpecCategories.ts", "../../src/fields/categories/CategoryType.ts", "../../src/fields/categories/Categories.ts", "../../src/spec/SpecDatatypes.ts", "../../src/fields/datatypes/Datatypes.ts", "../../src/spec/SpecSections.ts", "../../src/fields/sections/SectionType.ts", "../../src/fields/sections/Sections.ts", "../../src/fields/Fields.ts", "../../../../node_modules/openpgp/dist/openpgp.mjs", "../../src/licensemanager/LicenseManagerUtils.ts", "../../src/licensemanager/LicenseManager.ts", "../../src/spec/SpecComponents.ts", "../../src/components/Components.ts", "../../src/fieldtypes/Message.ts", "../../src/spec/SpecGroups.ts", "../../src/groups/Groups.ts", "../../src/fieldtypes/AccountType.ts", "../../src/fieldtypes/AcctIDSource.ts", "../../src/fieldtypes/Adjustment.ts", "../../src/fieldtypes/AdjustmentType.ts", "../../src/fieldtypes/AdvSide.ts", "../../src/fieldtypes/AdvTransType.ts", "../../src/fieldtypes/AffirmStatus.ts", "../../src/fieldtypes/AggregatedBook.ts", "../../src/fieldtypes/AggressorIndicator.ts", "../../src/fieldtypes/AlgoCertificateReportStatus.ts", "../../src/fieldtypes/AlgoCertificateReportTransType.ts", "../../src/fieldtypes/AlgoCertificateReportType.ts", "../../src/fieldtypes/AlgoCertificateRequestStatus.ts", "../../src/fieldtypes/AlgoCertificateRequestTransType.ts", "../../src/fieldtypes/AlgoCertificateRequestType.ts", "../../src/fieldtypes/AlgoCertificateStatus.ts", "../../src/fieldtypes/AlgorithmicTradeIndicator.ts", "../../src/fieldtypes/AllocAccountType.ts", "../../src/fieldtypes/AllocationRollupInstruction.ts", "../../src/fieldtypes/AllocCancReplaceReason.ts", "../../src/fieldtypes/AllocGroupStatus.ts", "../../src/fieldtypes/AllocGroupSubQtyType.ts", "../../src/fieldtypes/AllocHandlInst.ts", "../../src/fieldtypes/AllocIntermedReqType.ts", "../../src/fieldtypes/AllocLinkType.ts", "../../src/fieldtypes/AllocMethod.ts", "../../src/fieldtypes/AllocNoOrdersType.ts", "../../src/fieldtypes/AllocPositionEffect.ts", "../../src/fieldtypes/AllocRejCode.ts", "../../src/fieldtypes/AllocReportType.ts", "../../src/fieldtypes/AllocRequestStatus.ts", "../../src/fieldtypes/AllocReversalStatus.ts", "../../src/fieldtypes/AllocSettlInstType.ts", "../../src/fieldtypes/AllocStatus.ts", "../../src/fieldtypes/AllocTransType.ts", "../../src/fieldtypes/AllocType.ts", "../../src/fieldtypes/ApplLevelRecoveryIndicator.ts", "../../src/fieldtypes/ApplQueueAction.ts", "../../src/fieldtypes/ApplQueueResolution.ts", "../../src/fieldtypes/ApplReportType.ts", "../../src/fieldtypes/ApplReqType.ts", "../../src/fieldtypes/ApplResponseError.ts", "../../src/fieldtypes/ApplResponseType.ts", "../../src/fieldtypes/ApplVerID.ts", "../../src/fieldtypes/AsOfIndicator.ts", "../../src/fieldtypes/AssetClass.ts", "../../src/fieldtypes/AssetGroup.ts", "../../src/fieldtypes/AssetSubClass.ts", "../../src/fieldtypes/AssetValuationModel.ts", "../../src/fieldtypes/AssignmentMethod.ts", "../../src/fieldtypes/AttachmentEncodingType.ts", "../../src/fieldtypes/AuctionInstruction.ts", "../../src/fieldtypes/AuctionType.ts", "../../src/fieldtypes/AveragePriceType.ts", "../../src/fieldtypes/AvgPxIndicator.ts", "../../src/fieldtypes/BasisPxType.ts", "../../src/fieldtypes/BatchProcessMode.ts", "../../src/fieldtypes/BeginString.ts", "../../src/fieldtypes/Benchmark.ts", "../../src/fieldtypes/BenchmarkCurveName.ts", "../../src/fieldtypes/BidDescriptorType.ts", "../../src/fieldtypes/BidRequestTransType.ts", "../../src/fieldtypes/BidTradeType.ts", "../../src/fieldtypes/BidType.ts", "../../src/fieldtypes/BlockTrdAllocIndicator.ts", "../../src/fieldtypes/BookingType.ts", "../../src/fieldtypes/BookingUnit.ts", "../../src/fieldtypes/BusinessDayConvention.ts", "../../src/fieldtypes/BusinessRejectReason.ts", "../../src/fieldtypes/CalculationMethod.ts", "../../src/fieldtypes/CancellationRights.ts", "../../src/fieldtypes/CashMargin.ts", "../../src/fieldtypes/CashSettlPriceDefault.ts", "../../src/fieldtypes/CashSettlQuoteMethod.ts", "../../src/fieldtypes/CashSettlValuationMethod.ts", "../../src/fieldtypes/ClearedIndicator.ts", "../../src/fieldtypes/ClearingAccountType.ts", "../../src/fieldtypes/ClearingFeeIndicator.ts", "../../src/fieldtypes/ClearingInstruction.ts", "../../src/fieldtypes/ClearingIntention.ts", "../../src/fieldtypes/ClearingRequirementException.ts", "../../src/fieldtypes/CollAction.ts", "../../src/fieldtypes/CollApplType.ts", "../../src/fieldtypes/CollAsgnReason.ts", "../../src/fieldtypes/CollAsgnRejectReason.ts", "../../src/fieldtypes/CollAsgnRespType.ts", "../../src/fieldtypes/CollAsgnTransType.ts", "../../src/fieldtypes/CollateralAmountType.ts", "../../src/fieldtypes/CollateralReinvestmentType.ts", "../../src/fieldtypes/CollInquiryQualifier.ts", "../../src/fieldtypes/CollInquiryResult.ts", "../../src/fieldtypes/CollInquiryStatus.ts", "../../src/fieldtypes/CollRptRejectReason.ts", "../../src/fieldtypes/CollRptStatus.ts", "../../src/fieldtypes/CollStatus.ts", "../../src/fieldtypes/CommissionAmountSubType.ts", "../../src/fieldtypes/CommissionAmountType.ts", "../../src/fieldtypes/CommodityFinalPriceType.ts", "../../src/fieldtypes/CommType.ts", "../../src/fieldtypes/ComplexEventCondition.ts", "../../src/fieldtypes/ComplexEventCreditEventNotifyingParty.ts", "../../src/fieldtypes/ComplexEventDateOffsetDayType.ts", "../../src/fieldtypes/ComplexEventPeriodType.ts", "../../src/fieldtypes/ComplexEventPriceBoundaryMethod.ts", "../../src/fieldtypes/ComplexEventPriceTimeType.ts", "../../src/fieldtypes/ComplexEventPVFinalPriceElectionFallback.ts", "../../src/fieldtypes/ComplexEventQuoteBasis.ts", "../../src/fieldtypes/ComplexEventType.ts", "../../src/fieldtypes/ComplexOptPayoutTime.ts", "../../src/fieldtypes/ConfirmationMethod.ts", "../../src/fieldtypes/ConfirmRejReason.ts", "../../src/fieldtypes/ConfirmStatus.ts", "../../src/fieldtypes/ConfirmTransType.ts", "../../src/fieldtypes/ConfirmType.ts", "../../src/fieldtypes/ContAmtType.ts", "../../src/fieldtypes/ContingencyType.ts", "../../src/fieldtypes/ContractMultiplierUnit.ts", "../../src/fieldtypes/ContractRefPosType.ts", "../../src/fieldtypes/CorporateAction.ts", "../../src/fieldtypes/CouponDayCount.ts", "../../src/fieldtypes/CouponFrequencyUnit.ts", "../../src/fieldtypes/CouponType.ts", "../../src/fieldtypes/CoveredOrUncovered.ts", "../../src/fieldtypes/CPProgram.ts", "../../src/fieldtypes/CrossedIndicator.ts", "../../src/fieldtypes/CrossPrioritization.ts", "../../src/fieldtypes/CrossType.ts", "../../src/fieldtypes/CurrencyCodeSource.ts", "../../src/fieldtypes/CustOrderCapacity.ts", "../../src/fieldtypes/CustOrderHandlingInst.ts", "../../src/fieldtypes/CustomerOrFirm.ts", "../../src/fieldtypes/CustomerPriority.ts", "../../src/fieldtypes/CxlRejReason.ts", "../../src/fieldtypes/CxlRejResponseTo.ts", "../../src/fieldtypes/DateRollConvention.ts", "../../src/fieldtypes/DayBookingInst.ts", "../../src/fieldtypes/DealingCapacity.ts", "../../src/fieldtypes/DeleteReason.ts", "../../src/fieldtypes/DeliveryForm.ts", "../../src/fieldtypes/DeliveryScheduleSettlDay.ts", "../../src/fieldtypes/DeliveryScheduleSettlFlowType.ts", "../../src/fieldtypes/DeliveryScheduleSettlHolidaysProcessingInstruction.ts", "../../src/fieldtypes/DeliveryScheduleSettlTimeType.ts", "../../src/fieldtypes/DeliveryScheduleToleranceType.ts", "../../src/fieldtypes/DeliveryScheduleType.ts", "../../src/fieldtypes/DeliveryStreamDeliveryPointSource.ts", "../../src/fieldtypes/DeliveryStreamDeliveryRestriction.ts", "../../src/fieldtypes/DeliveryStreamElectingPartySide.ts", "../../src/fieldtypes/DeliveryStreamTitleTransferCondition.ts", "../../src/fieldtypes/DeliveryStreamToleranceOptionSide.ts", "../../src/fieldtypes/DeliveryStreamType.ts", "../../src/fieldtypes/DeliveryType.ts", "../../src/fieldtypes/DeskType.ts", "../../src/fieldtypes/DeskTypeSource.ts", "../../src/fieldtypes/DisclosureInstruction.ts", "../../src/fieldtypes/DisclosureType.ts", "../../src/fieldtypes/DiscretionInst.ts", "../../src/fieldtypes/DiscretionLimitType.ts", "../../src/fieldtypes/DiscretionMoveType.ts", "../../src/fieldtypes/DiscretionOffsetType.ts", "../../src/fieldtypes/DiscretionRoundDirection.ts", "../../src/fieldtypes/DiscretionScope.ts", "../../src/fieldtypes/DisplayMethod.ts", "../../src/fieldtypes/DisplayWhen.ts", "../../src/fieldtypes/DistribPaymentMethod.ts", "../../src/fieldtypes/DividendAmountType.ts", "../../src/fieldtypes/DividendComposition.ts", "../../src/fieldtypes/DividendEntitlementEvent.ts", "../../src/fieldtypes/DKReason.ts", "../../src/fieldtypes/DlvyInstType.ts", "../../src/fieldtypes/DueToRelated.ts", "../../src/fieldtypes/DuplicateClOrdIDIndicator.ts", "../../src/fieldtypes/EmailType.ts", "../../src/fieldtypes/EncryptMethod.ts", "../../src/fieldtypes/EntitlementAttribDatatype.ts", "../../src/fieldtypes/EntitlementRequestResult.ts", "../../src/fieldtypes/EntitlementStatus.ts", "../../src/fieldtypes/EntitlementSubType.ts", "../../src/fieldtypes/EntitlementType.ts", "../../src/fieldtypes/EventInitiatorType.ts", "../../src/fieldtypes/EventTimeUnit.ts", "../../src/fieldtypes/EventType.ts", "../../src/fieldtypes/ExchangeForPhysical.ts", "../../src/fieldtypes/ExDestinationIDSource.ts", "../../src/fieldtypes/ExDestinationType.ts", "../../src/fieldtypes/ExecAckStatus.ts", "../../src/fieldtypes/ExecInst.ts", "../../src/fieldtypes/ExecMethod.ts", "../../src/fieldtypes/ExecPriceType.ts", "../../src/fieldtypes/ExecRestatementReason.ts", "../../src/fieldtypes/ExecTransType.ts", "../../src/fieldtypes/ExecType.ts", "../../src/fieldtypes/ExecTypeReason.ts", "../../src/fieldtypes/ExerciseConfirmationMethod.ts", "../../src/fieldtypes/ExerciseMethod.ts", "../../src/fieldtypes/ExerciseStyle.ts", "../../src/fieldtypes/ExpirationCycle.ts", "../../src/fieldtypes/ExpirationQtyType.ts", "../../src/fieldtypes/ExtraordinaryEventAdjustmentMethod.ts", "../../src/fieldtypes/FinancialStatus.ts", "../../src/fieldtypes/FlowScheduleType.ts", "../../src/fieldtypes/ForexReq.ts", "../../src/fieldtypes/FundingSource.ts", "../../src/fieldtypes/FundRenewWaiv.ts", "../../src/fieldtypes/FXBenchmark.ts", "../../src/fieldtypes/GapFillFlag.ts", "../../src/fieldtypes/GTBookingInst.ts", "../../src/fieldtypes/HaltReason.ts", "../../src/fieldtypes/HandlInst.ts", "../../src/fieldtypes/IDSource.ts", "../../src/fieldtypes/ImpliedMarketIndicator.ts", "../../src/fieldtypes/IncTaxInd.ts", "../../src/fieldtypes/IndividualAllocType.ts", "../../src/fieldtypes/InstrAttribType.ts", "../../src/fieldtypes/InstrmtAssignmentMethod.ts", "../../src/fieldtypes/InstrumentScopeOperator.ts", "../../src/fieldtypes/InTheMoneyCondition.ts", "../../src/fieldtypes/InViewOfCommon.ts", "../../src/fieldtypes/IOINaturalFlag.ts", "../../src/fieldtypes/IOIQltyInd.ts", "../../src/fieldtypes/IOIQty.ts", "../../src/fieldtypes/IOIQualifier.ts", "../../src/fieldtypes/IOIShares.ts", "../../src/fieldtypes/IOITransType.ts", "../../src/fieldtypes/IRSDirection.ts", "../../src/fieldtypes/LastCapacity.ts", "../../src/fieldtypes/LastFragment.ts", "../../src/fieldtypes/LastLiquidityInd.ts", "../../src/fieldtypes/LastRptRequested.ts", "../../src/fieldtypes/LegalConfirm.ts", "../../src/fieldtypes/LegSwapType.ts", "../../src/fieldtypes/LienSeniority.ts", "../../src/fieldtypes/LimitAmtType.ts", "../../src/fieldtypes/LiquidityIndType.ts", "../../src/fieldtypes/ListExecInstType.ts", "../../src/fieldtypes/ListMethod.ts", "../../src/fieldtypes/ListOrderStatus.ts", "../../src/fieldtypes/ListRejectReason.ts", "../../src/fieldtypes/ListStatusType.ts", "../../src/fieldtypes/ListUpdateAction.ts", "../../src/fieldtypes/LoanFacility.ts", "../../src/fieldtypes/LocateReqd.ts", "../../src/fieldtypes/LockType.ts", "../../src/fieldtypes/LotType.ts", "../../src/fieldtypes/MarginAmtType.ts", "../../src/fieldtypes/MarginDirection.ts", "../../src/fieldtypes/MarginReqmtInqQualifier.ts", "../../src/fieldtypes/MarginReqmtInqResult.ts", "../../src/fieldtypes/MarginReqmtRptType.ts", "../../src/fieldtypes/MarketCondition.ts", "../../src/fieldtypes/MarketDisruptionFallbackProvision.ts", "../../src/fieldtypes/MarketDisruptionFallbackUnderlierType.ts", "../../src/fieldtypes/MarketDisruptionProvision.ts", "../../src/fieldtypes/MarketMakerActivity.ts", "../../src/fieldtypes/MarketSegmentRelationship.ts", "../../src/fieldtypes/MarketSegmentStatus.ts", "../../src/fieldtypes/MarketSegmentSubType.ts", "../../src/fieldtypes/MarketSegmentType.ts", "../../src/fieldtypes/MassActionReason.ts", "../../src/fieldtypes/MassActionRejectReason.ts", "../../src/fieldtypes/MassActionResponse.ts", "../../src/fieldtypes/MassActionScope.ts", "../../src/fieldtypes/MassActionType.ts", "../../src/fieldtypes/MassCancelRejectReason.ts", "../../src/fieldtypes/MassCancelRequestType.ts", "../../src/fieldtypes/MassCancelResponse.ts", "../../src/fieldtypes/MassOrderRequestResult.ts", "../../src/fieldtypes/MassOrderRequestStatus.ts", "../../src/fieldtypes/MassStatusReqType.ts", "../../src/fieldtypes/MatchExceptionElementType.ts", "../../src/fieldtypes/MatchExceptionToleranceValueType.ts", "../../src/fieldtypes/MatchExceptionType.ts", "../../src/fieldtypes/MatchInst.ts", "../../src/fieldtypes/MatchingDataPointIndicator.ts", "../../src/fieldtypes/MatchStatus.ts", "../../src/fieldtypes/MatchType.ts", "../../src/fieldtypes/MaturityMonthYearFormat.ts", "../../src/fieldtypes/MaturityMonthYearIncrementUnits.ts", "../../src/fieldtypes/MDBookType.ts", "../../src/fieldtypes/MDEntryStatus.ts", "../../src/fieldtypes/MDEntryType.ts", "../../src/fieldtypes/MDImplicitDelete.ts", "../../src/fieldtypes/MDOriginType.ts", "../../src/fieldtypes/MDQualityIndicator.ts", "../../src/fieldtypes/MDReportEvent.ts", "../../src/fieldtypes/MDReqRejReason.ts", "../../src/fieldtypes/MDSecSizeType.ts", "../../src/fieldtypes/MDStatisticIntervalType.ts", "../../src/fieldtypes/MDStatisticRatioType.ts", "../../src/fieldtypes/MDStatisticRequestResult.ts", "../../src/fieldtypes/MDStatisticScope.ts", "../../src/fieldtypes/MDStatisticScopeType.ts", "../../src/fieldtypes/MDStatisticStatus.ts", "../../src/fieldtypes/MDStatisticSubScope.ts", "../../src/fieldtypes/MDStatisticType.ts", "../../src/fieldtypes/MDStatisticValueType.ts", "../../src/fieldtypes/MDUpdateAction.ts", "../../src/fieldtypes/MDUpdateType.ts", "../../src/fieldtypes/MDValueTier.ts", "../../src/fieldtypes/MessageEncoding.ts", "../../src/fieldtypes/MetricsCalculationPriceSource.ts", "../../src/fieldtypes/MinQtyMethod.ts", "../../src/fieldtypes/MiscFeeBasis.ts", "../../src/fieldtypes/MiscFeeQualifier.ts", "../../src/fieldtypes/MiscFeeType.ts", "../../src/fieldtypes/ModelType.ts", "../../src/fieldtypes/MoneyLaunderingStatus.ts", "../../src/fieldtypes/MsgDirection.ts", "../../src/fieldtypes/MsgType.ts", "../../src/fieldtypes/MultiJurisdictionReportingIndicator.ts", "../../src/fieldtypes/MultiLegReportingType.ts", "../../src/fieldtypes/MultiLegRptTypeReq.ts", "../../src/fieldtypes/MultilegModel.ts", "../../src/fieldtypes/MultilegPriceMethod.ts", "../../src/fieldtypes/NBBOEntryType.ts", "../../src/fieldtypes/NBBOSource.ts", "../../src/fieldtypes/NegotiationMethod.ts", "../../src/fieldtypes/NetGrossInd.ts", "../../src/fieldtypes/NetworkRequestType.ts", "../../src/fieldtypes/NetworkStatusResponseType.ts", "../../src/fieldtypes/NewsCategory.ts", "../../src/fieldtypes/NewsRefType.ts", "../../src/fieldtypes/NonCashDividendTreatment.ts", "../../src/fieldtypes/NonDeliverableFixingDateType.ts", "../../src/fieldtypes/NoSides.ts", "../../src/fieldtypes/NotAffectedReason.ts", "../../src/fieldtypes/NotifyBrokerOfCredit.ts", "../../src/fieldtypes/ObligationType.ts", "../../src/fieldtypes/OddLot.ts", "../../src/fieldtypes/OffsetInstruction.ts", "../../src/fieldtypes/OffshoreIndicator.ts", "../../src/fieldtypes/OpenClose.ts", "../../src/fieldtypes/OpenCloseSettleFlag.ts", "../../src/fieldtypes/OpenCloseSettlFlag.ts", "../../src/fieldtypes/OptionExerciseDateType.ts", "../../src/fieldtypes/OptPayoutType.ts", "../../src/fieldtypes/OrderAttributeType.ts", "../../src/fieldtypes/OrderCapacity.ts", "../../src/fieldtypes/OrderCategory.ts", "../../src/fieldtypes/OrderDelayUnit.ts", "../../src/fieldtypes/OrderEntryAction.ts", "../../src/fieldtypes/OrderEventReason.ts", "../../src/fieldtypes/OrderEventType.ts", "../../src/fieldtypes/OrderHandlingInstSource.ts", "../../src/fieldtypes/OrderOrigination.ts", "../../src/fieldtypes/OrderOwnershipIndicator.ts", "../../src/fieldtypes/OrderRelationship.ts", "../../src/fieldtypes/OrderResponseLevel.ts", "../../src/fieldtypes/OrderRestrictions.ts", "../../src/fieldtypes/OrdRejReason.ts", "../../src/fieldtypes/OrdStatus.ts", "../../src/fieldtypes/OrdType.ts", "../../src/fieldtypes/OrigCustOrderCapacity.ts", "../../src/fieldtypes/OwnershipType.ts", "../../src/fieldtypes/OwnerType.ts", "../../src/fieldtypes/PartyActionRejectReason.ts", "../../src/fieldtypes/PartyActionResponse.ts", "../../src/fieldtypes/PartyActionType.ts", "../../src/fieldtypes/PartyDetailDefinitionStatus.ts", "../../src/fieldtypes/PartyDetailRequestResult.ts", "../../src/fieldtypes/PartyDetailRequestStatus.ts", "../../src/fieldtypes/PartyDetailRoleQualifier.ts", "../../src/fieldtypes/PartyDetailStatus.ts", "../../src/fieldtypes/PartyIDSource.ts", "../../src/fieldtypes/PartyRelationship.ts", "../../src/fieldtypes/PartyRiskLimitStatus.ts", "../../src/fieldtypes/PartyRole.ts", "../../src/fieldtypes/PartySubIDType.ts", "../../src/fieldtypes/PaymentDateOffsetDayType.ts", "../../src/fieldtypes/PaymentForwardStartType.ts", "../../src/fieldtypes/PaymentMethod.ts", "../../src/fieldtypes/PaymentPaySide.ts", "../../src/fieldtypes/PaymentScheduleStepRelativeTo.ts", "../../src/fieldtypes/PaymentScheduleType.ts", "../../src/fieldtypes/PaymentSettlStyle.ts", "../../src/fieldtypes/PaymentStreamAveragingMethod.ts", "../../src/fieldtypes/PaymentStreamCapRateBuySide.ts", "../../src/fieldtypes/PaymentStreamCompoundingMethod.ts", "../../src/fieldtypes/PaymentStreamDiscountType.ts", "../../src/fieldtypes/PaymentStreamFloorRateBuySide.ts", "../../src/fieldtypes/PaymentStreamFRADiscounting.ts", "../../src/fieldtypes/PaymentStreamInflationInterpolationMethod.ts", "../../src/fieldtypes/PaymentStreamInflationLagDayType.ts", "../../src/fieldtypes/PaymentStreamInflationLagUnit.ts", "../../src/fieldtypes/PaymentStreamInterpolationPeriod.ts", "../../src/fieldtypes/PaymentStreamLinkStrikePriceType.ts", "../../src/fieldtypes/PaymentStreamNegativeRateTreatment.ts", "../../src/fieldtypes/PaymentStreamPaymentDateOffsetDayType.ts", "../../src/fieldtypes/PaymentStreamPaymentDateOffsetUnit.ts", "../../src/fieldtypes/PaymentStreamPaymentFrequencyUnit.ts", "../../src/fieldtypes/PaymentStreamPricingDayDistribution.ts", "../../src/fieldtypes/PaymentStreamPricingDayOfWeek.ts", "../../src/fieldtypes/PaymentStreamRateIndexCurveUnit.ts", "../../src/fieldtypes/PaymentStreamRateIndexSource.ts", "../../src/fieldtypes/PaymentStreamRateSpreadPositionType.ts", "../../src/fieldtypes/PaymentStreamRateSpreadType.ts", "../../src/fieldtypes/PaymentStreamRateTreatment.ts", "../../src/fieldtypes/PaymentStreamRealizedVarianceMethod.ts", "../../src/fieldtypes/PaymentStreamResetWeeklyRollConvention.ts", "../../src/fieldtypes/PaymentStreamSettlLevel.ts", "../../src/fieldtypes/PaymentStreamType.ts", "../../src/fieldtypes/PaymentStubLength.ts", "../../src/fieldtypes/PaymentStubType.ts", "../../src/fieldtypes/PaymentSubType.ts", "../../src/fieldtypes/PaymentType.ts", "../../src/fieldtypes/PayReportStatus.ts", "../../src/fieldtypes/PayReportTransType.ts", "../../src/fieldtypes/PayRequestStatus.ts", "../../src/fieldtypes/PayRequestTransType.ts", "../../src/fieldtypes/PegLimitType.ts", "../../src/fieldtypes/PegMoveType.ts", "../../src/fieldtypes/PegOffsetType.ts", "../../src/fieldtypes/PegPriceType.ts", "../../src/fieldtypes/PegRoundDirection.ts", "../../src/fieldtypes/PegScope.ts", "../../src/fieldtypes/PosAmtReason.ts", "../../src/fieldtypes/PosAmtType.ts", "../../src/fieldtypes/PositionCapacity.ts", "../../src/fieldtypes/PositionEffect.ts", "../../src/fieldtypes/PosMaintAction.ts", "../../src/fieldtypes/PosMaintResult.ts", "../../src/fieldtypes/PosMaintStatus.ts", "../../src/fieldtypes/PosQtyStatus.ts", "../../src/fieldtypes/PosReqResult.ts", "../../src/fieldtypes/PosReqStatus.ts", "../../src/fieldtypes/PosReqType.ts", "../../src/fieldtypes/PossDupFlag.ts", "../../src/fieldtypes/PossResend.ts", "../../src/fieldtypes/PosTransType.ts", "../../src/fieldtypes/PosType.ts", "../../src/fieldtypes/PostTradePaymentDebitOrCredit.ts", "../../src/fieldtypes/PostTradePaymentStatus.ts", "../../src/fieldtypes/PreallocMethod.ts", "../../src/fieldtypes/PreviouslyReported.ts", "../../src/fieldtypes/PriceLimitType.ts", "../../src/fieldtypes/PriceMovementType.ts", "../../src/fieldtypes/PriceProtectionScope.ts", "../../src/fieldtypes/PriceQualifier.ts", "../../src/fieldtypes/PriceQuoteMethod.ts", "../../src/fieldtypes/PriceType.ts", "../../src/fieldtypes/PriorityIndicator.ts", "../../src/fieldtypes/PrivateQuote.ts", "../../src/fieldtypes/ProcessCode.ts", "../../src/fieldtypes/Product.ts", "../../src/fieldtypes/ProgRptReqs.ts", "../../src/fieldtypes/ProtectionTermEventDayType.ts", "../../src/fieldtypes/ProtectionTermEventQualifier.ts", "../../src/fieldtypes/ProtectionTermEventUnit.ts", "../../src/fieldtypes/ProvisionBreakFeeElection.ts", "../../src/fieldtypes/ProvisionCalculationAgent.ts", "../../src/fieldtypes/ProvisionCashSettlMethod.ts", "../../src/fieldtypes/ProvisionCashSettlPaymentDateType.ts", "../../src/fieldtypes/ProvisionCashSettlQuoteType.ts", "../../src/fieldtypes/ProvisionDateTenorUnit.ts", "../../src/fieldtypes/ProvisionOptionExerciseEarliestDateOffsetUnit.ts", "../../src/fieldtypes/ProvisionOptionExerciseFixedDateType.ts", "../../src/fieldtypes/ProvisionOptionSinglePartyBuyerSide.ts", "../../src/fieldtypes/ProvisionType.ts", "../../src/fieldtypes/PublishTrdIndicator.ts", "../../src/fieldtypes/PutOrCall.ts", "../../src/fieldtypes/QtyType.ts", "../../src/fieldtypes/QuoteAckStatus.ts", "../../src/fieldtypes/QuoteAttributeType.ts", "../../src/fieldtypes/QuoteCancelType.ts", "../../src/fieldtypes/QuoteCondition.ts", "../../src/fieldtypes/QuoteEntryRejectReason.ts", "../../src/fieldtypes/QuoteEntryStatus.ts", "../../src/fieldtypes/QuoteModelType.ts", "../../src/fieldtypes/QuotePriceType.ts", "../../src/fieldtypes/QuoteRejectReason.ts", "../../src/fieldtypes/QuoteRequestRejectReason.ts", "../../src/fieldtypes/QuoteRequestType.ts", "../../src/fieldtypes/QuoteResponseLevel.ts", "../../src/fieldtypes/QuoteRespType.ts", "../../src/fieldtypes/QuoteSideIndicator.ts", "../../src/fieldtypes/QuoteStatus.ts", "../../src/fieldtypes/QuoteType.ts", "../../src/fieldtypes/RateSource.ts", "../../src/fieldtypes/RateSourceType.ts", "../../src/fieldtypes/ReferenceDataDateType.ts", "../../src/fieldtypes/ReferenceEntityType.ts", "../../src/fieldtypes/RefOrderIDSource.ts", "../../src/fieldtypes/RefOrdIDReason.ts", "../../src/fieldtypes/RefRiskLimitCheckIDType.ts", "../../src/fieldtypes/RegistRejReasonCode.ts", "../../src/fieldtypes/RegistStatus.ts", "../../src/fieldtypes/RegistTransType.ts", "../../src/fieldtypes/RegulatoryReportType.ts", "../../src/fieldtypes/RegulatoryTradeIDEvent.ts", "../../src/fieldtypes/RegulatoryTradeIDScope.ts", "../../src/fieldtypes/RegulatoryTradeIDSource.ts", "../../src/fieldtypes/RegulatoryTradeIDType.ts", "../../src/fieldtypes/RegulatoryTransactionType.ts", "../../src/fieldtypes/RelatedInstrumentType.ts", "../../src/fieldtypes/RelatedOrderIDSource.ts", "../../src/fieldtypes/RelatedPositionIDSource.ts", "../../src/fieldtypes/RelatedPriceSource.ts", "../../src/fieldtypes/RelatedTradeIDSource.ts", "../../src/fieldtypes/RelativeValueSide.ts", "../../src/fieldtypes/RelativeValueType.ts", "../../src/fieldtypes/ReleaseInstruction.ts", "../../src/fieldtypes/RemunerationIndicator.ts", "../../src/fieldtypes/ReportStatus.ts", "../../src/fieldtypes/ReportToExch.ts", "../../src/fieldtypes/RequestResult.ts", "../../src/fieldtypes/ResetSeqNumFlag.ts", "../../src/fieldtypes/RespondentType.ts", "../../src/fieldtypes/ResponseTransportType.ts", "../../src/fieldtypes/RestructuringType.ts", "../../src/fieldtypes/ReturnRateDateMode.ts", "../../src/fieldtypes/ReturnRatePriceBasis.ts", "../../src/fieldtypes/ReturnRatePriceSequence.ts", "../../src/fieldtypes/ReturnRatePriceType.ts", "../../src/fieldtypes/ReturnRateQuoteTimeType.ts", "../../src/fieldtypes/ReturnRateValuationPriceOption.ts", "../../src/fieldtypes/ReturnTrigger.ts", "../../src/fieldtypes/RiskLimitAction.ts", "../../src/fieldtypes/RiskLimitCheckModelType.ts", "../../src/fieldtypes/RiskLimitCheckRequestResult.ts", "../../src/fieldtypes/RiskLimitCheckRequestStatus.ts", "../../src/fieldtypes/RiskLimitCheckRequestType.ts", "../../src/fieldtypes/RiskLimitCheckStatus.ts", "../../src/fieldtypes/RiskLimitCheckTransType.ts", "../../src/fieldtypes/RiskLimitCheckType.ts", "../../src/fieldtypes/RiskLimitReportRejectReason.ts", "../../src/fieldtypes/RiskLimitReportStatus.ts", "../../src/fieldtypes/RiskLimitRequestResult.ts", "../../src/fieldtypes/RiskLimitRequestType.ts", "../../src/fieldtypes/RiskLimitType.ts", "../../src/fieldtypes/RoundingDirection.ts", "../../src/fieldtypes/RoutingArrangementIndicator.ts", "../../src/fieldtypes/RoutingType.ts", "../../src/fieldtypes/Rule80A.ts", "../../src/fieldtypes/Scope.ts", "../../src/fieldtypes/SecurityClassificationReason.ts", "../../src/fieldtypes/SecurityIDSource.ts", "../../src/fieldtypes/SecurityListRequestType.ts", "../../src/fieldtypes/SecurityListType.ts", "../../src/fieldtypes/SecurityListTypeSource.ts", "../../src/fieldtypes/SecurityRejectReason.ts", "../../src/fieldtypes/SecurityRequestResult.ts", "../../src/fieldtypes/SecurityRequestType.ts", "../../src/fieldtypes/SecurityResponseType.ts", "../../src/fieldtypes/SecurityStatus.ts", "../../src/fieldtypes/SecurityTradingEvent.ts", "../../src/fieldtypes/SecurityTradingStatus.ts", "../../src/fieldtypes/SecurityType.ts", "../../src/fieldtypes/SecurityUpdateAction.ts", "../../src/fieldtypes/SelfMatchPreventionInstruction.ts", "../../src/fieldtypes/Seniority.ts", "../../src/fieldtypes/SessionRejectReason.ts", "../../src/fieldtypes/SessionStatus.ts", "../../src/fieldtypes/SettlCurrFxRateCalc.ts", "../../src/fieldtypes/SettlDeliveryType.ts", "../../src/fieldtypes/SettlDisruptionProvision.ts", "../../src/fieldtypes/SettlInstMode.ts", "../../src/fieldtypes/SettlInstReqRejCode.ts", "../../src/fieldtypes/SettlInstSource.ts", "../../src/fieldtypes/SettlInstTransType.ts", "../../src/fieldtypes/SettlLocation.ts", "../../src/fieldtypes/SettlMethod.ts", "../../src/fieldtypes/SettlmntTyp.ts", "../../src/fieldtypes/SettlObligMode.ts", "../../src/fieldtypes/SettlObligSource.ts", "../../src/fieldtypes/SettlObligTransType.ts", "../../src/fieldtypes/SettlPriceDeterminationMethod.ts", "../../src/fieldtypes/SettlPriceType.ts", "../../src/fieldtypes/SettlSessID.ts", "../../src/fieldtypes/SettlStatusReportStatus.ts", "../../src/fieldtypes/SettlStatusRequestStatus.ts", "../../src/fieldtypes/SettlSubMethod.ts", "../../src/fieldtypes/SettlType.ts", "../../src/fieldtypes/ShortSaleExemptionReason.ts", "../../src/fieldtypes/ShortSaleReason.ts", "../../src/fieldtypes/ShortSaleRestriction.ts", "../../src/fieldtypes/Side.ts", "../../src/fieldtypes/SideClearingTradePriceType.ts", "../../src/fieldtypes/SideMultiLegReportingType.ts", "../../src/fieldtypes/SideValueInd.ts", "../../src/fieldtypes/SingleQuoteIndicator.ts", "../../src/fieldtypes/SolicitedFlag.ts", "../../src/fieldtypes/StandInstDbType.ts", "../../src/fieldtypes/StatsType.ts", "../../src/fieldtypes/StatusValue.ts", "../../src/fieldtypes/StipulationType.ts", "../../src/fieldtypes/StrategyParameterType.ts", "../../src/fieldtypes/StrategyType.ts", "../../src/fieldtypes/StreamAsgnAckType.ts", "../../src/fieldtypes/StreamAsgnRejReason.ts", "../../src/fieldtypes/StreamAsgnReqType.ts", "../../src/fieldtypes/StreamAsgnType.ts", "../../src/fieldtypes/StreamCommodityDataSourceIDType.ts", "../../src/fieldtypes/StreamCommodityNearbySettlDayUnit.ts", "../../src/fieldtypes/StreamCommoditySettlDateRollUnit.ts", "../../src/fieldtypes/StreamNotionalAdjustments.ts", "../../src/fieldtypes/StreamNotionalCommodityFrequency.ts", "../../src/fieldtypes/StreamType.ts", "../../src/fieldtypes/StrikeIndexQuote.ts", "../../src/fieldtypes/StrikePriceBoundaryMethod.ts", "../../src/fieldtypes/StrikePriceDeterminationMethod.ts", "../../src/fieldtypes/SubscriptionRequestType.ts", "../../src/fieldtypes/SwapClass.ts", "../../src/fieldtypes/SwapSubClass.ts", "../../src/fieldtypes/SymbolSfx.ts", "../../src/fieldtypes/TargetStrategy.ts", "../../src/fieldtypes/TaxAdvantageType.ts", "../../src/fieldtypes/TaxonomyType.ts", "../../src/fieldtypes/TerminationType.ts", "../../src/fieldtypes/TestActionRequestStatus.ts", "../../src/fieldtypes/TestActionType.ts", "../../src/fieldtypes/TestGatewayDetailType.ts", "../../src/fieldtypes/TestMessageIndicator.ts", "../../src/fieldtypes/TestSuiteActivityState.ts", "../../src/fieldtypes/TestSuiteRequestStatus.ts", "../../src/fieldtypes/TestSuiteRequestTransType.ts", "../../src/fieldtypes/TestSuiteStatus.ts", "../../src/fieldtypes/TestThresholdType.ts", "../../src/fieldtypes/ThrottleAction.ts", "../../src/fieldtypes/ThrottleCountIndicator.ts", "../../src/fieldtypes/ThrottleInst.ts", "../../src/fieldtypes/ThrottleStatus.ts", "../../src/fieldtypes/ThrottleType.ts", "../../src/fieldtypes/TickDirection.ts", "../../src/fieldtypes/TickRuleType.ts", "../../src/fieldtypes/TimeInForce.ts", "../../src/fieldtypes/TimeUnit.ts", "../../src/fieldtypes/TradeAggregationRejectReason.ts", "../../src/fieldtypes/TradeAggregationRequestStatus.ts", "../../src/fieldtypes/TradeAggregationTransType.ts", "../../src/fieldtypes/TradeAllocGroupInstruction.ts", "../../src/fieldtypes/TradeAllocIndicator.ts", "../../src/fieldtypes/TradeAllocStatus.ts", "../../src/fieldtypes/TradeCollateralization.ts", "../../src/fieldtypes/TradeCondition.ts", "../../src/fieldtypes/TradeContingency.ts", "../../src/fieldtypes/TradeContinuation.ts", "../../src/fieldtypes/TradedFlatSwitch.ts", "../../src/fieldtypes/TradeHandlingInstr.ts", "../../src/fieldtypes/TradeMatchAckStatus.ts", "../../src/fieldtypes/TradeMatchRejectReason.ts", "../../src/fieldtypes/TradePriceCondition.ts", "../../src/fieldtypes/TradePriceNegotiationMethod.ts", "../../src/fieldtypes/TradePublishIndicator.ts", "../../src/fieldtypes/TradeQtyType.ts", "../../src/fieldtypes/TradeReportingIndicator.ts", "../../src/fieldtypes/TradeReportRejectReason.ts", "../../src/fieldtypes/TradeReportTransType.ts", "../../src/fieldtypes/TradeReportType.ts", "../../src/fieldtypes/TradeRequestResult.ts", "../../src/fieldtypes/TradeRequestStatus.ts", "../../src/fieldtypes/TradeRequestType.ts", "../../src/fieldtypes/TradeType.ts", "../../src/fieldtypes/TradeVolType.ts", "../../src/fieldtypes/TradingCapacity.ts", "../../src/fieldtypes/TradingSessionID.ts", "../../src/fieldtypes/TradingSessionSubID.ts", "../../src/fieldtypes/TradSesControl.ts", "../../src/fieldtypes/TradSesEvent.ts", "../../src/fieldtypes/TradSesMethod.ts", "../../src/fieldtypes/TradSesMode.ts", "../../src/fieldtypes/TradSesStatus.ts", "../../src/fieldtypes/TradSesStatusRejReason.ts", "../../src/fieldtypes/TransactionAttributeType.ts", "../../src/fieldtypes/TransferRejectReason.ts", "../../src/fieldtypes/TransferReportType.ts", "../../src/fieldtypes/TransferScope.ts", "../../src/fieldtypes/TransferStatus.ts", "../../src/fieldtypes/TransferTransType.ts", "../../src/fieldtypes/TransferType.ts", "../../src/fieldtypes/TrdAckStatus.ts", "../../src/fieldtypes/TrdRegPublicationReason.ts", "../../src/fieldtypes/TrdRegPublicationType.ts", "../../src/fieldtypes/TrdRegTimestampManualIndicator.ts", "../../src/fieldtypes/TrdRegTimestampType.ts", "../../src/fieldtypes/TrdRptStatus.ts", "../../src/fieldtypes/TrdSubType.ts", "../../src/fieldtypes/TrdType.ts", "../../src/fieldtypes/TriggerAction.ts", "../../src/fieldtypes/Triggered.ts", "../../src/fieldtypes/TriggerOrderType.ts", "../../src/fieldtypes/TriggerPriceDirection.ts", "../../src/fieldtypes/TriggerPriceType.ts", "../../src/fieldtypes/TriggerPriceTypeScope.ts", "../../src/fieldtypes/TriggerScope.ts", "../../src/fieldtypes/TriggerType.ts", "../../src/fieldtypes/UnderlyingCashType.ts", "../../src/fieldtypes/UnderlyingFXRateCalc.ts", "../../src/fieldtypes/UnderlyingNotionalAdjustments.ts", "../../src/fieldtypes/UnderlyingObligationType.ts", "../../src/fieldtypes/UnderlyingPriceDeterminationMethod.ts", "../../src/fieldtypes/UnderlyingSettlementType.ts", "../../src/fieldtypes/UnitOfMeasure.ts", "../../src/fieldtypes/UnsolicitedIndicator.ts", "../../src/fieldtypes/UpfrontPriceType.ts", "../../src/fieldtypes/Urgency.ts", "../../src/fieldtypes/UserRequestType.ts", "../../src/fieldtypes/UserStatus.ts", "../../src/fieldtypes/ValuationMethod.ts", "../../src/fieldtypes/ValueCheckAction.ts", "../../src/fieldtypes/ValueCheckType.ts", "../../src/fieldtypes/VenueType.ts", "../../src/fieldtypes/VerificationMethod.ts", "../../src/fieldtypes/WorkingIndicator.ts", "../../src/fieldtypes/YieldType.ts", "../../src/util/timestamp.ts", "../../src/util/util.ts", "../../src/message/Message.ts", "../../src/FIXParserBase.ts", "../../../fixparser-plugin-log-console/src/ConsoleLogTransport.ts", "../../src/logger/Logger.ts", "../../src/messagetemplates/MessageTemplates.ts", "../../src/session/SessionLogon.ts", "../../src/session/SessionLogout.ts", "../../src/session/SessionResendRequest.ts", "../../src/session/SessionSequence.ts", "../../src/session/SessionSequenceReset.ts", "../../src/session/SessionTestRequest.ts", "../../src/session/ClientMessageProcessor.ts", "../../src/util/FrameDecoder.ts", "../../src/session/SessionFirstMessage.ts", "../../src/session/ServerMessageProcessor.ts"],
  "sourcesContent": ["'use strict';\n\nconst BINARY_TYPES = ['nodebuffer', 'arraybuffer', 'fragments'];\nconst hasBlob = typeof Blob !== 'undefined';\n\nif (hasBlob) BINARY_TYPES.push('blob');\n\nmodule.exports = {\n  BINARY_TYPES,\n  CLOSE_TIMEOUT: 30000,\n  EMPTY_BUFFER: Buffer.alloc(0),\n  GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n  hasBlob,\n  kForOnEventAttribute: Symbol('kIsForOnEventAttribute'),\n  kListener: Symbol('kListener'),\n  kStatusCode: Symbol('status-code'),\n  kWebSocket: Symbol('websocket'),\n  NOOP: () => {}\n};\n", "'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\nconst FastBuffer = Buffer[Symbol.species];\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n  if (list.length === 0) return EMPTY_BUFFER;\n  if (list.length === 1) return list[0];\n\n  const target = Buffer.allocUnsafe(totalLength);\n  let offset = 0;\n\n  for (let i = 0; i < list.length; i++) {\n    const buf = list[i];\n    target.set(buf, offset);\n    offset += buf.length;\n  }\n\n  if (offset < totalLength) {\n    return new FastBuffer(target.buffer, target.byteOffset, offset);\n  }\n\n  return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n  for (let i = 0; i < length; i++) {\n    output[offset + i] = source[i] ^ mask[i & 3];\n  }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n  for (let i = 0; i < buffer.length; i++) {\n    buffer[i] ^= mask[i & 3];\n  }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n  if (buf.length === buf.buffer.byteLength) {\n    return buf.buffer;\n  }\n\n  return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.length);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n  toBuffer.readOnly = true;\n\n  if (Buffer.isBuffer(data)) return data;\n\n  let buf;\n\n  if (data instanceof ArrayBuffer) {\n    buf = new FastBuffer(data);\n  } else if (ArrayBuffer.isView(data)) {\n    buf = new FastBuffer(data.buffer, data.byteOffset, data.byteLength);\n  } else {\n    buf = Buffer.from(data);\n    toBuffer.readOnly = false;\n  }\n\n  return buf;\n}\n\nmodule.exports = {\n  concat,\n  mask: _mask,\n  toArrayBuffer,\n  toBuffer,\n  unmask: _unmask\n};\n\n/* istanbul ignore else  */\nif (!process.env.WS_NO_BUFFER_UTIL) {\n  try {\n    const bufferUtil = require('bufferutil');\n\n    module.exports.mask = function (source, mask, output, offset, length) {\n      if (length < 48) _mask(source, mask, output, offset, length);\n      else bufferUtil.mask(source, mask, output, offset, length);\n    };\n\n    module.exports.unmask = function (buffer, mask) {\n      if (buffer.length < 32) _unmask(buffer, mask);\n      else bufferUtil.unmask(buffer, mask);\n    };\n  } catch (e) {\n    // Continue regardless of the error.\n  }\n}\n", "'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n  /**\n   * Creates a new `Limiter`.\n   *\n   * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n   *     to run concurrently\n   */\n  constructor(concurrency) {\n    this[kDone] = () => {\n      this.pending--;\n      this[kRun]();\n    };\n    this.concurrency = concurrency || Infinity;\n    this.jobs = [];\n    this.pending = 0;\n  }\n\n  /**\n   * Adds a job to the queue.\n   *\n   * @param {Function} job The job to run\n   * @public\n   */\n  add(job) {\n    this.jobs.push(job);\n    this[kRun]();\n  }\n\n  /**\n   * Removes a job from the queue and runs it if possible.\n   *\n   * @private\n   */\n  [kRun]() {\n    if (this.pending === this.concurrency) return;\n\n    if (this.jobs.length) {\n      const job = this.jobs.shift();\n\n      this.pending++;\n      job(this[kDone]);\n    }\n  }\n}\n\nmodule.exports = Limiter;\n", "'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode } = require('./constants');\n\nconst FastBuffer = Buffer[Symbol.species];\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n  /**\n   * Creates a PerMessageDeflate instance.\n   *\n   * @param {Object} [options] Configuration options\n   * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n   *     for, or request, a custom client window size\n   * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n   *     acknowledge disabling of client context takeover\n   * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n   *     calls to zlib\n   * @param {Boolean} [options.isServer=false] Create the instance in either\n   *     server or client mode\n   * @param {Number} [options.maxPayload=0] The maximum allowed message length\n   * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n   *     use of a custom server window size\n   * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n   *     disabling of server context takeover\n   * @param {Number} [options.threshold=1024] Size (in bytes) below which\n   *     messages should not be compressed if context takeover is disabled\n   * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n   *     deflate\n   * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n   *     inflate\n   */\n  constructor(options) {\n    this._options = options || {};\n    this._threshold =\n      this._options.threshold !== undefined ? this._options.threshold : 1024;\n    this._maxPayload = this._options.maxPayload | 0;\n    this._isServer = !!this._options.isServer;\n    this._deflate = null;\n    this._inflate = null;\n\n    this.params = null;\n\n    if (!zlibLimiter) {\n      const concurrency =\n        this._options.concurrencyLimit !== undefined\n          ? this._options.concurrencyLimit\n          : 10;\n      zlibLimiter = new Limiter(concurrency);\n    }\n  }\n\n  /**\n   * @type {String}\n   */\n  static get extensionName() {\n    return 'permessage-deflate';\n  }\n\n  /**\n   * Create an extension negotiation offer.\n   *\n   * @return {Object} Extension parameters\n   * @public\n   */\n  offer() {\n    const params = {};\n\n    if (this._options.serverNoContextTakeover) {\n      params.server_no_context_takeover = true;\n    }\n    if (this._options.clientNoContextTakeover) {\n      params.client_no_context_takeover = true;\n    }\n    if (this._options.serverMaxWindowBits) {\n      params.server_max_window_bits = this._options.serverMaxWindowBits;\n    }\n    if (this._options.clientMaxWindowBits) {\n      params.client_max_window_bits = this._options.clientMaxWindowBits;\n    } else if (this._options.clientMaxWindowBits == null) {\n      params.client_max_window_bits = true;\n    }\n\n    return params;\n  }\n\n  /**\n   * Accept an extension negotiation offer/response.\n   *\n   * @param {Array} configurations The extension negotiation offers/reponse\n   * @return {Object} Accepted configuration\n   * @public\n   */\n  accept(configurations) {\n    configurations = this.normalizeParams(configurations);\n\n    this.params = this._isServer\n      ? this.acceptAsServer(configurations)\n      : this.acceptAsClient(configurations);\n\n    return this.params;\n  }\n\n  /**\n   * Releases all resources used by the extension.\n   *\n   * @public\n   */\n  cleanup() {\n    if (this._inflate) {\n      this._inflate.close();\n      this._inflate = null;\n    }\n\n    if (this._deflate) {\n      const callback = this._deflate[kCallback];\n\n      this._deflate.close();\n      this._deflate = null;\n\n      if (callback) {\n        callback(\n          new Error(\n            'The deflate stream was closed while data was being processed'\n          )\n        );\n      }\n    }\n  }\n\n  /**\n   *  Accept an extension negotiation offer.\n   *\n   * @param {Array} offers The extension negotiation offers\n   * @return {Object} Accepted configuration\n   * @private\n   */\n  acceptAsServer(offers) {\n    const opts = this._options;\n    const accepted = offers.find((params) => {\n      if (\n        (opts.serverNoContextTakeover === false &&\n          params.server_no_context_takeover) ||\n        (params.server_max_window_bits &&\n          (opts.serverMaxWindowBits === false ||\n            (typeof opts.serverMaxWindowBits === 'number' &&\n              opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n        (typeof opts.clientMaxWindowBits === 'number' &&\n          !params.client_max_window_bits)\n      ) {\n        return false;\n      }\n\n      return true;\n    });\n\n    if (!accepted) {\n      throw new Error('None of the extension offers can be accepted');\n    }\n\n    if (opts.serverNoContextTakeover) {\n      accepted.server_no_context_takeover = true;\n    }\n    if (opts.clientNoContextTakeover) {\n      accepted.client_no_context_takeover = true;\n    }\n    if (typeof opts.serverMaxWindowBits === 'number') {\n      accepted.server_max_window_bits = opts.serverMaxWindowBits;\n    }\n    if (typeof opts.clientMaxWindowBits === 'number') {\n      accepted.client_max_window_bits = opts.clientMaxWindowBits;\n    } else if (\n      accepted.client_max_window_bits === true ||\n      opts.clientMaxWindowBits === false\n    ) {\n      delete accepted.client_max_window_bits;\n    }\n\n    return accepted;\n  }\n\n  /**\n   * Accept the extension negotiation response.\n   *\n   * @param {Array} response The extension negotiation response\n   * @return {Object} Accepted configuration\n   * @private\n   */\n  acceptAsClient(response) {\n    const params = response[0];\n\n    if (\n      this._options.clientNoContextTakeover === false &&\n      params.client_no_context_takeover\n    ) {\n      throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n    }\n\n    if (!params.client_max_window_bits) {\n      if (typeof this._options.clientMaxWindowBits === 'number') {\n        params.client_max_window_bits = this._options.clientMaxWindowBits;\n      }\n    } else if (\n      this._options.clientMaxWindowBits === false ||\n      (typeof this._options.clientMaxWindowBits === 'number' &&\n        params.client_max_window_bits > this._options.clientMaxWindowBits)\n    ) {\n      throw new Error(\n        'Unexpected or invalid parameter \"client_max_window_bits\"'\n      );\n    }\n\n    return params;\n  }\n\n  /**\n   * Normalize parameters.\n   *\n   * @param {Array} configurations The extension negotiation offers/reponse\n   * @return {Array} The offers/response with normalized parameters\n   * @private\n   */\n  normalizeParams(configurations) {\n    configurations.forEach((params) => {\n      Object.keys(params).forEach((key) => {\n        let value = params[key];\n\n        if (value.length > 1) {\n          throw new Error(`Parameter \"${key}\" must have only a single value`);\n        }\n\n        value = value[0];\n\n        if (key === 'client_max_window_bits') {\n          if (value !== true) {\n            const num = +value;\n            if (!Number.isInteger(num) || num < 8 || num > 15) {\n              throw new TypeError(\n                `Invalid value for parameter \"${key}\": ${value}`\n              );\n            }\n            value = num;\n          } else if (!this._isServer) {\n            throw new TypeError(\n              `Invalid value for parameter \"${key}\": ${value}`\n            );\n          }\n        } else if (key === 'server_max_window_bits') {\n          const num = +value;\n          if (!Number.isInteger(num) || num < 8 || num > 15) {\n            throw new TypeError(\n              `Invalid value for parameter \"${key}\": ${value}`\n            );\n          }\n          value = num;\n        } else if (\n          key === 'client_no_context_takeover' ||\n          key === 'server_no_context_takeover'\n        ) {\n          if (value !== true) {\n            throw new TypeError(\n              `Invalid value for parameter \"${key}\": ${value}`\n            );\n          }\n        } else {\n          throw new Error(`Unknown parameter \"${key}\"`);\n        }\n\n        params[key] = value;\n      });\n    });\n\n    return configurations;\n  }\n\n  /**\n   * Decompress data. Concurrency limited.\n   *\n   * @param {Buffer} data Compressed data\n   * @param {Boolean} fin Specifies whether or not this is the last fragment\n   * @param {Function} callback Callback\n   * @public\n   */\n  decompress(data, fin, callback) {\n    zlibLimiter.add((done) => {\n      this._decompress(data, fin, (err, result) => {\n        done();\n        callback(err, result);\n      });\n    });\n  }\n\n  /**\n   * Compress data. Concurrency limited.\n   *\n   * @param {(Buffer|String)} data Data to compress\n   * @param {Boolean} fin Specifies whether or not this is the last fragment\n   * @param {Function} callback Callback\n   * @public\n   */\n  compress(data, fin, callback) {\n    zlibLimiter.add((done) => {\n      this._compress(data, fin, (err, result) => {\n        done();\n        callback(err, result);\n      });\n    });\n  }\n\n  /**\n   * Decompress data.\n   *\n   * @param {Buffer} data Compressed data\n   * @param {Boolean} fin Specifies whether or not this is the last fragment\n   * @param {Function} callback Callback\n   * @private\n   */\n  _decompress(data, fin, callback) {\n    const endpoint = this._isServer ? 'client' : 'server';\n\n    if (!this._inflate) {\n      const key = `${endpoint}_max_window_bits`;\n      const windowBits =\n        typeof this.params[key] !== 'number'\n          ? zlib.Z_DEFAULT_WINDOWBITS\n          : this.params[key];\n\n      this._inflate = zlib.createInflateRaw({\n        ...this._options.zlibInflateOptions,\n        windowBits\n      });\n      this._inflate[kPerMessageDeflate] = this;\n      this._inflate[kTotalLength] = 0;\n      this._inflate[kBuffers] = [];\n      this._inflate.on('error', inflateOnError);\n      this._inflate.on('data', inflateOnData);\n    }\n\n    this._inflate[kCallback] = callback;\n\n    this._inflate.write(data);\n    if (fin) this._inflate.write(TRAILER);\n\n    this._inflate.flush(() => {\n      const err = this._inflate[kError];\n\n      if (err) {\n        this._inflate.close();\n        this._inflate = null;\n        callback(err);\n        return;\n      }\n\n      const data = bufferUtil.concat(\n        this._inflate[kBuffers],\n        this._inflate[kTotalLength]\n      );\n\n      if (this._inflate._readableState.endEmitted) {\n        this._inflate.close();\n        this._inflate = null;\n      } else {\n        this._inflate[kTotalLength] = 0;\n        this._inflate[kBuffers] = [];\n\n        if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n          this._inflate.reset();\n        }\n      }\n\n      callback(null, data);\n    });\n  }\n\n  /**\n   * Compress data.\n   *\n   * @param {(Buffer|String)} data Data to compress\n   * @param {Boolean} fin Specifies whether or not this is the last fragment\n   * @param {Function} callback Callback\n   * @private\n   */\n  _compress(data, fin, callback) {\n    const endpoint = this._isServer ? 'server' : 'client';\n\n    if (!this._deflate) {\n      const key = `${endpoint}_max_window_bits`;\n      const windowBits =\n        typeof this.params[key] !== 'number'\n          ? zlib.Z_DEFAULT_WINDOWBITS\n          : this.params[key];\n\n      this._deflate = zlib.createDeflateRaw({\n        ...this._options.zlibDeflateOptions,\n        windowBits\n      });\n\n      this._deflate[kTotalLength] = 0;\n      this._deflate[kBuffers] = [];\n\n      this._deflate.on('data', deflateOnData);\n    }\n\n    this._deflate[kCallback] = callback;\n\n    this._deflate.write(data);\n    this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n      if (!this._deflate) {\n        //\n        // The deflate stream was closed while data was being processed.\n        //\n        return;\n      }\n\n      let data = bufferUtil.concat(\n        this._deflate[kBuffers],\n        this._deflate[kTotalLength]\n      );\n\n      if (fin) {\n        data = new FastBuffer(data.buffer, data.byteOffset, data.length - 4);\n      }\n\n      //\n      // Ensure that the callback will not be called again in\n      // `PerMessageDeflate#cleanup()`.\n      //\n      this._deflate[kCallback] = null;\n\n      this._deflate[kTotalLength] = 0;\n      this._deflate[kBuffers] = [];\n\n      if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n        this._deflate.reset();\n      }\n\n      callback(null, data);\n    });\n  }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n  this[kBuffers].push(chunk);\n  this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n  this[kTotalLength] += chunk.length;\n\n  if (\n    this[kPerMessageDeflate]._maxPayload < 1 ||\n    this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n  ) {\n    this[kBuffers].push(chunk);\n    return;\n  }\n\n  this[kError] = new RangeError('Max payload size exceeded');\n  this[kError].code = 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH';\n  this[kError][kStatusCode] = 1009;\n  this.removeListener('data', inflateOnData);\n\n  //\n  // The choice to employ `zlib.reset()` over `zlib.close()` is dictated by the\n  // fact that in Node.js versions prior to 13.10.0, the callback for\n  // `zlib.flush()` is not called if `zlib.close()` is used. Utilizing\n  // `zlib.reset()` ensures that either the callback is invoked or an error is\n  // emitted.\n  //\n  this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n  //\n  // There is no need to call `Zlib#close()` as the handle is automatically\n  // closed when an error is emitted.\n  //\n  this[kPerMessageDeflate]._inflate = null;\n\n  if (this[kError]) {\n    this[kCallback](this[kError]);\n    return;\n  }\n\n  err[kStatusCode] = 1007;\n  this[kCallback](err);\n}\n", "'use strict';\n\nconst { isUtf8 } = require('buffer');\n\nconst { hasBlob } = require('./constants');\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n  0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n  0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n  return (\n    (code >= 1000 &&\n      code <= 1014 &&\n      code !== 1004 &&\n      code !== 1005 &&\n      code !== 1006) ||\n    (code >= 3000 && code <= 4999)\n  );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n  const len = buf.length;\n  let i = 0;\n\n  while (i < len) {\n    if ((buf[i] & 0x80) === 0) {\n      // 0xxxxxxx\n      i++;\n    } else if ((buf[i] & 0xe0) === 0xc0) {\n      // 110xxxxx 10xxxxxx\n      if (\n        i + 1 === len ||\n        (buf[i + 1] & 0xc0) !== 0x80 ||\n        (buf[i] & 0xfe) === 0xc0 // Overlong\n      ) {\n        return false;\n      }\n\n      i += 2;\n    } else if ((buf[i] & 0xf0) === 0xe0) {\n      // 1110xxxx 10xxxxxx 10xxxxxx\n      if (\n        i + 2 >= len ||\n        (buf[i + 1] & 0xc0) !== 0x80 ||\n        (buf[i + 2] & 0xc0) !== 0x80 ||\n        (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n        (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n      ) {\n        return false;\n      }\n\n      i += 3;\n    } else if ((buf[i] & 0xf8) === 0xf0) {\n      // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n      if (\n        i + 3 >= len ||\n        (buf[i + 1] & 0xc0) !== 0x80 ||\n        (buf[i + 2] & 0xc0) !== 0x80 ||\n        (buf[i + 3] & 0xc0) !== 0x80 ||\n        (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n        (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n        buf[i] > 0xf4 // > U+10FFFF\n      ) {\n        return false;\n      }\n\n      i += 4;\n    } else {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n/**\n * Determines whether a value is a `Blob`.\n *\n * @param {*} value The value to be tested\n * @return {Boolean} `true` if `value` is a `Blob`, else `false`\n * @private\n */\nfunction isBlob(value) {\n  return (\n    hasBlob &&\n    typeof value === 'object' &&\n    typeof value.arrayBuffer === 'function' &&\n    typeof value.type === 'string' &&\n    typeof value.stream === 'function' &&\n    (value[Symbol.toStringTag] === 'Blob' ||\n      value[Symbol.toStringTag] === 'File')\n  );\n}\n\nmodule.exports = {\n  isBlob,\n  isValidStatusCode,\n  isValidUTF8: _isValidUTF8,\n  tokenChars\n};\n\nif (isUtf8) {\n  module.exports.isValidUTF8 = function (buf) {\n    return buf.length < 24 ? _isValidUTF8(buf) : isUtf8(buf);\n  };\n} /* istanbul ignore else  */ else if (!process.env.WS_NO_UTF_8_VALIDATE) {\n  try {\n    const isValidUTF8 = require('utf-8-validate');\n\n    module.exports.isValidUTF8 = function (buf) {\n      return buf.length < 32 ? _isValidUTF8(buf) : isValidUTF8(buf);\n    };\n  } catch (e) {\n    // Continue regardless of the error.\n  }\n}\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n  BINARY_TYPES,\n  EMPTY_BUFFER,\n  kStatusCode,\n  kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst FastBuffer = Buffer[Symbol.species];\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\nconst DEFER_EVENT = 6;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends Writable\n */\nclass Receiver extends Writable {\n  /**\n   * Creates a Receiver instance.\n   *\n   * @param {Object} [options] Options object\n   * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether\n   *     any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n   *     multiple times in the same tick\n   * @param {String} [options.binaryType=nodebuffer] The type for binary data\n   * @param {Object} [options.extensions] An object containing the negotiated\n   *     extensions\n   * @param {Boolean} [options.isServer=false] Specifies whether to operate in\n   *     client or server mode\n   * @param {Number} [options.maxBufferedChunks=0] The maximum number of\n   *     buffered data chunks\n   * @param {Number} [options.maxFragments=0] The maximum number of message\n   *     fragments\n   * @param {Number} [options.maxPayload=0] The maximum allowed message length\n   * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n   *     not to skip UTF-8 validation for text and close messages\n   */\n  constructor(options = {}) {\n    super();\n\n    this._allowSynchronousEvents =\n      options.allowSynchronousEvents !== undefined\n        ? options.allowSynchronousEvents\n        : true;\n    this._binaryType = options.binaryType || BINARY_TYPES[0];\n    this._extensions = options.extensions || {};\n    this._isServer = !!options.isServer;\n    this._maxBufferedChunks = options.maxBufferedChunks | 0;\n    this._maxFragments = options.maxFragments | 0;\n    this._maxPayload = options.maxPayload | 0;\n    this._skipUTF8Validation = !!options.skipUTF8Validation;\n    this[kWebSocket] = undefined;\n\n    this._bufferedBytes = 0;\n    this._buffers = [];\n\n    this._compressed = false;\n    this._payloadLength = 0;\n    this._mask = undefined;\n    this._fragmented = 0;\n    this._masked = false;\n    this._fin = false;\n    this._opcode = 0;\n\n    this._totalPayloadLength = 0;\n    this._messageLength = 0;\n    this._fragments = [];\n\n    this._errored = false;\n    this._loop = false;\n    this._state = GET_INFO;\n  }\n\n  /**\n   * Implements `Writable.prototype._write()`.\n   *\n   * @param {Buffer} chunk The chunk of data to write\n   * @param {String} encoding The character encoding of `chunk`\n   * @param {Function} cb Callback\n   * @private\n   */\n  _write(chunk, encoding, cb) {\n    if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n    if (\n      this._maxBufferedChunks > 0 &&\n      this._buffers.length >= this._maxBufferedChunks\n    ) {\n      cb(\n        this.createError(\n          RangeError,\n          'Too many buffered chunks',\n          false,\n          1008,\n          'WS_ERR_TOO_MANY_BUFFERED_PARTS'\n        )\n      );\n      return;\n    }\n\n    this._bufferedBytes += chunk.length;\n    this._buffers.push(chunk);\n    this.startLoop(cb);\n  }\n\n  /**\n   * Consumes `n` bytes from the buffered data.\n   *\n   * @param {Number} n The number of bytes to consume\n   * @return {Buffer} The consumed bytes\n   * @private\n   */\n  consume(n) {\n    this._bufferedBytes -= n;\n\n    if (n === this._buffers[0].length) return this._buffers.shift();\n\n    if (n < this._buffers[0].length) {\n      const buf = this._buffers[0];\n      this._buffers[0] = new FastBuffer(\n        buf.buffer,\n        buf.byteOffset + n,\n        buf.length - n\n      );\n\n      return new FastBuffer(buf.buffer, buf.byteOffset, n);\n    }\n\n    const dst = Buffer.allocUnsafe(n);\n\n    do {\n      const buf = this._buffers[0];\n      const offset = dst.length - n;\n\n      if (n >= buf.length) {\n        dst.set(this._buffers.shift(), offset);\n      } else {\n        dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n        this._buffers[0] = new FastBuffer(\n          buf.buffer,\n          buf.byteOffset + n,\n          buf.length - n\n        );\n      }\n\n      n -= buf.length;\n    } while (n > 0);\n\n    return dst;\n  }\n\n  /**\n   * Starts the parsing loop.\n   *\n   * @param {Function} cb Callback\n   * @private\n   */\n  startLoop(cb) {\n    this._loop = true;\n\n    do {\n      switch (this._state) {\n        case GET_INFO:\n          this.getInfo(cb);\n          break;\n        case GET_PAYLOAD_LENGTH_16:\n          this.getPayloadLength16(cb);\n          break;\n        case GET_PAYLOAD_LENGTH_64:\n          this.getPayloadLength64(cb);\n          break;\n        case GET_MASK:\n          this.getMask();\n          break;\n        case GET_DATA:\n          this.getData(cb);\n          break;\n        case INFLATING:\n        case DEFER_EVENT:\n          this._loop = false;\n          return;\n      }\n    } while (this._loop);\n\n    if (!this._errored) cb();\n  }\n\n  /**\n   * Reads the first two bytes of a frame.\n   *\n   * @param {Function} cb Callback\n   * @private\n   */\n  getInfo(cb) {\n    if (this._bufferedBytes < 2) {\n      this._loop = false;\n      return;\n    }\n\n    const buf = this.consume(2);\n\n    if ((buf[0] & 0x30) !== 0x00) {\n      const error = this.createError(\n        RangeError,\n        'RSV2 and RSV3 must be clear',\n        true,\n        1002,\n        'WS_ERR_UNEXPECTED_RSV_2_3'\n      );\n\n      cb(error);\n      return;\n    }\n\n    const compressed = (buf[0] & 0x40) === 0x40;\n\n    if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n      const error = this.createError(\n        RangeError,\n        'RSV1 must be clear',\n        true,\n        1002,\n        'WS_ERR_UNEXPECTED_RSV_1'\n      );\n\n      cb(error);\n      return;\n    }\n\n    this._fin = (buf[0] & 0x80) === 0x80;\n    this._opcode = buf[0] & 0x0f;\n    this._payloadLength = buf[1] & 0x7f;\n\n    if (this._opcode === 0x00) {\n      if (compressed) {\n        const error = this.createError(\n          RangeError,\n          'RSV1 must be clear',\n          true,\n          1002,\n          'WS_ERR_UNEXPECTED_RSV_1'\n        );\n\n        cb(error);\n        return;\n      }\n\n      if (!this._fragmented) {\n        const error = this.createError(\n          RangeError,\n          'invalid opcode 0',\n          true,\n          1002,\n          'WS_ERR_INVALID_OPCODE'\n        );\n\n        cb(error);\n        return;\n      }\n\n      this._opcode = this._fragmented;\n    } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n      if (this._fragmented) {\n        const error = this.createError(\n          RangeError,\n          `invalid opcode ${this._opcode}`,\n          true,\n          1002,\n          'WS_ERR_INVALID_OPCODE'\n        );\n\n        cb(error);\n        return;\n      }\n\n      this._compressed = compressed;\n    } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n      if (!this._fin) {\n        const error = this.createError(\n          RangeError,\n          'FIN must be set',\n          true,\n          1002,\n          'WS_ERR_EXPECTED_FIN'\n        );\n\n        cb(error);\n        return;\n      }\n\n      if (compressed) {\n        const error = this.createError(\n          RangeError,\n          'RSV1 must be clear',\n          true,\n          1002,\n          'WS_ERR_UNEXPECTED_RSV_1'\n        );\n\n        cb(error);\n        return;\n      }\n\n      if (\n        this._payloadLength > 0x7d ||\n        (this._opcode === 0x08 && this._payloadLength === 1)\n      ) {\n        const error = this.createError(\n          RangeError,\n          `invalid payload length ${this._payloadLength}`,\n          true,\n          1002,\n          'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n        );\n\n        cb(error);\n        return;\n      }\n    } else {\n      const error = this.createError(\n        RangeError,\n        `invalid opcode ${this._opcode}`,\n        true,\n        1002,\n        'WS_ERR_INVALID_OPCODE'\n      );\n\n      cb(error);\n      return;\n    }\n\n    if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n    this._masked = (buf[1] & 0x80) === 0x80;\n\n    if (this._isServer) {\n      if (!this._masked) {\n        const error = this.createError(\n          RangeError,\n          'MASK must be set',\n          true,\n          1002,\n          'WS_ERR_EXPECTED_MASK'\n        );\n\n        cb(error);\n        return;\n      }\n    } else if (this._masked) {\n      const error = this.createError(\n        RangeError,\n        'MASK must be clear',\n        true,\n        1002,\n        'WS_ERR_UNEXPECTED_MASK'\n      );\n\n      cb(error);\n      return;\n    }\n\n    if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n    else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n    else this.haveLength(cb);\n  }\n\n  /**\n   * Gets extended payload length (7+16).\n   *\n   * @param {Function} cb Callback\n   * @private\n   */\n  getPayloadLength16(cb) {\n    if (this._bufferedBytes < 2) {\n      this._loop = false;\n      return;\n    }\n\n    this._payloadLength = this.consume(2).readUInt16BE(0);\n    this.haveLength(cb);\n  }\n\n  /**\n   * Gets extended payload length (7+64).\n   *\n   * @param {Function} cb Callback\n   * @private\n   */\n  getPayloadLength64(cb) {\n    if (this._bufferedBytes < 8) {\n      this._loop = false;\n      return;\n    }\n\n    const buf = this.consume(8);\n    const num = buf.readUInt32BE(0);\n\n    //\n    // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n    // if payload length is greater than this number.\n    //\n    if (num > Math.pow(2, 53 - 32) - 1) {\n      const error = this.createError(\n        RangeError,\n        'Unsupported WebSocket frame: payload length > 2^53 - 1',\n        false,\n        1009,\n        'WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH'\n      );\n\n      cb(error);\n      return;\n    }\n\n    this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n    this.haveLength(cb);\n  }\n\n  /**\n   * Payload length has been read.\n   *\n   * @param {Function} cb Callback\n   * @private\n   */\n  haveLength(cb) {\n    if (this._payloadLength && this._opcode < 0x08) {\n      this._totalPayloadLength += this._payloadLength;\n      if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n        const error = this.createError(\n          RangeError,\n          'Max payload size exceeded',\n          false,\n          1009,\n          'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n        );\n\n        cb(error);\n        return;\n      }\n    }\n\n    if (this._masked) this._state = GET_MASK;\n    else this._state = GET_DATA;\n  }\n\n  /**\n   * Reads mask bytes.\n   *\n   * @private\n   */\n  getMask() {\n    if (this._bufferedBytes < 4) {\n      this._loop = false;\n      return;\n    }\n\n    this._mask = this.consume(4);\n    this._state = GET_DATA;\n  }\n\n  /**\n   * Reads data bytes.\n   *\n   * @param {Function} cb Callback\n   * @private\n   */\n  getData(cb) {\n    let data = EMPTY_BUFFER;\n\n    if (this._payloadLength) {\n      if (this._bufferedBytes < this._payloadLength) {\n        this._loop = false;\n        return;\n      }\n\n      data = this.consume(this._payloadLength);\n\n      if (\n        this._masked &&\n        (this._mask[0] | this._mask[1] | this._mask[2] | this._mask[3]) !== 0\n      ) {\n        unmask(data, this._mask);\n      }\n    }\n\n    if (this._opcode > 0x07) {\n      this.controlMessage(data, cb);\n      return;\n    }\n\n    if (this._compressed) {\n      this._state = INFLATING;\n      this.decompress(data, cb);\n      return;\n    }\n\n    if (data.length) {\n      if (\n        this._maxFragments > 0 &&\n        this._fragments.length >= this._maxFragments\n      ) {\n        const error = this.createError(\n          RangeError,\n          'Too many message fragments',\n          false,\n          1008,\n          'WS_ERR_TOO_MANY_BUFFERED_PARTS'\n        );\n\n        cb(error);\n        return;\n      }\n\n      //\n      // This message is not compressed so its length is the sum of the payload\n      // length of all fragments.\n      //\n      this._messageLength = this._totalPayloadLength;\n      this._fragments.push(data);\n    }\n\n    this.dataMessage(cb);\n  }\n\n  /**\n   * Decompresses data.\n   *\n   * @param {Buffer} data Compressed data\n   * @param {Function} cb Callback\n   * @private\n   */\n  decompress(data, cb) {\n    const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n    perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n      if (err) return cb(err);\n\n      if (buf.length) {\n        this._messageLength += buf.length;\n        if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n          const error = this.createError(\n            RangeError,\n            'Max payload size exceeded',\n            false,\n            1009,\n            'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n          );\n\n          cb(error);\n          return;\n        }\n\n        if (\n          this._maxFragments > 0 &&\n          this._fragments.length >= this._maxFragments\n        ) {\n          const error = this.createError(\n            RangeError,\n            'Too many message fragments',\n            false,\n            1008,\n            'WS_ERR_TOO_MANY_BUFFERED_PARTS'\n          );\n\n          cb(error);\n          return;\n        }\n\n        this._fragments.push(buf);\n      }\n\n      this.dataMessage(cb);\n      if (this._state === GET_INFO) this.startLoop(cb);\n    });\n  }\n\n  /**\n   * Handles a data message.\n   *\n   * @param {Function} cb Callback\n   * @private\n   */\n  dataMessage(cb) {\n    if (!this._fin) {\n      this._state = GET_INFO;\n      return;\n    }\n\n    const messageLength = this._messageLength;\n    const fragments = this._fragments;\n\n    this._totalPayloadLength = 0;\n    this._messageLength = 0;\n    this._fragmented = 0;\n    this._fragments = [];\n\n    if (this._opcode === 2) {\n      let data;\n\n      if (this._binaryType === 'nodebuffer') {\n        data = concat(fragments, messageLength);\n      } else if (this._binaryType === 'arraybuffer') {\n        data = toArrayBuffer(concat(fragments, messageLength));\n      } else if (this._binaryType === 'blob') {\n        data = new Blob(fragments);\n      } else {\n        data = fragments;\n      }\n\n      if (this._allowSynchronousEvents) {\n        this.emit('message', data, true);\n        this._state = GET_INFO;\n      } else {\n        this._state = DEFER_EVENT;\n        setImmediate(() => {\n          this.emit('message', data, true);\n          this._state = GET_INFO;\n          this.startLoop(cb);\n        });\n      }\n    } else {\n      const buf = concat(fragments, messageLength);\n\n      if (!this._skipUTF8Validation && !isValidUTF8(buf)) {\n        const error = this.createError(\n          Error,\n          'invalid UTF-8 sequence',\n          true,\n          1007,\n          'WS_ERR_INVALID_UTF8'\n        );\n\n        cb(error);\n        return;\n      }\n\n      if (this._state === INFLATING || this._allowSynchronousEvents) {\n        this.emit('message', buf, false);\n        this._state = GET_INFO;\n      } else {\n        this._state = DEFER_EVENT;\n        setImmediate(() => {\n          this.emit('message', buf, false);\n          this._state = GET_INFO;\n          this.startLoop(cb);\n        });\n      }\n    }\n  }\n\n  /**\n   * Handles a control message.\n   *\n   * @param {Buffer} data Data to handle\n   * @return {(Error|RangeError|undefined)} A possible error\n   * @private\n   */\n  controlMessage(data, cb) {\n    if (this._opcode === 0x08) {\n      if (data.length === 0) {\n        this._loop = false;\n        this.emit('conclude', 1005, EMPTY_BUFFER);\n        this.end();\n      } else {\n        const code = data.readUInt16BE(0);\n\n        if (!isValidStatusCode(code)) {\n          const error = this.createError(\n            RangeError,\n            `invalid status code ${code}`,\n            true,\n            1002,\n            'WS_ERR_INVALID_CLOSE_CODE'\n          );\n\n          cb(error);\n          return;\n        }\n\n        const buf = new FastBuffer(\n          data.buffer,\n          data.byteOffset + 2,\n          data.length - 2\n        );\n\n        if (!this._skipUTF8Validation && !isValidUTF8(buf)) {\n          const error = this.createError(\n            Error,\n            'invalid UTF-8 sequence',\n            true,\n            1007,\n            'WS_ERR_INVALID_UTF8'\n          );\n\n          cb(error);\n          return;\n        }\n\n        this._loop = false;\n        this.emit('conclude', code, buf);\n        this.end();\n      }\n\n      this._state = GET_INFO;\n      return;\n    }\n\n    if (this._allowSynchronousEvents) {\n      this.emit(this._opcode === 0x09 ? 'ping' : 'pong', data);\n      this._state = GET_INFO;\n    } else {\n      this._state = DEFER_EVENT;\n      setImmediate(() => {\n        this.emit(this._opcode === 0x09 ? 'ping' : 'pong', data);\n        this._state = GET_INFO;\n        this.startLoop(cb);\n      });\n    }\n  }\n\n  /**\n   * Builds an error object.\n   *\n   * @param {function(new:Error|RangeError)} ErrorCtor The error constructor\n   * @param {String} message The error message\n   * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n   *     `message`\n   * @param {Number} statusCode The status code\n   * @param {String} errorCode The exposed error code\n   * @return {(Error|RangeError)} The error\n   * @private\n   */\n  createError(ErrorCtor, message, prefix, statusCode, errorCode) {\n    this._loop = false;\n    this._errored = true;\n\n    const err = new ErrorCtor(\n      prefix ? `Invalid WebSocket frame: ${message}` : message\n    );\n\n    Error.captureStackTrace(err, this.createError);\n    err.code = errorCode;\n    err[kStatusCode] = statusCode;\n    return err;\n  }\n}\n\nmodule.exports = Receiver;\n", "/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex\" }] */\n\n'use strict';\n\nconst { Duplex } = require('stream');\nconst { randomFillSync } = require('crypto');\nconst {\n  types: { isUint8Array }\n} = require('util');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER, kWebSocket, NOOP } = require('./constants');\nconst { isBlob, isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst kByteLength = Symbol('kByteLength');\nconst maskBuffer = Buffer.alloc(4);\nconst RANDOM_POOL_SIZE = 8 * 1024;\nlet randomPool;\nlet randomPoolPointer = RANDOM_POOL_SIZE;\n\nconst DEFAULT = 0;\nconst DEFLATING = 1;\nconst GET_BLOB_DATA = 2;\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n  /**\n   * Creates a Sender instance.\n   *\n   * @param {Duplex} socket The connection socket\n   * @param {Object} [extensions] An object containing the negotiated extensions\n   * @param {Function} [generateMask] The function used to generate the masking\n   *     key\n   */\n  constructor(socket, extensions, generateMask) {\n    this._extensions = extensions || {};\n\n    if (generateMask) {\n      this._generateMask = generateMask;\n      this._maskBuffer = Buffer.alloc(4);\n    }\n\n    this._socket = socket;\n\n    this._firstFragment = true;\n    this._compress = false;\n\n    this._bufferedBytes = 0;\n    this._queue = [];\n    this._state = DEFAULT;\n    this.onerror = NOOP;\n    this[kWebSocket] = undefined;\n  }\n\n  /**\n   * Frames a piece of data according to the HyBi WebSocket protocol.\n   *\n   * @param {(Buffer|String)} data The data to frame\n   * @param {Object} options Options object\n   * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n   *     FIN bit\n   * @param {Function} [options.generateMask] The function used to generate the\n   *     masking key\n   * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n   *     `data`\n   * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n   *     key\n   * @param {Number} options.opcode The opcode\n   * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n   *     modified\n   * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n   *     RSV1 bit\n   * @return {(Buffer|String)[]} The framed data\n   * @public\n   */\n  static frame(data, options) {\n    let mask;\n    let merge = false;\n    let offset = 2;\n    let skipMasking = false;\n\n    if (options.mask) {\n      mask = options.maskBuffer || maskBuffer;\n\n      if (options.generateMask) {\n        options.generateMask(mask);\n      } else {\n        if (randomPoolPointer === RANDOM_POOL_SIZE) {\n          /* istanbul ignore else  */\n          if (randomPool === undefined) {\n            //\n            // This is lazily initialized because server-sent frames must not\n            // be masked so it may never be used.\n            //\n            randomPool = Buffer.alloc(RANDOM_POOL_SIZE);\n          }\n\n          randomFillSync(randomPool, 0, RANDOM_POOL_SIZE);\n          randomPoolPointer = 0;\n        }\n\n        mask[0] = randomPool[randomPoolPointer++];\n        mask[1] = randomPool[randomPoolPointer++];\n        mask[2] = randomPool[randomPoolPointer++];\n        mask[3] = randomPool[randomPoolPointer++];\n      }\n\n      skipMasking = (mask[0] | mask[1] | mask[2] | mask[3]) === 0;\n      offset = 6;\n    }\n\n    let dataLength;\n\n    if (typeof data === 'string') {\n      if (\n        (!options.mask || skipMasking) &&\n        options[kByteLength] !== undefined\n      ) {\n        dataLength = options[kByteLength];\n      } else {\n        data = Buffer.from(data);\n        dataLength = data.length;\n      }\n    } else {\n      dataLength = data.length;\n      merge = options.mask && options.readOnly && !skipMasking;\n    }\n\n    let payloadLength = dataLength;\n\n    if (dataLength >= 65536) {\n      offset += 8;\n      payloadLength = 127;\n    } else if (dataLength > 125) {\n      offset += 2;\n      payloadLength = 126;\n    }\n\n    const target = Buffer.allocUnsafe(merge ? dataLength + offset : offset);\n\n    target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n    if (options.rsv1) target[0] |= 0x40;\n\n    target[1] = payloadLength;\n\n    if (payloadLength === 126) {\n      target.writeUInt16BE(dataLength, 2);\n    } else if (payloadLength === 127) {\n      target[2] = target[3] = 0;\n      target.writeUIntBE(dataLength, 4, 6);\n    }\n\n    if (!options.mask) return [target, data];\n\n    target[1] |= 0x80;\n    target[offset - 4] = mask[0];\n    target[offset - 3] = mask[1];\n    target[offset - 2] = mask[2];\n    target[offset - 1] = mask[3];\n\n    if (skipMasking) return [target, data];\n\n    if (merge) {\n      applyMask(data, mask, target, offset, dataLength);\n      return [target];\n    }\n\n    applyMask(data, mask, data, 0, dataLength);\n    return [target, data];\n  }\n\n  /**\n   * Sends a close message to the other peer.\n   *\n   * @param {Number} [code] The status code component of the body\n   * @param {(String|Buffer)} [data] The message component of the body\n   * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n   * @param {Function} [cb] Callback\n   * @public\n   */\n  close(code, data, mask, cb) {\n    let buf;\n\n    if (code === undefined) {\n      buf = EMPTY_BUFFER;\n    } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n      throw new TypeError('First argument must be a valid error code number');\n    } else if (data === undefined || !data.length) {\n      buf = Buffer.allocUnsafe(2);\n      buf.writeUInt16BE(code, 0);\n    } else {\n      const length = Buffer.byteLength(data);\n\n      if (length > 123) {\n        throw new RangeError('The message must not be greater than 123 bytes');\n      }\n\n      buf = Buffer.allocUnsafe(2 + length);\n      buf.writeUInt16BE(code, 0);\n\n      if (typeof data === 'string') {\n        buf.write(data, 2);\n      } else if (isUint8Array(data)) {\n        buf.set(data, 2);\n      } else {\n        throw new TypeError('Second argument must be a string or a Uint8Array');\n      }\n    }\n\n    const options = {\n      [kByteLength]: buf.length,\n      fin: true,\n      generateMask: this._generateMask,\n      mask,\n      maskBuffer: this._maskBuffer,\n      opcode: 0x08,\n      readOnly: false,\n      rsv1: false\n    };\n\n    if (this._state !== DEFAULT) {\n      this.enqueue([this.dispatch, buf, false, options, cb]);\n    } else {\n      this.sendFrame(Sender.frame(buf, options), cb);\n    }\n  }\n\n  /**\n   * Sends a ping message to the other peer.\n   *\n   * @param {*} data The message to send\n   * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n   * @param {Function} [cb] Callback\n   * @public\n   */\n  ping(data, mask, cb) {\n    let byteLength;\n    let readOnly;\n\n    if (typeof data === 'string') {\n      byteLength = Buffer.byteLength(data);\n      readOnly = false;\n    } else if (isBlob(data)) {\n      byteLength = data.size;\n      readOnly = false;\n    } else {\n      data = toBuffer(data);\n      byteLength = data.length;\n      readOnly = toBuffer.readOnly;\n    }\n\n    if (byteLength > 125) {\n      throw new RangeError('The data size must not be greater than 125 bytes');\n    }\n\n    const options = {\n      [kByteLength]: byteLength,\n      fin: true,\n      generateMask: this._generateMask,\n      mask,\n      maskBuffer: this._maskBuffer,\n      opcode: 0x09,\n      readOnly,\n      rsv1: false\n    };\n\n    if (isBlob(data)) {\n      if (this._state !== DEFAULT) {\n        this.enqueue([this.getBlobData, data, false, options, cb]);\n      } else {\n        this.getBlobData(data, false, options, cb);\n      }\n    } else if (this._state !== DEFAULT) {\n      this.enqueue([this.dispatch, data, false, options, cb]);\n    } else {\n      this.sendFrame(Sender.frame(data, options), cb);\n    }\n  }\n\n  /**\n   * Sends a pong message to the other peer.\n   *\n   * @param {*} data The message to send\n   * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n   * @param {Function} [cb] Callback\n   * @public\n   */\n  pong(data, mask, cb) {\n    let byteLength;\n    let readOnly;\n\n    if (typeof data === 'string') {\n      byteLength = Buffer.byteLength(data);\n      readOnly = false;\n    } else if (isBlob(data)) {\n      byteLength = data.size;\n      readOnly = false;\n    } else {\n      data = toBuffer(data);\n      byteLength = data.length;\n      readOnly = toBuffer.readOnly;\n    }\n\n    if (byteLength > 125) {\n      throw new RangeError('The data size must not be greater than 125 bytes');\n    }\n\n    const options = {\n      [kByteLength]: byteLength,\n      fin: true,\n      generateMask: this._generateMask,\n      mask,\n      maskBuffer: this._maskBuffer,\n      opcode: 0x0a,\n      readOnly,\n      rsv1: false\n    };\n\n    if (isBlob(data)) {\n      if (this._state !== DEFAULT) {\n        this.enqueue([this.getBlobData, data, false, options, cb]);\n      } else {\n        this.getBlobData(data, false, options, cb);\n      }\n    } else if (this._state !== DEFAULT) {\n      this.enqueue([this.dispatch, data, false, options, cb]);\n    } else {\n      this.sendFrame(Sender.frame(data, options), cb);\n    }\n  }\n\n  /**\n   * Sends a data message to the other peer.\n   *\n   * @param {*} data The message to send\n   * @param {Object} options Options object\n   * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n   *     or text\n   * @param {Boolean} [options.compress=false] Specifies whether or not to\n   *     compress `data`\n   * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n   *     last one\n   * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n   *     `data`\n   * @param {Function} [cb] Callback\n   * @public\n   */\n  send(data, options, cb) {\n    const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n    let opcode = options.binary ? 2 : 1;\n    let rsv1 = options.compress;\n\n    let byteLength;\n    let readOnly;\n\n    if (typeof data === 'string') {\n      byteLength = Buffer.byteLength(data);\n      readOnly = false;\n    } else if (isBlob(data)) {\n      byteLength = data.size;\n      readOnly = false;\n    } else {\n      data = toBuffer(data);\n      byteLength = data.length;\n      readOnly = toBuffer.readOnly;\n    }\n\n    if (this._firstFragment) {\n      this._firstFragment = false;\n      if (\n        rsv1 &&\n        perMessageDeflate &&\n        perMessageDeflate.params[\n          perMessageDeflate._isServer\n            ? 'server_no_context_takeover'\n            : 'client_no_context_takeover'\n        ]\n      ) {\n        rsv1 = byteLength >= perMessageDeflate._threshold;\n      }\n      this._compress = rsv1;\n    } else {\n      rsv1 = false;\n      opcode = 0;\n    }\n\n    if (options.fin) this._firstFragment = true;\n\n    const opts = {\n      [kByteLength]: byteLength,\n      fin: options.fin,\n      generateMask: this._generateMask,\n      mask: options.mask,\n      maskBuffer: this._maskBuffer,\n      opcode,\n      readOnly,\n      rsv1\n    };\n\n    if (isBlob(data)) {\n      if (this._state !== DEFAULT) {\n        this.enqueue([this.getBlobData, data, this._compress, opts, cb]);\n      } else {\n        this.getBlobData(data, this._compress, opts, cb);\n      }\n    } else if (this._state !== DEFAULT) {\n      this.enqueue([this.dispatch, data, this._compress, opts, cb]);\n    } else {\n      this.dispatch(data, this._compress, opts, cb);\n    }\n  }\n\n  /**\n   * Gets the contents of a blob as binary data.\n   *\n   * @param {Blob} blob The blob\n   * @param {Boolean} [compress=false] Specifies whether or not to compress\n   *     the data\n   * @param {Object} options Options object\n   * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n   *     FIN bit\n   * @param {Function} [options.generateMask] The function used to generate the\n   *     masking key\n   * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n   *     `data`\n   * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n   *     key\n   * @param {Number} options.opcode The opcode\n   * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n   *     modified\n   * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n   *     RSV1 bit\n   * @param {Function} [cb] Callback\n   * @private\n   */\n  getBlobData(blob, compress, options, cb) {\n    this._bufferedBytes += options[kByteLength];\n    this._state = GET_BLOB_DATA;\n\n    blob\n      .arrayBuffer()\n      .then((arrayBuffer) => {\n        if (this._socket.destroyed) {\n          const err = new Error(\n            'The socket was closed while the blob was being read'\n          );\n\n          //\n          // `callCallbacks` is called in the next tick to ensure that errors\n          // that might be thrown in the callbacks behave like errors thrown\n          // outside the promise chain.\n          //\n          process.nextTick(callCallbacks, this, err, cb);\n          return;\n        }\n\n        this._bufferedBytes -= options[kByteLength];\n        const data = toBuffer(arrayBuffer);\n\n        if (!compress) {\n          this._state = DEFAULT;\n          this.sendFrame(Sender.frame(data, options), cb);\n          this.dequeue();\n        } else {\n          this.dispatch(data, compress, options, cb);\n        }\n      })\n      .catch((err) => {\n        //\n        // `onError` is called in the next tick for the same reason that\n        // `callCallbacks` above is.\n        //\n        process.nextTick(onError, this, err, cb);\n      });\n  }\n\n  /**\n   * Dispatches a message.\n   *\n   * @param {(Buffer|String)} data The message to send\n   * @param {Boolean} [compress=false] Specifies whether or not to compress\n   *     `data`\n   * @param {Object} options Options object\n   * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n   *     FIN bit\n   * @param {Function} [options.generateMask] The function used to generate the\n   *     masking key\n   * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n   *     `data`\n   * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n   *     key\n   * @param {Number} options.opcode The opcode\n   * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n   *     modified\n   * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n   *     RSV1 bit\n   * @param {Function} [cb] Callback\n   * @private\n   */\n  dispatch(data, compress, options, cb) {\n    if (!compress) {\n      this.sendFrame(Sender.frame(data, options), cb);\n      return;\n    }\n\n    const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n    this._bufferedBytes += options[kByteLength];\n    this._state = DEFLATING;\n    perMessageDeflate.compress(data, options.fin, (_, buf) => {\n      if (this._socket.destroyed) {\n        const err = new Error(\n          'The socket was closed while data was being compressed'\n        );\n\n        callCallbacks(this, err, cb);\n        return;\n      }\n\n      this._bufferedBytes -= options[kByteLength];\n      this._state = DEFAULT;\n      options.readOnly = false;\n      this.sendFrame(Sender.frame(buf, options), cb);\n      this.dequeue();\n    });\n  }\n\n  /**\n   * Executes queued send operations.\n   *\n   * @private\n   */\n  dequeue() {\n    while (this._state === DEFAULT && this._queue.length) {\n      const params = this._queue.shift();\n\n      this._bufferedBytes -= params[3][kByteLength];\n      Reflect.apply(params[0], this, params.slice(1));\n    }\n  }\n\n  /**\n   * Enqueues a send operation.\n   *\n   * @param {Array} params Send operation parameters.\n   * @private\n   */\n  enqueue(params) {\n    this._bufferedBytes += params[3][kByteLength];\n    this._queue.push(params);\n  }\n\n  /**\n   * Sends a frame.\n   *\n   * @param {(Buffer | String)[]} list The frame to send\n   * @param {Function} [cb] Callback\n   * @private\n   */\n  sendFrame(list, cb) {\n    if (list.length === 2) {\n      this._socket.cork();\n      this._socket.write(list[0]);\n      this._socket.write(list[1], cb);\n      this._socket.uncork();\n    } else {\n      this._socket.write(list[0], cb);\n    }\n  }\n}\n\nmodule.exports = Sender;\n\n/**\n * Calls queued callbacks with an error.\n *\n * @param {Sender} sender The `Sender` instance\n * @param {Error} err The error to call the callbacks with\n * @param {Function} [cb] The first callback\n * @private\n */\nfunction callCallbacks(sender, err, cb) {\n  if (typeof cb === 'function') cb(err);\n\n  for (let i = 0; i < sender._queue.length; i++) {\n    const params = sender._queue[i];\n    const callback = params[params.length - 1];\n\n    if (typeof callback === 'function') callback(err);\n  }\n}\n\n/**\n * Handles a `Sender` error.\n *\n * @param {Sender} sender The `Sender` instance\n * @param {Error} err The error\n * @param {Function} [cb] The first pending callback\n * @private\n */\nfunction onError(sender, err, cb) {\n  callCallbacks(sender, err, cb);\n  sender.onerror(err);\n}\n", "'use strict';\n\nconst { kForOnEventAttribute, kListener } = require('./constants');\n\nconst kCode = Symbol('kCode');\nconst kData = Symbol('kData');\nconst kError = Symbol('kError');\nconst kMessage = Symbol('kMessage');\nconst kReason = Symbol('kReason');\nconst kTarget = Symbol('kTarget');\nconst kType = Symbol('kType');\nconst kWasClean = Symbol('kWasClean');\n\n/**\n * Class representing an event.\n */\nclass Event {\n  /**\n   * Create a new `Event`.\n   *\n   * @param {String} type The name of the event\n   * @throws {TypeError} If the `type` argument is not specified\n   */\n  constructor(type) {\n    this[kTarget] = null;\n    this[kType] = type;\n  }\n\n  /**\n   * @type {*}\n   */\n  get target() {\n    return this[kTarget];\n  }\n\n  /**\n   * @type {String}\n   */\n  get type() {\n    return this[kType];\n  }\n}\n\nObject.defineProperty(Event.prototype, 'target', { enumerable: true });\nObject.defineProperty(Event.prototype, 'type', { enumerable: true });\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n */\nclass CloseEvent extends Event {\n  /**\n   * Create a new `CloseEvent`.\n   *\n   * @param {String} type The name of the event\n   * @param {Object} [options] A dictionary object that allows for setting\n   *     attributes via object members of the same name\n   * @param {Number} [options.code=0] The status code explaining why the\n   *     connection was closed\n   * @param {String} [options.reason=''] A human-readable string explaining why\n   *     the connection was closed\n   * @param {Boolean} [options.wasClean=false] Indicates whether or not the\n   *     connection was cleanly closed\n   */\n  constructor(type, options = {}) {\n    super(type);\n\n    this[kCode] = options.code === undefined ? 0 : options.code;\n    this[kReason] = options.reason === undefined ? '' : options.reason;\n    this[kWasClean] = options.wasClean === undefined ? false : options.wasClean;\n  }\n\n  /**\n   * @type {Number}\n   */\n  get code() {\n    return this[kCode];\n  }\n\n  /**\n   * @type {String}\n   */\n  get reason() {\n    return this[kReason];\n  }\n\n  /**\n   * @type {Boolean}\n   */\n  get wasClean() {\n    return this[kWasClean];\n  }\n}\n\nObject.defineProperty(CloseEvent.prototype, 'code', { enumerable: true });\nObject.defineProperty(CloseEvent.prototype, 'reason', { enumerable: true });\nObject.defineProperty(CloseEvent.prototype, 'wasClean', { enumerable: true });\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n */\nclass ErrorEvent extends Event {\n  /**\n   * Create a new `ErrorEvent`.\n   *\n   * @param {String} type The name of the event\n   * @param {Object} [options] A dictionary object that allows for setting\n   *     attributes via object members of the same name\n   * @param {*} [options.error=null] The error that generated this event\n   * @param {String} [options.message=''] The error message\n   */\n  constructor(type, options = {}) {\n    super(type);\n\n    this[kError] = options.error === undefined ? null : options.error;\n    this[kMessage] = options.message === undefined ? '' : options.message;\n  }\n\n  /**\n   * @type {*}\n   */\n  get error() {\n    return this[kError];\n  }\n\n  /**\n   * @type {String}\n   */\n  get message() {\n    return this[kMessage];\n  }\n}\n\nObject.defineProperty(ErrorEvent.prototype, 'error', { enumerable: true });\nObject.defineProperty(ErrorEvent.prototype, 'message', { enumerable: true });\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n */\nclass MessageEvent extends Event {\n  /**\n   * Create a new `MessageEvent`.\n   *\n   * @param {String} type The name of the event\n   * @param {Object} [options] A dictionary object that allows for setting\n   *     attributes via object members of the same name\n   * @param {*} [options.data=null] The message content\n   */\n  constructor(type, options = {}) {\n    super(type);\n\n    this[kData] = options.data === undefined ? null : options.data;\n  }\n\n  /**\n   * @type {*}\n   */\n  get data() {\n    return this[kData];\n  }\n}\n\nObject.defineProperty(MessageEvent.prototype, 'data', { enumerable: true });\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n  /**\n   * Register an event listener.\n   *\n   * @param {String} type A string representing the event type to listen for\n   * @param {(Function|Object)} handler The listener to add\n   * @param {Object} [options] An options object specifies characteristics about\n   *     the event listener\n   * @param {Boolean} [options.once=false] A `Boolean` indicating that the\n   *     listener should be invoked at most once after being added. If `true`,\n   *     the listener would be automatically removed when invoked.\n   * @public\n   */\n  addEventListener(type, handler, options = {}) {\n    for (const listener of this.listeners(type)) {\n      if (\n        !options[kForOnEventAttribute] &&\n        listener[kListener] === handler &&\n        !listener[kForOnEventAttribute]\n      ) {\n        return;\n      }\n    }\n\n    let wrapper;\n\n    if (type === 'message') {\n      wrapper = function onMessage(data, isBinary) {\n        const event = new MessageEvent('message', {\n          data: isBinary ? data : data.toString()\n        });\n\n        event[kTarget] = this;\n        callListener(handler, this, event);\n      };\n    } else if (type === 'close') {\n      wrapper = function onClose(code, message) {\n        const event = new CloseEvent('close', {\n          code,\n          reason: message.toString(),\n          wasClean: this._closeFrameReceived && this._closeFrameSent\n        });\n\n        event[kTarget] = this;\n        callListener(handler, this, event);\n      };\n    } else if (type === 'error') {\n      wrapper = function onError(error) {\n        const event = new ErrorEvent('error', {\n          error,\n          message: error.message\n        });\n\n        event[kTarget] = this;\n        callListener(handler, this, event);\n      };\n    } else if (type === 'open') {\n      wrapper = function onOpen() {\n        const event = new Event('open');\n\n        event[kTarget] = this;\n        callListener(handler, this, event);\n      };\n    } else {\n      return;\n    }\n\n    wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute];\n    wrapper[kListener] = handler;\n\n    if (options.once) {\n      this.once(type, wrapper);\n    } else {\n      this.on(type, wrapper);\n    }\n  },\n\n  /**\n   * Remove an event listener.\n   *\n   * @param {String} type A string representing the event type to remove\n   * @param {(Function|Object)} handler The listener to remove\n   * @public\n   */\n  removeEventListener(type, handler) {\n    for (const listener of this.listeners(type)) {\n      if (listener[kListener] === handler && !listener[kForOnEventAttribute]) {\n        this.removeListener(type, listener);\n        break;\n      }\n    }\n  }\n};\n\nmodule.exports = {\n  CloseEvent,\n  ErrorEvent,\n  Event,\n  EventTarget,\n  MessageEvent\n};\n\n/**\n * Call an event listener\n *\n * @param {(Function|Object)} listener The listener to call\n * @param {*} thisArg The value to use as `this`` when calling the listener\n * @param {Event} event The event to pass to the listener\n * @private\n */\nfunction callListener(listener, thisArg, event) {\n  if (typeof listener === 'object' && listener.handleEvent) {\n    listener.handleEvent.call(listener, event);\n  } else {\n    listener.call(thisArg, event);\n  }\n}\n", "'use strict';\n\nconst { tokenChars } = require('./validation');\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n *     parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n  if (dest[name] === undefined) dest[name] = [elem];\n  else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n  const offers = Object.create(null);\n  let params = Object.create(null);\n  let mustUnescape = false;\n  let isEscaping = false;\n  let inQuotes = false;\n  let extensionName;\n  let paramName;\n  let start = -1;\n  let code = -1;\n  let end = -1;\n  let i = 0;\n\n  for (; i < header.length; i++) {\n    code = header.charCodeAt(i);\n\n    if (extensionName === undefined) {\n      if (end === -1 && tokenChars[code] === 1) {\n        if (start === -1) start = i;\n      } else if (\n        i !== 0 &&\n        (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */\n      ) {\n        if (end === -1 && start !== -1) end = i;\n      } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n        if (start === -1) {\n          throw new SyntaxError(`Unexpected character at index ${i}`);\n        }\n\n        if (end === -1) end = i;\n        const name = header.slice(start, end);\n        if (code === 0x2c) {\n          push(offers, name, params);\n          params = Object.create(null);\n        } else {\n          extensionName = name;\n        }\n\n        start = end = -1;\n      } else {\n        throw new SyntaxError(`Unexpected character at index ${i}`);\n      }\n    } else if (paramName === undefined) {\n      if (end === -1 && tokenChars[code] === 1) {\n        if (start === -1) start = i;\n      } else if (code === 0x20 || code === 0x09) {\n        if (end === -1 && start !== -1) end = i;\n      } else if (code === 0x3b || code === 0x2c) {\n        if (start === -1) {\n          throw new SyntaxError(`Unexpected character at index ${i}`);\n        }\n\n        if (end === -1) end = i;\n        push(params, header.slice(start, end), true);\n        if (code === 0x2c) {\n          push(offers, extensionName, params);\n          params = Object.create(null);\n          extensionName = undefined;\n        }\n\n        start = end = -1;\n      } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n        paramName = header.slice(start, i);\n        start = end = -1;\n      } else {\n        throw new SyntaxError(`Unexpected character at index ${i}`);\n      }\n    } else {\n      //\n      // The value of a quoted-string after unescaping must conform to the\n      // token ABNF, so only token characters are valid.\n      // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n      //\n      if (isEscaping) {\n        if (tokenChars[code] !== 1) {\n          throw new SyntaxError(`Unexpected character at index ${i}`);\n        }\n        if (start === -1) start = i;\n        else if (!mustUnescape) mustUnescape = true;\n        isEscaping = false;\n      } else if (inQuotes) {\n        if (tokenChars[code] === 1) {\n          if (start === -1) start = i;\n        } else if (code === 0x22 /* '\"' */ && start !== -1) {\n          inQuotes = false;\n          end = i;\n        } else if (code === 0x5c /* '\\' */) {\n          isEscaping = true;\n        } else {\n          throw new SyntaxError(`Unexpected character at index ${i}`);\n        }\n      } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n        inQuotes = true;\n      } else if (end === -1 && tokenChars[code] === 1) {\n        if (start === -1) start = i;\n      } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n        if (end === -1) end = i;\n      } else if (code === 0x3b || code === 0x2c) {\n        if (start === -1) {\n          throw new SyntaxError(`Unexpected character at index ${i}`);\n        }\n\n        if (end === -1) end = i;\n        let value = header.slice(start, end);\n        if (mustUnescape) {\n          value = value.replace(/\\\\/g, '');\n          mustUnescape = false;\n        }\n        push(params, paramName, value);\n        if (code === 0x2c) {\n          push(offers, extensionName, params);\n          params = Object.create(null);\n          extensionName = undefined;\n        }\n\n        paramName = undefined;\n        start = end = -1;\n      } else {\n        throw new SyntaxError(`Unexpected character at index ${i}`);\n      }\n    }\n  }\n\n  if (start === -1 || inQuotes || code === 0x20 || code === 0x09) {\n    throw new SyntaxError('Unexpected end of input');\n  }\n\n  if (end === -1) end = i;\n  const token = header.slice(start, end);\n  if (extensionName === undefined) {\n    push(offers, token, params);\n  } else {\n    if (paramName === undefined) {\n      push(params, token, true);\n    } else if (mustUnescape) {\n      push(params, paramName, token.replace(/\\\\/g, ''));\n    } else {\n      push(params, paramName, token);\n    }\n    push(offers, extensionName, params);\n  }\n\n  return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n  return Object.keys(extensions)\n    .map((extension) => {\n      let configurations = extensions[extension];\n      if (!Array.isArray(configurations)) configurations = [configurations];\n      return configurations\n        .map((params) => {\n          return [extension]\n            .concat(\n              Object.keys(params).map((k) => {\n                let values = params[k];\n                if (!Array.isArray(values)) values = [values];\n                return values\n                  .map((v) => (v === true ? k : `${k}=${v}`))\n                  .join('; ');\n              })\n            )\n            .join('; ');\n        })\n        .join(', ');\n    })\n    .join(', ');\n}\n\nmodule.exports = { format, parse };\n", "/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex|Readable$\", \"caughtErrors\": \"none\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { Duplex, Readable } = require('stream');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst { isBlob } = require('./validation');\n\nconst {\n  BINARY_TYPES,\n  CLOSE_TIMEOUT,\n  EMPTY_BUFFER,\n  GUID,\n  kForOnEventAttribute,\n  kListener,\n  kStatusCode,\n  kWebSocket,\n  NOOP\n} = require('./constants');\nconst {\n  EventTarget: { addEventListener, removeEventListener }\n} = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst kAborted = Symbol('kAborted');\nconst protocolVersions = [8, 13];\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst subprotocolRegex = /^[!#$%&'*+\\-.0-9A-Z^_`|a-z~]+$/;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n  /**\n   * Create a new `WebSocket`.\n   *\n   * @param {(String|URL)} address The URL to which to connect\n   * @param {(String|String[])} [protocols] The subprotocols\n   * @param {Object} [options] Connection options\n   */\n  constructor(address, protocols, options) {\n    super();\n\n    this._binaryType = BINARY_TYPES[0];\n    this._closeCode = 1006;\n    this._closeFrameReceived = false;\n    this._closeFrameSent = false;\n    this._closeMessage = EMPTY_BUFFER;\n    this._closeTimer = null;\n    this._errorEmitted = false;\n    this._extensions = {};\n    this._paused = false;\n    this._protocol = '';\n    this._readyState = WebSocket.CONNECTING;\n    this._receiver = null;\n    this._sender = null;\n    this._socket = null;\n\n    if (address !== null) {\n      this._bufferedAmount = 0;\n      this._isServer = false;\n      this._redirects = 0;\n\n      if (protocols === undefined) {\n        protocols = [];\n      } else if (!Array.isArray(protocols)) {\n        if (typeof protocols === 'object' && protocols !== null) {\n          options = protocols;\n          protocols = [];\n        } else {\n          protocols = [protocols];\n        }\n      }\n\n      initAsClient(this, address, protocols, options);\n    } else {\n      this._autoPong = options.autoPong;\n      this._closeTimeout = options.closeTimeout;\n      this._isServer = true;\n    }\n  }\n\n  /**\n   * For historical reasons, the custom \"nodebuffer\" type is used by the default\n   * instead of \"blob\".\n   *\n   * @type {String}\n   */\n  get binaryType() {\n    return this._binaryType;\n  }\n\n  set binaryType(type) {\n    if (!BINARY_TYPES.includes(type)) return;\n\n    this._binaryType = type;\n\n    //\n    // Allow to change `binaryType` on the fly.\n    //\n    if (this._receiver) this._receiver._binaryType = type;\n  }\n\n  /**\n   * @type {Number}\n   */\n  get bufferedAmount() {\n    if (!this._socket) return this._bufferedAmount;\n\n    return this._socket._writableState.length + this._sender._bufferedBytes;\n  }\n\n  /**\n   * @type {String}\n   */\n  get extensions() {\n    return Object.keys(this._extensions).join();\n  }\n\n  /**\n   * @type {Boolean}\n   */\n  get isPaused() {\n    return this._paused;\n  }\n\n  /**\n   * @type {Function}\n   */\n  /* istanbul ignore next */\n  get onclose() {\n    return null;\n  }\n\n  /**\n   * @type {Function}\n   */\n  /* istanbul ignore next */\n  get onerror() {\n    return null;\n  }\n\n  /**\n   * @type {Function}\n   */\n  /* istanbul ignore next */\n  get onopen() {\n    return null;\n  }\n\n  /**\n   * @type {Function}\n   */\n  /* istanbul ignore next */\n  get onmessage() {\n    return null;\n  }\n\n  /**\n   * @type {String}\n   */\n  get protocol() {\n    return this._protocol;\n  }\n\n  /**\n   * @type {Number}\n   */\n  get readyState() {\n    return this._readyState;\n  }\n\n  /**\n   * @type {String}\n   */\n  get url() {\n    return this._url;\n  }\n\n  /**\n   * Set up the socket and the internal resources.\n   *\n   * @param {Duplex} socket The network socket between the server and client\n   * @param {Buffer} head The first packet of the upgraded stream\n   * @param {Object} options Options object\n   * @param {Boolean} [options.allowSynchronousEvents=false] Specifies whether\n   *     any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n   *     multiple times in the same tick\n   * @param {Function} [options.generateMask] The function used to generate the\n   *     masking key\n   * @param {Number} [options.maxBufferedChunks=0] The maximum number of\n   *     buffered data chunks\n   * @param {Number} [options.maxFragments=0] The maximum number of message\n   *     fragments\n   * @param {Number} [options.maxPayload=0] The maximum allowed message size\n   * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n   *     not to skip UTF-8 validation for text and close messages\n   * @private\n   */\n  setSocket(socket, head, options) {\n    const receiver = new Receiver({\n      allowSynchronousEvents: options.allowSynchronousEvents,\n      binaryType: this.binaryType,\n      extensions: this._extensions,\n      isServer: this._isServer,\n      maxBufferedChunks: options.maxBufferedChunks,\n      maxFragments: options.maxFragments,\n      maxPayload: options.maxPayload,\n      skipUTF8Validation: options.skipUTF8Validation\n    });\n\n    const sender = new Sender(socket, this._extensions, options.generateMask);\n\n    this._receiver = receiver;\n    this._sender = sender;\n    this._socket = socket;\n\n    receiver[kWebSocket] = this;\n    sender[kWebSocket] = this;\n    socket[kWebSocket] = this;\n\n    receiver.on('conclude', receiverOnConclude);\n    receiver.on('drain', receiverOnDrain);\n    receiver.on('error', receiverOnError);\n    receiver.on('message', receiverOnMessage);\n    receiver.on('ping', receiverOnPing);\n    receiver.on('pong', receiverOnPong);\n\n    sender.onerror = senderOnError;\n\n    //\n    // These methods may not be available if `socket` is just a `Duplex`.\n    //\n    if (socket.setTimeout) socket.setTimeout(0);\n    if (socket.setNoDelay) socket.setNoDelay();\n\n    if (head.length > 0) socket.unshift(head);\n\n    socket.on('close', socketOnClose);\n    socket.on('data', socketOnData);\n    socket.on('end', socketOnEnd);\n    socket.on('error', socketOnError);\n\n    this._readyState = WebSocket.OPEN;\n    this.emit('open');\n  }\n\n  /**\n   * Emit the `'close'` event.\n   *\n   * @private\n   */\n  emitClose() {\n    if (!this._socket) {\n      this._readyState = WebSocket.CLOSED;\n      this.emit('close', this._closeCode, this._closeMessage);\n      return;\n    }\n\n    if (this._extensions[PerMessageDeflate.extensionName]) {\n      this._extensions[PerMessageDeflate.extensionName].cleanup();\n    }\n\n    this._receiver.removeAllListeners();\n    this._readyState = WebSocket.CLOSED;\n    this.emit('close', this._closeCode, this._closeMessage);\n  }\n\n  /**\n   * Start a closing handshake.\n   *\n   *          +----------+   +-----------+   +----------+\n   *     - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n   *    |     +----------+   +-----------+   +----------+     |\n   *          +----------+   +-----------+         |\n   * CLOSING  |ws.close()|<--|close frame|<--+-----+       CLOSING\n   *          +----------+   +-----------+   |\n   *    |           |                        |   +---+        |\n   *                +------------------------+-->|fin| - - - -\n   *    |         +---+                      |   +---+\n   *     - - - - -|fin|<---------------------+\n   *              +---+\n   *\n   * @param {Number} [code] Status code explaining why the connection is closing\n   * @param {(String|Buffer)} [data] The reason why the connection is\n   *     closing\n   * @public\n   */\n  close(code, data) {\n    if (this.readyState === WebSocket.CLOSED) return;\n    if (this.readyState === WebSocket.CONNECTING) {\n      const msg = 'WebSocket was closed before the connection was established';\n      abortHandshake(this, this._req, msg);\n      return;\n    }\n\n    if (this.readyState === WebSocket.CLOSING) {\n      if (\n        this._closeFrameSent &&\n        (this._closeFrameReceived || this._receiver._writableState.errorEmitted)\n      ) {\n        this._socket.end();\n      }\n\n      return;\n    }\n\n    this._readyState = WebSocket.CLOSING;\n    this._sender.close(code, data, !this._isServer, (err) => {\n      //\n      // This error is handled by the `'error'` listener on the socket. We only\n      // want to know if the close frame has been sent here.\n      //\n      if (err) return;\n\n      this._closeFrameSent = true;\n\n      if (\n        this._closeFrameReceived ||\n        this._receiver._writableState.errorEmitted\n      ) {\n        this._socket.end();\n      }\n    });\n\n    setCloseTimer(this);\n  }\n\n  /**\n   * Pause the socket.\n   *\n   * @public\n   */\n  pause() {\n    if (\n      this.readyState === WebSocket.CONNECTING ||\n      this.readyState === WebSocket.CLOSED\n    ) {\n      return;\n    }\n\n    this._paused = true;\n    this._socket.pause();\n  }\n\n  /**\n   * Send a ping.\n   *\n   * @param {*} [data] The data to send\n   * @param {Boolean} [mask] Indicates whether or not to mask `data`\n   * @param {Function} [cb] Callback which is executed when the ping is sent\n   * @public\n   */\n  ping(data, mask, cb) {\n    if (this.readyState === WebSocket.CONNECTING) {\n      throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n    }\n\n    if (typeof data === 'function') {\n      cb = data;\n      data = mask = undefined;\n    } else if (typeof mask === 'function') {\n      cb = mask;\n      mask = undefined;\n    }\n\n    if (typeof data === 'number') data = data.toString();\n\n    if (this.readyState !== WebSocket.OPEN) {\n      sendAfterClose(this, data, cb);\n      return;\n    }\n\n    if (mask === undefined) mask = !this._isServer;\n    this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n  }\n\n  /**\n   * Send a pong.\n   *\n   * @param {*} [data] The data to send\n   * @param {Boolean} [mask] Indicates whether or not to mask `data`\n   * @param {Function} [cb] Callback which is executed when the pong is sent\n   * @public\n   */\n  pong(data, mask, cb) {\n    if (this.readyState === WebSocket.CONNECTING) {\n      throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n    }\n\n    if (typeof data === 'function') {\n      cb = data;\n      data = mask = undefined;\n    } else if (typeof mask === 'function') {\n      cb = mask;\n      mask = undefined;\n    }\n\n    if (typeof data === 'number') data = data.toString();\n\n    if (this.readyState !== WebSocket.OPEN) {\n      sendAfterClose(this, data, cb);\n      return;\n    }\n\n    if (mask === undefined) mask = !this._isServer;\n    this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n  }\n\n  /**\n   * Resume the socket.\n   *\n   * @public\n   */\n  resume() {\n    if (\n      this.readyState === WebSocket.CONNECTING ||\n      this.readyState === WebSocket.CLOSED\n    ) {\n      return;\n    }\n\n    this._paused = false;\n    if (!this._receiver._writableState.needDrain) this._socket.resume();\n  }\n\n  /**\n   * Send a data message.\n   *\n   * @param {*} data The message to send\n   * @param {Object} [options] Options object\n   * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n   *     text\n   * @param {Boolean} [options.compress] Specifies whether or not to compress\n   *     `data`\n   * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n   *     last one\n   * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n   * @param {Function} [cb] Callback which is executed when data is written out\n   * @public\n   */\n  send(data, options, cb) {\n    if (this.readyState === WebSocket.CONNECTING) {\n      throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n    }\n\n    if (typeof options === 'function') {\n      cb = options;\n      options = {};\n    }\n\n    if (typeof data === 'number') data = data.toString();\n\n    if (this.readyState !== WebSocket.OPEN) {\n      sendAfterClose(this, data, cb);\n      return;\n    }\n\n    const opts = {\n      binary: typeof data !== 'string',\n      mask: !this._isServer,\n      compress: true,\n      fin: true,\n      ...options\n    };\n\n    if (!this._extensions[PerMessageDeflate.extensionName]) {\n      opts.compress = false;\n    }\n\n    this._sender.send(data || EMPTY_BUFFER, opts, cb);\n  }\n\n  /**\n   * Forcibly close the connection.\n   *\n   * @public\n   */\n  terminate() {\n    if (this.readyState === WebSocket.CLOSED) return;\n    if (this.readyState === WebSocket.CONNECTING) {\n      const msg = 'WebSocket was closed before the connection was established';\n      abortHandshake(this, this._req, msg);\n      return;\n    }\n\n    if (this._socket) {\n      this._readyState = WebSocket.CLOSING;\n      this._socket.destroy();\n    }\n  }\n}\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CONNECTING', {\n  enumerable: true,\n  value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CONNECTING', {\n  enumerable: true,\n  value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'OPEN', {\n  enumerable: true,\n  value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'OPEN', {\n  enumerable: true,\n  value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSING', {\n  enumerable: true,\n  value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSING', {\n  enumerable: true,\n  value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSED', {\n  enumerable: true,\n  value: readyStates.indexOf('CLOSED')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSED', {\n  enumerable: true,\n  value: readyStates.indexOf('CLOSED')\n});\n\n[\n  'binaryType',\n  'bufferedAmount',\n  'extensions',\n  'isPaused',\n  'protocol',\n  'readyState',\n  'url'\n].forEach((property) => {\n  Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n  Object.defineProperty(WebSocket.prototype, `on${method}`, {\n    enumerable: true,\n    get() {\n      for (const listener of this.listeners(method)) {\n        if (listener[kForOnEventAttribute]) return listener[kListener];\n      }\n\n      return null;\n    },\n    set(handler) {\n      for (const listener of this.listeners(method)) {\n        if (listener[kForOnEventAttribute]) {\n          this.removeListener(method, listener);\n          break;\n        }\n      }\n\n      if (typeof handler !== 'function') return;\n\n      this.addEventListener(method, handler, {\n        [kForOnEventAttribute]: true\n      });\n    }\n  });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|URL)} address The URL to which to connect\n * @param {Array} protocols The subprotocols\n * @param {Object} [options] Connection options\n * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether any\n *     of the `'message'`, `'ping'`, and `'pong'` events can be emitted multiple\n *     times in the same tick\n * @param {Boolean} [options.autoPong=true] Specifies whether or not to\n *     automatically send a pong in response to a ping\n * @param {Number} [options.closeTimeout=30000] Duration in milliseconds to wait\n *     for the closing handshake to finish after `websocket.close()` is called\n * @param {Function} [options.finishRequest] A function which can be used to\n *     customize the headers of each http request before it is sent\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n *     redirects\n * @param {Function} [options.generateMask] The function used to generate the\n *     masking key\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n *     handshake request\n * @param {Number} [options.maxBufferedChunks=1048576] The maximum number of\n *     buffered data chunks\n * @param {Number} [options.maxFragments=131072] The maximum number of message\n *     fragments\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n *     size\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n *     allowed\n * @param {String} [options.origin] Value of the `Origin` or\n *     `Sec-WebSocket-Origin` header\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n *     permessage-deflate\n * @param {Number} [options.protocolVersion=13] Value of the\n *     `Sec-WebSocket-Version` header\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n *     not to skip UTF-8 validation for text and close messages\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n  const opts = {\n    allowSynchronousEvents: true,\n    autoPong: true,\n    closeTimeout: CLOSE_TIMEOUT,\n    protocolVersion: protocolVersions[1],\n    maxBufferedChunks: 1024 * 1024,\n    maxFragments: 128 * 1024,\n    maxPayload: 100 * 1024 * 1024,\n    skipUTF8Validation: false,\n    perMessageDeflate: true,\n    followRedirects: false,\n    maxRedirects: 10,\n    ...options,\n    socketPath: undefined,\n    hostname: undefined,\n    protocol: undefined,\n    timeout: undefined,\n    method: 'GET',\n    host: undefined,\n    path: undefined,\n    port: undefined\n  };\n\n  websocket._autoPong = opts.autoPong;\n  websocket._closeTimeout = opts.closeTimeout;\n\n  if (!protocolVersions.includes(opts.protocolVersion)) {\n    throw new RangeError(\n      `Unsupported protocol version: ${opts.protocolVersion} ` +\n        `(supported versions: ${protocolVersions.join(', ')})`\n    );\n  }\n\n  let parsedUrl;\n\n  if (address instanceof URL) {\n    parsedUrl = address;\n  } else {\n    try {\n      parsedUrl = new URL(address);\n    } catch {\n      throw new SyntaxError(`Invalid URL: ${address}`);\n    }\n  }\n\n  if (parsedUrl.protocol === 'http:') {\n    parsedUrl.protocol = 'ws:';\n  } else if (parsedUrl.protocol === 'https:') {\n    parsedUrl.protocol = 'wss:';\n  }\n\n  websocket._url = parsedUrl.href;\n\n  const isSecure = parsedUrl.protocol === 'wss:';\n  const isIpcUrl = parsedUrl.protocol === 'ws+unix:';\n  let invalidUrlMessage;\n\n  if (parsedUrl.protocol !== 'ws:' && !isSecure && !isIpcUrl) {\n    invalidUrlMessage =\n      'The URL\\'s protocol must be one of \"ws:\", \"wss:\", ' +\n      '\"http:\", \"https:\", or \"ws+unix:\"';\n  } else if (isIpcUrl && !parsedUrl.pathname) {\n    invalidUrlMessage = \"The URL's pathname is empty\";\n  } else if (parsedUrl.hash) {\n    invalidUrlMessage = 'The URL contains a fragment identifier';\n  }\n\n  if (invalidUrlMessage) {\n    const err = new SyntaxError(invalidUrlMessage);\n\n    if (websocket._redirects === 0) {\n      throw err;\n    } else {\n      emitErrorAndClose(websocket, err);\n      return;\n    }\n  }\n\n  const defaultPort = isSecure ? 443 : 80;\n  const key = randomBytes(16).toString('base64');\n  const request = isSecure ? https.request : http.request;\n  const protocolSet = new Set();\n  let perMessageDeflate;\n\n  opts.createConnection =\n    opts.createConnection || (isSecure ? tlsConnect : netConnect);\n  opts.defaultPort = opts.defaultPort || defaultPort;\n  opts.port = parsedUrl.port || defaultPort;\n  opts.host = parsedUrl.hostname.startsWith('[')\n    ? parsedUrl.hostname.slice(1, -1)\n    : parsedUrl.hostname;\n  opts.headers = {\n    ...opts.headers,\n    'Sec-WebSocket-Version': opts.protocolVersion,\n    'Sec-WebSocket-Key': key,\n    Connection: 'Upgrade',\n    Upgrade: 'websocket'\n  };\n  opts.path = parsedUrl.pathname + parsedUrl.search;\n  opts.timeout = opts.handshakeTimeout;\n\n  if (opts.perMessageDeflate) {\n    perMessageDeflate = new PerMessageDeflate({\n      ...opts.perMessageDeflate,\n      isServer: false,\n      maxPayload: opts.maxPayload\n    });\n    opts.headers['Sec-WebSocket-Extensions'] = format({\n      [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n    });\n  }\n  if (protocols.length) {\n    for (const protocol of protocols) {\n      if (\n        typeof protocol !== 'string' ||\n        !subprotocolRegex.test(protocol) ||\n        protocolSet.has(protocol)\n      ) {\n        throw new SyntaxError(\n          'An invalid or duplicated subprotocol was specified'\n        );\n      }\n\n      protocolSet.add(protocol);\n    }\n\n    opts.headers['Sec-WebSocket-Protocol'] = protocols.join(',');\n  }\n  if (opts.origin) {\n    if (opts.protocolVersion < 13) {\n      opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n    } else {\n      opts.headers.Origin = opts.origin;\n    }\n  }\n  if (parsedUrl.username || parsedUrl.password) {\n    opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n  }\n\n  if (isIpcUrl) {\n    const parts = opts.path.split(':');\n\n    opts.socketPath = parts[0];\n    opts.path = parts[1];\n  }\n\n  let req;\n\n  if (opts.followRedirects) {\n    if (websocket._redirects === 0) {\n      websocket._originalIpc = isIpcUrl;\n      websocket._originalSecure = isSecure;\n      websocket._originalHostOrSocketPath = isIpcUrl\n        ? opts.socketPath\n        : parsedUrl.host;\n\n      const headers = options && options.headers;\n\n      //\n      // Shallow copy the user provided options so that headers can be changed\n      // without mutating the original object.\n      //\n      options = { ...options, headers: {} };\n\n      if (headers) {\n        for (const [key, value] of Object.entries(headers)) {\n          options.headers[key.toLowerCase()] = value;\n        }\n      }\n    } else if (websocket.listenerCount('redirect') === 0) {\n      const isSameHost = isIpcUrl\n        ? websocket._originalIpc\n          ? opts.socketPath === websocket._originalHostOrSocketPath\n          : false\n        : websocket._originalIpc\n          ? false\n          : parsedUrl.host === websocket._originalHostOrSocketPath;\n\n      if (!isSameHost || (websocket._originalSecure && !isSecure)) {\n        //\n        // Match curl 7.77.0 behavior and drop the following headers. These\n        // headers are also dropped when following a redirect to a subdomain.\n        //\n        delete opts.headers.authorization;\n        delete opts.headers.cookie;\n\n        if (!isSameHost) delete opts.headers.host;\n\n        opts.auth = undefined;\n      }\n    }\n\n    //\n    // Match curl 7.77.0 behavior and make the first `Authorization` header win.\n    // If the `Authorization` header is set, then there is nothing to do as it\n    // will take precedence.\n    //\n    if (opts.auth && !options.headers.authorization) {\n      options.headers.authorization =\n        'Basic ' + Buffer.from(opts.auth).toString('base64');\n    }\n\n    req = websocket._req = request(opts);\n\n    if (websocket._redirects) {\n      //\n      // Unlike what is done for the `'upgrade'` event, no early exit is\n      // triggered here if the user calls `websocket.close()` or\n      // `websocket.terminate()` from a listener of the `'redirect'` event. This\n      // is because the user can also call `request.destroy()` with an error\n      // before calling `websocket.close()` or `websocket.terminate()` and this\n      // would result in an error being emitted on the `request` object with no\n      // `'error'` event listeners attached.\n      //\n      websocket.emit('redirect', websocket.url, req);\n    }\n  } else {\n    req = websocket._req = request(opts);\n  }\n\n  if (opts.timeout) {\n    req.on('timeout', () => {\n      abortHandshake(websocket, req, 'Opening handshake has timed out');\n    });\n  }\n\n  req.on('error', (err) => {\n    if (req === null || req[kAborted]) return;\n\n    req = websocket._req = null;\n    emitErrorAndClose(websocket, err);\n  });\n\n  req.on('response', (res) => {\n    const location = res.headers.location;\n    const statusCode = res.statusCode;\n\n    if (\n      location &&\n      opts.followRedirects &&\n      statusCode >= 300 &&\n      statusCode < 400\n    ) {\n      if (++websocket._redirects > opts.maxRedirects) {\n        abortHandshake(websocket, req, 'Maximum redirects exceeded');\n        return;\n      }\n\n      req.abort();\n\n      let addr;\n\n      try {\n        addr = new URL(location, address);\n      } catch (e) {\n        const err = new SyntaxError(`Invalid URL: ${location}`);\n        emitErrorAndClose(websocket, err);\n        return;\n      }\n\n      initAsClient(websocket, addr, protocols, options);\n    } else if (!websocket.emit('unexpected-response', req, res)) {\n      abortHandshake(\n        websocket,\n        req,\n        `Unexpected server response: ${res.statusCode}`\n      );\n    }\n  });\n\n  req.on('upgrade', (res, socket, head) => {\n    websocket.emit('upgrade', res);\n\n    //\n    // The user may have closed the connection from a listener of the\n    // `'upgrade'` event.\n    //\n    if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n    req = websocket._req = null;\n\n    const upgrade = res.headers.upgrade;\n\n    if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') {\n      abortHandshake(websocket, socket, 'Invalid Upgrade header');\n      return;\n    }\n\n    const digest = createHash('sha1')\n      .update(key + GUID)\n      .digest('base64');\n\n    if (res.headers['sec-websocket-accept'] !== digest) {\n      abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n      return;\n    }\n\n    const serverProt = res.headers['sec-websocket-protocol'];\n    let protError;\n\n    if (serverProt !== undefined) {\n      if (!protocolSet.size) {\n        protError = 'Server sent a subprotocol but none was requested';\n      } else if (!protocolSet.has(serverProt)) {\n        protError = 'Server sent an invalid subprotocol';\n      }\n    } else if (protocolSet.size) {\n      protError = 'Server sent no subprotocol';\n    }\n\n    if (protError) {\n      abortHandshake(websocket, socket, protError);\n      return;\n    }\n\n    if (serverProt) websocket._protocol = serverProt;\n\n    const secWebSocketExtensions = res.headers['sec-websocket-extensions'];\n\n    if (secWebSocketExtensions !== undefined) {\n      if (!perMessageDeflate) {\n        const message =\n          'Server sent a Sec-WebSocket-Extensions header but no extension ' +\n          'was requested';\n        abortHandshake(websocket, socket, message);\n        return;\n      }\n\n      let extensions;\n\n      try {\n        extensions = parse(secWebSocketExtensions);\n      } catch (err) {\n        const message = 'Invalid Sec-WebSocket-Extensions header';\n        abortHandshake(websocket, socket, message);\n        return;\n      }\n\n      const extensionNames = Object.keys(extensions);\n\n      if (\n        extensionNames.length !== 1 ||\n        extensionNames[0] !== PerMessageDeflate.extensionName\n      ) {\n        const message = 'Server indicated an extension that was not requested';\n        abortHandshake(websocket, socket, message);\n        return;\n      }\n\n      try {\n        perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n      } catch (err) {\n        const message = 'Invalid Sec-WebSocket-Extensions header';\n        abortHandshake(websocket, socket, message);\n        return;\n      }\n\n      websocket._extensions[PerMessageDeflate.extensionName] =\n        perMessageDeflate;\n    }\n\n    websocket.setSocket(socket, head, {\n      allowSynchronousEvents: opts.allowSynchronousEvents,\n      generateMask: opts.generateMask,\n      maxBufferedChunks: opts.maxBufferedChunks,\n      maxFragments: opts.maxFragments,\n      maxPayload: opts.maxPayload,\n      skipUTF8Validation: opts.skipUTF8Validation\n    });\n  });\n\n  if (opts.finishRequest) {\n    opts.finishRequest(req, websocket);\n  } else {\n    req.end();\n  }\n}\n\n/**\n * Emit the `'error'` and `'close'` events.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {Error} The error to emit\n * @private\n */\nfunction emitErrorAndClose(websocket, err) {\n  websocket._readyState = WebSocket.CLOSING;\n  //\n  // The following assignment is practically useless and is done only for\n  // consistency.\n  //\n  websocket._errorEmitted = true;\n  websocket.emit('error', err);\n  websocket.emitClose();\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n  options.path = options.socketPath;\n  return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n  options.path = undefined;\n\n  if (!options.servername && options.servername !== '') {\n    options.servername = net.isIP(options.host) ? '' : options.host;\n  }\n\n  return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket|tls.Socket)} stream The request to\n *     abort or the socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n  websocket._readyState = WebSocket.CLOSING;\n\n  const err = new Error(message);\n  Error.captureStackTrace(err, abortHandshake);\n\n  if (stream.setHeader) {\n    stream[kAborted] = true;\n    stream.abort();\n\n    if (stream.socket && !stream.socket.destroyed) {\n      //\n      // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n      // called after the request completed. See\n      // https://github.com/websockets/ws/issues/1869.\n      //\n      stream.socket.destroy();\n    }\n\n    process.nextTick(emitErrorAndClose, websocket, err);\n  } else {\n    stream.destroy(err);\n    stream.once('error', websocket.emit.bind(websocket, 'error'));\n    stream.once('close', websocket.emitClose.bind(websocket));\n  }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n  if (data) {\n    const length = isBlob(data) ? data.size : toBuffer(data).length;\n\n    //\n    // The `_bufferedAmount` property is used only when the peer is a client and\n    // the opening handshake fails. Under these circumstances, in fact, the\n    // `setSocket()` method is not called, so the `_socket` and `_sender`\n    // properties are set to `null`.\n    //\n    if (websocket._socket) websocket._sender._bufferedBytes += length;\n    else websocket._bufferedAmount += length;\n  }\n\n  if (cb) {\n    const err = new Error(\n      `WebSocket is not open: readyState ${websocket.readyState} ` +\n        `(${readyStates[websocket.readyState]})`\n    );\n    process.nextTick(cb, err);\n  }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {Buffer} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n  const websocket = this[kWebSocket];\n\n  websocket._closeFrameReceived = true;\n  websocket._closeMessage = reason;\n  websocket._closeCode = code;\n\n  if (websocket._socket[kWebSocket] === undefined) return;\n\n  websocket._socket.removeListener('data', socketOnData);\n  process.nextTick(resume, websocket._socket);\n\n  if (code === 1005) websocket.close();\n  else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n  const websocket = this[kWebSocket];\n\n  if (!websocket.isPaused) websocket._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n  const websocket = this[kWebSocket];\n\n  if (websocket._socket[kWebSocket] !== undefined) {\n    websocket._socket.removeListener('data', socketOnData);\n\n    //\n    // On Node.js < 14.0.0 the `'error'` event is emitted synchronously. See\n    // https://github.com/websockets/ws/issues/1940.\n    //\n    process.nextTick(resume, websocket._socket);\n\n    websocket.close(err[kStatusCode]);\n  }\n\n  if (!websocket._errorEmitted) {\n    websocket._errorEmitted = true;\n    websocket.emit('error', err);\n  }\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n  this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {Buffer|ArrayBuffer|Buffer[])} data The message\n * @param {Boolean} isBinary Specifies whether the message is binary or not\n * @private\n */\nfunction receiverOnMessage(data, isBinary) {\n  this[kWebSocket].emit('message', data, isBinary);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n  const websocket = this[kWebSocket];\n\n  if (websocket._autoPong) websocket.pong(data, !this._isServer, NOOP);\n  websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n  this[kWebSocket].emit('pong', data);\n}\n\n/**\n * Resume a readable stream\n *\n * @param {Readable} stream The readable stream\n * @private\n */\nfunction resume(stream) {\n  stream.resume();\n}\n\n/**\n * The `Sender` error event handler.\n *\n * @param {Error} The error\n * @private\n */\nfunction senderOnError(err) {\n  const websocket = this[kWebSocket];\n\n  if (websocket.readyState === WebSocket.CLOSED) return;\n  if (websocket.readyState === WebSocket.OPEN) {\n    websocket._readyState = WebSocket.CLOSING;\n    setCloseTimer(websocket);\n  }\n\n  //\n  // `socket.end()` is used instead of `socket.destroy()` to allow the other\n  // peer to finish sending queued data. There is no need to set a timer here\n  // because `CLOSING` means that it is already set or not needed.\n  //\n  this._socket.end();\n\n  if (!websocket._errorEmitted) {\n    websocket._errorEmitted = true;\n    websocket.emit('error', err);\n  }\n}\n\n/**\n * Set a timer to destroy the underlying raw socket of a WebSocket.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @private\n */\nfunction setCloseTimer(websocket) {\n  websocket._closeTimer = setTimeout(\n    websocket._socket.destroy.bind(websocket._socket),\n    websocket._closeTimeout\n  );\n}\n\n/**\n * The listener of the socket `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n  const websocket = this[kWebSocket];\n\n  this.removeListener('close', socketOnClose);\n  this.removeListener('data', socketOnData);\n  this.removeListener('end', socketOnEnd);\n\n  websocket._readyState = WebSocket.CLOSING;\n\n  //\n  // The close frame might not have been received or the `'end'` event emitted,\n  // for example, if the socket was destroyed due to an error. Ensure that the\n  // `receiver` stream is closed after writing any remaining buffered data to\n  // it. If the readable side of the socket is in flowing mode then there is no\n  // buffered data as everything has been already written. If instead, the\n  // socket is paused, any possible buffered data will be read as a single\n  // chunk.\n  //\n  if (\n    !this._readableState.endEmitted &&\n    !websocket._closeFrameReceived &&\n    !websocket._receiver._writableState.errorEmitted &&\n    this._readableState.length !== 0\n  ) {\n    const chunk = this.read(this._readableState.length);\n\n    websocket._receiver.write(chunk);\n  }\n\n  websocket._receiver.end();\n\n  this[kWebSocket] = undefined;\n\n  clearTimeout(websocket._closeTimer);\n\n  if (\n    websocket._receiver._writableState.finished ||\n    websocket._receiver._writableState.errorEmitted\n  ) {\n    websocket.emitClose();\n  } else {\n    websocket._receiver.on('error', receiverOnFinish);\n    websocket._receiver.on('finish', receiverOnFinish);\n  }\n}\n\n/**\n * The listener of the socket `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n  if (!this[kWebSocket]._receiver.write(chunk)) {\n    this.pause();\n  }\n}\n\n/**\n * The listener of the socket `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n  const websocket = this[kWebSocket];\n\n  websocket._readyState = WebSocket.CLOSING;\n  websocket._receiver.end();\n  this.end();\n}\n\n/**\n * The listener of the socket `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n  const websocket = this[kWebSocket];\n\n  this.removeListener('error', socketOnError);\n  this.on('error', NOOP);\n\n  if (websocket) {\n    websocket._readyState = WebSocket.CLOSING;\n    this.destroy();\n  }\n}\n", "/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^WebSocket$\" }] */\n'use strict';\n\nconst WebSocket = require('./websocket');\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {Duplex} stream The stream.\n * @private\n */\nfunction emitClose(stream) {\n  stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n  if (!this.destroyed && this._writableState.finished) {\n    this.destroy();\n  }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n  this.removeListener('error', duplexOnError);\n  this.destroy();\n  if (this.listenerCount('error') === 0) {\n    // Do not suppress the throwing behavior.\n    this.emit('error', err);\n  }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n  let terminateOnDestroy = true;\n\n  const duplex = new Duplex({\n    ...options,\n    autoDestroy: false,\n    emitClose: false,\n    objectMode: false,\n    writableObjectMode: false\n  });\n\n  ws.on('message', function message(msg, isBinary) {\n    const data =\n      !isBinary && duplex._readableState.objectMode ? msg.toString() : msg;\n\n    if (!duplex.push(data)) ws.pause();\n  });\n\n  ws.once('error', function error(err) {\n    if (duplex.destroyed) return;\n\n    // Prevent `ws.terminate()` from being called by `duplex._destroy()`.\n    //\n    // - If the `'error'` event is emitted before the `'open'` event, then\n    //   `ws.terminate()` is a noop as no socket is assigned.\n    // - Otherwise, the error is re-emitted by the listener of the `'error'`\n    //   event of the `Receiver` object. The listener already closes the\n    //   connection by calling `ws.close()`. This allows a close frame to be\n    //   sent to the other peer. If `ws.terminate()` is called right after this,\n    //   then the close frame might not be sent.\n    terminateOnDestroy = false;\n    duplex.destroy(err);\n  });\n\n  ws.once('close', function close() {\n    if (duplex.destroyed) return;\n\n    duplex.push(null);\n  });\n\n  duplex._destroy = function (err, callback) {\n    if (ws.readyState === ws.CLOSED) {\n      callback(err);\n      process.nextTick(emitClose, duplex);\n      return;\n    }\n\n    let called = false;\n\n    ws.once('error', function error(err) {\n      called = true;\n      callback(err);\n    });\n\n    ws.once('close', function close() {\n      if (!called) callback(err);\n      process.nextTick(emitClose, duplex);\n    });\n\n    if (terminateOnDestroy) ws.terminate();\n  };\n\n  duplex._final = function (callback) {\n    if (ws.readyState === ws.CONNECTING) {\n      ws.once('open', function open() {\n        duplex._final(callback);\n      });\n      return;\n    }\n\n    // If the value of the `_socket` property is `null` it means that `ws` is a\n    // client websocket and the handshake failed. In fact, when this happens, a\n    // socket is never assigned to the websocket. Wait for the `'error'` event\n    // that will be emitted by the websocket.\n    if (ws._socket === null) return;\n\n    if (ws._socket._writableState.finished) {\n      callback();\n      if (duplex._readableState.endEmitted) duplex.destroy();\n    } else {\n      ws._socket.once('finish', function finish() {\n        // `duplex` is not destroyed here because the `'end'` event will be\n        // emitted on `duplex` after this `'finish'` event. The EOF signaling\n        // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n        callback();\n      });\n      ws.close();\n    }\n  };\n\n  duplex._read = function () {\n    if (ws.isPaused) ws.resume();\n  };\n\n  duplex._write = function (chunk, encoding, callback) {\n    if (ws.readyState === ws.CONNECTING) {\n      ws.once('open', function open() {\n        duplex._write(chunk, encoding, callback);\n      });\n      return;\n    }\n\n    ws.send(chunk, callback);\n  };\n\n  duplex.on('end', duplexOnEnd);\n  duplex.on('error', duplexOnError);\n  return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n", "'use strict';\n\nconst { tokenChars } = require('./validation');\n\n/**\n * Parses the `Sec-WebSocket-Protocol` header into a set of subprotocol names.\n *\n * @param {String} header The field value of the header\n * @return {Set} The subprotocol names\n * @public\n */\nfunction parse(header) {\n  const protocols = new Set();\n  let start = -1;\n  let end = -1;\n  let i = 0;\n\n  for (i; i < header.length; i++) {\n    const code = header.charCodeAt(i);\n\n    if (end === -1 && tokenChars[code] === 1) {\n      if (start === -1) start = i;\n    } else if (\n      i !== 0 &&\n      (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */\n    ) {\n      if (end === -1 && start !== -1) end = i;\n    } else if (code === 0x2c /* ',' */) {\n      if (start === -1) {\n        throw new SyntaxError(`Unexpected character at index ${i}`);\n      }\n\n      if (end === -1) end = i;\n\n      const protocol = header.slice(start, end);\n\n      if (protocols.has(protocol)) {\n        throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n      }\n\n      protocols.add(protocol);\n      start = end = -1;\n    } else {\n      throw new SyntaxError(`Unexpected character at index ${i}`);\n    }\n  }\n\n  if (start === -1 || end !== -1) {\n    throw new SyntaxError('Unexpected end of input');\n  }\n\n  const protocol = header.slice(start, i);\n\n  if (protocols.has(protocol)) {\n    throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n  }\n\n  protocols.add(protocol);\n  return protocols;\n}\n\nmodule.exports = { parse };\n", "/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Duplex$\", \"caughtErrors\": \"none\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst http = require('http');\nconst { Duplex } = require('stream');\nconst { createHash } = require('crypto');\n\nconst extension = require('./extension');\nconst PerMessageDeflate = require('./permessage-deflate');\nconst subprotocol = require('./subprotocol');\nconst WebSocket = require('./websocket');\nconst { CLOSE_TIMEOUT, GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\nconst RUNNING = 0;\nconst CLOSING = 1;\nconst CLOSED = 2;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n  /**\n   * Create a `WebSocketServer` instance.\n   *\n   * @param {Object} options Configuration options\n   * @param {Boolean} [options.allowSynchronousEvents=true] Specifies whether\n   *     any of the `'message'`, `'ping'`, and `'pong'` events can be emitted\n   *     multiple times in the same tick\n   * @param {Boolean} [options.autoPong=true] Specifies whether or not to\n   *     automatically send a pong in response to a ping\n   * @param {Number} [options.backlog=511] The maximum length of the queue of\n   *     pending connections\n   * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n   *     track clients\n   * @param {Number} [options.closeTimeout=30000] Duration in milliseconds to\n   *     wait for the closing handshake to finish after `websocket.close()` is\n   *     called\n   * @param {Function} [options.handleProtocols] A hook to handle protocols\n   * @param {String} [options.host] The hostname where to bind the server\n   * @param {Number} [options.maxBufferedChunks=1048576] The maximum number of\n   *     buffered data chunks\n   * @param {Number} [options.maxFragments=131072] The maximum number of message\n   *     fragments\n   * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n   *     size\n   * @param {Boolean} [options.noServer=false] Enable no server mode\n   * @param {String} [options.path] Accept only connections matching this path\n   * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n   *     permessage-deflate\n   * @param {Number} [options.port] The port where to bind the server\n   * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S\n   *     server to use\n   * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n   *     not to skip UTF-8 validation for text and close messages\n   * @param {Function} [options.verifyClient] A hook to reject connections\n   * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket`\n   *     class to use. It must be the `WebSocket` class or class that extends it\n   * @param {Function} [callback] A listener for the `listening` event\n   */\n  constructor(options, callback) {\n    super();\n\n    options = {\n      allowSynchronousEvents: true,\n      autoPong: true,\n      maxBufferedChunks: 1024 * 1024,\n      maxFragments: 128 * 1024,\n      maxPayload: 100 * 1024 * 1024,\n      skipUTF8Validation: false,\n      perMessageDeflate: false,\n      handleProtocols: null,\n      clientTracking: true,\n      closeTimeout: CLOSE_TIMEOUT,\n      verifyClient: null,\n      noServer: false,\n      backlog: null, // use default (511 as implemented in net.js)\n      server: null,\n      host: null,\n      path: null,\n      port: null,\n      WebSocket,\n      ...options\n    };\n\n    if (\n      (options.port == null && !options.server && !options.noServer) ||\n      (options.port != null && (options.server || options.noServer)) ||\n      (options.server && options.noServer)\n    ) {\n      throw new TypeError(\n        'One and only one of the \"port\", \"server\", or \"noServer\" options ' +\n          'must be specified'\n      );\n    }\n\n    if (options.port != null) {\n      this._server = http.createServer((req, res) => {\n        const body = http.STATUS_CODES[426];\n\n        res.writeHead(426, {\n          'Content-Length': body.length,\n          'Content-Type': 'text/plain'\n        });\n        res.end(body);\n      });\n      this._server.listen(\n        options.port,\n        options.host,\n        options.backlog,\n        callback\n      );\n    } else if (options.server) {\n      this._server = options.server;\n    }\n\n    if (this._server) {\n      const emitConnection = this.emit.bind(this, 'connection');\n\n      this._removeListeners = addListeners(this._server, {\n        listening: this.emit.bind(this, 'listening'),\n        error: this.emit.bind(this, 'error'),\n        upgrade: (req, socket, head) => {\n          this.handleUpgrade(req, socket, head, emitConnection);\n        }\n      });\n    }\n\n    if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n    if (options.clientTracking) {\n      this.clients = new Set();\n      this._shouldEmitClose = false;\n    }\n\n    this.options = options;\n    this._state = RUNNING;\n  }\n\n  /**\n   * Returns the bound address, the address family name, and port of the server\n   * as reported by the operating system if listening on an IP socket.\n   * If the server is listening on a pipe or UNIX domain socket, the name is\n   * returned as a string.\n   *\n   * @return {(Object|String|null)} The address of the server\n   * @public\n   */\n  address() {\n    if (this.options.noServer) {\n      throw new Error('The server is operating in \"noServer\" mode');\n    }\n\n    if (!this._server) return null;\n    return this._server.address();\n  }\n\n  /**\n   * Stop the server from accepting new connections and emit the `'close'` event\n   * when all existing connections are closed.\n   *\n   * @param {Function} [cb] A one-time listener for the `'close'` event\n   * @public\n   */\n  close(cb) {\n    if (this._state === CLOSED) {\n      if (cb) {\n        this.once('close', () => {\n          cb(new Error('The server is not running'));\n        });\n      }\n\n      process.nextTick(emitClose, this);\n      return;\n    }\n\n    if (cb) this.once('close', cb);\n\n    if (this._state === CLOSING) return;\n    this._state = CLOSING;\n\n    if (this.options.noServer || this.options.server) {\n      if (this._server) {\n        this._removeListeners();\n        this._removeListeners = this._server = null;\n      }\n\n      if (this.clients) {\n        if (!this.clients.size) {\n          process.nextTick(emitClose, this);\n        } else {\n          this._shouldEmitClose = true;\n        }\n      } else {\n        process.nextTick(emitClose, this);\n      }\n    } else {\n      const server = this._server;\n\n      this._removeListeners();\n      this._removeListeners = this._server = null;\n\n      //\n      // The HTTP/S server was created internally. Close it, and rely on its\n      // `'close'` event.\n      //\n      server.close(() => {\n        emitClose(this);\n      });\n    }\n  }\n\n  /**\n   * See if a given request should be handled by this server instance.\n   *\n   * @param {http.IncomingMessage} req Request object to inspect\n   * @return {Boolean} `true` if the request is valid, else `false`\n   * @public\n   */\n  shouldHandle(req) {\n    if (this.options.path) {\n      const index = req.url.indexOf('?');\n      const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n      if (pathname !== this.options.path) return false;\n    }\n\n    return true;\n  }\n\n  /**\n   * Handle a HTTP Upgrade request.\n   *\n   * @param {http.IncomingMessage} req The request object\n   * @param {Duplex} socket The network socket between the server and client\n   * @param {Buffer} head The first packet of the upgraded stream\n   * @param {Function} cb Callback\n   * @public\n   */\n  handleUpgrade(req, socket, head, cb) {\n    socket.on('error', socketOnError);\n\n    const key = req.headers['sec-websocket-key'];\n    const upgrade = req.headers.upgrade;\n    const version = +req.headers['sec-websocket-version'];\n\n    if (req.method !== 'GET') {\n      const message = 'Invalid HTTP method';\n      abortHandshakeOrEmitwsClientError(this, req, socket, 405, message);\n      return;\n    }\n\n    if (upgrade === undefined || upgrade.toLowerCase() !== 'websocket') {\n      const message = 'Invalid Upgrade header';\n      abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n      return;\n    }\n\n    if (key === undefined || !keyRegex.test(key)) {\n      const message = 'Missing or invalid Sec-WebSocket-Key header';\n      abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n      return;\n    }\n\n    if (version !== 13 && version !== 8) {\n      const message = 'Missing or invalid Sec-WebSocket-Version header';\n      abortHandshakeOrEmitwsClientError(this, req, socket, 400, message, {\n        'Sec-WebSocket-Version': '13, 8'\n      });\n      return;\n    }\n\n    if (!this.shouldHandle(req)) {\n      abortHandshake(socket, 400);\n      return;\n    }\n\n    const secWebSocketProtocol = req.headers['sec-websocket-protocol'];\n    let protocols = new Set();\n\n    if (secWebSocketProtocol !== undefined) {\n      try {\n        protocols = subprotocol.parse(secWebSocketProtocol);\n      } catch (err) {\n        const message = 'Invalid Sec-WebSocket-Protocol header';\n        abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n        return;\n      }\n    }\n\n    const secWebSocketExtensions = req.headers['sec-websocket-extensions'];\n    const extensions = {};\n\n    if (\n      this.options.perMessageDeflate &&\n      secWebSocketExtensions !== undefined\n    ) {\n      const perMessageDeflate = new PerMessageDeflate({\n        ...this.options.perMessageDeflate,\n        isServer: true,\n        maxPayload: this.options.maxPayload\n      });\n\n      try {\n        const offers = extension.parse(secWebSocketExtensions);\n\n        if (offers[PerMessageDeflate.extensionName]) {\n          perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n          extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n        }\n      } catch (err) {\n        const message =\n          'Invalid or unacceptable Sec-WebSocket-Extensions header';\n        abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n        return;\n      }\n    }\n\n    //\n    // Optionally call external client verification handler.\n    //\n    if (this.options.verifyClient) {\n      const info = {\n        origin:\n          req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n        secure: !!(req.socket.authorized || req.socket.encrypted),\n        req\n      };\n\n      if (this.options.verifyClient.length === 2) {\n        this.options.verifyClient(info, (verified, code, message, headers) => {\n          if (!verified) {\n            return abortHandshake(socket, code || 401, message, headers);\n          }\n\n          this.completeUpgrade(\n            extensions,\n            key,\n            protocols,\n            req,\n            socket,\n            head,\n            cb\n          );\n        });\n        return;\n      }\n\n      if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n    }\n\n    this.completeUpgrade(extensions, key, protocols, req, socket, head, cb);\n  }\n\n  /**\n   * Upgrade the connection to WebSocket.\n   *\n   * @param {Object} extensions The accepted extensions\n   * @param {String} key The value of the `Sec-WebSocket-Key` header\n   * @param {Set} protocols The subprotocols\n   * @param {http.IncomingMessage} req The request object\n   * @param {Duplex} socket The network socket between the server and client\n   * @param {Buffer} head The first packet of the upgraded stream\n   * @param {Function} cb Callback\n   * @throws {Error} If called more than once with the same socket\n   * @private\n   */\n  completeUpgrade(extensions, key, protocols, req, socket, head, cb) {\n    //\n    // Destroy the socket if the client has already sent a FIN packet.\n    //\n    if (!socket.readable || !socket.writable) return socket.destroy();\n\n    if (socket[kWebSocket]) {\n      throw new Error(\n        'server.handleUpgrade() was called more than once with the same ' +\n          'socket, possibly due to a misconfiguration'\n      );\n    }\n\n    if (this._state > RUNNING) return abortHandshake(socket, 503);\n\n    const digest = createHash('sha1')\n      .update(key + GUID)\n      .digest('base64');\n\n    const headers = [\n      'HTTP/1.1 101 Switching Protocols',\n      'Upgrade: websocket',\n      'Connection: Upgrade',\n      `Sec-WebSocket-Accept: ${digest}`\n    ];\n\n    const ws = new this.options.WebSocket(null, undefined, this.options);\n\n    if (protocols.size) {\n      //\n      // Optionally call external protocol selection handler.\n      //\n      const protocol = this.options.handleProtocols\n        ? this.options.handleProtocols(protocols, req)\n        : protocols.values().next().value;\n\n      if (protocol) {\n        headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n        ws._protocol = protocol;\n      }\n    }\n\n    if (extensions[PerMessageDeflate.extensionName]) {\n      const params = extensions[PerMessageDeflate.extensionName].params;\n      const value = extension.format({\n        [PerMessageDeflate.extensionName]: [params]\n      });\n      headers.push(`Sec-WebSocket-Extensions: ${value}`);\n      ws._extensions = extensions;\n    }\n\n    //\n    // Allow external modification/inspection of handshake headers.\n    //\n    this.emit('headers', headers, req);\n\n    socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n    socket.removeListener('error', socketOnError);\n\n    ws.setSocket(socket, head, {\n      allowSynchronousEvents: this.options.allowSynchronousEvents,\n      maxBufferedChunks: this.options.maxBufferedChunks,\n      maxFragments: this.options.maxFragments,\n      maxPayload: this.options.maxPayload,\n      skipUTF8Validation: this.options.skipUTF8Validation\n    });\n\n    if (this.clients) {\n      this.clients.add(ws);\n      ws.on('close', () => {\n        this.clients.delete(ws);\n\n        if (this._shouldEmitClose && !this.clients.size) {\n          process.nextTick(emitClose, this);\n        }\n      });\n    }\n\n    cb(ws, req);\n  }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of <event, listener>\n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.<String, Function>} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n *     called\n * @private\n */\nfunction addListeners(server, map) {\n  for (const event of Object.keys(map)) server.on(event, map[event]);\n\n  return function removeListeners() {\n    for (const event of Object.keys(map)) {\n      server.removeListener(event, map[event]);\n    }\n  };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n  server._state = CLOSED;\n  server.emit('close');\n}\n\n/**\n * Handle socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n  this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {Duplex} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n  //\n  // The socket is writable unless the user destroyed or ended it before calling\n  // `server.handleUpgrade()` or in the `verifyClient` function, which is a user\n  // error. Handling this does not make much sense as the worst that can happen\n  // is that some of the data written by the user might be discarded due to the\n  // call to `socket.end()` below, which triggers an `'error'` event that in\n  // turn causes the socket to be destroyed.\n  //\n  message = message || http.STATUS_CODES[code];\n  headers = {\n    Connection: 'close',\n    'Content-Type': 'text/html',\n    'Content-Length': Buffer.byteLength(message),\n    ...headers\n  };\n\n  socket.once('finish', socket.destroy);\n\n  socket.end(\n    `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\\r\\n` +\n      Object.keys(headers)\n        .map((h) => `${h}: ${headers[h]}`)\n        .join('\\r\\n') +\n      '\\r\\n\\r\\n' +\n      message\n  );\n}\n\n/**\n * Emit a `'wsClientError'` event on a `WebSocketServer` if there is at least\n * one listener for it, otherwise call `abortHandshake()`.\n *\n * @param {WebSocketServer} server The WebSocket server\n * @param {http.IncomingMessage} req The request object\n * @param {Duplex} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} message The HTTP response body\n * @param {Object} [headers] The HTTP response headers\n * @private\n */\nfunction abortHandshakeOrEmitwsClientError(\n  server,\n  req,\n  socket,\n  code,\n  message,\n  headers\n) {\n  if (server.listenerCount('wsClientError')) {\n    const err = new Error(message);\n    Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError);\n\n    server.emit('wsClientError', err, socket, req);\n  } else {\n    abortHandshake(socket, code, message, headers);\n  }\n}\n", "import { createServer as createTcpServer, type Server, type Socket } from 'node:net';\nimport { createServer as createTcpTlsServer, type TLSSocket, type TlsOptions } from 'node:tls';\nimport { type IMessageStore, type IPlugin, MessageBuffer } from 'fixparser-common';\nimport { type ServerOptions, type WebSocket, WebSocketServer } from 'ws';\nimport { FIXParser } from './FIXParser.ts';\nimport type { BaseOptions, ConnectionType, Options as FIXParserOptions, Protocol } from './FIXParserBase.ts';\nimport { Field } from './fields/Field.ts';\nimport type { IFIXParser } from './IFIXParser.ts';\nimport { LicenseManager } from './licensemanager/LicenseManager.ts';\nimport { Logger, type LogOptions } from './logger/Logger.ts';\nimport { Message } from './message/Message.ts';\nimport { heartBeat } from './messagetemplates/MessageTemplates.ts';\nimport { serverProcessMessage } from './session/ServerMessageProcessor.ts';\nimport { FrameDecoder } from './util/FrameDecoder.ts';\nimport {\n    DEFAULT_FIX_VERSION,\n    DEFAULT_HEARTBEAT_SECONDS,\n    type Parser,\n    type PickWithOptionality,\n    parseFixVersion,\n    READY_MS,\n    type Version,\n    version,\n} from './util/util.ts';\n\n/**\n * Server-specific FIXParser options that extend the base options.\n * @public\n */\ntype Options = PickWithOptionality<\n    FIXParserOptions,\n    | 'host'\n    | 'port'\n    | 'protocol'\n    | 'sender'\n    | 'target'\n    | 'heartbeatIntervalSeconds'\n    | 'fixVersion'\n    | 'messageStoreIn'\n    | 'messageStoreOut'\n    | 'tlsOptions'\n    | 'tlsSkipStdInPipe'\n    | 'onMessage'\n    | 'onOpen'\n    | 'onError'\n    | 'onClose'\n    | 'onReady'\n>;\n\n/**\n * Server implementation of the FIXParser interface.\n * This class provides server-side FIX communication capabilities, supporting multiple protocols\n * including TCP, TLS, and WebSocket. It handles incoming connections, message processing,\n * and session management.\n */\nclass FIXServer implements IFIXParser {\n    /* FIXParser version */\n    public static readonly version: Version = version;\n    /* Name of current parser name */\n    public readonly parserName: Parser = 'FIXServer';\n    /* Instance of FIXParser class */\n    public readonly fixParser: FIXParser = new FIXParser();\n    /* Heartbeat interval ID */\n    public heartBeatIntervalId: ReturnType<typeof setInterval> | undefined = undefined;\n    /* Type of socket connection (Socket, WebSocket, TLSSocket) */\n    public socket: WebSocket | Socket | undefined = undefined;\n    /* Current connection status */\n    public connected = false;\n    /* Target hostname or IP address */\n    public host = 'localhost';\n    /* Target port */\n    public port = 9878;\n    /* Type of protocol */\n    public protocol: Protocol = 'tcp';\n    /* Assigned value used to identify firm sending message, SenderCompID tag 49 */\n    public sender = '';\n    /* Assigned value used to identify receiving firm, TargetCompID tag 56 */\n    public target = '';\n    /* Heartbeat interval in seconds */\n    public heartBeatInterval: number = DEFAULT_HEARTBEAT_SECONDS;\n    /* Protocol version, defaults to \"FIXT.1.1\" used by BeginString tag 8 */\n    public fixVersion: string = DEFAULT_FIX_VERSION;\n    /* Message buffer of 2500 incoming messages */\n    public messageStoreIn: IMessageStore<Message> = new MessageBuffer();\n    /* Message buffer of 2500 outgoing messages */\n    public messageStoreOut: IMessageStore<Message> = new MessageBuffer();\n    /* Whether an outgoing message contains a Logout */\n    public requestedLogout = false;\n    /* Indicates whether this instance is acceptor or initiator */\n    public connectionType: ConnectionType = 'acceptor';\n    /* Logger instance */\n    public logger: Logger = new Logger();\n    /* Whether logging is enabled */\n    public logging = true;\n    /* Log options */\n    public logOptions: LogOptions | undefined;\n    /* TLS Server Options */\n    public tlsOptions?: TlsOptions;\n    /* TLS Skip Standard Input pipe of socket */\n    public tlsSkipStdInPipe?: boolean;\n    /* Server socket connection */\n    public server: Server | WebSocketServer | undefined = undefined;\n    /* Whether current FIX session has logged in */\n    public isLoggedIn = false;\n    /* Message counter */\n    public messageCounter = 0;\n\n    private onMessageCallbacks: Options['onMessage'][] = [];\n    private onOpenCallbacks: Options['onOpen'][] = [];\n    private onErrorCallbacks: Options['onError'][] = [];\n    private onCloseCallbacks: Options['onClose'][] = [];\n    private onReadyCallbacks: Options['onReady'][] = [];\n\n    /**\n     * Constructor for initializing an instance with the provided options.\n     *\n     * @param {BaseOptions} [options={ logging: true, logOptions: undefined, fixVersion: DEFAULT_FIX_VERSION, skipValidation: false }] - The options to configure the instance.\n     * @param {boolean} [options.logging=true] - Whether logging is enabled (defaults to `true`).\n     * @param {LogOptions} [options.logOptions=undefined] - Options to customize logging behavior.\n     * @param {string} [options.fixVersion=DEFAULT_FIX_VERSION] - The FIX protocol version to use (defaults to `DEFAULT_FIX_VERSION`).\n     * @param {boolean} [options.skipValidation=false] - Whether to skip validation of FIX messages (defaults to `false`).\n     */\n    constructor(\n        options: BaseOptions & {\n            plugins?: Array<IPlugin<FIXServer>>;\n        } = { logging: true, logOptions: undefined, fixVersion: DEFAULT_FIX_VERSION, skipValidation: false },\n    ) {\n        this.logging = options.logging ?? true;\n        this.logOptions = options.logOptions;\n        this.fixParser.fixVersion = options.fixVersion ? parseFixVersion(options.fixVersion) : DEFAULT_FIX_VERSION;\n        this.fixVersion = this.fixParser.fixVersion;\n        this.fixParser.fixParserBase.skipValidation = options.skipValidation;\n\n        if (options.plugins) {\n            for (const plugin of options.plugins) {\n                void plugin.register(this);\n            }\n        }\n    }\n\n    /**\n     * Registers a callback function to be invoked when a FIX message is received.\n     * Multiple callbacks can be registered, and all will be triggered in the order they were added.\n     *\n     * @param {Options['onMessage']} callback - The callback function to handle incoming FIX messages.\n     */\n    public addOnMessageCallback(callback: Options['onMessage']) {\n        this.onMessageCallbacks.push(callback);\n    }\n\n    /**\n     * Registers a callback function to be invoked when the FIX connection is successfully established.\n     * Multiple callbacks can be registered, and all will be triggered in the order they were added.\n     *\n     * @param {Options['onOpen']} callback - The callback function to handle connection opening.\n     */\n    public addOnOpenCallback(callback: Options['onOpen']) {\n        this.onOpenCallbacks.push(callback);\n    }\n\n    /**\n     * Registers a callback function to be invoked when a FIX connection error occurs.\n     * Multiple callbacks can be registered, and all will be triggered in the order they were added.\n     *\n     * @param {Options['onError']} callback - The callback function to handle connection errors.\n     */\n    public addOnErrorCallback(callback: Options['onError']) {\n        this.onErrorCallbacks.push(callback);\n    }\n\n    /**\n     * Registers a callback function to be invoked when the FIX connection is closed.\n     * Multiple callbacks can be registered, and all will be triggered in the order they were added.\n     *\n     * @param {Options['onClose']} callback - The callback function to handle connection closure.\n     */\n    public addOnCloseCallback(callback: Options['onClose']) {\n        this.onCloseCallbacks.push(callback);\n    }\n\n    /**\n     * Registers a callback function to be invoked when the FIX connection is ready for use.\n     * Multiple callbacks can be registered, and all will be triggered in the order they were added.\n     *\n     * @param {Options['onReady']} callback - The callback function to handle connection readiness.\n     */\n    public addOnReadyCallback(callback: Options['onReady']) {\n        this.onReadyCallbacks.push(callback);\n    }\n\n    private triggerOnMessage(message: Message) {\n        for (const cb of this.onMessageCallbacks) {\n            cb?.(message);\n        }\n    }\n\n    private triggerOnOpen() {\n        for (const cb of this.onOpenCallbacks) {\n            cb?.();\n        }\n    }\n\n    private triggerOnError(error: Error) {\n        for (const cb of this.onErrorCallbacks) {\n            cb?.(error);\n        }\n    }\n\n    private triggerOnClose() {\n        for (const cb of this.onCloseCallbacks) {\n            cb?.();\n        }\n    }\n\n    private triggerOnReady() {\n        for (const cb of this.onReadyCallbacks) {\n            cb?.();\n        }\n    }\n\n    /**\n     * Callback function that is invoked when a FIX message is received.\n     *\n     * @param {Message} message - The received FIX message.\n     */\n    public onMessageCallback: Options['onMessage'] = () => {};\n\n    /**\n     * Callback function that is invoked when the FIX connection is established.\n     */\n    public onOpenCallback: Options['onOpen'] = () => {};\n\n    /**\n     * Callback function that is invoked when a FIX connection error occurs.\n     *\n     * @param {Error} error - The error that occurred.\n     */\n    public onErrorCallback: Options['onError'] = () => {};\n\n    /**\n     * Callback function that is invoked when the FIX connection is closed.\n     */\n    public onCloseCallback: Options['onClose'] = () => {};\n\n    /**\n     * Callback function that is invoked when the FIX connection is ready for use.\n     */\n    public onReadyCallback: Options['onReady'] = () => {};\n\n    /**\n     * Creates a FIX server that listens for incoming connections. This method sets up\n     * various configurations, including logging, connection options, and callbacks for\n     * events like message reception, connection opening, error handling, and closure.\n     *\n     * - Initializes logging based on the provided options.\n     * - Validates the license before proceeding with server creation.\n     * - Sets up connection parameters such as host, port, sender, and target identifiers.\n     * - Sets the heartbeat interval and FIX version.\n     * - Configures callback functions for handling messages, connection events, and errors.\n     * - Calls the `initialize()` method to begin server operation.\n     *\n     * @param {Options} [options={}] - The configuration options for the server.\n     * @param {string} [options.host=this.host] - The host address the server will bind to.\n     * @param {number} [options.port=this.port] - The port number the server will listen on.\n     * @param {string} [options.protocol=this.protocol] - The protocol to be used ('tcp', 'ssl-tcp', 'websocket', etc.).\n     * @param {string} [options.sender=this.sender] - The sender identifier for the server.\n     * @param {string} [options.target=this.target] - The target identifier for the server.\n     * @param {number} [options.heartbeatIntervalSeconds=DEFAULT_HEARTBEAT_SECONDS] - The heartbeat interval in seconds.\n     * @param {string} [options.messageStoreIn=new MessageBuffer()] - Optional custom message buffer for incoming messages.\n     * @param {string} [options.messageStoreOut=new MessageBuffer()] - Optional custom message buffer for outgoing messages.\n     * @param {function} [options.onMessage=this.onMessageCallback] - Callback function for handling incoming messages.\n     * @param {function} [options.onOpen=this.onOpenCallback] - Callback function for handling connection open event.\n     * @param {function} [options.onError=this.onErrorCallback] - Callback function for handling errors.\n     * @param {function} [options.onClose=this.onCloseCallback] - Callback function for handling connection close event.\n     * @param {function} [options.onReady=this.onReadyCallback] - Callback function for handling the ready event.\n     *\n     * @returns {void}\n     */\n    public createServer(options: Options = {}): void {\n        const {\n            host = this.host,\n            port = this.port,\n            protocol = this.protocol,\n            sender = this.sender,\n            target = this.target,\n            heartbeatIntervalSeconds = DEFAULT_HEARTBEAT_SECONDS,\n            messageStoreIn = new MessageBuffer(),\n            messageStoreOut = new MessageBuffer(),\n            tlsOptions = {},\n            tlsSkipStdInPipe = false,\n            onMessage = this.onMessageCallback,\n            onOpen = this.onOpenCallback,\n            onError = this.onErrorCallback,\n            onClose = this.onCloseCallback,\n            onReady = this.onReadyCallback,\n        } = options;\n        this.logger = new Logger(\n            this.logOptions\n                ? {\n                      name: this.logOptions.name ?? 'fixserver',\n                      ...this.logOptions,\n                  }\n                : {\n                      name: 'fixserver',\n                      format: 'json',\n                  },\n        );\n        if (!this.logging) {\n            this.logger.silent = true;\n        }\n        if (!LicenseManager.validateLicense()) {\n            throw new Error(LicenseManager.ERROR_MESSAGE_NO_LICENSE);\n        }\n\n        this.connectionType = 'acceptor';\n        this.fixVersion = parseFixVersion(this.fixVersion);\n        this.fixParser.fixVersion = parseFixVersion(this.fixVersion);\n        this.messageStoreIn = messageStoreIn;\n        this.messageStoreOut = messageStoreOut;\n        this.protocol = protocol;\n        this.sender = sender;\n        this.target = target;\n        this.port = port;\n        this.host = host;\n        if (tlsOptions) this.tlsOptions = tlsOptions as TlsOptions;\n        if (tlsSkipStdInPipe) this.tlsSkipStdInPipe = tlsSkipStdInPipe;\n        this.fixParser.sender = sender;\n        this.fixParser.target = target;\n        this.heartBeatInterval = heartbeatIntervalSeconds;\n\n        this.onMessageCallback = onMessage;\n        this.onOpenCallback = onOpen;\n        this.onErrorCallback = onError;\n        this.onCloseCallback = onClose;\n        this.onReadyCallback = onReady;\n\n        this.initialize();\n    }\n\n    /**\n     * Initializes the server by setting up the appropriate connection based on the specified protocol.\n     *\n     * - This method sets the `messageCounter` to zero, which tracks the number of messages sent.\n     * - Depending on the `protocol` (either 'tcp' or 'websocket'), it calls the appropriate server creation method.\n     * - If the protocol is invalid, an error is logged indicating the issue.\n     *\n     * @returns {void}\n     */\n    private initialize() {\n        this.messageCounter = 0;\n        if (this.protocol === 'tcp') {\n            this.setupTcpServer();\n        } else if (this.protocol === 'tls-tcp') {\n            this.setupTcpTlsServer();\n        } else if (this.protocol === 'websocket') {\n            this.createWebsocketServer();\n        } else {\n            this.logger.logError({\n                message: `FIXServer: Create server, invalid protocol: ${this.protocol.toUpperCase()}`,\n            });\n        }\n    }\n\n    /**\n     * Creates and starts a TCP server to handle incoming connections.\n     * The server listens for incoming client connections on the specified `host` and `port`.\n     * For each connection, it sets up socket event listeners to manage data transmission,\n     * connection lifecycle (open, close, error), and communication processing.\n     *\n     * This method is used to create a standard TCP server and is invoked when the `protocol`\n     * is set to `'tcp'`.\n     *\n     * @returns {void}\n     *\n     * @throws {Error} Will throw an error if the server fails to start or if there is a problem\n     * with socket connection handling.\n     */\n    private setupTcpServer() {\n        this.server = createTcpServer((socket: Socket) => {\n            this.logger.log({\n                level: 'info',\n                message: `FIXServer (${this.protocol.toUpperCase()}): -- Connection established`,\n            });\n            this.connected = true;\n            this.onOpenCallback?.();\n            this.triggerOnOpen();\n            this.setupSocket(socket);\n        });\n\n        this.server.listen(this.port, this.host, () => {\n            this.logger.log({\n                level: 'info',\n                message: `FIXServer (${this.protocol.toUpperCase()}): -- Listening for connections at ${this.host}:${this.port}...`,\n            });\n            setTimeout(() => {\n                this.onReadyCallback?.();\n                this.triggerOnReady();\n            }, READY_MS);\n        });\n    }\n\n    /**\n     * Sets up and starts a TCP/TLS server to handle incoming connections.\n     * The server is created using the `createTcpTlsServer` function and listens for TLS-TCP\n     * connections based on the provided `tlsOptions`. The method sets up the\n     * necessary event listeners to handle connection events, such as data reception,\n     * connection establishment, and errors.\n     *\n     * @returns {void}\n     *\n     * @throws {Error} Will throw an error if the server fails to start or if there is an issue\n     * with the socket connection or TLS setup.\n     */\n    private setupTcpTlsServer() {\n        try {\n            this.server = createTcpTlsServer(\n                this.tlsOptions ?? ({ host: this.host, port: this.port } as TlsOptions),\n                (socket: TLSSocket) => {\n                    this.logger.log({\n                        level: 'info',\n                        message: `FIXServer (${this.protocol.toUpperCase()}): -- Connection established`,\n                    });\n                    this.connected = true;\n                    this.onOpenCallback?.();\n                    this.triggerOnOpen();\n                    this.setupSocket(socket);\n                },\n            );\n        } catch (error: unknown) {\n            if (error instanceof Error) {\n                this.logger.logError({\n                    level: 'info',\n                    message: `FIXServer (${this.protocol.toUpperCase()}): -- Server at ${this.host}:${this.port} failed with error: ${error.message}.`,\n                });\n            } else {\n                this.logger.logError({\n                    level: 'info',\n                    message: `FIXServer (${this.protocol.toUpperCase()}): -- Server at ${this.host}:${this.port} failed with unspecified error.`,\n                });\n            }\n            return;\n        }\n\n        this.server.listen(this.port, this.host, () => {\n            this.logger.log({\n                level: 'info',\n                message: `FIXServer (${this.protocol.toUpperCase()}): -- Listening for connections at ${this.host}:${this.port}...`,\n            });\n            setTimeout(() => {\n                this.onReadyCallback?.();\n                this.triggerOnReady();\n            }, READY_MS);\n        });\n    }\n\n    /**\n     * Sets up event listeners and data handling for the given socket.\n     * This function is used for both TCP and TLS-TCP connections to handle\n     * incoming data, connection lifecycle events (open, close, timeout, error),\n     * and manages communication state (such as heartbeat, message buffer, etc.).\n     *\n     * @param {Socket | TLSSocket} socket - The socket object representing the client connection.\n     * This can be a regular TCP socket (`net.Socket`) or a TLS socket (`TLSSocket`).\n     *\n     * @returns {void}\n     *\n     * @throws {Error} Will throw an error if there is an issue with socket events or data processing.\n     */\n    private setupSocket(socket: Socket | TLSSocket) {\n        this.socket = socket;\n\n        this.socket.pipe(new FrameDecoder()).on('data', (data: string) => {\n            this.connected = true;\n            const messages: Message[] = this.parse(data.toString());\n            for (const message of messages) {\n                serverProcessMessage(this, message);\n                this.messageStoreIn.add(message);\n                this.onMessageCallback?.(message);\n                this.triggerOnMessage(message);\n            }\n        });\n\n        this.socket.on('connect', () => {\n            this.logger.log({\n                level: 'info',\n                message: `FIXServer (${this.protocol.toUpperCase()}): -- Connection established`,\n            });\n            this.connected = true;\n            this.onOpenCallback?.();\n            this.triggerOnOpen();\n        });\n\n        this.socket.on('close', () => {\n            this.connected = false;\n            this.stopHeartbeat();\n            this.resetSession();\n            this.logger.log({\n                level: 'info',\n                message: `FIXServer (${this.protocol.toUpperCase()}): -- Closed connection`,\n            });\n            this.onCloseCallback?.();\n            this.triggerOnClose();\n        });\n\n        this.socket.on('timeout', () => {\n            this.connected = false;\n            this.stopHeartbeat();\n            this.close();\n            this.resetSession();\n            this.logger.logError({\n                message: `FIXServer (${this.protocol.toUpperCase()}): -- Connection timeout`,\n            });\n            this.onCloseCallback?.();\n            this.triggerOnClose();\n        });\n\n        this.socket.on('error', (error: Error) => {\n            this.connected = false;\n            this.stopHeartbeat();\n            this.close();\n            this.resetSession();\n            this.logger.logError({\n                message: `FIXServer (${this.protocol.toUpperCase()}): -- Error`,\n                error,\n            });\n            this.onErrorCallback?.(error);\n            this.triggerOnError(error);\n        });\n    }\n\n    /**\n     * Creates a WebSocket server that listens for incoming connections and handles communication.\n     *\n     * - Sets up a WebSocket server with specified `host` and `port`.\n     * - Handles various WebSocket events: 'connection', 'message', 'close', 'error', and 'listening'.\n     * - Logs connection status, errors, and message reception using the logger.\n     * - Processes incoming messages and invokes the appropriate callbacks for message handling, connection open/close, and errors.\n     *\n     * @returns {void}\n     */\n    private createWebsocketServer() {\n        const serverOptions: ServerOptions = {\n            host: this.host,\n            port: this.port,\n        };\n        this.server = new WebSocketServer(serverOptions);\n        this.server.on('connection', (socket) => {\n            this.connected = true;\n            socket.on('message', (data: string | Buffer) => {\n                const messages: Message[] = this.parse(data.toString());\n                let i = 0;\n                for (i; i < messages.length; i++) {\n                    serverProcessMessage(this, messages[i]);\n                    this.messageStoreIn.add(messages[i]);\n                    this.onMessageCallback?.(messages[i]);\n                }\n            });\n        });\n        this.server.on('close', () => {\n            this.connected = false;\n            this.stopHeartbeat();\n            this.onCloseCallback?.();\n            this.triggerOnClose();\n            this.logger.log({\n                level: 'info',\n                message: `FIXServer (${this.protocol.toUpperCase()}): -- Closed connection`,\n            });\n        });\n        this.server.on('error', (error) => {\n            this.connected = false;\n            this.stopHeartbeat();\n            this.close();\n            this.onErrorCallback?.(error);\n            this.triggerOnError(error);\n            this.logger.logError({\n                message: `FIXServer (${this.protocol.toUpperCase()}): -- Error`,\n                error,\n            });\n        });\n        this.server.on('listening', () => {\n            this.logger.log({\n                level: 'info',\n                message: `FIXServer (${this.protocol.toUpperCase()}): -- Listening for connections at ${this.host}:${\n                    this.port\n                }...`,\n            });\n            setTimeout(() => {\n                this.onReadyCallback?.();\n                this.triggerOnReady();\n            }, READY_MS);\n        });\n    }\n\n    /**\n     * Get the next outgoing message sequence number.\n     *\n     * @returns The next outgoing message sequence number.\n     */\n    public getNextTargetMsgSeqNum(): number {\n        return this.fixParser.getNextTargetMsgSeqNum();\n    }\n\n    /**\n     * Set the next outgoing message sequence number.\n     *\n     * @param nextMsgSeqNum - The next message sequence number.\n     * @returns The next outgoing message sequence number.\n     */\n    public setNextTargetMsgSeqNum(nextMsgSeqNum: number): number {\n        return this.fixParser.setNextTargetMsgSeqNum(nextMsgSeqNum);\n    }\n\n    /**\n     * Get current timestamp.\n     *\n     * @param dateObject - An instance of a Date class.\n     * @returns The current timestamp.\n     */\n    public getTimestamp(dateObject = new Date()): string {\n        return this.fixParser.getTimestamp(dateObject);\n    }\n\n    /**\n     * Create an instance of a FIX Message.\n     *\n     * @param fields - An array of Fields.\n     * @returns A FIX Message class instance.\n     */\n    public createMessage(...fields: Field[]): Message {\n        return this.fixParser.createMessage(...fields);\n    }\n\n    /**\n     * Parse a FIX message string into Message instance(s).\n     *\n     * @param data - FIX message string.\n     * @returns FIX Message class instance(s).\n     */\n    public parse(data: string): Message[] {\n        if (!LicenseManager.validateFreeLicense()) {\n            throw new Error(LicenseManager.ERROR_MESSAGE_NO_FREE_LICENSE);\n        }\n        return this.fixParser.parse(data);\n    }\n\n    /**\n     * Send a FIX message.\n     *\n     * @param message - FIX Message class instance.\n     */\n    public send(message: Message): void {\n        if (!LicenseManager.validateLicense()) {\n            throw new Error(LicenseManager.ERROR_MESSAGE_NO_LICENSE);\n        }\n        if (this.protocol === 'tcp') {\n            const socket: Socket = this.socket! as Socket;\n            const encodedMessage: string = message.encode();\n            this.fixParser.setNextTargetMsgSeqNum(this.fixParser.getNextTargetMsgSeqNum() + 1);\n            if (!socket.write(encodedMessage)) {\n                this.logger.logError({\n                    message: `FIXServer (${this.protocol.toUpperCase()}): -- Could not send message, socket not open`,\n                    fix: encodedMessage.replace(/\\x01/g, '|'),\n                });\n            } else {\n                this.messageStoreOut.add(message.clone());\n                this.restartHeartbeat();\n                this.logger.log({\n                    level: 'info',\n                    message: `FIXServer (${this.protocol.toUpperCase()}): >> sent`,\n                    fix: encodedMessage.replace(/\\x01/g, '|'),\n                });\n            }\n        } else if (this.protocol === 'websocket') {\n            const server: WebSocketServer = this.server! as WebSocketServer;\n            const encodedMessage: string = message.encode();\n            if (server?.clients && server.clients.size > 0) {\n                server.clients.forEach((client: WebSocket) => {\n                    if (client.readyState === client.OPEN) {\n                        this.fixParser.setNextTargetMsgSeqNum(this.fixParser.getNextTargetMsgSeqNum() + 1);\n                        client.send(encodedMessage);\n                        this.messageStoreOut.add(message.clone());\n                        this.restartHeartbeat();\n                        this.logger.log({\n                            level: 'info',\n                            message: `FIXServer (${this.protocol.toUpperCase()}): >> sent`,\n                            fix: encodedMessage.replace(/\\x01/g, '|'),\n                        });\n                    }\n                });\n            } else {\n                this.logger.logError({\n                    message: `FIXServer (${this.protocol.toUpperCase()}): -- Could not send message, socket not connected`,\n                    fix: message,\n                });\n            }\n        }\n    }\n\n    /**\n     * Get connection status.\n     *\n     * @returns Current connection status.\n     */\n    public isConnected(): boolean {\n        return this.connected;\n    }\n\n    /**\n     * Resets the current session.\n     */\n    private resetSession() {\n        this.isLoggedIn = false;\n        this.messageCounter = 0;\n    }\n\n    /**\n     * Close current connection.\n     */\n    public close(): void {\n        if (this.protocol === 'tcp') {\n            const socket: Socket = this.socket! as Socket;\n            const server: Server = this.server! as Server;\n            if (socket?.end) {\n                socket.end(() => {\n                    if (server) {\n                        server.close(() => {\n                            this.logger.log({\n                                level: 'info',\n                                message: `FIXServer (${this.protocol.toUpperCase()}): -- Ended session`,\n                            });\n                            this.initialize();\n                        });\n                    }\n                });\n            }\n        } else if (this.protocol === 'websocket') {\n            const server: WebSocketServer = this.server! as WebSocketServer;\n            if (server) {\n                server.clients.forEach((client: WebSocket) => {\n                    client.close();\n                });\n                server.close(() => {\n                    this.logger.log({\n                        level: 'info',\n                        message: `FIXServer (${this.protocol.toUpperCase()}): -- Ended session`,\n                    });\n                    this.initialize();\n                });\n            }\n        }\n    }\n\n    /**\n     * Destroys the server and closes the connection.\n     *\n     * - Stops the heartbeat mechanism to prevent any ongoing activity.\n     * - If the protocol is TCP, it destroys the socket and closes the server.\n     * - If the protocol is WebSocket, it closes all client connections and shuts down the server.\n     * - Logs the server destruction event.\n     *\n     * @returns {void}\n     */\n    public destroy(): void {\n        this.stopHeartbeat();\n        if (this.protocol === 'tcp') {\n            const socket: Socket = this.socket as Socket;\n            const server: Server = this.server as Server;\n            socket?.destroy();\n            server?.close(() => {\n                this.logger.log({\n                    level: 'info',\n                    message: `FIXServer (${this.protocol.toUpperCase()}): -- Destroyed`,\n                    fix: undefined,\n                });\n            });\n        } else if (this.protocol === 'websocket') {\n            const server: WebSocketServer = this.server as WebSocketServer;\n            server?.clients.forEach((client: WebSocket) => {\n                client.close();\n            });\n            server?.close(() => {\n                this.logger.log({\n                    level: 'info',\n                    message: `FIXServer (${this.protocol.toUpperCase()}): -- Destroyed`,\n                });\n            });\n        }\n    }\n\n    /**\n     * Stop heartbeat interval.\n     */\n    public stopHeartbeat(): void {\n        clearInterval(this.heartBeatIntervalId);\n    }\n\n    /**\n     * Restart heartbeat interval.\n     */\n    public restartHeartbeat(): void {\n        this.stopHeartbeat();\n        this.startHeartbeat(this.heartBeatInterval, true);\n    }\n\n    /**\n     * Start heartbeat interval.\n     *\n     * @param heartBeatInterval - Heartbeat interval in seconds.\n     * @param disableLog - Whether to disable heartbeat logs.\n     */\n    public startHeartbeat(heartBeatInterval: number = this.heartBeatInterval, disableLog?: boolean): void {\n        this.stopHeartbeat();\n        if (!disableLog) {\n            this.logger.log({\n                level: 'info',\n                message: `FIXServer (${this.protocol.toUpperCase()}): -- Heartbeat configured to ${heartBeatInterval} seconds`,\n            });\n        }\n        this.heartBeatInterval = heartBeatInterval;\n        this.heartBeatIntervalId = setInterval(() => {\n            const heartBeatMessage: Message = heartBeat(this);\n            this.send(heartBeatMessage);\n            const encodedMessage: string = heartBeatMessage.encode();\n            this.logger.log({\n                level: 'info',\n                message: `FIXServer (${this.protocol.toUpperCase()}): >> sent Heartbeat`,\n                fix: encodedMessage.replace(/\\x01/g, '|'),\n            });\n        }, this.heartBeatInterval * 1000);\n    }\n}\n\nexport type { TlsOptions } from 'node:tls';\nexport type { IAsyncMessageStore, ILogTransporter, IMessageStore, Level, LogMessage } from 'fixparser-common';\nexport { isAsyncMessageStore } from 'fixparser-common';\nexport type { BaseOptions, Options, Protocol } from './FIXParserBase.ts';\nexport { AccountType } from './fieldtypes/AccountType.ts';\nexport { AcctIDSource } from './fieldtypes/AcctIDSource.ts';\nexport { Adjustment } from './fieldtypes/Adjustment.ts';\nexport { AdjustmentType } from './fieldtypes/AdjustmentType.ts';\nexport { AdvSide } from './fieldtypes/AdvSide.ts';\nexport { AdvTransType } from './fieldtypes/AdvTransType.ts';\nexport { AffirmStatus } from './fieldtypes/AffirmStatus.ts';\nexport { AggregatedBook } from './fieldtypes/AggregatedBook.ts';\nexport { AggressorIndicator } from './fieldtypes/AggressorIndicator.ts';\nexport { AlgoCertificateReportStatus } from './fieldtypes/AlgoCertificateReportStatus.ts';\nexport { AlgoCertificateReportTransType } from './fieldtypes/AlgoCertificateReportTransType.ts';\nexport { AlgoCertificateReportType } from './fieldtypes/AlgoCertificateReportType.ts';\nexport { AlgoCertificateRequestStatus } from './fieldtypes/AlgoCertificateRequestStatus.ts';\nexport { AlgoCertificateRequestTransType } from './fieldtypes/AlgoCertificateRequestTransType.ts';\nexport { AlgoCertificateRequestType } from './fieldtypes/AlgoCertificateRequestType.ts';\nexport { AlgoCertificateStatus } from './fieldtypes/AlgoCertificateStatus.ts';\nexport { AlgorithmicTradeIndicator } from './fieldtypes/AlgorithmicTradeIndicator.ts';\nexport { AllocAccountType } from './fieldtypes/AllocAccountType.ts';\nexport { AllocationRollupInstruction } from './fieldtypes/AllocationRollupInstruction.ts';\nexport { AllocCancReplaceReason } from './fieldtypes/AllocCancReplaceReason.ts';\nexport { AllocGroupStatus } from './fieldtypes/AllocGroupStatus.ts';\nexport { AllocGroupSubQtyType } from './fieldtypes/AllocGroupSubQtyType.ts';\nexport { AllocHandlInst } from './fieldtypes/AllocHandlInst.ts';\nexport { AllocIntermedReqType } from './fieldtypes/AllocIntermedReqType.ts';\nexport { AllocLinkType } from './fieldtypes/AllocLinkType.ts';\nexport { AllocMethod } from './fieldtypes/AllocMethod.ts';\nexport { AllocNoOrdersType } from './fieldtypes/AllocNoOrdersType.ts';\nexport { AllocPositionEffect } from './fieldtypes/AllocPositionEffect.ts';\nexport { AllocRejCode } from './fieldtypes/AllocRejCode.ts';\nexport { AllocReportType } from './fieldtypes/AllocReportType.ts';\nexport { AllocRequestStatus } from './fieldtypes/AllocRequestStatus.ts';\nexport { AllocReversalStatus } from './fieldtypes/AllocReversalStatus.ts';\nexport { AllocSettlInstType } from './fieldtypes/AllocSettlInstType.ts';\nexport { AllocStatus } from './fieldtypes/AllocStatus.ts';\nexport { AllocTransType } from './fieldtypes/AllocTransType.ts';\nexport { AllocType } from './fieldtypes/AllocType.ts';\nexport { ApplLevelRecoveryIndicator } from './fieldtypes/ApplLevelRecoveryIndicator.ts';\nexport { ApplQueueAction } from './fieldtypes/ApplQueueAction.ts';\nexport { ApplQueueResolution } from './fieldtypes/ApplQueueResolution.ts';\nexport { ApplReportType } from './fieldtypes/ApplReportType.ts';\nexport { ApplReqType } from './fieldtypes/ApplReqType.ts';\nexport { ApplResponseError } from './fieldtypes/ApplResponseError.ts';\nexport { ApplResponseType } from './fieldtypes/ApplResponseType.ts';\nexport { ApplVerID } from './fieldtypes/ApplVerID.ts';\nexport { AsOfIndicator } from './fieldtypes/AsOfIndicator.ts';\nexport { AssetClass } from './fieldtypes/AssetClass.ts';\nexport { AssetGroup } from './fieldtypes/AssetGroup.ts';\nexport { AssetSubClass } from './fieldtypes/AssetSubClass.ts';\nexport { AssetValuationModel } from './fieldtypes/AssetValuationModel.ts';\nexport { AssignmentMethod } from './fieldtypes/AssignmentMethod.ts';\nexport { AttachmentEncodingType } from './fieldtypes/AttachmentEncodingType.ts';\nexport { AuctionInstruction } from './fieldtypes/AuctionInstruction.ts';\nexport { AuctionType } from './fieldtypes/AuctionType.ts';\nexport { AveragePriceType } from './fieldtypes/AveragePriceType.ts';\nexport { AvgPxIndicator } from './fieldtypes/AvgPxIndicator.ts';\nexport { BasisPxType } from './fieldtypes/BasisPxType.ts';\nexport { BatchProcessMode } from './fieldtypes/BatchProcessMode.ts';\nexport { BeginString } from './fieldtypes/BeginString.ts';\nexport { Benchmark } from './fieldtypes/Benchmark.ts';\nexport { BenchmarkCurveName } from './fieldtypes/BenchmarkCurveName.ts';\nexport { BidDescriptorType } from './fieldtypes/BidDescriptorType.ts';\nexport { BidRequestTransType } from './fieldtypes/BidRequestTransType.ts';\nexport { BidTradeType } from './fieldtypes/BidTradeType.ts';\nexport { BidType } from './fieldtypes/BidType.ts';\nexport { BlockTrdAllocIndicator } from './fieldtypes/BlockTrdAllocIndicator.ts';\nexport { BookingType } from './fieldtypes/BookingType.ts';\nexport { BookingUnit } from './fieldtypes/BookingUnit.ts';\nexport { BusinessDayConvention } from './fieldtypes/BusinessDayConvention.ts';\nexport { BusinessRejectReason } from './fieldtypes/BusinessRejectReason.ts';\nexport { CalculationMethod } from './fieldtypes/CalculationMethod.ts';\nexport { CancellationRights } from './fieldtypes/CancellationRights.ts';\nexport { CashMargin } from './fieldtypes/CashMargin.ts';\nexport { CashSettlPriceDefault } from './fieldtypes/CashSettlPriceDefault.ts';\nexport { CashSettlQuoteMethod } from './fieldtypes/CashSettlQuoteMethod.ts';\nexport { CashSettlValuationMethod } from './fieldtypes/CashSettlValuationMethod.ts';\nexport { ClearedIndicator } from './fieldtypes/ClearedIndicator.ts';\nexport { ClearingAccountType } from './fieldtypes/ClearingAccountType.ts';\nexport { ClearingFeeIndicator } from './fieldtypes/ClearingFeeIndicator.ts';\nexport { ClearingInstruction } from './fieldtypes/ClearingInstruction.ts';\nexport { ClearingIntention } from './fieldtypes/ClearingIntention.ts';\nexport { ClearingRequirementException } from './fieldtypes/ClearingRequirementException.ts';\nexport { CollAction } from './fieldtypes/CollAction.ts';\nexport { CollApplType } from './fieldtypes/CollApplType.ts';\nexport { CollAsgnReason } from './fieldtypes/CollAsgnReason.ts';\nexport { CollAsgnRejectReason } from './fieldtypes/CollAsgnRejectReason.ts';\nexport { CollAsgnRespType } from './fieldtypes/CollAsgnRespType.ts';\nexport { CollAsgnTransType } from './fieldtypes/CollAsgnTransType.ts';\nexport { CollateralAmountType } from './fieldtypes/CollateralAmountType.ts';\nexport { CollateralReinvestmentType } from './fieldtypes/CollateralReinvestmentType.ts';\nexport { CollInquiryQualifier } from './fieldtypes/CollInquiryQualifier.ts';\nexport { CollInquiryResult } from './fieldtypes/CollInquiryResult.ts';\nexport { CollInquiryStatus } from './fieldtypes/CollInquiryStatus.ts';\nexport { CollRptRejectReason } from './fieldtypes/CollRptRejectReason.ts';\nexport { CollRptStatus } from './fieldtypes/CollRptStatus.ts';\nexport { CollStatus } from './fieldtypes/CollStatus.ts';\nexport { CommissionAmountSubType } from './fieldtypes/CommissionAmountSubType.ts';\nexport { CommissionAmountType } from './fieldtypes/CommissionAmountType.ts';\nexport { CommodityFinalPriceType } from './fieldtypes/CommodityFinalPriceType.ts';\nexport { CommType } from './fieldtypes/CommType.ts';\nexport { ComplexEventCondition } from './fieldtypes/ComplexEventCondition.ts';\nexport { ComplexEventCreditEventNotifyingParty } from './fieldtypes/ComplexEventCreditEventNotifyingParty.ts';\nexport { ComplexEventDateOffsetDayType } from './fieldtypes/ComplexEventDateOffsetDayType.ts';\nexport { ComplexEventPeriodType } from './fieldtypes/ComplexEventPeriodType.ts';\nexport { ComplexEventPriceBoundaryMethod } from './fieldtypes/ComplexEventPriceBoundaryMethod.ts';\nexport { ComplexEventPriceTimeType } from './fieldtypes/ComplexEventPriceTimeType.ts';\nexport { ComplexEventPVFinalPriceElectionFallback } from './fieldtypes/ComplexEventPVFinalPriceElectionFallback.ts';\nexport { ComplexEventQuoteBasis } from './fieldtypes/ComplexEventQuoteBasis.ts';\nexport { ComplexEventType } from './fieldtypes/ComplexEventType.ts';\nexport { ComplexOptPayoutTime } from './fieldtypes/ComplexOptPayoutTime.ts';\nexport { ConfirmationMethod } from './fieldtypes/ConfirmationMethod.ts';\nexport { ConfirmRejReason } from './fieldtypes/ConfirmRejReason.ts';\nexport { ConfirmStatus } from './fieldtypes/ConfirmStatus.ts';\nexport { ConfirmTransType } from './fieldtypes/ConfirmTransType.ts';\nexport { ConfirmType } from './fieldtypes/ConfirmType.ts';\nexport { ContAmtType } from './fieldtypes/ContAmtType.ts';\nexport { ContingencyType } from './fieldtypes/ContingencyType.ts';\nexport { ContractMultiplierUnit } from './fieldtypes/ContractMultiplierUnit.ts';\nexport { ContractRefPosType } from './fieldtypes/ContractRefPosType.ts';\nexport { CorporateAction } from './fieldtypes/CorporateAction.ts';\nexport { CouponDayCount } from './fieldtypes/CouponDayCount.ts';\nexport { CouponFrequencyUnit } from './fieldtypes/CouponFrequencyUnit.ts';\nexport { CouponType } from './fieldtypes/CouponType.ts';\nexport { CoveredOrUncovered } from './fieldtypes/CoveredOrUncovered.ts';\nexport { CPProgram } from './fieldtypes/CPProgram.ts';\nexport { CrossedIndicator } from './fieldtypes/CrossedIndicator.ts';\nexport { CrossPrioritization } from './fieldtypes/CrossPrioritization.ts';\nexport { CrossType } from './fieldtypes/CrossType.ts';\nexport { CurrencyCodeSource } from './fieldtypes/CurrencyCodeSource.ts';\nexport { CustOrderCapacity } from './fieldtypes/CustOrderCapacity.ts';\nexport { CustOrderHandlingInst } from './fieldtypes/CustOrderHandlingInst.ts';\nexport { CustomerOrFirm } from './fieldtypes/CustomerOrFirm.ts';\nexport { CustomerPriority } from './fieldtypes/CustomerPriority.ts';\nexport { CxlRejReason } from './fieldtypes/CxlRejReason.ts';\nexport { CxlRejResponseTo } from './fieldtypes/CxlRejResponseTo.ts';\nexport { DateRollConvention } from './fieldtypes/DateRollConvention.ts';\nexport { DayBookingInst } from './fieldtypes/DayBookingInst.ts';\nexport { DealingCapacity } from './fieldtypes/DealingCapacity.ts';\nexport { DeleteReason } from './fieldtypes/DeleteReason.ts';\nexport { DeliveryForm } from './fieldtypes/DeliveryForm.ts';\nexport { DeliveryScheduleSettlDay } from './fieldtypes/DeliveryScheduleSettlDay.ts';\nexport { DeliveryScheduleSettlFlowType } from './fieldtypes/DeliveryScheduleSettlFlowType.ts';\nexport { DeliveryScheduleSettlHolidaysProcessingInstruction } from './fieldtypes/DeliveryScheduleSettlHolidaysProcessingInstruction.ts';\nexport { DeliveryScheduleSettlTimeType } from './fieldtypes/DeliveryScheduleSettlTimeType.ts';\nexport { DeliveryScheduleToleranceType } from './fieldtypes/DeliveryScheduleToleranceType.ts';\nexport { DeliveryScheduleType } from './fieldtypes/DeliveryScheduleType.ts';\nexport { DeliveryStreamDeliveryPointSource } from './fieldtypes/DeliveryStreamDeliveryPointSource.ts';\nexport { DeliveryStreamDeliveryRestriction } from './fieldtypes/DeliveryStreamDeliveryRestriction.ts';\nexport { DeliveryStreamElectingPartySide } from './fieldtypes/DeliveryStreamElectingPartySide.ts';\nexport { DeliveryStreamTitleTransferCondition } from './fieldtypes/DeliveryStreamTitleTransferCondition.ts';\nexport { DeliveryStreamToleranceOptionSide } from './fieldtypes/DeliveryStreamToleranceOptionSide.ts';\nexport { DeliveryStreamType } from './fieldtypes/DeliveryStreamType.ts';\nexport { DeliveryType } from './fieldtypes/DeliveryType.ts';\nexport { DeskType } from './fieldtypes/DeskType.ts';\nexport { DeskTypeSource } from './fieldtypes/DeskTypeSource.ts';\nexport { DisclosureInstruction } from './fieldtypes/DisclosureInstruction.ts';\nexport { DisclosureType } from './fieldtypes/DisclosureType.ts';\nexport { DiscretionInst } from './fieldtypes/DiscretionInst.ts';\nexport { DiscretionLimitType } from './fieldtypes/DiscretionLimitType.ts';\nexport { DiscretionMoveType } from './fieldtypes/DiscretionMoveType.ts';\nexport { DiscretionOffsetType } from './fieldtypes/DiscretionOffsetType.ts';\nexport { DiscretionRoundDirection } from './fieldtypes/DiscretionRoundDirection.ts';\nexport { DiscretionScope } from './fieldtypes/DiscretionScope.ts';\nexport { DisplayMethod } from './fieldtypes/DisplayMethod.ts';\nexport { DisplayWhen } from './fieldtypes/DisplayWhen.ts';\nexport { DistribPaymentMethod } from './fieldtypes/DistribPaymentMethod.ts';\nexport { DividendAmountType } from './fieldtypes/DividendAmountType.ts';\nexport { DividendComposition } from './fieldtypes/DividendComposition.ts';\nexport { DividendEntitlementEvent } from './fieldtypes/DividendEntitlementEvent.ts';\nexport { DKReason } from './fieldtypes/DKReason.ts';\nexport { DlvyInstType } from './fieldtypes/DlvyInstType.ts';\nexport { DueToRelated } from './fieldtypes/DueToRelated.ts';\nexport { DuplicateClOrdIDIndicator } from './fieldtypes/DuplicateClOrdIDIndicator.ts';\nexport { EmailType } from './fieldtypes/EmailType.ts';\nexport { EncryptMethod } from './fieldtypes/EncryptMethod.ts';\nexport { EntitlementAttribDatatype } from './fieldtypes/EntitlementAttribDatatype.ts';\nexport { EntitlementRequestResult } from './fieldtypes/EntitlementRequestResult.ts';\nexport { EntitlementStatus } from './fieldtypes/EntitlementStatus.ts';\nexport { EntitlementSubType } from './fieldtypes/EntitlementSubType.ts';\nexport { EntitlementType } from './fieldtypes/EntitlementType.ts';\nexport { EventInitiatorType } from './fieldtypes/EventInitiatorType.ts';\nexport { EventTimeUnit } from './fieldtypes/EventTimeUnit.ts';\nexport { EventType } from './fieldtypes/EventType.ts';\nexport { ExchangeForPhysical } from './fieldtypes/ExchangeForPhysical.ts';\nexport { ExDestinationIDSource } from './fieldtypes/ExDestinationIDSource.ts';\nexport { ExDestinationType } from './fieldtypes/ExDestinationType.ts';\nexport { ExecAckStatus } from './fieldtypes/ExecAckStatus.ts';\nexport { ExecInst } from './fieldtypes/ExecInst.ts';\nexport { ExecMethod } from './fieldtypes/ExecMethod.ts';\nexport { ExecPriceType } from './fieldtypes/ExecPriceType.ts';\nexport { ExecRestatementReason } from './fieldtypes/ExecRestatementReason.ts';\nexport { ExecTransType } from './fieldtypes/ExecTransType.ts';\nexport { ExecType } from './fieldtypes/ExecType.ts';\nexport { ExecTypeReason } from './fieldtypes/ExecTypeReason.ts';\nexport { ExerciseConfirmationMethod } from './fieldtypes/ExerciseConfirmationMethod.ts';\nexport { ExerciseMethod } from './fieldtypes/ExerciseMethod.ts';\nexport { ExerciseStyle } from './fieldtypes/ExerciseStyle.ts';\nexport { ExpirationCycle } from './fieldtypes/ExpirationCycle.ts';\nexport { ExpirationQtyType } from './fieldtypes/ExpirationQtyType.ts';\nexport { ExtraordinaryEventAdjustmentMethod } from './fieldtypes/ExtraordinaryEventAdjustmentMethod.ts';\nexport { Field as Fields } from './fieldtypes/Field.ts';\nexport { FinancialStatus } from './fieldtypes/FinancialStatus.ts';\nexport { FlowScheduleType } from './fieldtypes/FlowScheduleType.ts';\nexport { ForexReq } from './fieldtypes/ForexReq.ts';\nexport { FundingSource } from './fieldtypes/FundingSource.ts';\nexport { FundRenewWaiv } from './fieldtypes/FundRenewWaiv.ts';\nexport { FXBenchmark } from './fieldtypes/FXBenchmark.ts';\nexport { GapFillFlag } from './fieldtypes/GapFillFlag.ts';\nexport { GTBookingInst } from './fieldtypes/GTBookingInst.ts';\nexport { HaltReason } from './fieldtypes/HaltReason.ts';\nexport { HandlInst } from './fieldtypes/HandlInst.ts';\nexport { IDSource } from './fieldtypes/IDSource.ts';\nexport { ImpliedMarketIndicator } from './fieldtypes/ImpliedMarketIndicator.ts';\nexport { IncTaxInd } from './fieldtypes/IncTaxInd.ts';\nexport { IndividualAllocType } from './fieldtypes/IndividualAllocType.ts';\nexport { InstrAttribType } from './fieldtypes/InstrAttribType.ts';\nexport { InstrmtAssignmentMethod } from './fieldtypes/InstrmtAssignmentMethod.ts';\nexport { InstrumentScopeOperator } from './fieldtypes/InstrumentScopeOperator.ts';\nexport { InTheMoneyCondition } from './fieldtypes/InTheMoneyCondition.ts';\nexport { InViewOfCommon } from './fieldtypes/InViewOfCommon.ts';\nexport { IOINaturalFlag } from './fieldtypes/IOINaturalFlag.ts';\nexport { IOIQltyInd } from './fieldtypes/IOIQltyInd.ts';\nexport { IOIQty } from './fieldtypes/IOIQty.ts';\nexport { IOIQualifier } from './fieldtypes/IOIQualifier.ts';\nexport { IOIShares } from './fieldtypes/IOIShares.ts';\nexport { IOITransType } from './fieldtypes/IOITransType.ts';\nexport { IRSDirection } from './fieldtypes/IRSDirection.ts';\nexport { LastCapacity } from './fieldtypes/LastCapacity.ts';\nexport { LastFragment } from './fieldtypes/LastFragment.ts';\nexport { LastLiquidityInd } from './fieldtypes/LastLiquidityInd.ts';\nexport { LastRptRequested } from './fieldtypes/LastRptRequested.ts';\nexport { LegalConfirm } from './fieldtypes/LegalConfirm.ts';\nexport { LegSwapType } from './fieldtypes/LegSwapType.ts';\nexport { LienSeniority } from './fieldtypes/LienSeniority.ts';\nexport { LimitAmtType } from './fieldtypes/LimitAmtType.ts';\nexport { LiquidityIndType } from './fieldtypes/LiquidityIndType.ts';\nexport { ListExecInstType } from './fieldtypes/ListExecInstType.ts';\nexport { ListMethod } from './fieldtypes/ListMethod.ts';\nexport { ListOrderStatus } from './fieldtypes/ListOrderStatus.ts';\nexport { ListRejectReason } from './fieldtypes/ListRejectReason.ts';\nexport { ListStatusType } from './fieldtypes/ListStatusType.ts';\nexport { ListUpdateAction } from './fieldtypes/ListUpdateAction.ts';\nexport { LoanFacility } from './fieldtypes/LoanFacility.ts';\nexport { LocateReqd } from './fieldtypes/LocateReqd.ts';\nexport { LockType } from './fieldtypes/LockType.ts';\nexport { LotType } from './fieldtypes/LotType.ts';\nexport { MarginAmtType } from './fieldtypes/MarginAmtType.ts';\nexport { MarginDirection } from './fieldtypes/MarginDirection.ts';\nexport { MarginReqmtInqQualifier } from './fieldtypes/MarginReqmtInqQualifier.ts';\nexport { MarginReqmtInqResult } from './fieldtypes/MarginReqmtInqResult.ts';\nexport { MarginReqmtRptType } from './fieldtypes/MarginReqmtRptType.ts';\nexport { MarketCondition } from './fieldtypes/MarketCondition.ts';\nexport { MarketDisruptionFallbackProvision } from './fieldtypes/MarketDisruptionFallbackProvision.ts';\nexport { MarketDisruptionFallbackUnderlierType } from './fieldtypes/MarketDisruptionFallbackUnderlierType.ts';\nexport { MarketDisruptionProvision } from './fieldtypes/MarketDisruptionProvision.ts';\nexport { MarketMakerActivity } from './fieldtypes/MarketMakerActivity.ts';\nexport { MarketSegmentRelationship } from './fieldtypes/MarketSegmentRelationship.ts';\nexport { MarketSegmentStatus } from './fieldtypes/MarketSegmentStatus.ts';\nexport { MarketSegmentSubType } from './fieldtypes/MarketSegmentSubType.ts';\nexport { MarketSegmentType } from './fieldtypes/MarketSegmentType.ts';\nexport { MassActionReason } from './fieldtypes/MassActionReason.ts';\nexport { MassActionRejectReason } from './fieldtypes/MassActionRejectReason.ts';\nexport { MassActionResponse } from './fieldtypes/MassActionResponse.ts';\nexport { MassActionScope } from './fieldtypes/MassActionScope.ts';\nexport { MassActionType } from './fieldtypes/MassActionType.ts';\nexport { MassCancelRejectReason } from './fieldtypes/MassCancelRejectReason.ts';\nexport { MassCancelRequestType } from './fieldtypes/MassCancelRequestType.ts';\nexport { MassCancelResponse } from './fieldtypes/MassCancelResponse.ts';\nexport { MassOrderRequestResult } from './fieldtypes/MassOrderRequestResult.ts';\nexport { MassOrderRequestStatus } from './fieldtypes/MassOrderRequestStatus.ts';\nexport { MassStatusReqType } from './fieldtypes/MassStatusReqType.ts';\nexport { MatchExceptionElementType } from './fieldtypes/MatchExceptionElementType.ts';\nexport { MatchExceptionToleranceValueType } from './fieldtypes/MatchExceptionToleranceValueType.ts';\nexport { MatchExceptionType } from './fieldtypes/MatchExceptionType.ts';\nexport { MatchInst } from './fieldtypes/MatchInst.ts';\nexport { MatchingDataPointIndicator } from './fieldtypes/MatchingDataPointIndicator.ts';\nexport { MatchStatus } from './fieldtypes/MatchStatus.ts';\nexport { MatchType } from './fieldtypes/MatchType.ts';\nexport { MaturityMonthYearFormat } from './fieldtypes/MaturityMonthYearFormat.ts';\nexport { MaturityMonthYearIncrementUnits } from './fieldtypes/MaturityMonthYearIncrementUnits.ts';\nexport { MDBookType } from './fieldtypes/MDBookType.ts';\nexport { MDEntryType } from './fieldtypes/MDEntryType.ts';\nexport { MDImplicitDelete } from './fieldtypes/MDImplicitDelete.ts';\nexport { MDOriginType } from './fieldtypes/MDOriginType.ts';\nexport { MDReportEvent } from './fieldtypes/MDReportEvent.ts';\nexport { MDReqRejReason } from './fieldtypes/MDReqRejReason.ts';\nexport { MDSecSizeType } from './fieldtypes/MDSecSizeType.ts';\nexport { MDStatisticIntervalType } from './fieldtypes/MDStatisticIntervalType.ts';\nexport { MDStatisticRatioType } from './fieldtypes/MDStatisticRatioType.ts';\nexport { MDStatisticRequestResult } from './fieldtypes/MDStatisticRequestResult.ts';\nexport { MDStatisticScope } from './fieldtypes/MDStatisticScope.ts';\nexport { MDStatisticScopeType } from './fieldtypes/MDStatisticScopeType.ts';\nexport { MDStatisticStatus } from './fieldtypes/MDStatisticStatus.ts';\nexport { MDStatisticSubScope } from './fieldtypes/MDStatisticSubScope.ts';\nexport { MDStatisticType } from './fieldtypes/MDStatisticType.ts';\nexport { MDStatisticValueType } from './fieldtypes/MDStatisticValueType.ts';\nexport { MDUpdateAction } from './fieldtypes/MDUpdateAction.ts';\nexport { MDUpdateType } from './fieldtypes/MDUpdateType.ts';\nexport { MDValueTier } from './fieldtypes/MDValueTier.ts';\nexport { Message as Messages } from './fieldtypes/Message.ts';\nexport { MessageEncoding } from './fieldtypes/MessageEncoding.ts';\nexport { MetricsCalculationPriceSource } from './fieldtypes/MetricsCalculationPriceSource.ts';\nexport { MinQtyMethod } from './fieldtypes/MinQtyMethod.ts';\nexport { MiscFeeBasis } from './fieldtypes/MiscFeeBasis.ts';\nexport { MiscFeeQualifier } from './fieldtypes/MiscFeeQualifier.ts';\nexport { MiscFeeType } from './fieldtypes/MiscFeeType.ts';\nexport { ModelType } from './fieldtypes/ModelType.ts';\nexport { MoneyLaunderingStatus } from './fieldtypes/MoneyLaunderingStatus.ts';\nexport { MsgDirection } from './fieldtypes/MsgDirection.ts';\nexport { MsgType } from './fieldtypes/MsgType.ts';\nexport { MultiJurisdictionReportingIndicator } from './fieldtypes/MultiJurisdictionReportingIndicator.ts';\nexport { MultiLegReportingType } from './fieldtypes/MultiLegReportingType.ts';\nexport { MultiLegRptTypeReq } from './fieldtypes/MultiLegRptTypeReq.ts';\nexport { MultilegModel } from './fieldtypes/MultilegModel.ts';\nexport { MultilegPriceMethod } from './fieldtypes/MultilegPriceMethod.ts';\nexport { NBBOEntryType } from './fieldtypes/NBBOEntryType.ts';\nexport { NBBOSource } from './fieldtypes/NBBOSource.ts';\nexport { NegotiationMethod } from './fieldtypes/NegotiationMethod.ts';\nexport { NetGrossInd } from './fieldtypes/NetGrossInd.ts';\nexport { NetworkRequestType } from './fieldtypes/NetworkRequestType.ts';\nexport { NetworkStatusResponseType } from './fieldtypes/NetworkStatusResponseType.ts';\nexport { NewsCategory } from './fieldtypes/NewsCategory.ts';\nexport { NewsRefType } from './fieldtypes/NewsRefType.ts';\nexport { NonCashDividendTreatment } from './fieldtypes/NonCashDividendTreatment.ts';\nexport { NonDeliverableFixingDateType } from './fieldtypes/NonDeliverableFixingDateType.ts';\nexport { NoSides } from './fieldtypes/NoSides.ts';\nexport { NotAffectedReason } from './fieldtypes/NotAffectedReason.ts';\nexport { NotifyBrokerOfCredit } from './fieldtypes/NotifyBrokerOfCredit.ts';\nexport { ObligationType } from './fieldtypes/ObligationType.ts';\nexport { OddLot } from './fieldtypes/OddLot.ts';\nexport { OffsetInstruction } from './fieldtypes/OffsetInstruction.ts';\nexport { OffshoreIndicator } from './fieldtypes/OffshoreIndicator.ts';\nexport { OpenClose } from './fieldtypes/OpenClose.ts';\nexport { OpenCloseSettleFlag } from './fieldtypes/OpenCloseSettleFlag.ts';\nexport { OpenCloseSettlFlag } from './fieldtypes/OpenCloseSettlFlag.ts';\nexport { OptionExerciseDateType } from './fieldtypes/OptionExerciseDateType.ts';\nexport { OptPayoutType } from './fieldtypes/OptPayoutType.ts';\nexport { OrderAttributeType } from './fieldtypes/OrderAttributeType.ts';\nexport { OrderCapacity } from './fieldtypes/OrderCapacity.ts';\nexport { OrderCategory } from './fieldtypes/OrderCategory.ts';\nexport { OrderDelayUnit } from './fieldtypes/OrderDelayUnit.ts';\nexport { OrderEntryAction } from './fieldtypes/OrderEntryAction.ts';\nexport { OrderEventReason } from './fieldtypes/OrderEventReason.ts';\nexport { OrderEventType } from './fieldtypes/OrderEventType.ts';\nexport { OrderHandlingInstSource } from './fieldtypes/OrderHandlingInstSource.ts';\nexport { OrderOrigination } from './fieldtypes/OrderOrigination.ts';\nexport { OrderOwnershipIndicator } from './fieldtypes/OrderOwnershipIndicator.ts';\nexport { OrderRelationship } from './fieldtypes/OrderRelationship.ts';\nexport { OrderResponseLevel } from './fieldtypes/OrderResponseLevel.ts';\nexport { OrderRestrictions } from './fieldtypes/OrderRestrictions.ts';\nexport { OrdRejReason } from './fieldtypes/OrdRejReason.ts';\nexport { OrdStatus } from './fieldtypes/OrdStatus.ts';\nexport { OrdType } from './fieldtypes/OrdType.ts';\nexport { OrigCustOrderCapacity } from './fieldtypes/OrigCustOrderCapacity.ts';\nexport { OwnershipType } from './fieldtypes/OwnershipType.ts';\nexport { OwnerType } from './fieldtypes/OwnerType.ts';\nexport { PartyActionRejectReason } from './fieldtypes/PartyActionRejectReason.ts';\nexport { PartyActionResponse } from './fieldtypes/PartyActionResponse.ts';\nexport { PartyActionType } from './fieldtypes/PartyActionType.ts';\nexport { PartyDetailDefinitionStatus } from './fieldtypes/PartyDetailDefinitionStatus.ts';\nexport { PartyDetailRequestResult } from './fieldtypes/PartyDetailRequestResult.ts';\nexport { PartyDetailRequestStatus } from './fieldtypes/PartyDetailRequestStatus.ts';\nexport { PartyDetailRoleQualifier } from './fieldtypes/PartyDetailRoleQualifier.ts';\nexport { PartyDetailStatus } from './fieldtypes/PartyDetailStatus.ts';\nexport { PartyIDSource } from './fieldtypes/PartyIDSource.ts';\nexport { PartyRelationship } from './fieldtypes/PartyRelationship.ts';\nexport { PartyRiskLimitStatus } from './fieldtypes/PartyRiskLimitStatus.ts';\nexport { PartyRole } from './fieldtypes/PartyRole.ts';\nexport { PartySubIDType } from './fieldtypes/PartySubIDType.ts';\nexport { PaymentDateOffsetDayType } from './fieldtypes/PaymentDateOffsetDayType.ts';\nexport { PaymentForwardStartType } from './fieldtypes/PaymentForwardStartType.ts';\nexport { PaymentMethod } from './fieldtypes/PaymentMethod.ts';\nexport { PaymentPaySide } from './fieldtypes/PaymentPaySide.ts';\nexport { PaymentScheduleStepRelativeTo } from './fieldtypes/PaymentScheduleStepRelativeTo.ts';\nexport { PaymentScheduleType } from './fieldtypes/PaymentScheduleType.ts';\nexport { PaymentSettlStyle } from './fieldtypes/PaymentSettlStyle.ts';\nexport { PaymentStreamAveragingMethod } from './fieldtypes/PaymentStreamAveragingMethod.ts';\nexport { PaymentStreamCapRateBuySide } from './fieldtypes/PaymentStreamCapRateBuySide.ts';\nexport { PaymentStreamCompoundingMethod } from './fieldtypes/PaymentStreamCompoundingMethod.ts';\nexport { PaymentStreamDiscountType } from './fieldtypes/PaymentStreamDiscountType.ts';\nexport { PaymentStreamFloorRateBuySide } from './fieldtypes/PaymentStreamFloorRateBuySide.ts';\nexport { PaymentStreamFRADiscounting } from './fieldtypes/PaymentStreamFRADiscounting.ts';\nexport { PaymentStreamInflationInterpolationMethod } from './fieldtypes/PaymentStreamInflationInterpolationMethod.ts';\nexport { PaymentStreamInflationLagDayType } from './fieldtypes/PaymentStreamInflationLagDayType.ts';\nexport { PaymentStreamInflationLagUnit } from './fieldtypes/PaymentStreamInflationLagUnit.ts';\nexport { PaymentStreamInterpolationPeriod } from './fieldtypes/PaymentStreamInterpolationPeriod.ts';\nexport { PaymentStreamLinkStrikePriceType } from './fieldtypes/PaymentStreamLinkStrikePriceType.ts';\nexport { PaymentStreamNegativeRateTreatment } from './fieldtypes/PaymentStreamNegativeRateTreatment.ts';\nexport { PaymentStreamPaymentDateOffsetDayType } from './fieldtypes/PaymentStreamPaymentDateOffsetDayType.ts';\nexport { PaymentStreamPaymentDateOffsetUnit } from './fieldtypes/PaymentStreamPaymentDateOffsetUnit.ts';\nexport { PaymentStreamPaymentFrequencyUnit } from './fieldtypes/PaymentStreamPaymentFrequencyUnit.ts';\nexport { PaymentStreamPricingDayDistribution } from './fieldtypes/PaymentStreamPricingDayDistribution.ts';\nexport { PaymentStreamPricingDayOfWeek } from './fieldtypes/PaymentStreamPricingDayOfWeek.ts';\nexport { PaymentStreamRateIndexCurveUnit } from './fieldtypes/PaymentStreamRateIndexCurveUnit.ts';\nexport { PaymentStreamRateIndexSource } from './fieldtypes/PaymentStreamRateIndexSource.ts';\nexport { PaymentStreamRateSpreadPositionType } from './fieldtypes/PaymentStreamRateSpreadPositionType.ts';\nexport { PaymentStreamRateSpreadType } from './fieldtypes/PaymentStreamRateSpreadType.ts';\nexport { PaymentStreamRateTreatment } from './fieldtypes/PaymentStreamRateTreatment.ts';\nexport { PaymentStreamRealizedVarianceMethod } from './fieldtypes/PaymentStreamRealizedVarianceMethod.ts';\nexport { PaymentStreamResetWeeklyRollConvention } from './fieldtypes/PaymentStreamResetWeeklyRollConvention.ts';\nexport { PaymentStreamSettlLevel } from './fieldtypes/PaymentStreamSettlLevel.ts';\nexport { PaymentStreamType } from './fieldtypes/PaymentStreamType.ts';\nexport { PaymentStubLength } from './fieldtypes/PaymentStubLength.ts';\nexport { PaymentStubType } from './fieldtypes/PaymentStubType.ts';\nexport { PaymentSubType } from './fieldtypes/PaymentSubType.ts';\nexport { PaymentType } from './fieldtypes/PaymentType.ts';\nexport { PayReportStatus } from './fieldtypes/PayReportStatus.ts';\nexport { PayReportTransType } from './fieldtypes/PayReportTransType.ts';\nexport { PayRequestStatus } from './fieldtypes/PayRequestStatus.ts';\nexport { PayRequestTransType } from './fieldtypes/PayRequestTransType.ts';\nexport { PegLimitType } from './fieldtypes/PegLimitType.ts';\nexport { PegMoveType } from './fieldtypes/PegMoveType.ts';\nexport { PegOffsetType } from './fieldtypes/PegOffsetType.ts';\nexport { PegPriceType } from './fieldtypes/PegPriceType.ts';\nexport { PegRoundDirection } from './fieldtypes/PegRoundDirection.ts';\nexport { PegScope } from './fieldtypes/PegScope.ts';\nexport { PosAmtReason } from './fieldtypes/PosAmtReason.ts';\nexport { PosAmtType } from './fieldtypes/PosAmtType.ts';\nexport { PositionCapacity } from './fieldtypes/PositionCapacity.ts';\nexport { PositionEffect } from './fieldtypes/PositionEffect.ts';\nexport { PosMaintAction } from './fieldtypes/PosMaintAction.ts';\nexport { PosMaintResult } from './fieldtypes/PosMaintResult.ts';\nexport { PosMaintStatus } from './fieldtypes/PosMaintStatus.ts';\nexport { PosQtyStatus } from './fieldtypes/PosQtyStatus.ts';\nexport { PosReqResult } from './fieldtypes/PosReqResult.ts';\nexport { PosReqStatus } from './fieldtypes/PosReqStatus.ts';\nexport { PosReqType } from './fieldtypes/PosReqType.ts';\nexport { PossDupFlag } from './fieldtypes/PossDupFlag.ts';\nexport { PossResend } from './fieldtypes/PossResend.ts';\nexport { PosTransType } from './fieldtypes/PosTransType.ts';\nexport { PosType } from './fieldtypes/PosType.ts';\nexport { PostTradePaymentDebitOrCredit } from './fieldtypes/PostTradePaymentDebitOrCredit.ts';\nexport { PostTradePaymentStatus } from './fieldtypes/PostTradePaymentStatus.ts';\nexport { PreallocMethod } from './fieldtypes/PreallocMethod.ts';\nexport { PreviouslyReported } from './fieldtypes/PreviouslyReported.ts';\nexport { PriceLimitType } from './fieldtypes/PriceLimitType.ts';\nexport { PriceMovementType } from './fieldtypes/PriceMovementType.ts';\nexport { PriceProtectionScope } from './fieldtypes/PriceProtectionScope.ts';\nexport { PriceQualifier } from './fieldtypes/PriceQualifier.ts';\nexport { PriceQuoteMethod } from './fieldtypes/PriceQuoteMethod.ts';\nexport { PriceType } from './fieldtypes/PriceType.ts';\nexport { PriorityIndicator } from './fieldtypes/PriorityIndicator.ts';\nexport { PrivateQuote } from './fieldtypes/PrivateQuote.ts';\nexport { ProcessCode } from './fieldtypes/ProcessCode.ts';\nexport { Product } from './fieldtypes/Product.ts';\nexport { ProgRptReqs } from './fieldtypes/ProgRptReqs.ts';\nexport { ProtectionTermEventDayType } from './fieldtypes/ProtectionTermEventDayType.ts';\nexport { ProtectionTermEventQualifier } from './fieldtypes/ProtectionTermEventQualifier.ts';\nexport { ProtectionTermEventUnit } from './fieldtypes/ProtectionTermEventUnit.ts';\nexport { ProvisionBreakFeeElection } from './fieldtypes/ProvisionBreakFeeElection.ts';\nexport { ProvisionCalculationAgent } from './fieldtypes/ProvisionCalculationAgent.ts';\nexport { ProvisionCashSettlMethod } from './fieldtypes/ProvisionCashSettlMethod.ts';\nexport { ProvisionCashSettlPaymentDateType } from './fieldtypes/ProvisionCashSettlPaymentDateType.ts';\nexport { ProvisionCashSettlQuoteType } from './fieldtypes/ProvisionCashSettlQuoteType.ts';\nexport { ProvisionDateTenorUnit } from './fieldtypes/ProvisionDateTenorUnit.ts';\nexport { ProvisionOptionExerciseEarliestDateOffsetUnit } from './fieldtypes/ProvisionOptionExerciseEarliestDateOffsetUnit.ts';\nexport { ProvisionOptionExerciseFixedDateType } from './fieldtypes/ProvisionOptionExerciseFixedDateType.ts';\nexport { ProvisionOptionSinglePartyBuyerSide } from './fieldtypes/ProvisionOptionSinglePartyBuyerSide.ts';\nexport { ProvisionType } from './fieldtypes/ProvisionType.ts';\nexport { PublishTrdIndicator } from './fieldtypes/PublishTrdIndicator.ts';\nexport { PutOrCall } from './fieldtypes/PutOrCall.ts';\nexport { QtyType } from './fieldtypes/QtyType.ts';\nexport { QuoteAckStatus } from './fieldtypes/QuoteAckStatus.ts';\nexport { QuoteAttributeType } from './fieldtypes/QuoteAttributeType.ts';\nexport { QuoteCancelType } from './fieldtypes/QuoteCancelType.ts';\nexport { QuoteCondition } from './fieldtypes/QuoteCondition.ts';\nexport { QuoteEntryRejectReason } from './fieldtypes/QuoteEntryRejectReason.ts';\nexport { QuoteEntryStatus } from './fieldtypes/QuoteEntryStatus.ts';\nexport { QuoteModelType } from './fieldtypes/QuoteModelType.ts';\nexport { QuotePriceType } from './fieldtypes/QuotePriceType.ts';\nexport { QuoteRejectReason } from './fieldtypes/QuoteRejectReason.ts';\nexport { QuoteRequestRejectReason } from './fieldtypes/QuoteRequestRejectReason.ts';\nexport { QuoteRequestType } from './fieldtypes/QuoteRequestType.ts';\nexport { QuoteResponseLevel } from './fieldtypes/QuoteResponseLevel.ts';\nexport { QuoteRespType } from './fieldtypes/QuoteRespType.ts';\nexport { QuoteSideIndicator } from './fieldtypes/QuoteSideIndicator.ts';\nexport { QuoteStatus } from './fieldtypes/QuoteStatus.ts';\nexport { QuoteType } from './fieldtypes/QuoteType.ts';\nexport { RateSource } from './fieldtypes/RateSource.ts';\nexport { RateSourceType } from './fieldtypes/RateSourceType.ts';\nexport { ReferenceDataDateType } from './fieldtypes/ReferenceDataDateType.ts';\nexport { ReferenceEntityType } from './fieldtypes/ReferenceEntityType.ts';\nexport { RefOrderIDSource } from './fieldtypes/RefOrderIDSource.ts';\nexport { RefOrdIDReason } from './fieldtypes/RefOrdIDReason.ts';\nexport { RefRiskLimitCheckIDType } from './fieldtypes/RefRiskLimitCheckIDType.ts';\nexport { RegistRejReasonCode } from './fieldtypes/RegistRejReasonCode.ts';\nexport { RegistStatus } from './fieldtypes/RegistStatus.ts';\nexport { RegistTransType } from './fieldtypes/RegistTransType.ts';\nexport { RegulatoryReportType } from './fieldtypes/RegulatoryReportType.ts';\nexport { RegulatoryTradeIDEvent } from './fieldtypes/RegulatoryTradeIDEvent.ts';\nexport { RegulatoryTradeIDScope } from './fieldtypes/RegulatoryTradeIDScope.ts';\nexport { RegulatoryTradeIDSource } from './fieldtypes/RegulatoryTradeIDSource.ts';\nexport { RegulatoryTradeIDType } from './fieldtypes/RegulatoryTradeIDType.ts';\nexport { RegulatoryTransactionType } from './fieldtypes/RegulatoryTransactionType.ts';\nexport { RelatedInstrumentType } from './fieldtypes/RelatedInstrumentType.ts';\nexport { RelatedOrderIDSource } from './fieldtypes/RelatedOrderIDSource.ts';\nexport { RelatedPositionIDSource } from './fieldtypes/RelatedPositionIDSource.ts';\nexport { RelatedPriceSource } from './fieldtypes/RelatedPriceSource.ts';\nexport { RelatedTradeIDSource } from './fieldtypes/RelatedTradeIDSource.ts';\nexport { RelativeValueSide } from './fieldtypes/RelativeValueSide.ts';\nexport { RelativeValueType } from './fieldtypes/RelativeValueType.ts';\nexport { ReleaseInstruction } from './fieldtypes/ReleaseInstruction.ts';\nexport { RemunerationIndicator } from './fieldtypes/RemunerationIndicator.ts';\nexport { ReportToExch } from './fieldtypes/ReportToExch.ts';\nexport { RequestResult } from './fieldtypes/RequestResult.ts';\nexport { ResetSeqNumFlag } from './fieldtypes/ResetSeqNumFlag.ts';\nexport { RespondentType } from './fieldtypes/RespondentType.ts';\nexport { ResponseTransportType } from './fieldtypes/ResponseTransportType.ts';\nexport { RestructuringType } from './fieldtypes/RestructuringType.ts';\nexport { ReturnRateDateMode } from './fieldtypes/ReturnRateDateMode.ts';\nexport { ReturnRatePriceBasis } from './fieldtypes/ReturnRatePriceBasis.ts';\nexport { ReturnRatePriceSequence } from './fieldtypes/ReturnRatePriceSequence.ts';\nexport { ReturnRatePriceType } from './fieldtypes/ReturnRatePriceType.ts';\nexport { ReturnRateQuoteTimeType } from './fieldtypes/ReturnRateQuoteTimeType.ts';\nexport { ReturnRateValuationPriceOption } from './fieldtypes/ReturnRateValuationPriceOption.ts';\nexport { ReturnTrigger } from './fieldtypes/ReturnTrigger.ts';\nexport { RiskLimitAction } from './fieldtypes/RiskLimitAction.ts';\nexport { RiskLimitCheckModelType } from './fieldtypes/RiskLimitCheckModelType.ts';\nexport { RiskLimitCheckRequestResult } from './fieldtypes/RiskLimitCheckRequestResult.ts';\nexport { RiskLimitCheckRequestStatus } from './fieldtypes/RiskLimitCheckRequestStatus.ts';\nexport { RiskLimitCheckRequestType } from './fieldtypes/RiskLimitCheckRequestType.ts';\nexport { RiskLimitCheckStatus } from './fieldtypes/RiskLimitCheckStatus.ts';\nexport { RiskLimitCheckTransType } from './fieldtypes/RiskLimitCheckTransType.ts';\nexport { RiskLimitCheckType } from './fieldtypes/RiskLimitCheckType.ts';\nexport { RiskLimitReportRejectReason } from './fieldtypes/RiskLimitReportRejectReason.ts';\nexport { RiskLimitReportStatus } from './fieldtypes/RiskLimitReportStatus.ts';\nexport { RiskLimitRequestResult } from './fieldtypes/RiskLimitRequestResult.ts';\nexport { RiskLimitRequestType } from './fieldtypes/RiskLimitRequestType.ts';\nexport { RiskLimitType } from './fieldtypes/RiskLimitType.ts';\nexport { RoundingDirection } from './fieldtypes/RoundingDirection.ts';\nexport { RoutingArrangementIndicator } from './fieldtypes/RoutingArrangementIndicator.ts';\nexport { RoutingType } from './fieldtypes/RoutingType.ts';\nexport { Rule80A } from './fieldtypes/Rule80A.ts';\nexport { Scope } from './fieldtypes/Scope.ts';\nexport { SecurityClassificationReason } from './fieldtypes/SecurityClassificationReason.ts';\nexport { SecurityIDSource } from './fieldtypes/SecurityIDSource.ts';\nexport { SecurityListRequestType } from './fieldtypes/SecurityListRequestType.ts';\nexport { SecurityListType } from './fieldtypes/SecurityListType.ts';\nexport { SecurityListTypeSource } from './fieldtypes/SecurityListTypeSource.ts';\nexport { SecurityRejectReason } from './fieldtypes/SecurityRejectReason.ts';\nexport { SecurityRequestResult } from './fieldtypes/SecurityRequestResult.ts';\nexport { SecurityRequestType } from './fieldtypes/SecurityRequestType.ts';\nexport { SecurityResponseType } from './fieldtypes/SecurityResponseType.ts';\nexport { SecurityStatus } from './fieldtypes/SecurityStatus.ts';\nexport { SecurityTradingEvent } from './fieldtypes/SecurityTradingEvent.ts';\nexport { SecurityTradingStatus } from './fieldtypes/SecurityTradingStatus.ts';\nexport { SecurityType } from './fieldtypes/SecurityType.ts';\nexport { SecurityUpdateAction } from './fieldtypes/SecurityUpdateAction.ts';\nexport { SelfMatchPreventionInstruction } from './fieldtypes/SelfMatchPreventionInstruction.ts';\nexport { Seniority } from './fieldtypes/Seniority.ts';\nexport { SessionRejectReason } from './fieldtypes/SessionRejectReason.ts';\nexport { SessionStatus } from './fieldtypes/SessionStatus.ts';\nexport { SettlCurrFxRateCalc } from './fieldtypes/SettlCurrFxRateCalc.ts';\nexport { SettlDeliveryType } from './fieldtypes/SettlDeliveryType.ts';\nexport { SettlDisruptionProvision } from './fieldtypes/SettlDisruptionProvision.ts';\nexport { SettlInstMode } from './fieldtypes/SettlInstMode.ts';\nexport { SettlInstReqRejCode } from './fieldtypes/SettlInstReqRejCode.ts';\nexport { SettlInstSource } from './fieldtypes/SettlInstSource.ts';\nexport { SettlInstTransType } from './fieldtypes/SettlInstTransType.ts';\nexport { SettlLocation } from './fieldtypes/SettlLocation.ts';\nexport { SettlMethod } from './fieldtypes/SettlMethod.ts';\nexport { SettlmntTyp } from './fieldtypes/SettlmntTyp.ts';\nexport { SettlObligMode } from './fieldtypes/SettlObligMode.ts';\nexport { SettlObligSource } from './fieldtypes/SettlObligSource.ts';\nexport { SettlObligTransType } from './fieldtypes/SettlObligTransType.ts';\nexport { SettlPriceDeterminationMethod } from './fieldtypes/SettlPriceDeterminationMethod.ts';\nexport { SettlPriceType } from './fieldtypes/SettlPriceType.ts';\nexport { SettlSessID } from './fieldtypes/SettlSessID.ts';\nexport { SettlStatusReportStatus } from './fieldtypes/SettlStatusReportStatus.ts';\nexport { SettlStatusRequestStatus } from './fieldtypes/SettlStatusRequestStatus.ts';\nexport { SettlSubMethod } from './fieldtypes/SettlSubMethod.ts';\nexport { SettlType } from './fieldtypes/SettlType.ts';\nexport { ShortSaleExemptionReason } from './fieldtypes/ShortSaleExemptionReason.ts';\nexport { ShortSaleReason } from './fieldtypes/ShortSaleReason.ts';\nexport { ShortSaleRestriction } from './fieldtypes/ShortSaleRestriction.ts';\nexport { Side } from './fieldtypes/Side.ts';\nexport { SideClearingTradePriceType } from './fieldtypes/SideClearingTradePriceType.ts';\nexport { SideMultiLegReportingType } from './fieldtypes/SideMultiLegReportingType.ts';\nexport { SideValueInd } from './fieldtypes/SideValueInd.ts';\nexport { SingleQuoteIndicator } from './fieldtypes/SingleQuoteIndicator.ts';\nexport { SolicitedFlag } from './fieldtypes/SolicitedFlag.ts';\nexport { StandInstDbType } from './fieldtypes/StandInstDbType.ts';\nexport { StatsType } from './fieldtypes/StatsType.ts';\nexport { StatusValue } from './fieldtypes/StatusValue.ts';\nexport { StipulationType } from './fieldtypes/StipulationType.ts';\nexport { StrategyParameterType } from './fieldtypes/StrategyParameterType.ts';\nexport { StrategyType } from './fieldtypes/StrategyType.ts';\nexport { StreamAsgnAckType } from './fieldtypes/StreamAsgnAckType.ts';\nexport { StreamAsgnRejReason } from './fieldtypes/StreamAsgnRejReason.ts';\nexport { StreamAsgnReqType } from './fieldtypes/StreamAsgnReqType.ts';\nexport { StreamAsgnType } from './fieldtypes/StreamAsgnType.ts';\nexport { StreamCommodityDataSourceIDType } from './fieldtypes/StreamCommodityDataSourceIDType.ts';\nexport { StreamCommodityNearbySettlDayUnit } from './fieldtypes/StreamCommodityNearbySettlDayUnit.ts';\nexport { StreamCommoditySettlDateRollUnit } from './fieldtypes/StreamCommoditySettlDateRollUnit.ts';\nexport { StreamNotionalAdjustments } from './fieldtypes/StreamNotionalAdjustments.ts';\nexport { StreamNotionalCommodityFrequency } from './fieldtypes/StreamNotionalCommodityFrequency.ts';\nexport { StreamType } from './fieldtypes/StreamType.ts';\nexport { StrikeIndexQuote } from './fieldtypes/StrikeIndexQuote.ts';\nexport { StrikePriceBoundaryMethod } from './fieldtypes/StrikePriceBoundaryMethod.ts';\nexport { StrikePriceDeterminationMethod } from './fieldtypes/StrikePriceDeterminationMethod.ts';\nexport { SubscriptionRequestType } from './fieldtypes/SubscriptionRequestType.ts';\nexport { SwapClass } from './fieldtypes/SwapClass.ts';\nexport { SwapSubClass } from './fieldtypes/SwapSubClass.ts';\nexport { SymbolSfx } from './fieldtypes/SymbolSfx.ts';\nexport { TargetStrategy } from './fieldtypes/TargetStrategy.ts';\nexport { TaxAdvantageType } from './fieldtypes/TaxAdvantageType.ts';\nexport { TaxonomyType } from './fieldtypes/TaxonomyType.ts';\nexport { TerminationType } from './fieldtypes/TerminationType.ts';\nexport { TestActionRequestStatus } from './fieldtypes/TestActionRequestStatus.ts';\nexport { TestActionType } from './fieldtypes/TestActionType.ts';\nexport { TestGatewayDetailType } from './fieldtypes/TestGatewayDetailType.ts';\nexport { TestMessageIndicator } from './fieldtypes/TestMessageIndicator.ts';\nexport { TestSuiteActivityState } from './fieldtypes/TestSuiteActivityState.ts';\nexport { TestSuiteRequestStatus } from './fieldtypes/TestSuiteRequestStatus.ts';\nexport { TestSuiteRequestTransType } from './fieldtypes/TestSuiteRequestTransType.ts';\nexport { TestSuiteStatus } from './fieldtypes/TestSuiteStatus.ts';\nexport { TestThresholdType } from './fieldtypes/TestThresholdType.ts';\nexport { ThrottleAction } from './fieldtypes/ThrottleAction.ts';\nexport { ThrottleCountIndicator } from './fieldtypes/ThrottleCountIndicator.ts';\nexport { ThrottleInst } from './fieldtypes/ThrottleInst.ts';\nexport { ThrottleStatus } from './fieldtypes/ThrottleStatus.ts';\nexport { ThrottleType } from './fieldtypes/ThrottleType.ts';\nexport { TickDirection } from './fieldtypes/TickDirection.ts';\nexport { TickRuleType } from './fieldtypes/TickRuleType.ts';\nexport { TimeInForce } from './fieldtypes/TimeInForce.ts';\nexport { TimeUnit } from './fieldtypes/TimeUnit.ts';\nexport { TradeAggregationRejectReason } from './fieldtypes/TradeAggregationRejectReason.ts';\nexport { TradeAggregationRequestStatus } from './fieldtypes/TradeAggregationRequestStatus.ts';\nexport { TradeAggregationTransType } from './fieldtypes/TradeAggregationTransType.ts';\nexport { TradeAllocGroupInstruction } from './fieldtypes/TradeAllocGroupInstruction.ts';\nexport { TradeAllocIndicator } from './fieldtypes/TradeAllocIndicator.ts';\nexport { TradeAllocStatus } from './fieldtypes/TradeAllocStatus.ts';\nexport { TradeCollateralization } from './fieldtypes/TradeCollateralization.ts';\nexport { TradeCondition } from './fieldtypes/TradeCondition.ts';\nexport { TradeContingency } from './fieldtypes/TradeContingency.ts';\nexport { TradeContinuation } from './fieldtypes/TradeContinuation.ts';\nexport { TradedFlatSwitch } from './fieldtypes/TradedFlatSwitch.ts';\nexport { TradeHandlingInstr } from './fieldtypes/TradeHandlingInstr.ts';\nexport { TradeMatchAckStatus } from './fieldtypes/TradeMatchAckStatus.ts';\nexport { TradeMatchRejectReason } from './fieldtypes/TradeMatchRejectReason.ts';\nexport { TradePriceCondition } from './fieldtypes/TradePriceCondition.ts';\nexport { TradePriceNegotiationMethod } from './fieldtypes/TradePriceNegotiationMethod.ts';\nexport { TradePublishIndicator } from './fieldtypes/TradePublishIndicator.ts';\nexport { TradeQtyType } from './fieldtypes/TradeQtyType.ts';\nexport { TradeReportingIndicator } from './fieldtypes/TradeReportingIndicator.ts';\nexport { TradeReportRejectReason } from './fieldtypes/TradeReportRejectReason.ts';\nexport { TradeReportTransType } from './fieldtypes/TradeReportTransType.ts';\nexport { TradeReportType } from './fieldtypes/TradeReportType.ts';\nexport { TradeRequestResult } from './fieldtypes/TradeRequestResult.ts';\nexport { TradeRequestStatus } from './fieldtypes/TradeRequestStatus.ts';\nexport { TradeRequestType } from './fieldtypes/TradeRequestType.ts';\nexport { TradeType } from './fieldtypes/TradeType.ts';\nexport { TradeVolType } from './fieldtypes/TradeVolType.ts';\nexport { TradingCapacity } from './fieldtypes/TradingCapacity.ts';\nexport { TradingSessionID } from './fieldtypes/TradingSessionID.ts';\nexport { TradingSessionSubID } from './fieldtypes/TradingSessionSubID.ts';\nexport { TradSesControl } from './fieldtypes/TradSesControl.ts';\nexport { TradSesEvent } from './fieldtypes/TradSesEvent.ts';\nexport { TradSesMethod } from './fieldtypes/TradSesMethod.ts';\nexport { TradSesMode } from './fieldtypes/TradSesMode.ts';\nexport { TradSesStatus } from './fieldtypes/TradSesStatus.ts';\nexport { TradSesStatusRejReason } from './fieldtypes/TradSesStatusRejReason.ts';\nexport { TransactionAttributeType } from './fieldtypes/TransactionAttributeType.ts';\nexport { TransferRejectReason } from './fieldtypes/TransferRejectReason.ts';\nexport { TransferReportType } from './fieldtypes/TransferReportType.ts';\nexport { TransferScope } from './fieldtypes/TransferScope.ts';\nexport { TransferStatus } from './fieldtypes/TransferStatus.ts';\nexport { TransferTransType } from './fieldtypes/TransferTransType.ts';\nexport { TransferType } from './fieldtypes/TransferType.ts';\nexport { TrdAckStatus } from './fieldtypes/TrdAckStatus.ts';\nexport { TrdRegPublicationReason } from './fieldtypes/TrdRegPublicationReason.ts';\nexport { TrdRegPublicationType } from './fieldtypes/TrdRegPublicationType.ts';\nexport { TrdRegTimestampManualIndicator } from './fieldtypes/TrdRegTimestampManualIndicator.ts';\nexport { TrdRegTimestampType } from './fieldtypes/TrdRegTimestampType.ts';\nexport { TrdRptStatus } from './fieldtypes/TrdRptStatus.ts';\nexport { TrdSubType } from './fieldtypes/TrdSubType.ts';\nexport { TrdType } from './fieldtypes/TrdType.ts';\nexport { TriggerAction } from './fieldtypes/TriggerAction.ts';\nexport { Triggered } from './fieldtypes/Triggered.ts';\nexport { TriggerOrderType } from './fieldtypes/TriggerOrderType.ts';\nexport { TriggerPriceDirection } from './fieldtypes/TriggerPriceDirection.ts';\nexport { TriggerPriceType } from './fieldtypes/TriggerPriceType.ts';\nexport { TriggerPriceTypeScope } from './fieldtypes/TriggerPriceTypeScope.ts';\nexport { TriggerScope } from './fieldtypes/TriggerScope.ts';\nexport { TriggerType } from './fieldtypes/TriggerType.ts';\nexport { UnderlyingCashType } from './fieldtypes/UnderlyingCashType.ts';\nexport { UnderlyingFXRateCalc } from './fieldtypes/UnderlyingFXRateCalc.ts';\nexport { UnderlyingNotionalAdjustments } from './fieldtypes/UnderlyingNotionalAdjustments.ts';\nexport { UnderlyingObligationType } from './fieldtypes/UnderlyingObligationType.ts';\nexport { UnderlyingPriceDeterminationMethod } from './fieldtypes/UnderlyingPriceDeterminationMethod.ts';\nexport { UnderlyingSettlementType } from './fieldtypes/UnderlyingSettlementType.ts';\nexport { UnitOfMeasure } from './fieldtypes/UnitOfMeasure.ts';\nexport { UnsolicitedIndicator } from './fieldtypes/UnsolicitedIndicator.ts';\nexport { UpfrontPriceType } from './fieldtypes/UpfrontPriceType.ts';\nexport { Urgency } from './fieldtypes/Urgency.ts';\nexport { UserRequestType } from './fieldtypes/UserRequestType.ts';\nexport { UserStatus } from './fieldtypes/UserStatus.ts';\nexport { ValuationMethod } from './fieldtypes/ValuationMethod.ts';\nexport { ValueCheckAction } from './fieldtypes/ValueCheckAction.ts';\nexport { ValueCheckType } from './fieldtypes/ValueCheckType.ts';\nexport { VenueType } from './fieldtypes/VenueType.ts';\nexport { VerificationMethod } from './fieldtypes/VerificationMethod.ts';\nexport { WorkingIndicator } from './fieldtypes/WorkingIndicator.ts';\nexport { YieldType } from './fieldtypes/YieldType.ts';\nexport { LicenseManager } from './licensemanager/LicenseManager.ts';\nexport type { Format, LogOptions } from './logger/Logger.ts';\nexport { Logger } from './logger/Logger.ts';\nexport type { MessageError } from './message/Message.ts';\nexport type { FIXValue } from './util/util.ts';\nexport type { IFIXParser };\nexport { FIXServer, Field, Message, MessageBuffer };\n", "import type { IMessageStore } from './IMessageStore.ts';\n\n/**\n * The `IAsyncMessageStore` interface extends `IMessageStore` with asynchronous variants\n * for methods that may need to interact with persistent storage (databases, file systems,\n * remote stores).\n *\n * Implementations MUST provide synchronous methods (inherited from `IMessageStore`) for\n * hot-path operations (`getNextMsgSeqNum`, `setNextMsgSeqNum`, `add`) that work against\n * an in-memory cache. The async methods provide access to the full persistent store.\n *\n * @interface IAsyncMessageStore\n */\nexport interface IAsyncMessageStore<T> extends IMessageStore<T> {\n    /**\n     * Asynchronously retrieves an item of type `T` from the persistent store by its\n     * sequence number. Falls back to persistent storage when the item is not in the\n     * in-memory cache.\n     *\n     * @param {number} msgSequence - The sequence number of the item to retrieve.\n     *\n     * @returns {Promise<T | undefined>} - The item if found, otherwise `undefined`.\n     */\n    getByMsgSequenceAsync(msgSequence: number): Promise<T | undefined>;\n\n    /**\n     * Asynchronously retrieves all items of type `T` from the persistent store.\n     *\n     * @returns {Promise<T[]>} - An array of all items in the store.\n     */\n    getAllAsync(): Promise<T[]>;\n\n    /**\n     * Asynchronously checks if an item with a given sequence number exists in the\n     * persistent store.\n     *\n     * @param {number} msgSequence - The sequence number of the item to check.\n     * @returns {Promise<boolean>} - `true` if the item exists, `false` otherwise.\n     */\n    existsAsync?(msgSequence: number): Promise<boolean>;\n\n    /**\n     * Asynchronously removes an item from the persistent store by its sequence number.\n     *\n     * @param {number} msgSequence - The sequence number of the item to remove.\n     *\n     * @returns {Promise<void>}\n     */\n    removeAsync?(msgSequence: number): Promise<void>;\n\n    /**\n     * Asynchronously clears all items from the persistent store.\n     *\n     * @returns {Promise<void>}\n     */\n    clearAsync?(): Promise<void>;\n\n    /**\n     * Flushes any pending writes from the in-memory cache to the persistent store.\n     *\n     * @returns {Promise<void>}\n     */\n    flushAsync?(): Promise<void>;\n}\n\n/**\n * Type guard to check if a message store supports async operations.\n *\n * @param {IMessageStore<T>} store - The message store to check.\n * @returns {boolean} - `true` if the store implements `IAsyncMessageStore`, `false` otherwise.\n */\nexport function isAsyncMessageStore<T>(store: IMessageStore<T>): store is IAsyncMessageStore<T> {\n    return (\n        typeof (store as IAsyncMessageStore<T>).getByMsgSequenceAsync === 'function' &&\n        typeof (store as IAsyncMessageStore<T>).getAllAsync === 'function'\n    );\n}\n", "import type { IMessageStore } from './IMessageStore.ts';\n\n/**\n * A buffer that stores items of type `T` up to a specified maximum size.\n * Implements the IMessageStore interface for generic types.\n */\nexport class MessageBuffer<T> implements IMessageStore<T> {\n    /**\n     * A number representing the next expected message sequence number.\n     * @private\n     */\n    private nextMsgSeqNum = 1;\n\n    /**\n     * An array holding the items in the buffer.\n     * @private\n     */\n    private buffer: T[] = [];\n\n    /**\n     * The maximum capacity of the buffer.\n     * @private\n     */\n    private maxBufferSize: number;\n\n    constructor(maxBufferSize = 2500) {\n        this.maxBufferSize = maxBufferSize;\n    }\n\n    /**\n     * Adds a new item to the buffer.\n     * If the buffer is full, the oldest item is removed to make space for the new one.\n     *\n     * @param {T} item - The item to add to the buffer.\n     * @returns {void}\n     */\n    public add(item: T): void {\n        if (this.buffer.length === this.maxBufferSize) {\n            this.buffer.pop();\n        }\n        this.buffer.unshift(item);\n    }\n\n    /**\n     * Retrieves an item from the buffer by its sequence number (or any other identifier).\n     *\n     * @param {number} msgSequence - The sequence number of the item to retrieve.\n     * @returns {T | undefined} The item if found, or `undefined` if not found.\n     */\n    public getByMsgSequence(msgSequence: number): T | undefined {\n        const index: number = this.buffer.findIndex((item: any) => item.messageSequence === msgSequence);\n        if (index > -1) {\n            return this.buffer[index];\n        }\n        return undefined;\n    }\n\n    /**\n     * Removes an item from the buffer by its sequence number.\n     *\n     * @param {number} msgSequence - The sequence number of the item to remove.\n     * @returns {void}\n     */\n    public remove(msgSequence: number): void {\n        const index: number = this.buffer.findIndex((item: any) => item.messageSequence === msgSequence);\n        if (index > -1) {\n            this.buffer.splice(index, 1);\n        }\n    }\n\n    /**\n     * Updates an item in the buffer.\n     *\n     * @param {number} msgSequence - The sequence number of the item to update.\n     * @param {T} item - The updated item.\n     * @returns {boolean} - Returns `true` if the item was updated successfully, `false` otherwise.\n     */\n    public update(msgSequence: number, item: T): boolean {\n        const index: number = this.buffer.findIndex(\n            (existingItem: any) => existingItem.messageSequence === msgSequence,\n        );\n        if (index > -1) {\n            this.buffer[index] = item;\n            return true;\n        }\n        return false;\n    }\n\n    /**\n     * Retrieves all items from the buffer.\n     *\n     * @returns {T[]} - An array of all items in the buffer.\n     */\n    public getAll(): T[] {\n        return this.buffer;\n    }\n\n    /**\n     * Checks if an item with a given sequence number exists in the buffer.\n     *\n     * @param {number} msgSequence - The sequence number of the item to check.\n     * @returns {boolean} - `true` if the item exists, `false` otherwise.\n     */\n    public exists(msgSequence: number): boolean {\n        return this.buffer.some((item: any) => item.messageSequence === msgSequence);\n    }\n\n    /**\n     * Gets the current size of the buffer (the number of items it contains).\n     *\n     * @returns {number} The number of items currently in the buffer.\n     */\n    public size(): number {\n        return this.buffer.length;\n    }\n\n    /**\n     * Resizes the buffer's capacity.\n     *\n     * @param {number} newCapacity - The new maximum capacity for the buffer.\n     * @returns {void}\n     */\n    public resize(newCapacity: number): void {\n        this.maxBufferSize = newCapacity;\n        // If the buffer is larger than the new capacity, trim it.\n        if (this.buffer.length > this.maxBufferSize) {\n            this.buffer = this.buffer.slice(0, this.maxBufferSize);\n        }\n    }\n\n    /**\n     * Clears all items from the buffer.\n     *\n     * @returns {void}\n     */\n    public clear(): void {\n        this.buffer = [];\n    }\n\n    /**\n     * Gets the maximum capacity of the buffer.\n     *\n     * @returns {number} The maximum number of items the buffer can hold.\n     */\n    public getCapacity(): number {\n        return this.maxBufferSize;\n    }\n\n    /**\n     * Set the next message sequence number.\n     *\n     * @param nextMsgSeqNum - The next message sequence number.\n     * @returns {number} - The next message sequence number.\n     */\n    public setNextMsgSeqNum(nextMsgSeqNum: number): number {\n        if (nextMsgSeqNum <= 0) {\n            throw new Error('Message sequence number must be positive.');\n        }\n        this.nextMsgSeqNum = nextMsgSeqNum;\n        return this.nextMsgSeqNum;\n    }\n\n    /**\n     * Get the next message sequence number.\n     *\n     * @returns {number} - The next message sequence number.\n     */\n    public getNextMsgSeqNum(): number {\n        return this.nextMsgSeqNum;\n    }\n}\n", "let randomIterator = 0;\nconst timeBasedRandom = (min: number, max: number): number => {\n    const timeNow = Date.now() % 1000;\n    randomIterator++;\n    let x = timeNow ^ randomIterator;\n    x ^= x << 21;\n    x ^= x >>> 35;\n    x ^= x << 4;\n    const timeBasedRandom = Math.abs(x % (max - min + 1));\n    return min + timeBasedRandom;\n};\n\nexport const uuidv4 = (): string => {\n    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n        const r = timeBasedRandom(0, 15);\n        const v = c === 'x' ? r : (r & 0x3) | 0x8;\n        return v.toString(16);\n    });\n};\n", "import createWebSocketStream from './lib/stream.js';\nimport extension from './lib/extension.js';\nimport PerMessageDeflate from './lib/permessage-deflate.js';\nimport Receiver from './lib/receiver.js';\nimport Sender from './lib/sender.js';\nimport subprotocol from './lib/subprotocol.js';\nimport WebSocket from './lib/websocket.js';\nimport WebSocketServer from './lib/websocket-server.js';\n\nexport {\n  createWebSocketStream,\n  extension,\n  PerMessageDeflate,\n  Receiver,\n  Sender,\n  subprotocol,\n  WebSocket,\n  WebSocketServer\n};\n\nexport default WebSocket;\n", "import type { Agent } from 'node:http';\nimport { Socket } from 'node:net';\nimport { type ConnectionOptions, connect as TLSConnect, type TLSSocket } from 'node:tls';\nimport { type IMessageStore, type IPlugin, MessageBuffer } from 'fixparser-common';\nimport type { ProxyAgent } from 'proxy-agent';\nimport { WebSocket } from 'ws';\nimport { type BaseOptions, type ConnectionType, FIXParserBase, type Options, type Protocol } from './FIXParserBase.ts';\nimport { Field } from './fields/Field.ts';\nimport { Field as FieldType } from './fieldtypes/Field.ts';\nimport { Message as MessageType } from './fieldtypes/Message.ts';\nimport type { IFIXParser } from './IFIXParser.ts';\nimport { LicenseManager } from './licensemanager/LicenseManager.ts';\nimport { Logger, type LogOptions } from './logger/Logger.ts';\nimport { Message } from './message/Message.ts';\nimport { heartBeat } from './messagetemplates/MessageTemplates.ts';\nimport { clientProcessMessage } from './session/ClientMessageProcessor.ts';\nimport { FrameDecoder } from './util/FrameDecoder.ts';\nimport {\n    DEFAULT_FIX_VERSION,\n    DEFAULT_HEARTBEAT_SECONDS,\n    DEFAULT_TLS_ENCODING,\n    DEFAULT_TLS_TIMEOUT,\n    type Parser,\n    parseFixVersion,\n    READY_MS,\n    timestamp,\n    type Version,\n    version,\n} from './util/util.ts';\n\n/**\n * FIXParser class.\n * @public\n */\nclass FIXParser implements IFIXParser {\n    /* FIXParser Version */\n    public static readonly version: Version = version;\n    /* Name of current parser name */\n    public readonly parserName: Parser = 'FIXParser';\n    /* Instance of FIXParser base class */\n    public readonly fixParserBase: FIXParserBase = new FIXParserBase();\n    /* Heartbeat interval ID */\n    public heartBeatIntervalId: ReturnType<typeof setInterval> | undefined = undefined;\n    /* Type of socket connection (Socket, WebSocket, TLSSocket) */\n    public socket: Socket | WebSocket | TLSSocket | undefined = undefined;\n    /* Current connection status */\n    public connected = false;\n    /* Target hostname or IP address */\n    public host: string | undefined;\n    /* Target port */\n    public port: number | undefined;\n    /* Type of protocol */\n    public protocol: Protocol | undefined = 'tcp';\n    /* Assigned value used to identify firm sending message, SenderCompID tag 49 */\n    public sender: string | undefined = undefined;\n    /* Assigned value used to identify receiving firm, TargetCompID tag 56 */\n    public target: string | undefined = undefined;\n    /* Heartbeat interval in seconds */\n    public heartBeatInterval: number = DEFAULT_HEARTBEAT_SECONDS;\n    /* Protocol version, defaults to \"FIXT.1.1\" used by BeginString tag 8 */\n    public fixVersion: string = DEFAULT_FIX_VERSION;\n    /* Message buffer of 2500 incoming messages */\n    public messageStoreIn: IMessageStore<Message> = new MessageBuffer();\n    /* Message buffer of 2500 outgoing messages */\n    public messageStoreOut: IMessageStore<Message> = new MessageBuffer();\n    /* Whether an outgoing message contains a Logout */\n    public requestedLogout = false;\n    /* Indicates whether this instance is acceptor or initiator */\n    public connectionType: ConnectionType = 'initiator';\n    /* Logger instance */\n    public logger: Logger = new Logger();\n    /* Logging */\n    public logging = true;\n    /* Log options */\n    public logOptions: LogOptions | undefined;\n    /* Proxy */\n    public proxy?: ProxyAgent;\n    /* TLS Connection Options */\n    public tlsOptions?: ConnectionOptions;\n    /* TLS Skip Standard Input pipe of socket */\n    public tlsSkipStdInPipe?: boolean;\n    /* TLS Timeout */\n    public tlsTimeout: number | undefined;\n    /* TLS Encoding */\n    public tlsEncoding: BufferEncoding = DEFAULT_TLS_ENCODING;\n\n    private onMessageCallbacks: Options['onMessage'][] = [];\n    private onOpenCallbacks: Options['onOpen'][] = [];\n    private onErrorCallbacks: Options['onError'][] = [];\n    private onCloseCallbacks: Options['onClose'][] = [];\n    private onReadyCallbacks: Options['onReady'][] = [];\n\n    /**\n     * Constructor for initializing the FIXParser instance with the provided options.\n     *\n     * @param {BaseOptions} [options={ logging: true, logOptions: undefined, fixVersion: DEFAULT_FIX_VERSION, skipValidation: false }] - The options to configure the instance.\n     * @param {boolean} [options.logging=true] - Whether logging is enabled (defaults to `true`).\n     * @param {LogOptions} [options.logOptions=undefined] - Options to customize logging behavior.\n     * @param {string} [options.fixVersion=DEFAULT_FIX_VERSION] - The FIX protocol version to use (defaults to `DEFAULT_FIX_VERSION`).\n     * @param {boolean} [options.skipValidation=false] - Whether to skip validation of FIX messages (defaults to `false`).\n     */\n    constructor(\n        options: BaseOptions & {\n            plugins?: Array<IPlugin<FIXParser>>;\n        } = {\n            logging: true,\n            logOptions: undefined,\n            fixVersion: DEFAULT_FIX_VERSION,\n            skipValidation: false,\n            plugins: [],\n        },\n    ) {\n        this.logging = options.logging ?? true;\n        this.logOptions = options.logOptions;\n        this.fixParserBase.fixVersion = parseFixVersion(options.fixVersion);\n        this.fixVersion = this.fixParserBase.fixVersion;\n        this.fixParserBase.skipValidation = options.skipValidation;\n\n        if (options.plugins) {\n            for (const plugin of options.plugins) {\n                void plugin.register(this);\n            }\n        }\n    }\n\n    /**\n     * Registers a callback function to be invoked when a FIX message is received.\n     * Multiple callbacks can be registered, and all will be triggered in the order they were added.\n     *\n     * @param {Options['onMessage']} callback - The callback function to handle incoming FIX messages.\n     */\n    public addOnMessageCallback(callback: Options['onMessage']) {\n        this.onMessageCallbacks.push(callback);\n    }\n\n    /**\n     * Registers a callback function to be invoked when the FIX connection is successfully established.\n     * Multiple callbacks can be registered, and all will be triggered in the order they were added.\n     *\n     * @param {Options['onOpen']} callback - The callback function to handle connection opening.\n     */\n    public addOnOpenCallback(callback: Options['onOpen']) {\n        this.onOpenCallbacks.push(callback);\n    }\n\n    /**\n     * Registers a callback function to be invoked when a FIX connection error occurs.\n     * Multiple callbacks can be registered, and all will be triggered in the order they were added.\n     *\n     * @param {Options['onError']} callback - The callback function to handle connection errors.\n     */\n    public addOnErrorCallback(callback: Options['onError']) {\n        this.onErrorCallbacks.push(callback);\n    }\n\n    /**\n     * Registers a callback function to be invoked when the FIX connection is closed.\n     * Multiple callbacks can be registered, and all will be triggered in the order they were added.\n     *\n     * @param {Options['onClose']} callback - The callback function to handle connection closure.\n     */\n    public addOnCloseCallback(callback: Options['onClose']) {\n        this.onCloseCallbacks.push(callback);\n    }\n\n    /**\n     * Registers a callback function to be invoked when the FIX connection is ready for use.\n     * Multiple callbacks can be registered, and all will be triggered in the order they were added.\n     *\n     * @param {Options['onReady']} callback - The callback function to handle connection readiness.\n     */\n    public addOnReadyCallback(callback: Options['onReady']) {\n        this.onReadyCallbacks.push(callback);\n    }\n\n    private triggerOnMessage(message: Message) {\n        for (const cb of this.onMessageCallbacks) {\n            cb?.(message);\n        }\n    }\n\n    private triggerOnOpen() {\n        for (const cb of this.onOpenCallbacks) {\n            cb?.();\n        }\n    }\n\n    private triggerOnError(error: Error) {\n        for (const cb of this.onErrorCallbacks) {\n            cb?.(error);\n        }\n    }\n\n    private triggerOnClose() {\n        for (const cb of this.onCloseCallbacks) {\n            cb?.();\n        }\n    }\n\n    private triggerOnReady() {\n        for (const cb of this.onReadyCallbacks) {\n            cb?.();\n        }\n    }\n\n    /**\n     * Callback function that is invoked when a FIX message is received.\n     *\n     * @param {Message} message - The received FIX message.\n     */\n    public onMessageCallback: Options['onMessage'] = () => {};\n\n    /**\n     * Callback function that is invoked when the FIX connection is established.\n     */\n    public onOpenCallback: Options['onOpen'] = () => {};\n\n    /**\n     * Callback function that is invoked when a FIX connection error occurs.\n     *\n     * @param {Error} error - The error that occurred.\n     */\n    public onErrorCallback: Options['onError'] = () => {};\n\n    /**\n     * Callback function that is invoked when the FIX connection is closed.\n     */\n    public onCloseCallback: Options['onClose'] = () => {};\n\n    /**\n     * Callback function that is invoked when the FIX connection is ready for use.\n     */\n    public onReadyCallback: Options['onReady'] = () => {};\n\n    /**\n     * Establishes a connection to a specified host and port using the given options and protocol type.\n     * The method supports multiple connection protocols, including TCP, SSL/TCP, and WebSocket. It handles the\n     * initialization of connection parameters, logging, and license validation before attempting to connect.\n     *\n     * - **TCP** (`tcp`): Connects using a basic TCP connection.\n     * - **Secure TCP** (`ssl-tcp`, `tls-tcp`): Connects using a secure TLS/SSL connection.\n     * - **WebSocket** (`websocket`): Establishes a WebSocket connection.\n     *\n     * The connection will invoke the appropriate callback functions for each connection event:\n     * - `onMessage`: Called when a new message is received.\n     * - `onOpen`: Called when the connection is successfully established.\n     * - `onError`: Called when an error occurs.\n     * - `onClose`: Called when the connection is closed.\n     * - `onReady`: Called after a short delay once the connection is ready.\n     *\n     * @param {Options} [options={}] - Connection options for setting up the connection.\n     * @param {string} [options.host='localhost'] - Host to connect to.\n     * @param {number} [options.port=9878] - Port to connect to.\n     * @param {string} [options.protocol='tcp'] - Protocol to use for the connection ('tcp', 'ssl-tcp', 'tls-tcp', 'websocket').\n     * @param {string} [options.sender='SENDER'] - Sender ID for the FIX connection.\n     * @param {string} [options.target='TARGET'] - Target ID for the FIX connection.\n     * @param {number} [options.heartbeatIntervalSeconds=DEFAULT_HEARTBEAT_SECONDS] - Interval in seconds for sending heartbeat messages.\n     * @param {string} [options.messageStoreIn=new MessageBuffer()] - Optional custom message buffer for incoming messages.\n     * @param {string} [options.messageStoreOut=new MessageBuffer()] - Optional custom message buffer for outgoing messages.\n     * @param {string | Buffer | undefined} [options.tlsKey] - Optional TLS private key for secure connections.\n     * @param {string | Buffer | undefined} [options.tlsCert] - Optional TLS certificate for secure connections.\n     * @param {boolean} [options.tlsUseSNI=false] - Whether to use Server Name Indication (SNI) for secure connections.\n     * @param {boolean} [options.tlsSkipStdInPipe=false] - Whether to skip piping stdin for secure connections.\n     * @param {any} [options.proxy=null] - Optional proxy configuration for WebSocket connections.\n     * @param {Function} [options.onMessage=this.onMessageCallback] - Callback function to handle incoming messages.\n     * @param {Function} [options.onOpen=this.onOpenCallback] - Callback function to handle connection opening.\n     * @param {Function} [options.onError=this.onErrorCallback] - Callback function to handle errors.\n     * @param {Function} [options.onClose=this.onCloseCallback] - Callback function to handle connection closing.\n     * @param {Function} [options.onReady=this.onReadyCallback] - Callback function to handle connection readiness.\n     * @param {number} [options.tlsTimeout=this.tlsTimeout] - TLS timeout in milliseconds.\n     * @param {BufferEncoding} [options.tlsEncoding=this.tlsEncoding] - TLS encoding.\n     *\n     * @returns {void}\n     */\n    public connect(options: Options = {}): void {\n        const {\n            host = 'localhost',\n            port = 9878,\n            protocol = 'tcp',\n            sender = 'SENDER',\n            target = 'TARGET',\n            heartbeatIntervalSeconds = DEFAULT_HEARTBEAT_SECONDS,\n            fixVersion = this.fixVersion,\n            messageStoreIn = new MessageBuffer(),\n            messageStoreOut = new MessageBuffer(),\n            tlsOptions = {},\n            tlsSkipStdInPipe = false,\n            tlsTimeout = DEFAULT_TLS_TIMEOUT,\n            tlsEncoding = DEFAULT_TLS_ENCODING,\n            proxy = undefined,\n            onMessage = this.onMessageCallback,\n            onOpen = this.onOpenCallback,\n            onError = this.onErrorCallback,\n            onClose = this.onCloseCallback,\n            onReady = this.onReadyCallback,\n        } = options;\n        this.logger = new Logger(\n            this.logOptions\n                ? {\n                      name: this.logOptions.name ?? 'fixparser',\n                      ...this.logOptions,\n                  }\n                : {\n                      name: 'fixparser',\n                      format: 'json',\n                  },\n        );\n        if (!this.logging) {\n            this.logger.silent = true;\n        }\n        LicenseManager.setLogger(this.logger);\n        if (!LicenseManager.validateLicense()) {\n            throw new Error(LicenseManager.ERROR_MESSAGE_NO_LICENSE);\n        }\n        this.connectionType = 'initiator';\n        this.fixVersion = parseFixVersion(fixVersion);\n        this.fixParserBase.fixVersion = parseFixVersion(fixVersion);\n        this.messageStoreIn = messageStoreIn;\n        this.messageStoreOut = messageStoreOut;\n        this.protocol = protocol;\n        this.sender = sender;\n        this.target = target;\n        this.port = port;\n        this.host = host;\n        this.proxy = proxy;\n        if (tlsOptions) this.tlsOptions = tlsOptions as ConnectionOptions;\n        if (tlsSkipStdInPipe) this.tlsSkipStdInPipe = tlsSkipStdInPipe;\n        if (tlsTimeout) this.tlsTimeout = tlsTimeout;\n        if (tlsEncoding) this.tlsEncoding = tlsEncoding;\n        this.heartBeatInterval = heartbeatIntervalSeconds;\n        this.onMessageCallback = onMessage;\n        this.onOpenCallback = onOpen;\n        this.onErrorCallback = onError;\n        this.onCloseCallback = onClose;\n        this.onReadyCallback = onReady;\n\n        switch (protocol) {\n            case 'tcp':\n                this.connectTcp();\n                break;\n            case 'ssl-tcp':\n            case 'tls-tcp':\n                this.connectTlsTcp();\n                break;\n            case 'websocket':\n                this.connectWebsocket();\n                break;\n            default:\n                throw new Error(`Unsupported protocol: ${protocol}`);\n        }\n    }\n\n    /**\n     * Establishes a TCP connection to the specified host and port, sets up the socket for communication,\n     * and handles various socket events such as 'data', 'close', 'ready', 'timeout', and 'error'.\n     *\n     * - Upon successful connection, the socket is ready to receive and process messages.\n     * - Incoming messages are parsed and processed through a message buffer and the provided callback.\n     * - Handles error scenarios such as timeout and connection errors, with appropriate cleanup and notifications.\n     *\n     * @returns {void}\n     */\n    private connectTcp() {\n        this.socket = new Socket();\n        this.socket.setEncoding(this.tlsEncoding);\n        this.socket.pipe(new FrameDecoder()).on('data', (data: string) => {\n            const messages: Message[] = this.parse(data.toString());\n            let i = 0;\n            for (i; i < messages.length; i++) {\n                clientProcessMessage(this, messages[i]);\n                this.messageStoreIn.add(messages[i]);\n                this.onMessageCallback?.(messages[i]);\n                this.triggerOnMessage(messages[i]);\n            }\n        });\n        this.socket.connect(Number(this.port), String(this.host), () => {\n            this.connected = true;\n            this.logger.log({\n                level: 'info',\n                message: `FIXParser (${this.protocol?.toUpperCase()}): -- Connected to ${this.host}:${this.port}`,\n            });\n            this.onOpenCallback?.();\n            this.triggerOnOpen();\n        });\n        this.socket.on('close', () => {\n            this.connected = false;\n            this.onCloseCallback?.();\n            this.triggerOnClose();\n            this.stopHeartbeat();\n        });\n        this.socket.on('ready', () => {\n            setTimeout(() => {\n                this.onReadyCallback?.();\n                this.triggerOnReady();\n            }, READY_MS);\n        });\n        this.socket.on('timeout', () => {\n            this.connected = false;\n            const socket: Socket = this.socket! as Socket;\n            this.onCloseCallback?.();\n            this.triggerOnClose();\n            socket.end();\n            this.stopHeartbeat();\n        });\n        this.socket.on('error', (error) => {\n            this.connected = false;\n            this.onErrorCallback?.(error);\n            this.triggerOnError(error);\n            this.stopHeartbeat();\n        });\n    }\n\n    /**\n     * Establishes a secure TCP (TLS) connection to the specified host and port with optional TLS certificates and keys.\n     * Configures the socket for secure communication and handles various socket events such as 'data', 'close', 'timeout', and 'error'.\n     *\n     * - Supports server-side SSL/TLS authentication with optional key and certificate.\n     * - Enables Server Name Indication (SNI) for secure connections if `tlsUseSNI` is true.\n     * - Handles input piping from `stdin` if `tlsSkipStdInPipe` is false.\n     * - Provides error handling for connection and timeouts, with appropriate cleanup and notifications.\n     *\n     * @returns {void}\n     */\n    private connectTlsTcp() {\n        if (!this.tlsOptions) {\n            this.tlsOptions = {};\n        }\n        if (!this.tlsOptions.host) {\n            this.tlsOptions.host = this.host;\n        }\n        if (!this.tlsOptions.port) {\n            this.tlsOptions.port = this.port;\n        }\n\n        const port = Number(this.tlsOptions.port);\n        const host = String(this.tlsOptions.host);\n\n        try {\n            const tlsSocket = TLSConnect(port, host, this.tlsOptions, () => {\n                this.logger.log({\n                    level: 'info',\n                    message: `FIXParser (${this.protocol?.toUpperCase()}): -- Connected to ${host}:${port} via TLS.`,\n                });\n\n                // Optional: pipe stdin to socket (useful for debugging or CLI)\n                if (!this.tlsSkipStdInPipe) {\n                    process.stdin.pipe(tlsSocket);\n                    process.stdin.resume();\n                }\n                this.addTcpListeners(tlsSocket);\n                this.connected = true;\n                this.onOpenCallback?.();\n                this.triggerOnOpen();\n            });\n            this.socket = tlsSocket;\n            tlsSocket.setEncoding(this.tlsEncoding);\n            tlsSocket.setTimeout(this.tlsTimeout ?? DEFAULT_TLS_TIMEOUT);\n            this.addTlsListener(tlsSocket as TLSSocket);\n        } catch (error: unknown) {\n            if (error instanceof Error) {\n                this.logger.logError({\n                    level: 'error',\n                    message: `FIXParser (${this.protocol?.toUpperCase()}): -- Client connection to ${this.host}:${this.port} failed with error: ${error.message}.`,\n                });\n            } else {\n                this.logger.logError({\n                    level: 'error',\n                    message: `FIXParser (${this.protocol?.toUpperCase()}): -- Client connection to ${this.host}:${this.port} failed with unspecified error.`,\n                });\n            }\n\n            this.connected = false;\n            return;\n        }\n    }\n\n    private addTcpListeners(tlsSocket: TLSSocket) {\n        const decoder = new FrameDecoder();\n        decoder.setEncoding(this.tlsEncoding);\n        tlsSocket.on('ready', () => {\n            this.logger.log({\n                level: 'info',\n                message: `FIXParser (${this.protocol?.toUpperCase()}): -- Connection ready to ${this.host}:${this.port}.`,\n            });\n        });\n\n        tlsSocket.pipe(decoder).on('data', (data: string) => {\n            try {\n                const messages: Message[] = this.parse(data);\n                for (const message of messages) {\n                    clientProcessMessage(this, message);\n                    this.messageStoreIn.add(message);\n                    this.onMessageCallback?.(message);\n                    this.triggerOnMessage(message);\n                }\n            } catch (err) {\n                this.logger.logError({\n                    level: 'warn',\n                    message: `FIXParser (${this.protocol?.toUpperCase()}): -- Failed to parse/process incoming data \u2014 ${(err as Error).message}`,\n                });\n            }\n        });\n\n        tlsSocket.on('end', () => {\n            this.logger.log({\n                level: 'info',\n                message: `FIXParser (${this.protocol?.toUpperCase()}): -- Server closed the connection (END). ${this.host}:${this.port}.`,\n            });\n            this.disconnectTlsTcp(tlsSocket);\n        });\n\n        tlsSocket.on('close', (hadError: boolean) => {\n            this.logger.log({\n                level: hadError ? 'error' : 'info',\n                message: `FIXParser (${this.protocol?.toUpperCase()}): -- Connection closed:  ${this.host}:${this.port}. HadError? '${hadError}`,\n            });\n            this.disconnectTlsTcp(tlsSocket);\n        });\n\n        tlsSocket.on('timeout', () => {\n            this.logger.logError({\n                level: 'warn',\n                message: `FIXParser (${this.protocol?.toUpperCase()}): -- Connection timeout for ${this.host}:${this.port}.`,\n            });\n            this.disconnectTlsTcp(tlsSocket);\n        });\n\n        tlsSocket.on('error', (error: Error) => {\n            this.logger.logError({\n                level: 'error',\n                message: `FIXParser (${this.protocol?.toUpperCase()}): -- Connection error for ${this.host}:${this.port}. error: ${error.message}`,\n            });\n            this.onErrorCallback?.(error); // This is specific to 'error', keep it here\n            this.triggerOnError(error);\n            this.disconnectTlsTcp(tlsSocket);\n        });\n    }\n\n    private addTlsListener(tlsSocket: TLSSocket) {\n        tlsSocket.on('secureConnect', () => {\n            this.logger.log({\n                level: 'info',\n                message: `FIXParser (${this.protocol?.toUpperCase()}): -- TLS handshake completed to ${this.host}:${this.port}.`,\n            });\n            this.onReadyCallback?.();\n            this.triggerOnReady();\n        });\n    }\n\n    private disconnectTlsTcp(tlsSocket: TLSSocket) {\n        if (tlsSocket) {\n            this.logger.log({\n                level: 'info',\n                message: `FIXParser (${this.protocol?.toUpperCase()}): -- Disconnected from ${this.host}:${this.port}.`,\n            });\n            this.connected = false;\n            tlsSocket.removeAllListeners();\n            tlsSocket.destroy();\n            this.onCloseCallback?.();\n            this.triggerOnClose();\n            this.stopHeartbeat();\n            this.socket = undefined;\n        } else {\n            this.logger.logError({\n                level: 'error',\n                message: `FIXParser (${this.protocol?.toUpperCase()}): -- No active connection to disconnect.`,\n            });\n        }\n    }\n\n    /**\n     * Establishes a WebSocket connection to the specified host and port, with optional proxy support.\n     * Configures the socket for communication and handles various WebSocket events such as 'message', 'open', and 'close'.\n     *\n     * - If the connection string does not include `ws://` or `wss://`, it prepends `ws://` to the host and port.\n     * - Optionally uses a proxy if `proxy` is provided.\n     * - Handles incoming messages, processes them, and invokes appropriate callbacks.\n     * - Handles WebSocket open and close events, managing connection state and triggering callbacks.\n     *\n     * @returns {void}\n     */\n    private connectWebsocket() {\n        const connectionString: string =\n            String(this.host).indexOf('ws://') === -1 && String(this.host).indexOf('wss://') === -1\n                ? `ws://${String(this.host)}:${Number(this.port)}`\n                : `${String(this.host)}:${Number(this.port)}`;\n        if (this.proxy) {\n            this.socket = new WebSocket(connectionString, { agent: this.proxy as Agent });\n        } else {\n            this.socket = new WebSocket(connectionString);\n        }\n        this.socket.on('message', (data: string | Buffer) => {\n            const messages: Message[] = this.parse(data.toString());\n            let i = 0;\n            for (i; i < messages.length; i++) {\n                clientProcessMessage(this, messages[i]);\n                this.messageStoreIn.add(messages[i]);\n                this.onMessageCallback?.(messages[i]);\n                this.triggerOnMessage(messages[i]);\n            }\n        });\n        this.socket.on('open', () => {\n            this.logger.log({\n                level: 'info',\n                message: `FIXParser (${this.protocol?.toUpperCase()}): -- Connected to ${this.host}:${this.port}`,\n            });\n            this.connected = true;\n            this.onOpenCallback?.();\n            this.triggerOnOpen();\n        });\n        this.socket.on('close', () => {\n            this.connected = false;\n            this.onCloseCallback?.();\n            this.triggerOnClose();\n            this.stopHeartbeat();\n        });\n        if (\n            this.socket.readyState === (WebSocket.OPEN || WebSocket.CLOSED || WebSocket.CLOSING || WebSocket.CONNECTING)\n        ) {\n            setTimeout(() => {\n                this.onReadyCallback?.();\n                this.triggerOnReady();\n            }, READY_MS);\n        }\n    }\n\n    /**\n     * Get the next outgoing message sequence number.\n     *\n     * @returns {number} The next outgoing message sequence number.\n     */\n    public getNextTargetMsgSeqNum(): number {\n        return this.messageStoreOut.getNextMsgSeqNum();\n    }\n\n    /**\n     * Set the next outgoing message sequence number.\n     *\n     * @param {number} nextMsgSeqNum - The next message sequence number.\n     * @returns {number} The next outgoing message sequence number.\n     */\n    public setNextTargetMsgSeqNum(nextMsgSeqNum: number): number {\n        return this.messageStoreOut.setNextMsgSeqNum(nextMsgSeqNum);\n    }\n\n    /**\n     * Get the next incoming message sequence number.\n     *\n     * @returns {number} The next incoming message sequence number.\n     */\n    public getNextSenderMsgSeqNum(): number {\n        return this.messageStoreIn.getNextMsgSeqNum();\n    }\n\n    /**\n     * Set the next incoming message sequence number.\n     *\n     * @param {number} nextMsgSeqNum - The next message sequence number.\n     * @returns {number} The next incoming message sequence number.\n     */\n    public setNextSenderMsgSeqNum(nextMsgSeqNum: number): number {\n        return this.messageStoreIn.setNextMsgSeqNum(nextMsgSeqNum);\n    }\n\n    /**\n     * Get current timestamp.\n     *\n     * @param {Date} [dateObject=new Date()] - An instance of a Date class.\n     * @returns {string} The current timestamp.\n     */\n    public getTimestamp(dateObject = new Date()): string {\n        return timestamp(dateObject, this.logger);\n    }\n\n    /**\n     * Create an instance of a FIX Message.\n     *\n     * @param {...Field} fields - An array of Fields.\n     * @returns {Message} A FIX Message class instance.\n     */\n    public createMessage(...fields: Field[]): Message {\n        const message: Message = new Message(this.fixVersion, ...fields);\n        message.messageSequence = this.getNextTargetMsgSeqNum();\n        return message;\n    }\n\n    /**\n     * Parse a FIX message string into Message instance(s).\n     *\n     * @param {string} data - FIX message string.\n     * @returns {Message[]} FIX Message class instance(s).\n     */\n    public parse(data: string): Message[] {\n        if (!LicenseManager.validateFreeLicense()) {\n            throw new Error(LicenseManager.ERROR_MESSAGE_NO_FREE_LICENSE);\n        }\n        return this.fixParserBase.parse(data);\n    }\n\n    /**\n     * Send a FIX message.\n     *\n     * @param {Message} message - FIX Message class instance.\n     * @returns {void}\n     */\n    public send(message: Message): void {\n        if (!LicenseManager.validateLicense()) {\n            throw new Error(LicenseManager.ERROR_MESSAGE_NO_LICENSE);\n        }\n\n        const messageType: Field | undefined = message.getField(FieldType.MsgType);\n        if (messageType && messageType.value === MessageType.Logout) {\n            this.requestedLogout = true;\n        }\n\n        const encodedMessage: string = message.encode();\n        if (this.protocol === 'tcp' && this.connected) {\n            this.setNextTargetMsgSeqNum(this.getNextTargetMsgSeqNum() + 1);\n            (this.socket! as Socket).write(encodedMessage);\n            this.messageStoreOut.add(message.clone());\n            this.restartHeartbeat();\n            this.logger.log({\n                level: 'info',\n                message: `FIXParser (${this.protocol.toUpperCase()}): >> sent`,\n                fix: encodedMessage.replace(/\\x01/g, '|'),\n            });\n        } else if (this.protocol === 'websocket' && (this.socket! as WebSocket).readyState === WebSocket.OPEN) {\n            this.setNextTargetMsgSeqNum(this.getNextTargetMsgSeqNum() + 1);\n            (this.socket! as WebSocket).send(encodedMessage);\n            this.messageStoreOut.add(message.clone());\n            this.restartHeartbeat();\n            this.logger.log({\n                level: 'info',\n                message: `FIXParser (${this.protocol.toUpperCase()}): >> sent`,\n                fix: encodedMessage.replace(/\\x01/g, '|'),\n            });\n        } else if ((this.protocol === 'ssl-tcp' || this.protocol === 'tls-tcp') && this.connected) {\n            this.setNextTargetMsgSeqNum(this.getNextTargetMsgSeqNum() + 1);\n            (this.socket! as TLSSocket).write(encodedMessage);\n            this.messageStoreOut.add(message.clone());\n            this.restartHeartbeat();\n            this.logger.log({\n                level: 'info',\n                message: `FIXParser (${this.protocol.toUpperCase()}): >> sent`,\n                fix: encodedMessage.replace(/\\x01/g, '|'),\n            });\n        } else {\n            this.logger.logError({\n                message: `FIXParser (${this.protocol?.toUpperCase()}): -- Could not send message, no connection`,\n                fix: encodedMessage.replace(/\\x01/g, '|'),\n            });\n        }\n    }\n\n    /**\n     * Get connection status.\n     *\n     * @returns {boolean} Current connection status.\n     */\n    public isConnected(): boolean {\n        return this.connected;\n    }\n\n    /**\n     * Close current connection.\n     *\n     * @returns {void}\n     */\n    public close(): void {\n        if (this.protocol === 'tcp') {\n            const socket: Socket = this.socket! as Socket;\n            if (socket) {\n                socket.destroy();\n                this.connected = false;\n            } else {\n                this.logger.logError({\n                    message: `FIXParser (${this.protocol.toUpperCase()}): -- Could not close socket, connection not open`,\n                });\n            }\n        } else if (this.protocol === 'websocket') {\n            const socket: WebSocket = this.socket! as WebSocket;\n            if (socket) {\n                try {\n                    socket.close();\n                } catch (error) {\n                    this.logger.logError({\n                        message: `FIXParser (${this.protocol.toUpperCase()}): -- Could not close socket,`,\n                        error,\n                    });\n                }\n                this.connected = false;\n            } else {\n                this.logger.logError({\n                    message: `FIXParser (${this.protocol.toUpperCase()}): -- Could not close socket, connection not open`,\n                });\n            }\n        } else if (this.protocol === 'ssl-tcp' || this.protocol === 'tls-tcp') {\n            const socket: TLSSocket = this.socket! as TLSSocket;\n            if (socket) {\n                socket.destroy();\n                this.connected = false;\n            } else {\n                this.logger.logError({\n                    message: `FIXParser (${this.protocol.toUpperCase()}): -- Could not close socket, connection not open`,\n                });\n            }\n        }\n    }\n\n    /**\n     * Stop heartbeat interval.\n     *\n     * @returns {void}\n     */\n    public stopHeartbeat(): void {\n        clearInterval(this.heartBeatIntervalId);\n    }\n\n    /**\n     * Restart heartbeat interval.\n     *\n     * @returns {void}\n     */\n    public restartHeartbeat(): void {\n        this.stopHeartbeat();\n        this.startHeartbeat(this.heartBeatInterval, true);\n    }\n\n    /**\n     * Start heartbeat interval.\n     *\n     * @param {number} [heartBeatInterval=this.heartBeatInterval] - Heartbeat interval in seconds.\n     * @param {boolean} [disableLog] - Whether to disable heartbeat logs.\n     * @returns {void}\n     */\n    public startHeartbeat(heartBeatInterval: number = this.heartBeatInterval, disableLog?: boolean): void {\n        this.stopHeartbeat();\n        if (!disableLog) {\n            this.logger.log({\n                level: 'info',\n                message: `FIXParser (${this.protocol?.toUpperCase()}): -- Heartbeat configured to ${heartBeatInterval} seconds`,\n            });\n        }\n        this.heartBeatInterval = heartBeatInterval;\n        this.heartBeatIntervalId = setInterval(() => {\n            const heartBeatMessage: Message = heartBeat(this);\n            this.send(heartBeatMessage);\n            const encodedMessage: string = heartBeatMessage.encode();\n            this.logger.log({\n                level: 'info',\n                message: `FIXParser (${this.protocol?.toUpperCase()}): >> sent Heartbeat`,\n                fix: encodedMessage.replace(/\\x01/g, '|'),\n            });\n        }, this.heartBeatInterval * 1000);\n    }\n}\n\nexport type { IAsyncMessageStore, ILogTransporter, IMessageStore, Level, LogMessage } from 'fixparser-common';\nexport { isAsyncMessageStore } from 'fixparser-common';\nexport type { BaseOptions, Options, Protocol } from './FIXParserBase.ts';\nexport { AccountType } from './fieldtypes/AccountType.ts';\nexport { AcctIDSource } from './fieldtypes/AcctIDSource.ts';\nexport { Adjustment } from './fieldtypes/Adjustment.ts';\nexport { AdjustmentType } from './fieldtypes/AdjustmentType.ts';\nexport { AdvSide } from './fieldtypes/AdvSide.ts';\nexport { AdvTransType } from './fieldtypes/AdvTransType.ts';\nexport { AffirmStatus } from './fieldtypes/AffirmStatus.ts';\nexport { AggregatedBook } from './fieldtypes/AggregatedBook.ts';\nexport { AggressorIndicator } from './fieldtypes/AggressorIndicator.ts';\nexport { AlgoCertificateReportStatus } from './fieldtypes/AlgoCertificateReportStatus.ts';\nexport { AlgoCertificateReportTransType } from './fieldtypes/AlgoCertificateReportTransType.ts';\nexport { AlgoCertificateReportType } from './fieldtypes/AlgoCertificateReportType.ts';\nexport { AlgoCertificateRequestStatus } from './fieldtypes/AlgoCertificateRequestStatus.ts';\nexport { AlgoCertificateRequestTransType } from './fieldtypes/AlgoCertificateRequestTransType.ts';\nexport { AlgoCertificateRequestType } from './fieldtypes/AlgoCertificateRequestType.ts';\nexport { AlgoCertificateStatus } from './fieldtypes/AlgoCertificateStatus.ts';\nexport { AlgorithmicTradeIndicator } from './fieldtypes/AlgorithmicTradeIndicator.ts';\nexport { AllocAccountType } from './fieldtypes/AllocAccountType.ts';\nexport { AllocationRollupInstruction } from './fieldtypes/AllocationRollupInstruction.ts';\nexport { AllocCancReplaceReason } from './fieldtypes/AllocCancReplaceReason.ts';\nexport { AllocGroupStatus } from './fieldtypes/AllocGroupStatus.ts';\nexport { AllocGroupSubQtyType } from './fieldtypes/AllocGroupSubQtyType.ts';\nexport { AllocHandlInst } from './fieldtypes/AllocHandlInst.ts';\nexport { AllocIntermedReqType } from './fieldtypes/AllocIntermedReqType.ts';\nexport { AllocLinkType } from './fieldtypes/AllocLinkType.ts';\nexport { AllocMethod } from './fieldtypes/AllocMethod.ts';\nexport { AllocNoOrdersType } from './fieldtypes/AllocNoOrdersType.ts';\nexport { AllocPositionEffect } from './fieldtypes/AllocPositionEffect.ts';\nexport { AllocRejCode } from './fieldtypes/AllocRejCode.ts';\nexport { AllocReportType } from './fieldtypes/AllocReportType.ts';\nexport { AllocRequestStatus } from './fieldtypes/AllocRequestStatus.ts';\nexport { AllocReversalStatus } from './fieldtypes/AllocReversalStatus.ts';\nexport { AllocSettlInstType } from './fieldtypes/AllocSettlInstType.ts';\nexport { AllocStatus } from './fieldtypes/AllocStatus.ts';\nexport { AllocTransType } from './fieldtypes/AllocTransType.ts';\nexport { AllocType } from './fieldtypes/AllocType.ts';\nexport { ApplLevelRecoveryIndicator } from './fieldtypes/ApplLevelRecoveryIndicator.ts';\nexport { ApplQueueAction } from './fieldtypes/ApplQueueAction.ts';\nexport { ApplQueueResolution } from './fieldtypes/ApplQueueResolution.ts';\nexport { ApplReportType } from './fieldtypes/ApplReportType.ts';\nexport { ApplReqType } from './fieldtypes/ApplReqType.ts';\nexport { ApplResponseError } from './fieldtypes/ApplResponseError.ts';\nexport { ApplResponseType } from './fieldtypes/ApplResponseType.ts';\nexport { ApplVerID } from './fieldtypes/ApplVerID.ts';\nexport { AsOfIndicator } from './fieldtypes/AsOfIndicator.ts';\nexport { AssetClass } from './fieldtypes/AssetClass.ts';\nexport { AssetGroup } from './fieldtypes/AssetGroup.ts';\nexport { AssetSubClass } from './fieldtypes/AssetSubClass.ts';\nexport { AssetValuationModel } from './fieldtypes/AssetValuationModel.ts';\nexport { AssignmentMethod } from './fieldtypes/AssignmentMethod.ts';\nexport { AttachmentEncodingType } from './fieldtypes/AttachmentEncodingType.ts';\nexport { AuctionInstruction } from './fieldtypes/AuctionInstruction.ts';\nexport { AuctionType } from './fieldtypes/AuctionType.ts';\nexport { AveragePriceType } from './fieldtypes/AveragePriceType.ts';\nexport { AvgPxIndicator } from './fieldtypes/AvgPxIndicator.ts';\nexport { BasisPxType } from './fieldtypes/BasisPxType.ts';\nexport { BatchProcessMode } from './fieldtypes/BatchProcessMode.ts';\nexport { BeginString } from './fieldtypes/BeginString.ts';\nexport { Benchmark } from './fieldtypes/Benchmark.ts';\nexport { BenchmarkCurveName } from './fieldtypes/BenchmarkCurveName.ts';\nexport { BidDescriptorType } from './fieldtypes/BidDescriptorType.ts';\nexport { BidRequestTransType } from './fieldtypes/BidRequestTransType.ts';\nexport { BidTradeType } from './fieldtypes/BidTradeType.ts';\nexport { BidType } from './fieldtypes/BidType.ts';\nexport { BlockTrdAllocIndicator } from './fieldtypes/BlockTrdAllocIndicator.ts';\nexport { BookingType } from './fieldtypes/BookingType.ts';\nexport { BookingUnit } from './fieldtypes/BookingUnit.ts';\nexport { BusinessDayConvention } from './fieldtypes/BusinessDayConvention.ts';\nexport { BusinessRejectReason } from './fieldtypes/BusinessRejectReason.ts';\nexport { CalculationMethod } from './fieldtypes/CalculationMethod.ts';\nexport { CancellationRights } from './fieldtypes/CancellationRights.ts';\nexport { CashMargin } from './fieldtypes/CashMargin.ts';\nexport { CashSettlPriceDefault } from './fieldtypes/CashSettlPriceDefault.ts';\nexport { CashSettlQuoteMethod } from './fieldtypes/CashSettlQuoteMethod.ts';\nexport { CashSettlValuationMethod } from './fieldtypes/CashSettlValuationMethod.ts';\nexport { ClearedIndicator } from './fieldtypes/ClearedIndicator.ts';\nexport { ClearingAccountType } from './fieldtypes/ClearingAccountType.ts';\nexport { ClearingFeeIndicator } from './fieldtypes/ClearingFeeIndicator.ts';\nexport { ClearingInstruction } from './fieldtypes/ClearingInstruction.ts';\nexport { ClearingIntention } from './fieldtypes/ClearingIntention.ts';\nexport { ClearingRequirementException } from './fieldtypes/ClearingRequirementException.ts';\nexport { CollAction } from './fieldtypes/CollAction.ts';\nexport { CollApplType } from './fieldtypes/CollApplType.ts';\nexport { CollAsgnReason } from './fieldtypes/CollAsgnReason.ts';\nexport { CollAsgnRejectReason } from './fieldtypes/CollAsgnRejectReason.ts';\nexport { CollAsgnRespType } from './fieldtypes/CollAsgnRespType.ts';\nexport { CollAsgnTransType } from './fieldtypes/CollAsgnTransType.ts';\nexport { CollateralAmountType } from './fieldtypes/CollateralAmountType.ts';\nexport { CollateralReinvestmentType } from './fieldtypes/CollateralReinvestmentType.ts';\nexport { CollInquiryQualifier } from './fieldtypes/CollInquiryQualifier.ts';\nexport { CollInquiryResult } from './fieldtypes/CollInquiryResult.ts';\nexport { CollInquiryStatus } from './fieldtypes/CollInquiryStatus.ts';\nexport { CollRptRejectReason } from './fieldtypes/CollRptRejectReason.ts';\nexport { CollRptStatus } from './fieldtypes/CollRptStatus.ts';\nexport { CollStatus } from './fieldtypes/CollStatus.ts';\nexport { CommissionAmountSubType } from './fieldtypes/CommissionAmountSubType.ts';\nexport { CommissionAmountType } from './fieldtypes/CommissionAmountType.ts';\nexport { CommodityFinalPriceType } from './fieldtypes/CommodityFinalPriceType.ts';\nexport { CommType } from './fieldtypes/CommType.ts';\nexport { ComplexEventCondition } from './fieldtypes/ComplexEventCondition.ts';\nexport { ComplexEventCreditEventNotifyingParty } from './fieldtypes/ComplexEventCreditEventNotifyingParty.ts';\nexport { ComplexEventDateOffsetDayType } from './fieldtypes/ComplexEventDateOffsetDayType.ts';\nexport { ComplexEventPeriodType } from './fieldtypes/ComplexEventPeriodType.ts';\nexport { ComplexEventPriceBoundaryMethod } from './fieldtypes/ComplexEventPriceBoundaryMethod.ts';\nexport { ComplexEventPriceTimeType } from './fieldtypes/ComplexEventPriceTimeType.ts';\nexport { ComplexEventPVFinalPriceElectionFallback } from './fieldtypes/ComplexEventPVFinalPriceElectionFallback.ts';\nexport { ComplexEventQuoteBasis } from './fieldtypes/ComplexEventQuoteBasis.ts';\nexport { ComplexEventType } from './fieldtypes/ComplexEventType.ts';\nexport { ComplexOptPayoutTime } from './fieldtypes/ComplexOptPayoutTime.ts';\nexport { ConfirmationMethod } from './fieldtypes/ConfirmationMethod.ts';\nexport { ConfirmRejReason } from './fieldtypes/ConfirmRejReason.ts';\nexport { ConfirmStatus } from './fieldtypes/ConfirmStatus.ts';\nexport { ConfirmTransType } from './fieldtypes/ConfirmTransType.ts';\nexport { ConfirmType } from './fieldtypes/ConfirmType.ts';\nexport { ContAmtType } from './fieldtypes/ContAmtType.ts';\nexport { ContingencyType } from './fieldtypes/ContingencyType.ts';\nexport { ContractMultiplierUnit } from './fieldtypes/ContractMultiplierUnit.ts';\nexport { ContractRefPosType } from './fieldtypes/ContractRefPosType.ts';\nexport { CorporateAction } from './fieldtypes/CorporateAction.ts';\nexport { CouponDayCount } from './fieldtypes/CouponDayCount.ts';\nexport { CouponFrequencyUnit } from './fieldtypes/CouponFrequencyUnit.ts';\nexport { CouponType } from './fieldtypes/CouponType.ts';\nexport { CoveredOrUncovered } from './fieldtypes/CoveredOrUncovered.ts';\nexport { CPProgram } from './fieldtypes/CPProgram.ts';\nexport { CrossedIndicator } from './fieldtypes/CrossedIndicator.ts';\nexport { CrossPrioritization } from './fieldtypes/CrossPrioritization.ts';\nexport { CrossType } from './fieldtypes/CrossType.ts';\nexport { CurrencyCodeSource } from './fieldtypes/CurrencyCodeSource.ts';\nexport { CustOrderCapacity } from './fieldtypes/CustOrderCapacity.ts';\nexport { CustOrderHandlingInst } from './fieldtypes/CustOrderHandlingInst.ts';\nexport { CustomerOrFirm } from './fieldtypes/CustomerOrFirm.ts';\nexport { CustomerPriority } from './fieldtypes/CustomerPriority.ts';\nexport { CxlRejReason } from './fieldtypes/CxlRejReason.ts';\nexport { CxlRejResponseTo } from './fieldtypes/CxlRejResponseTo.ts';\nexport { DateRollConvention } from './fieldtypes/DateRollConvention.ts';\nexport { DayBookingInst } from './fieldtypes/DayBookingInst.ts';\nexport { DealingCapacity } from './fieldtypes/DealingCapacity.ts';\nexport { DeleteReason } from './fieldtypes/DeleteReason.ts';\nexport { DeliveryForm } from './fieldtypes/DeliveryForm.ts';\nexport { DeliveryScheduleSettlDay } from './fieldtypes/DeliveryScheduleSettlDay.ts';\nexport { DeliveryScheduleSettlFlowType } from './fieldtypes/DeliveryScheduleSettlFlowType.ts';\nexport { DeliveryScheduleSettlHolidaysProcessingInstruction } from './fieldtypes/DeliveryScheduleSettlHolidaysProcessingInstruction.ts';\nexport { DeliveryScheduleSettlTimeType } from './fieldtypes/DeliveryScheduleSettlTimeType.ts';\nexport { DeliveryScheduleToleranceType } from './fieldtypes/DeliveryScheduleToleranceType.ts';\nexport { DeliveryScheduleType } from './fieldtypes/DeliveryScheduleType.ts';\nexport { DeliveryStreamDeliveryPointSource } from './fieldtypes/DeliveryStreamDeliveryPointSource.ts';\nexport { DeliveryStreamDeliveryRestriction } from './fieldtypes/DeliveryStreamDeliveryRestriction.ts';\nexport { DeliveryStreamElectingPartySide } from './fieldtypes/DeliveryStreamElectingPartySide.ts';\nexport { DeliveryStreamTitleTransferCondition } from './fieldtypes/DeliveryStreamTitleTransferCondition.ts';\nexport { DeliveryStreamToleranceOptionSide } from './fieldtypes/DeliveryStreamToleranceOptionSide.ts';\nexport { DeliveryStreamType } from './fieldtypes/DeliveryStreamType.ts';\nexport { DeliveryType } from './fieldtypes/DeliveryType.ts';\nexport { DeskType } from './fieldtypes/DeskType.ts';\nexport { DeskTypeSource } from './fieldtypes/DeskTypeSource.ts';\nexport { DisclosureInstruction } from './fieldtypes/DisclosureInstruction.ts';\nexport { DisclosureType } from './fieldtypes/DisclosureType.ts';\nexport { DiscretionInst } from './fieldtypes/DiscretionInst.ts';\nexport { DiscretionLimitType } from './fieldtypes/DiscretionLimitType.ts';\nexport { DiscretionMoveType } from './fieldtypes/DiscretionMoveType.ts';\nexport { DiscretionOffsetType } from './fieldtypes/DiscretionOffsetType.ts';\nexport { DiscretionRoundDirection } from './fieldtypes/DiscretionRoundDirection.ts';\nexport { DiscretionScope } from './fieldtypes/DiscretionScope.ts';\nexport { DisplayMethod } from './fieldtypes/DisplayMethod.ts';\nexport { DisplayWhen } from './fieldtypes/DisplayWhen.ts';\nexport { DistribPaymentMethod } from './fieldtypes/DistribPaymentMethod.ts';\nexport { DividendAmountType } from './fieldtypes/DividendAmountType.ts';\nexport { DividendComposition } from './fieldtypes/DividendComposition.ts';\nexport { DividendEntitlementEvent } from './fieldtypes/DividendEntitlementEvent.ts';\nexport { DKReason } from './fieldtypes/DKReason.ts';\nexport { DlvyInstType } from './fieldtypes/DlvyInstType.ts';\nexport { DueToRelated } from './fieldtypes/DueToRelated.ts';\nexport { DuplicateClOrdIDIndicator } from './fieldtypes/DuplicateClOrdIDIndicator.ts';\nexport { EmailType } from './fieldtypes/EmailType.ts';\nexport { EncryptMethod } from './fieldtypes/EncryptMethod.ts';\nexport { EntitlementAttribDatatype } from './fieldtypes/EntitlementAttribDatatype.ts';\nexport { EntitlementRequestResult } from './fieldtypes/EntitlementRequestResult.ts';\nexport { EntitlementStatus } from './fieldtypes/EntitlementStatus.ts';\nexport { EntitlementSubType } from './fieldtypes/EntitlementSubType.ts';\nexport { EntitlementType } from './fieldtypes/EntitlementType.ts';\nexport { EventInitiatorType } from './fieldtypes/EventInitiatorType.ts';\nexport { EventTimeUnit } from './fieldtypes/EventTimeUnit.ts';\nexport { EventType } from './fieldtypes/EventType.ts';\nexport { ExchangeForPhysical } from './fieldtypes/ExchangeForPhysical.ts';\nexport { ExDestinationIDSource } from './fieldtypes/ExDestinationIDSource.ts';\nexport { ExDestinationType } from './fieldtypes/ExDestinationType.ts';\nexport { ExecAckStatus } from './fieldtypes/ExecAckStatus.ts';\nexport { ExecInst } from './fieldtypes/ExecInst.ts';\nexport { ExecMethod } from './fieldtypes/ExecMethod.ts';\nexport { ExecPriceType } from './fieldtypes/ExecPriceType.ts';\nexport { ExecRestatementReason } from './fieldtypes/ExecRestatementReason.ts';\nexport { ExecTransType } from './fieldtypes/ExecTransType.ts';\nexport { ExecType } from './fieldtypes/ExecType.ts';\nexport { ExecTypeReason } from './fieldtypes/ExecTypeReason.ts';\nexport { ExerciseConfirmationMethod } from './fieldtypes/ExerciseConfirmationMethod.ts';\nexport { ExerciseMethod } from './fieldtypes/ExerciseMethod.ts';\nexport { ExerciseStyle } from './fieldtypes/ExerciseStyle.ts';\nexport { ExpirationCycle } from './fieldtypes/ExpirationCycle.ts';\nexport { ExpirationQtyType } from './fieldtypes/ExpirationQtyType.ts';\nexport { ExtraordinaryEventAdjustmentMethod } from './fieldtypes/ExtraordinaryEventAdjustmentMethod.ts';\nexport { Field as Fields } from './fieldtypes/Field.ts';\nexport { FinancialStatus } from './fieldtypes/FinancialStatus.ts';\nexport { FlowScheduleType } from './fieldtypes/FlowScheduleType.ts';\nexport { ForexReq } from './fieldtypes/ForexReq.ts';\nexport { FundingSource } from './fieldtypes/FundingSource.ts';\nexport { FundRenewWaiv } from './fieldtypes/FundRenewWaiv.ts';\nexport { FXBenchmark } from './fieldtypes/FXBenchmark.ts';\nexport { GapFillFlag } from './fieldtypes/GapFillFlag.ts';\nexport { GTBookingInst } from './fieldtypes/GTBookingInst.ts';\nexport { HaltReason } from './fieldtypes/HaltReason.ts';\nexport { HandlInst } from './fieldtypes/HandlInst.ts';\nexport { IDSource } from './fieldtypes/IDSource.ts';\nexport { ImpliedMarketIndicator } from './fieldtypes/ImpliedMarketIndicator.ts';\nexport { IncTaxInd } from './fieldtypes/IncTaxInd.ts';\nexport { IndividualAllocType } from './fieldtypes/IndividualAllocType.ts';\nexport { InstrAttribType } from './fieldtypes/InstrAttribType.ts';\nexport { InstrmtAssignmentMethod } from './fieldtypes/InstrmtAssignmentMethod.ts';\nexport { InstrumentScopeOperator } from './fieldtypes/InstrumentScopeOperator.ts';\nexport { InTheMoneyCondition } from './fieldtypes/InTheMoneyCondition.ts';\nexport { InViewOfCommon } from './fieldtypes/InViewOfCommon.ts';\nexport { IOINaturalFlag } from './fieldtypes/IOINaturalFlag.ts';\nexport { IOIQltyInd } from './fieldtypes/IOIQltyInd.ts';\nexport { IOIQty } from './fieldtypes/IOIQty.ts';\nexport { IOIQualifier } from './fieldtypes/IOIQualifier.ts';\nexport { IOIShares } from './fieldtypes/IOIShares.ts';\nexport { IOITransType } from './fieldtypes/IOITransType.ts';\nexport { IRSDirection } from './fieldtypes/IRSDirection.ts';\nexport { LastCapacity } from './fieldtypes/LastCapacity.ts';\nexport { LastFragment } from './fieldtypes/LastFragment.ts';\nexport { LastLiquidityInd } from './fieldtypes/LastLiquidityInd.ts';\nexport { LastRptRequested } from './fieldtypes/LastRptRequested.ts';\nexport { LegalConfirm } from './fieldtypes/LegalConfirm.ts';\nexport { LegSwapType } from './fieldtypes/LegSwapType.ts';\nexport { LienSeniority } from './fieldtypes/LienSeniority.ts';\nexport { LimitAmtType } from './fieldtypes/LimitAmtType.ts';\nexport { LiquidityIndType } from './fieldtypes/LiquidityIndType.ts';\nexport { ListExecInstType } from './fieldtypes/ListExecInstType.ts';\nexport { ListMethod } from './fieldtypes/ListMethod.ts';\nexport { ListOrderStatus } from './fieldtypes/ListOrderStatus.ts';\nexport { ListRejectReason } from './fieldtypes/ListRejectReason.ts';\nexport { ListStatusType } from './fieldtypes/ListStatusType.ts';\nexport { ListUpdateAction } from './fieldtypes/ListUpdateAction.ts';\nexport { LoanFacility } from './fieldtypes/LoanFacility.ts';\nexport { LocateReqd } from './fieldtypes/LocateReqd.ts';\nexport { LockType } from './fieldtypes/LockType.ts';\nexport { LotType } from './fieldtypes/LotType.ts';\nexport { MarginAmtType } from './fieldtypes/MarginAmtType.ts';\nexport { MarginDirection } from './fieldtypes/MarginDirection.ts';\nexport { MarginReqmtInqQualifier } from './fieldtypes/MarginReqmtInqQualifier.ts';\nexport { MarginReqmtInqResult } from './fieldtypes/MarginReqmtInqResult.ts';\nexport { MarginReqmtRptType } from './fieldtypes/MarginReqmtRptType.ts';\nexport { MarketCondition } from './fieldtypes/MarketCondition.ts';\nexport { MarketDisruptionFallbackProvision } from './fieldtypes/MarketDisruptionFallbackProvision.ts';\nexport { MarketDisruptionFallbackUnderlierType } from './fieldtypes/MarketDisruptionFallbackUnderlierType.ts';\nexport { MarketDisruptionProvision } from './fieldtypes/MarketDisruptionProvision.ts';\nexport { MarketMakerActivity } from './fieldtypes/MarketMakerActivity.ts';\nexport { MarketSegmentRelationship } from './fieldtypes/MarketSegmentRelationship.ts';\nexport { MarketSegmentStatus } from './fieldtypes/MarketSegmentStatus.ts';\nexport { MarketSegmentSubType } from './fieldtypes/MarketSegmentSubType.ts';\nexport { MarketSegmentType } from './fieldtypes/MarketSegmentType.ts';\nexport { MassActionReason } from './fieldtypes/MassActionReason.ts';\nexport { MassActionRejectReason } from './fieldtypes/MassActionRejectReason.ts';\nexport { MassActionResponse } from './fieldtypes/MassActionResponse.ts';\nexport { MassActionScope } from './fieldtypes/MassActionScope.ts';\nexport { MassActionType } from './fieldtypes/MassActionType.ts';\nexport { MassCancelRejectReason } from './fieldtypes/MassCancelRejectReason.ts';\nexport { MassCancelRequestType } from './fieldtypes/MassCancelRequestType.ts';\nexport { MassCancelResponse } from './fieldtypes/MassCancelResponse.ts';\nexport { MassOrderRequestResult } from './fieldtypes/MassOrderRequestResult.ts';\nexport { MassOrderRequestStatus } from './fieldtypes/MassOrderRequestStatus.ts';\nexport { MassStatusReqType } from './fieldtypes/MassStatusReqType.ts';\nexport { MatchExceptionElementType } from './fieldtypes/MatchExceptionElementType.ts';\nexport { MatchExceptionToleranceValueType } from './fieldtypes/MatchExceptionToleranceValueType.ts';\nexport { MatchExceptionType } from './fieldtypes/MatchExceptionType.ts';\nexport { MatchInst } from './fieldtypes/MatchInst.ts';\nexport { MatchingDataPointIndicator } from './fieldtypes/MatchingDataPointIndicator.ts';\nexport { MatchStatus } from './fieldtypes/MatchStatus.ts';\nexport { MatchType } from './fieldtypes/MatchType.ts';\nexport { MaturityMonthYearFormat } from './fieldtypes/MaturityMonthYearFormat.ts';\nexport { MaturityMonthYearIncrementUnits } from './fieldtypes/MaturityMonthYearIncrementUnits.ts';\nexport { MDBookType } from './fieldtypes/MDBookType.ts';\nexport { MDEntryType } from './fieldtypes/MDEntryType.ts';\nexport { MDImplicitDelete } from './fieldtypes/MDImplicitDelete.ts';\nexport { MDOriginType } from './fieldtypes/MDOriginType.ts';\nexport { MDReportEvent } from './fieldtypes/MDReportEvent.ts';\nexport { MDReqRejReason } from './fieldtypes/MDReqRejReason.ts';\nexport { MDSecSizeType } from './fieldtypes/MDSecSizeType.ts';\nexport { MDStatisticIntervalType } from './fieldtypes/MDStatisticIntervalType.ts';\nexport { MDStatisticRatioType } from './fieldtypes/MDStatisticRatioType.ts';\nexport { MDStatisticRequestResult } from './fieldtypes/MDStatisticRequestResult.ts';\nexport { MDStatisticScope } from './fieldtypes/MDStatisticScope.ts';\nexport { MDStatisticScopeType } from './fieldtypes/MDStatisticScopeType.ts';\nexport { MDStatisticStatus } from './fieldtypes/MDStatisticStatus.ts';\nexport { MDStatisticSubScope } from './fieldtypes/MDStatisticSubScope.ts';\nexport { MDStatisticType } from './fieldtypes/MDStatisticType.ts';\nexport { MDStatisticValueType } from './fieldtypes/MDStatisticValueType.ts';\nexport { MDUpdateAction } from './fieldtypes/MDUpdateAction.ts';\nexport { MDUpdateType } from './fieldtypes/MDUpdateType.ts';\nexport { MDValueTier } from './fieldtypes/MDValueTier.ts';\nexport { Message as Messages } from './fieldtypes/Message.ts';\nexport { MessageEncoding } from './fieldtypes/MessageEncoding.ts';\nexport { MetricsCalculationPriceSource } from './fieldtypes/MetricsCalculationPriceSource.ts';\nexport { MinQtyMethod } from './fieldtypes/MinQtyMethod.ts';\nexport { MiscFeeBasis } from './fieldtypes/MiscFeeBasis.ts';\nexport { MiscFeeQualifier } from './fieldtypes/MiscFeeQualifier.ts';\nexport { MiscFeeType } from './fieldtypes/MiscFeeType.ts';\nexport { ModelType } from './fieldtypes/ModelType.ts';\nexport { MoneyLaunderingStatus } from './fieldtypes/MoneyLaunderingStatus.ts';\nexport { MsgDirection } from './fieldtypes/MsgDirection.ts';\nexport { MsgType } from './fieldtypes/MsgType.ts';\nexport { MultiJurisdictionReportingIndicator } from './fieldtypes/MultiJurisdictionReportingIndicator.ts';\nexport { MultiLegReportingType } from './fieldtypes/MultiLegReportingType.ts';\nexport { MultiLegRptTypeReq } from './fieldtypes/MultiLegRptTypeReq.ts';\nexport { MultilegModel } from './fieldtypes/MultilegModel.ts';\nexport { MultilegPriceMethod } from './fieldtypes/MultilegPriceMethod.ts';\nexport { NBBOEntryType } from './fieldtypes/NBBOEntryType.ts';\nexport { NBBOSource } from './fieldtypes/NBBOSource.ts';\nexport { NegotiationMethod } from './fieldtypes/NegotiationMethod.ts';\nexport { NetGrossInd } from './fieldtypes/NetGrossInd.ts';\nexport { NetworkRequestType } from './fieldtypes/NetworkRequestType.ts';\nexport { NetworkStatusResponseType } from './fieldtypes/NetworkStatusResponseType.ts';\nexport { NewsCategory } from './fieldtypes/NewsCategory.ts';\nexport { NewsRefType } from './fieldtypes/NewsRefType.ts';\nexport { NonCashDividendTreatment } from './fieldtypes/NonCashDividendTreatment.ts';\nexport { NonDeliverableFixingDateType } from './fieldtypes/NonDeliverableFixingDateType.ts';\nexport { NoSides } from './fieldtypes/NoSides.ts';\nexport { NotAffectedReason } from './fieldtypes/NotAffectedReason.ts';\nexport { NotifyBrokerOfCredit } from './fieldtypes/NotifyBrokerOfCredit.ts';\nexport { ObligationType } from './fieldtypes/ObligationType.ts';\nexport { OddLot } from './fieldtypes/OddLot.ts';\nexport { OffsetInstruction } from './fieldtypes/OffsetInstruction.ts';\nexport { OffshoreIndicator } from './fieldtypes/OffshoreIndicator.ts';\nexport { OpenClose } from './fieldtypes/OpenClose.ts';\nexport { OpenCloseSettleFlag } from './fieldtypes/OpenCloseSettleFlag.ts';\nexport { OpenCloseSettlFlag } from './fieldtypes/OpenCloseSettlFlag.ts';\nexport { OptionExerciseDateType } from './fieldtypes/OptionExerciseDateType.ts';\nexport { OptPayoutType } from './fieldtypes/OptPayoutType.ts';\nexport { OrderAttributeType } from './fieldtypes/OrderAttributeType.ts';\nexport { OrderCapacity } from './fieldtypes/OrderCapacity.ts';\nexport { OrderCategory } from './fieldtypes/OrderCategory.ts';\nexport { OrderDelayUnit } from './fieldtypes/OrderDelayUnit.ts';\nexport { OrderEntryAction } from './fieldtypes/OrderEntryAction.ts';\nexport { OrderEventReason } from './fieldtypes/OrderEventReason.ts';\nexport { OrderEventType } from './fieldtypes/OrderEventType.ts';\nexport { OrderHandlingInstSource } from './fieldtypes/OrderHandlingInstSource.ts';\nexport { OrderOrigination } from './fieldtypes/OrderOrigination.ts';\nexport { OrderOwnershipIndicator } from './fieldtypes/OrderOwnershipIndicator.ts';\nexport { OrderRelationship } from './fieldtypes/OrderRelationship.ts';\nexport { OrderResponseLevel } from './fieldtypes/OrderResponseLevel.ts';\nexport { OrderRestrictions } from './fieldtypes/OrderRestrictions.ts';\nexport { OrdRejReason } from './fieldtypes/OrdRejReason.ts';\nexport { OrdStatus } from './fieldtypes/OrdStatus.ts';\nexport { OrdType } from './fieldtypes/OrdType.ts';\nexport { OrigCustOrderCapacity } from './fieldtypes/OrigCustOrderCapacity.ts';\nexport { OwnershipType } from './fieldtypes/OwnershipType.ts';\nexport { OwnerType } from './fieldtypes/OwnerType.ts';\nexport { PartyActionRejectReason } from './fieldtypes/PartyActionRejectReason.ts';\nexport { PartyActionResponse } from './fieldtypes/PartyActionResponse.ts';\nexport { PartyActionType } from './fieldtypes/PartyActionType.ts';\nexport { PartyDetailDefinitionStatus } from './fieldtypes/PartyDetailDefinitionStatus.ts';\nexport { PartyDetailRequestResult } from './fieldtypes/PartyDetailRequestResult.ts';\nexport { PartyDetailRequestStatus } from './fieldtypes/PartyDetailRequestStatus.ts';\nexport { PartyDetailRoleQualifier } from './fieldtypes/PartyDetailRoleQualifier.ts';\nexport { PartyDetailStatus } from './fieldtypes/PartyDetailStatus.ts';\nexport { PartyIDSource } from './fieldtypes/PartyIDSource.ts';\nexport { PartyRelationship } from './fieldtypes/PartyRelationship.ts';\nexport { PartyRiskLimitStatus } from './fieldtypes/PartyRiskLimitStatus.ts';\nexport { PartyRole } from './fieldtypes/PartyRole.ts';\nexport { PartySubIDType } from './fieldtypes/PartySubIDType.ts';\nexport { PaymentDateOffsetDayType } from './fieldtypes/PaymentDateOffsetDayType.ts';\nexport { PaymentForwardStartType } from './fieldtypes/PaymentForwardStartType.ts';\nexport { PaymentMethod } from './fieldtypes/PaymentMethod.ts';\nexport { PaymentPaySide } from './fieldtypes/PaymentPaySide.ts';\nexport { PaymentScheduleStepRelativeTo } from './fieldtypes/PaymentScheduleStepRelativeTo.ts';\nexport { PaymentScheduleType } from './fieldtypes/PaymentScheduleType.ts';\nexport { PaymentSettlStyle } from './fieldtypes/PaymentSettlStyle.ts';\nexport { PaymentStreamAveragingMethod } from './fieldtypes/PaymentStreamAveragingMethod.ts';\nexport { PaymentStreamCapRateBuySide } from './fieldtypes/PaymentStreamCapRateBuySide.ts';\nexport { PaymentStreamCompoundingMethod } from './fieldtypes/PaymentStreamCompoundingMethod.ts';\nexport { PaymentStreamDiscountType } from './fieldtypes/PaymentStreamDiscountType.ts';\nexport { PaymentStreamFloorRateBuySide } from './fieldtypes/PaymentStreamFloorRateBuySide.ts';\nexport { PaymentStreamFRADiscounting } from './fieldtypes/PaymentStreamFRADiscounting.ts';\nexport { PaymentStreamInflationInterpolationMethod } from './fieldtypes/PaymentStreamInflationInterpolationMethod.ts';\nexport { PaymentStreamInflationLagDayType } from './fieldtypes/PaymentStreamInflationLagDayType.ts';\nexport { PaymentStreamInflationLagUnit } from './fieldtypes/PaymentStreamInflationLagUnit.ts';\nexport { PaymentStreamInterpolationPeriod } from './fieldtypes/PaymentStreamInterpolationPeriod.ts';\nexport { PaymentStreamLinkStrikePriceType } from './fieldtypes/PaymentStreamLinkStrikePriceType.ts';\nexport { PaymentStreamNegativeRateTreatment } from './fieldtypes/PaymentStreamNegativeRateTreatment.ts';\nexport { PaymentStreamPaymentDateOffsetDayType } from './fieldtypes/PaymentStreamPaymentDateOffsetDayType.ts';\nexport { PaymentStreamPaymentDateOffsetUnit } from './fieldtypes/PaymentStreamPaymentDateOffsetUnit.ts';\nexport { PaymentStreamPaymentFrequencyUnit } from './fieldtypes/PaymentStreamPaymentFrequencyUnit.ts';\nexport { PaymentStreamPricingDayDistribution } from './fieldtypes/PaymentStreamPricingDayDistribution.ts';\nexport { PaymentStreamPricingDayOfWeek } from './fieldtypes/PaymentStreamPricingDayOfWeek.ts';\nexport { PaymentStreamRateIndexCurveUnit } from './fieldtypes/PaymentStreamRateIndexCurveUnit.ts';\nexport { PaymentStreamRateIndexSource } from './fieldtypes/PaymentStreamRateIndexSource.ts';\nexport { PaymentStreamRateSpreadPositionType } from './fieldtypes/PaymentStreamRateSpreadPositionType.ts';\nexport { PaymentStreamRateSpreadType } from './fieldtypes/PaymentStreamRateSpreadType.ts';\nexport { PaymentStreamRateTreatment } from './fieldtypes/PaymentStreamRateTreatment.ts';\nexport { PaymentStreamRealizedVarianceMethod } from './fieldtypes/PaymentStreamRealizedVarianceMethod.ts';\nexport { PaymentStreamResetWeeklyRollConvention } from './fieldtypes/PaymentStreamResetWeeklyRollConvention.ts';\nexport { PaymentStreamSettlLevel } from './fieldtypes/PaymentStreamSettlLevel.ts';\nexport { PaymentStreamType } from './fieldtypes/PaymentStreamType.ts';\nexport { PaymentStubLength } from './fieldtypes/PaymentStubLength.ts';\nexport { PaymentStubType } from './fieldtypes/PaymentStubType.ts';\nexport { PaymentSubType } from './fieldtypes/PaymentSubType.ts';\nexport { PaymentType } from './fieldtypes/PaymentType.ts';\nexport { PayReportStatus } from './fieldtypes/PayReportStatus.ts';\nexport { PayReportTransType } from './fieldtypes/PayReportTransType.ts';\nexport { PayRequestStatus } from './fieldtypes/PayRequestStatus.ts';\nexport { PayRequestTransType } from './fieldtypes/PayRequestTransType.ts';\nexport { PegLimitType } from './fieldtypes/PegLimitType.ts';\nexport { PegMoveType } from './fieldtypes/PegMoveType.ts';\nexport { PegOffsetType } from './fieldtypes/PegOffsetType.ts';\nexport { PegPriceType } from './fieldtypes/PegPriceType.ts';\nexport { PegRoundDirection } from './fieldtypes/PegRoundDirection.ts';\nexport { PegScope } from './fieldtypes/PegScope.ts';\nexport { PosAmtReason } from './fieldtypes/PosAmtReason.ts';\nexport { PosAmtType } from './fieldtypes/PosAmtType.ts';\nexport { PositionCapacity } from './fieldtypes/PositionCapacity.ts';\nexport { PositionEffect } from './fieldtypes/PositionEffect.ts';\nexport { PosMaintAction } from './fieldtypes/PosMaintAction.ts';\nexport { PosMaintResult } from './fieldtypes/PosMaintResult.ts';\nexport { PosMaintStatus } from './fieldtypes/PosMaintStatus.ts';\nexport { PosQtyStatus } from './fieldtypes/PosQtyStatus.ts';\nexport { PosReqResult } from './fieldtypes/PosReqResult.ts';\nexport { PosReqStatus } from './fieldtypes/PosReqStatus.ts';\nexport { PosReqType } from './fieldtypes/PosReqType.ts';\nexport { PossDupFlag } from './fieldtypes/PossDupFlag.ts';\nexport { PossResend } from './fieldtypes/PossResend.ts';\nexport { PosTransType } from './fieldtypes/PosTransType.ts';\nexport { PosType } from './fieldtypes/PosType.ts';\nexport { PostTradePaymentDebitOrCredit } from './fieldtypes/PostTradePaymentDebitOrCredit.ts';\nexport { PostTradePaymentStatus } from './fieldtypes/PostTradePaymentStatus.ts';\nexport { PreallocMethod } from './fieldtypes/PreallocMethod.ts';\nexport { PreviouslyReported } from './fieldtypes/PreviouslyReported.ts';\nexport { PriceLimitType } from './fieldtypes/PriceLimitType.ts';\nexport { PriceMovementType } from './fieldtypes/PriceMovementType.ts';\nexport { PriceProtectionScope } from './fieldtypes/PriceProtectionScope.ts';\nexport { PriceQualifier } from './fieldtypes/PriceQualifier.ts';\nexport { PriceQuoteMethod } from './fieldtypes/PriceQuoteMethod.ts';\nexport { PriceType } from './fieldtypes/PriceType.ts';\nexport { PriorityIndicator } from './fieldtypes/PriorityIndicator.ts';\nexport { PrivateQuote } from './fieldtypes/PrivateQuote.ts';\nexport { ProcessCode } from './fieldtypes/ProcessCode.ts';\nexport { Product } from './fieldtypes/Product.ts';\nexport { ProgRptReqs } from './fieldtypes/ProgRptReqs.ts';\nexport { ProtectionTermEventDayType } from './fieldtypes/ProtectionTermEventDayType.ts';\nexport { ProtectionTermEventQualifier } from './fieldtypes/ProtectionTermEventQualifier.ts';\nexport { ProtectionTermEventUnit } from './fieldtypes/ProtectionTermEventUnit.ts';\nexport { ProvisionBreakFeeElection } from './fieldtypes/ProvisionBreakFeeElection.ts';\nexport { ProvisionCalculationAgent } from './fieldtypes/ProvisionCalculationAgent.ts';\nexport { ProvisionCashSettlMethod } from './fieldtypes/ProvisionCashSettlMethod.ts';\nexport { ProvisionCashSettlPaymentDateType } from './fieldtypes/ProvisionCashSettlPaymentDateType.ts';\nexport { ProvisionCashSettlQuoteType } from './fieldtypes/ProvisionCashSettlQuoteType.ts';\nexport { ProvisionDateTenorUnit } from './fieldtypes/ProvisionDateTenorUnit.ts';\nexport { ProvisionOptionExerciseEarliestDateOffsetUnit } from './fieldtypes/ProvisionOptionExerciseEarliestDateOffsetUnit.ts';\nexport { ProvisionOptionExerciseFixedDateType } from './fieldtypes/ProvisionOptionExerciseFixedDateType.ts';\nexport { ProvisionOptionSinglePartyBuyerSide } from './fieldtypes/ProvisionOptionSinglePartyBuyerSide.ts';\nexport { ProvisionType } from './fieldtypes/ProvisionType.ts';\nexport { PublishTrdIndicator } from './fieldtypes/PublishTrdIndicator.ts';\nexport { PutOrCall } from './fieldtypes/PutOrCall.ts';\nexport { QtyType } from './fieldtypes/QtyType.ts';\nexport { QuoteAckStatus } from './fieldtypes/QuoteAckStatus.ts';\nexport { QuoteAttributeType } from './fieldtypes/QuoteAttributeType.ts';\nexport { QuoteCancelType } from './fieldtypes/QuoteCancelType.ts';\nexport { QuoteCondition } from './fieldtypes/QuoteCondition.ts';\nexport { QuoteEntryRejectReason } from './fieldtypes/QuoteEntryRejectReason.ts';\nexport { QuoteEntryStatus } from './fieldtypes/QuoteEntryStatus.ts';\nexport { QuoteModelType } from './fieldtypes/QuoteModelType.ts';\nexport { QuotePriceType } from './fieldtypes/QuotePriceType.ts';\nexport { QuoteRejectReason } from './fieldtypes/QuoteRejectReason.ts';\nexport { QuoteRequestRejectReason } from './fieldtypes/QuoteRequestRejectReason.ts';\nexport { QuoteRequestType } from './fieldtypes/QuoteRequestType.ts';\nexport { QuoteResponseLevel } from './fieldtypes/QuoteResponseLevel.ts';\nexport { QuoteRespType } from './fieldtypes/QuoteRespType.ts';\nexport { QuoteSideIndicator } from './fieldtypes/QuoteSideIndicator.ts';\nexport { QuoteStatus } from './fieldtypes/QuoteStatus.ts';\nexport { QuoteType } from './fieldtypes/QuoteType.ts';\nexport { RateSource } from './fieldtypes/RateSource.ts';\nexport { RateSourceType } from './fieldtypes/RateSourceType.ts';\nexport { ReferenceDataDateType } from './fieldtypes/ReferenceDataDateType.ts';\nexport { ReferenceEntityType } from './fieldtypes/ReferenceEntityType.ts';\nexport { RefOrderIDSource } from './fieldtypes/RefOrderIDSource.ts';\nexport { RefOrdIDReason } from './fieldtypes/RefOrdIDReason.ts';\nexport { RefRiskLimitCheckIDType } from './fieldtypes/RefRiskLimitCheckIDType.ts';\nexport { RegistRejReasonCode } from './fieldtypes/RegistRejReasonCode.ts';\nexport { RegistStatus } from './fieldtypes/RegistStatus.ts';\nexport { RegistTransType } from './fieldtypes/RegistTransType.ts';\nexport { RegulatoryReportType } from './fieldtypes/RegulatoryReportType.ts';\nexport { RegulatoryTradeIDEvent } from './fieldtypes/RegulatoryTradeIDEvent.ts';\nexport { RegulatoryTradeIDScope } from './fieldtypes/RegulatoryTradeIDScope.ts';\nexport { RegulatoryTradeIDSource } from './fieldtypes/RegulatoryTradeIDSource.ts';\nexport { RegulatoryTradeIDType } from './fieldtypes/RegulatoryTradeIDType.ts';\nexport { RegulatoryTransactionType } from './fieldtypes/RegulatoryTransactionType.ts';\nexport { RelatedInstrumentType } from './fieldtypes/RelatedInstrumentType.ts';\nexport { RelatedOrderIDSource } from './fieldtypes/RelatedOrderIDSource.ts';\nexport { RelatedPositionIDSource } from './fieldtypes/RelatedPositionIDSource.ts';\nexport { RelatedPriceSource } from './fieldtypes/RelatedPriceSource.ts';\nexport { RelatedTradeIDSource } from './fieldtypes/RelatedTradeIDSource.ts';\nexport { RelativeValueSide } from './fieldtypes/RelativeValueSide.ts';\nexport { RelativeValueType } from './fieldtypes/RelativeValueType.ts';\nexport { ReleaseInstruction } from './fieldtypes/ReleaseInstruction.ts';\nexport { RemunerationIndicator } from './fieldtypes/RemunerationIndicator.ts';\nexport { ReportToExch } from './fieldtypes/ReportToExch.ts';\nexport { RequestResult } from './fieldtypes/RequestResult.ts';\nexport { ResetSeqNumFlag } from './fieldtypes/ResetSeqNumFlag.ts';\nexport { RespondentType } from './fieldtypes/RespondentType.ts';\nexport { ResponseTransportType } from './fieldtypes/ResponseTransportType.ts';\nexport { RestructuringType } from './fieldtypes/RestructuringType.ts';\nexport { ReturnRateDateMode } from './fieldtypes/ReturnRateDateMode.ts';\nexport { ReturnRatePriceBasis } from './fieldtypes/ReturnRatePriceBasis.ts';\nexport { ReturnRatePriceSequence } from './fieldtypes/ReturnRatePriceSequence.ts';\nexport { ReturnRatePriceType } from './fieldtypes/ReturnRatePriceType.ts';\nexport { ReturnRateQuoteTimeType } from './fieldtypes/ReturnRateQuoteTimeType.ts';\nexport { ReturnRateValuationPriceOption } from './fieldtypes/ReturnRateValuationPriceOption.ts';\nexport { ReturnTrigger } from './fieldtypes/ReturnTrigger.ts';\nexport { RiskLimitAction } from './fieldtypes/RiskLimitAction.ts';\nexport { RiskLimitCheckModelType } from './fieldtypes/RiskLimitCheckModelType.ts';\nexport { RiskLimitCheckRequestResult } from './fieldtypes/RiskLimitCheckRequestResult.ts';\nexport { RiskLimitCheckRequestStatus } from './fieldtypes/RiskLimitCheckRequestStatus.ts';\nexport { RiskLimitCheckRequestType } from './fieldtypes/RiskLimitCheckRequestType.ts';\nexport { RiskLimitCheckStatus } from './fieldtypes/RiskLimitCheckStatus.ts';\nexport { RiskLimitCheckTransType } from './fieldtypes/RiskLimitCheckTransType.ts';\nexport { RiskLimitCheckType } from './fieldtypes/RiskLimitCheckType.ts';\nexport { RiskLimitReportRejectReason } from './fieldtypes/RiskLimitReportRejectReason.ts';\nexport { RiskLimitReportStatus } from './fieldtypes/RiskLimitReportStatus.ts';\nexport { RiskLimitRequestResult } from './fieldtypes/RiskLimitRequestResult.ts';\nexport { RiskLimitRequestType } from './fieldtypes/RiskLimitRequestType.ts';\nexport { RiskLimitType } from './fieldtypes/RiskLimitType.ts';\nexport { RoundingDirection } from './fieldtypes/RoundingDirection.ts';\nexport { RoutingArrangementIndicator } from './fieldtypes/RoutingArrangementIndicator.ts';\nexport { RoutingType } from './fieldtypes/RoutingType.ts';\nexport { Rule80A } from './fieldtypes/Rule80A.ts';\nexport { Scope } from './fieldtypes/Scope.ts';\nexport { SecurityClassificationReason } from './fieldtypes/SecurityClassificationReason.ts';\nexport { SecurityIDSource } from './fieldtypes/SecurityIDSource.ts';\nexport { SecurityListRequestType } from './fieldtypes/SecurityListRequestType.ts';\nexport { SecurityListType } from './fieldtypes/SecurityListType.ts';\nexport { SecurityListTypeSource } from './fieldtypes/SecurityListTypeSource.ts';\nexport { SecurityRejectReason } from './fieldtypes/SecurityRejectReason.ts';\nexport { SecurityRequestResult } from './fieldtypes/SecurityRequestResult.ts';\nexport { SecurityRequestType } from './fieldtypes/SecurityRequestType.ts';\nexport { SecurityResponseType } from './fieldtypes/SecurityResponseType.ts';\nexport { SecurityStatus } from './fieldtypes/SecurityStatus.ts';\nexport { SecurityTradingEvent } from './fieldtypes/SecurityTradingEvent.ts';\nexport { SecurityTradingStatus } from './fieldtypes/SecurityTradingStatus.ts';\nexport { SecurityType } from './fieldtypes/SecurityType.ts';\nexport { SecurityUpdateAction } from './fieldtypes/SecurityUpdateAction.ts';\nexport { SelfMatchPreventionInstruction } from './fieldtypes/SelfMatchPreventionInstruction.ts';\nexport { Seniority } from './fieldtypes/Seniority.ts';\nexport { SessionRejectReason } from './fieldtypes/SessionRejectReason.ts';\nexport { SessionStatus } from './fieldtypes/SessionStatus.ts';\nexport { SettlCurrFxRateCalc } from './fieldtypes/SettlCurrFxRateCalc.ts';\nexport { SettlDeliveryType } from './fieldtypes/SettlDeliveryType.ts';\nexport { SettlDisruptionProvision } from './fieldtypes/SettlDisruptionProvision.ts';\nexport { SettlInstMode } from './fieldtypes/SettlInstMode.ts';\nexport { SettlInstReqRejCode } from './fieldtypes/SettlInstReqRejCode.ts';\nexport { SettlInstSource } from './fieldtypes/SettlInstSource.ts';\nexport { SettlInstTransType } from './fieldtypes/SettlInstTransType.ts';\nexport { SettlLocation } from './fieldtypes/SettlLocation.ts';\nexport { SettlMethod } from './fieldtypes/SettlMethod.ts';\nexport { SettlmntTyp } from './fieldtypes/SettlmntTyp.ts';\nexport { SettlObligMode } from './fieldtypes/SettlObligMode.ts';\nexport { SettlObligSource } from './fieldtypes/SettlObligSource.ts';\nexport { SettlObligTransType } from './fieldtypes/SettlObligTransType.ts';\nexport { SettlPriceDeterminationMethod } from './fieldtypes/SettlPriceDeterminationMethod.ts';\nexport { SettlPriceType } from './fieldtypes/SettlPriceType.ts';\nexport { SettlSessID } from './fieldtypes/SettlSessID.ts';\nexport { SettlStatusReportStatus } from './fieldtypes/SettlStatusReportStatus.ts';\nexport { SettlStatusRequestStatus } from './fieldtypes/SettlStatusRequestStatus.ts';\nexport { SettlSubMethod } from './fieldtypes/SettlSubMethod.ts';\nexport { SettlType } from './fieldtypes/SettlType.ts';\nexport { ShortSaleExemptionReason } from './fieldtypes/ShortSaleExemptionReason.ts';\nexport { ShortSaleReason } from './fieldtypes/ShortSaleReason.ts';\nexport { ShortSaleRestriction } from './fieldtypes/ShortSaleRestriction.ts';\nexport { Side } from './fieldtypes/Side.ts';\nexport { SideClearingTradePriceType } from './fieldtypes/SideClearingTradePriceType.ts';\nexport { SideMultiLegReportingType } from './fieldtypes/SideMultiLegReportingType.ts';\nexport { SideValueInd } from './fieldtypes/SideValueInd.ts';\nexport { SingleQuoteIndicator } from './fieldtypes/SingleQuoteIndicator.ts';\nexport { SolicitedFlag } from './fieldtypes/SolicitedFlag.ts';\nexport { StandInstDbType } from './fieldtypes/StandInstDbType.ts';\nexport { StatsType } from './fieldtypes/StatsType.ts';\nexport { StatusValue } from './fieldtypes/StatusValue.ts';\nexport { StipulationType } from './fieldtypes/StipulationType.ts';\nexport { StrategyParameterType } from './fieldtypes/StrategyParameterType.ts';\nexport { StrategyType } from './fieldtypes/StrategyType.ts';\nexport { StreamAsgnAckType } from './fieldtypes/StreamAsgnAckType.ts';\nexport { StreamAsgnRejReason } from './fieldtypes/StreamAsgnRejReason.ts';\nexport { StreamAsgnReqType } from './fieldtypes/StreamAsgnReqType.ts';\nexport { StreamAsgnType } from './fieldtypes/StreamAsgnType.ts';\nexport { StreamCommodityDataSourceIDType } from './fieldtypes/StreamCommodityDataSourceIDType.ts';\nexport { StreamCommodityNearbySettlDayUnit } from './fieldtypes/StreamCommodityNearbySettlDayUnit.ts';\nexport { StreamCommoditySettlDateRollUnit } from './fieldtypes/StreamCommoditySettlDateRollUnit.ts';\nexport { StreamNotionalAdjustments } from './fieldtypes/StreamNotionalAdjustments.ts';\nexport { StreamNotionalCommodityFrequency } from './fieldtypes/StreamNotionalCommodityFrequency.ts';\nexport { StreamType } from './fieldtypes/StreamType.ts';\nexport { StrikeIndexQuote } from './fieldtypes/StrikeIndexQuote.ts';\nexport { StrikePriceBoundaryMethod } from './fieldtypes/StrikePriceBoundaryMethod.ts';\nexport { StrikePriceDeterminationMethod } from './fieldtypes/StrikePriceDeterminationMethod.ts';\nexport { SubscriptionRequestType } from './fieldtypes/SubscriptionRequestType.ts';\nexport { SwapClass } from './fieldtypes/SwapClass.ts';\nexport { SwapSubClass } from './fieldtypes/SwapSubClass.ts';\nexport { SymbolSfx } from './fieldtypes/SymbolSfx.ts';\nexport { TargetStrategy } from './fieldtypes/TargetStrategy.ts';\nexport { TaxAdvantageType } from './fieldtypes/TaxAdvantageType.ts';\nexport { TaxonomyType } from './fieldtypes/TaxonomyType.ts';\nexport { TerminationType } from './fieldtypes/TerminationType.ts';\nexport { TestActionRequestStatus } from './fieldtypes/TestActionRequestStatus.ts';\nexport { TestActionType } from './fieldtypes/TestActionType.ts';\nexport { TestGatewayDetailType } from './fieldtypes/TestGatewayDetailType.ts';\nexport { TestMessageIndicator } from './fieldtypes/TestMessageIndicator.ts';\nexport { TestSuiteActivityState } from './fieldtypes/TestSuiteActivityState.ts';\nexport { TestSuiteRequestStatus } from './fieldtypes/TestSuiteRequestStatus.ts';\nexport { TestSuiteRequestTransType } from './fieldtypes/TestSuiteRequestTransType.ts';\nexport { TestSuiteStatus } from './fieldtypes/TestSuiteStatus.ts';\nexport { TestThresholdType } from './fieldtypes/TestThresholdType.ts';\nexport { ThrottleAction } from './fieldtypes/ThrottleAction.ts';\nexport { ThrottleCountIndicator } from './fieldtypes/ThrottleCountIndicator.ts';\nexport { ThrottleInst } from './fieldtypes/ThrottleInst.ts';\nexport { ThrottleStatus } from './fieldtypes/ThrottleStatus.ts';\nexport { ThrottleType } from './fieldtypes/ThrottleType.ts';\nexport { TickDirection } from './fieldtypes/TickDirection.ts';\nexport { TickRuleType } from './fieldtypes/TickRuleType.ts';\nexport { TimeInForce } from './fieldtypes/TimeInForce.ts';\nexport { TimeUnit } from './fieldtypes/TimeUnit.ts';\nexport { TradeAggregationRejectReason } from './fieldtypes/TradeAggregationRejectReason.ts';\nexport { TradeAggregationRequestStatus } from './fieldtypes/TradeAggregationRequestStatus.ts';\nexport { TradeAggregationTransType } from './fieldtypes/TradeAggregationTransType.ts';\nexport { TradeAllocGroupInstruction } from './fieldtypes/TradeAllocGroupInstruction.ts';\nexport { TradeAllocIndicator } from './fieldtypes/TradeAllocIndicator.ts';\nexport { TradeAllocStatus } from './fieldtypes/TradeAllocStatus.ts';\nexport { TradeCollateralization } from './fieldtypes/TradeCollateralization.ts';\nexport { TradeCondition } from './fieldtypes/TradeCondition.ts';\nexport { TradeContingency } from './fieldtypes/TradeContingency.ts';\nexport { TradeContinuation } from './fieldtypes/TradeContinuation.ts';\nexport { TradedFlatSwitch } from './fieldtypes/TradedFlatSwitch.ts';\nexport { TradeHandlingInstr } from './fieldtypes/TradeHandlingInstr.ts';\nexport { TradeMatchAckStatus } from './fieldtypes/TradeMatchAckStatus.ts';\nexport { TradeMatchRejectReason } from './fieldtypes/TradeMatchRejectReason.ts';\nexport { TradePriceCondition } from './fieldtypes/TradePriceCondition.ts';\nexport { TradePriceNegotiationMethod } from './fieldtypes/TradePriceNegotiationMethod.ts';\nexport { TradePublishIndicator } from './fieldtypes/TradePublishIndicator.ts';\nexport { TradeQtyType } from './fieldtypes/TradeQtyType.ts';\nexport { TradeReportingIndicator } from './fieldtypes/TradeReportingIndicator.ts';\nexport { TradeReportRejectReason } from './fieldtypes/TradeReportRejectReason.ts';\nexport { TradeReportTransType } from './fieldtypes/TradeReportTransType.ts';\nexport { TradeReportType } from './fieldtypes/TradeReportType.ts';\nexport { TradeRequestResult } from './fieldtypes/TradeRequestResult.ts';\nexport { TradeRequestStatus } from './fieldtypes/TradeRequestStatus.ts';\nexport { TradeRequestType } from './fieldtypes/TradeRequestType.ts';\nexport { TradeType } from './fieldtypes/TradeType.ts';\nexport { TradeVolType } from './fieldtypes/TradeVolType.ts';\nexport { TradingCapacity } from './fieldtypes/TradingCapacity.ts';\nexport { TradingSessionID } from './fieldtypes/TradingSessionID.ts';\nexport { TradingSessionSubID } from './fieldtypes/TradingSessionSubID.ts';\nexport { TradSesControl } from './fieldtypes/TradSesControl.ts';\nexport { TradSesEvent } from './fieldtypes/TradSesEvent.ts';\nexport { TradSesMethod } from './fieldtypes/TradSesMethod.ts';\nexport { TradSesMode } from './fieldtypes/TradSesMode.ts';\nexport { TradSesStatus } from './fieldtypes/TradSesStatus.ts';\nexport { TradSesStatusRejReason } from './fieldtypes/TradSesStatusRejReason.ts';\nexport { TransactionAttributeType } from './fieldtypes/TransactionAttributeType.ts';\nexport { TransferRejectReason } from './fieldtypes/TransferRejectReason.ts';\nexport { TransferReportType } from './fieldtypes/TransferReportType.ts';\nexport { TransferScope } from './fieldtypes/TransferScope.ts';\nexport { TransferStatus } from './fieldtypes/TransferStatus.ts';\nexport { TransferTransType } from './fieldtypes/TransferTransType.ts';\nexport { TransferType } from './fieldtypes/TransferType.ts';\nexport { TrdAckStatus } from './fieldtypes/TrdAckStatus.ts';\nexport { TrdRegPublicationReason } from './fieldtypes/TrdRegPublicationReason.ts';\nexport { TrdRegPublicationType } from './fieldtypes/TrdRegPublicationType.ts';\nexport { TrdRegTimestampManualIndicator } from './fieldtypes/TrdRegTimestampManualIndicator.ts';\nexport { TrdRegTimestampType } from './fieldtypes/TrdRegTimestampType.ts';\nexport { TrdRptStatus } from './fieldtypes/TrdRptStatus.ts';\nexport { TrdSubType } from './fieldtypes/TrdSubType.ts';\nexport { TrdType } from './fieldtypes/TrdType.ts';\nexport { TriggerAction } from './fieldtypes/TriggerAction.ts';\nexport { Triggered } from './fieldtypes/Triggered.ts';\nexport { TriggerOrderType } from './fieldtypes/TriggerOrderType.ts';\nexport { TriggerPriceDirection } from './fieldtypes/TriggerPriceDirection.ts';\nexport { TriggerPriceType } from './fieldtypes/TriggerPriceType.ts';\nexport { TriggerPriceTypeScope } from './fieldtypes/TriggerPriceTypeScope.ts';\nexport { TriggerScope } from './fieldtypes/TriggerScope.ts';\nexport { TriggerType } from './fieldtypes/TriggerType.ts';\nexport { UnderlyingCashType } from './fieldtypes/UnderlyingCashType.ts';\nexport { UnderlyingFXRateCalc } from './fieldtypes/UnderlyingFXRateCalc.ts';\nexport { UnderlyingNotionalAdjustments } from './fieldtypes/UnderlyingNotionalAdjustments.ts';\nexport { UnderlyingObligationType } from './fieldtypes/UnderlyingObligationType.ts';\nexport { UnderlyingPriceDeterminationMethod } from './fieldtypes/UnderlyingPriceDeterminationMethod.ts';\nexport { UnderlyingSettlementType } from './fieldtypes/UnderlyingSettlementType.ts';\nexport { UnitOfMeasure } from './fieldtypes/UnitOfMeasure.ts';\nexport { UnsolicitedIndicator } from './fieldtypes/UnsolicitedIndicator.ts';\nexport { UpfrontPriceType } from './fieldtypes/UpfrontPriceType.ts';\nexport { Urgency } from './fieldtypes/Urgency.ts';\nexport { UserRequestType } from './fieldtypes/UserRequestType.ts';\nexport { UserStatus } from './fieldtypes/UserStatus.ts';\nexport { ValuationMethod } from './fieldtypes/ValuationMethod.ts';\nexport { ValueCheckAction } from './fieldtypes/ValueCheckAction.ts';\nexport { ValueCheckType } from './fieldtypes/ValueCheckType.ts';\nexport { VenueType } from './fieldtypes/VenueType.ts';\nexport { VerificationMethod } from './fieldtypes/VerificationMethod.ts';\nexport { WorkingIndicator } from './fieldtypes/WorkingIndicator.ts';\nexport { YieldType } from './fieldtypes/YieldType.ts';\nexport { LicenseManager } from './licensemanager/LicenseManager.ts';\nexport type { Format, LogOptions } from './logger/Logger.ts';\nexport { Logger } from './logger/Logger.ts';\nexport type { MessageError } from './message/Message.ts';\nexport type { FIXValue } from './util/util.ts';\nexport type { ConnectionOptions, IFIXParser };\nexport { FIXParser, Field, Message, MessageBuffer };\n", "export interface ISpecEnums {\n    name: string;\n    id: string;\n    tag: number;\n    type: string;\n    codeSet: string;\n    value: string;\n    sort?: number;\n    group?: string;\n    added?: string;\n    addedEP?: string;\n    updated?: string;\n    updatedEP?: string;\n    deprecated?: string;\n    deprecatedEP?: string;\n    description?: string;\n}\nconst batch1: ISpecEnums[] = [\n    {\n        id: '4001',\n        name: 'Buy',\n        value: 'B',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'Buy',\n        tag: 4,\n        type: 'char',\n        codeSet: 'AdvSideCodeSet',\n    },\n    {\n        id: '4002',\n        name: 'Sell',\n        value: 'S',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Sell',\n        tag: 4,\n        type: 'char',\n        codeSet: 'AdvSideCodeSet',\n    },\n    {\n        id: '4003',\n        name: 'Trade',\n        value: 'T',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Trade',\n        tag: 4,\n        type: 'char',\n        codeSet: 'AdvSideCodeSet',\n    },\n    {\n        id: '4004',\n        name: 'Cross',\n        value: 'X',\n        sort: 4,\n        added: 'FIX.2.7',\n        description: 'Cross',\n        tag: 4,\n        type: 'char',\n        codeSet: 'AdvSideCodeSet',\n    },\n    {\n        id: '5001',\n        name: 'New',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'New',\n        tag: 5,\n        type: 'String',\n        codeSet: 'AdvTransTypeCodeSet',\n    },\n    {\n        id: '5002',\n        name: 'Cancel',\n        value: 'C',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Cancel',\n        tag: 5,\n        type: 'String',\n        codeSet: 'AdvTransTypeCodeSet',\n    },\n    {\n        id: '5003',\n        name: 'Replace',\n        value: 'R',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Replace',\n        tag: 5,\n        type: 'String',\n        codeSet: 'AdvTransTypeCodeSet',\n    },\n    {\n        id: '8001',\n        name: 'FIX42',\n        value: 'FIX.4.2',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '270',\n        description: 'Session profile FIX.4.2',\n        tag: 8,\n        type: 'String',\n        codeSet: 'BeginStringCodeSet',\n    },\n    {\n        id: '8002',\n        name: 'FIX44',\n        value: 'FIX.4.4',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '270',\n        description: 'Session profile FIX4',\n        tag: 8,\n        type: 'String',\n        codeSet: 'BeginStringCodeSet',\n    },\n    {\n        id: '8003',\n        name: 'FIXT11',\n        value: 'FIXT.1.1',\n        sort: 3,\n        added: 'FIX.Latest',\n        addedEP: '270',\n        description:\n            'Session profile FIXT or LFXIT\\n\\n\\n                        The choice between FIXT and LFIXT is subject to counterparty agreement.',\n        tag: 8,\n        type: 'String',\n        codeSet: 'BeginStringCodeSet',\n    },\n    {\n        id: '13001',\n        name: 'PerUnit',\n        value: '1',\n        sort: 1,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description:\n            'Amount per unit\\n\\n\\n                        Implying shares, par, currency, physical unit etc. Use CommissionUnitOfMeasure(1238) to clarify for commodities.',\n        tag: 13,\n        type: 'char',\n        codeSet: 'CommTypeCodeSet',\n    },\n    {\n        id: '13002',\n        name: 'Percent',\n        value: '2',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Percent',\n        tag: 13,\n        type: 'char',\n        codeSet: 'CommTypeCodeSet',\n    },\n    {\n        id: '13003',\n        name: 'Absolute',\n        value: '3',\n        sort: 3,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Absolute\\n\\n\\n                        Total monetary amount.',\n        tag: 13,\n        type: 'char',\n        codeSet: 'CommTypeCodeSet',\n    },\n    {\n        id: '13004',\n        name: 'PercentageWaivedCashDiscount',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Percentage waived, cash discount basis\\n\\n\\n                        For use with CIV buy orders.',\n        tag: 13,\n        type: 'char',\n        codeSet: 'CommTypeCodeSet',\n    },\n    {\n        id: '13005',\n        name: 'PercentageWaivedEnhancedUnits',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description:\n            'Percentage waived, enhanced units basis\\n\\n\\n                        For use with CIV buy orders.',\n        tag: 13,\n        type: 'char',\n        codeSet: 'CommTypeCodeSet',\n    },\n    {\n        id: '13006',\n        name: 'PointsPerBondOrContract',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description:\n            'Points per bond or contract\\n\\n\\n                        Specify ContractMultiplier(231) in the Instrument component if the security is denominated in a size other than the market convention, e.g. 1000 par for bonds.',\n        tag: 13,\n        type: 'char',\n        codeSet: 'CommTypeCodeSet',\n    },\n    {\n        id: '13007',\n        name: 'BasisPoints',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Basis points\\n\\n\\n                        The commission is expressed in basis points in reference to the gross price of the reference asset.',\n        tag: 13,\n        type: 'char',\n        codeSet: 'CommTypeCodeSet',\n    },\n    {\n        id: '13008',\n        name: 'AmountPerContract',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description:\n            'Amount per contract\\n\\n\\n                        Specify ContractMultiplier(231) in the Instrument component if the security is denominated in a size other than the market convention.',\n        tag: 13,\n        type: 'char',\n        codeSet: 'CommTypeCodeSet',\n    },\n    {\n        id: '18001',\n        name: 'StayOnOfferSide',\n        value: '0',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'Stay on offer side',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18002',\n        name: 'NotHeld',\n        value: '1',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Not held',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18003',\n        name: 'Work',\n        value: '2',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Work',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18004',\n        name: 'GoAlong',\n        value: '3',\n        sort: 4,\n        added: 'FIX.2.7',\n        description: 'Go along',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18005',\n        name: 'OverTheDay',\n        value: '4',\n        sort: 5,\n        added: 'FIX.2.7',\n        description: 'Over the day',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18006',\n        name: 'Held',\n        value: '5',\n        sort: 6,\n        added: 'FIX.2.7',\n        description: 'Held',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18007',\n        name: 'ParticipateDoNotInitiate',\n        value: '6',\n        sort: 7,\n        added: 'FIX.2.7',\n        description: \"Participate don't initiate\",\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18008',\n        name: 'StrictScale',\n        value: '7',\n        sort: 8,\n        added: 'FIX.2.7',\n        description: 'Strict scale',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18009',\n        name: 'TryToScale',\n        value: '8',\n        sort: 9,\n        added: 'FIX.2.7',\n        description: 'Try to scale',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18010',\n        name: 'StayOnBidSide',\n        value: '9',\n        sort: 10,\n        added: 'FIX.2.7',\n        description: 'Stay on bid side',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18011',\n        name: 'NoCross',\n        value: 'A',\n        sort: 11,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'No cross\\n\\n\\n                        Cross is forbidden.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18012',\n        name: 'OKToCross',\n        value: 'B',\n        sort: 12,\n        added: 'FIX.2.7',\n        description: 'OK to cross',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18013',\n        name: 'CallFirst',\n        value: 'C',\n        sort: 13,\n        added: 'FIX.2.7',\n        description: 'Call first',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18014',\n        name: 'PercentOfVolume',\n        value: 'D',\n        sort: 14,\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'Percent of volume\\n\\nIndicates that the sender does not want the order to be all of the volume on the floor vs. a specific percentage.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18015',\n        name: 'DoNotIncrease',\n        value: 'E',\n        sort: 15,\n        added: 'FIX.2.7',\n        description: 'Do not increase - DNI',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18016',\n        name: 'DoNotReduce',\n        value: 'F',\n        sort: 16,\n        added: 'FIX.2.7',\n        description: 'Do not reduce - DNR',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18017',\n        name: 'AllOrNone',\n        value: 'G',\n        sort: 17,\n        added: 'FIX.2.7',\n        description: 'All or none - AON',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18018',\n        name: 'ReinstateOnSystemFailure',\n        value: 'H',\n        sort: 18,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description:\n            'Reinstate on system failure\\n\\n\\n                        Mutually exclusive with Q and l (lower case L).',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18019',\n        name: 'InstitutionsOnly',\n        value: 'I',\n        sort: 19,\n        added: 'FIX.3.0',\n        description: 'Institutions only',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18020',\n        name: 'ReinstateOnTradingHalt',\n        value: 'J',\n        sort: 20,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Reinstate on trading halt\\n\\n\\n                        Mutually exclusive with K and m.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18021',\n        name: 'CancelOnTradingHalt',\n        value: 'K',\n        sort: 21,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Cancel on trading halt\\n\\n\\n                        Mutually exclusive with J and m.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18022',\n        name: 'LastPeg',\n        value: 'L',\n        sort: 22,\n        added: 'FIX.3.0',\n        deprecated: 'FIX.5.0',\n        description: 'Last peg (last sale)',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18023',\n        name: 'MidPricePeg',\n        value: 'M',\n        sort: 23,\n        added: 'FIX.3.0',\n        deprecated: 'FIX.5.0',\n        description: 'Mid-price peg (midprice of inside quote)',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18024',\n        name: 'NonNegotiable',\n        value: 'N',\n        sort: 24,\n        added: 'FIX.3.0',\n        description: 'Non-negotiable',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18025',\n        name: 'OpeningPeg',\n        value: 'O',\n        sort: 25,\n        added: 'FIX.3.0',\n        deprecated: 'FIX.5.0',\n        description: 'Opening peg',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18026',\n        name: 'MarketPeg',\n        value: 'P',\n        sort: 26,\n        added: 'FIX.3.0',\n        deprecated: 'FIX.5.0',\n        description: 'Market peg',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18027',\n        name: 'CancelOnSystemFailure',\n        value: 'Q',\n        sort: 27,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description:\n            'Cancel on system failure\\n\\n\\n                        Mutually exclusive with H and l(lower case L).',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18028',\n        name: 'PrimaryPeg',\n        value: 'R',\n        sort: 28,\n        added: 'FIX.3.0',\n        deprecated: 'FIX.5.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Primary peg\\n\\n\\n                        Primary market - buy at bid, sell at offer.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18029',\n        name: 'Suspend',\n        value: 'S',\n        sort: 29,\n        added: 'FIX.3.0',\n        description: 'Suspend',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18030',\n        name: 'FixedPegToLocalBestBidOrOfferAtTimeOfOrder',\n        value: 'T',\n        sort: 30,\n        added: 'FIX.4.4',\n        addedEP: '35',\n        deprecated: 'FIX.5.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Fixed peg to local best bid or offer at time of order',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18031',\n        name: 'CustomerDisplayInstruction',\n        value: 'U',\n        sort: 31,\n        added: 'FIX.4.1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description:\n            'Customer display instruction\\n\\n\\n                        Used in US Markets for: SEC Rule 11Ac1-1/4.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18032',\n        name: 'Netting',\n        value: 'V',\n        sort: 32,\n        added: 'FIX.4.1',\n        description: 'Netting (for Forex)',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18033',\n        name: 'PegToVWAP',\n        value: 'W',\n        sort: 33,\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        description: 'Peg to VWAP',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18034',\n        name: 'TradeAlong',\n        value: 'X',\n        sort: 34,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Trade along',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18035',\n        name: 'TryToStop',\n        value: 'Y',\n        sort: 35,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Try to stop',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18036',\n        name: 'CancelIfNotBest',\n        value: 'Z',\n        sort: 36,\n        added: 'FIX.4.4',\n        description: 'Cancel if not best',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18037',\n        name: 'TrailingStopPeg',\n        value: 'a',\n        sort: 37,\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Trailing stop peg',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18038',\n        name: 'StrictLimit',\n        value: 'b',\n        sort: 38,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Strict limit\\n\\n\\n                        No price improvement.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18039',\n        name: 'IgnorePriceValidityChecks',\n        value: 'c',\n        sort: 39,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Ignore price validity checks',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18040',\n        name: 'PegToLimitPrice',\n        value: 'd',\n        sort: 40,\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Peg to limit price',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18041',\n        name: 'WorkToTargetStrategy',\n        value: 'e',\n        sort: 41,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Work to target strategy',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18042',\n        name: 'IntermarketSweep',\n        value: 'f',\n        sort: 42,\n        added: 'FIX.4.4',\n        addedEP: '6',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Intermarket sweep',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18043',\n        name: 'ExternalRoutingAllowed',\n        value: 'g',\n        sort: 43,\n        added: 'FIX.4.4',\n        addedEP: '14',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'External routing allowed',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18044',\n        name: 'ExternalRoutingNotAllowed',\n        value: 'h',\n        sort: 44,\n        added: 'FIX.4.4',\n        addedEP: '14',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'External routing not allowed',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18045',\n        name: 'ImbalanceOnly',\n        value: 'i',\n        sort: 45,\n        added: 'FIX.4.4',\n        addedEP: '22',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Imbalance only',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18046',\n        name: 'SingleExecutionRequestedForBlockTrade',\n        value: 'j',\n        sort: 46,\n        added: 'FIX.4.4',\n        addedEP: '6',\n        description: 'Single execution requested for block trade',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18047',\n        name: 'BestExecution',\n        value: 'k',\n        sort: 47,\n        added: 'FIX.4.4',\n        addedEP: '35',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Best execution',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18048',\n        name: 'SuspendOnSystemFailure',\n        value: 'l',\n        sort: 48,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Suspend on system failure\\n\\n\\n                        Mutually exclusive with H and Q.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18049',\n        name: 'SuspendOnTradingHalt',\n        value: 'm',\n        sort: 49,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Suspend on trading halt\\n\\n\\n                        Mutually exclusive with J and K.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18050',\n        name: 'ReinstateOnConnectionLoss',\n        value: 'n',\n        sort: 50,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Reinstate on connection loss\\n\\n\\n                        Mutually exclusive with o and p.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18051',\n        name: 'CancelOnConnectionLoss',\n        value: 'o',\n        sort: 51,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Cancel on connection loss\\n\\n\\n                        Mutually exclusive with n and p.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18052',\n        name: 'SuspendOnConnectionLoss',\n        value: 'p',\n        sort: 52,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Suspend on connection loss\\n\\n\\n                        Mutually exclusive with n and o.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18053',\n        name: 'Release',\n        value: 'q',\n        sort: 53,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Release\\n\\n\\n                        Mutually exclusive with S and w.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18054',\n        name: 'ExecuteAsDeltaNeutral',\n        value: 'r',\n        sort: 54,\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'Execute as delta neutral using volatility provided',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18055',\n        name: 'ExecuteAsDurationNeutral',\n        value: 's',\n        sort: 55,\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'Execute as duration neutral',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18056',\n        name: 'ExecuteAsFXNeutral',\n        value: 't',\n        sort: 56,\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'Execute as FX neutral',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18057',\n        name: 'MinGuaranteedFillEligible',\n        value: 'u',\n        sort: 57,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Minimum guaranteed fill eligible',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18058',\n        name: 'BypassNonDisplayLiquidity',\n        value: 'v',\n        sort: 58,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Bypass non-displayed liquidity',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18059',\n        name: 'Lock',\n        value: 'w',\n        sort: 59,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '134',\n        description: 'Lock\\n\\n\\n                        Mutually exclusive with q.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18060',\n        name: 'IgnoreNotionalValueChecks',\n        value: 'x',\n        sort: 60,\n        added: 'FIX.5.0SP2',\n        addedEP: '134',\n        description: 'Ignore notional value checks',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18061',\n        name: 'TrdAtRefPx',\n        value: 'y',\n        sort: 61,\n        added: 'FIX.5.0SP2',\n        addedEP: '210',\n        description:\n            'Trade at reference price\\n\\n\\n                        In the context of Reg NMS and the Tick Size Pilot Program, this is intended to indicate the order should Trade At Intermarket Sweep Order (TAISO) price.',\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '18062',\n        name: 'AllowFacilitation',\n        value: 'z',\n        sort: 62,\n        added: 'FIX.5.0SP2',\n        addedEP: '251',\n        description:\n            \"Allow facilitation\\n\\n\\n                        Express explicit consent to receive facilitation services from the counterparty. Facilitation services are when an institutional client allows a broker to assume a risk-taking principal position rather than an agency position, to obtain liquidity or achieve a guaranteed execution price on the client's behalf. Interpretation of absence of this value needs to be bilaterally agreed, if applicable. In the context of Hong Kong's SFC, this can be used to comply with SFC regulations for disclosure of client facilitation.\",\n        tag: 18,\n        type: 'MultipleCharValue',\n        codeSet: 'ExecInstCodeSet',\n    },\n    {\n        id: '21001',\n        name: 'AutomatedExecutionNoIntervention',\n        value: '1',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'Automated execution order, private, no Broker intervention',\n        tag: 21,\n        type: 'char',\n        codeSet: 'HandlInstCodeSet',\n    },\n    {\n        id: '21002',\n        name: 'AutomatedExecutionInterventionOK',\n        value: '2',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Automated execution order, public, Broker intervention OK',\n        tag: 21,\n        type: 'char',\n        codeSet: 'HandlInstCodeSet',\n    },\n    {\n        id: '21003',\n        name: 'ManualOrder',\n        value: '3',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Manual order, best execution',\n        tag: 21,\n        type: 'char',\n        codeSet: 'HandlInstCodeSet',\n    },\n    {\n        id: '22001',\n        name: 'CUSIP',\n        value: '1',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'CUSIP',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22002',\n        name: 'SEDOL',\n        value: '2',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'SEDOL',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22003',\n        name: 'QUIK',\n        value: '3',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'QUIK',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22004',\n        name: 'ISINNumber',\n        value: '4',\n        sort: 4,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '232',\n        description: 'ISIN',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22005',\n        name: 'RICCode',\n        value: '5',\n        sort: 5,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '232',\n        description: 'RIC',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22006',\n        name: 'ISOCurrencyCode',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.1',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description: 'ISO Currency Code (ISO 4217)',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22007',\n        name: 'ISOCountryCode',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.1',\n        description: 'ISO Country Code',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22008',\n        name: 'ExchangeSymbol',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '119',\n        description: 'Exchange symbol',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22009',\n        name: 'ConsolidatedTapeAssociation',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.2',\n        description: 'Consolidated Tape Association (CTA) Symbol (SIAC CTS/CQS line format)',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22010',\n        name: 'BloombergSymbol',\n        value: 'A',\n        sort: 10,\n        added: 'FIX.4.3',\n        description: 'Bloomberg Symbol',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22011',\n        name: 'Wertpapier',\n        value: 'B',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: 'Wertpapier',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22012',\n        name: 'Dutch',\n        value: 'C',\n        sort: 12,\n        added: 'FIX.4.3',\n        description: 'Dutch',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22013',\n        name: 'Valoren',\n        value: 'D',\n        sort: 13,\n        added: 'FIX.4.3',\n        description: 'Valoren',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22014',\n        name: 'Sicovam',\n        value: 'E',\n        sort: 14,\n        added: 'FIX.4.3',\n        description: 'Sicovam',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22015',\n        name: 'Belgian',\n        value: 'F',\n        sort: 15,\n        added: 'FIX.4.3',\n        description: 'Belgian',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22016',\n        name: 'Common',\n        value: 'G',\n        sort: 16,\n        added: 'FIX.4.3',\n        description: '\"Common\" (Clearstream and Euroclear)',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22017',\n        name: 'ClearingHouse',\n        value: 'H',\n        sort: 17,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '119',\n        description: 'Clearing house / Clearing organization',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22018',\n        name: 'ISDAFpMLSpecification',\n        value: 'I',\n        sort: 18,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '119',\n        description: 'ISDA/FpML product specification (XML in SecurityXML(1185))',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22019',\n        name: 'OptionPriceReportingAuthority',\n        value: 'J',\n        sort: 19,\n        added: 'FIX.4.4',\n        description: 'Option Price Reporting Authority',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22020',\n        name: 'ISDAFpMLURL',\n        value: 'K',\n        sort: 20,\n        added: 'FIX.4.4',\n        addedEP: '15',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '119',\n        description: 'ISDA/FpML product URL (URL in SecurityID(48))',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22021',\n        name: 'LetterOfCredit',\n        value: 'L',\n        sort: 21,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '119',\n        description: 'Letter of credit',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22022',\n        name: 'MarketplaceAssignedIdentifier',\n        value: 'M',\n        sort: 22,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Marketplace-assigned Identifier',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22023',\n        name: 'MarkitREDEntityCLIP',\n        value: 'N',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Markit RED entity CLIP',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22024',\n        name: 'MarkitREDPairCLIP',\n        value: 'P',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Markit RED pair CLIP',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22025',\n        name: 'CFTCCommodityCode',\n        value: 'Q',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'CFTC commodity code',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22026',\n        name: 'ISDACommodityReferencePrice',\n        value: 'R',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'ISDA Commodity Reference Price',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22027',\n        name: 'FinancialInstrumentGlobalIdentifier',\n        value: 'S',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '158',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '202',\n        description:\n            'Financial Instrument Global Identifier\\n\\n\\n                        An Object Management Group (OMG) standard. Also referred to as FIGI. Formerly known as \"Bloomberg Open Symbology BBGID\".',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22028',\n        name: 'LegalEntityIdentifier',\n        value: 'T',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Legal entity identifier',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22029',\n        name: 'Synthetic',\n        value: 'U',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Synthetic\\n\\n\\n                        Used to specify that the security identifier is synthetic for linking nested underliers when there is no market identifier for the collection.',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22030',\n        name: 'FidessaInstrumentMnemonic',\n        value: 'V',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '220',\n        description: 'Fidessa Instrument Mnemonic (FIM)',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22031',\n        name: 'IndexName',\n        value: 'W',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'Index name\\n\\n\\n                        Standard name of the index or rate index, e.g. \"LIBOR\" or \"iTraxx Australia\".',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22032',\n        name: 'UniformSymbol',\n        value: 'X',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '242',\n        description: 'Uniform Symbol (UMTF Symbol)',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '22033',\n        name: 'DigitalTokenIdentifier',\n        value: 'Y',\n        sort: 33,\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Digital Token Identifier (ISO 24165)',\n        tag: 22,\n        type: 'String',\n        codeSet: 'SecurityIDSourceCodeSet',\n    },\n    {\n        id: '25001',\n        name: 'High',\n        value: 'H',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'High',\n        tag: 25,\n        type: 'char',\n        codeSet: 'IOIQltyIndCodeSet',\n    },\n    {\n        id: '25002',\n        name: 'Low',\n        value: 'L',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Low',\n        tag: 25,\n        type: 'char',\n        codeSet: 'IOIQltyIndCodeSet',\n    },\n    {\n        id: '25003',\n        name: 'Medium',\n        value: 'M',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Medium',\n        tag: 25,\n        type: 'char',\n        codeSet: 'IOIQltyIndCodeSet',\n    },\n    {\n        id: '27001',\n        name: 'Small',\n        value: 'S',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '25',\n        description: 'Small',\n        tag: 27,\n        type: 'String',\n        codeSet: 'IOIQtyCodeSet',\n    },\n    {\n        id: '27002',\n        name: 'Medium',\n        value: 'M',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '25',\n        description: 'Medium',\n        tag: 27,\n        type: 'String',\n        codeSet: 'IOIQtyCodeSet',\n    },\n    {\n        id: '27003',\n        name: 'Large',\n        value: 'L',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '25',\n        description: 'Large',\n        tag: 27,\n        type: 'String',\n        codeSet: 'IOIQtyCodeSet',\n    },\n    {\n        id: '27004',\n        name: 'UndisclosedQuantity',\n        value: 'U',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '25',\n        description: 'Undisclosed Quantity',\n        tag: 27,\n        type: 'String',\n        codeSet: 'IOIQtyCodeSet',\n    },\n    {\n        id: '28001',\n        name: 'New',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'New',\n        tag: 28,\n        type: 'char',\n        codeSet: 'IOITransTypeCodeSet',\n    },\n    {\n        id: '28002',\n        name: 'Cancel',\n        value: 'C',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Cancel',\n        tag: 28,\n        type: 'char',\n        codeSet: 'IOITransTypeCodeSet',\n    },\n    {\n        id: '28003',\n        name: 'Replace',\n        value: 'R',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Replace',\n        tag: 28,\n        type: 'char',\n        codeSet: 'IOITransTypeCodeSet',\n    },\n    {\n        id: '29001',\n        name: 'Agent',\n        value: '1',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'Agent',\n        tag: 29,\n        type: 'char',\n        codeSet: 'LastCapacityCodeSet',\n    },\n    {\n        id: '29002',\n        name: 'CrossAsAgent',\n        value: '2',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Cross as agent',\n        tag: 29,\n        type: 'char',\n        codeSet: 'LastCapacityCodeSet',\n    },\n    {\n        id: '29003',\n        name: 'CrossAsPrincipal',\n        value: '3',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Cross as principal',\n        tag: 29,\n        type: 'char',\n        codeSet: 'LastCapacityCodeSet',\n    },\n    {\n        id: '29004',\n        name: 'Principal',\n        value: '4',\n        sort: 4,\n        added: 'FIX.2.7',\n        description: 'Principal',\n        tag: 29,\n        type: 'char',\n        codeSet: 'LastCapacityCodeSet',\n    },\n    {\n        id: '29005',\n        name: 'RisklessPrincipal',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description: 'Riskless principal',\n        tag: 29,\n        type: 'char',\n        codeSet: 'LastCapacityCodeSet',\n    },\n    {\n        id: '35001',\n        name: 'Heartbeat',\n        value: '0',\n        sort: 1,\n        added: 'FIX.2.7',\n        description:\n            'Heartbeat\\n\\n\\n                        The Heartbeat monitors the status of the communication link and identifies when the last of a string of messages was not received.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35002',\n        name: 'TestRequest',\n        value: '1',\n        sort: 2,\n        added: 'FIX.2.7',\n        description:\n            'TestRequest\\n\\n\\n                        The test request message forces a heartbeat from the opposing application. The test request message checks sequence numbers or verifies communication line status. The opposite application responds to the Test Request with a Heartbeat containing the TestReqID.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35003',\n        name: 'ResendRequest',\n        value: '2',\n        sort: 3,\n        added: 'FIX.2.7',\n        description:\n            'ResendRequest\\n\\n\\n                        The resend request is sent by the receiving application to initiate the retransmission of messages. This function is utilized if a sequence number gap is detected, if the receiving application lost a message, or as a function of the initialization process.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35004',\n        name: 'Reject',\n        value: '3',\n        sort: 4,\n        added: 'FIX.2.7',\n        description:\n            'Reject\\n\\n\\n                        The reject message should be issued when a message is received but cannot be properly processed due to a session-level rule violation. An example of when a reject may be appropriate would be the receipt of a message with invalid basic data which successfully passes de-encryption, CheckSum and BodyLength checks.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35005',\n        name: 'SequenceReset',\n        value: '4',\n        sort: 5,\n        added: 'FIX.2.7',\n        description:\n            'SequenceReset\\n\\n\\n                        The sequence reset message is used by the sending application to reset the incoming sequence number on the opposing side.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35006',\n        name: 'Logout',\n        value: '5',\n        sort: 6,\n        added: 'FIX.2.7',\n        description:\n            'Logout\\n\\n\\n                        The logout message initiates or confirms the termination of a FIX session. Disconnection without the exchange of logout messages should be interpreted as an abnormal condition.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35007',\n        name: 'IOI',\n        value: '6',\n        sort: 7,\n        added: 'FIX.2.7',\n        description:\n            'IOI\\n\\n\\n                        Indication of interest messages are used to market merchandise which the broker is buying or selling in either a proprietary or agency capacity. The indications can be time bound with a specific expiration value. Indications are distributed with the understanding that other firms may react to the message first and that the merchandise may no longer be available due to prior trade.\\n\\n\\n                        Indication messages can be transmitted in various transaction types; NEW, CANCEL, and REPLACE. All message types other than NEW modify the state of the message identified in IOIRefID.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35008',\n        name: 'Advertisement',\n        value: '7',\n        sort: 8,\n        added: 'FIX.2.7',\n        description:\n            'Advertisement\\n\\n\\n                        Advertisement messages are used to announce completed transactions. The advertisement message can be transmitted in various transaction types; NEW, CANCEL and REPLACE. All message types other than NEW modify the state of a previously transmitted advertisement identified in AdvRefID.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35009',\n        name: 'ExecutionReport',\n        value: '8',\n        sort: 9,\n        added: 'FIX.2.7',\n        description:\n            'ExecutionReport\\n\\n\\n                        The execution report message is used to:\\n\\n\\n                        1. confirm the receipt of an order\\n\\n\\n                        2. confirm changes to an existing order (i.e. accept cancel and replace requests)\\n\\n\\n                        3. relay order status information\\n\\n\\n                        4. relay fill information on working orders\\n\\n\\n                        5. relay fill information on tradeable or restricted tradeable quotes\\n\\n\\n                        6. reject orders\\n\\n\\n                        7. report post-trade fees calculations associated with a trade',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35010',\n        name: 'OrderCancelReject',\n        value: '9',\n        sort: 10,\n        added: 'FIX.2.7',\n        description:\n            'OrderCancelReject\\n\\n\\n                        The order cancel reject message is issued by the broker upon receipt of a cancel request or cancel/replace request message which cannot be honored.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35011',\n        name: 'Logon',\n        value: 'A',\n        sort: 11,\n        added: 'FIX.2.7',\n        description:\n            'Logon\\n\\n\\n                        The logon message authenticates a user establishing a connection to a remote system. The logon message must be the first message sent by the application requesting to initiate a FIX session.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35012',\n        name: 'News',\n        value: 'B',\n        sort: 12,\n        added: 'FIX.2.7',\n        description:\n            \"News\\n\\n\\n                        The news message is a general free format message between the broker and institution. The message contains flags to identify the news item's urgency and to allow sorting by subject company (symbol). The News message can be originated at either the broker or institution side, or exchanges and other marketplace venues.\",\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35013',\n        name: 'Email',\n        value: 'C',\n        sort: 13,\n        added: 'FIX.2.7',\n        description:\n            'Email\\n\\n\\n                        The email message is similar to the format and purpose of the News message, however, it is intended for private use between two parties.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35014',\n        name: 'NewOrderSingle',\n        value: 'D',\n        sort: 14,\n        added: 'FIX.2.7',\n        description:\n            'NewOrderSingle\\n\\n\\n                        The new order message type is used by institutions wishing to electronically submit securities and forex orders to a broker for execution.\\n\\n\\n                        The New Order message type may also be used by institutions or retail intermediaries wishing to electronically submit Collective Investment Vehicle (CIV) orders to a broker or fund manager for execution.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35015',\n        name: 'NewOrderList',\n        value: 'E',\n        sort: 15,\n        added: 'FIX.2.7',\n        description:\n            'NewOrderList\\n\\n\\n                        The NewOrderList Message can be used in one of two ways depending on which market conventions are being followed.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35016',\n        name: 'OrderCancelRequest',\n        value: 'F',\n        sort: 16,\n        added: 'FIX.2.7',\n        description:\n            'OrderCancelRequest\\n\\n\\n                        The order cancel request message requests the cancellation of all of the remaining quantity of an existing order. Note that the Order Cancel/Replace Request should be used to partially cancel (reduce) an order).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35017',\n        name: 'OrderCancelReplaceRequest',\n        value: 'G',\n        sort: 17,\n        added: 'FIX.2.7',\n        description:\n            'OrderCancelReplaceRequest\\n\\n\\n                        The order cancel/replace request is used to change the parameters of an existing order.\\n\\n\\n                        Do not use this message to cancel the remaining quantity of an outstanding order, use the Order Cancel Request message for this purpose.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35018',\n        name: 'OrderStatusRequest',\n        value: 'H',\n        sort: 18,\n        added: 'FIX.2.7',\n        description:\n            'OrderStatusRequest\\n\\n\\n                        The order status request message is used by the institution to generate an order status message back from the broker.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35019',\n        name: 'AllocationInstruction',\n        value: 'J',\n        sort: 19,\n        added: 'FIX.2.7',\n        description:\n            'AllocationInstruction\\n\\nThe AllocationInstruction(35=J) message provides the ability to specify how an order or set of orders should be subdivided amongst one or more accounts.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35020',\n        name: 'ListCancelRequest',\n        value: 'K',\n        sort: 20,\n        added: 'FIX.2.7',\n        description:\n            'ListCancelRequest\\n\\n\\n                        The List Cancel Request message type is used by institutions wishing to cancel previously submitted lists either before or during execution.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35021',\n        name: 'ListExecute',\n        value: 'L',\n        sort: 21,\n        added: 'FIX.2.7',\n        description:\n            'ListExecute\\n\\n\\n                        The List Execute message type is used by institutions to instruct the broker to begin execution of a previously submitted list. This message may or may not be used, as it may be mirroring a phone conversation.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35022',\n        name: 'ListStatusRequest',\n        value: 'M',\n        sort: 22,\n        added: 'FIX.2.7',\n        description:\n            'ListStatusRequest\\n\\n\\n                        The list status request message type is used by institutions to instruct the broker to generate status messages for a list.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35023',\n        name: 'ListStatus',\n        value: 'N',\n        sort: 23,\n        added: 'FIX.2.7',\n        description:\n            \"ListStatus\\n\\n\\n                        The list status message is issued as the response to a List Status Request message sent in an unsolicited fashion by the sell-side. It indicates the current state of the orders within the list as they exist at the broker's site. This message may also be used to respond to the List Cancel Request.\",\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35024',\n        name: 'AllocationInstructionAck',\n        value: 'P',\n        sort: 24,\n        added: 'FIX.2.7',\n        description:\n            'AllocationInstructionAck\\n\\n\\n                        In versions of FIX prior to version 4.4, this message was known as the Allocation ACK message.\\n\\n\\n                        The Allocation Instruction Ack message is used to acknowledge the receipt of and provide status for an Allocation Instruction message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35025',\n        name: 'DontKnowTrade',\n        value: 'Q',\n        sort: 25,\n        added: 'FIX.2.7',\n        description:\n            'DontKnowTrade\\n\\n\\n                        The Don\u2019t Know Trade (DK) message notifies a trading partner that an electronically received execution has been rejected. This message can be thought of as an execution reject message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35026',\n        name: 'QuoteRequest',\n        value: 'R',\n        sort: 26,\n        added: 'FIX.2.7',\n        description:\n            'QuoteRequest\\n\\n\\n                        In some markets it is the practice to request quotes from brokers prior to placement of an order. The quote request message is used for this purpose. This message is commonly referred to as an Request For Quote (RFQ)',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35027',\n        name: 'Quote',\n        value: 'S',\n        sort: 27,\n        added: 'FIX.2.7',\n        description:\n            'Quote\\n\\n\\n                        The Quote message is used as the response to a Quote Request or a Quote Response message in both indicative, tradeable, and restricted tradeable quoting markets.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35028',\n        name: 'SettlementInstructions',\n        value: 'T',\n        sort: 28,\n        added: 'FIX.2.7',\n        description:\n            'SettlementInstructions\\n\\n\\n                        The Settlement Instructions message provides the broker\u2019s, the institution\u2019s, or the intermediary\u2019s instructions for trade settlement. This message has been designed so that it can be sent from the broker to the institution, from the institution to the broker, or from either to an independent \"standing instructions\" database or matching system or, for CIV, from an intermediary to a fund manager.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35029',\n        name: 'MarketDataRequest',\n        value: 'V',\n        sort: 29,\n        added: 'FIX.2.7',\n        description:\n            'MarketDataRequest\\n\\n\\n                        Some systems allow the transmission of real-time quote, order, trade, trade volume, open interest, and/or other price information on a subscription basis. A MarketDataRequest(35=V) is a general request for market data on specific securities or forex quotes. The values in the fields provided within the request will serve as further filter criteria for the result set.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35030',\n        name: 'MarketDataSnapshotFullRefresh',\n        value: 'W',\n        sort: 30,\n        added: 'FIX.2.7',\n        description:\n            'MarketDataSnapshotFullRefresh\\n\\n\\n                        The Market Data messages are used as the response to a Market Data Request message. In all cases, one Market Data message refers only to one Market Data Request. It can be used to transmit a 2-sided book of orders or list of quotes, a list of trades, index values, opening, closing, settlement, high, low, or VWAP prices, the trade volume or open interest for a security, or any combination of these.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35031',\n        name: 'MarketDataIncrementalRefresh',\n        value: 'X',\n        sort: 31,\n        added: 'FIX.2.7',\n        description:\n            'MarketDataIncrementalRefresh\\n\\n\\n                        The Market Data message for incremental updates may contain any combination of new, changed, or deleted Market Data Entries, for any combination of instruments, with any combination of trades, imbalances, quotes, index values, open, close, settlement, high, low, and VWAP prices, trade volume and open interest so long as the maximum FIX message size is not exceeded. All of these types of Market Data Entries can be changed and deleted.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35032',\n        name: 'MarketDataRequestReject',\n        value: 'Y',\n        sort: 32,\n        added: 'FIX.2.7',\n        description:\n            'MarketDataRequestReject\\n\\n\\n                        The Market Data Request Reject is used when the broker cannot honor the Market Data Request, due to business or technical reasons. Brokers may choose to limit various parameters, such as the size of requests, whether just the top of book or the entire book may be displayed, and whether Full or Incremental updates must be used.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35033',\n        name: 'QuoteCancel',\n        value: 'Z',\n        sort: 33,\n        added: 'FIX.2.7',\n        description:\n            'QuoteCancel\\n\\n\\n                        The Quote Cancel message is used by an originator of quotes to cancel quotes.\\n\\n\\n                        The Quote Cancel message supports cancellation of:\\n\\n\\n                        \u2022 All quotes\\n\\n\\n                        \u2022 Quotes for a specific symbol or security ID\\n\\n\\n                        \u2022 All quotes for a security type\\n\\n\\n                        \u2022 All quotes for an underlying',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35034',\n        name: 'QuoteStatusRequest',\n        value: 'a',\n        sort: 34,\n        added: 'FIX.2.7',\n        description:\n            'QuoteStatusRequest\\n\\n\\n                        The quote status request message is used for the following purposes in markets that employ tradeable or restricted tradeable quotes:\\n\\n\\n                        \u2022 For the issuer of a quote in a market to query the status of that quote (using the QuoteID to specify the target quote).\\n\\n\\n                        \u2022 To subscribe and unsubscribe for Quote Status Report messages for one or more securities.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35035',\n        name: 'MassQuoteAck',\n        value: 'b',\n        sort: 35,\n        added: 'FIX.2.7',\n        description:\n            'MassQuoteAck\\n\\n\\n                        Mass Quote Acknowledgement is used as the application level response to a Mass Quote message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35036',\n        name: 'SecurityDefinitionRequest',\n        value: 'c',\n        sort: 36,\n        added: 'FIX.2.7',\n        description:\n            'SecurityDefinitionRequest\\n\\n\\n                        The SecurityDefinitionRequest(35=c) message is used for the following:\\n\\n\\n                        1. Request a specific security to be traded with the second party. The requested security can be defined as a multileg security made up of one or more instrument legs.\\n\\n\\n                        2. Request a set of individual securities for a single market segment.\\n\\n\\n                        3. Request all securities, independent of market segment.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35037',\n        name: 'SecurityDefinition',\n        value: 'd',\n        sort: 37,\n        added: 'FIX.2.7',\n        description:\n            \"SecurityDefinition\\n\\n\\n                        The SecurityDefinition(35=d) message is used for the following:\\n\\n\\n                        1. Accept the security defined in a SecurityDefinition(35=d) message.\\n\\n\\n                        2. Accept the security defined in a SecurityDefinition(35=d) message with changes to the definition and/or identity of the security.\\n\\n\\n                        3. Reject the security requested in a SecurityDefinition(35=d) message.\\n\\n\\n                        4. Respond to a request for securities within a specified market segment.\\n\\n\\n                        5. Convey comprehensive security definition for all market segments that the security participates in.\\n\\n\\n                        6. Convey the security's trading rules that differ from default rules for the market segment.\",\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35038',\n        name: 'SecurityStatusRequest',\n        value: 'e',\n        sort: 38,\n        added: 'FIX.2.7',\n        description:\n            'SecurityStatusRequest\\n\\n\\n                        The Security Status Request message provides for the ability to request the status of a security. One or more Security Status messages are returned as a result of a Security Status Request message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35039',\n        name: 'SecurityStatus',\n        value: 'f',\n        sort: 39,\n        added: 'FIX.2.7',\n        description:\n            'SecurityStatus\\n\\n\\n                        The Security Status message provides for the ability to report changes in status to a security. The Security Status message contains fields to indicate trading status, corporate actions, financial status of the company. The Security Status message is used by one trading entity (for instance an exchange) to report changes in the state of a security.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35040',\n        name: 'TradingSessionStatusRequest',\n        value: 'g',\n        sort: 40,\n        added: 'FIX.2.7',\n        description:\n            'TradingSessionStatusRequest\\n\\n\\n                        The Trading Session Status Request is used to request information on the status of a market. With the move to multiple sessions occurring for a given trading party (morning and evening sessions for instance) there is a need to be able to provide information on what product is trading on what market.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35041',\n        name: 'TradingSessionStatus',\n        value: 'h',\n        sort: 41,\n        added: 'FIX.2.7',\n        description:\n            'TradingSessionStatus\\n\\n\\n                        The Trading Session Status provides information on the status of a market. For markets multiple trading sessions on multiple-markets occurring (morning and evening sessions for instance), this message is able to provide information on what products are trading on what market during what trading session.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35042',\n        name: 'MassQuote',\n        value: 'i',\n        sort: 42,\n        added: 'FIX.2.7',\n        description:\n            'MassQuote\\n\\n\\n                        The Mass Quote message can contain quotes for multiple securities to support applications that allow for the mass quoting of an option series. Two levels of repeating groups have been provided to minimize the amount of data required to submit a set of quotes for a class of options (e.g. all option series for IBM).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35043',\n        name: 'BusinessMessageReject',\n        value: 'j',\n        sort: 43,\n        added: 'FIX.2.7',\n        description:\n            'BusinessMessageReject\\n\\n\\n                        The Business Message Reject message can reject an application-level message which fulfills session-level rules and cannot be rejected via any other means. Note if the message fails a session-level rule (e.g. body length is incorrect), a session-level Reject message should be issued.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35044',\n        name: 'BidRequest',\n        value: 'k',\n        sort: 44,\n        added: 'FIX.2.7',\n        description:\n            'BidRequest\\n\\n\\n                        The BidRequest Message can be used in one of two ways depending on which market conventions are being followed.\\n\\n\\n                        In the \"Non disclosed\" convention (e.g. US/European model) the BidRequest message can be used to request a bid based on the sector, country, index and liquidity information contained within the message itself. In the \"Non disclosed\" convention the entry repeating group is used to define liquidity of the program. See \" Program/Basket/List Trading\" for an example.\\n\\n\\n                        In the \"Disclosed\" convention (e.g. Japanese model) the BidRequest message can be used to request bids based on the ListOrderDetail messages sent in advance of BidRequest message. In the \"Disclosed\" convention the list repeating group is used to define which ListOrderDetail messages a bid is being sort for and the directions of the required bids.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35045',\n        name: 'BidResponse',\n        value: 'l',\n        sort: 45,\n        added: 'FIX.2.7',\n        description:\n            'BidResponse\\n\\n\\n                        The Bid Response message can be used in one of two ways depending on which market conventions are being followed.\\n\\n\\n                        In the \"Non disclosed\" convention the Bid Response message can be used to supply a bid based on the sector, country, index and liquidity information contained within the corresponding bid request message. See \"Program/Basket/List Trading\" for an example.\\n\\n\\n                        In the \"Disclosed\" convention the Bid Response message can be used to supply bids based on the List Order Detail messages sent in advance of the corresponding Bid Request message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35046',\n        name: 'ListStrikePrice',\n        value: 'm',\n        sort: 46,\n        added: 'FIX.2.7',\n        description:\n            'ListStrikePrice\\n\\n\\n                        The strike price message is used to exchange strike price information for principal trades. It can also be used to exchange reference prices for agency trades.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35047',\n        name: 'XMLnonFIX',\n        value: 'n',\n        sort: 47,\n        added: 'FIX.2.7',\n        description: 'XMLnonFIX',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35048',\n        name: 'RegistrationInstructions',\n        value: 'o',\n        sort: 48,\n        added: 'FIX.2.7',\n        description:\n            'RegistrationInstructions\\n\\n\\n                        The Registration Instructions message type may be used by institutions or retail intermediaries wishing to electronically submit registration information to a broker or fund manager (for CIV) for an order or for an allocation.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35049',\n        name: 'RegistrationInstructionsResponse',\n        value: 'p',\n        sort: 49,\n        added: 'FIX.2.7',\n        description:\n            'RegistrationInstructionsResponse\\n\\n\\n                        The Registration Instructions Response message type may be used by broker or fund manager (for CIV) in response to a Registration Instructions message submitted by an institution or retail intermediary for an order or for an allocation.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35050',\n        name: 'OrderMassCancelRequest',\n        value: 'q',\n        sort: 50,\n        added: 'FIX.2.7',\n        description:\n            'OrderMassCancelRequest\\n\\n\\n                        The order mass cancel request message requests the cancellation of all of the remaining quantity of a group of orders matching criteria specified within the request. NOTE: This message can only be used to cancel order messages (reduce the full quantity).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35051',\n        name: 'OrderMassCancelReport',\n        value: 'r',\n        sort: 51,\n        added: 'FIX.2.7',\n        description:\n            'OrderMassCancelReport\\n\\n\\n                        The Order Mass Cancel Report is used to acknowledge an Order Mass Cancel Request. Note that each affected order that is canceled is acknowledged with a separate Execution Report or Order Cancel Reject message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35052',\n        name: 'NewOrderCross',\n        value: 's',\n        sort: 52,\n        added: 'FIX.2.7',\n        description:\n            'NewOrderCross\\n\\n\\n                        Used to submit a cross order into a market. The cross order contains two order sides (a buy and a sell). The cross order is identified by its CrossID.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35053',\n        name: 'CrossOrderCancelReplaceRequest',\n        value: 't',\n        sort: 53,\n        added: 'FIX.2.7',\n        description:\n            'CrossOrderCancelReplaceRequest\\n\\n\\n                        Used to modify a cross order previously submitted using the New Order - Cross message. See Order Cancel Replace Request for details concerning message usage.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35054',\n        name: 'CrossOrderCancelRequest',\n        value: 'u',\n        sort: 54,\n        added: 'FIX.2.7',\n        description:\n            'CrossOrderCancelRequest\\n\\n\\n                        Used to fully cancel the remaining open quantity of a cross order.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35055',\n        name: 'SecurityTypeRequest',\n        value: 'v',\n        sort: 55,\n        added: 'FIX.2.7',\n        description:\n            'SecurityTypeRequest\\n\\n\\n                        The Security Type Request message is used to return a list of security types available from a counterparty or market.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35056',\n        name: 'SecurityTypes',\n        value: 'w',\n        sort: 56,\n        added: 'FIX.2.7',\n        description:\n            'SecurityTypes\\n\\n\\n                        The Security Type Request message is used to return a list of security types available from a counterparty or market.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35057',\n        name: 'SecurityListRequest',\n        value: 'x',\n        sort: 57,\n        added: 'FIX.2.7',\n        description:\n            'SecurityListRequest\\n\\n\\n                        The Security List Request message is used to return a list of securities from the counterparty that match criteria provided on the request',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35058',\n        name: 'SecurityList',\n        value: 'y',\n        sort: 58,\n        added: 'FIX.2.7',\n        description:\n            'SecurityList\\n\\n\\n                        The Security List message is used to return a list of securities that matches the criteria specified in a Security List Request.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35059',\n        name: 'DerivativeSecurityListRequest',\n        value: 'z',\n        sort: 59,\n        added: 'FIX.2.7',\n        description:\n            'DerivativeSecurityListRequest\\n\\n\\n                        The Derivative Security List Request message is used to return a list of securities from the counterparty that match criteria provided on the request',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35060',\n        name: 'DerivativeSecurityList',\n        value: 'AA',\n        sort: 60,\n        added: 'FIX.2.7',\n        description:\n            'DerivativeSecurityList\\n\\n\\n                        The Derivative Security List message is used to return a list of securities that matches the criteria specified in a Derivative Security List Request.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35061',\n        name: 'NewOrderMultileg',\n        value: 'AB',\n        sort: 61,\n        added: 'FIX.2.7',\n        description:\n            'NewOrderMultileg\\n\\n\\n                        The New Order - Multileg is provided to submit orders for securities that are made up of multiple securities, known as legs.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35062',\n        name: 'MultilegOrderCancelReplace',\n        value: 'AC',\n        sort: 62,\n        added: 'FIX.2.7',\n        description:\n            'MultilegOrderCancelReplace\\n\\n\\n                        Used to modify a multileg order previously submitted using the New Order - Multileg message. See Order Cancel Replace Request for details concerning message usage.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35063',\n        name: 'TradeCaptureReportRequest',\n        value: 'AD',\n        sort: 63,\n        added: 'FIX.2.7',\n        description:\n            'TradeCaptureReportRequest\\n\\n\\n                        The Trade Capture Report Request can be used to:\\n\\n\\n                        \u2022 Request one or more trade capture reports based upon selection criteria provided on the trade capture report request\\n\\n\\n                        \u2022 Subscribe for trade capture reports based upon selection criteria provided on the trade capture report request.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35064',\n        name: 'TradeCaptureReport',\n        value: 'AE',\n        sort: 64,\n        added: 'FIX.2.7',\n        description:\n            'TradeCaptureReport\\n\\n\\n                        The Trade Capture Report message can be:\\n\\n\\n                        - Used to report trades between counterparties.\\n\\n\\n                        - Used to report trades to a trade matching system.\\n\\n\\n                        - Sent unsolicited between counterparties.\\n\\n\\n                        - Sent as a reply to a Trade Capture Report Request.\\n\\n\\n                        - Used to report unmatched and matched trades.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35065',\n        name: 'OrderMassStatusRequest',\n        value: 'AF',\n        sort: 65,\n        added: 'FIX.2.7',\n        description:\n            'OrderMassStatusRequest\\n\\n\\n                        The order mass status request message requests the status for orders matching criteria specified within the request.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35066',\n        name: 'QuoteRequestReject',\n        value: 'AG',\n        sort: 66,\n        added: 'FIX.2.7',\n        description:\n            'QuoteRequestReject\\n\\n\\n                        The Quote Request Reject message is used to reject Quote Request messages for all quoting models.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35067',\n        name: 'RFQRequest',\n        value: 'AH',\n        sort: 67,\n        added: 'FIX.2.7',\n        description:\n            'RFQRequest\\n\\n\\n                        In tradeable and restricted tradeable quoting markets \u2013 Quote Requests are issued by counterparties interested in ascertaining the market for an instrument. Quote Requests are then distributed by the market to liquidity providers who make markets in the instrument. The RFQ Request is used by liquidity providers to indicate to the market for which instruments they are interested in receiving Quote Requests. It can be used to register interest in receiving quote requests for a single instrument or for multiple instruments',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35068',\n        name: 'QuoteStatusReport',\n        value: 'AI',\n        sort: 68,\n        added: 'FIX.2.7',\n        description:\n            'QuoteStatusReport\\n\\n\\n                        The quote status report message is used:\\n\\n\\n                        \u2022 as the response to a Quote Status Request message\\n\\n\\n                        \u2022 as a response to a Quote Cancel message\\n\\n\\n                        \u2022 as a response to a Quote Response message in a negotiation dialog (see Volume 7 \u2013 PRODUCT: FIXED INCOME and USER GROUP: EXCHANGES AND MARKETS)',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35069',\n        name: 'QuoteResponse',\n        value: 'AJ',\n        sort: 69,\n        added: 'FIX.2.7',\n        description:\n            'QuoteResponse\\n\\n\\n                        The QuoteResponse(35=AJ) message is used for the following purposes:\\n\\n\\n                        1. Respond to an IOI(35=6) message\\n\\n\\n                        2. Respond to a Quote(35=S) message\\n\\n\\n                        3. Counter a Quote\\n\\n\\n                        4. End a negotiation dialog\\n\\n\\n                        5. Follow-up or end a QuoteRequest(35=R) dialog that did not receive a response.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35070',\n        name: 'Confirmation',\n        value: 'AK',\n        sort: 70,\n        added: 'FIX.2.7',\n        description:\n            'Confirmation\\n\\n\\n                        The Confirmation messages are used to provide individual trade level confirmations from the sell side to the buy side. In versions of FIX prior to version 4.4, this role was performed by the allocation message. Unlike the allocation message, the confirmation message operates at an allocation account (trade) level rather than block level, allowing for the affirmation or rejection of individual confirmations.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35071',\n        name: 'PositionMaintenanceRequest',\n        value: 'AL',\n        sort: 71,\n        added: 'FIX.2.7',\n        description:\n            'PositionMaintenanceRequest\\n\\n\\n                        The Position Maintenance Request message allows the position owner to submit requests to the holder of a position which will result in a specific action being taken which will affect the position. Generally, the holder of the position is a central counter party or clearing organization but can also be a party providing investment services.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35072',\n        name: 'PositionMaintenanceReport',\n        value: 'AM',\n        sort: 72,\n        added: 'FIX.2.7',\n        description:\n            'PositionMaintenanceReport\\n\\n\\n                        The Position Maintenance Report message is sent by the holder of a position in response to a Position Maintenance Request and is used to confirm that a request has been successfully processed or rejected.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35073',\n        name: 'RequestForPositions',\n        value: 'AN',\n        sort: 73,\n        added: 'FIX.2.7',\n        description:\n            'RequestForPositions\\n\\n\\n                        The Request For Positions message is used by the owner of a position to request a Position Report from the holder of the position, usually the central counter party or clearing organization. The request can be made at several levels of granularity.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35074',\n        name: 'RequestForPositionsAck',\n        value: 'AO',\n        sort: 74,\n        added: 'FIX.2.7',\n        description:\n            'RequestForPositionsAck\\n\\n\\n                        The Request for Positions Ack message is returned by the holder of the position in response to a Request for Positions message. The purpose of the message is to acknowledge that a request has been received and is being processed.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35075',\n        name: 'PositionReport',\n        value: 'AP',\n        sort: 75,\n        added: 'FIX.2.7',\n        description:\n            'PositionReport\\n\\n\\n                        The Position Report message is returned by the holder of a position in response to a Request for Position message. The purpose of the message is to report all aspects of a position and may be provided on a standing basis to report end of day positions to an owner.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35076',\n        name: 'TradeCaptureReportRequestAck',\n        value: 'AQ',\n        sort: 76,\n        added: 'FIX.2.7',\n        description:\n            'TradeCaptureReportRequestAck\\n\\n\\n                        The Trade Capture Request Ack message is used to:\\n\\n\\n                        - Provide an acknowledgement to a Trade Capture Report Request in the case where the Trade Capture Report Request is used to specify a subscription or delivery of reports via an out-of-band ResponseTransmissionMethod.\\n\\n\\n                        - Provide an acknowledgement to a Trade Capture Report Request in the case when the return of the Trade Capture Reports matching that request will be delayed or delivered asynchronously. This is useful in distributed trading system environments.\\n\\n\\n                        - Indicate that no trades were found that matched the selection criteria specified on the Trade Capture Report Request or the Trade Capture Request was invalid for some business reason, such as request is not authorized, invalid or unknown instrument, party, trading session, etc.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35077',\n        name: 'TradeCaptureReportAck',\n        value: 'AR',\n        sort: 77,\n        added: 'FIX.2.7',\n        description:\n            'TradeCaptureReportAck\\n\\n\\n                        The Trade Capture Report Ack message can be:\\n\\n\\n                        - Used to acknowledge trade capture reports received from a counterparty.\\n\\n\\n                        - Used to reject a trade capture report received from a counterparty.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35078',\n        name: 'AllocationReport',\n        value: 'AS',\n        sort: 78,\n        added: 'FIX.2.7',\n        description:\n            'AllocationReport\\n\\nSent from sell-side to buy-side, sell-side to 3rd-party or 3rd-party to buy-side, the AllocationReport(35=AS) message (Claim) provides account breakdown of an order or set of orders plus any additional follow-up front-office information developed post-trade during the trade allocation, matching and calculation phase.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35079',\n        name: 'AllocationReportAck',\n        value: 'AT',\n        sort: 79,\n        added: 'FIX.2.7',\n        description:\n            'AllocationReportAck\\n\\n\\n                        The Allocation Report Ack message is used to acknowledge the receipt of and provide status for an Allocation Report message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35080',\n        name: 'ConfirmationAck',\n        value: 'AU',\n        sort: 80,\n        added: 'FIX.2.7',\n        description:\n            'ConfirmationAck\\n\\n\\n                        The Confirmation Ack (aka Affirmation) message is used to respond to a Confirmation message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35081',\n        name: 'SettlementInstructionRequest',\n        value: 'AV',\n        sort: 81,\n        added: 'FIX.2.7',\n        description:\n            'SettlementInstructionRequest\\n\\n\\n                        The Settlement Instruction Request message is used to request standing settlement instructions from another party.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35082',\n        name: 'AssignmentReport',\n        value: 'AW',\n        sort: 82,\n        added: 'FIX.2.7',\n        description:\n            'AssignmentReport\\n\\n\\n                        Assignment Reports are sent from a clearing house to counterparties, such as a clearing firm as a result of the assignment process.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35083',\n        name: 'CollateralRequest',\n        value: 'AX',\n        sort: 83,\n        added: 'FIX.2.7',\n        description:\n            'CollateralRequest\\n\\n\\n                        An initiator that requires collateral from a respondent sends a Collateral Request. The initiator can be either counterparty to a trade in a two party model or an intermediary such as an ATS or clearinghouse in a three party model. A Collateral Assignment is expected as a response to a request for collateral.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35084',\n        name: 'CollateralAssignment',\n        value: 'AY',\n        sort: 84,\n        added: 'FIX.2.7',\n        description:\n            'CollateralAssignment\\n\\n\\n                        Used to assign collateral to cover a trading position. This message can be sent unsolicited or in reply to a Collateral Request message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35085',\n        name: 'CollateralResponse',\n        value: 'AZ',\n        sort: 85,\n        added: 'FIX.2.7',\n        description:\n            'CollateralResponse\\n\\n\\n                        Used to respond to a Collateral Assignment message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35086',\n        name: 'CollateralReport',\n        value: 'BA',\n        sort: 86,\n        added: 'FIX.2.7',\n        description:\n            'CollateralReport\\n\\n\\n                        Used to report collateral status when responding to a Collateral Inquiry message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35087',\n        name: 'CollateralInquiry',\n        value: 'BB',\n        sort: 87,\n        added: 'FIX.2.7',\n        description: 'CollateralInquiry\\n\\n\\n                        Used to inquire for collateral status.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35088',\n        name: 'NetworkCounterpartySystemStatusRequest',\n        value: 'BC',\n        sort: 88,\n        added: 'FIX.2.7',\n        description:\n            'NetworkCounterpartySystemStatusRequest\\n\\n\\n                        This message is send either immediately after logging on to inform a network (counterparty system) of the type of updates required or to at any other time in the FIX conversation to change the nature of the types of status updates required. It can also be used with a NetworkRequestType of Snapshot to request a one-off report of the status of a network (or counterparty) system. Finally this message can also be used to cancel a request to receive updates into the status of the counterparties on a network by sending a NetworkRequestStatusMessage with a NetworkRequestType of StopSubscribing.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35089',\n        name: 'NetworkCounterpartySystemStatusResponse',\n        value: 'BD',\n        sort: 89,\n        added: 'FIX.2.7',\n        description:\n            'NetworkCounterpartySystemStatusResponse\\n\\n\\n                        This message is sent in response to a Network (Counterparty System) Status Request Message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35090',\n        name: 'UserRequest',\n        value: 'BE',\n        sort: 90,\n        added: 'FIX.2.7',\n        description:\n            \"UserRequest\\n\\n\\n                        This message is used to initiate a user action, logon, logout or password change. It can also be used to request a report on a user's status.\",\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35091',\n        name: 'UserResponse',\n        value: 'BF',\n        sort: 91,\n        added: 'FIX.2.7',\n        description:\n            'UserResponse\\n\\n\\n                        This message is used to respond to a user request message, it reports the status of the user after the completion of any action requested in the user request message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35092',\n        name: 'CollateralInquiryAck',\n        value: 'BG',\n        sort: 92,\n        added: 'FIX.2.7',\n        description:\n            'CollateralInquiryAck\\n\\n\\n                        Used to respond to a Collateral Inquiry in the following situations:\\n\\n\\n                        \u2022 When the CollateralInquiry will result in an out of band response (such as a file transfer).\\n\\n\\n                        \u2022 When the inquiry is otherwise valid but no collateral is found to match the criteria specified on the Collateral Inquiry message.\\n\\n\\n                        \u2022 When the Collateral Inquiry is invalid based upon the business rules of the counterparty.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35093',\n        name: 'ConfirmationRequest',\n        value: 'BH',\n        sort: 93,\n        added: 'FIX.2.7',\n        description:\n            'ConfirmationRequest\\n\\n\\n                        The Confirmation Request message is used to request a Confirmation message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35094',\n        name: 'ContraryIntentionReport',\n        value: 'BO',\n        sort: 94,\n        added: 'FIX.2.7',\n        description:\n            'ContraryIntentionReport\\n\\n\\n                        The Contrary Intention Report is used for reporting of contrary expiration quantities for Saturday expiring options. This information is required by options exchanges for regulatory purposes.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35095',\n        name: 'SecurityDefinitionUpdateReport',\n        value: 'BP',\n        sort: 95,\n        added: 'FIX.2.7',\n        description:\n            'SecurityDefinitionUpdateReport\\n\\n\\n                        This message is used for reporting updates to a product security master file. Updates could be the result of corporate actions or other business events. Updates may include additions, modifications or deletions.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35096',\n        name: 'SecurityListUpdateReport',\n        value: 'BK',\n        sort: 96,\n        added: 'FIX.2.7',\n        description:\n            'SecurityListUpdateReport\\n\\n\\n                        The Security List Update Report is used for reporting updates to a Contract Security Masterfile. Updates could be due to Corporate Actions or other business events. Update may include additions, modifications and deletions.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35097',\n        name: 'AdjustedPositionReport',\n        value: 'BL',\n        sort: 97,\n        added: 'FIX.2.7',\n        description:\n            'AdjustedPositionReport\\n\\n\\n                        Used to report changes in position, primarily in equity options, due to modifications to the underlying due to corporate actions',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35098',\n        name: 'AllocationInstructionAlert',\n        value: 'BM',\n        sort: 98,\n        added: 'FIX.2.7',\n        description:\n            'AllocationInstructionAlert\\n\\n\\n                        This message is used in a 3-party allocation model (buy-side and sell-side using a central clearing entity) where notification of group creation and group updates to counterparties is needed. The message will also carry trade information that comprised the group to the counterparties.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35099',\n        name: 'ExecutionAck',\n        value: 'BN',\n        sort: 99,\n        added: 'FIX.2.7',\n        description:\n            \"ExecutionAck\\n\\n\\n                        The Execution Report Acknowledgement message is an optional message that provides dual functionality to notify a trading partner that an electronically received execution has either been accepted or rejected (DK'd).\",\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35100',\n        name: 'TradingSessionList',\n        value: 'BJ',\n        sort: 100,\n        added: 'FIX.2.7',\n        description:\n            'TradingSessionList\\n\\n\\n                        The Trading Session List message is sent as a response to a Trading Session List Request. The Trading Session List should contain the characteristics of the trading session and the current state of the trading session.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35101',\n        name: 'TradingSessionListRequest',\n        value: 'BI',\n        sort: 101,\n        added: 'FIX.2.7',\n        description:\n            'TradingSessionListRequest\\n\\n\\n                        The Trading Session List Request is used to request a list of trading sessions available in a market place and the state of those trading sessions. A successful request will result in a response from the counterparty of a Trading Session List (MsgType=BJ) message that contains a list of zero or more trading sessions.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35102',\n        name: 'SettlementObligationReport',\n        value: 'BQ',\n        sort: 102,\n        description:\n            'SettlementObligationReport\\n\\n\\n                        The Settlement Obligation Report message provides a central counterparty, institution, or individual counterparty with a capacity for reporting the final details of a currency settlement obligation.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35103',\n        name: 'DerivativeSecurityListUpdateReport',\n        value: 'BR',\n        sort: 103,\n        added: 'FIX.2.7',\n        description:\n            'DerivativeSecurityListUpdateReport\\n\\n\\n                        The Derivative Security List Update Report message is used to send updates to an option family or the strikes that comprise an option family.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35104',\n        name: 'TradingSessionListUpdateReport',\n        value: 'BS',\n        sort: 104,\n        added: 'FIX.2.7',\n        description:\n            'TradingSessionListUpdateReport\\n\\n\\n                        The Trading Session List Update Report is used by marketplaces to provide intra-day updates of trading sessions when there are changes to one or more trading sessions.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35105',\n        name: 'MarketDefinitionRequest',\n        value: 'BT',\n        sort: 105,\n        added: 'FIX.2.7',\n        description:\n            'MarketDefinitionRequest\\n\\n\\n                        The Market Definition Request message is used to request for market structure information from the Respondent that receives this request.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35106',\n        name: 'MarketDefinition',\n        value: 'BU',\n        sort: 106,\n        added: 'FIX.2.7',\n        description:\n            'MarketDefinition\\n\\n\\n                        The MarketDefinition(35=BU) message is used to respond to MarketDefinitionRequest(35=BT). In a subscription, it will be used to provide the initial snapshot of the information requested. Subsequent updates are provided by the MarketDefinitionUpdateReport(35=BV).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35107',\n        name: 'MarketDefinitionUpdateReport',\n        value: 'BV',\n        sort: 107,\n        added: 'FIX.2.7',\n        description:\n            'MarketDefinitionUpdateReport\\n\\n\\n                        In a subscription for market structure information, this message is used once the initial snapshot of the information has been sent using the MarketDefinition(35=BU) message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35108',\n        name: 'ApplicationMessageRequest',\n        value: 'BW',\n        sort: 108,\n        added: 'FIX.2.7',\n        description:\n            'ApplicationMessageRequest\\n\\n\\n                        This message is used to request a retransmission of a set of one or more messages generated by the application specified in RefApplID (1355).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35109',\n        name: 'ApplicationMessageRequestAck',\n        value: 'BX',\n        sort: 109,\n        added: 'FIX.2.7',\n        description:\n            'ApplicationMessageRequestAck\\n\\n\\n                        This message is used to acknowledge an Application Message Request providing a status on the request (i.e. whether successful or not). This message does not provide the actual content of the messages to be resent.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35110',\n        name: 'ApplicationMessageReport',\n        value: 'BY',\n        sort: 110,\n        added: 'FIX.2.7',\n        description:\n            'ApplicationMessageReport\\n\\n\\n                        This message is used for three difference purposes: to reset the ApplSeqNum (1181) of a specified ApplID (1180). to indicate that the last message has been sent for a particular ApplID, or as a keep-alive mechanism for ApplIDs with infrequent message traffic.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35111',\n        name: 'OrderMassActionReport',\n        value: 'BZ',\n        sort: 111,\n        added: 'FIX.2.7',\n        description:\n            'OrderMassActionReport\\n\\n\\n                        The Order Mass Action Report is used to acknowledge an Order Mass Action Request. Note that each affected order that is suspended or released or canceled is acknowledged with a separate Execution Report for each order.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35112',\n        name: 'OrderMassActionRequest',\n        value: 'CA',\n        sort: 112,\n        added: 'FIX.2.7',\n        description:\n            'OrderMassActionRequest\\n\\n\\n                        The Order Mass Action Request message can be used to request the suspension or release of a group of orders that match the criteria specified within the request. This is equivalent to individual Order Cancel Replace Requests for each order with or without adding \"S\" to the ExecInst values. It can also be used for mass order cancellation.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35113',\n        name: 'UserNotification',\n        value: 'CB',\n        sort: 113,\n        added: 'FIX.2.7',\n        description:\n            'UserNotification\\n\\n\\n                        The User Notification message is used to notify one or more users of an event or information from the sender of the message. This message is usually sent unsolicited from a marketplace (e.g. Exchange, ECN) to a market participant.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35114',\n        name: 'StreamAssignmentRequest',\n        value: 'CC',\n        sort: 114,\n        added: 'FIX.2.7',\n        description:\n            'StreamAssignmentRequest\\n\\n\\n                        In certain markets where market data aggregators fan out to end clients the pricing streams provided by the price makers, the price maker may assign the clients to certain pricing streams that the price maker publishes via the aggregator. An example of this use is in the FX markets where clients may be assigned to different pricing streams based on volume bands and currency pairs.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35115',\n        name: 'StreamAssignmentReport',\n        value: 'CD',\n        sort: 115,\n        added: 'FIX.2.7',\n        description:\n            'StreamAssignmentReport\\n\\nThe StreamAssignmentReport(35=CD) message is in response to the StreamAssignmentRequest(35=CC) message. It provides information back to the aggregator as to which clients to assign to receive which price stream based on requested CCY pair. This message can be sent unsolicited to the Aggregator from the Price Maker.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35116',\n        name: 'StreamAssignmentReportACK',\n        value: 'CE',\n        sort: 116,\n        added: 'FIX.2.7',\n        description:\n            'StreamAssignmentReportACK\\n\\n\\n                        This message is used to respond to the Stream Assignment Report, to either accept or reject an unsolicited assingment.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35117',\n        name: 'PartyDetailsListRequest',\n        value: 'CF',\n        sort: 117,\n        added: 'FIX.2.7',\n        description:\n            'PartyDetailsListRequest\\n\\n\\n                        The PartyDetailsListRequest is used to request party detail information.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35118',\n        name: 'PartyDetailsListReport',\n        value: 'CG',\n        sort: 118,\n        added: 'FIX.2.7',\n        description:\n            'PartyDetailsListReport\\n\\n\\n                        The PartyDetailsListReport message is used to disseminate party details between counterparties. PartyDetailsListReport messages may be sent in response to a PartyDetailsListRequest message or sent unsolicited.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35119',\n        name: 'MarginRequirementInquiry',\n        value: 'CH',\n        sort: 119,\n        added: 'FIX.2.7',\n        description:\n            'MarginRequirementInquiry\\n\\n\\n                        The purpose of this message is to initiate a margin requirement inquiry for a margin account. The inquiry may be submitted at the detail level or the summary level. It can also be used to inquire margin excess/deficit or net position information. Margin excess/deficit will provide information about the surplus or shortfall compared to the previous trading day or a more recent margin calculation. An inquiry for net position information will trigger one or more PositionReport messages instead of one or more MarginRequirementReport messages.\\n\\n\\n                        If the inquiry is made at the detail level, an Instrument block must be provided with the desired level of detail. If the inquiry is made at the summary level, the Instrument block is not provided, implying a summary request is being made. For example, if the inquiring firm specifies the Security Type of \u201CFUT\u201D in the Instrument block, then a detail report will be generated containing the margin requirements for all futures positions for the inquiring account. Similarly, if the inquiry is made at the summary level, the report will contain the total margin requirement aggregated to the margin account level.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35120',\n        name: 'MarginRequirementInquiryAck',\n        value: 'CI',\n        sort: 120,\n        added: 'FIX.2.7',\n        description:\n            'MarginRequirementInquiryAck\\n\\n\\n                        Used to respond to a Margin Requirement Inquiry.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35121',\n        name: 'MarginRequirementReport',\n        value: 'CJ',\n        sort: 121,\n        added: 'FIX.2.7',\n        description:\n            'MarginRequirementReport\\n\\n\\n                        The Margin Requirement Report returns information about margin requirement either as on overview across all margin accounts or on a detailed level due to the inquiry making use of the optional Instrument component block. Application sequencing can be used to re-request a range of reports.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35122',\n        name: 'PartyDetailsListUpdateReport',\n        value: 'CK',\n        sort: 122,\n        added: 'FIX.2.7',\n        description:\n            'PartyDetailsListUpdateReport\\n\\n\\n                        The PartyDetailsListUpdateReport(35=CK) is used to disseminate updates to party detail information.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35123',\n        name: 'PartyRiskLimitsRequest',\n        value: 'CL',\n        sort: 123,\n        added: 'FIX.2.7',\n        description:\n            'PartyRiskLimitsRequest\\n\\n\\n                        The PartyRiskLimitsRequest message is used to request for risk information for specific parties, specific party roles or specific instruments.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35124',\n        name: 'PartyRiskLimitsReport',\n        value: 'CM',\n        sort: 124,\n        added: 'FIX.2.7',\n        description:\n            'PartyRiskLimitsReport\\n\\n\\n                        The PartyRiskLimitsReport message is used to communicate party risk limits. The message can either be sent as a response to the PartyRiskLimitsRequest message or can be published unsolicited.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35125',\n        name: 'SecurityMassStatusRequest',\n        value: 'CN',\n        sort: 125,\n        added: 'FIX.2.7',\n        description: 'SecurityMassStatusRequest',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35126',\n        name: 'SecurityMassStatus',\n        value: 'CO',\n        sort: 126,\n        added: 'FIX.2.7',\n        description: 'SecurityMassStatus',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35127',\n        name: 'AccountSummaryReport',\n        value: 'CQ',\n        sort: 127,\n        added: 'FIX.2.7',\n        description:\n            'AccountSummaryReport\\n\\n\\n                        The AccountSummaryReport is provided by the clearinghouse to its clearing members on a daily basis. It contains margin, settlement, collateral and pay/collect data for each clearing member level account type. Clearing member account types will be described through use of the Parties component and PtysSubGrp sub-component.\\n\\n\\n                        In certain usages, the clearing members can send the AccountSummaryReport message to the clearinghouse as needed. For example, clearing members can send this message to the clearinghouse to identify the value of collateral for each customer (to satisfy CFTC Legally Segregated Operationally Commingled (LSOC) regulatory reporting obligations).\\n\\n\\n                        Clearing organizations can also send the AccountSummaryReport message to regulators to meet regulatory reporting obligations. For example, clearing organizations can use this message to submit daily reports for each clearing member (\u201CCM\u201D) by house origin and by each customer origin for all futures, options, and swaps positions, and all securities positions held in a segregated account or pursuant to a cross margining agreement, to a regulator (e.g. to the CFTC to meet Part 39, Section 39.19 reporting obligations).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35128',\n        name: 'PartyRiskLimitsUpdateReport',\n        value: 'CR',\n        sort: 128,\n        added: 'FIX.2.7',\n        description:\n            'PartyRiskLimitsUpdateReport\\n\\n\\n                        The PartyRiskLimitsUpdateReport(35=CR) is used to convey incremental changes to risk limits. It is similar to the regular report but uses the PartyRiskLimitsUpdateGrp component instead of the PartyRiskLimitsGrp component to include an update action.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35129',\n        name: 'PartyRiskLimitsDefinitionRequest',\n        value: 'CS',\n        sort: 129,\n        added: 'FIX.2.7',\n        description:\n            'PartyRiskLimitsDefinitionRequest\\n\\n\\n                        PartyRiskLimitDefinitionRequest is used for defining new risk limits.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35130',\n        name: 'PartyRiskLimitsDefinitionRequestAck',\n        value: 'CT',\n        sort: 130,\n        added: 'FIX.2.7',\n        description:\n            'PartyRiskLimitsDefinitionRequestAck\\n\\n\\n                        PartyRiskLimitDefinitionRequestAck is used for accepting (with or without changes) or rejecting the definition of risk limits.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35131',\n        name: 'PartyEntitlementsRequest',\n        value: 'CU',\n        sort: 131,\n        added: 'FIX.2.7',\n        description:\n            'PartyEntitlementsRequest\\n\\n\\n                        The PartyEntitlementsRequest message is used to request for entitlement information for one or more party(-ies), specific party role(s), or specific instruments(s).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35132',\n        name: 'PartyEntitlementsReport',\n        value: 'CV',\n        sort: 132,\n        added: 'FIX.2.7',\n        description:\n            'PartyEntitlementsReport\\n\\n\\n                        The PartyEntitlementsReport is used to report entitlements for one or more parties, party role(s), or specific instrument(s).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35133',\n        name: 'QuoteAck',\n        value: 'CW',\n        sort: 133,\n        added: 'FIX.2.7',\n        description:\n            'QuoteAck\\n\\n\\n                        The QuoteAck(35=CW) message is used to acknowledge a Quote(35=S) submittal or request to cancel an individual quote using the QuoteCancel(35=Z) message during a Quote/Negotiation dialog.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35134',\n        name: 'PartyDetailsDefinitionRequest',\n        value: 'CX',\n        sort: 134,\n        added: 'FIX.2.7',\n        description:\n            'PartyDetailsDefinitionRequest\\n\\n\\n                        The PartyDetailsDefinitionRequest(35=CX) is used for defining new parties and modifying or deleting existing parties information, including the relationships between parties.\\n\\n\\n                        The recipient of the message responds with a PartyDetailsDefinitionRequestAck(35=CY) to indicate whether the request was accepted or rejected.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35135',\n        name: 'PartyDetailsDefinitionRequestAck',\n        value: 'CY',\n        sort: 135,\n        added: 'FIX.2.7',\n        description:\n            'PartyDetailsDefinitionRequestAck\\n\\n\\n                        The PartyDetailsDefinitionRequestAck(35=CY) is used as a response to the PartyDetailsDefinitionRequest(35=CX) message. The request can be accepted (with or without changes) or rejected.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35136',\n        name: 'PartyEntitlementsUpdateReport',\n        value: 'CZ',\n        sort: 136,\n        added: 'FIX.2.7',\n        description:\n            'PartyEntitlementsUpdateReport\\n\\n\\n                        The PartyEntitlementsUpdateReport(35=CZ) is used to convey incremental changes to party entitlements. It is similar to the PartyEntitlementsReport(35=CV). This message uses the PartyEntitlementsUpdateGrp component which includes the ability to specify an update action using ListUpdateAction(1324).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35137',\n        name: 'PartyEntitlementsDefinitionRequest',\n        value: 'DA',\n        sort: 137,\n        added: 'FIX.2.7',\n        description:\n            'PartyEntitlementsDefinitionRequest\\n\\n\\n                        The PartyEntitlementsDefinitionRequest(35=DA) is used for defining new entitlements, and modifying or deleting existing entitlements for the specified party(-ies).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35138',\n        name: 'PartyEntitlementsDefinitionRequestAck',\n        value: 'DB',\n        sort: 138,\n        added: 'FIX.2.7',\n        description:\n            'PartyEntitlementsDefinitionRequestAck\\n\\n\\n                        The PartyEntitlementsDefinitionRequestAck(35=DB) is used as a response to the PartyEntitlemensDefinitionRequest(35=DA) to accept (with or without changes) or reject the definition of party entitlements.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35139',\n        name: 'TradeMatchReport',\n        value: 'DC',\n        sort: 139,\n        added: 'FIX.2.7',\n        description:\n            'TradeMatchReport\\n\\n\\n                        The TradeMatchReport(35=DC) message is used by exchanges and ECN\u2019s to report matched trades to central counterparties (CCPs) as an atomic event. The message is used to express the one-to-one, one-to-many and many-to-many matches as well as implied matches in which more complex instruments can match with simpler instruments.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35140',\n        name: 'TradeMatchReportAck',\n        value: 'DD',\n        sort: 140,\n        added: 'FIX.2.7',\n        description:\n            'TradeMatchReportAck\\n\\n\\n                        The TradeMatchReportAck(35=DD) is used to respond to theTradeMatchReport(35=DC) message. It may be used to report on the status of the request (e.g. accepting the request or rejecting the request).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35141',\n        name: 'PartyRiskLimitsReportAck',\n        value: 'DE',\n        sort: 141,\n        added: 'FIX.2.7',\n        description:\n            'PartyRiskLimitsReportAck\\n\\n\\n                        PartyRiskLimitsReportAck is an optional message used as a response to the PartyRiskLimitReport(35=CM) or PartyRiskLimitUpdateReport(35=CR) messages to acknowledge or reject those messages.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35142',\n        name: 'PartyRiskLimitCheckRequest',\n        value: 'DF',\n        sort: 142,\n        added: 'FIX.2.7',\n        description:\n            'PartyRiskLimitCheckRequest\\n\\n\\n                        PartyRiskLimitCheckRequest is used to request for approval of credit or risk limit amount intended to be used by a party in a transaction from another party that holds the information.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35143',\n        name: 'PartyRiskLimitCheckRequestAck',\n        value: 'DG',\n        sort: 143,\n        added: 'FIX.2.7',\n        description:\n            'PartyRiskLimitCheckRequestAck\\n\\n\\n                        PartyRiskLimitCheckRequestAck is used to acknowledge a PartyRiskLimitCheckRequest(35=DF) message and to respond whether the limit check request was approved or not. When used to accept the PartyRiskLimitCheckRequest(35=DF) message the Respondent may also include the limit amount that was approved.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35144',\n        name: 'PartyActionRequest',\n        value: 'DH',\n        sort: 144,\n        added: 'FIX.2.7',\n        description:\n            'PartyActionRequest\\n\\n\\n                        The PartyActionRequest message is used suspend or halt the specified party from further trading activities at the Respondent. The Respondent must respond with a PartyActionReport(35=DI) message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35145',\n        name: 'PartyActionReport',\n        value: 'DI',\n        sort: 145,\n        added: 'FIX.2.7',\n        description:\n            'PartyActionReport\\n\\n\\n                        Used to respond to the PartyActionRequest(35=DH) message, indicating whether the request has been received, accepted or rejected. Can also be used in an unsolicited manner to report party actions, e.g. reinstatements after a manual intervention out of band.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35146',\n        name: 'MassOrder',\n        value: 'DJ',\n        sort: 146,\n        added: 'FIX.2.7',\n        description:\n            'MassOrder\\n\\n\\n                        The MassOrder(35=DJ) message can be used to add, modify or delete multiple unrelated orders with a single message. Apart from clearing related attributes, only the key order attributes for high performance trading are available.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35147',\n        name: 'MassOrderAck',\n        value: 'DK',\n        sort: 147,\n        added: 'FIX.2.7',\n        description:\n            'MassOrderAck\\n\\n\\n                        The mass order acknowledgement message is used to acknowledge the receipt of and the status for a MassOrder(35=DJ) message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35148',\n        name: 'PositionTransferInstruction',\n        value: 'DL',\n        sort: 148,\n        added: 'FIX.2.7',\n        description:\n            'PositionTransferInstruction\\n\\n\\n                        The PositionTransferInstruction(35=DL) is sent by clearing firms to CCPs to initiate position transfers, or to accept or decline position transfers.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35149',\n        name: 'PositionTransferInstructionAck',\n        value: 'DM',\n        sort: 149,\n        added: 'FIX.2.7',\n        description:\n            'PositionTransferInstructionAck\\n\\n\\n                        The PositionTransferInstructionAck(35=DM) is sent by CCPs to clearing firms to acknowledge position transfer instructions, and to report errors processing position transfer instructions.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35150',\n        name: 'PositionTransferReport',\n        value: 'DN',\n        sort: 150,\n        added: 'FIX.2.7',\n        description:\n            'PositionTransferReport\\n\\n\\n                        The PositionTransferReport(35=DN) is sent by CCPs to clearing firms indicating of positions that are to be transferred to the clearing firm, or to report on status of the transfer to the clearing firms involved in the transfer process.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35151',\n        name: 'MarketDataStatisticsRequest',\n        value: 'DO',\n        sort: 151,\n        added: 'FIX.2.7',\n        description:\n            'MarketDataStatisticsRequest\\n\\n\\n                        The MarketDataStatisticsRequest(35=DO) is used to request for statistical data. The simple form is to use an identifier (MDStatisticID(2475)) assigned by the market place which would denote a pre-defined statistical report. Alternatively, or also in addition, the request can define a number of parameters for the desired statistical information.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35152',\n        name: 'MarketDataStatisticsReport',\n        value: 'DP',\n        sort: 152,\n        added: 'FIX.2.7',\n        description:\n            'MarketDataStatisticsReport\\n\\n\\n                        The MarketDataStatisticsReport(35=DP) is used to provide unsolicited statistical information or in response to a specific request. Each report contains a set of statistics for a single entity which could be a market, a market segment, a security list or an instrument.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35153',\n        name: 'CollateralReportAck',\n        value: 'DQ',\n        sort: 153,\n        added: 'FIX.2.7',\n        description:\n            'CollateralReportAck\\n\\n\\n                        CollateralReportAck(35=DQ) is used as a response to the CollateralReport(35=BA). It can be used to reject a CollateralReport(35=BA) when the content of the report is invalid based on the business rules of the receiver. The message may also be used to acknowledge receipt of a valid CollateralReport(35=BA).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35154',\n        name: 'MarketDataReport',\n        value: 'DR',\n        sort: 154,\n        added: 'FIX.2.7',\n        description:\n            'MarketDataReport\\n\\n\\n                        The MarketDataReport(35=DR) message is used to provide delimiting references (e.g. start and end markers in a continuous broadcast) and details about the number of market data messages sent in a given distribution cycle.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35155',\n        name: 'CrossRequest',\n        value: 'DS',\n        sort: 155,\n        added: 'FIX.2.7',\n        description:\n            'CrossRequest\\n\\n\\n                        The CrossRequest(35=DS) message is used to indicate the submission of orders or quotes that may result in a crossed trade.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35156',\n        name: 'CrossRequestAck',\n        value: 'DT',\n        sort: 156,\n        added: 'FIX.2.7',\n        description:\n            'CrossRequestAck\\n\\n\\n                        The CrossRequestAck(35=DT) message is used to confirm the receipt of a CrossRequest(35=DS) message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35157',\n        name: 'AllocationInstructionAlertRequest',\n        value: 'DU',\n        sort: 157,\n        added: 'FIX.2.7',\n        description:\n            'AllocationInstructionAlertRequest\\n\\n\\n                        This message is used in a clearinghouse 3-party allocation model to request for AllocationInstructionAlert(35=BM) from the clearinghouse. The request may be used to obtain a one-time notification of the status of an allocation group.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35158',\n        name: 'AllocationInstructionAlertRequestAck',\n        value: 'DV',\n        sort: 158,\n        added: 'FIX.2.7',\n        description:\n            'AllocationInstructionAlertRequestAck\\n\\n\\n                        This message is used in a clearinghouse 3-party allocation model to acknowledge a AllocationInstructionAlertRequest(35=DU) message for an AllocationInstructionAlert(35=BM) message from the clearinghouse.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35159',\n        name: 'TradeAggregationRequest',\n        value: 'DW',\n        sort: 159,\n        added: 'FIX.2.7',\n        description:\n            'TradeAggregationRequest\\n\\n\\n                        TradeAggregationRequest(35=DW) is used to request that the identified trades between the initiator and respondent be aggregated together for further processing.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35160',\n        name: 'TradeAggregationReport',\n        value: 'DX',\n        sort: 160,\n        added: 'FIX.2.7',\n        description:\n            'TradeAggregationReport\\n\\n\\n                        TradeAggregationReport(35=DX) is used to respond to the TradeAggregationRequest(35=DW) message. It provides the status of the request (e.g. accepted or rejected) and may also provide additional information supplied by the respondent.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35161',\n        name: 'PayManagementReport',\n        value: 'EA',\n        sort: 161,\n        added: 'FIX.2.7',\n        description:\n            'PayManagementReport\\n\\n\\n                        PayManagementReport(35=EA) may be used to respond to the PayManagementRequest(35=DY) message. It provides the status of the request (e.g. accepted, disputed) and may provide additional information related to the request.\\n\\n\\n                        PayManagementReport(35=EA) may also be sent unsolicited by the broker to a client. In which case the client may acknowledge and resolve disputes out-of-band or with a simple PayManagementReportAck(35=EB).\\n\\n\\n                        PayManagementReport(35=EA) may also be sent unsolicited to report the progress status of the payment itself with PayReportTransType(2804)=2 (Status).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35162',\n        name: 'PayManagementReportAck',\n        value: 'EB',\n        sort: 162,\n        added: 'FIX.2.7',\n        description:\n            'PayManagementReportAck\\n\\n\\n                        PayManagementReportAck(35=EB) is used as a response to the PayManagementReport(35=EA) message. It may be used to accept, reject or dispute the details of the PayManagementReport(35=EA) depending on the business rules of the receiver. This message may also be used to acknowledge the receipt of a PayManagementReport(35=EA) message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35163',\n        name: 'PayManagementRequest',\n        value: 'DY',\n        sort: 163,\n        added: 'FIX.2.7',\n        description:\n            'PayManagementRequest\\n\\n\\n                        PayManagementRequest(35=DY) message is used to communicate a future or expected payment to be made or received related to a trade or contract after its settlement.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35164',\n        name: 'PayManagementRequestAck',\n        value: 'DZ',\n        sort: 164,\n        added: 'FIX.2.7',\n        description:\n            'PayManagementRequestAck\\n\\n\\n                        PayManagementRequestAck(35=DZ) is used to acknowledge the receipt of the PayManagementRequest(35=DY) message (i.e. a technical acknowledgement of receipt). Acceptance or rejection of the request is reported in the corresponding PayManagementReport(35=EA).',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35165',\n        name: 'SettlementStatusRequest',\n        value: 'EC',\n        sort: 165,\n        added: 'FIX.2.7',\n        description:\n            'SettlementStatusRequest\\n\\n\\n                        SettlementStatusRequest(35=EC) is used to request for the settlement status of a trade.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35166',\n        name: 'SettlementStatusRequestAck',\n        value: 'ED',\n        sort: 166,\n        added: 'FIX.2.7',\n        description:\n            'SettlementStatusRequestAck\\n\\n\\n                        SettlementStatusRequestAck(35=ED) is used to respond to the SettlementStatusRequest(35=EC) to acknowledge the request and provide status for the request message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35167',\n        name: 'SettlementStatusReport',\n        value: 'EE',\n        sort: 167,\n        added: 'FIX.2.7',\n        description:\n            'SettlementStatusReport\\n\\n\\n                        SettlementStatusReport(35=EE) is a response to the SettlementStatusRequest(35=EC) to provide settlement status for the requested trade. It may also be sent unsolicited without an explicit request message by the party able to provide the settlement status for the trade identified in the report message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35168',\n        name: 'SettlementStatusReportAck',\n        value: 'EF',\n        sort: 168,\n        added: 'FIX.2.7',\n        description:\n            'SettlementStatusReportAck\\n\\n\\n                        SettlementStatusReportAck(35=EF) is used to respond to the SettlementStatusReport(35=EE) to acknowledge or reject the report.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35169',\n        name: 'SecurityRiskMetricsReport',\n        value: 'EG',\n        sort: 169,\n        added: 'FIX.2.7',\n        description:\n            'SecurityRiskMetricsReport\\n\\n\\n                        SecurityRiskMetricsReport(35=EG) is used for publishing the risk metrics, valuation metrics or analytics of one or more securities, or for an option series.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35170',\n        name: 'AlgoCertificateRequest',\n        value: 'EH',\n        sort: 170,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description:\n            'AlgoCertificateRequest\\n\\nAlgoCertificateRequest(35=EH) is used to request algo testing certificate information for one or more algorithms.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35171',\n        name: 'AlgoCertificateRequestAck',\n        value: 'EI',\n        sort: 171,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description:\n            'AlgoCertificateRequestAck\\n\\nAlgoCertificateRequestAck(35=EI) is used to respond to the AlgoCertificateRequest(35=EH) to acknowledge the request and provide status for the request message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35172',\n        name: 'AlgoCertificateReport',\n        value: 'EJ',\n        sort: 172,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description:\n            'AlgoCertificateReport\\n\\nAlgoCertificateReport(35=EJ) is a response to the AlgoCertificateRequest(35=EH) to certify an algo. It may also be sent unsolicited without an explicit request message by the party able to provide certificate information for the algo identified in the report message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35173',\n        name: 'AlgoCertificateReportAck',\n        value: 'EK',\n        sort: 173,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description:\n            'AlgoCertificateReportAck\\n\\nAlgoCertificateReportAck(35=EK) is used to respond to the AlgoCertificateReport(35=EJ) to acknowledge or reject the report message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35174',\n        name: 'TestSuiteDefinitionRequest',\n        value: 'EL',\n        sort: 174,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description:\n            'TestSuiteDefinitionRequest\\n\\nTestSuiteDefinitionRequest(35=EL) is used to convey to the test system the suite of test scenarios to perform.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35175',\n        name: 'TestSuiteDefinitionRequestAck',\n        value: 'EM',\n        sort: 175,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description:\n            'TestSuiteDefinitionRequestAck\\n\\nTestSuiteDefinitionRequestAck(35=EM) is used to respond to the TestSuiteDefinitionRequest(35= EL) to acknowledge the request and provide status for the request message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35176',\n        name: 'TestActionRequest',\n        value: 'EN',\n        sort: 176,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description:\n            'TestActionRequest\\n\\nTestActionRequest(35=EN) is used to manage test executions or request for testing activity state of the identified test suite.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35177',\n        name: 'TestActionRequestAck',\n        value: 'EO',\n        sort: 177,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description:\n            'TestActionRequestAck\\n\\nTestActionRequestAck(35=EO) is used to respond to the TestActionRequest(35=EN) to acknowledge the request and provide status for the request message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35178',\n        name: 'TestActionReport',\n        value: 'EP',\n        sort: 178,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description:\n            'TestActionReport\\n\\nTestActionReport(35=EP) is used to report the testing results of the identified test suite that has been executed with TestActionRequest(35=EN). In the context of algorithmic trading, the results may be used to create a certificate for the algorithm upon meeting the success criteria.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35179',\n        name: 'MarketDataAck',\n        value: 'EQ',\n        sort: 179,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'MarketDataAck\\n\\nThis message may be used as a response to the MarketDataSnapshotFullRefresh(35=W) and MarketDataIncrementalRefresh(35=X) messages.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35180',\n        name: 'SecurityStatusAck',\n        value: 'ER',\n        sort: 180,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'SecurityStatusAck\\n\\nThis message may be used as a response to the SecurityStatus(35=f) message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '35181',\n        name: 'TradingSessionStatusAck',\n        value: 'ES',\n        sort: 181,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'TradingSessionStatusAck\\n\\nThis message may be used as a response to the TradingSessionStatus(35=h) message.',\n        tag: 35,\n        type: 'String',\n        codeSet: 'MsgTypeCodeSet',\n    },\n    {\n        id: '39001',\n        name: 'New',\n        value: '0',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'New',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39002',\n        name: 'PartiallyFilled',\n        value: '1',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Partially filled',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39003',\n        name: 'Filled',\n        value: '2',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Filled',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39004',\n        name: 'DoneForDay',\n        value: '3',\n        sort: 4,\n        added: 'FIX.2.7',\n        description: 'Done for day',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39005',\n        name: 'Canceled',\n        value: '4',\n        sort: 5,\n        added: 'FIX.2.7',\n        description: 'Canceled',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39006',\n        name: 'Replaced',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '35',\n        deprecated: 'FIX.4.3',\n        description: 'Replaced (No longer used)',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39007',\n        name: 'PendingCancel',\n        value: '6',\n        sort: 7,\n        added: 'FIX.2.7',\n        description: 'Pending Cancel (i.e. result of Order Cancel Request)',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39008',\n        name: 'Stopped',\n        value: '7',\n        sort: 8,\n        added: 'FIX.2.7',\n        description: 'Stopped',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39009',\n        name: 'Rejected',\n        value: '8',\n        sort: 9,\n        added: 'FIX.2.7',\n        description: 'Rejected',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39010',\n        name: 'Suspended',\n        value: '9',\n        sort: 10,\n        added: 'FIX.3.0',\n        description: 'Suspended',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39011',\n        name: 'PendingNew',\n        value: 'A',\n        sort: 11,\n        added: 'FIX.3.0',\n        description: 'Pending New',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39012',\n        name: 'Calculated',\n        value: 'B',\n        sort: 12,\n        added: 'FIX.4.0',\n        description: 'Calculated',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39013',\n        name: 'Expired',\n        value: 'C',\n        sort: 13,\n        added: 'FIX.4.0',\n        description: 'Expired',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39014',\n        name: 'AcceptedForBidding',\n        value: 'D',\n        sort: 14,\n        added: 'FIX.4.2',\n        description: 'Accepted for Bidding',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '39015',\n        name: 'PendingReplace',\n        value: 'E',\n        sort: 15,\n        added: 'FIX.4.2',\n        description: 'Pending Replace (i.e. result of Order Cancel/Replace Request)',\n        tag: 39,\n        type: 'char',\n        codeSet: 'OrdStatusCodeSet',\n    },\n    {\n        id: '40001',\n        name: 'Market',\n        value: '1',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'Market',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40002',\n        name: 'Limit',\n        value: '2',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Limit',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40003',\n        name: 'Stop',\n        value: '3',\n        sort: 3,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '166',\n        description:\n            'Stop/Stop Loss.\\n\\n\\n                        A stop order that is triggered as a result of a trade in the market at which point the stopped order becomes a market order.',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40004',\n        name: 'StopLimit',\n        value: '4',\n        sort: 4,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '166',\n        description:\n            'Stop Limit.\\n\\n\\n                        A stop limit order that is triggered as a result of a trade in the market at which point the stopped order becomes a limit order.',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40005',\n        name: 'MarketOnClose',\n        value: '5',\n        sort: 5,\n        added: 'FIX.2.7',\n        deprecated: 'FIX.4.3',\n        description: 'Market On Close (No longer used)',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40006',\n        name: 'WithOrWithout',\n        value: '6',\n        sort: 6,\n        added: 'FIX.2.7',\n        description: 'With Or Without',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40007',\n        name: 'LimitOrBetter',\n        value: '7',\n        sort: 7,\n        added: 'FIX.2.7',\n        deprecated: 'FIX.4.4',\n        description: 'Limit Or Better',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40008',\n        name: 'LimitWithOrWithout',\n        value: '8',\n        sort: 8,\n        added: 'FIX.2.7',\n        description: 'Limit With Or Without',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40009',\n        name: 'OnBasis',\n        value: '9',\n        sort: 9,\n        added: 'FIX.2.7',\n        description: 'On Basis',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40010',\n        name: 'OnClose',\n        value: 'A',\n        sort: 10,\n        added: 'FIX.2.7',\n        deprecated: 'FIX.4.3',\n        description: 'On Close (No longer used)',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40011',\n        name: 'LimitOnClose',\n        value: 'B',\n        sort: 11,\n        added: 'FIX.2.7',\n        deprecated: 'FIX.4.3',\n        description: 'Limit On Close (No longer used)',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40012',\n        name: 'ForexMarket',\n        value: 'C',\n        sort: 12,\n        added: 'FIX.4.0',\n        deprecated: 'FIX.4.3',\n        description: 'Forex Market (No longer used)',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40013',\n        name: 'PreviouslyQuoted',\n        value: 'D',\n        sort: 13,\n        added: 'FIX.4.0',\n        description: 'Previously Quoted',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40014',\n        name: 'PreviouslyIndicated',\n        value: 'E',\n        sort: 14,\n        added: 'FIX.4.0',\n        description: 'Previously Indicated',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40015',\n        name: 'ForexLimit',\n        value: 'F',\n        sort: 15,\n        added: 'FIX.4.1',\n        deprecated: 'FIX.4.3',\n        description: 'Forex Limit (No longer used)',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40016',\n        name: 'ForexSwap',\n        value: 'G',\n        sort: 16,\n        added: 'FIX.4.1',\n        description: 'Forex Swap',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40017',\n        name: 'ForexPreviouslyQuoted',\n        value: 'H',\n        sort: 17,\n        added: 'FIX.4.1',\n        deprecated: 'FIX.4.3',\n        description: 'Forex Previously Quoted (No longer used)',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40018',\n        name: 'Funari',\n        value: 'I',\n        sort: 18,\n        added: 'FIX.4.2',\n        description: 'Funari (Limit day order with unexecuted portion handles as Market On Close. E.g. Japan)',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40019',\n        name: 'MarketIfTouched',\n        value: 'J',\n        sort: 19,\n        added: 'FIX.4.3',\n        description: 'Market If Touched (MIT)',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40020',\n        name: 'MarketWithLeftOverAsLimit',\n        value: 'K',\n        sort: 20,\n        added: 'FIX.4.3',\n        description:\n            'Market With Left Over as Limit (market order with unexecuted quantity becoming limit order at last price)',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40021',\n        name: 'PreviousFundValuationPoint',\n        value: 'L',\n        sort: 21,\n        added: 'FIX.4.3',\n        description: 'Previous Fund Valuation Point (Historic pricing; for CIV)',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40022',\n        name: 'NextFundValuationPoint',\n        value: 'M',\n        sort: 22,\n        added: 'FIX.4.3',\n        description: 'Next Fund Valuation Point (Forward pricing; for CIV)',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40023',\n        name: 'Pegged',\n        value: 'P',\n        sort: 23,\n        added: 'FIX.3.0',\n        description: 'Pegged',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40024',\n        name: 'CounterOrderSelection',\n        value: 'Q',\n        sort: 24,\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Counter-order selection',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40025',\n        name: 'StopOnBidOrOffer',\n        value: 'R',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '166',\n        description:\n            'Stop on Bid or Offer\\n\\n\\n                        A stop order that is triggered by a bid or offer price movement (quote) at which point the stopped order becomes a market order, also known as \"stop on quote\" in some markets (e.g. US markets). In the US equities market it is common to trigger a stop off the National Best Bid or Offer (NBBO).',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '40026',\n        name: 'StopLimitOnBidOrOffer',\n        value: 'S',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '166',\n        description:\n            'Stop Limit on Bid or Offer\\n\\n\\n                        A stop order that is triggered by a bid or offer price movement (quote) at which point the stopped order becomes a limit order, also known as \"stop limit on quote\" in some markets (e.g. US markets). In the US equities market it is common to trigger a stop off the National Best Bid or Offer (NBBO).',\n        tag: 40,\n        type: 'char',\n        codeSet: 'OrdTypeCodeSet',\n    },\n    {\n        id: '43001',\n        name: 'OriginalTransmission',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'Original transmission',\n        tag: 43,\n        type: 'Boolean',\n        codeSet: 'PossDupFlagCodeSet',\n    },\n    {\n        id: '43002',\n        name: 'PossibleDuplicate',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Possible duplicate',\n        tag: 43,\n        type: 'Boolean',\n        codeSet: 'PossDupFlagCodeSet',\n    },\n    {\n        id: '54001',\n        name: 'Buy',\n        value: '1',\n        sort: 1,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description:\n            'Buy\\n\\n\\n                        For Securities Financing indicates the receipt of securities or collateral.',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54002',\n        name: 'Sell',\n        value: '2',\n        sort: 2,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description:\n            'Sell\\n\\n\\n                        For Securities Financing indicates the delivery of securities or collateral.',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54003',\n        name: 'BuyMinus',\n        value: '3',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Buy minus',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54004',\n        name: 'SellPlus',\n        value: '4',\n        sort: 4,\n        added: 'FIX.2.7',\n        description: 'Sell plus',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54005',\n        name: 'SellShort',\n        value: '5',\n        sort: 5,\n        added: 'FIX.2.7',\n        description: 'Sell short',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54006',\n        name: 'SellShortExempt',\n        value: '6',\n        sort: 6,\n        added: 'FIX.2.7',\n        description: 'Sell short exempt',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54007',\n        name: 'Undisclosed',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description: 'Undisclosed',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54008',\n        name: 'Cross',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.1',\n        description: 'Cross (orders where counterparty is an exchange, valid for all messages except IOIs)',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54009',\n        name: 'CrossShort',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.2',\n        description: 'Cross short',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54010',\n        name: 'CrossShortExempt',\n        value: 'A',\n        sort: 10,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Cross short exempt',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54011',\n        name: 'AsDefined',\n        value: 'B',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: '\"As Defined\" (for use with multileg instruments)',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54012',\n        name: 'Opposite',\n        value: 'C',\n        sort: 12,\n        added: 'FIX.4.3',\n        description: '\"Opposite\" (for use with multileg instruments)',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54013',\n        name: 'Subscribe',\n        value: 'D',\n        sort: 13,\n        added: 'FIX.4.4',\n        description: 'Subscribe (e.g. CIV)',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54014',\n        name: 'Redeem',\n        value: 'E',\n        sort: 14,\n        added: 'FIX.4.4',\n        description: 'Redeem (e.g. CIV)',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54015',\n        name: 'Lend',\n        value: 'F',\n        sort: 15,\n        added: 'FIX.4.4',\n        description: 'Lend (FINANCING - identifies direction of collateral)',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54016',\n        name: 'Borrow',\n        value: 'G',\n        sort: 16,\n        added: 'FIX.4.4',\n        description: 'Borrow (FINANCING - identifies direction of collateral)',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '54017',\n        name: 'SellUndisclosed',\n        value: 'H',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description:\n            'Sell undisclosed\\n\\n\\n                        In the context of ESMA RTS 22, this allows for reporting of transactions where the investment firm (broker) is not able to determine whether the sell is a short sale transaction. Corresponds to RTS 22 \"short selling indicator\" value of \\'UNDI\\'.',\n        tag: 54,\n        type: 'char',\n        codeSet: 'SideCodeSet',\n    },\n    {\n        id: '59001',\n        name: 'Day',\n        value: '0',\n        sort: 1,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Day (or session)\\n\\n\\n                        A buy or sell order that, if not executed expires at the end of the trading day on which it was entered.',\n        tag: 59,\n        type: 'char',\n        codeSet: 'TimeInForceCodeSet',\n    },\n    {\n        id: '59002',\n        name: 'GoodTillCancel',\n        value: '1',\n        sort: 2,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Good Till Cancel (GTC)\\n\\n\\n                        An order to buy or sell that remains in effect until it is either executed or canceled; sometimes called an \u201Copen order\u201D.',\n        tag: 59,\n        type: 'char',\n        codeSet: 'TimeInForceCodeSet',\n    },\n    {\n        id: '59003',\n        name: 'AtTheOpening',\n        value: '2',\n        sort: 3,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'At the Opening (OPG)\\n\\n\\n                        A market or limit-price order to be executed at the opening of the stock or not at all; all or part of any order not executed at the opening is treated as canceled.',\n        tag: 59,\n        type: 'char',\n        codeSet: 'TimeInForceCodeSet',\n    },\n    {\n        id: '59004',\n        name: 'ImmediateOrCancel',\n        value: '3',\n        sort: 4,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Immediate Or Cancel (IOC)\\n\\n\\n                        A market or limit-price order that is to be executed in whole or in part as soon as it is available in the market; any portion not so executed is to be canceled.',\n        tag: 59,\n        type: 'char',\n        codeSet: 'TimeInForceCodeSet',\n    },\n    {\n        id: '59005',\n        name: 'FillOrKill',\n        value: '4',\n        sort: 5,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Fill Or Kill (FOK)\\n\\n\\n                        A market or limit-price order that is to be executed in its entirety as soon as it is available in the market; if not so executed, the order is to be canceled.',\n        tag: 59,\n        type: 'char',\n        codeSet: 'TimeInForceCodeSet',\n    },\n    {\n        id: '59006',\n        name: 'GoodTillCrossing',\n        value: '5',\n        sort: 6,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Good Till Crossing (GTX)\\n\\n\\n                        An order to buy or sell that is canceled prior to the market entering into an auction or crossing phase.',\n        tag: 59,\n        type: 'char',\n        codeSet: 'TimeInForceCodeSet',\n    },\n    {\n        id: '59007',\n        name: 'GoodTillDate',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Good Till Date (GTD)\\n\\n\\n                        An order to buy or sell that remains in effect until it expires, defined by ExpireDate(432) or ExpireTime(126).',\n        tag: 59,\n        type: 'char',\n        codeSet: 'TimeInForceCodeSet',\n    },\n    {\n        id: '59008',\n        name: 'AtTheClose',\n        value: '7',\n        sort: 8,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'At the Close\\n\\n\\n                        Indicated price is to be around the closing price, however, not held to the closing price.',\n        tag: 59,\n        type: 'char',\n        codeSet: 'TimeInForceCodeSet',\n    },\n    {\n        id: '59009',\n        name: 'GoodThroughCrossing',\n        value: '8',\n        sort: 9,\n        added: 'FIX.5.0',\n        addedEP: '61',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Good Through Crossing\\n\\n\\n                        An order that is valid up till and including a crossing phase.]',\n        tag: 59,\n        type: 'char',\n        codeSet: 'TimeInForceCodeSet',\n    },\n    {\n        id: '59010',\n        name: 'AtCrossing',\n        value: '9',\n        sort: 10,\n        added: 'FIX.5.0',\n        addedEP: '61',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'At Crossing\\n\\n\\n                        An order that is valid only during crossing (auction) phases. The order is valid during the day or up to and including a specified trading (sub) session.',\n        tag: 59,\n        type: 'char',\n        codeSet: 'TimeInForceCodeSet',\n    },\n    {\n        id: '59011',\n        name: 'GoodForTime',\n        value: 'A',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Good for Time (GFT)\\n\\n\\n                        An order that is valid for a pre-defined time period expressed with ExposureDuration(1629) and (optionally) ExposureDurationUnit(1916).',\n        tag: 59,\n        type: 'char',\n        codeSet: 'TimeInForceCodeSet',\n    },\n    {\n        id: '59012',\n        name: 'GoodForAuction',\n        value: 'B',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Good for Auction (GFA)\\n\\n\\n                        An order that is valid for an auction initiated by a trading firm (see AuctionType(1803) for examples.',\n        tag: 59,\n        type: 'char',\n        codeSet: 'TimeInForceCodeSet',\n    },\n    {\n        id: '59013',\n        name: 'GoodForMonth',\n        value: 'C',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Good for this Month (GFM)\\n\\n\\n                        An order that is valid until the end of the current month, i.e. from the time of order submission until the end of the last trading day of the current month.',\n        tag: 59,\n        type: 'char',\n        codeSet: 'TimeInForceCodeSet',\n    },\n    {\n        id: '61001',\n        name: 'Normal',\n        value: '0',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'Normal',\n        tag: 61,\n        type: 'char',\n        codeSet: 'UrgencyCodeSet',\n    },\n    {\n        id: '61002',\n        name: 'Flash',\n        value: '1',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Flash',\n        tag: 61,\n        type: 'char',\n        codeSet: 'UrgencyCodeSet',\n    },\n    {\n        id: '61003',\n        name: 'Background',\n        value: '2',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Background',\n        tag: 61,\n        type: 'char',\n        codeSet: 'UrgencyCodeSet',\n    },\n    {\n        id: '63001',\n        name: 'Regular',\n        value: '0',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'Regular / FX Spot settlement (T+1 or T+2 depending on currency)',\n        tag: 63,\n        type: 'String',\n        codeSet: 'SettlTypeCodeSet',\n    },\n    {\n        id: '63002',\n        name: 'Cash',\n        value: '1',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Cash (TOD / T+0)',\n        tag: 63,\n        type: 'String',\n        codeSet: 'SettlTypeCodeSet',\n    },\n    {\n        id: '63003',\n        name: 'NextDay',\n        value: '2',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Next Day (TOM / T+1)',\n        tag: 63,\n        type: 'String',\n        codeSet: 'SettlTypeCodeSet',\n    },\n    {\n        id: '63004',\n        name: 'TPlus2',\n        value: '3',\n        sort: 4,\n        added: 'FIX.2.7',\n        description: 'T+2',\n        tag: 63,\n        type: 'String',\n        codeSet: 'SettlTypeCodeSet',\n    },\n    {\n        id: '63005',\n        name: 'TPlus3',\n        value: '4',\n        sort: 5,\n        added: 'FIX.2.7',\n        description: 'T+3',\n        tag: 63,\n        type: 'String',\n        codeSet: 'SettlTypeCodeSet',\n    },\n    {\n        id: '63006',\n        name: 'TPlus4',\n        value: '5',\n        sort: 6,\n        added: 'FIX.2.7',\n        description: 'T+4',\n        tag: 63,\n        type: 'String',\n        codeSet: 'SettlTypeCodeSet',\n    },\n    {\n        id: '63007',\n        name: 'Future',\n        value: '6',\n        sort: 7,\n        added: 'FIX.2.7',\n        description: 'Future',\n        tag: 63,\n        type: 'String',\n        codeSet: 'SettlTypeCodeSet',\n    },\n    {\n        id: '63008',\n        name: 'WhenAndIfIssued',\n        value: '7',\n        sort: 8,\n        added: 'FIX.2.7',\n        description: 'When And If Issued',\n        tag: 63,\n        type: 'String',\n        codeSet: 'SettlTypeCodeSet',\n    },\n    {\n        id: '63009',\n        name: 'SellersOption',\n        value: '8',\n        sort: 9,\n        added: 'FIX.2.7',\n        description: 'Sellers Option',\n        tag: 63,\n        type: 'String',\n        codeSet: 'SettlTypeCodeSet',\n    },\n    {\n        id: '63010',\n        name: 'TPlus5',\n        value: '9',\n        sort: 10,\n        added: 'FIX.3.0',\n        description: 'T+5',\n        tag: 63,\n        type: 'String',\n        codeSet: 'SettlTypeCodeSet',\n    },\n    {\n        id: '63011',\n        name: 'BrokenDate',\n        value: 'B',\n        sort: 12,\n        added: 'FIX.4.4',\n        addedEP: '25',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Broken date\\n\\n\\n                        Use within FX to specify a non-standard tenor. The use of SettlDate(64) is required to specify the actual settlement date when SettlType(63) = B (Broken date).',\n        tag: 63,\n        type: 'String',\n        codeSet: 'SettlTypeCodeSet',\n    },\n    {\n        id: '63012',\n        name: 'FXSpotNextSettlement',\n        value: 'C',\n        sort: 99,\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description: 'FX Spot Next settlement (Spot+1, aka next day)',\n        tag: 63,\n        type: 'String',\n        codeSet: 'SettlTypeCodeSet',\n    },\n    {\n        id: '65001',\n        name: 'EUCPWithLumpSumInterest',\n        value: 'CD',\n        sort: 1,\n        group: 'For Fixed Income',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'EUCP with lump-sum interest rather than discount price',\n        tag: 65,\n        type: 'String',\n        codeSet: 'SymbolSfxCodeSet',\n    },\n    {\n        id: '65002',\n        name: 'WhenIssued',\n        value: 'WI',\n        sort: 2,\n        group: 'For Fixed Income',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: '\"When Issued\" for a security to be reissued under an old CUSIP or ISIN',\n        tag: 65,\n        type: 'String',\n        codeSet: 'SymbolSfxCodeSet',\n    },\n    {\n        id: '71001',\n        name: 'New',\n        value: '0',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'New',\n        tag: 71,\n        type: 'char',\n        codeSet: 'AllocTransTypeCodeSet',\n    },\n    {\n        id: '71002',\n        name: 'Replace',\n        value: '1',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Replace',\n        tag: 71,\n        type: 'char',\n        codeSet: 'AllocTransTypeCodeSet',\n    },\n    {\n        id: '71003',\n        name: 'Cancel',\n        value: '2',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Cancel',\n        tag: 71,\n        type: 'char',\n        codeSet: 'AllocTransTypeCodeSet',\n    },\n    {\n        id: '71004',\n        name: 'Reversal',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Reversal',\n        tag: 71,\n        type: 'char',\n        codeSet: 'AllocTransTypeCodeSet',\n    },\n    {\n        id: '77001',\n        name: 'Close',\n        value: 'C',\n        sort: 1,\n        added: 'FIX.4.1',\n        description: 'Close',\n        tag: 77,\n        type: 'char',\n        codeSet: 'PositionEffectCodeSet',\n    },\n    {\n        id: '77002',\n        name: 'FIFO',\n        value: 'F',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'FIFO',\n        tag: 77,\n        type: 'char',\n        codeSet: 'PositionEffectCodeSet',\n    },\n    {\n        id: '77003',\n        name: 'Open',\n        value: 'O',\n        sort: 3,\n        added: 'FIX.4.1',\n        description: 'Open',\n        tag: 77,\n        type: 'char',\n        codeSet: 'PositionEffectCodeSet',\n    },\n    {\n        id: '77004',\n        name: 'Rolled',\n        value: 'R',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Rolled',\n        tag: 77,\n        type: 'char',\n        codeSet: 'PositionEffectCodeSet',\n    },\n    {\n        id: '77005',\n        name: 'CloseButNotifyOnOpen',\n        value: 'N',\n        sort: 5,\n        added: 'FIX.5.0',\n        addedEP: '61',\n        description: 'Close but notify on open',\n        tag: 77,\n        type: 'char',\n        codeSet: 'PositionEffectCodeSet',\n    },\n    {\n        id: '77006',\n        name: 'Default',\n        value: 'D',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '61',\n        description: 'Default',\n        tag: 77,\n        type: 'char',\n        codeSet: 'PositionEffectCodeSet',\n    },\n    {\n        id: '81001',\n        name: 'Regular',\n        value: '0',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'Regular',\n        tag: 81,\n        type: 'char',\n        codeSet: 'ProcessCodeCodeSet',\n    },\n    {\n        id: '81002',\n        name: 'SoftDollar',\n        value: '1',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Soft Dollar',\n        tag: 81,\n        type: 'char',\n        codeSet: 'ProcessCodeCodeSet',\n    },\n    {\n        id: '81003',\n        name: 'StepIn',\n        value: '2',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Step-In',\n        tag: 81,\n        type: 'char',\n        codeSet: 'ProcessCodeCodeSet',\n    },\n    {\n        id: '81004',\n        name: 'StepOut',\n        value: '3',\n        sort: 4,\n        added: 'FIX.2.7',\n        description: 'Step-Out',\n        tag: 81,\n        type: 'char',\n        codeSet: 'ProcessCodeCodeSet',\n    },\n    {\n        id: '81005',\n        name: 'SoftDollarStepIn',\n        value: '4',\n        sort: 5,\n        added: 'FIX.2.7',\n        description: 'Soft-dollar Step-In',\n        tag: 81,\n        type: 'char',\n        codeSet: 'ProcessCodeCodeSet',\n    },\n    {\n        id: '81006',\n        name: 'SoftDollarStepOut',\n        value: '5',\n        sort: 6,\n        added: 'FIX.2.7',\n        description: 'Soft-dollar Step-Out',\n        tag: 81,\n        type: 'char',\n        codeSet: 'ProcessCodeCodeSet',\n    },\n    {\n        id: '81007',\n        name: 'PlanSponsor',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.0',\n        description: 'Plan Sponsor',\n        tag: 81,\n        type: 'char',\n        codeSet: 'ProcessCodeCodeSet',\n    },\n    {\n        id: '87001',\n        name: 'Accepted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Accepted (successfully processed)',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87002',\n        name: 'BlockLevelReject',\n        value: '1',\n        sort: 1,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Block level reject',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87003',\n        name: 'AccountLevelReject',\n        value: '2',\n        sort: 2,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Account level reject',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87004',\n        name: 'Received',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Received (received not yet processed)',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87005',\n        name: 'Incomplete',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Incomplete',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87006',\n        name: 'RejectedByIntermediary',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Rejected by intermediary',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87007',\n        name: 'AllocationPending',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Allocation pending',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87008',\n        name: 'Reversed',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Reversed',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87009',\n        name: 'CancelledByIntermediary',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Cancelled by intermediary',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87010',\n        name: 'Claimed',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Claimed',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87011',\n        name: 'Refused',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Refused',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87012',\n        name: 'PendingGiveUpApproval',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Pending give-up approval',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87013',\n        name: 'Cancelled',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Cancelled',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87014',\n        name: 'PendingTakeUpApproval',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Pending take-up approval',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '87015',\n        name: 'ReversalPending',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Reversal pending',\n        tag: 87,\n        type: 'int',\n        codeSet: 'AllocStatusCodeSet',\n    },\n    {\n        id: '88001',\n        name: 'UnknownAccount',\n        value: '0',\n        sort: 1,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '170',\n        description: 'Unknown or missing account(s)',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88002',\n        name: 'IncorrectQuantity',\n        value: '1',\n        sort: 2,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '170',\n        description: 'Incorrect or missing block quantity',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88003',\n        name: 'IncorrectAveragePrice',\n        value: '2',\n        sort: 3,\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Incorrect or missing average price',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88004',\n        name: 'UnknownExecutingBrokerMnemonic',\n        value: '3',\n        sort: 4,\n        added: 'FIX.2.7',\n        description: 'Unknown executing broker mnemonic',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88005',\n        name: 'CommissionDifference',\n        value: '4',\n        sort: 5,\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '170',\n        description: 'Incorrect or missing commission',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88006',\n        name: 'UnknownOrderID',\n        value: '5',\n        sort: 6,\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Unknown OrderID(37)',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88007',\n        name: 'UnknownListID',\n        value: '6',\n        sort: 7,\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Unknown ListID(66)',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88008',\n        name: 'OtherSeeText',\n        value: '7',\n        sort: 8,\n        added: 'FIX.2.7',\n        deprecated: 'FIX.Latest',\n        deprecatedEP: '298',\n        description: 'Other (further in Text (58))',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88009',\n        name: 'IncorrectAllocatedQuantity',\n        value: '8',\n        sort: 9,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '170',\n        description: 'Incorrect or missing allocated quantity',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88010',\n        name: 'CalculationDifference',\n        value: '9',\n        sort: 10,\n        added: 'FIX.4.4',\n        description: 'Calculation difference',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88011',\n        name: 'UnknownOrStaleExecID',\n        value: '10',\n        sort: 11,\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Unknown or Stale ExecID(17)',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88012',\n        name: 'MismatchedData',\n        value: '11',\n        sort: 12,\n        added: 'FIX.4.4',\n        description: 'Mismatched data',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88013',\n        name: 'UnknownClOrdID',\n        value: '12',\n        sort: 13,\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Unknown ClOrdID(11)',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88014',\n        name: 'WarehouseRequestRejected',\n        value: '13',\n        sort: 14,\n        added: 'FIX.4.4',\n        description: 'Warehouse request rejected',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88015',\n        name: 'DuplicateOrMissingIndividualAllocID',\n        value: '14',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Duplicate or missing IndividualAllocID(467)',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88016',\n        name: 'TradeNotRecognized',\n        value: '15',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Trade not recognized',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88017',\n        name: 'DuplicateTrade',\n        value: '16',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Trade previously allocated',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88018',\n        name: 'IncorrectOrMissingInstrument',\n        value: '17',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Incorrect or missing instrument',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88019',\n        name: 'IncorrectOrMissingSettlDate',\n        value: '18',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Incorrect or missing settlement date',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88020',\n        name: 'IncorrectOrMissingFundIDOrFundName',\n        value: '19',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Incorrect or missing fund ID or fund name',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88021',\n        name: 'IncorrectOrMissingSettlInstructions',\n        value: '20',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Incorrect or missing settlement instructions',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88022',\n        name: 'IncorrectOrMissingFees',\n        value: '21',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Incorrect or missing fees',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88023',\n        name: 'IncorrectOrMissingTax',\n        value: '22',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Incorrect or missing tax',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88024',\n        name: 'UnknownOrMissingParty',\n        value: '23',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Unknown or missing party',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88025',\n        name: 'IncorrectOrMissingSide',\n        value: '24',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Incorrect or missing side',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88026',\n        name: 'IncorrectOrMissingNetMoney',\n        value: '25',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Incorrect or missing net-money',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88027',\n        name: 'IncorrectOrMissingTradeDate',\n        value: '26',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Incorrect or missing trade date',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88028',\n        name: 'IncorrectOrMissingSettlCcyInstructions',\n        value: '27',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Incorrect or missing settlement currency instructions',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88029',\n        name: 'IncorrectOrMissingProcessCode',\n        value: '28',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Incorrrect or missing ProcessCode(81)',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '88030',\n        name: 'Other',\n        value: '99',\n        sort: 100,\n        added: 'FIX.5.0SP1',\n        addedEP: '95',\n        updated: 'FIX.Latest',\n        updatedEP: '298',\n        description: 'Other\\n\\nUse RejectText(1328) for further reject reasons.',\n        tag: 88,\n        type: 'int',\n        codeSet: 'AllocRejCodeCodeSet',\n    },\n    {\n        id: '94001',\n        name: 'New',\n        value: '0',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'New',\n        tag: 94,\n        type: 'char',\n        codeSet: 'EmailTypeCodeSet',\n    },\n    {\n        id: '94002',\n        name: 'Reply',\n        value: '1',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Reply',\n        tag: 94,\n        type: 'char',\n        codeSet: 'EmailTypeCodeSet',\n    },\n    {\n        id: '94003',\n        name: 'AdminReply',\n        value: '2',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Admin Reply',\n        tag: 94,\n        type: 'char',\n        codeSet: 'EmailTypeCodeSet',\n    },\n    {\n        id: '97001',\n        name: 'OriginalTransmission',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.1',\n        description: 'Original Transmission',\n        tag: 97,\n        type: 'Boolean',\n        codeSet: 'PossResendCodeSet',\n    },\n    {\n        id: '97002',\n        name: 'PossibleResend',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.1',\n        description: 'Possible Resend',\n        tag: 97,\n        type: 'Boolean',\n        codeSet: 'PossResendCodeSet',\n    },\n    {\n        id: '98001',\n        name: 'None',\n        value: '0',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'None / Other',\n        tag: 98,\n        type: 'int',\n        codeSet: 'EncryptMethodCodeSet',\n    },\n    {\n        id: '98002',\n        name: 'PKCS',\n        value: '1',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'PKCS (Proprietary)',\n        tag: 98,\n        type: 'int',\n        codeSet: 'EncryptMethodCodeSet',\n    },\n    {\n        id: '98003',\n        name: 'DES',\n        value: '2',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'DES (ECB Mode)',\n        tag: 98,\n        type: 'int',\n        codeSet: 'EncryptMethodCodeSet',\n    },\n    {\n        id: '98004',\n        name: 'PKCSDES',\n        value: '3',\n        sort: 4,\n        added: 'FIX.2.7',\n        description: 'PKCS / DES (Proprietary)',\n        tag: 98,\n        type: 'int',\n        codeSet: 'EncryptMethodCodeSet',\n    },\n    {\n        id: '98005',\n        name: 'PGPDES',\n        value: '4',\n        sort: 5,\n        added: 'FIX.3.0',\n        description: 'PGP / DES (Defunct)',\n        tag: 98,\n        type: 'int',\n        codeSet: 'EncryptMethodCodeSet',\n    },\n    {\n        id: '98006',\n        name: 'PGPDESMD5',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.0',\n        description: 'PGP / DES-MD5 (See app note on FIX web site)',\n        tag: 98,\n        type: 'int',\n        codeSet: 'EncryptMethodCodeSet',\n    },\n    {\n        id: '98007',\n        name: 'PEM',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.0',\n        description: 'PEM / DES-MD5 (see app note on FIX web site)',\n        tag: 98,\n        type: 'int',\n        codeSet: 'EncryptMethodCodeSet',\n    },\n    {\n        id: '102001',\n        name: 'TooLateToCancel',\n        value: '0',\n        sort: 1,\n        added: 'FIX.2.7',\n        description: 'Too late to cancel',\n        tag: 102,\n        type: 'int',\n        codeSet: 'CxlRejReasonCodeSet',\n    },\n    {\n        id: '102002',\n        name: 'UnknownOrder',\n        value: '1',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Unknown order',\n        tag: 102,\n        type: 'int',\n        codeSet: 'CxlRejReasonCodeSet',\n    },\n    {\n        id: '102003',\n        name: 'BrokerCredit',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Broker / Exchange Option',\n        tag: 102,\n        type: 'int',\n        codeSet: 'CxlRejReasonCodeSet',\n    },\n    {\n        id: '102004',\n        name: 'OrderAlreadyInPendingStatus',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Order already in Pending Cancel or Pending Replace status',\n        tag: 102,\n        type: 'int',\n        codeSet: 'CxlRejReasonCodeSet',\n    },\n    {\n        id: '102005',\n        name: 'UnableToProcessOrderMassCancelRequest',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Unable to process Order Mass Cancel Request',\n        tag: 102,\n        type: 'int',\n        codeSet: 'CxlRejReasonCodeSet',\n    },\n    {\n        id: '102006',\n        name: 'OrigOrdModTime',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'OrigOrdModTime (586) did not match last TransactTime (60) of order',\n        tag: 102,\n        type: 'int',\n        codeSet: 'CxlRejReasonCodeSet',\n    },\n    {\n        id: '102007',\n        name: 'DuplicateClOrdID',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Duplicate ClOrdID (11) received',\n        tag: 102,\n        type: 'int',\n        codeSet: 'CxlRejReasonCodeSet',\n    },\n    {\n        id: '102008',\n        name: 'PriceExceedsCurrentPrice',\n        value: '7',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Price exceeds current price',\n        tag: 102,\n        type: 'int',\n        codeSet: 'CxlRejReasonCodeSet',\n    },\n    {\n        id: '102009',\n        name: 'PriceExceedsCurrentPriceBand',\n        value: '8',\n        sort: 9,\n        added: 'FIX.5.0',\n        addedEP: '43',\n        description: 'Price exceeds current price band',\n        tag: 102,\n        type: 'int',\n        codeSet: 'CxlRejReasonCodeSet',\n    },\n    {\n        id: '102010',\n        name: 'InvalidPriceIncrement',\n        value: '18',\n        sort: 18,\n        added: 'FIX.4.4',\n        addedEP: '6',\n        description: 'Invalid price increment',\n        tag: 102,\n        type: 'int',\n        codeSet: 'CxlRejReasonCodeSet',\n    },\n    {\n        id: '102011',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 102,\n        type: 'int',\n        codeSet: 'CxlRejReasonCodeSet',\n    },\n    {\n        id: '103001',\n        name: 'BrokerCredit',\n        value: '0',\n        sort: 0,\n        added: 'FIX.2.7',\n        description: 'Broker / Exchange option',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103002',\n        name: 'UnknownSymbol',\n        value: '1',\n        sort: 1,\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'Unknown symbol\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category F, order rejected due to the product not being supported, e.g. by the specific venue, tenor restrictions on the market participant(s) involved.',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103003',\n        name: 'ExchangeClosed',\n        value: '2',\n        sort: 2,\n        added: 'FIX.2.7',\n        description: 'Exchange closed',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103004',\n        name: 'OrderExceedsLimit',\n        value: '3',\n        sort: 3,\n        added: 'FIX.2.7',\n        description: 'Order exceeds limit',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103005',\n        name: 'TooLateToEnter',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.0',\n        description: 'Too late to enter',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103006',\n        name: 'UnknownOrder',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.1',\n        description: 'Unknown order',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103007',\n        name: 'DuplicateOrder',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.1',\n        description: 'Duplicate Order (e.g. dupe ClOrdID)',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103008',\n        name: 'DuplicateOfAVerballyCommunicatedOrder',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.2',\n        description: 'Duplicate of a verbally communicated order',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103009',\n        name: 'StaleOrder',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.2',\n        description: 'Stale order',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103010',\n        name: 'TradeAlongRequired',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.3',\n        description: 'Trade along required',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103011',\n        name: 'InvalidInvestorID',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.3',\n        description: 'Invalid Investor ID',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103012',\n        name: 'UnsupportedOrderCharacteristic',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: 'Unsupported order characteristic',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103013',\n        name: 'SurveillanceOption',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Surveillance option',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103014',\n        name: 'IncorrectQuantity',\n        value: '13',\n        sort: 13,\n        added: 'FIX.4.4',\n        description: 'Incorrect quantity',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103015',\n        name: 'IncorrectAllocatedQuantity',\n        value: '14',\n        sort: 14,\n        added: 'FIX.4.4',\n        description: 'Incorrect allocated quantity',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103016',\n        name: 'UnknownAccount',\n        value: '15',\n        sort: 15,\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'Unknown account(s)\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category D, order rejected due to static data when the account/fund is not setup or unknown.',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103017',\n        name: 'PriceExceedsCurrentPriceBand',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Price exceeds current price band',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103018',\n        name: 'InvalidPriceIncrement',\n        value: '18',\n        sort: 18,\n        added: 'FIX.4.4',\n        addedEP: '6',\n        description: 'Invalid price increment',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103019',\n        name: 'ReferencePriceNotAvailable',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '134',\n        description: 'Reference price not available',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103020',\n        name: 'NotionalValueExceedsThreshold',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '134',\n        description: 'Notional value exceeds threshold',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103021',\n        name: 'AlgorithmRiskThresholdBreached',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '149',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Algorithm risk threshold breached\\n\\n\\n                        A sell-side broker algorithm has detected that a risk limit has been breached which requires further communication with the client. Used in conjunction with Text(58) to convey the details of the specific event.',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103022',\n        name: 'ShortSellNotPermitted',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '164',\n        description: 'Short sell not permitted',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103023',\n        name: 'ShortSellSecurityPreBorrowRestriction',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '164',\n        description: 'Short sell rejected due to security pre-borrow restriction',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103024',\n        name: 'ShortSellAccountPreBorrowRestriction',\n        value: '24',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '164',\n        description: 'Short sell rejected due to account pre-borrow restriction',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103025',\n        name: 'InsufficientCreditLimit',\n        value: '25',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'Insufficient credit limit\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category C, order rejected due to credit limit exceeded or not in place.',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103026',\n        name: 'ExceededClipSizeLimit',\n        value: '26',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Exceeded clip size limit',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103027',\n        name: 'ExceededMaxNotionalOrderAmt',\n        value: '27',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Exceeded maximum notional order amount',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103028',\n        name: 'ExceededDV01PV01Limit',\n        value: '28',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Exceeded DV01/PV01 limit',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103029',\n        name: 'ExceededCS01Limit',\n        value: '29',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Exceeded CS01 limit',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103030',\n        name: 'LastLook',\n        value: '30',\n        sort: 30,\n        added: 'FIX.Latest',\n        addedEP: '290',\n        description:\n            'Last look\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category A-1, order rejected due to a \"last look\".',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103031',\n        name: 'LastLookLatency',\n        value: '31',\n        sort: 31,\n        added: 'FIX.Latest',\n        addedEP: '290',\n        description:\n            'Last look latency\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category A-2, order rejected due to \"last look latency\", therefore price or liquidity is unavailable.',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103032',\n        name: 'UnavailablePriceLiquidity',\n        value: '32',\n        sort: 32,\n        added: 'FIX.Latest',\n        addedEP: '290',\n        description:\n            'Unavailable price or liquidity\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category B, the order was not subjected to last look but rejected due to pricing or liquidity being no longer available for execution.',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103033',\n        name: 'InvalidMissingEntitlements',\n        value: '33',\n        sort: 33,\n        added: 'FIX.Latest',\n        addedEP: '290',\n        description:\n            'Invalid or missing entitlements\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category D, order rejected due to static/reference data error where counterparty is not permissioned or entitled.',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '103034',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'Other\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category E, order rejected due to other exceptions. Further detail may be provided in RejectText(1328) or Text(58), with preference for RejectText(1328) if field is present in the message.',\n        tag: 103,\n        type: 'int',\n        codeSet: 'OrdRejReasonCodeSet',\n    },\n    {\n        id: '104001',\n        name: 'AllOrNone',\n        value: 'A',\n        sort: 1,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'All or None (AON)',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104002',\n        name: 'MarketOnClose',\n        value: 'B',\n        sort: 2,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'Market On Close (MOC) (held to close)',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104003',\n        name: 'AtTheClose',\n        value: 'C',\n        sort: 3,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'At the close (around/not held to close)',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104004',\n        name: 'VWAP',\n        value: 'D',\n        sort: 4,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'VWAP (Volume Weighted Average Price)',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104005',\n        name: 'Axe',\n        value: 'E',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '184',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description:\n            'Axe\\n\\n\\n                        Indicates that a quote is an Axe, without specifying a side preference. Mutually exclusive with F(Axe on bid) and G(Axe on offer).',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104006',\n        name: 'AxeOnBid',\n        value: 'F',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '184',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description:\n            'Axe on bid\\n\\n\\n                        Indicates that a quote is an Axe, with a preference to execute on the bid side. Mutually exclusive with E(Axe) and G (Axe on offer)',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104007',\n        name: 'AxeOnOffer',\n        value: 'G',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '184',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description:\n            'Axe on offer\\n\\n\\n                        Indicates that a quote is an Axe, with a preference to execute on the offer side. Mutually exclusive with E(Axe) and F (Axe on bid)',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104008',\n        name: 'ClientNaturalWorking',\n        value: 'H',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '225',\n        description:\n            'Client natural working\\n\\n\\n                        With reference to the AFME/IA Framework for Indications of Interest, this is to be used to denote IOIs of type C2 \u2013 Client Natural (Working). A client should be able to seek verification (from IOI publisher\u2019s management/compliance) that, for any C2 IOIs received, there was a corresponding live client order for at least the advertised size prior to the IOI being generated. Resulting trades are expected to be of a riskless nature.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104009',\n        name: 'InTouchWith',\n        value: 'I',\n        sort: 9,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description:\n            'In touch with\\n\\n\\n                        With reference to the AFME/IA Framework for Indications of Interest, this is to be used to denote IOIs of type P1 - Potential. Post-execution, a client should be able to seek verification (from IOI publisher\u2019s management/ compliance) that, for any P1 IOIs received and executed against, there was by time of the execution, an opposing specific client order. Resulting trades are expected to be of a riskless nature. If the anticipated client order does not materialise, and the broker elects to commit capital, this must be disclosed prior to execution.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104010',\n        name: 'PositionWanted',\n        value: 'J',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '225',\n        description:\n            'Position wanted\\n\\n\\n                        With reference to the AFME/IA Framework for Indications of Interest, this is to be used to denote IOIs of type H2 \u2013 Position Wanted. Brokers will be likely be sourcing liquidity and therefore may advertise the size of IOI they wish; however, clients can expect the broker to honour the size of IOI shown. The presumption is that there is no intent to immediately unwind the position without notification, however, brokers may provide additional granularity to the category and may offer bilateral post trade commitments. Brokers will also offer clients a feedback mechanism.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104011',\n        name: 'MarketMaking',\n        value: 'K',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '225',\n        description:\n            'Market making\\n\\n\\n                        With reference to the AFME/IA Framework for Indications of Interest, this is to be used to denote IOIs of type H3 \u2013 Market Making, no enforcement is required.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104012',\n        name: 'Limit',\n        value: 'L',\n        sort: 12,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'Limit',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104013',\n        name: 'MoreBehind',\n        value: 'M',\n        sort: 13,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'More Behind',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104014',\n        name: 'ClientNaturalBlock',\n        value: 'N',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '225',\n        description:\n            'Client natural block\\n\\n\\n                        With reference to the AFME/IA Framework for Indications of Interest, this is to be used to denote IOIs of type C1 - Client Natural (Block). A client should be able to seek verification (from IOI publisher\u2019s management/compliance) that, for any C1 IOIs received, there was a corresponding live client order for at least the advertised size prior to the IOI being generated. Resulting trades are expected to be of a riskless nature.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104015',\n        name: 'AtTheOpen',\n        value: 'O',\n        sort: 15,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'At the Open',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104016',\n        name: 'TakingAPosition',\n        value: 'P',\n        sort: 16,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'Taking a Position',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104017',\n        name: 'AtTheMarket',\n        value: 'Q',\n        sort: 17,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'At the Market (previously called Current Quote)',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104018',\n        name: 'ReadyToTrade',\n        value: 'R',\n        sort: 18,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'Ready to Trade',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104019',\n        name: 'PortfolioShown',\n        value: 'S',\n        sort: 19,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'Inventory or Portfolio Shown',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104020',\n        name: 'ThroughTheDay',\n        value: 'T',\n        sort: 20,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'Through the Day',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104021',\n        name: 'Unwind',\n        value: 'U',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '225',\n        description:\n            'Unwind\\n\\n\\n                        With reference to the AFME/IA Framework for Indications of Interest, this is to be used to denote IOIs of type H1 - Unwind. Brokers will be responsible for ensuring that the size of the IOI reflects the actual house position in the relevant business unit and should not inflate the size of the IOI. The presumption is that there is no intent to immediately replace the position without notification, however, brokers may provide additional granularity to the category and may offer bilateral post trade commitments. Brokers will also offer clients a feedback mechanism.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104022',\n        name: 'Versus',\n        value: 'V',\n        sort: 22,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'Versus',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104023',\n        name: 'Indication',\n        value: 'W',\n        sort: 23,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'Indication - Working Away',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104024',\n        name: 'CrossingOpportunity',\n        value: 'X',\n        sort: 24,\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'Crossing Opportunity',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104025',\n        name: 'AtTheMidpoint',\n        value: 'Y',\n        sort: 25,\n        added: 'FIX.4.1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'At the Midpoint',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104026',\n        name: 'PreOpen',\n        value: 'Z',\n        sort: 26,\n        added: 'FIX.4.1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '225',\n        description: 'Pre-open',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104027',\n        name: 'QuantityNegotiable',\n        value: '1',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '226',\n        description:\n            'Quantity is negotiable\\n\\n\\n                        When specified, the dealer may counter with a reduced quantity in its Quotes in response to QuoteRequest(35=R). All-or-none if omitted.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104028',\n        name: 'AllowLateBids',\n        value: '2',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '226',\n        description:\n            'Allow late bids\\n\\n\\n                        When specified in QuoteRequest(35=R) the dealer may submit quotes after curtain time has elapsed.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104029',\n        name: 'ImmediateOrCounter',\n        value: '3',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '226',\n        description:\n            'Immediate or counter\\n\\n\\n                        When specified, the buy-side customer is permitted to counter a firm quote during wiretime.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104030',\n        name: 'AutoTrade',\n        value: '4',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '226',\n        description:\n            'Auto trade\\n\\n\\n                        Trade is in an auto-trading mode whereby the best quote that satisfies user criteria as determined by the trading platform will be accepted automatically.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104031',\n        name: 'AutomaticSpot',\n        value: 'a',\n        sort: 37,\n        added: 'FIX.5.0SP2',\n        addedEP: '226',\n        description:\n            'Automatic spot\\n\\n\\n                        At completion of price negotiation based on spread the trading platform will propose a benchmark spot price which may be filled immediately by the dealer or countered.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104032',\n        name: 'PlatformCalculatedSpot',\n        value: 'b',\n        sort: 38,\n        added: 'FIX.5.0SP2',\n        addedEP: '226',\n        description:\n            'Platform calculated spot\\n\\n\\n                        At completion of price negotiation based on spread the trading platform will supply a benchmark spot price and immediately complete the trade reporting fill. There is no dealer last look.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104033',\n        name: 'OutsideSpread',\n        value: 'c',\n        sort: 39,\n        added: 'FIX.5.0SP2',\n        addedEP: '225',\n        description:\n            'Outside spread\\n\\n\\n                        The IOI is identifiable outside the current bid/offer.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104034',\n        name: 'DeferredSpot',\n        value: 'd',\n        sort: 40,\n        added: 'FIX.5.0SP2',\n        addedEP: '226',\n        description:\n            'Deferred spot\\n\\n\\n                        At a future time after completion of price negotiation based on spread and reported in StrikeTime(443) the trading platform will propose a benchmark spot price which may be filled immediately by the dealer or countered.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '104035',\n        name: 'NegotiatedSpot',\n        value: 'n',\n        sort: 50,\n        added: 'FIX.5.0SP2',\n        addedEP: '226',\n        description:\n            'Negotiated spot\\n\\n\\n                        Once price negotiation based on spread is completed negotiation of the benchmark spot price proceeds immediately.',\n        tag: 104,\n        type: 'char',\n        codeSet: 'IOIQualifierCodeSet',\n    },\n    {\n        id: '113001',\n        name: 'SenderReports',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.3.0',\n        description: 'Indicates the party sending message will report trade',\n        tag: 113,\n        type: 'Boolean',\n        codeSet: 'ReportToExchCodeSet',\n    },\n    {\n        id: '113002',\n        name: 'ReceiverReports',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.3.0',\n        description: 'Indicates the party receiving message must report trade',\n        tag: 113,\n        type: 'Boolean',\n        codeSet: 'ReportToExchCodeSet',\n    },\n    {\n        id: '114001',\n        name: 'No',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.0',\n        description: 'Indicates the broker is not required to locate',\n        tag: 114,\n        type: 'Boolean',\n        codeSet: 'LocateReqdCodeSet',\n    },\n    {\n        id: '114002',\n        name: 'Yes',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.0',\n        description: 'Indicates the broker is responsible for locating the stock',\n        tag: 114,\n        type: 'Boolean',\n        codeSet: 'LocateReqdCodeSet',\n    },\n    {\n        id: '121001',\n        name: 'DoNotExecuteForexAfterSecurityTrade',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.0',\n        description: 'Do Not Execute Forex After Security Trade',\n        tag: 121,\n        type: 'Boolean',\n        codeSet: 'ForexReqCodeSet',\n    },\n    {\n        id: '121002',\n        name: 'ExecuteForexAfterSecurityTrade',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.0',\n        description: 'Execute Forex After Security Trade',\n        tag: 121,\n        type: 'Boolean',\n        codeSet: 'ForexReqCodeSet',\n    },\n    {\n        id: '123001',\n        name: 'SequenceReset',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.0',\n        description: 'Sequence Reset, Ignore Msg Seq Num (N/A For FIXML - Not Used)',\n        tag: 123,\n        type: 'Boolean',\n        codeSet: 'GapFillFlagCodeSet',\n    },\n    {\n        id: '123002',\n        name: 'GapFillMessage',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.0',\n        description: 'Gap Fill Message, Msg Seq Num Field Valid',\n        tag: 123,\n        type: 'Boolean',\n        codeSet: 'GapFillFlagCodeSet',\n    },\n    {\n        id: '127001',\n        name: 'UnknownSymbol',\n        value: 'A',\n        sort: 1,\n        added: 'FIX.4.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description: 'Unknown security',\n        tag: 127,\n        type: 'char',\n        codeSet: 'DKReasonCodeSet',\n    },\n    {\n        id: '127002',\n        name: 'WrongSide',\n        value: 'B',\n        sort: 2,\n        added: 'FIX.4.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description: 'Wrong side',\n        tag: 127,\n        type: 'char',\n        codeSet: 'DKReasonCodeSet',\n    },\n    {\n        id: '127003',\n        name: 'QuantityExceedsOrder',\n        value: 'C',\n        sort: 3,\n        added: 'FIX.4.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description: 'Quantity exceeds order',\n        tag: 127,\n        type: 'char',\n        codeSet: 'DKReasonCodeSet',\n    },\n    {\n        id: '127004',\n        name: 'NoMatchingOrder',\n        value: 'D',\n        sort: 4,\n        added: 'FIX.4.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description: 'No matching order',\n        tag: 127,\n        type: 'char',\n        codeSet: 'DKReasonCodeSet',\n    },\n    {\n        id: '127005',\n        name: 'PriceExceedsLimit',\n        value: 'E',\n        sort: 5,\n        added: 'FIX.4.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description: 'Price exceeds limit',\n        tag: 127,\n        type: 'char',\n        codeSet: 'DKReasonCodeSet',\n    },\n    {\n        id: '127006',\n        name: 'CalculationDifference',\n        value: 'F',\n        sort: 6,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description: 'Calculation difference',\n        tag: 127,\n        type: 'char',\n        codeSet: 'DKReasonCodeSet',\n    },\n    {\n        id: '127007',\n        name: 'NoMatchingExecutionReport',\n        value: 'G',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'No matching ExecutionReport(35=8)',\n        tag: 127,\n        type: 'char',\n        codeSet: 'DKReasonCodeSet',\n    },\n    {\n        id: '127008',\n        name: 'Other',\n        value: 'Z',\n        sort: 100,\n        added: 'FIX.4.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description: 'Other',\n        tag: 127,\n        type: 'char',\n        codeSet: 'DKReasonCodeSet',\n    },\n    {\n        id: '130001',\n        name: 'NotNatural',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.0',\n        description: 'Not Natural',\n        tag: 130,\n        type: 'Boolean',\n        codeSet: 'IOINaturalFlagCodeSet',\n    },\n    {\n        id: '130002',\n        name: 'Natural',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.0',\n        description: 'Natural',\n        tag: 130,\n        type: 'Boolean',\n        codeSet: 'IOINaturalFlagCodeSet',\n    },\n    {\n        id: '139001',\n        name: 'Regulatory',\n        value: '1',\n        sort: 0,\n        added: 'FIX.4.0',\n        description: 'Regulatory (e.g. SEC)',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139002',\n        name: 'Tax',\n        value: '2',\n        sort: 1,\n        added: 'FIX.4.0',\n        description: 'Tax',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139003',\n        name: 'LocalCommission',\n        value: '3',\n        sort: 2,\n        added: 'FIX.4.0',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '204',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description:\n            'Local Commission\\n\\n\\n                        DEPRECATE - use <CommissionDataGrp> component instead',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139004',\n        name: 'ExchangeFees',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.0',\n        description: 'Exchange Fees',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139005',\n        name: 'Stamp',\n        value: '5',\n        sort: 4,\n        added: 'FIX.4.0',\n        description: 'Stamp',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139006',\n        name: 'Levy',\n        value: '6',\n        sort: 5,\n        added: 'FIX.4.0',\n        description: 'Levy',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139007',\n        name: 'Other',\n        value: '7',\n        sort: 6,\n        added: 'FIX.4.0',\n        description: 'Other',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139008',\n        name: 'Markup',\n        value: '8',\n        sort: 7,\n        added: 'FIX.4.1',\n        description: 'Markup',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139009',\n        name: 'ConsumptionTax',\n        value: '9',\n        sort: 8,\n        added: 'FIX.4.2',\n        description: 'Consumption Tax',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139010',\n        name: 'PerTransaction',\n        value: '10',\n        sort: 9,\n        added: 'FIX.4.4',\n        description: 'Per transaction',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139011',\n        name: 'Conversion',\n        value: '11',\n        sort: 10,\n        added: 'FIX.4.4',\n        description: 'Conversion',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139012',\n        name: 'Agent',\n        value: '12',\n        sort: 11,\n        added: 'FIX.4.4',\n        description: 'Agent',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139013',\n        name: 'TransferFee',\n        value: '13',\n        sort: 15,\n        added: 'FIX.4.4',\n        addedEP: '25',\n        description: 'Transfer Fee',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139014',\n        name: 'SecurityLending',\n        value: '14',\n        sort: 16,\n        added: 'FIX.4.4',\n        addedEP: '25',\n        description: 'Security Lending',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139015',\n        name: 'TradeReporting',\n        value: '15',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'Trade reporting\\n\\n\\n                        The fee charged to recover the cost of trade reporting, e.g. corporate bonds and structured products reported to FINRA TRACE.',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139016',\n        name: 'TaxOnPrincipalAmount',\n        value: '16',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Tax on principal amount',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139017',\n        name: 'TaxOnAccruedInterestAmount',\n        value: '17',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Tax on accrued interest amount',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139018',\n        name: 'NewIssuanceFee',\n        value: '18',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'New issuance fee',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139019',\n        name: 'ServiceFee',\n        value: '19',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Service fee',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139020',\n        name: 'OddLotFee',\n        value: '20',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Odd lot fee',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139021',\n        name: 'AuctionFee',\n        value: '21',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Auction fee',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139022',\n        name: 'ValueAddedTax',\n        value: '22',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Value Added tax - VAT',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139023',\n        name: 'SalesTax',\n        value: '23',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Sales tax',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139024',\n        name: 'ExecutionFee',\n        value: '24',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '236',\n        description: 'Execution venue fee',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139025',\n        name: 'OrderEntryFee',\n        value: '25',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Order or quote entry fee\\n\\n\\n                        Order or quote submission fees per transaction.',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139026',\n        name: 'OrderModificationFee',\n        value: '26',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Order or quote modification fee\\n\\n\\n                        Order or quote modification fees per transaction.',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139027',\n        name: 'OrdersCancellationFee',\n        value: '27',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Orders or quote cancellation fee\\n\\n\\n                        Order or quote cancellation fees per transaction.',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139028',\n        name: 'MarketDataAccessFee',\n        value: '28',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Market data access fee\\n\\n\\n                        Fee for market data access.',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139029',\n        name: 'MarketDataTerminalFee',\n        value: '29',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Market data terminal fee\\n\\n\\n                        Fee for market data terminal.',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139030',\n        name: 'MarketDataVolumeFee',\n        value: '30',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Market data volume fee\\n\\n\\n                        Fee for market data per volume group.',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139031',\n        name: 'ClearingFee',\n        value: '31',\n        sort: 33,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Clearing fee\\n\\n\\n                        Fee for clearing of trades.',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139032',\n        name: 'SettlementFee',\n        value: '32',\n        sort: 34,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Settlement fee\\n\\n\\n                        Fee for settlement of trades.',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139033',\n        name: 'Rebates',\n        value: '33',\n        sort: 35,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Rebates\\n\\n\\n                        Rebates offered to the client.',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139034',\n        name: 'Discounts',\n        value: '34',\n        sort: 36,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Discounts\\n\\n\\n                        Discounts offered to the client.',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139035',\n        name: 'Payments',\n        value: '35',\n        sort: 37,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Payments\\n\\n\\n                        Other benefits offered to the client.',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '139036',\n        name: 'NonMonetaryPayments',\n        value: '36',\n        sort: 38,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Non-monetary payments\\n\\n\\n                        Non-monetary benefits offered to the client.',\n        tag: 139,\n        type: 'String',\n        codeSet: 'MiscFeeTypeCodeSet',\n    },\n    {\n        id: '141001',\n        name: 'No',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.1',\n        description: 'No',\n        tag: 141,\n        type: 'Boolean',\n        codeSet: 'ResetSeqNumFlagCodeSet',\n    },\n    {\n        id: '141002',\n        name: 'Yes',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.1',\n        description: 'Yes, reset sequence numbers',\n        tag: 141,\n        type: 'Boolean',\n        codeSet: 'ResetSeqNumFlagCodeSet',\n    },\n    {\n        id: '150001',\n        name: 'New',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.1',\n        description: 'New',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150002',\n        name: 'DoneForDay',\n        value: '3',\n        sort: 2,\n        added: 'FIX.4.1',\n        description: 'Done for day',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150003',\n        name: 'Canceled',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.1',\n        description: 'Canceled',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150004',\n        name: 'Replaced',\n        value: '5',\n        sort: 4,\n        added: 'FIX.4.1',\n        description: 'Replaced',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150005',\n        name: 'PendingCancel',\n        value: '6',\n        sort: 5,\n        added: 'FIX.4.1',\n        description: 'Pending Cancel (e.g. result of Order Cancel Request)',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150006',\n        name: 'Stopped',\n        value: '7',\n        sort: 6,\n        added: 'FIX.4.1',\n        description: 'Stopped',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150007',\n        name: 'Rejected',\n        value: '8',\n        sort: 7,\n        added: 'FIX.4.1',\n        description: 'Rejected',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150008',\n        name: 'Suspended',\n        value: '9',\n        sort: 8,\n        added: 'FIX.4.1',\n        description: 'Suspended',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150009',\n        name: 'PendingNew',\n        value: 'A',\n        sort: 9,\n        added: 'FIX.4.1',\n        description: 'Pending New',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150010',\n        name: 'Calculated',\n        value: 'B',\n        sort: 10,\n        added: 'FIX.4.1',\n        description: 'Calculated',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150011',\n        name: 'Expired',\n        value: 'C',\n        sort: 11,\n        added: 'FIX.4.1',\n        description: 'Expired',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150012',\n        name: 'Restated',\n        value: 'D',\n        sort: 12,\n        added: 'FIX.4.2',\n        description: 'Restated (Execution Report sent unsolicited by sellside, with ExecRestatementReason (378) set)',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150013',\n        name: 'PendingReplace',\n        value: 'E',\n        sort: 13,\n        added: 'FIX.4.2',\n        description: 'Pending Replace (e.g. result of Order Cancel/Replace Request)',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150014',\n        name: 'Trade',\n        value: 'F',\n        sort: 14,\n        added: 'FIX.4.3',\n        description: 'Trade (partial fill or fill)',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150015',\n        name: 'TradeCorrect',\n        value: 'G',\n        sort: 15,\n        added: 'FIX.4.3',\n        description: 'Trade Correct',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150016',\n        name: 'TradeCancel',\n        value: 'H',\n        sort: 16,\n        added: 'FIX.4.3',\n        description: 'Trade Cancel',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150017',\n        name: 'OrderStatus',\n        value: 'I',\n        sort: 17,\n        added: 'FIX.4.3',\n        description: 'Order Status',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150018',\n        name: 'TradeInAClearingHold',\n        value: 'J',\n        sort: 18,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Trade in a Clearing Hold',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150019',\n        name: 'TradeHasBeenReleasedToClearing',\n        value: 'K',\n        sort: 19,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Trade has been released to Clearing',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150020',\n        name: 'TriggeredOrActivatedBySystem',\n        value: 'L',\n        sort: 20,\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Triggered or Activated by System',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150021',\n        name: 'Locked',\n        value: 'M',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Locked',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '150022',\n        name: 'Released',\n        value: 'N',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Released',\n        tag: 150,\n        type: 'char',\n        codeSet: 'ExecTypeCodeSet',\n    },\n    {\n        id: '156001',\n        name: 'Multiply',\n        value: 'M',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '38',\n        description: 'Multiply',\n        tag: 156,\n        type: 'char',\n        codeSet: 'SettlCurrFxRateCalcCodeSet',\n    },\n    {\n        id: '156002',\n        name: 'Divide',\n        value: 'D',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '38',\n        description: 'Divide',\n        tag: 156,\n        type: 'char',\n        codeSet: 'SettlCurrFxRateCalcCodeSet',\n    },\n    {\n        id: '160001',\n        name: 'Default',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.1',\n        deprecated: 'FIX.Latest',\n        deprecatedEP: '271',\n        description: 'Default (Replaced)',\n        tag: 160,\n        type: 'char',\n        codeSet: 'SettlInstModeCodeSet',\n    },\n    {\n        id: '160002',\n        name: 'StandingInstructionsProvided',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.1',\n        description: 'Standing Instructions Provided',\n        tag: 160,\n        type: 'char',\n        codeSet: 'SettlInstModeCodeSet',\n    },\n    {\n        id: '160003',\n        name: 'SpecificAllocationAccountOverriding',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.1',\n        deprecated: 'FIX.Latest',\n        deprecatedEP: '271',\n        description: 'Specific Allocation Account Overriding (Replaced)',\n        tag: 160,\n        type: 'char',\n        codeSet: 'SettlInstModeCodeSet',\n    },\n    {\n        id: '160004',\n        name: 'SpecificAllocationAccountStanding',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.1',\n        deprecated: 'FIX.Latest',\n        deprecatedEP: '271',\n        description: 'Specific Allocation Account Standing (Replaced)',\n        tag: 160,\n        type: 'char',\n        codeSet: 'SettlInstModeCodeSet',\n    },\n    {\n        id: '160005',\n        name: 'SpecificOrderForASingleAccount',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Specific Order for a single account (for CIV)',\n        tag: 160,\n        type: 'char',\n        codeSet: 'SettlInstModeCodeSet',\n    },\n    {\n        id: '160006',\n        name: 'RequestReject',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Request reject',\n        tag: 160,\n        type: 'char',\n        codeSet: 'SettlInstModeCodeSet',\n    },\n    {\n        id: '163001',\n        name: 'New',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.1',\n        description: 'New',\n        tag: 163,\n        type: 'char',\n        codeSet: 'SettlInstTransTypeCodeSet',\n    },\n    {\n        id: '163002',\n        name: 'Cancel',\n        value: 'C',\n        sort: 2,\n        added: 'FIX.4.1',\n        description: 'Cancel',\n        tag: 163,\n        type: 'char',\n        codeSet: 'SettlInstTransTypeCodeSet',\n    },\n    {\n        id: '163003',\n        name: 'Replace',\n        value: 'R',\n        sort: 3,\n        added: 'FIX.4.1',\n        description: 'Replace',\n        tag: 163,\n        type: 'char',\n        codeSet: 'SettlInstTransTypeCodeSet',\n    },\n    {\n        id: '163004',\n        name: 'Restate',\n        value: 'T',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Restate',\n        tag: 163,\n        type: 'char',\n        codeSet: 'SettlInstTransTypeCodeSet',\n    },\n    {\n        id: '165001',\n        name: 'BrokerCredit',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.1',\n        description: \"Broker's Instructions\",\n        tag: 165,\n        type: 'char',\n        codeSet: 'SettlInstSourceCodeSet',\n    },\n    {\n        id: '165002',\n        name: 'Institution',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.1',\n        description: \"Institution's Instructions\",\n        tag: 165,\n        type: 'char',\n        codeSet: 'SettlInstSourceCodeSet',\n    },\n    {\n        id: '165003',\n        name: 'Investor',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Investor (e.g. CIV use)',\n        tag: 165,\n        type: 'char',\n        codeSet: 'SettlInstSourceCodeSet',\n    },\n    {\n        id: '167001',\n        name: 'USTreasuryNoteOld',\n        value: 'UST',\n        sort: 3,\n        added: 'FIX.4.3',\n        deprecated: 'FIX.4.4',\n        description: 'US Treasury Note (Deprecated Value Use TNOTE)',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167002',\n        name: 'USTreasuryBillOld',\n        value: 'USTB',\n        sort: 4,\n        added: 'FIX.4.1',\n        deprecated: 'FIX.4.4',\n        description: 'US Treasury Bill (Deprecated Value Use TBILL)',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167003',\n        name: 'EuroSupranationalCoupons',\n        value: 'EUSUPRA',\n        sort: 0,\n        group: 'Agency',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '272',\n        description: 'Euro Supranational Coupons\\n\\n\\n                        Identify the issuer name in Issuer(106).',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167004',\n        name: 'FederalAgencyCoupon',\n        value: 'FAC',\n        sort: 1,\n        group: 'Agency',\n        added: 'FIX.4.3',\n        description: 'Federal Agency Coupon',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167005',\n        name: 'FederalAgencyDiscountNote',\n        value: 'FADN',\n        sort: 2,\n        group: 'Agency',\n        added: 'FIX.4.3',\n        description: 'Federal Agency Discount Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167006',\n        name: 'PrivateExportFunding',\n        value: 'PEF',\n        sort: 3,\n        group: 'Agency',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '272',\n        description: 'Private Export Funding\\n\\n\\n                        Identify the issuer name in Issuer(106).',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167007',\n        name: 'USDSupranationalCoupons',\n        value: 'SUPRA',\n        sort: 4,\n        group: 'Agency',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '272',\n        description: 'USD Supranational Coupons\\n\\n\\n                        Identify the issuer name in Issuer(106).',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167008',\n        name: 'CorporateBond',\n        value: 'CORP',\n        sort: 0,\n        group: 'Corporate',\n        added: 'FIX.4.1',\n        description: 'Corporate Bond',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167009',\n        name: 'CorporatePrivatePlacement',\n        value: 'CPP',\n        sort: 1,\n        group: 'Corporate',\n        added: 'FIX.4.1',\n        description: 'Corporate Private Placement',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167010',\n        name: 'ConvertibleBond',\n        value: 'CB',\n        sort: 2,\n        group: 'Corporate',\n        added: 'FIX.4.2',\n        description: 'Convertible Bond',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167011',\n        name: 'DualCurrency',\n        value: 'DUAL',\n        sort: 3,\n        group: 'Corporate',\n        added: 'FIX.4.3',\n        description: 'Dual Currency',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167012',\n        name: 'EuroCorporateBond',\n        value: 'EUCORP',\n        sort: 4,\n        group: 'Corporate',\n        added: 'FIX.4.4',\n        description: 'Euro Corporate Bond',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167013',\n        name: 'EuroCorporateFloatingRateNotes',\n        value: 'EUFRN',\n        sort: 5,\n        group: 'Corporate',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Euro Corporate Floating Rate Notes',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167014',\n        name: 'USCorporateFloatingRateNotes',\n        value: 'FRN',\n        sort: 6,\n        group: 'Corporate',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'US Corporate Floating Rate Notes',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167015',\n        name: 'IndexedLinked',\n        value: 'XLINKD',\n        sort: 7,\n        group: 'Corporate',\n        added: 'FIX.4.3',\n        description: 'Indexed Linked',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167016',\n        name: 'StructuredNotes',\n        value: 'STRUCT',\n        sort: 8,\n        group: 'Corporate',\n        added: 'FIX.4.3',\n        description: 'Structured Notes',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167017',\n        name: 'YankeeCorporateBond',\n        value: 'YANK',\n        sort: 9,\n        group: 'Corporate',\n        added: 'FIX.4.3',\n        description: 'Yankee Corporate Bond',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167018',\n        name: 'OffshoreIssuedChineseYuanCorporateBond',\n        value: 'DIMSUMCORP',\n        sort: 10,\n        group: 'Corporate',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Offshore issued Chinese Yuan (CNY) denominated corporate bond',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167019',\n        name: 'PreferredCorporateBond',\n        value: 'PRCORP',\n        sort: 11,\n        group: 'Corporate',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Preferred Corporate Bond',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167020',\n        name: 'ForeignExchangeContract',\n        value: 'FOR',\n        sort: 0,\n        group: 'Currency',\n        added: 'FIX.4.1',\n        deprecated: 'FIX.5.0SP1',\n        deprecatedEP: '82',\n        description: 'Foreign Exchange Contract',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167021',\n        name: 'NonDeliverableForward',\n        value: 'FXNDF',\n        sort: 1,\n        group: 'Currency',\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        description: 'Non-deliverable forward',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167022',\n        name: 'FXSpot',\n        value: 'FXSPOT',\n        sort: 2,\n        group: 'Currency',\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        description: 'FX Spot',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167023',\n        name: 'FXForward',\n        value: 'FXFWD',\n        sort: 3,\n        group: 'Currency',\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        description: 'FX Forward',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167024',\n        name: 'FXSwap',\n        value: 'FXSWAP',\n        sort: 4,\n        group: 'Currency',\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        description: 'FX Swap',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167025',\n        name: 'NonDeliverableSwap',\n        value: 'FXNDS',\n        sort: 5,\n        group: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Non-deliverable Swap',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167026',\n        name: 'FXBankNote',\n        value: 'FXBN',\n        sort: 6,\n        group: 'Currency',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'FX Bank Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167027',\n        name: 'ForeignCurrencyDiscountNote',\n        value: 'FXDN',\n        sort: 7,\n        group: 'Currency',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description:\n            'Foreign Currency Discount Note\\n\\n\\n                        Discount notes issued in foreign currency by Fannie Mae.',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167028',\n        name: 'Cap',\n        value: 'CAP',\n        sort: 1,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Cap\\n\\n\\n                        In an interest rate cap, the buyer receives payments at the end of each period in which the rate indec exceeds the agreed strike rate.',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167029',\n        name: 'CreditDefaultSwap',\n        value: 'CDS',\n        sort: 2,\n        group: 'Derivatives',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Credit Default Swap',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167030',\n        name: 'Collar',\n        value: 'CLLR',\n        sort: 3,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Collar\\n\\n\\n                        In an interest rate collar, this is a combination of a cap and a floor.',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167031',\n        name: 'CommoditySwap',\n        value: 'CMDTYSWAP',\n        sort: 4,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Commodity swap',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167032',\n        name: 'Exotic',\n        value: 'EXOTIC',\n        sort: 5,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Exotic',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167033',\n        name: 'OptionsOnCombo',\n        value: 'OOC',\n        sort: 6,\n        group: 'Derivatives',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Options on Combo',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167034',\n        name: 'Floor',\n        value: 'FLR',\n        sort: 6,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Floor\\n\\n\\n                        In an interest rate floor, the buyer receives payments at the end of each period in which the rate index is below the agreed strike rate.',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167035',\n        name: 'FRA',\n        value: 'FRA',\n        sort: 7,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Forward Rate Agreement',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167036',\n        name: 'Future',\n        value: 'FUT',\n        sort: 8,\n        group: 'Derivatives',\n        added: 'FIX.4.1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Future',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167037',\n        name: 'DerivativeForward',\n        value: 'FWD',\n        sort: 9,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Derivative forward',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167038',\n        name: 'InterestRateSwap',\n        value: 'IRS',\n        sort: 10,\n        group: 'Derivatives',\n        added: 'FIX.5.0',\n        addedEP: '54',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Interest Rate Swap',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167039',\n        name: 'TotalReturnSwap',\n        value: 'TRS',\n        sort: 10,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Total return swap',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167040',\n        name: 'LoanLease',\n        value: 'LOANLEASE',\n        sort: 11,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Loan/lease',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167041',\n        name: 'OptionsOnFutures',\n        value: 'OOF',\n        sort: 13,\n        group: 'Derivatives',\n        added: 'FIX.4.4',\n        addedEP: '19',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Options on Futures',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167042',\n        name: 'OptionsOnPhysical',\n        value: 'OOP',\n        sort: 14,\n        group: 'Derivatives',\n        added: 'FIX.4.4',\n        addedEP: '19',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Options on Physical - use not recommended',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167043',\n        name: 'Option',\n        value: 'OPT',\n        sort: 15,\n        group: 'Derivatives',\n        added: 'FIX.4.1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Option',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167044',\n        name: 'SpotForward',\n        value: 'SPOTFWD',\n        sort: 16,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Spot forward',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167045',\n        name: 'SwapOption',\n        value: 'SWAPTION',\n        sort: 17,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description: 'Swap option',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167046',\n        name: 'Transmission',\n        value: 'XMISSION',\n        sort: 18,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Transmission',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167047',\n        name: 'Index',\n        value: 'INDEX',\n        sort: 19,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'General type for a contract based on an established index',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167048',\n        name: 'BondBasket',\n        value: 'BDBSKT',\n        sort: 20,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Bond basket',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167049',\n        name: 'ContractForDifference',\n        value: 'CFD',\n        sort: 21,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Contract for difference',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167050',\n        name: 'CorrelationSwap',\n        value: 'CRLTNSWAP',\n        sort: 22,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Correlation swap',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167051',\n        name: 'DiviendSwap',\n        value: 'DVDNDSWAP',\n        sort: 23,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Dividend swap',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167052',\n        name: 'EquityBasket',\n        value: 'EQBSKT',\n        sort: 24,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Equity basket',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167053',\n        name: 'EquityForward',\n        value: 'EQFWD',\n        sort: 25,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Equity forward',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167054',\n        name: 'ReturnSwap',\n        value: 'RTRNSWAP',\n        sort: 26,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Return swap',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167055',\n        name: 'VarianceSwap',\n        value: 'VARSWAP',\n        sort: 27,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Variance swap',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167056',\n        name: 'PortfolioSwaps',\n        value: 'PRTFLIOSWAP',\n        sort: 28,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description: 'Portfolio swap',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167057',\n        name: 'FuturesOnASwap',\n        value: 'FUTSWAP',\n        sort: 29,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Futures on a Swap',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167058',\n        name: 'ForwardsOnASwap',\n        value: 'FWDSWAP',\n        sort: 30,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Forwards on a Swap',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167059',\n        name: 'ForwardFreightAgreement',\n        value: 'FWDFRTAGMT',\n        sort: 31,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Forward Freight Agreement',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167060',\n        name: 'SpreadBetting',\n        value: 'SPREADBET',\n        sort: 32,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Spread Betting',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167061',\n        name: 'ExchangeTradedCommodity',\n        value: 'ETC',\n        sort: 33,\n        group: 'Derivatives',\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Exchange traded commodity',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167062',\n        name: 'CommonStock',\n        value: 'CS',\n        sort: 0,\n        group: 'Equity',\n        added: 'FIX.4.1',\n        description: 'Common Stock',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167063',\n        name: 'PreferredStock',\n        value: 'PS',\n        sort: 1,\n        group: 'Equity',\n        added: 'FIX.4.1',\n        description: 'Preferred Stock',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167064',\n        name: 'DepositoryReceipts',\n        value: 'DR',\n        sort: 2,\n        group: 'Equity',\n        added: 'FIX.5.0SP2',\n        addedEP: '236',\n        description: 'Depository Receipts',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167065',\n        name: 'Repurchase',\n        value: 'REPO',\n        sort: 0,\n        group: 'Financing',\n        added: 'FIX.4.4',\n        description: 'Repurchase',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167066',\n        name: 'Forward',\n        value: 'FORWARD',\n        sort: 1,\n        group: 'Financing',\n        added: 'FIX.4.4',\n        description: 'Forward',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167067',\n        name: 'BuySellback',\n        value: 'BUYSELL',\n        sort: 2,\n        group: 'Financing',\n        added: 'FIX.4.4',\n        description: 'Buy Sellback',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167068',\n        name: 'SecuritiesLoan',\n        value: 'SECLOAN',\n        sort: 3,\n        group: 'Financing',\n        added: 'FIX.4.4',\n        description: 'Securities Loan',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167069',\n        name: 'SecuritiesPledge',\n        value: 'SECPLEDGE',\n        sort: 4,\n        group: 'Financing',\n        added: 'FIX.4.4',\n        description: 'Securities Pledge',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167070',\n        name: 'DeliveryVersusPledge',\n        value: 'DVPLDG',\n        sort: 5,\n        group: 'Financing',\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        description: 'Delivery versus pledge',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167071',\n        name: 'CollateralBasket',\n        value: 'COLLBSKT',\n        sort: 6,\n        group: 'Financing',\n        added: 'FIX.5.0SP2',\n        addedEP: '197',\n        description:\n            \"Collateral basket\\n\\n\\n                        A collection of securities held as collateral in the customer's collateral fund. The collateral fund is usually managed by a custodian.\",\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167072',\n        name: 'StructuredFinanceProduct',\n        value: 'SFP',\n        sort: 7,\n        group: 'Financing',\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Structured finance product',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167073',\n        name: 'MarginLoan',\n        value: 'MRGNLOAN',\n        sort: 9,\n        group: 'Financing',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Margin loan',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167074',\n        name: 'BradyBond',\n        value: 'BRADY',\n        sort: 0,\n        group: 'Government',\n        added: 'FIX.4.3',\n        description: 'Brady Bond',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167075',\n        name: 'CanadianTreasuryNotes',\n        value: 'CAN',\n        sort: 1,\n        group: 'Government',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Canadian Treasury Notes',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167076',\n        name: 'CanadianTreasuryBills',\n        value: 'CTB',\n        sort: 2,\n        group: 'Government',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Canadian Treasury Bills',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167077',\n        name: 'EuroSovereigns',\n        value: 'EUSOV',\n        sort: 3,\n        group: 'Government',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '272',\n        description: 'Euro Sovereigns\\n\\n\\n                        Identify the issuer name in Issuer(106).',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167078',\n        name: 'CanadianProvincialBonds',\n        value: 'PROV',\n        sort: 4,\n        group: 'Government',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Canadian Provincial Bonds',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167079',\n        name: 'TreasuryBill',\n        value: 'TB',\n        sort: 5,\n        group: 'Government',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Treasury Bill - non US',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167080',\n        name: 'USTreasuryBond',\n        value: 'TBOND',\n        sort: 6,\n        group: 'Government',\n        added: 'FIX.4.3',\n        description: 'US Treasury Bond',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167081',\n        name: 'InterestStripFromAnyBondOrNote',\n        value: 'TINT',\n        sort: 7,\n        group: 'Government',\n        added: 'FIX.4.3',\n        description: 'Interest Strip From Any Bond Or Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167082',\n        name: 'USTreasuryBill',\n        value: 'TBILL',\n        sort: 8,\n        group: 'Government',\n        added: 'FIX.4.4',\n        description: 'US Treasury Bill',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167083',\n        name: 'TreasuryInflationProtectedSecurities',\n        value: 'TIPS',\n        sort: 8,\n        group: 'Government',\n        added: 'FIX.4.3',\n        description: 'Treasury Inflation Protected Securities',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167084',\n        name: 'PrincipalStripOfACallableBondOrNote',\n        value: 'TCAL',\n        sort: 9,\n        group: 'Government',\n        added: 'FIX.4.3',\n        description: 'Principal Strip Of A Callable Bond Or Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167085',\n        name: 'PrincipalStripFromANonCallableBondOrNote',\n        value: 'TPRN',\n        sort: 10,\n        group: 'Government',\n        added: 'FIX.4.3',\n        description: 'Principal Strip From A Non-Callable Bond Or Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167086',\n        name: 'USTreasuryNote',\n        value: 'TNOTE',\n        sort: 11,\n        group: 'Government',\n        added: 'FIX.4.4',\n        description: 'US Treasury Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167087',\n        name: 'OffshoreIssuedChineseYuanSovereignBond',\n        value: 'DIMSUMSOV',\n        sort: 12,\n        group: 'Government',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Offshore issued Chinese Yuan (CNY) denominated sovereign bond',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167088',\n        name: 'SovereignBond',\n        value: 'SOV',\n        sort: 13,\n        group: 'Government',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description:\n            'Sovereign Bond\\n\\n\\n                        Sovereign or government bond other than Euro and US issuer. Specify sovereign issuer in Issuer(106).',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167089',\n        name: 'USTreasuryFloatingRateNote',\n        value: 'TFRN',\n        sort: 14,\n        group: 'Government',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'US Treasury Floating Rate Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167090',\n        name: 'TermLoan',\n        value: 'TERM',\n        sort: 0,\n        group: 'Loan',\n        added: 'FIX.4.3',\n        description: 'Term Loan',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167091',\n        name: 'RevolverLoan',\n        value: 'RVLV',\n        sort: 1,\n        group: 'Loan',\n        added: 'FIX.4.3',\n        description: 'Revolver Loan',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167092',\n        name: 'Revolver',\n        value: 'RVLVTRM',\n        sort: 2,\n        group: 'Loan',\n        added: 'FIX.4.3',\n        description: 'Revolver/Term Loan',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167093',\n        name: 'BridgeLoan',\n        value: 'BRIDGE',\n        sort: 3,\n        group: 'Loan',\n        added: 'FIX.4.3',\n        description: 'Bridge Loan',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167094',\n        name: 'LetterOfCredit',\n        value: 'LOFC',\n        sort: 4,\n        group: 'Loan',\n        added: 'FIX.4.3',\n        description: 'Letter Of Credit',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167095',\n        name: 'SwingLineFacility',\n        value: 'SWING',\n        sort: 5,\n        group: 'Loan',\n        added: 'FIX.4.3',\n        description: 'Swing Line Facility',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167096',\n        name: 'DebtorInPossession',\n        value: 'DINP',\n        sort: 6,\n        group: 'Loan',\n        added: 'FIX.4.3',\n        description: 'Debtor In Possession',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167097',\n        name: 'Defaulted',\n        value: 'DEFLTED',\n        sort: 7,\n        group: 'Loan',\n        added: 'FIX.4.3',\n        description: 'Defaulted',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167098',\n        name: 'Withdrawn',\n        value: 'WITHDRN',\n        sort: 8,\n        group: 'Loan',\n        added: 'FIX.4.3',\n        description: 'Withdrawn',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167099',\n        name: 'Replaced',\n        value: 'REPLACD',\n        sort: 9,\n        group: 'Loan',\n        added: 'FIX.4.3',\n        description: 'Replaced',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167100',\n        name: 'Matured',\n        value: 'MATURED',\n        sort: 10,\n        group: 'Loan',\n        added: 'FIX.4.3',\n        description: 'Matured',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167101',\n        name: 'Amended',\n        value: 'AMENDED',\n        sort: 11,\n        group: 'Loan',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '272',\n        description: 'Amended and restated',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167102',\n        name: 'Retired',\n        value: 'RETIRED',\n        sort: 12,\n        group: 'Loan',\n        added: 'FIX.4.3',\n        description: 'Retired',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167103',\n        name: 'BankersAcceptance',\n        value: 'BA',\n        sort: 0,\n        group: 'Money Market',\n        added: 'FIX.4.1',\n        description: 'Bankers Acceptance',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167104',\n        name: 'BankDepositoryNote',\n        value: 'BDN',\n        sort: 1,\n        group: 'Money Market',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Bank Depository Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167105',\n        name: 'BankNotes',\n        value: 'BN',\n        sort: 2,\n        group: 'Money Market',\n        added: 'FIX.4.3',\n        description: 'Bank Notes',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167106',\n        name: 'BillOfExchanges',\n        value: 'BOX',\n        sort: 3,\n        group: 'Money Market',\n        added: 'FIX.4.3',\n        description: 'Bill Of Exchanges',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167107',\n        name: 'CanadianMoneyMarkets',\n        value: 'CAMM',\n        sort: 4,\n        group: 'Money Market',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Canadian Money Markets',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167108',\n        name: 'CertificateOfDeposit',\n        value: 'CD',\n        sort: 5,\n        group: 'Money Market',\n        added: 'FIX.4.1',\n        description: 'Certificate Of Deposit',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167109',\n        name: 'CallLoans',\n        value: 'CL',\n        sort: 6,\n        group: 'Money Market',\n        added: 'FIX.4.3',\n        description: 'Call Loans',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167110',\n        name: 'CommercialPaper',\n        value: 'CP',\n        sort: 7,\n        group: 'Money Market',\n        added: 'FIX.4.1',\n        description: 'Commercial Paper',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167111',\n        name: 'DepositNotes',\n        value: 'DN',\n        sort: 8,\n        group: 'Money Market',\n        added: 'FIX.4.3',\n        description: 'Deposit Notes',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167112',\n        name: 'EuroCertificateOfDeposit',\n        value: 'EUCD',\n        sort: 9,\n        group: 'Money Market',\n        added: 'FIX.4.4',\n        description: 'Euro Certificate Of Deposit',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167113',\n        name: 'EuroCommercialPaper',\n        value: 'EUCP',\n        sort: 10,\n        group: 'Money Market',\n        added: 'FIX.4.4',\n        description: 'Euro Commercial Paper',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167114',\n        name: 'LiquidityNote',\n        value: 'LQN',\n        sort: 11,\n        group: 'Money Market',\n        added: 'FIX.4.3',\n        description: 'Liquidity Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167115',\n        name: 'MediumTermNotes',\n        value: 'MTN',\n        sort: 12,\n        group: 'Money Market',\n        added: 'FIX.4.3',\n        description: 'Medium Term Notes',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167116',\n        name: 'Overnight',\n        value: 'ONITE',\n        sort: 13,\n        group: 'Money Market',\n        added: 'FIX.4.3',\n        description: 'Overnight',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167117',\n        name: 'PromissoryNote',\n        value: 'PN',\n        sort: 14,\n        group: 'Money Market',\n        added: 'FIX.4.3',\n        description: 'Promissory Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167118',\n        name: 'ShortTermLoanNote',\n        value: 'STN',\n        sort: 14,\n        group: 'Money Market',\n        added: 'FIX.4.3',\n        description: 'Short Term Loan Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167119',\n        name: 'PlazosFijos',\n        value: 'PZFJ',\n        sort: 15,\n        group: 'Money Market',\n        added: 'FIX.4.3',\n        description: 'Plazos Fijos',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167120',\n        name: 'SecuredLiquidityNote',\n        value: 'SLQN',\n        sort: 16,\n        group: 'Money Market',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Secured Liquidity Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167121',\n        name: 'TimeDeposit',\n        value: 'TD',\n        sort: 17,\n        group: 'Money Market',\n        added: 'FIX.4.1',\n        description: 'Time Deposit',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167122',\n        name: 'TermLiquidityNote',\n        value: 'TLQN',\n        sort: 19,\n        group: 'Money Market',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Term Liquidity Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167123',\n        name: 'ExtendedCommNote',\n        value: 'XCN',\n        sort: 20,\n        group: 'Money Market',\n        added: 'FIX.4.3',\n        description: 'Extended Comm Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167124',\n        name: 'YankeeCertificateOfDeposit',\n        value: 'YCD',\n        sort: 21,\n        group: 'Money Market',\n        added: 'FIX.4.4',\n        description: 'Yankee Certificate Of Deposit',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167125',\n        name: 'BankAcceptedBill',\n        value: 'BAB',\n        sort: 22,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Bank Accepted Bill\\n\\n\\n                        Also known as Bank Bill.',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167126',\n        name: 'ShortTermBankNote',\n        value: 'BNST',\n        sort: 23,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Short Term Bank Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167127',\n        name: 'CallableCommercialPaper',\n        value: 'CLCP',\n        sort: 24,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Callable Commercial Paper',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167128',\n        name: 'CommercialNote',\n        value: 'CN',\n        sort: 25,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Commercial Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167129',\n        name: 'InterestBearingCommercialPaper',\n        value: 'CPIB',\n        sort: 26,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Interest Bearing Commercial Paper',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167130',\n        name: 'EuroMediumTermNote',\n        value: 'EUMTN',\n        sort: 27,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Euro Medium Term Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167131',\n        name: 'EuroNegotiableCommercialPaper',\n        value: 'EUNCP',\n        sort: 28,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Euro Negotiable Commercial Paper',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167132',\n        name: 'EuroStructuredLiquidityNote',\n        value: 'EUSTLQN',\n        sort: 29,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Euro Structured Liquidity Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167133',\n        name: 'EuroTimeDeposit',\n        value: 'EUTD',\n        sort: 30,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Euro Time Deposit',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167134',\n        name: 'JumboCertificateOfDeposit',\n        value: 'JCD',\n        sort: 31,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Jumbo Certificate of Deposit',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167135',\n        name: 'MoneyMarketFund',\n        value: 'MMF',\n        sort: 32,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Money Market Fund',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167136',\n        name: 'MasterNote',\n        value: 'MN',\n        sort: 33,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description:\n            'Master Note\\n\\n\\n                        Short term notes issued by Federal Farm Credit Banks Funding Corporation to provide loans and funding under Federal Farm Credit System (FFCS).',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167137',\n        name: 'NegotiableCertificateOfDeposit',\n        value: 'NCD',\n        sort: 34,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Negotiable Certificate of Deposit',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167138',\n        name: 'NegotiableCommercialPaper',\n        value: 'NCP',\n        sort: 35,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Negotiable Commercial Paper',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167139',\n        name: 'RetailCertificateOfDeposit',\n        value: 'RCD',\n        sort: 36,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Retail Certificate of Deposit',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167140',\n        name: 'TermDepositReceipt',\n        value: 'TDR',\n        sort: 37,\n        group: 'Money Market',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Term Deposit Receipt',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167141',\n        name: 'AssetBackedSecurities',\n        value: 'ABS',\n        sort: 0,\n        group: 'Mortgage',\n        added: 'FIX.4.3',\n        description: 'Asset-backed Securities',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167142',\n        name: 'CanadianMortgageBonds',\n        value: 'CMB',\n        sort: 1,\n        group: 'Mortgage',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Canadian Mortgage Bonds',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167143',\n        name: 'Corp',\n        value: 'CMBS',\n        sort: 2,\n        group: 'Mortgage',\n        added: 'FIX.4.3',\n        description: 'Corp. Mortgage-backed Securities',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167144',\n        name: 'CollateralizedMortgageObligation',\n        value: 'CMO',\n        sort: 3,\n        group: 'Mortgage',\n        added: 'FIX.4.1',\n        description: 'Collateralized Mortgage Obligation',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167145',\n        name: 'IOETTEMortgage',\n        value: 'IET',\n        sort: 4,\n        group: 'Mortgage',\n        added: 'FIX.4.2',\n        description: 'IOETTE Mortgage',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167146',\n        name: 'MortgageBackedSecurities',\n        value: 'MBS',\n        sort: 5,\n        group: 'Mortgage',\n        added: 'FIX.4.3',\n        description: 'Mortgage-backed Securities',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167147',\n        name: 'MortgageInterestOnly',\n        value: 'MIO',\n        sort: 6,\n        group: 'Mortgage',\n        added: 'FIX.4.1',\n        description: 'Mortgage Interest Only',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167148',\n        name: 'MortgagePrincipalOnly',\n        value: 'MPO',\n        sort: 7,\n        group: 'Mortgage',\n        added: 'FIX.4.1',\n        description: 'Mortgage Principal Only',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167149',\n        name: 'MortgagePrivatePlacement',\n        value: 'MPP',\n        sort: 8,\n        group: 'Mortgage',\n        added: 'FIX.4.1',\n        description: 'Mortgage Private Placement',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167150',\n        name: 'MiscellaneousPassThrough',\n        value: 'MPT',\n        sort: 9,\n        group: 'Mortgage',\n        added: 'FIX.4.1',\n        description: 'Miscellaneous Pass-through',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167151',\n        name: 'Pfandbrief',\n        value: 'PFAND',\n        sort: 10,\n        group: 'Mortgage',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '272',\n        description: 'Pfandbrief\\n\\n\\n                        Identify the issuer name in Issuer(106).',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167152',\n        name: 'ToBeAnnounced',\n        value: 'TBA',\n        sort: 11,\n        group: 'Mortgage',\n        added: 'FIX.4.3',\n        description: 'To Be Announced',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167153',\n        name: 'OtherAnticipationNotes',\n        value: 'AN',\n        sort: 0,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Other Anticipation Notes (BAN, GAN, etc.)',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167154',\n        name: 'CertificateOfObligation',\n        value: 'COFO',\n        sort: 1,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Certificate Of Obligation',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167155',\n        name: 'CertificateOfParticipation',\n        value: 'COFP',\n        sort: 2,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Certificate Of Participation',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167156',\n        name: 'GeneralObligationBonds',\n        value: 'GO',\n        sort: 3,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'General Obligation Bonds',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167157',\n        name: 'MandatoryTender',\n        value: 'MT',\n        sort: 4,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Mandatory Tender',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167158',\n        name: 'RevenueAnticipationNote',\n        value: 'RAN',\n        sort: 5,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Revenue Anticipation Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167159',\n        name: 'RevenueBonds',\n        value: 'REV',\n        sort: 6,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Revenue Bonds',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167160',\n        name: 'SpecialAssessment',\n        value: 'SPCLA',\n        sort: 7,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Special Assessment',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167161',\n        name: 'SpecialObligation',\n        value: 'SPCLO',\n        sort: 8,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Special Obligation',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167162',\n        name: 'SpecialTax',\n        value: 'SPCLT',\n        sort: 9,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Special Tax',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167163',\n        name: 'TaxAnticipationNote',\n        value: 'TAN',\n        sort: 10,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Tax Anticipation Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167164',\n        name: 'TaxAllocation',\n        value: 'TAXA',\n        sort: 11,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Tax Allocation',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167165',\n        name: 'TaxExemptCommercialPaper',\n        value: 'TECP',\n        sort: 12,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Tax Exempt Commercial Paper',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167166',\n        name: 'TaxableMunicipalCP',\n        value: 'TMCP',\n        sort: 13,\n        group: 'Municipal',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Taxable Municipal CP',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167167',\n        name: 'TaxRevenueAnticipationNote',\n        value: 'TRAN',\n        sort: 14,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Tax Revenue Anticipation Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167168',\n        name: 'VariableRateDemandNote',\n        value: 'VRDN',\n        sort: 15,\n        group: 'Municipal',\n        added: 'FIX.4.3',\n        description: 'Variable Rate Demand Note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167169',\n        name: 'Warrant',\n        value: 'WAR',\n        sort: 16,\n        group: 'Municipal',\n        added: 'FIX.4.1',\n        description: 'Warrant',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167170',\n        name: 'MunicipalInterestBearingCommercialPaper',\n        value: 'MCPIB',\n        sort: 17,\n        group: 'Municipal',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Municipal Interest Bearing Commercial Paper',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167171',\n        name: 'TaxableMunicipalBond',\n        value: 'TMB',\n        sort: 18,\n        group: 'Municipal',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Taxable Municipal Bond',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167172',\n        name: 'VariableRateDemandObligation',\n        value: 'VRDO',\n        sort: 19,\n        group: 'Municipal',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Variable Rate Demand Obligation',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167173',\n        name: 'MutualFund',\n        value: 'MF',\n        sort: 0,\n        group: 'Other',\n        added: 'FIX.4.1',\n        description: 'Mutual Fund',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167174',\n        name: 'MultilegInstrument',\n        value: 'MLEG',\n        sort: 1,\n        group: 'Other',\n        added: 'FIX.4.3',\n        description: 'Multileg Instrument',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167175',\n        name: 'NoSecurityType',\n        value: 'NONE',\n        sort: 2,\n        group: 'Other',\n        added: 'FIX.4.1',\n        description: 'No Security Type',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167176',\n        name: 'Wildcard',\n        value: '?',\n        sort: 5,\n        group: 'Other',\n        added: 'FIX.4.2',\n        description: 'Wildcard entry for use on Security Definition Request',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167177',\n        name: 'Cash',\n        value: 'CASH',\n        sort: 6,\n        group: 'Other',\n        added: 'FIX.4.4',\n        addedEP: '28',\n        description: 'Cash',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167178',\n        name: 'Other',\n        value: 'Other',\n        sort: 7,\n        group: 'Other',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Other',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167179',\n        name: 'ExchangeTradedNote',\n        value: 'ETN',\n        sort: 8,\n        group: 'Other',\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Exchange traded note',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167180',\n        name: 'SecuritizedDerivative',\n        value: 'SECDERIV',\n        sort: 10,\n        group: 'Other',\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Securitized derivative',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167181',\n        name: 'ExchangeTradedFund',\n        value: 'ETF',\n        sort: 11,\n        group: 'Other',\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Exchange Traded Fund',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '167182',\n        name: 'DigitalAsset',\n        value: 'DIGITAL',\n        sort: 12,\n        group: 'Other',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description:\n            'Digital Asset\\n\\n\\n                        Asset that exists only in digital form or which is the digital representation of another asset (Source: ISO 24165 - Terms and Definitions).',\n        tag: 167,\n        type: 'String',\n        codeSet: 'SecurityTypeCodeSet',\n    },\n    {\n        id: '169001',\n        name: 'Other',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.1',\n        description: 'Other',\n        tag: 169,\n        type: 'int',\n        codeSet: 'StandInstDbTypeCodeSet',\n    },\n    {\n        id: '169002',\n        name: 'DTCSID',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.1',\n        description: 'DTC SID',\n        tag: 169,\n        type: 'int',\n        codeSet: 'StandInstDbTypeCodeSet',\n    },\n    {\n        id: '169003',\n        name: 'ThomsonALERT',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.1',\n        description: 'Thomson ALERT',\n        tag: 169,\n        type: 'int',\n        codeSet: 'StandInstDbTypeCodeSet',\n    },\n    {\n        id: '169004',\n        name: 'AGlobalCustodian',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.1',\n        description: 'A Global Custodian (StandInstDBName (70) must be provided)',\n        tag: 169,\n        type: 'int',\n        codeSet: 'StandInstDbTypeCodeSet',\n    },\n    {\n        id: '169005',\n        name: 'AccountNet',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'AccountNet',\n        tag: 169,\n        type: 'int',\n        codeSet: 'StandInstDbTypeCodeSet',\n    },\n    {\n        id: '172001',\n        name: 'Versus',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '35',\n        description: '\"Versus. Payment\": Deliver (if Sell) or Receive (if Buy) vs. (Against) Payment',\n        tag: 172,\n        type: 'int',\n        codeSet: 'SettlDeliveryTypeCodeSet',\n    },\n    {\n        id: '172002',\n        name: 'Free',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '35',\n        description: '\"Free\": Deliver (if Sell) or Receive (if Buy) Free',\n        tag: 172,\n        type: 'int',\n        codeSet: 'SettlDeliveryTypeCodeSet',\n    },\n    {\n        id: '172003',\n        name: 'TriParty',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '35',\n        description: 'Tri-Party',\n        tag: 172,\n        type: 'int',\n        codeSet: 'SettlDeliveryTypeCodeSet',\n    },\n    {\n        id: '172004',\n        name: 'HoldInCustody',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '35',\n        description: 'Hold In Custody',\n        tag: 172,\n        type: 'int',\n        codeSet: 'SettlDeliveryTypeCodeSet',\n    },\n    {\n        id: '197001',\n        name: 'FXNetting',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.1',\n        description: 'FX Netting',\n        tag: 197,\n        type: 'int',\n        codeSet: 'AllocLinkTypeCodeSet',\n    },\n    {\n        id: '197002',\n        name: 'FXSwap',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.1',\n        description: 'FX Swap',\n        tag: 197,\n        type: 'int',\n        codeSet: 'AllocLinkTypeCodeSet',\n    },\n    {\n        id: '201001',\n        name: 'Put',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description:\n            'Put\\n\\n\\n                        Also used for the case in which the buyer of a Swaption has the right to enter into an IRS contract as a fixed-rate receiver or into a CDS contract as a seller of protection or for the case of a Floor.',\n        tag: 201,\n        type: 'int',\n        codeSet: 'PutOrCallCodeSet',\n    },\n    {\n        id: '201002',\n        name: 'Call',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description:\n            'Call\\n\\n\\n                        Also used for the case in which the buyer of a Swaption has the right to enter into an IRS contract as a fixed-rate payer or into a CDS contract as a buyer of protection or for the case of a Cap.',\n        tag: 201,\n        type: 'int',\n        codeSet: 'PutOrCallCodeSet',\n    },\n    {\n        id: '201003',\n        name: 'Other',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        description:\n            'Other\\n\\n\\n                        In the context of ESMA RTS 22 reporting, this value may be used when, at the time of execution, the option right cannot be determined.',\n        tag: 201,\n        type: 'int',\n        codeSet: 'PutOrCallCodeSet',\n    },\n    {\n        id: '201004',\n        name: 'Chooser',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description:\n            'Chooser\\n\\n\\n                        Indicates that the option buyer may choose to buy or sell the underlying security on exercise or if a Swaption to pay or receive the underlying IRS cash flow stream or to buy or sell CDS protection.',\n        tag: 201,\n        type: 'int',\n        codeSet: 'PutOrCallCodeSet',\n    },\n    {\n        id: '203001',\n        name: 'Covered',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.1',\n        description: 'Covered',\n        tag: 203,\n        type: 'int',\n        codeSet: 'CoveredOrUncoveredCodeSet',\n    },\n    {\n        id: '203002',\n        name: 'Uncovered',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.1',\n        description: 'Uncovered',\n        tag: 203,\n        type: 'int',\n        codeSet: 'CoveredOrUncoveredCodeSet',\n    },\n    {\n        id: '208001',\n        name: 'DetailsShouldNotBeCommunicated',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.1',\n        description: 'Details should not be communicated',\n        tag: 208,\n        type: 'Boolean',\n        codeSet: 'NotifyBrokerOfCreditCodeSet',\n    },\n    {\n        id: '208002',\n        name: 'DetailsShouldBeCommunicated',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.1',\n        description: 'Details should be communicated',\n        tag: 208,\n        type: 'Boolean',\n        codeSet: 'NotifyBrokerOfCreditCodeSet',\n    },\n    {\n        id: '209001',\n        name: 'Match',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.1',\n        description: 'Match',\n        tag: 209,\n        type: 'int',\n        codeSet: 'AllocHandlInstCodeSet',\n    },\n    {\n        id: '209002',\n        name: 'Forward',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.1',\n        description: 'Forward',\n        tag: 209,\n        type: 'int',\n        codeSet: 'AllocHandlInstCodeSet',\n    },\n    {\n        id: '209003',\n        name: 'ForwardAndMatch',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.1',\n        description: 'Forward and Match',\n        tag: 209,\n        type: 'int',\n        codeSet: 'AllocHandlInstCodeSet',\n    },\n    {\n        id: '209004',\n        name: 'AutoClaimGiveUp',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '245',\n        description:\n            'Auto claim give-up\\n\\n\\n                        Indicates that the give-up and take-up party are the same and that trade give-up is to be claimed automatically.',\n        tag: 209,\n        type: 'int',\n        codeSet: 'AllocHandlInstCodeSet',\n    },\n    {\n        id: '216001',\n        name: 'TargetFirm',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Target Firm',\n        tag: 216,\n        type: 'int',\n        codeSet: 'RoutingTypeCodeSet',\n    },\n    {\n        id: '216002',\n        name: 'TargetList',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Target List',\n        tag: 216,\n        type: 'int',\n        codeSet: 'RoutingTypeCodeSet',\n    },\n    {\n        id: '216003',\n        name: 'BlockFirm',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Block Firm',\n        tag: 216,\n        type: 'int',\n        codeSet: 'RoutingTypeCodeSet',\n    },\n    {\n        id: '216004',\n        name: 'BlockList',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Block List',\n        tag: 216,\n        type: 'int',\n        codeSet: 'RoutingTypeCodeSet',\n    },\n    {\n        id: '216005',\n        name: 'TargetPerson',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description: 'Target Person',\n        tag: 216,\n        type: 'int',\n        codeSet: 'RoutingTypeCodeSet',\n    },\n    {\n        id: '216006',\n        name: 'BlockPerson',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description: 'Block Person',\n        tag: 216,\n        type: 'int',\n        codeSet: 'RoutingTypeCodeSet',\n    },\n    {\n        id: '221001',\n        name: 'EONIA',\n        value: 'EONIA',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'EONIA',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221002',\n        name: 'EUREPO',\n        value: 'EUREPO',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'EUREPO',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221003',\n        name: 'Euribor',\n        value: 'Euribor',\n        sort: 3,\n        added: 'FIX.4.3',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '132',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '132',\n        description:\n            'EURIBOR (deprecated use enum EURIBOR instead)\\n\\n\\n                        Deprecated use of EURIBOR for the enumeration.',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221004',\n        name: 'FutureSWAP',\n        value: 'FutureSWAP',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'FutureSWAP',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221005',\n        name: 'LIBID',\n        value: 'LIBID',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'LIBID',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221006',\n        name: 'LIBOR',\n        value: 'LIBOR',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'LIBOR (London Inter-Bank Offer)',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221007',\n        name: 'MuniAAA',\n        value: 'MuniAAA',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'MuniAAA',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221008',\n        name: 'OTHER',\n        value: 'OTHER',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'OTHER',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221009',\n        name: 'Pfandbriefe',\n        value: 'Pfandbriefe',\n        sort: 9,\n        added: 'FIX.4.3',\n        description: 'Pfandbriefe',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221010',\n        name: 'SONIA',\n        value: 'SONIA',\n        sort: 10,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'SONIA',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221011',\n        name: 'SWAP',\n        value: 'SWAP',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: 'SWAP',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221012',\n        name: 'Treasury',\n        value: 'Treasury',\n        sort: 12,\n        added: 'FIX.4.3',\n        description: 'Treasury',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221013',\n        name: 'FedFundRateEffective',\n        value: 'FEDEFF',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        description:\n            'US Federal Reserve fed funds effective rate\\n\\n\\n                        US Federal Reserve fed funds effective rate or the weighted average of the actual negotiated rates banks pay each other to to borrow funds.',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221014',\n        name: 'FedOpen',\n        value: 'FEDOPEN',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        description:\n            'US fed funds target rate\\n\\n\\n                        Fed funds target rate as determined by the US Federal Reserve Federal Open Market Committee.',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221015',\n        name: 'EURIBOR',\n        value: 'EURIBOR',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        description: 'Euro interbank offer rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221016',\n        name: 'AUBSW',\n        value: 'AUBSW',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Australian Bank Bill Swap Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221017',\n        name: 'BUBOR',\n        value: 'BUBOR',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Budapest Bank Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221018',\n        name: 'CDOR',\n        value: 'CDOR',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Canadian Dollar Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221019',\n        name: 'CIBOR',\n        value: 'CIBOR',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Copenhagen Interbank Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221020',\n        name: 'EONIASWAP',\n        value: 'EONIASWAP',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Euro Overnight Index Average Swap Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221021',\n        name: 'ESTR',\n        value: 'ESTR',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Euro Short Term Rate\\n\\n\\n                        Replaces EONIA.',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221022',\n        name: 'EURODOLLAR',\n        value: 'EURODOLLAR',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Euro Dollar Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221023',\n        name: 'EUROSWISS',\n        value: 'EUROSWISS',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Euro Swiss Franc Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221024',\n        name: 'GCFREPO',\n        value: 'GCFREPO',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'DTCC General Collateral Finance Repo Index',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221025',\n        name: 'ISDAFIX',\n        value: 'ISDAFIX',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'ICE Swap Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221026',\n        name: 'JIBAR',\n        value: 'JIBAR',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Johannesburg Interbank Agreed Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221027',\n        name: 'MOSPRIM',\n        value: 'MOSPRIM',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Moscow Prime Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221028',\n        name: 'NIBOR',\n        value: 'NIBOR',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Nigeria Three Month Interbank Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221029',\n        name: 'PRIBOR',\n        value: 'PRIBOR',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Czech Republic Interbank Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221030',\n        name: 'SOFR',\n        value: 'SOFR',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Secured Overnight Financing Rate\\n\\n\\n                        Replaces LIBOR.',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221031',\n        name: 'STIBOR',\n        value: 'STIBOR',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Stockholm Interbank Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221032',\n        name: 'TELBOR',\n        value: 'TELBOR',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Bank of Israel Interbank Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221033',\n        name: 'TIBOR',\n        value: 'TIBOR',\n        sort: 33,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Tokyo Interbank Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221034',\n        name: 'WIBOR',\n        value: 'WIBOR',\n        sort: 34,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Warsaw Interbank Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221035',\n        name: 'AONIA',\n        value: 'AONIA',\n        sort: 35,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description:\n            'Reserve Bank of Australia Interbank Overnight Cash Rate\\n\\n\\n                        Also known as AUD Overnight Index Average.',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221036',\n        name: 'AONIAR',\n        value: 'AONIA-R',\n        sort: 36,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description:\n            'Realised AONIA\\n\\n\\n                        \"Realised AONIA applies a compounding formula to the daily AONIA rate, to determine the compounded average rate over the prior 1 to 6 month period.\" (source https://www.asx.com.au/documents/products/realised-aonia-explained.pdf).',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221037',\n        name: 'BKBM',\n        value: 'BKBM',\n        sort: 37,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'New Zealand Bank Bill Market Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221038',\n        name: 'CD91D',\n        value: 'CD91D',\n        sort: 38,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Republic of Korea 90-Day Certificate of Deposit Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221039',\n        name: 'CORRA',\n        value: 'CORRA',\n        sort: 39,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Canadian Overnight Repo Rate Average',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221040',\n        name: 'DIRRTN',\n        value: 'DIRR-TN',\n        sort: 40,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Danish Interbank Interest Rate-Tomorrow or Next',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221041',\n        name: 'EIBOR',\n        value: 'EIBOR',\n        sort: 41,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Emirates Interbank Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221042',\n        name: 'FixingRepoRate',\n        value: 'FixingRepoRate',\n        sort: 42,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'China Interbank Overnight Repo Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221043',\n        name: 'HIBOR',\n        value: 'HIBOR',\n        sort: 43,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Hong Kong Interbank Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221044',\n        name: 'IBR',\n        value: 'IBR',\n        sort: 44,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Colombia Overnight Interbank Reference Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221045',\n        name: 'KLIBOR',\n        value: 'KLIBOR',\n        sort: 45,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Kuala Lumpur Interbank Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221046',\n        name: 'MIBOR',\n        value: 'MIBOR',\n        sort: 46,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Mumbia Interbank Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221047',\n        name: 'NZONIA',\n        value: 'NZONIA',\n        sort: 47,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'New Zealand Overnight Indexed Swaps (OIS)',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221048',\n        name: 'PHIREF',\n        value: 'PHIREF',\n        sort: 48,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Philippines Interbank Reference Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221049',\n        name: 'REIBOR',\n        value: 'REIBOR',\n        sort: 49,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Reykjavik Interbank Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221050',\n        name: 'SAIBOR',\n        value: 'SAIBOR',\n        sort: 50,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Saudi Arabian Interbank Offered Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221051',\n        name: 'SARON',\n        value: 'SARON',\n        sort: 51,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Swiss Average Rate Overnight',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221052',\n        name: 'SORA',\n        value: 'SORA',\n        sort: 52,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Singapore Swap Offer Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221053',\n        name: 'TLREF',\n        value: 'TLREF',\n        sort: 53,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Turkish Lira Overnight Reference Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221054',\n        name: 'TIIE',\n        value: 'TIIE',\n        sort: 54,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Mexico Interbank Equilibrium Interest Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221055',\n        name: 'THBFIX',\n        value: 'THBFIX',\n        sort: 55,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Thai Baht Interest Rate Fixing',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221056',\n        name: 'TONAR',\n        value: 'TONAR',\n        sort: 56,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description: 'Tokyo Overnight Average Rate',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '221057',\n        name: 'OBFR',\n        value: 'OBFR',\n        sort: 57,\n        added: 'FIX.Latest',\n        addedEP: '301',\n        description:\n            'Overnight Bank Funding Rate\\n\\nUS Federal Reserve measure of wholesale, unsecured, overnight bank funding costs (see https://www.newyorkfed.org/markets/reference-rates/obfr).',\n        tag: 221,\n        type: 'String',\n        codeSet: 'BenchmarkCurveNameCodeSet',\n    },\n    {\n        id: '233001',\n        name: 'AlternativeMinimumTax',\n        value: 'AMT',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Alternative Minimum Tax (Y/N)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233002',\n        name: 'AutoReinvestment',\n        value: 'AUTOREINV',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Auto Reinvestment at <rate> or better',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233003',\n        name: 'BankQualified',\n        value: 'BANKQUAL',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Bank qualified (Y/N)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233004',\n        name: 'BargainConditions',\n        value: 'BGNCON',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Bargain conditions (see StipulationValue (234) for values)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233005',\n        name: 'CouponRange',\n        value: 'COUPON',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Coupon range',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233006',\n        name: 'ISOCurrencyCode',\n        value: 'CURRENCY',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'ISO Currency Code',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233007',\n        name: 'CustomStart',\n        value: 'CUSTOMDATE',\n        sort: 7,\n        added: 'FIX.4.4',\n        description: 'Custom start/end date',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233008',\n        name: 'Geographics',\n        value: 'GEOG',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'Geographics and % range (ex. 234=CA 0-80 [minimum of 80% California assets])',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233009',\n        name: 'ValuationDiscount',\n        value: 'HAIRCUT',\n        sort: 9,\n        added: 'FIX.4.4',\n        description: 'Valuation Discount',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233010',\n        name: 'Insured',\n        value: 'INSURED',\n        sort: 10,\n        added: 'FIX.4.4',\n        description: 'Insured (Y/N)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233011',\n        name: 'IssueDate',\n        value: 'ISSUE',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: 'Year Or Year/Month of Issue (ex. 234=2002/09)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233012',\n        name: 'Issuer',\n        value: 'ISSUER',\n        sort: 12,\n        added: 'FIX.4.4',\n        description: \"Issuer's ticker\",\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233013',\n        name: 'IssueSizeRange',\n        value: 'ISSUESIZE',\n        sort: 13,\n        added: 'FIX.4.4',\n        description: 'issue size range',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233014',\n        name: 'LookbackDays',\n        value: 'LOOKBACK',\n        sort: 14,\n        added: 'FIX.4.4',\n        description: 'Lookback Days',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233015',\n        name: 'ExplicitLotIdentifier',\n        value: 'LOT',\n        sort: 15,\n        added: 'FIX.4.4',\n        description: 'Explicit lot identifier',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233016',\n        name: 'LotVariance',\n        value: 'LOTVAR',\n        sort: 16,\n        added: 'FIX.4.3',\n        description: 'Lot Variance (value in percent maximum over- or under-allocation allowed)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233017',\n        name: 'MaturityYearAndMonth',\n        value: 'MAT',\n        sort: 17,\n        added: 'FIX.4.3',\n        description: 'Maturity Year And Month',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233018',\n        name: 'MaturityRange',\n        value: 'MATURITY',\n        sort: 18,\n        added: 'FIX.4.4',\n        description: 'Maturity range',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233019',\n        name: 'MaximumSubstitutions',\n        value: 'MAXSUBS',\n        sort: 19,\n        added: 'FIX.4.4',\n        description: 'Maximum substitutions (Repo)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233020',\n        name: 'MinimumDenomination',\n        value: 'MINDNOM',\n        sort: 20,\n        added: 'FIX.4.4',\n        description: 'Minimum denomination',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233021',\n        name: 'MinimumIncrement',\n        value: 'MININCR',\n        sort: 21,\n        added: 'FIX.4.4',\n        description: 'Minimum increment',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233022',\n        name: 'MinimumQuantity',\n        value: 'MINQTY',\n        sort: 22,\n        added: 'FIX.4.4',\n        description: 'Minimum quantity',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233023',\n        name: 'PaymentFrequency',\n        value: 'PAYFREQ',\n        sort: 23,\n        added: 'FIX.4.4',\n        description: 'Payment frequency, calendar',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233024',\n        name: 'NumberOfPieces',\n        value: 'PIECES',\n        sort: 24,\n        added: 'FIX.4.3',\n        description: 'Number Of Pieces',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233025',\n        name: 'PoolsMaximum',\n        value: 'PMAX',\n        sort: 25,\n        added: 'FIX.4.3',\n        description: 'Pools Maximum',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233026',\n        name: 'PoolsPerLot',\n        value: 'PPL',\n        sort: 26,\n        added: 'FIX.4.3',\n        description: 'Pools per Lot',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233027',\n        name: 'PoolsPerMillion',\n        value: 'PPM',\n        sort: 27,\n        added: 'FIX.4.3',\n        description: 'Pools per Million',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233028',\n        name: 'PoolsPerTrade',\n        value: 'PPT',\n        sort: 28,\n        added: 'FIX.4.3',\n        description: 'Pools per Trade',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233029',\n        name: 'PriceRange',\n        value: 'PRICE',\n        sort: 29,\n        added: 'FIX.4.4',\n        description: 'Price Range',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233030',\n        name: 'PricingFrequency',\n        value: 'PRICEFREQ',\n        sort: 30,\n        added: 'FIX.4.4',\n        description: 'Pricing frequency',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233031',\n        name: 'ProductionYear',\n        value: 'PROD',\n        sort: 31,\n        added: 'FIX.4.3',\n        description: 'Production Year',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233032',\n        name: 'CallProtection',\n        value: 'PROTECT',\n        sort: 32,\n        added: 'FIX.4.4',\n        description: 'Call protection',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233033',\n        name: 'Purpose',\n        value: 'PURPOSE',\n        sort: 33,\n        added: 'FIX.4.4',\n        description: 'Purpose',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233034',\n        name: 'BenchmarkPriceSource',\n        value: 'PXSOURCE',\n        sort: 34,\n        added: 'FIX.4.4',\n        description: 'Benchmark price source',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233035',\n        name: 'RatingSourceAndRange',\n        value: 'RATING',\n        sort: 35,\n        added: 'FIX.4.4',\n        description: 'Rating source and range',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233036',\n        name: 'TypeOfRedemption',\n        value: 'REDEMPTION',\n        sort: 36,\n        added: 'FIX.4.4',\n        description:\n            'Type Of Redemption - values are: NonCallable, Prefunded, EscrowedToMaturity, Putable, Convertible',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233037',\n        name: 'Restricted',\n        value: 'RESTRICTED',\n        sort: 37,\n        added: 'FIX.4.4',\n        description: 'Restricted (Y/N)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233038',\n        name: 'MarketSector',\n        value: 'SECTOR',\n        sort: 38,\n        added: 'FIX.4.4',\n        description: 'Market Sector',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233039',\n        name: 'SecurityTypeIncludedOrExcluded',\n        value: 'SECTYPE',\n        sort: 39,\n        added: 'FIX.4.4',\n        description: 'Security Type included or excluded',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233040',\n        name: 'Structure',\n        value: 'STRUCT',\n        sort: 40,\n        added: 'FIX.4.4',\n        description: 'Structure',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233041',\n        name: 'SubstitutionsFrequency',\n        value: 'SUBSFREQ',\n        sort: 41,\n        added: 'FIX.4.4',\n        description: 'Substitutions frequency (Repo)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233042',\n        name: 'SubstitutionsLeft',\n        value: 'SUBSLEFT',\n        sort: 42,\n        added: 'FIX.4.4',\n        description: 'Substitutions left (Repo)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233043',\n        name: 'FreeformText',\n        value: 'TEXT',\n        sort: 43,\n        added: 'FIX.4.4',\n        description: 'Freeform Text',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233044',\n        name: 'TradeVariance',\n        value: 'TRDVAR',\n        sort: 44,\n        added: 'FIX.4.3',\n        description: 'Trade Variance (value in percent maximum over- or under-allocation allowed)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233045',\n        name: 'WeightedAverageCoupon',\n        value: 'WAC',\n        sort: 45,\n        added: 'FIX.4.3',\n        description:\n            'Weighted Average Coupon - value in percent (exact or range) plus \"Gross\" or \"Net\" of servicing spread (the default) (ex. 234=6.5-Net [minimum of 6.5% net of servicing fee])',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233046',\n        name: 'WeightedAverageLifeCoupon',\n        value: 'WAL',\n        sort: 46,\n        added: 'FIX.4.3',\n        description: 'Weighted Average Life Coupon - value in percent (exact or range)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233047',\n        name: 'WeightedAverageLoanAge',\n        value: 'WALA',\n        sort: 47,\n        added: 'FIX.4.3',\n        description: 'Weighted Average Loan Age - value in months (exact or range)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233048',\n        name: 'WeightedAverageMaturity',\n        value: 'WAM',\n        sort: 48,\n        added: 'FIX.4.3',\n        description: 'Weighted Average Maturity - value in months (exact or range)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233049',\n        name: 'WholePool',\n        value: 'WHOLE',\n        sort: 49,\n        added: 'FIX.4.4',\n        description: 'Whole Pool (Y/N)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233050',\n        name: 'YieldRange',\n        value: 'YIELD',\n        sort: 50,\n        added: 'FIX.4.4',\n        description: 'Yield Range',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233051',\n        name: 'OriginalAmount',\n        value: 'ORIGAMT',\n        sort: 51,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Original amount\\n\\n\\n                        The original issued amount of a mortgage backed security or other loan/asset backed security.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233052',\n        name: 'PoolEffectiveDate',\n        value: 'POOLEFFDT',\n        sort: 52,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Pool effective date',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233053',\n        name: 'PoolInitialFactor',\n        value: 'POOLINITFCTR',\n        sort: 53,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Pool initial factor\\n\\n\\n                        For morttgage backed securities, the part of the mortgage that is outstanding on trade inception, i.e. has not been repaid yet as principal. It is expressed as a multiplier factor to the mortgage: where 1 means that the whole mortage amount is outstanding, 0.8 means that80% remains to be repaid and 20% has been repaid.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233054',\n        name: 'Tranche',\n        value: 'TRANCHE',\n        sort: 54,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Tranche identifier\\n\\n\\n                        Identifies the tranche of a mortgage backed security, loan, collateralized mortgage obligation or similar securities that can be split into different risk or maturity (for example) classes.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233055',\n        name: 'Substitution',\n        value: 'SUBSTITUTION',\n        sort: 55,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Substitution (Y/N)\\n\\n\\n                        Indicates whether substitution is applicable (Y) or (N).',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233056',\n        name: 'MULTEXCHFLLBCK',\n        value: 'MULTEXCHFLLBCK',\n        sort: 56,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Multiple exchange fallback (Y/N)\\n\\n\\n                        For an index option transaction, indicates whether a relevant \"Multiple Exchange Index Annex\" is applicable (Y) to the transaction or not (N). This annex defines additional provisions which are applicable where an index is comprised of component securities that are traded on multiple exchanges.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233057',\n        name: 'COMPSECFLLBCK',\n        value: 'COMPSECFLLBCK',\n        sort: 57,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Component security fallback (Y/N)\\n\\n\\n                        For an index option transaction, indicates whether a relevant \"Component Security Index Annex\" is applicable (Y) to the transaction or not (N).',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233058',\n        name: 'LOCLJRSDCTN',\n        value: 'LOCLJRSDCTN',\n        sort: 58,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Local jurisdiction (Y/N)\\n\\n\\n                        \"Local Jurisdiction\" is used in the AEJ Master Confirmation to determine applicability (Y), or not (N), of local taxes (including taxes, duties, and similar charges) imposed by the taxing authority of the local jurisdiction.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233059',\n        name: 'RELVJRSDCTN',\n        value: 'RELVJRSDCTN',\n        sort: 59,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Relevant jurisdiction (Y/N)\\n\\n\\n                        \"Relevant Jurisdiction\" is used in the AEJ Master Confirmation to determine applicability (Y), or not (N), of local taxes (including taxes, duties and similar charges) that would be imposed by the taxing authority of the \"country of underlier\" on a \"hypothetical broker dealer\" assuming that the applicable hedge positions are held by its office in the Relevant Jurisdiction.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233060',\n        name: 'IncurredRecovery',\n        value: 'INCURRCVY',\n        sort: 1,\n        group: 'CDS General Terms',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Incurred recovery (Y/N)\\n\\n\\n                        Specifies whether incurred recovery is applicable (Y) or not (N). Outstanding Swap Notional Amount is defined at any time on any day, as the greater of: (a) Zero; If Incurred Recovery Amount Applicable: (b) The Original Swap Notional Amount minus the sum of all Incurred Loss Amounts and all Incurred Recovery Amounts (if any) determined under this Confirmation at or prior to such time.Incurred Recovery Amount not populated: (b) The Original Swap Notional Amount minus the sum of all Incurred Loss Amounts determined under this Confirmation at or prior to such time. 2009 CDX Tranche Terms.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233061',\n        name: 'AdditionalTerm',\n        value: 'ADDTRM',\n        sort: 2,\n        group: 'CDS General Terms',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Additional term\\n\\n\\n                        Used for representing information contained in the Additional Terms field of the 2003 Master Credit Derivatives confirm.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233062',\n        name: 'ModifiedEquityDelivery',\n        value: 'MODEQTYDLVY',\n        sort: 3,\n        group: 'CDS General Terms',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Modified equity delivery\\n\\n\\n                        Indicates whether delivery of selected obligationshaving an amountgreater than the reference entity notional amount is allowed (Y) or (N). 2005 iTraxx tranched Transactions Standard Terms Supplement.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233063',\n        name: 'NoReferenceOblication',\n        value: 'NOREFOBLIG',\n        sort: 4,\n        group: 'CDS General Terms',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'No reference obligation (Y/N)\\n\\n\\n                        When specified as \"Y\" this indicates that there is no Reference Obligation associated with this Credit Default Swap and that there will never be one. 2003 ISDA Credit Derivatives Definitions.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233064',\n        name: 'UnknownReferenceObligation',\n        value: 'UNKREFOBLIG',\n        sort: 5,\n        group: 'CDS General Terms',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Unknown reference obligation (Y/N)\\n\\n\\n                        When specified as \"Y\" this indicates that the Reference obligation associated with the Credit Default Swap is currently not known. This is not valid for Legal Confirmation purposes, but is valid for earlier stages in the trade life cycle (e.g. Broker Confirmation). 2003 FpML-CD-4.0.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233065',\n        name: 'AllGuarantees',\n        value: 'ALLGUARANTEES',\n        sort: 6,\n        group: 'CDS General Terms',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'All guarantees (Y/N)\\n\\n\\n                        Indicates whether an obligation of the Reference Entity, guaranteed by the Reference Entity on behalf of a non-Affiliate, is to be considered an Obligation for the purpose of the transaction (Y) or (N). ISDA 2003 Term: All Guarantees.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233066',\n        name: 'ReferencePrice',\n        value: 'REFPX',\n        sort: 7,\n        group: 'CDS General Terms',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Reference price (Y/N)\\n\\n\\n                        Specifies the reference price expressed as a percentage between 0 and 1 (e.g. 0.05 is 5%). The reference price is used to determine (a) for physically settled trades, the Physical Settlement Amount, which equals the Floating Rate Payer Calculation Amount times the Reference Price and (b) for cash settled trades, the Cash Settlement Amount, which equals the greater of (i) the difference between the Reference Price and the Final Price and (ii) zero. ISDA 2003 Term: Reference Price.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233067',\n        name: 'ReferencePolicy',\n        value: 'REFPOLICY',\n        sort: 8,\n        group: 'CDS General Terms',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Reference policy (Y/N)\\n\\n\\n                        Indicates whether the reference obligation is guaranteed (Y), or not (N), under a reference policy. If the Reference Obligation is guaranteed under a Reference Policy, and such Reference Policy by its terms excludes any component of the Expected Principal Amount for purposes of determining the liability of the relevant Insurer, or the Insurer is otherwise not required to pay any such amounts under the terms of the Reference Policy, the relevant component or amount shall also be excluded for purposes of determining the Expected Principal Amount with respect to any determination of Principal Shortfall hereunder. 2006 ISDA CDS on MBS Terms.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233068',\n        name: 'SecuredList',\n        value: 'SECRDLIST',\n        sort: 9,\n        group: 'CDS General Terms',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Secured list (Y/N)\\n\\n\\n                        Specifies whether a list of Syndicated Secured Obligations (also known as the Relevant Secured List) exists (Y), or not (N), for the Reference Entity. With respect to any day, the list of Syndicated Secured Obligations of the Designated Priority of the Reference Entity published by Markit Group Limited or any successor thereto appointed by the Specified Dealers (the \"Secured List Publisher\") on or most recently before such day, which list is currently available at [http://www.markit.com]. ISDA 2003 Term: Relevant Secured List.',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233069',\n        name: 'AverageFICOScore',\n        value: 'AVFICO',\n        sort: 51,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Average FICO Score',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233070',\n        name: 'AverageLoanSize',\n        value: 'AVSIZE',\n        sort: 52,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Average Loan Size',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233071',\n        name: 'MaximumLoanBalance',\n        value: 'MAXBAL',\n        sort: 53,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Maximum Loan Balance',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233072',\n        name: 'PoolIdentifier',\n        value: 'POOL',\n        sort: 54,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Pool Identifier',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233073',\n        name: 'TypeOfRollTrade',\n        value: 'ROLLTYPE',\n        sort: 55,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Type of Roll trade',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233074',\n        name: 'ReferenceToRollingOrClosingTrade',\n        value: 'REFTRADE',\n        sort: 56,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '258',\n        description: 'Reference to rolling or closing trade',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233075',\n        name: 'PrincipalOfRollingOrClosingTrade',\n        value: 'REFPRIN',\n        sort: 57,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '258',\n        description: 'Principal to rolling or closing trade',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233076',\n        name: 'InterestOfRollingOrClosingTrade',\n        value: 'REFINT',\n        sort: 58,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '258',\n        description: 'Interest of rolling or closing trade',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233077',\n        name: 'AvailableOfferQuantityToBeShownToTheStreet',\n        value: 'AVAILQTY',\n        sort: 59,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Available offer quantity to be shown to the street',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233078',\n        name: 'BrokerCredit',\n        value: 'BROKERCREDIT',\n        sort: 60,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: \"Broker's sales credit\",\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233079',\n        name: 'OfferPriceToBeShownToInternalBrokers',\n        value: 'INTERNALPX',\n        sort: 61,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Offer price to be shown to internal brokers',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233080',\n        name: 'OfferQuantityToBeShownToInternalBrokers',\n        value: 'INTERNALQTY',\n        sort: 62,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Offer quantity to be shown to internal brokers',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233081',\n        name: 'TheMinimumResidualOfferQuantity',\n        value: 'LEAVEQTY',\n        sort: 63,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'The minimum residual offer quantity',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233082',\n        name: 'MaximumOrderSize',\n        value: 'MAXORDQTY',\n        sort: 64,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Maximum order size',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233083',\n        name: 'OrderQuantityIncrement',\n        value: 'ORDRINCR',\n        sort: 65,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Order quantity increment',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233084',\n        name: 'PrimaryOrSecondaryMarketIndicator',\n        value: 'PRIMARY',\n        sort: 66,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Primary or Secondary market indicator',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233085',\n        name: 'BrokerSalesCreditOverride',\n        value: 'SALESCREDITOVR',\n        sort: 67,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Broker sales credit override',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233086',\n        name: 'TraderCredit',\n        value: 'TRADERCREDIT',\n        sort: 68,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: \"Trader's credit\",\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233087',\n        name: 'DiscountRate',\n        value: 'DISCOUNT',\n        sort: 69,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Discount Rate (when price is denominated in percent of par)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233088',\n        name: 'YieldToMaturity',\n        value: 'YTM',\n        sort: 71,\n        group: 'Other',\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Yield to Maturity (when YieldType(235) and Yield(236) show a different yield)',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233089',\n        name: 'InterestPayoffOfRollingOrAmendingTrade',\n        value: 'PAYOFF',\n        sort: 72,\n        group: 'Other',\n        added: 'FIX.5.0SP2',\n        addedEP: '258',\n        description: 'Interest payoff of rolling or amending trade',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233090',\n        name: 'AbsolutePrepaymentSpeed',\n        value: 'ABS',\n        sort: 1,\n        group: 'Prepayment Speeds',\n        added: 'FIX.4.3',\n        description: 'Absolute Prepayment Speed',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233091',\n        name: 'ConstantPrepaymentPenalty',\n        value: 'CPP',\n        sort: 2,\n        group: 'Prepayment Speeds',\n        added: 'FIX.4.3',\n        description: 'Constant Prepayment Penalty',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233092',\n        name: 'ConstantPrepaymentRate',\n        value: 'CPR',\n        sort: 3,\n        group: 'Prepayment Speeds',\n        added: 'FIX.4.3',\n        description: 'Constant Prepayment Rate',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233093',\n        name: 'ConstantPrepaymentYield',\n        value: 'CPY',\n        sort: 4,\n        group: 'Prepayment Speeds',\n        added: 'FIX.4.3',\n        description: 'Constant Prepayment Yield',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233094',\n        name: 'FinalCPROfHomeEquityPrepaymentCurve',\n        value: 'HEP',\n        sort: 5,\n        group: 'Prepayment Speeds',\n        added: 'FIX.4.3',\n        description: 'final CPR of Home Equity Prepayment Curve',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233095',\n        name: 'PercentOfManufacturedHousingPrepaymentCurve',\n        value: 'MHP',\n        sort: 6,\n        group: 'Prepayment Speeds',\n        added: 'FIX.4.3',\n        description: 'Percent of Manufactured Housing Prepayment Curve',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233096',\n        name: 'MonthlyPrepaymentRate',\n        value: 'MPR',\n        sort: 7,\n        group: 'Prepayment Speeds',\n        added: 'FIX.4.3',\n        description: 'Monthly Prepayment Rate',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233097',\n        name: 'PercentOfProspectusPrepaymentCurve',\n        value: 'PPC',\n        sort: 8,\n        group: 'Prepayment Speeds',\n        added: 'FIX.4.3',\n        description: 'Percent of Prospectus Prepayment Curve',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233098',\n        name: 'PercentOfBMAPrepaymentCurve',\n        value: 'PSA',\n        sort: 9,\n        group: 'Prepayment Speeds',\n        added: 'FIX.4.3',\n        description: 'Percent of BMA Prepayment Curve',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '233099',\n        name: 'SingleMonthlyMortality',\n        value: 'SMM',\n        sort: 10,\n        group: 'Prepayment Speeds',\n        added: 'FIX.4.3',\n        description: 'Single Monthly Mortality',\n        tag: 233,\n        type: 'String',\n        codeSet: 'StipulationTypeCodeSet',\n    },\n    {\n        id: '235001',\n        name: 'AfterTaxYield',\n        value: 'AFTERTAX',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'After Tax Yield (Municipals)',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235002',\n        name: 'AnnualYield',\n        value: 'ANNUAL',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Annual Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235003',\n        name: 'YieldAtIssue',\n        value: 'ATISSUE',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Yield At Issue (Municipals)',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235004',\n        name: 'YieldToAverageMaturity',\n        value: 'AVGMATURITY',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Yield To Avg Maturity',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235005',\n        name: 'BookYield',\n        value: 'BOOK',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Book Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235006',\n        name: 'YieldToNextCall',\n        value: 'CALL',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Yield to Next Call',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235007',\n        name: 'YieldChangeSinceClose',\n        value: 'CHANGE',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Yield Change Since Close',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235008',\n        name: 'ClosingYield',\n        value: 'CLOSE',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'Closing Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235009',\n        name: 'CompoundYield',\n        value: 'COMPOUND',\n        sort: 9,\n        added: 'FIX.4.3',\n        description: 'Compound Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235010',\n        name: 'CurrentYield',\n        value: 'CURRENT',\n        sort: 10,\n        added: 'FIX.4.3',\n        description: 'Current Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235011',\n        name: 'GvntEquivalentYield',\n        value: 'GOVTEQUIV',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: 'Gvnt Equivalent Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235012',\n        name: 'TrueGrossYield',\n        value: 'GROSS',\n        sort: 12,\n        added: 'FIX.4.3',\n        description: 'True Gross Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235013',\n        name: 'YieldWithInflationAssumption',\n        value: 'INFLATION',\n        sort: 13,\n        added: 'FIX.4.3',\n        description: 'Yield with Inflation Assumption',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235014',\n        name: 'InverseFloaterBondYield',\n        value: 'INVERSEFLOATER',\n        sort: 14,\n        added: 'FIX.4.3',\n        description: 'Inverse Floater Bond Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235015',\n        name: 'MostRecentClosingYield',\n        value: 'LASTCLOSE',\n        sort: 15,\n        added: 'FIX.4.3',\n        description: 'Most Recent Closing Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235016',\n        name: 'ClosingYieldMostRecentMonth',\n        value: 'LASTMONTH',\n        sort: 16,\n        added: 'FIX.4.3',\n        description: 'Closing Yield Most Recent Month',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235017',\n        name: 'ClosingYieldMostRecentQuarter',\n        value: 'LASTQUARTER',\n        sort: 17,\n        added: 'FIX.4.3',\n        description: 'Closing Yield Most Recent Quarter',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235018',\n        name: 'ClosingYieldMostRecentYear',\n        value: 'LASTYEAR',\n        sort: 18,\n        added: 'FIX.4.3',\n        description: 'Closing Yield Most Recent Year',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235019',\n        name: 'YieldToLongestAverageLife',\n        value: 'LONGAVGLIFE',\n        sort: 19,\n        added: 'FIX.4.3',\n        description: 'Yield to Longest Average Life',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235020',\n        name: 'MarkToMarketYield',\n        value: 'MARK',\n        sort: 20,\n        added: 'FIX.4.3',\n        description: 'Mark to Market Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235021',\n        name: 'YieldToMaturity',\n        value: 'MATURITY',\n        sort: 21,\n        added: 'FIX.4.3',\n        description: 'Yield to Maturity',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235022',\n        name: 'YieldToNextRefund',\n        value: 'NEXTREFUND',\n        sort: 22,\n        added: 'FIX.4.3',\n        description: 'Yield to Next Refund (Sinking Fund Bonds)',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235023',\n        name: 'OpenAverageYield',\n        value: 'OPENAVG',\n        sort: 23,\n        added: 'FIX.4.3',\n        description: 'Open Average Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235024',\n        name: 'PreviousCloseYield',\n        value: 'PREVCLOSE',\n        sort: 24,\n        added: 'FIX.4.3',\n        description: 'Previous Close Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235025',\n        name: 'ProceedsYield',\n        value: 'PROCEEDS',\n        sort: 25,\n        added: 'FIX.4.3',\n        description: 'Proceeds Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235026',\n        name: 'YieldToNextPut',\n        value: 'PUT',\n        sort: 26,\n        added: 'FIX.4.3',\n        description: 'Yield to Next Put',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235027',\n        name: 'SemiAnnualYield',\n        value: 'SEMIANNUAL',\n        sort: 27,\n        added: 'FIX.4.3',\n        description: 'Semi-annual Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235028',\n        name: 'YieldToShortestAverageLife',\n        value: 'SHORTAVGLIFE',\n        sort: 28,\n        added: 'FIX.4.3',\n        description: 'Yield to Shortest Average Life',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235029',\n        name: 'SimpleYield',\n        value: 'SIMPLE',\n        sort: 29,\n        added: 'FIX.4.3',\n        description: 'Simple Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235030',\n        name: 'TaxEquivalentYield',\n        value: 'TAXEQUIV',\n        sort: 30,\n        added: 'FIX.4.3',\n        description: 'Tax Equivalent Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235031',\n        name: 'YieldToTenderDate',\n        value: 'TENDER',\n        sort: 31,\n        added: 'FIX.4.3',\n        description: 'Yield to Tender Date',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235032',\n        name: 'TrueYield',\n        value: 'TRUE',\n        sort: 32,\n        added: 'FIX.4.3',\n        description: 'True Yield',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235033',\n        name: 'YieldValueOf32nds',\n        value: 'VALUE1_32',\n        sort: 33,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Yield Value Of 1/32',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '235034',\n        name: 'YieldToWorst',\n        value: 'WORST',\n        sort: 34,\n        added: 'FIX.4.3',\n        description: 'Yield To Worst',\n        tag: 235,\n        type: 'String',\n        codeSet: 'YieldTypeCodeSet',\n    },\n    {\n        id: '258001',\n        name: 'NotTradedFlat',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Not Traded Flat',\n        tag: 258,\n        type: 'Boolean',\n        codeSet: 'TradedFlatSwitchCodeSet',\n    },\n    {\n        id: '258002',\n        name: 'TradedFlat',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Traded Flat',\n        tag: 258,\n        type: 'Boolean',\n        codeSet: 'TradedFlatSwitchCodeSet',\n    },\n    {\n        id: '263001',\n        name: 'Snapshot',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Snapshot',\n        tag: 263,\n        type: 'char',\n        codeSet: 'SubscriptionRequestTypeCodeSet',\n    },\n    {\n        id: '263002',\n        name: 'SnapshotAndUpdates',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Snapshot + Updates (Subscribe)',\n        tag: 263,\n        type: 'char',\n        codeSet: 'SubscriptionRequestTypeCodeSet',\n    },\n    {\n        id: '263003',\n        name: 'DisablePreviousSnapshot',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Disable previous Snapshot + Update Request (Unsubscribe)',\n        tag: 263,\n        type: 'char',\n        codeSet: 'SubscriptionRequestTypeCodeSet',\n    },\n    {\n        id: '265001',\n        name: 'FullRefresh',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Full refresh',\n        tag: 265,\n        type: 'int',\n        codeSet: 'MDUpdateTypeCodeSet',\n    },\n    {\n        id: '265002',\n        name: 'IncrementalRefresh',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Incremental refresh',\n        tag: 265,\n        type: 'int',\n        codeSet: 'MDUpdateTypeCodeSet',\n    },\n    {\n        id: '266001',\n        name: 'BookEntriesToBeAggregated',\n        value: 'Y',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '34',\n        description: 'book entries to be aggregated',\n        tag: 266,\n        type: 'Boolean',\n        codeSet: 'AggregatedBookCodeSet',\n    },\n    {\n        id: '266002',\n        name: 'BookEntriesShouldNotBeAggregated',\n        value: 'N',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '34',\n        description: 'book entries should not be aggregated',\n        tag: 266,\n        type: 'Boolean',\n        codeSet: 'AggregatedBookCodeSet',\n    },\n    {\n        id: '269001',\n        name: 'Bid',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Bid',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269002',\n        name: 'Offer',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Offer',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269003',\n        name: 'Trade',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Trade',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269004',\n        name: 'IndexValue',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description:\n            'Index value\\n\\n\\n                        A reference stock index (e.g. DJIA) or benchmark rate (e.g. LIBOR).',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269005',\n        name: 'OpeningPrice',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Opening price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269006',\n        name: 'ClosingPrice',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Closing price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269007',\n        name: 'SettlementPrice',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Settlement price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269008',\n        name: 'TradingSessionHighPrice',\n        value: '7',\n        sort: 8,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Trading session high price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269009',\n        name: 'TradingSessionLowPrice',\n        value: '8',\n        sort: 9,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Trading session low price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269010',\n        name: 'VWAP',\n        value: '9',\n        sort: 10,\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '267',\n        description: 'Volume Weighted Average Price\\n\\n\\n                        VWAP',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269011',\n        name: 'Imbalance',\n        value: 'A',\n        sort: 11,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Imbalance',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269012',\n        name: 'TradeVolume',\n        value: 'B',\n        sort: 12,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Trade volume',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269013',\n        name: 'OpenInterest',\n        value: 'C',\n        sort: 13,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Open interest',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269014',\n        name: 'CompositeUnderlyingPrice',\n        value: 'D',\n        sort: 14,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Composite underlying price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269015',\n        name: 'SimulatedSellPrice',\n        value: 'E',\n        sort: 15,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Simulated sell price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269016',\n        name: 'SimulatedBuyPrice',\n        value: 'F',\n        sort: 16,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Simulated buy price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269017',\n        name: 'MarginRate',\n        value: 'G',\n        sort: 17,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Margin rate',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269018',\n        name: 'MidPrice',\n        value: 'H',\n        sort: 18,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Mid-price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269019',\n        name: 'EmptyBook',\n        value: 'J',\n        sort: 19,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Empty book',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269020',\n        name: 'SettleHighPrice',\n        value: 'K',\n        sort: 20,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Settle high price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269021',\n        name: 'SettleLowPrice',\n        value: 'L',\n        sort: 21,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Settle low price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269022',\n        name: 'PriorSettlePrice',\n        value: 'M',\n        sort: 22,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Prior settle price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269023',\n        name: 'SessionHighBid',\n        value: 'N',\n        sort: 23,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Session high bid',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269024',\n        name: 'SessionLowOffer',\n        value: 'O',\n        sort: 24,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Session low offer',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269025',\n        name: 'EarlyPrices',\n        value: 'P',\n        sort: 25,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Early prices',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269026',\n        name: 'AuctionClearingPrice',\n        value: 'Q',\n        sort: 26,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Auction clearing price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269027',\n        name: 'SwapValueFactor',\n        value: 'S',\n        sort: 27,\n        added: 'FIX.5.0',\n        addedEP: '54',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Swap Value Factor (SVF) for swaps cleared through a central counterparty (CCP)',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269028',\n        name: 'DailyValueAdjustmentForLongPositions',\n        value: 'R',\n        sort: 28,\n        added: 'FIX.5.0',\n        addedEP: '55',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Daily value adjustment for long positions',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269029',\n        name: 'CumulativeValueAdjustmentForLongPositions',\n        value: 'T',\n        sort: 29,\n        added: 'FIX.5.0',\n        addedEP: '55',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Cumulative value adjustment for long positions',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269030',\n        name: 'DailyValueAdjustmentForShortPositions',\n        value: 'U',\n        sort: 30,\n        added: 'FIX.5.0',\n        addedEP: '55',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Daily value adjustment for short positions',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269031',\n        name: 'CumulativeValueAdjustmentForShortPositions',\n        value: 'V',\n        sort: 31,\n        added: 'FIX.5.0',\n        addedEP: '55',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Cumulative value adjustment for short positions',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269032',\n        name: 'FixingPrice',\n        value: 'W',\n        sort: 32,\n        added: 'FIX.5.0SP1',\n        addedEP: '84',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Fixing price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269033',\n        name: 'CashRate',\n        value: 'X',\n        sort: 33,\n        added: 'FIX.5.0SP1',\n        addedEP: '84',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Cash rate',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269034',\n        name: 'RecoveryRate',\n        value: 'Y',\n        sort: 34,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Recovery rate',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269035',\n        name: 'RecoveryRateForLong',\n        value: 'Z',\n        sort: 35,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Recovery rate for long positions',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269036',\n        name: 'RecoveryRateForShort',\n        value: 'a',\n        sort: 36,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Recovery rate for short positions',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269037',\n        name: 'MarketBid',\n        value: 'b',\n        sort: 37,\n        added: 'FIX.5.0SP2',\n        addedEP: '106',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Market bid',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269038',\n        name: 'MarketOffer',\n        value: 'c',\n        sort: 38,\n        added: 'FIX.5.0SP2',\n        addedEP: '106',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Market offer',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269039',\n        name: 'ShortSaleMinPrice',\n        value: 'd',\n        sort: 39,\n        added: 'FIX.5.0SP2',\n        addedEP: '123',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Short sale minimum price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269040',\n        name: 'PreviousClosingPrice',\n        value: 'e',\n        sort: 40,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Previous closing price',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269041',\n        name: 'CorporateActionReferencePrice',\n        value: 'f',\n        sort: 41,\n        added: 'FIX.Latest',\n        addedEP: '299',\n        description:\n            'Corporate action reference price\\n\\nSignifies a change to a reference price, such as settlement price or closing price, due to a corporate action event.',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269042',\n        name: 'ThresholdLimitPriceBanding',\n        value: 'g',\n        sort: 42,\n        added: 'FIX.Latest',\n        addedEP: '267',\n        description:\n            'Threshold limits and price banding\\n\\n\\n                        Conveys incremental real time change to pre-configured or previously disseminated pricing thresholds and/or banding parameters.',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269043',\n        name: 'DailyFinancingValue',\n        value: 'h',\n        sort: 43,\n        added: 'FIX.Latest',\n        addedEP: '267',\n        description:\n            'Daily financing value\\n\\n\\n                        The financing cost of rolling an analogous total return swap from the previous business day to the current business day. In the context of Adjusted Interest Rate (AIR) futures this is a component of the cleared futures price.',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269044',\n        name: 'AccruedFinancingValue',\n        value: 'i',\n        sort: 44,\n        added: 'FIX.Latest',\n        addedEP: '267',\n        description:\n            \"Accrued financing value\\n\\n\\n                        The total of the daily funding values or amounts from a contract's first day of trading to the current day. In the context of Adjusted Interest Rate (AIR) futures this is a component of the cleared futures price.\",\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '269045',\n        name: 'TWAP',\n        value: 't',\n        sort: 56,\n        added: 'FIX.Latest',\n        addedEP: '267',\n        description: 'Time Weighted Average Price\\n\\n\\n                        TWAP',\n        tag: 269,\n        type: 'char',\n        codeSet: 'MDEntryTypeCodeSet',\n    },\n    {\n        id: '274001',\n        name: 'PlusTick',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Plus Tick',\n        tag: 274,\n        type: 'char',\n        codeSet: 'TickDirectionCodeSet',\n    },\n    {\n        id: '274002',\n        name: 'ZeroPlusTick',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Zero-Plus Tick',\n        tag: 274,\n        type: 'char',\n        codeSet: 'TickDirectionCodeSet',\n    },\n    {\n        id: '274003',\n        name: 'MinusTick',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Minus Tick',\n        tag: 274,\n        type: 'char',\n        codeSet: 'TickDirectionCodeSet',\n    },\n    {\n        id: '274004',\n        name: 'ZeroMinusTick',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Zero-Minus Tick',\n        tag: 274,\n        type: 'char',\n        codeSet: 'TickDirectionCodeSet',\n    },\n    {\n        id: '276001',\n        name: 'Open',\n        value: 'A',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Open/Active',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276002',\n        name: 'Closed',\n        value: 'B',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Closed/Inactive',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276003',\n        name: 'ExchangeBest',\n        value: 'C',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Exchange Best',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276004',\n        name: 'ConsolidatedBest',\n        value: 'D',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Consolidated Best',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276005',\n        name: 'Locked',\n        value: 'E',\n        sort: 5,\n        added: 'FIX.4.2',\n        description: 'Locked',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276006',\n        name: 'Crossed',\n        value: 'F',\n        sort: 6,\n        added: 'FIX.4.2',\n        description: 'Crossed',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276007',\n        name: 'Depth',\n        value: 'G',\n        sort: 7,\n        added: 'FIX.4.2',\n        description: 'Depth',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276008',\n        name: 'FastTrading',\n        value: 'H',\n        sort: 8,\n        added: 'FIX.4.2',\n        description: 'Fast Trading',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276009',\n        name: 'NonFirm',\n        value: 'I',\n        sort: 9,\n        added: 'FIX.4.2',\n        description: 'Non-Firm',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276010',\n        name: 'Manual',\n        value: 'L',\n        sort: 10,\n        added: 'FIX.4.4',\n        addedEP: '6',\n        description: 'Manual/Slow Quote',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276011',\n        name: 'OutrightPrice',\n        value: 'J',\n        sort: 11,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Outright Price',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276012',\n        name: 'ImpliedPrice',\n        value: 'K',\n        sort: 12,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Implied Price',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276013',\n        name: 'DepthOnOffer',\n        value: 'M',\n        sort: 13,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Depth on Offer',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276014',\n        name: 'DepthOnBid',\n        value: 'N',\n        sort: 14,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Depth on Bid',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276015',\n        name: 'Closing',\n        value: 'O',\n        sort: 15,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Closing',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276016',\n        name: 'NewsDissemination',\n        value: 'P',\n        sort: 16,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'News Dissemination',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276017',\n        name: 'TradingRange',\n        value: 'Q',\n        sort: 17,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Trading Range',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276018',\n        name: 'OrderInflux',\n        value: 'R',\n        sort: 18,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Order Influx',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276019',\n        name: 'DueToRelated',\n        value: 'S',\n        sort: 19,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Due to Related',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276020',\n        name: 'NewsPending',\n        value: 'T',\n        sort: 20,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'News Pending',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276021',\n        name: 'AdditionalInfo',\n        value: 'U',\n        sort: 21,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Additional Info',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276022',\n        name: 'AdditionalInfoDueToRelated',\n        value: 'V',\n        sort: 22,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Additional Info due to related',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276023',\n        name: 'Resume',\n        value: 'W',\n        sort: 23,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Resume',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276024',\n        name: 'ViewOfCommon',\n        value: 'X',\n        sort: 24,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'View of Common',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276025',\n        name: 'VolumeAlert',\n        value: 'Y',\n        sort: 25,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Volume Alert',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276026',\n        name: 'OrderImbalance',\n        value: 'Z',\n        sort: 26,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Order Imbalance',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276027',\n        name: 'EquipmentChangeover',\n        value: 'a',\n        sort: 27,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Equipment Changeover',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276028',\n        name: 'NoOpen',\n        value: 'b',\n        sort: 28,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'No Open / No Resume',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276029',\n        name: 'RegularETH',\n        value: 'c',\n        sort: 29,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Regular ETH',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276030',\n        name: 'AutomaticExecution',\n        value: 'd',\n        sort: 30,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Automatic Execution',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276031',\n        name: 'AutomaticExecutionETH',\n        value: 'e',\n        sort: 31,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Automatic Execution ETH',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276032',\n        name: 'FastMarketETH',\n        value: 'f',\n        sort: 32,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Fast Market ETH',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276033',\n        name: 'InactiveETH',\n        value: 'g',\n        sort: 33,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Inactive ETH',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276034',\n        name: 'Rotation',\n        value: 'h',\n        sort: 34,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Rotation',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276035',\n        name: 'RotationETH',\n        value: 'i',\n        sort: 35,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Rotation ETH',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276036',\n        name: 'Halt',\n        value: 'j',\n        sort: 36,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Halt',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276037',\n        name: 'HaltETH',\n        value: 'k',\n        sort: 37,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Halt ETH',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276038',\n        name: 'DueToNewsDissemination',\n        value: 'l',\n        sort: 38,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Due to News Dissemination',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276039',\n        name: 'DueToNewsPending',\n        value: 'm',\n        sort: 39,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Due to News Pending',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276040',\n        name: 'TradingResume',\n        value: 'n',\n        sort: 40,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Trading Resume',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276041',\n        name: 'OutOfSequence',\n        value: 'o',\n        sort: 41,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Out of Sequence',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276042',\n        name: 'BidSpecialist',\n        value: 'p',\n        sort: 42,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Bid Specialist',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276043',\n        name: 'OfferSpecialist',\n        value: 'q',\n        sort: 43,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Offer Specialist',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276044',\n        name: 'BidOfferSpecialist',\n        value: 'r',\n        sort: 44,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Bid Offer Specialist',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276045',\n        name: 'EndOfDaySAM',\n        value: 's',\n        sort: 45,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'End of Day SAM',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276046',\n        name: 'ForbiddenSAM',\n        value: 't',\n        sort: 46,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Forbidden SAM',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276047',\n        name: 'FrozenSAM',\n        value: 'u',\n        sort: 47,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Frozen SAM',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276048',\n        name: 'PreOpeningSAM',\n        value: 'v',\n        sort: 48,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'PreOpening SAM',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276049',\n        name: 'OpeningSAM',\n        value: 'w',\n        sort: 49,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Opening SAM',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276050',\n        name: 'OpenSAM',\n        value: 'x',\n        sort: 50,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Open SAM',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276051',\n        name: 'SurveillanceSAM',\n        value: 'y',\n        sort: 51,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Surveillance SAM',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276052',\n        name: 'SuspendedSAM',\n        value: 'z',\n        sort: 52,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Suspended SAM',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276053',\n        name: 'ReservedSAM',\n        value: '0',\n        sort: 53,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Reserved SAM',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276054',\n        name: 'NoActiveSAM',\n        value: '1',\n        sort: 54,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'No Active SAM',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276055',\n        name: 'Restricted',\n        value: '2',\n        sort: 55,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Restricted',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276056',\n        name: 'RestOfBookVWAP',\n        value: '3',\n        sort: 56,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Rest of Book VWAP',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276057',\n        name: 'BetterPricesInConditionalOrders',\n        value: '4',\n        sort: 57,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Better Prices in Conditional Orders',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276058',\n        name: 'MedianPrice',\n        value: '5',\n        sort: 58,\n        added: 'FIX.5.0',\n        addedEP: '61',\n        description: 'Median Price',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276059',\n        name: 'FullCurve',\n        value: '6',\n        sort: 59,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'Full Curve',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '276060',\n        name: 'FlatCurve',\n        value: '7',\n        sort: 60,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'Flat Curve',\n        tag: 276,\n        type: 'MultipleStringValue',\n        codeSet: 'QuoteConditionCodeSet',\n    },\n    {\n        id: '277001',\n        name: 'Cash',\n        value: 'A',\n        sort: 0,\n        added: 'FIX.4.2',\n        description: 'Cash (only) Market',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277002',\n        name: 'AveragePriceTrade',\n        value: 'B',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Average Price Trade',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277003',\n        name: 'CashTrade',\n        value: 'C',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Cash Trade (same day clearing)',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277004',\n        name: 'NextDay',\n        value: 'D',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Next Day (only)Market',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277005',\n        name: 'Opening',\n        value: 'E',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Opening/Reopening Trade Detail',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277006',\n        name: 'IntradayTradeDetail',\n        value: 'F',\n        sort: 5,\n        added: 'FIX.4.2',\n        description: 'Intraday Trade Detail',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277007',\n        name: 'Rule127Trade',\n        value: 'G',\n        sort: 6,\n        added: 'FIX.4.2',\n        description: 'Rule 127 Trade (NYSE)',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277008',\n        name: 'Rule155Trade',\n        value: 'H',\n        sort: 7,\n        added: 'FIX.4.2',\n        description: 'Rule 155 Trade (AMEX)',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277009',\n        name: 'SoldLast',\n        value: 'I',\n        sort: 8,\n        added: 'FIX.4.2',\n        description: 'Sold Last (late reporting)',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277010',\n        name: 'NextDayTrade',\n        value: 'J',\n        sort: 9,\n        added: 'FIX.4.2',\n        description: 'Next Day Trade (next day clearing)',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277011',\n        name: 'Opened',\n        value: 'K',\n        sort: 10,\n        added: 'FIX.4.2',\n        description: 'Opened (late report of opened trade)',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277012',\n        name: 'Seller',\n        value: 'L',\n        sort: 11,\n        added: 'FIX.4.2',\n        description: 'Seller',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277013',\n        name: 'Sold',\n        value: 'M',\n        sort: 12,\n        added: 'FIX.4.2',\n        description: 'Sold (out of sequence)',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277014',\n        name: 'StoppedStock',\n        value: 'N',\n        sort: 13,\n        added: 'FIX.4.2',\n        description: 'Stopped Stock (guarantee of price but does not execute the order)',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277015',\n        name: 'ImbalanceMoreBuyers',\n        value: 'P',\n        sort: 14,\n        added: 'FIX.4.3',\n        description: 'Imbalance More Buyers (cannot be used in combination with Q)',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277016',\n        name: 'ImbalanceMoreSellers',\n        value: 'Q',\n        sort: 15,\n        added: 'FIX.4.3',\n        description: 'Imbalance More Sellers (cannot be used in combination with P)',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277017',\n        name: 'OpeningPrice',\n        value: 'R',\n        sort: 16,\n        added: 'FIX.4.3',\n        description: 'Opening Price',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277018',\n        name: 'BargainCondition',\n        value: 'S',\n        sort: 17,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Bargain Condition (LSE)',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277019',\n        name: 'ConvertedPriceIndicator',\n        value: 'T',\n        sort: 18,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Converted Price Indicator',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277020',\n        name: 'ExchangeLast',\n        value: 'U',\n        sort: 19,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Exchange Last',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277021',\n        name: 'FinalPriceOfSession',\n        value: 'V',\n        sort: 20,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Final Price of Session',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277022',\n        name: 'ExPit',\n        value: 'W',\n        sort: 21,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Ex-pit',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277023',\n        name: 'Crossed',\n        value: 'X',\n        sort: 22,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Crossed',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277024',\n        name: 'TradesResultingFromManual',\n        value: 'Y',\n        sort: 23,\n        added: 'FIX.4.4',\n        addedEP: '6',\n        description: 'Trades resulting from manual/slow quote',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277025',\n        name: 'TradesResultingFromIntermarketSweep',\n        value: 'Z',\n        sort: 24,\n        added: 'FIX.4.4',\n        addedEP: '6',\n        description: 'Trades resulting from intermarket sweep',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277026',\n        name: 'VolumeOnly',\n        value: 'a',\n        sort: 25,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Volume Only',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277027',\n        name: 'DirectPlus',\n        value: 'b',\n        sort: 26,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Direct Plus',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277028',\n        name: 'Acquisition',\n        value: 'c',\n        sort: 27,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Acquisition',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277029',\n        name: 'Bunched',\n        value: 'd',\n        sort: 28,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Bunched',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277030',\n        name: 'Distribution',\n        value: 'e',\n        sort: 29,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Distribution',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277031',\n        name: 'BunchedSale',\n        value: 'f',\n        sort: 30,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Bunched Sale',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277032',\n        name: 'SplitTrade',\n        value: 'g',\n        sort: 31,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Split Trade',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277033',\n        name: 'CancelStopped',\n        value: 'h',\n        sort: 32,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Cancel Stopped',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277034',\n        name: 'CancelETH',\n        value: 'i',\n        sort: 33,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Cancel ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277035',\n        name: 'CancelStoppedETH',\n        value: 'j',\n        sort: 34,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Cancel Stopped ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277036',\n        name: 'OutOfSequenceETH',\n        value: 'k',\n        sort: 35,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Out of Sequence ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277037',\n        name: 'CancelLastETH',\n        value: 'l',\n        sort: 36,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Cancel Last ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277038',\n        name: 'SoldLastSaleETH',\n        value: 'm',\n        sort: 37,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Sold Last Sale ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277039',\n        name: 'CancelLast',\n        value: 'n',\n        sort: 38,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Cancel Last',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277040',\n        name: 'SoldLastSale',\n        value: 'o',\n        sort: 39,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Sold Last Sale',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277041',\n        name: 'CancelOpen',\n        value: 'p',\n        sort: 40,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Cancel Open',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277042',\n        name: 'CancelOpenETH',\n        value: 'q',\n        sort: 41,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Cancel Open ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277043',\n        name: 'OpenedSaleETH',\n        value: 'r',\n        sort: 42,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Opened Sale ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277044',\n        name: 'CancelOnly',\n        value: 's',\n        sort: 43,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Cancel Only',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277045',\n        name: 'CancelOnlyETH',\n        value: 't',\n        sort: 44,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Cancel Only ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277046',\n        name: 'LateOpenETH',\n        value: 'u',\n        sort: 45,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Late Open ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277047',\n        name: 'AutoExecutionETH',\n        value: 'v',\n        sort: 46,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Auto Execution ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277048',\n        name: 'Reopen',\n        value: 'w',\n        sort: 47,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Reopen',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277049',\n        name: 'ReopenETH',\n        value: 'x',\n        sort: 48,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Reopen ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277050',\n        name: 'Adjusted',\n        value: 'y',\n        sort: 49,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Adjusted',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277051',\n        name: 'AdjustedETH',\n        value: 'z',\n        sort: 50,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Adjusted ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277052',\n        name: 'Spread',\n        value: 'AA',\n        sort: 51,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Spread',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277053',\n        name: 'SpreadETH',\n        value: 'AB',\n        sort: 52,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Spread ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277054',\n        name: 'Straddle',\n        value: 'AC',\n        sort: 53,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Straddle',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277055',\n        name: 'StraddleETH',\n        value: 'AD',\n        sort: 54,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Straddle ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277056',\n        name: 'Stopped',\n        value: 'AE',\n        sort: 55,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Stopped',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277057',\n        name: 'StoppedETH',\n        value: 'AF',\n        sort: 56,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Stopped ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277058',\n        name: 'RegularETH',\n        value: 'AG',\n        sort: 57,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Regular ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277059',\n        name: 'Combo',\n        value: 'AH',\n        sort: 58,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Combo',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277060',\n        name: 'ComboETH',\n        value: 'AI',\n        sort: 59,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Combo ETH',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277061',\n        name: 'OfficialClosingPrice',\n        value: 'AJ',\n        sort: 60,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Official Closing Price',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277062',\n        name: 'PriorReferencePrice',\n        value: 'AK',\n        sort: 61,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Prior Reference Price',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277063',\n        name: 'StoppedSoldLast',\n        value: 'AL',\n        sort: 71,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Stopped Sold Last',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277064',\n        name: 'StoppedOutOfSequence',\n        value: 'AM',\n        sort: 72,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Stopped Out of Sequence',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277065',\n        name: 'OfficialClosingPriceDup',\n        value: 'AN',\n        sort: 73,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: \"Official Closing Price (duplicate enumeration - use 'AJ' instead)\",\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277066',\n        name: 'CrossedOld',\n        value: 'AO',\n        sort: 74,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: \"Crossed (duplicate enumeration - use 'X' instead)\",\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277067',\n        name: 'FastMarket',\n        value: 'AP',\n        sort: 75,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Fast Market',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277068',\n        name: 'AutomaticExecution',\n        value: 'AQ',\n        sort: 76,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Automatic Execution',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277069',\n        name: 'FormT',\n        value: 'AR',\n        sort: 77,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Form T',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277070',\n        name: 'BasketIndex',\n        value: 'AS',\n        sort: 78,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Basket Index',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277071',\n        name: 'BurstBasket',\n        value: 'AT',\n        sort: 79,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Burst Basket',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277072',\n        name: 'TradeThroughExempt',\n        value: 'AU',\n        sort: 80,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Trade through exempt\\n\\n\\n                        Trade ignored prices on away markets.',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277073',\n        name: 'QuoteSpread',\n        value: 'AV',\n        sort: 81,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '190',\n        description: 'Quote spread',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277074',\n        name: 'LastAuctionPrice',\n        value: 'AW',\n        sort: 82,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Last auction price\\n\\n\\n                        Trade represents outcome of last auction',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277075',\n        name: 'HighPrice',\n        value: 'AX',\n        sort: 83,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'High price\\n\\n\\n                        Trade establishes new high price for the session',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277076',\n        name: 'LowPrice',\n        value: 'AY',\n        sort: 84,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Low price\\n\\n\\n                        Trade establishes new low price for the session',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277077',\n        name: 'SystematicInternaliser',\n        value: 'AZ',\n        sort: 85,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '228',\n        description:\n            'Systematic Internaliser (SI)\\n\\n\\n                        Trade conducted by Systematic Internaliser (SI).',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277078',\n        name: 'AwayMarket',\n        value: 'BA',\n        sort: 86,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Away market\\n\\n\\n                        Trade conducted on away market',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277079',\n        name: 'MidpointPrice',\n        value: 'BB',\n        sort: 87,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Mid-point price\\n\\n\\n                        Trade represents current midpoint price',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277080',\n        name: 'TradedBeforeIssueDate',\n        value: 'BC',\n        sort: 88,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description:\n            'Traded before issue date\\n\\n\\n                        Trade conducted during subscription phase of new issue',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277081',\n        name: 'PreviousClosingPrice',\n        value: 'BD',\n        sort: 89,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description:\n            'Previous closing price\\n\\n\\n                        Trade represents closing price of previous business day',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277082',\n        name: 'NationalBestBidOffer',\n        value: 'BE',\n        sort: 90,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description:\n            'National Best Bid and Offer\\n\\n\\n                        Trade price within National Best Bid and Offer (NBBO)',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277083',\n        name: 'Cancel',\n        value: '0',\n        sort: 98,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277084',\n        name: 'ImpliedTrade',\n        value: '1',\n        sort: 99,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Implied Trade',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277085',\n        name: 'MarketplaceEnteredTrade',\n        value: '2',\n        sort: 100,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Marketplace entered trade',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277086',\n        name: 'MultiAssetClassMultilegTrade',\n        value: '3',\n        sort: 101,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Multi-asset class multileg trade',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277087',\n        name: 'MultilegToMultilegTrade',\n        value: '4',\n        sort: 102,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Multileg-to-Multileg Trade',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277088',\n        name: 'ShortSaleMinPrice',\n        value: '5',\n        sort: 103,\n        added: 'FIX.5.0SP2',\n        addedEP: '123',\n        description: 'Short Sale Minimum Price',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '277089',\n        name: 'Benchmark',\n        value: '6',\n        sort: 104,\n        added: 'FIX.5.0SP2',\n        addedEP: '163',\n        deprecated: 'FIX.Latest',\n        deprecatedEP: '268',\n        description:\n            'Benchmark\\n\\n\\n                        Market Model Typology (MMT) terminology: The \"benchmark\" price depends on a benchmark which has no current price but derived from a time series such as a VWAP.',\n        tag: 277,\n        type: 'MultipleStringValue',\n        codeSet: 'TradeConditionCodeSet',\n    },\n    {\n        id: '279001',\n        name: 'New',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'New',\n        tag: 279,\n        type: 'char',\n        codeSet: 'MDUpdateActionCodeSet',\n    },\n    {\n        id: '279002',\n        name: 'Change',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Change',\n        tag: 279,\n        type: 'char',\n        codeSet: 'MDUpdateActionCodeSet',\n    },\n    {\n        id: '279003',\n        name: 'Delete',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Delete',\n        tag: 279,\n        type: 'char',\n        codeSet: 'MDUpdateActionCodeSet',\n    },\n    {\n        id: '279004',\n        name: 'DeleteThru',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Delete Thru',\n        tag: 279,\n        type: 'char',\n        codeSet: 'MDUpdateActionCodeSet',\n    },\n    {\n        id: '279005',\n        name: 'DeleteFrom',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Delete From',\n        tag: 279,\n        type: 'char',\n        codeSet: 'MDUpdateActionCodeSet',\n    },\n    {\n        id: '279006',\n        name: 'Overlay',\n        value: '5',\n        sort: 10,\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description: 'Overlay',\n        tag: 279,\n        type: 'char',\n        codeSet: 'MDUpdateActionCodeSet',\n    },\n    {\n        id: '281001',\n        name: 'UnknownSymbol',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Unknown symbol',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '281002',\n        name: 'DuplicateMDReqID',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Duplicate MDReqID',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '281003',\n        name: 'InsufficientBandwidth',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Insufficient Bandwidth',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '281004',\n        name: 'InsufficientPermissions',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Insufficient Permissions',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '281005',\n        name: 'UnsupportedSubscriptionRequestType',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.2',\n        description: 'Unsupported SubscriptionRequestType',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '281006',\n        name: 'UnsupportedMarketDepth',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.2',\n        description: 'Unsupported MarketDepth',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '281007',\n        name: 'UnsupportedMDUpdateType',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.2',\n        description: 'Unsupported MDUpdateType',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '281008',\n        name: 'UnsupportedAggregatedBook',\n        value: '7',\n        sort: 8,\n        added: 'FIX.4.2',\n        description: 'Unsupported AggregatedBook',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '281009',\n        name: 'UnsupportedMDEntryType',\n        value: '8',\n        sort: 9,\n        added: 'FIX.4.2',\n        description: 'Unsupported MDEntryType',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '281010',\n        name: 'UnsupportedTradingSessionID',\n        value: '9',\n        sort: 10,\n        added: 'FIX.4.3',\n        description: 'Unsupported TradingSessionID',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '281011',\n        name: 'UnsupportedScope',\n        value: 'A',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: 'Unsupported Scope',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '281012',\n        name: 'UnsupportedOpenCloseSettleFlag',\n        value: 'B',\n        sort: 12,\n        added: 'FIX.4.3',\n        description: 'Unsupported OpenCloseSettleFlag',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '281013',\n        name: 'UnsupportedMDImplicitDelete',\n        value: 'C',\n        sort: 13,\n        added: 'FIX.4.3',\n        description: 'Unsupported MDImplicitDelete',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '281014',\n        name: 'InsufficientCredit',\n        value: 'D',\n        sort: 14,\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description: 'Insufficient credit',\n        tag: 281,\n        type: 'char',\n        codeSet: 'MDReqRejReasonCodeSet',\n    },\n    {\n        id: '285001',\n        name: 'Cancellation',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Cancellation / Trade Bust',\n        tag: 285,\n        type: 'char',\n        codeSet: 'DeleteReasonCodeSet',\n    },\n    {\n        id: '285002',\n        name: 'Error',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Error',\n        tag: 285,\n        type: 'char',\n        codeSet: 'DeleteReasonCodeSet',\n    },\n    {\n        id: '286001',\n        name: 'DailyOpen',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Daily Open / Close / Settlement entry',\n        tag: 286,\n        type: 'MultipleCharValue',\n        codeSet: 'OpenCloseSettlFlagCodeSet',\n    },\n    {\n        id: '286002',\n        name: 'SessionOpen',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Session Open / Close / Settlement entry',\n        tag: 286,\n        type: 'MultipleCharValue',\n        codeSet: 'OpenCloseSettlFlagCodeSet',\n    },\n    {\n        id: '286003',\n        name: 'DeliverySettlementEntry',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Delivery Settlement entry',\n        tag: 286,\n        type: 'MultipleCharValue',\n        codeSet: 'OpenCloseSettlFlagCodeSet',\n    },\n    {\n        id: '286004',\n        name: 'ExpectedEntry',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Expected entry',\n        tag: 286,\n        type: 'MultipleCharValue',\n        codeSet: 'OpenCloseSettlFlagCodeSet',\n    },\n    {\n        id: '286005',\n        name: 'EntryFromPreviousBusinessDay',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Entry from previous business day',\n        tag: 286,\n        type: 'MultipleCharValue',\n        codeSet: 'OpenCloseSettlFlagCodeSet',\n    },\n    {\n        id: '286006',\n        name: 'TheoreticalPriceValue',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Theoretical Price value',\n        tag: 286,\n        type: 'MultipleCharValue',\n        codeSet: 'OpenCloseSettlFlagCodeSet',\n    },\n    {\n        id: '291001',\n        name: 'Bankrupt',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Bankrupt',\n        tag: 291,\n        type: 'MultipleCharValue',\n        codeSet: 'FinancialStatusCodeSet',\n    },\n    {\n        id: '291002',\n        name: 'PendingDelisting',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Pending delisting',\n        tag: 291,\n        type: 'MultipleCharValue',\n        codeSet: 'FinancialStatusCodeSet',\n    },\n    {\n        id: '291003',\n        name: 'Restricted',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '12',\n        description: 'Restricted',\n        tag: 291,\n        type: 'MultipleCharValue',\n        codeSet: 'FinancialStatusCodeSet',\n    },\n    {\n        id: '292001',\n        name: 'ExDividend',\n        value: 'A',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Ex-Dividend',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292002',\n        name: 'ExDistribution',\n        value: 'B',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Ex-Distribution',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292003',\n        name: 'ExRights',\n        value: 'C',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Ex-Rights',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292004',\n        name: 'New',\n        value: 'D',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'New',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292005',\n        name: 'ExInterest',\n        value: 'E',\n        sort: 5,\n        added: 'FIX.4.2',\n        description: 'Ex-Interest',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292006',\n        name: 'CashDividend',\n        value: 'F',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Cash Dividend',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292007',\n        name: 'StockDividend',\n        value: 'G',\n        sort: 7,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Stock Dividend',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292008',\n        name: 'NonIntegerStockSplit',\n        value: 'H',\n        sort: 8,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Non-Integer Stock Split',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292009',\n        name: 'ReverseStockSplit',\n        value: 'I',\n        sort: 9,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Reverse Stock Split',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292010',\n        name: 'StandardIntegerStockSplit',\n        value: 'J',\n        sort: 10,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Standard-Integer Stock Split',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292011',\n        name: 'PositionConsolidation',\n        value: 'K',\n        sort: 11,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Position Consolidation',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292012',\n        name: 'LiquidationReorganization',\n        value: 'L',\n        sort: 12,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Liquidation Reorganization',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292013',\n        name: 'MergerReorganization',\n        value: 'M',\n        sort: 13,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Merger Reorganization',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292014',\n        name: 'RightsOffering',\n        value: 'N',\n        sort: 14,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Rights Offering',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292015',\n        name: 'ShareholderMeeting',\n        value: 'O',\n        sort: 15,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Shareholder Meeting',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292016',\n        name: 'Spinoff',\n        value: 'P',\n        sort: 16,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Spinoff',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292017',\n        name: 'TenderOffer',\n        value: 'Q',\n        sort: 17,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Tender Offer',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292018',\n        name: 'Warrant',\n        value: 'R',\n        sort: 18,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Warrant',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292019',\n        name: 'SpecialAction',\n        value: 'S',\n        sort: 19,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Special Action',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292020',\n        name: 'SymbolConversion',\n        value: 'T',\n        sort: 20,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Symbol Conversion',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292021',\n        name: 'CUSIP',\n        value: 'U',\n        sort: 21,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'CUSIP / Name Change',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292022',\n        name: 'LeapRollover',\n        value: 'V',\n        sort: 22,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Leap Rollover',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '292023',\n        name: 'SuccessionEvent',\n        value: 'W',\n        sort: 99,\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description: 'Succession Event',\n        tag: 292,\n        type: 'MultipleCharValue',\n        codeSet: 'CorporateActionCodeSet',\n    },\n    {\n        id: '297001',\n        name: 'Accepted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.2',\n        description: 'Accepted',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297002',\n        name: 'CancelForSymbol',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Canceled for specific securities',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297003',\n        name: 'CanceledForSecurityType',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Canceled for specific SecurityTypes(167)',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297004',\n        name: 'CanceledForUnderlying',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Canceled for underlying',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297005',\n        name: 'CanceledAll',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Canceled all',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297006',\n        name: 'Rejected',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.2',\n        description: 'Rejected',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297007',\n        name: 'RemovedFromMarket',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Removed from market',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297008',\n        name: 'Expired',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'Expired\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category A-2, this may be used to indicate price or liquidity is unavailable due to \"last look latency\".',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297009',\n        name: 'Query',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'Query',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297010',\n        name: 'QuoteNotFound',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Quote not found',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297011',\n        name: 'Pending',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.3',\n        description: 'Pending',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297012',\n        name: 'Pass',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'Pass\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category A-1, this is used by price maker to pass due to a \"last look\".',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297013',\n        name: 'LockedMarketWarning',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Locked market warning',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297014',\n        name: 'CrossMarketWarning',\n        value: '13',\n        sort: 13,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Crossed market warning',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297015',\n        name: 'CanceledDueToLockMarket',\n        value: '14',\n        sort: 14,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Canceled due to locked market',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297016',\n        name: 'CanceledDueToCrossMarket',\n        value: '15',\n        sort: 15,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description: 'Canceled due to crossed market',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297017',\n        name: 'Active',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Active',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297018',\n        name: 'Canceled',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Canceled',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297019',\n        name: 'UnsolicitedQuoteReplenishment',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Unsolicited quote replenishment',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297020',\n        name: 'PendingEndTrade',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0',\n        addedEP: '68',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Pending end trade',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297021',\n        name: 'TooLateToEnd',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0',\n        addedEP: '68',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Too late to end',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297022',\n        name: 'Traded',\n        value: '21',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '126',\n        description: 'Traded',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297023',\n        name: 'TradedAndRemoved',\n        value: '22',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '126',\n        description: 'Traded and removed',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '297024',\n        name: 'ContractTerminates',\n        value: '23',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '258',\n        description:\n            'Contract terminated\\n\\n\\n                        Indicates a contract has been or is being terminated.',\n        tag: 297,\n        type: 'int',\n        codeSet: 'QuoteStatusCodeSet',\n    },\n    {\n        id: '298001',\n        name: 'CancelForOneOrMoreSecurities',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel quotes for one or more securities',\n        tag: 298,\n        type: 'int',\n        codeSet: 'QuoteCancelTypeCodeSet',\n    },\n    {\n        id: '298002',\n        name: 'CancelForSecurityType',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel quotes for security type(s)',\n        tag: 298,\n        type: 'int',\n        codeSet: 'QuoteCancelTypeCodeSet',\n    },\n    {\n        id: '298003',\n        name: 'CancelForUnderlyingSecurity',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel quotes for underlying security',\n        tag: 298,\n        type: 'int',\n        codeSet: 'QuoteCancelTypeCodeSet',\n    },\n    {\n        id: '298004',\n        name: 'CancelAllQuotes',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel all quotes',\n        tag: 298,\n        type: 'int',\n        codeSet: 'QuoteCancelTypeCodeSet',\n    },\n    {\n        id: '298005',\n        name: 'CancelSpecifiedSingleQuote',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '21',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description:\n            'Cancel specified single quote\\n\\n\\n                        Cancel single quote specified in QuoteID(117) or SecondaryQuoteID(1751)',\n        tag: 298,\n        type: 'int',\n        codeSet: 'QuoteCancelTypeCodeSet',\n    },\n    {\n        id: '298006',\n        name: 'CancelByTypeOfQuote',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP1',\n        addedEP: '78',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'Cancel by type of quote\\n\\n\\n                        Cancel quotes by type of quote specified in QuoteType(537)',\n        tag: 298,\n        type: 'int',\n        codeSet: 'QuoteCancelTypeCodeSet',\n    },\n    {\n        id: '298007',\n        name: 'CancelForSecurityIssuer',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel quotes for an issuer',\n        tag: 298,\n        type: 'int',\n        codeSet: 'QuoteCancelTypeCodeSet',\n    },\n    {\n        id: '298008',\n        name: 'CancelForIssuerOfUnderlyingSecurity',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel quotes for an issuer of underlying security',\n        tag: 298,\n        type: 'int',\n        codeSet: 'QuoteCancelTypeCodeSet',\n    },\n    {\n        id: '300001',\n        name: 'UnknownSymbol',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'Unknown symbol (security)\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category F, this may be used with QuoteStatus(297)=5 (Rejected) to indicate product is not supported, e.g. by the specific venue, tenor restrictions on the market participant(s) involved.',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300002',\n        name: 'Exchange',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '144',\n        description: 'Exchange (security) closed',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300003',\n        name: 'QuoteRequestExceedsLimit',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Quote Request exceeds limit',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300004',\n        name: 'TooLateToEnter',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Too late to enter',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300005',\n        name: 'UnknownQuote',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '144',\n        description: 'Unknown quote',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300006',\n        name: 'DuplicateQuote',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '144',\n        description: 'Duplicate quote',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300007',\n        name: 'InvalidBid',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.2',\n        description: 'Invalid bid/ask spread',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300008',\n        name: 'InvalidPrice',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'Invalid price\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category A-2, this may be used with QuoteStatus(297)=5 (Rejected) to indicate price is not valid due to \"last look latency\".',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300009',\n        name: 'NotAuthorizedToQuoteSecurity',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.2',\n        description: 'Not authorized to quote security',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300010',\n        name: 'PriceExceedsCurrentPriceBand',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0',\n        addedEP: '43',\n        description: 'Price exceeds current price band',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300011',\n        name: 'QuoteLocked',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '144',\n        description: 'Quote locked - unable to update/cancel',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300012',\n        name: 'InvalidOrUnknownSecurityIssuer',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '144',\n        description: 'Invalid or unknown security issuer',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300013',\n        name: 'InvalidOrUnknownIssuerOfUnderlyingSecurity',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '144',\n        description: 'Invalid or unknown issuer of underlying security',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300014',\n        name: 'NotionalValueExceedsThreshold',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '144',\n        description: 'Notional value exceeds threshold',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300015',\n        name: 'PriceExceedsCurrentPriceBandDepr',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '144',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '171',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description: 'Price exceeds current price band',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300016',\n        name: 'ReferencePriceNotAvailable',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '144',\n        description: 'Reference price not available',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300017',\n        name: 'InsufficientCreditLimit',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'Insufficient credit limit\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category C, this may be used with QuoteStatus(297)=5 (Rejected) to indicate credit limit is exceeded or not in place.',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300018',\n        name: 'ExceededClipSizeLimit',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Exceeded clip size limit',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300019',\n        name: 'ExceededMaxNotionalOrderAmt',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Exceeded maximum notional order amount',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300020',\n        name: 'ExceededDV01PV01Limit',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Exceeded DV01/PV01 limit',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300021',\n        name: 'ExceededCS01Limit',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Exceeded CS01 limit',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300022',\n        name: 'UnavailablePriceLiquidity',\n        value: '22',\n        sort: 22,\n        added: 'FIX.Latest',\n        addedEP: '290',\n        description:\n            'Unavailable price or liquidity\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category B, this may be used with QuoteStatus(297)=5 (Rejected) to indicate the \"Hit/lift\" was not subjected to last look but pricing or liquidity is no longer available for execution.',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300023',\n        name: 'InvalidMissingEntitlements',\n        value: '23',\n        sort: 23,\n        added: 'FIX.Latest',\n        addedEP: '290',\n        description:\n            'Invalid or missing entitlements\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category D, this may be used with QuoteStatus(297)=5 (Rejected) to indicate the counterparty is not authorized or has missing entitlements.',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300024',\n        name: 'UnknownAccounts',\n        value: '24',\n        sort: 24,\n        added: 'FIX.Latest',\n        addedEP: '290',\n        description:\n            'Unknown account(s)\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category D, this may be used with QuoteStatus(297)=5 (Rejected) to indicate the account/fund is unknown or not setup.',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '300025',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'Other\\n\\nIn the context of IA FX Reject codes, Trade Request Rejection Category E, order rejected due to other exceptions. Further detail may be provided in RejectText(1328) or Text(58), with preference for RejectText(1328) if field is present in the message.',\n        tag: 300,\n        type: 'int',\n        codeSet: 'QuoteRejectReasonCodeSet',\n    },\n    {\n        id: '301001',\n        name: 'NoAcknowledgement',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'No Acknowledgement',\n        tag: 301,\n        type: 'int',\n        codeSet: 'QuoteResponseLevelCodeSet',\n    },\n    {\n        id: '301002',\n        name: 'AcknowledgeOnlyNegativeOrErroneousQuotes',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Acknowledge only negative or erroneous quotes',\n        tag: 301,\n        type: 'int',\n        codeSet: 'QuoteResponseLevelCodeSet',\n    },\n    {\n        id: '301003',\n        name: 'AcknowledgeEachQuoteMessage',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Acknowledge each quote message',\n        tag: 301,\n        type: 'int',\n        codeSet: 'QuoteResponseLevelCodeSet',\n    },\n    {\n        id: '301004',\n        name: 'SummaryAcknowledgement',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Summary Acknowledgement',\n        tag: 301,\n        type: 'int',\n        codeSet: 'QuoteResponseLevelCodeSet',\n    },\n    {\n        id: '303001',\n        name: 'Manual',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Manual',\n        tag: 303,\n        type: 'int',\n        codeSet: 'QuoteRequestTypeCodeSet',\n    },\n    {\n        id: '303002',\n        name: 'Automatic',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Automatic',\n        tag: 303,\n        type: 'int',\n        codeSet: 'QuoteRequestTypeCodeSet',\n    },\n    {\n        id: '303003',\n        name: 'ConfirmQuote',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '126',\n        description: 'Confirm quote',\n        tag: 303,\n        type: 'int',\n        codeSet: 'QuoteRequestTypeCodeSet',\n    },\n    {\n        id: '321001',\n        name: 'RequestSecurityIdentityAndSpecifications',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Request Security identity and specifications',\n        tag: 321,\n        type: 'int',\n        codeSet: 'SecurityRequestTypeCodeSet',\n    },\n    {\n        id: '321002',\n        name: 'RequestSecurityIdentityForSpecifications',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Request Security identity for the specifications provided (name of the security is not supplied)',\n        tag: 321,\n        type: 'int',\n        codeSet: 'SecurityRequestTypeCodeSet',\n    },\n    {\n        id: '321003',\n        name: 'RequestListSecurityTypes',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0SP1',\n        description: 'Request List Security Types',\n        tag: 321,\n        type: 'int',\n        codeSet: 'SecurityRequestTypeCodeSet',\n    },\n    {\n        id: '321004',\n        name: 'RequestListSecurities',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0SP1',\n        description:\n            'Request List Securities (can be qualified with Symbol, SecurityType, TradingSessionID, SecurityExchange. If provided then only list Securities for the specific type.)',\n        tag: 321,\n        type: 'int',\n        codeSet: 'SecurityRequestTypeCodeSet',\n    },\n    {\n        id: '321005',\n        name: 'Symbol',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Symbol',\n        tag: 321,\n        type: 'int',\n        codeSet: 'SecurityRequestTypeCodeSet',\n    },\n    {\n        id: '321006',\n        name: 'SecurityTypeAndOrCFICode',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'SecurityType and or CFICode',\n        tag: 321,\n        type: 'int',\n        codeSet: 'SecurityRequestTypeCodeSet',\n    },\n    {\n        id: '321007',\n        name: 'Product',\n        value: '6',\n        sort: 7,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Product',\n        tag: 321,\n        type: 'int',\n        codeSet: 'SecurityRequestTypeCodeSet',\n    },\n    {\n        id: '321008',\n        name: 'TradingSessionID',\n        value: '7',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'TradingSessionID',\n        tag: 321,\n        type: 'int',\n        codeSet: 'SecurityRequestTypeCodeSet',\n    },\n    {\n        id: '321009',\n        name: 'AllSecurities',\n        value: '8',\n        sort: 9,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'All Securities',\n        tag: 321,\n        type: 'int',\n        codeSet: 'SecurityRequestTypeCodeSet',\n    },\n    {\n        id: '321010',\n        name: 'MarketIDOrMarketID',\n        value: '9',\n        sort: 10,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'MarketID or MarketID + MarketSegmentID',\n        tag: 321,\n        type: 'int',\n        codeSet: 'SecurityRequestTypeCodeSet',\n    },\n    {\n        id: '323001',\n        name: 'AcceptAsIs',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Accept security proposal as-is',\n        tag: 323,\n        type: 'int',\n        codeSet: 'SecurityResponseTypeCodeSet',\n    },\n    {\n        id: '323002',\n        name: 'AcceptWithRevisions',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Accept security proposal with revisions as indicated in the message',\n        tag: 323,\n        type: 'int',\n        codeSet: 'SecurityResponseTypeCodeSet',\n    },\n    {\n        id: '323003',\n        name: 'RejectSecurityProposal',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.2',\n        description: 'Reject security proposal',\n        tag: 323,\n        type: 'int',\n        codeSet: 'SecurityResponseTypeCodeSet',\n    },\n    {\n        id: '323004',\n        name: 'CannotMatchSelectionCriteria',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.2',\n        description: 'Cannot match selection criteria',\n        tag: 323,\n        type: 'int',\n        codeSet: 'SecurityResponseTypeCodeSet',\n    },\n    {\n        id: '325001',\n        name: 'MessageIsBeingSentAsAResultOfAPriorRequest',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Message is being sent as a result of a prior request',\n        tag: 325,\n        type: 'Boolean',\n        codeSet: 'UnsolicitedIndicatorCodeSet',\n    },\n    {\n        id: '325002',\n        name: 'MessageIsBeingSentUnsolicited',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Message is being sent unsolicited',\n        tag: 325,\n        type: 'Boolean',\n        codeSet: 'UnsolicitedIndicatorCodeSet',\n    },\n    {\n        id: '326001',\n        name: 'OpeningDelay',\n        value: '1',\n        sort: 0,\n        added: 'FIX.4.2',\n        description: 'Opening delay',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326002',\n        name: 'TradingHalt',\n        value: '2',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Trading halt',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326003',\n        name: 'Resume',\n        value: '3',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Resume',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326004',\n        name: 'NoOpen',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'No Open / No Resume',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326005',\n        name: 'PriceIndication',\n        value: '5',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Price indication',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326006',\n        name: 'TradingRangeIndication',\n        value: '6',\n        sort: 5,\n        added: 'FIX.4.2',\n        description: 'Trading Range Indication',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326007',\n        name: 'MarketImbalanceBuy',\n        value: '7',\n        sort: 6,\n        added: 'FIX.4.2',\n        description: 'Market Imbalance Buy',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326008',\n        name: 'MarketImbalanceSell',\n        value: '8',\n        sort: 7,\n        added: 'FIX.4.2',\n        description: 'Market Imbalance Sell',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326009',\n        name: 'MarketOnCloseImbalanceBuy',\n        value: '9',\n        sort: 8,\n        added: 'FIX.4.2',\n        description: 'Market on Close Imbalance Buy',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326010',\n        name: 'MarketOnCloseImbalanceSell',\n        value: '10',\n        sort: 9,\n        added: 'FIX.4.2',\n        description: 'Market on Close Imbalance Sell',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326011',\n        name: 'NoMarketImbalance',\n        value: '12',\n        sort: 11,\n        added: 'FIX.4.2',\n        description: 'No Market Imbalance',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326012',\n        name: 'NoMarketOnCloseImbalance',\n        value: '13',\n        sort: 12,\n        added: 'FIX.4.2',\n        description: 'No Market on Close Imbalance',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326013',\n        name: 'ITSPreOpening',\n        value: '14',\n        sort: 13,\n        added: 'FIX.4.2',\n        description: 'ITS Pre-opening',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326014',\n        name: 'NewPriceIndication',\n        value: '15',\n        sort: 14,\n        added: 'FIX.4.2',\n        description: 'New Price Indication',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326015',\n        name: 'TradeDisseminationTime',\n        value: '16',\n        sort: 15,\n        added: 'FIX.4.2',\n        description: 'Trade Dissemination Time',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326016',\n        name: 'ReadyToTrade',\n        value: '17',\n        sort: 16,\n        added: 'FIX.4.2',\n        description: 'Ready to trade (start of session)',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326017',\n        name: 'NotAvailableForTrading',\n        value: '18',\n        sort: 17,\n        added: 'FIX.4.2',\n        description: 'Not available for trading (end of session)',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326018',\n        name: 'NotTradedOnThisMarket',\n        value: '19',\n        sort: 18,\n        added: 'FIX.4.2',\n        description: 'Not traded on this market',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326019',\n        name: 'UnknownOrInvalid',\n        value: '20',\n        sort: 19,\n        added: 'FIX.4.2',\n        description: 'Unknown or Invalid',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326020',\n        name: 'PreOpen',\n        value: '21',\n        sort: 20,\n        added: 'FIX.4.3',\n        description: 'Pre-open',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326021',\n        name: 'OpeningRotation',\n        value: '22',\n        sort: 21,\n        added: 'FIX.4.3',\n        description: 'Opening Rotation',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326022',\n        name: 'FastMarket',\n        value: '23',\n        sort: 22,\n        added: 'FIX.4.3',\n        description: 'Fast Market',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326023',\n        name: 'PreCross',\n        value: '24',\n        sort: 98,\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description: 'Pre-Cross - system is in a pre-cross state allowing market to respond to either side of cross',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326024',\n        name: 'Cross',\n        value: '25',\n        sort: 99,\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description:\n            'Cross - system has crossed a percentage of the orders and allows market to respond prior to crossing remaining portion',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326025',\n        name: 'PostClose',\n        value: '26',\n        sort: 100,\n        added: 'FIX.5.0SP1',\n        addedEP: '84',\n        description: 'Post-close',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '326026',\n        name: 'NoCancel',\n        value: '27',\n        sort: 101,\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description: 'No-cancel',\n        tag: 326,\n        type: 'int',\n        codeSet: 'SecurityTradingStatusCodeSet',\n    },\n    {\n        id: '327001',\n        name: 'NewsDissemination',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '86',\n        description: 'News Dissemination',\n        tag: 327,\n        type: 'int',\n        codeSet: 'HaltReasonCodeSet',\n    },\n    {\n        id: '327002',\n        name: 'OrderInflux',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '86',\n        description: 'Order Influx',\n        tag: 327,\n        type: 'int',\n        codeSet: 'HaltReasonCodeSet',\n    },\n    {\n        id: '327003',\n        name: 'OrderImbalance',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '86',\n        description: 'Order Imbalance',\n        tag: 327,\n        type: 'int',\n        codeSet: 'HaltReasonCodeSet',\n    },\n    {\n        id: '327004',\n        name: 'AdditionalInformation',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '86',\n        description: 'Additional Information',\n        tag: 327,\n        type: 'int',\n        codeSet: 'HaltReasonCodeSet',\n    },\n    {\n        id: '327005',\n        name: 'NewsPending',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '86',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'News Pending',\n        tag: 327,\n        type: 'int',\n        codeSet: 'HaltReasonCodeSet',\n    },\n    {\n        id: '327006',\n        name: 'EquipmentChangeover',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP1',\n        addedEP: '86',\n        description: 'Equipment Changeover',\n        tag: 327,\n        type: 'int',\n        codeSet: 'HaltReasonCodeSet',\n    },\n    {\n        id: '328001',\n        name: 'HaltWasNotRelatedToAHaltOfTheCommonStock',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Halt was not related to a halt of the common stock',\n        tag: 328,\n        type: 'Boolean',\n        codeSet: 'InViewOfCommonCodeSet',\n    },\n    {\n        id: '328002',\n        name: 'HaltWasDueToCommonStockBeingHalted',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Halt was due to common stock being halted',\n        tag: 328,\n        type: 'Boolean',\n        codeSet: 'InViewOfCommonCodeSet',\n    },\n    {\n        id: '329001',\n        name: 'NotRelatedToSecurityHalt',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Halt was not related to a halt of the related security',\n        tag: 329,\n        type: 'Boolean',\n        codeSet: 'DueToRelatedCodeSet',\n    },\n    {\n        id: '329002',\n        name: 'RelatedToSecurityHalt',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Halt was due to related security being halted',\n        tag: 329,\n        type: 'Boolean',\n        codeSet: 'DueToRelatedCodeSet',\n    },\n    {\n        id: '334001',\n        name: 'Cancel',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Cancel',\n        tag: 334,\n        type: 'int',\n        codeSet: 'AdjustmentCodeSet',\n    },\n    {\n        id: '334002',\n        name: 'Error',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Error',\n        tag: 334,\n        type: 'int',\n        codeSet: 'AdjustmentCodeSet',\n    },\n    {\n        id: '334003',\n        name: 'Correction',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Correction',\n        tag: 334,\n        type: 'int',\n        codeSet: 'AdjustmentCodeSet',\n    },\n    {\n        id: '336001',\n        name: 'Day',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Day',\n        tag: 336,\n        type: 'String',\n        codeSet: 'TradingSessionIDCodeSet',\n    },\n    {\n        id: '336002',\n        name: 'HalfDay',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'HalfDay',\n        tag: 336,\n        type: 'String',\n        codeSet: 'TradingSessionIDCodeSet',\n    },\n    {\n        id: '336003',\n        name: 'Morning',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Morning',\n        tag: 336,\n        type: 'String',\n        codeSet: 'TradingSessionIDCodeSet',\n    },\n    {\n        id: '336004',\n        name: 'Afternoon',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Afternoon',\n        tag: 336,\n        type: 'String',\n        codeSet: 'TradingSessionIDCodeSet',\n    },\n    {\n        id: '336005',\n        name: 'Evening',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Evening',\n        tag: 336,\n        type: 'String',\n        codeSet: 'TradingSessionIDCodeSet',\n    },\n    {\n        id: '336006',\n        name: 'AfterHours',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'After-hours',\n        tag: 336,\n        type: 'String',\n        codeSet: 'TradingSessionIDCodeSet',\n    },\n    {\n        id: '336007',\n        name: 'Holiday',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Holiday',\n        tag: 336,\n        type: 'String',\n        codeSet: 'TradingSessionIDCodeSet',\n    },\n    {\n        id: '338001',\n        name: 'Electronic',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Electronic',\n        tag: 338,\n        type: 'int',\n        codeSet: 'TradSesMethodCodeSet',\n    },\n    {\n        id: '338002',\n        name: 'OpenOutcry',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Open Outcry',\n        tag: 338,\n        type: 'int',\n        codeSet: 'TradSesMethodCodeSet',\n    },\n    {\n        id: '338003',\n        name: 'TwoParty',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Two Party',\n        tag: 338,\n        type: 'int',\n        codeSet: 'TradSesMethodCodeSet',\n    },\n    {\n        id: '338004',\n        name: 'Voice',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Voice',\n        tag: 338,\n        type: 'int',\n        codeSet: 'TradSesMethodCodeSet',\n    },\n    {\n        id: '339001',\n        name: 'Testing',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Testing',\n        tag: 339,\n        type: 'int',\n        codeSet: 'TradSesModeCodeSet',\n    },\n    {\n        id: '339002',\n        name: 'Simulated',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Simulated',\n        tag: 339,\n        type: 'int',\n        codeSet: 'TradSesModeCodeSet',\n    },\n    {\n        id: '339003',\n        name: 'Production',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Production',\n        tag: 339,\n        type: 'int',\n        codeSet: 'TradSesModeCodeSet',\n    },\n    {\n        id: '340001',\n        name: 'Unknown',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Unknown',\n        tag: 340,\n        type: 'int',\n        codeSet: 'TradSesStatusCodeSet',\n    },\n    {\n        id: '340002',\n        name: 'Halted',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Halted',\n        tag: 340,\n        type: 'int',\n        codeSet: 'TradSesStatusCodeSet',\n    },\n    {\n        id: '340003',\n        name: 'Open',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Open',\n        tag: 340,\n        type: 'int',\n        codeSet: 'TradSesStatusCodeSet',\n    },\n    {\n        id: '340004',\n        name: 'Closed',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Closed',\n        tag: 340,\n        type: 'int',\n        codeSet: 'TradSesStatusCodeSet',\n    },\n    {\n        id: '340005',\n        name: 'PreOpen',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.2',\n        description: 'Pre-Open',\n        tag: 340,\n        type: 'int',\n        codeSet: 'TradSesStatusCodeSet',\n    },\n    {\n        id: '340006',\n        name: 'PreClose',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.2',\n        description: 'Pre-Close',\n        tag: 340,\n        type: 'int',\n        codeSet: 'TradSesStatusCodeSet',\n    },\n    {\n        id: '340007',\n        name: 'RequestRejected',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Request Rejected',\n        tag: 340,\n        type: 'int',\n        codeSet: 'TradSesStatusCodeSet',\n    },\n    {\n        id: '340008',\n        name: 'Outage',\n        value: '7',\n        sort: 8,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Outage',\n        tag: 340,\n        type: 'int',\n        codeSet: 'TradSesStatusCodeSet',\n    },\n    {\n        id: '340009',\n        name: 'PartialOutage',\n        value: '8',\n        sort: 9,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Partial outage',\n        tag: 340,\n        type: 'int',\n        codeSet: 'TradSesStatusCodeSet',\n    },\n    {\n        id: '373001',\n        name: 'InvalidTagNumber',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.2',\n        description: 'Invalid Tag Number',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373002',\n        name: 'RequiredTagMissing',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Required Tag Missing',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373003',\n        name: 'TagNotDefinedForThisMessageType',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Tag not defined for this message type',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373004',\n        name: 'UndefinedTag',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Undefined tag',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373005',\n        name: 'TagSpecifiedWithoutAValue',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Tag specified without a value',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373006',\n        name: 'ValueIsIncorrect',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.2',\n        description: 'Value is incorrect (out of range) for this tag',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373007',\n        name: 'IncorrectDataFormatForValue',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.2',\n        description: 'Incorrect data format for value',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373008',\n        name: 'DecryptionProblem',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.2',\n        description: 'Decryption problem',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373009',\n        name: 'SignatureProblem',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.2',\n        description: 'Signature problem',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373010',\n        name: 'CompIDProblem',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.2',\n        description: 'CompID problem',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373011',\n        name: 'SendingTimeAccuracyProblem',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.2',\n        description: 'SendingTime Accuracy Problem',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373012',\n        name: 'InvalidMsgType',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.2',\n        description: 'Invalid MsgType',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373013',\n        name: 'XMLValidationError',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.3',\n        description: 'XML Validation Error',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373014',\n        name: 'TagAppearsMoreThanOnce',\n        value: '13',\n        sort: 13,\n        added: 'FIX.4.3',\n        description: 'Tag appears more than once',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373015',\n        name: 'TagSpecifiedOutOfRequiredOrder',\n        value: '14',\n        sort: 14,\n        added: 'FIX.4.3',\n        description: 'Tag specified out of required order',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373016',\n        name: 'RepeatingGroupFieldsOutOfOrder',\n        value: '15',\n        sort: 15,\n        added: 'FIX.4.3',\n        description: 'Repeating group fields out of order',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373017',\n        name: 'IncorrectNumInGroupCountForRepeatingGroup',\n        value: '16',\n        sort: 16,\n        added: 'FIX.4.3',\n        description: 'Incorrect NumInGroup count for repeating group',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373018',\n        name: 'NonDataValueIncludesFieldDelimiter',\n        value: '17',\n        sort: 17,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Non \"Data\" value includes field delimiter (<SOH> character)',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373019',\n        name: 'InvalidUnsupportedApplVer',\n        value: '18',\n        sort: 19,\n        added: 'FIX.5.0',\n        addedEP: '56',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Invalid/Unsupported Application Version',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '373020',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 373,\n        type: 'int',\n        codeSet: 'SessionRejectReasonCodeSet',\n    },\n    {\n        id: '374001',\n        name: 'Cancel',\n        value: 'C',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Cancel',\n        tag: 374,\n        type: 'char',\n        codeSet: 'BidRequestTransTypeCodeSet',\n    },\n    {\n        id: '374002',\n        name: 'New',\n        value: 'N',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'New',\n        tag: 374,\n        type: 'char',\n        codeSet: 'BidRequestTransTypeCodeSet',\n    },\n    {\n        id: '377001',\n        name: 'WasNotSolicited',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Was not solicited',\n        tag: 377,\n        type: 'Boolean',\n        codeSet: 'SolicitedFlagCodeSet',\n    },\n    {\n        id: '377002',\n        name: 'WasSolicited',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Was solicited',\n        tag: 377,\n        type: 'Boolean',\n        codeSet: 'SolicitedFlagCodeSet',\n    },\n    {\n        id: '378001',\n        name: 'GTCorporateAction',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.2',\n        description: 'GT corporate action',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378002',\n        name: 'GTRenewal',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'GT renewal / restatement (no corporate action)',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378003',\n        name: 'VerbalChange',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Verbal change',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378004',\n        name: 'RepricingOfOrder',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Repricing of order',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378005',\n        name: 'BrokerOption',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Broker option',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378006',\n        name: 'PartialDeclineOfOrderQty',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.2',\n        description: 'Partial decline of OrderQty (e.g. exchange initiated partial cancel)',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378007',\n        name: 'CancelOnTradingHalt',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Cancel on Trading Halt',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378008',\n        name: 'CancelOnSystemFailure',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Cancel on System Failure',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378009',\n        name: 'Market',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'Market (Exchange) option',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378010',\n        name: 'Canceled',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.4',\n        description: 'Canceled, not best',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378011',\n        name: 'WarehouseRecap',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.4',\n        description: 'Warehouse Recap',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378012',\n        name: 'PegRefresh',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Peg Refresh',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378013',\n        name: 'CancelOnConnectionLoss',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Cancel On Connection Loss',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378014',\n        name: 'CancelOnLogout',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Cancel On Logout',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378015',\n        name: 'AssignTimePriority',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        description: 'Assign Time Priority',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378016',\n        name: 'CancelledForTradePriceViolation',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '104',\n        description: 'Cancelled, Trade Price Violation',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378017',\n        name: 'CancelledForCrossImbalance',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '104',\n        description: 'Cancelled, Cross Imbalance',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378018',\n        name: 'CxldSMP',\n        value: '17',\n        sort: 17,\n        added: 'FIX.Latest',\n        addedEP: '280',\n        description:\n            'Cancelled, self-match prevention\\n\\n\\n                        Cancelled order based on standing rules for self-match prevention (i.e. SelfMatchPreventionInstruction(2964) not specified or used).',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378019',\n        name: 'CxldSMPAggressive',\n        value: '18',\n        sort: 18,\n        added: 'FIX.Latest',\n        addedEP: '280',\n        description:\n            'Cancelled, self-match prevention aggressive order\\n\\n\\n                        Cancelled due to incoming order with the same SelfMatchPreventionID(2362) and SelfMatchPreventionInstruction(2964)=1 (Cancel aggressive).',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378020',\n        name: 'CxldSMPPassive',\n        value: '19',\n        sort: 19,\n        added: 'FIX.Latest',\n        addedEP: '280',\n        description:\n            'Cancelled, self-match prevention passive order\\n\\n\\n                        Cancelled due to incoming order with the same SelfMatchPreventionID(2362) and SelfMatchPreventionInstruction(2964)=2 (Cancel passive).',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378021',\n        name: 'CxldSMPAggressivePassive',\n        value: '20',\n        sort: 20,\n        added: 'FIX.Latest',\n        addedEP: '280',\n        description:\n            'Cancelled, self-match prevention aggressive and passive order\\n\\n\\n                        Cancelled due to incoming order with the same SelfMatchPreventionID(2362) and SelfMatchPreventionInstruction(2964)=3 (Cancel aggressive and passive).',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '378022',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 378,\n        type: 'int',\n        codeSet: 'ExecRestatementReasonCodeSet',\n    },\n    {\n        id: '380001',\n        name: 'Other',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Other',\n        tag: 380,\n        type: 'int',\n        codeSet: 'BusinessRejectReasonCodeSet',\n    },\n    {\n        id: '380002',\n        name: 'UnknownID',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Unknown ID',\n        tag: 380,\n        type: 'int',\n        codeSet: 'BusinessRejectReasonCodeSet',\n    },\n    {\n        id: '380003',\n        name: 'UnknownSecurity',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Unknown Security',\n        tag: 380,\n        type: 'int',\n        codeSet: 'BusinessRejectReasonCodeSet',\n    },\n    {\n        id: '380004',\n        name: 'UnsupportedMessageType',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Unsupported Message Type',\n        tag: 380,\n        type: 'int',\n        codeSet: 'BusinessRejectReasonCodeSet',\n    },\n    {\n        id: '380005',\n        name: 'ApplicationNotAvailable',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.2',\n        description: 'Application not available',\n        tag: 380,\n        type: 'int',\n        codeSet: 'BusinessRejectReasonCodeSet',\n    },\n    {\n        id: '380006',\n        name: 'ConditionallyRequiredFieldMissing',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.2',\n        description: 'Conditionally required field missing',\n        tag: 380,\n        type: 'int',\n        codeSet: 'BusinessRejectReasonCodeSet',\n    },\n    {\n        id: '380007',\n        name: 'NotAuthorized',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Not Authorized',\n        tag: 380,\n        type: 'int',\n        codeSet: 'BusinessRejectReasonCodeSet',\n    },\n    {\n        id: '380008',\n        name: 'DeliverToFirmNotAvailableAtThisTime',\n        value: '7',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'DeliverTo firm not available at this time',\n        tag: 380,\n        type: 'int',\n        codeSet: 'BusinessRejectReasonCodeSet',\n    },\n    {\n        id: '380009',\n        name: 'ThrottleLimitExceeded',\n        value: '8',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Throttle limit exceeded',\n        tag: 380,\n        type: 'int',\n        codeSet: 'BusinessRejectReasonCodeSet',\n    },\n    {\n        id: '380010',\n        name: 'ThrottleLimitExceededSessionDisconnected',\n        value: '9',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Throttle limit exceeded, session will be disconnected',\n        tag: 380,\n        type: 'int',\n        codeSet: 'BusinessRejectReasonCodeSet',\n    },\n    {\n        id: '380011',\n        name: 'ThrottledMessagesRejectedOnRequest',\n        value: '10',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Throttled messages rejected on request',\n        tag: 380,\n        type: 'int',\n        codeSet: 'BusinessRejectReasonCodeSet',\n    },\n    {\n        id: '380012',\n        name: 'InvalidPriceIncrement',\n        value: '18',\n        sort: 19,\n        added: 'FIX.4.4',\n        addedEP: '6',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '116',\n        description: 'Invalid price increment',\n        tag: 380,\n        type: 'int',\n        codeSet: 'BusinessRejectReasonCodeSet',\n    },\n    {\n        id: '385001',\n        name: 'Receive',\n        value: 'R',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Receive',\n        tag: 385,\n        type: 'char',\n        codeSet: 'MsgDirectionCodeSet',\n    },\n    {\n        id: '385002',\n        name: 'Send',\n        value: 'S',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Send',\n        tag: 385,\n        type: 'char',\n        codeSet: 'MsgDirectionCodeSet',\n    },\n    {\n        id: '388001',\n        name: 'RelatedToDisplayedPrice',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Related to displayed price',\n        tag: 388,\n        type: 'char',\n        codeSet: 'DiscretionInstCodeSet',\n    },\n    {\n        id: '388002',\n        name: 'RelatedToMarketPrice',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Related to market price',\n        tag: 388,\n        type: 'char',\n        codeSet: 'DiscretionInstCodeSet',\n    },\n    {\n        id: '388003',\n        name: 'RelatedToPrimaryPrice',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Related to primary price',\n        tag: 388,\n        type: 'char',\n        codeSet: 'DiscretionInstCodeSet',\n    },\n    {\n        id: '388004',\n        name: 'RelatedToLocalPrimaryPrice',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Related to local primary price',\n        tag: 388,\n        type: 'char',\n        codeSet: 'DiscretionInstCodeSet',\n    },\n    {\n        id: '388005',\n        name: 'RelatedToMidpointPrice',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.2',\n        description: 'Related to midpoint price',\n        tag: 388,\n        type: 'char',\n        codeSet: 'DiscretionInstCodeSet',\n    },\n    {\n        id: '388006',\n        name: 'RelatedToLastTradePrice',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.2',\n        description: 'Related to last trade price',\n        tag: 388,\n        type: 'char',\n        codeSet: 'DiscretionInstCodeSet',\n    },\n    {\n        id: '388007',\n        name: 'RelatedToVWAP',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.4',\n        description: 'Related to VWAP',\n        tag: 388,\n        type: 'char',\n        codeSet: 'DiscretionInstCodeSet',\n    },\n    {\n        id: '388008',\n        name: 'AveragePriceGuarantee',\n        value: '7',\n        sort: 8,\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Average Price Guarantee',\n        tag: 388,\n        type: 'char',\n        codeSet: 'DiscretionInstCodeSet',\n    },\n    {\n        id: '394001',\n        name: 'NonDisclosed',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: '\"Non Disclosed\" style (e.g. US/European)',\n        tag: 394,\n        type: 'int',\n        codeSet: 'BidTypeCodeSet',\n    },\n    {\n        id: '394002',\n        name: 'Disclosed',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: '\"Disclosed\" style (e.g. Japanese)',\n        tag: 394,\n        type: 'int',\n        codeSet: 'BidTypeCodeSet',\n    },\n    {\n        id: '394003',\n        name: 'NoBiddingProcess',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'No bidding process',\n        tag: 394,\n        type: 'int',\n        codeSet: 'BidTypeCodeSet',\n    },\n    {\n        id: '399001',\n        name: 'Sector',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Sector',\n        tag: 399,\n        type: 'int',\n        codeSet: 'BidDescriptorTypeCodeSet',\n    },\n    {\n        id: '399002',\n        name: 'Country',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Country',\n        tag: 399,\n        type: 'int',\n        codeSet: 'BidDescriptorTypeCodeSet',\n    },\n    {\n        id: '399003',\n        name: 'Index',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Index',\n        tag: 399,\n        type: 'int',\n        codeSet: 'BidDescriptorTypeCodeSet',\n    },\n    {\n        id: '401001',\n        name: 'SideValue1',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Side Value 1',\n        tag: 401,\n        type: 'int',\n        codeSet: 'SideValueIndCodeSet',\n    },\n    {\n        id: '401002',\n        name: 'SideValue2',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Side Value 2',\n        tag: 401,\n        type: 'int',\n        codeSet: 'SideValueIndCodeSet',\n    },\n    {\n        id: '409001',\n        name: 'FiveDayMovingAverage',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: '5-day moving average',\n        tag: 409,\n        type: 'int',\n        codeSet: 'LiquidityIndTypeCodeSet',\n    },\n    {\n        id: '409002',\n        name: 'TwentyDayMovingAverage',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: '20-day moving average',\n        tag: 409,\n        type: 'int',\n        codeSet: 'LiquidityIndTypeCodeSet',\n    },\n    {\n        id: '409003',\n        name: 'NormalMarketSize',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Normal market size',\n        tag: 409,\n        type: 'int',\n        codeSet: 'LiquidityIndTypeCodeSet',\n    },\n    {\n        id: '409004',\n        name: 'Other',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Other',\n        tag: 409,\n        type: 'int',\n        codeSet: 'LiquidityIndTypeCodeSet',\n    },\n    {\n        id: '411001',\n        name: 'False',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'False',\n        tag: 411,\n        type: 'Boolean',\n        codeSet: 'ExchangeForPhysicalCodeSet',\n    },\n    {\n        id: '411002',\n        name: 'True',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'True',\n        tag: 411,\n        type: 'Boolean',\n        codeSet: 'ExchangeForPhysicalCodeSet',\n    },\n    {\n        id: '414001',\n        name: 'BuySideRequests',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description:\n            'Buy-side explicitly requests status using Statue Request (default), the sell-side firm can, however, send a DONE status List STatus Response in an unsolicited fashion',\n        tag: 414,\n        type: 'int',\n        codeSet: 'ProgRptReqsCodeSet',\n    },\n    {\n        id: '414002',\n        name: 'SellSideSends',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        description:\n            'Sell-side periodically sends status using List Status. Period optionally specified in ProgressPeriod.',\n        tag: 414,\n        type: 'int',\n        codeSet: 'ProgRptReqsCodeSet',\n    },\n    {\n        id: '414003',\n        name: 'RealTimeExecutionReports',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Real-time execution reports (to be discourage)',\n        tag: 414,\n        type: 'int',\n        codeSet: 'ProgRptReqsCodeSet',\n    },\n    {\n        id: '416001',\n        name: 'Net',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Net',\n        tag: 416,\n        type: 'int',\n        codeSet: 'IncTaxIndCodeSet',\n    },\n    {\n        id: '416002',\n        name: 'Gross',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Gross',\n        tag: 416,\n        type: 'int',\n        codeSet: 'IncTaxIndCodeSet',\n    },\n    {\n        id: '418001',\n        name: 'Agency',\n        value: 'A',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Agency',\n        tag: 418,\n        type: 'char',\n        codeSet: 'BidTradeTypeCodeSet',\n    },\n    {\n        id: '418002',\n        name: 'VWAPGuarantee',\n        value: 'G',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'VWAP Guarantee',\n        tag: 418,\n        type: 'char',\n        codeSet: 'BidTradeTypeCodeSet',\n    },\n    {\n        id: '418003',\n        name: 'GuaranteedClose',\n        value: 'J',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Guaranteed Close',\n        tag: 418,\n        type: 'char',\n        codeSet: 'BidTradeTypeCodeSet',\n    },\n    {\n        id: '418004',\n        name: 'RiskTrade',\n        value: 'R',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'Risk Trade',\n        tag: 418,\n        type: 'char',\n        codeSet: 'BidTradeTypeCodeSet',\n    },\n    {\n        id: '419001',\n        name: 'ClosingPriceAtMorningSession',\n        value: '2',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Closing price at morning session',\n        tag: 419,\n        type: 'char',\n        codeSet: 'BasisPxTypeCodeSet',\n    },\n    {\n        id: '419002',\n        name: 'ClosingPrice',\n        value: '3',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Closing price',\n        tag: 419,\n        type: 'char',\n        codeSet: 'BasisPxTypeCodeSet',\n    },\n    {\n        id: '419003',\n        name: 'CurrentPrice',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Current price',\n        tag: 419,\n        type: 'char',\n        codeSet: 'BasisPxTypeCodeSet',\n    },\n    {\n        id: '419004',\n        name: 'SQ',\n        value: '5',\n        sort: 4,\n        added: 'FIX.4.2',\n        description: 'SQ',\n        tag: 419,\n        type: 'char',\n        codeSet: 'BasisPxTypeCodeSet',\n    },\n    {\n        id: '419005',\n        name: 'VWAPThroughADay',\n        value: '6',\n        sort: 5,\n        added: 'FIX.4.2',\n        description: 'VWAP through a day',\n        tag: 419,\n        type: 'char',\n        codeSet: 'BasisPxTypeCodeSet',\n    },\n    {\n        id: '419006',\n        name: 'VWAPThroughAMorningSession',\n        value: '7',\n        sort: 6,\n        added: 'FIX.4.2',\n        description: 'VWAP through a morning session',\n        tag: 419,\n        type: 'char',\n        codeSet: 'BasisPxTypeCodeSet',\n    },\n    {\n        id: '419007',\n        name: 'VWAPThroughAnAfternoonSession',\n        value: '8',\n        sort: 7,\n        added: 'FIX.4.2',\n        description: 'VWAP through an afternoon session',\n        tag: 419,\n        type: 'char',\n        codeSet: 'BasisPxTypeCodeSet',\n    },\n    {\n        id: '419008',\n        name: 'VWAPThroughADayExcept',\n        value: '9',\n        sort: 8,\n        added: 'FIX.4.2',\n        description: 'VWAP through a day except \"YORI\" (an opening auction)',\n        tag: 419,\n        type: 'char',\n        codeSet: 'BasisPxTypeCodeSet',\n    },\n    {\n        id: '419009',\n        name: 'VWAPThroughAMorningSessionExcept',\n        value: 'A',\n        sort: 9,\n        added: 'FIX.4.2',\n        description: 'VWAP through a morning session except \"YORI\" (an opening auction)',\n        tag: 419,\n        type: 'char',\n        codeSet: 'BasisPxTypeCodeSet',\n    },\n    {\n        id: '419010',\n        name: 'VWAPThroughAnAfternoonSessionExcept',\n        value: 'B',\n        sort: 10,\n        added: 'FIX.4.2',\n        description: 'VWAP through an afternoon session except \"YORI\" (an opening auction)',\n        tag: 419,\n        type: 'char',\n        codeSet: 'BasisPxTypeCodeSet',\n    },\n    {\n        id: '419011',\n        name: 'Strike',\n        value: 'C',\n        sort: 11,\n        added: 'FIX.4.2',\n        description: 'Strike',\n        tag: 419,\n        type: 'char',\n        codeSet: 'BasisPxTypeCodeSet',\n    },\n    {\n        id: '419012',\n        name: 'Open',\n        value: 'D',\n        sort: 12,\n        added: 'FIX.4.2',\n        description: 'Open',\n        tag: 419,\n        type: 'char',\n        codeSet: 'BasisPxTypeCodeSet',\n    },\n    {\n        id: '419013',\n        name: 'Others',\n        value: 'Z',\n        sort: 30,\n        added: 'FIX.4.2',\n        description: 'Others',\n        tag: 419,\n        type: 'char',\n        codeSet: 'BasisPxTypeCodeSet',\n    },\n    {\n        id: '423001',\n        name: 'Percentage',\n        value: '1',\n        sort: 0,\n        added: 'FIX.4.2',\n        description: 'Percentage (i.e. percent of par) (often called \"dollar price\" for fixed income)',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423002',\n        name: 'PerUnit',\n        value: '2',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Per unit (i.e. per share or contract)',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423003',\n        name: 'FixedAmount',\n        value: '3',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Fixed amount (absolute value)',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423004',\n        name: 'Discount',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Discount - percentage points below par',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423005',\n        name: 'Premium',\n        value: '5',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Premium - percentage points over par',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423006',\n        name: 'Spread',\n        value: '6',\n        sort: 5,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '207',\n        description:\n            'Spread (basis points spread)\\n\\n\\n                        Usually the difference in yield between two switched bonds or a corporate bond traded spread-to-benchmark.',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423007',\n        name: 'TEDPrice',\n        value: '7',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'TED Price',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423008',\n        name: 'TEDYield',\n        value: '8',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'TED Yield',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423009',\n        name: 'Yield',\n        value: '9',\n        sort: 8,\n        added: 'FIX.4.4',\n        description: 'Yield',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423010',\n        name: 'FixedCabinetTradePrice',\n        value: '10',\n        sort: 9,\n        added: 'FIX.4.4',\n        description: 'Fixed cabinet trade price (primarily for listed futures and options)',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423011',\n        name: 'VariableCabinetTradePrice',\n        value: '11',\n        sort: 10,\n        added: 'FIX.4.4',\n        description: 'Variable cabinet trade price (primarily for listed futures and options)',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423012',\n        name: 'PriceSpread',\n        value: '12',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description:\n            'Price spread\\n\\n\\n                        Price spread is expressed based on market convention for the asset being priced or traded. For example, the difference between the prices of a multileg switch or strategy expressed in basis points for a CDS or TBA roll; a price value to be added to a reference price, such as a \"pay up\" for specified pools',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423013',\n        name: 'ProductTicksInHalves',\n        value: '13',\n        sort: 12,\n        added: 'FIX.4.4',\n        addedEP: '19',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '207',\n        description: 'Product ticks in halves',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423014',\n        name: 'ProductTicksInFourths',\n        value: '14',\n        sort: 13,\n        added: 'FIX.4.4',\n        addedEP: '19',\n        description: 'Product ticks in fourths',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423015',\n        name: 'ProductTicksInEighths',\n        value: '15',\n        sort: 14,\n        added: 'FIX.4.4',\n        addedEP: '19',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '207',\n        description: 'Product ticks in eighths',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423016',\n        name: 'ProductTicksInSixteenths',\n        value: '16',\n        sort: 15,\n        added: 'FIX.4.4',\n        addedEP: '19',\n        description: 'Product ticks in sixteenths',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423017',\n        name: 'ProductTicksInThirtySeconds',\n        value: '17',\n        sort: 16,\n        added: 'FIX.4.4',\n        addedEP: '19',\n        description: 'Product ticks in thirty-seconds',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423018',\n        name: 'ProductTicksInSixtyFourths',\n        value: '18',\n        sort: 17,\n        added: 'FIX.4.4',\n        addedEP: '19',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '207',\n        description: 'Product ticks in sixty-fourths',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423019',\n        name: 'ProductTicksInOneTwentyEighths',\n        value: '19',\n        sort: 18,\n        added: 'FIX.4.4',\n        addedEP: '19',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '207',\n        description: 'Product ticks in one-twenty-eighths',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423020',\n        name: 'NormalRateRepresentation',\n        value: '20',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Normal rate representation (e.g. FX rate)',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423021',\n        name: 'InverseRateRepresentation',\n        value: '21',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Inverse rate representation (e.g. FX rate)',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423022',\n        name: 'BasisPoints',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Basis points\\n\\n\\n                        When the price is not spread based.',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423023',\n        name: 'UpfrontPoints',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Up front points\\n\\n\\n                        Used specifically for CDS pricing.',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423024',\n        name: 'InterestRate',\n        value: '24',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '174',\n        description:\n            'Interest rate\\n\\n\\n                        When the price is an interest rate. For example, used with benchmark reference rate.',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '423025',\n        name: 'PercentageNotional',\n        value: '25',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Percentage of notional',\n        tag: 423,\n        type: 'int',\n        codeSet: 'PriceTypeCodeSet',\n    },\n    {\n        id: '427001',\n        name: 'BookOutAllTradesOnDayOfExecution',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Book out all trades on day of execution',\n        tag: 427,\n        type: 'int',\n        codeSet: 'GTBookingInstCodeSet',\n    },\n    {\n        id: '427002',\n        name: 'AccumulateUntilFilledOrExpired',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Accumulate executions until order is filled or expires',\n        tag: 427,\n        type: 'int',\n        codeSet: 'GTBookingInstCodeSet',\n    },\n    {\n        id: '427003',\n        name: 'AccumulateUntilVerballyNotifiedOtherwise',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Accumulate until verbally notified otherwise',\n        tag: 427,\n        type: 'int',\n        codeSet: 'GTBookingInstCodeSet',\n    },\n    {\n        id: '429001',\n        name: 'Ack',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Ack',\n        tag: 429,\n        type: 'int',\n        codeSet: 'ListStatusTypeCodeSet',\n    },\n    {\n        id: '429002',\n        name: 'Response',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Response',\n        tag: 429,\n        type: 'int',\n        codeSet: 'ListStatusTypeCodeSet',\n    },\n    {\n        id: '429003',\n        name: 'Timed',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Timed',\n        tag: 429,\n        type: 'int',\n        codeSet: 'ListStatusTypeCodeSet',\n    },\n    {\n        id: '429004',\n        name: 'ExecStarted',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Exec Started',\n        tag: 429,\n        type: 'int',\n        codeSet: 'ListStatusTypeCodeSet',\n    },\n    {\n        id: '429005',\n        name: 'AllDone',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'All Done',\n        tag: 429,\n        type: 'int',\n        codeSet: 'ListStatusTypeCodeSet',\n    },\n    {\n        id: '429006',\n        name: 'Alert',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Alert',\n        tag: 429,\n        type: 'int',\n        codeSet: 'ListStatusTypeCodeSet',\n    },\n    {\n        id: '430001',\n        name: 'Net',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Net',\n        tag: 430,\n        type: 'int',\n        codeSet: 'NetGrossIndCodeSet',\n    },\n    {\n        id: '430002',\n        name: 'Gross',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        description: 'Gross',\n        tag: 430,\n        type: 'int',\n        codeSet: 'NetGrossIndCodeSet',\n    },\n    {\n        id: '431001',\n        name: 'InBiddingProcess',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'In bidding process',\n        tag: 431,\n        type: 'int',\n        codeSet: 'ListOrderStatusCodeSet',\n    },\n    {\n        id: '431002',\n        name: 'ReceivedForExecution',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Received for execution',\n        tag: 431,\n        type: 'int',\n        codeSet: 'ListOrderStatusCodeSet',\n    },\n    {\n        id: '431003',\n        name: 'Executing',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Executing',\n        tag: 431,\n        type: 'int',\n        codeSet: 'ListOrderStatusCodeSet',\n    },\n    {\n        id: '431004',\n        name: 'Cancelling',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Cancelling',\n        tag: 431,\n        type: 'int',\n        codeSet: 'ListOrderStatusCodeSet',\n    },\n    {\n        id: '431005',\n        name: 'Alert',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Alert',\n        tag: 431,\n        type: 'int',\n        codeSet: 'ListOrderStatusCodeSet',\n    },\n    {\n        id: '431006',\n        name: 'AllDone',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'All Done',\n        tag: 431,\n        type: 'int',\n        codeSet: 'ListOrderStatusCodeSet',\n    },\n    {\n        id: '431007',\n        name: 'Reject',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Reject',\n        tag: 431,\n        type: 'int',\n        codeSet: 'ListOrderStatusCodeSet',\n    },\n    {\n        id: '433001',\n        name: 'Immediate',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Immediate',\n        tag: 433,\n        type: 'char',\n        codeSet: 'ListExecInstTypeCodeSet',\n    },\n    {\n        id: '433002',\n        name: 'WaitForInstruction',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        description:\n            'Wait for Execut Instruction (i.e. a List Execut message or phone call before proceeding with execution of the list)',\n        tag: 433,\n        type: 'char',\n        codeSet: 'ListExecInstTypeCodeSet',\n    },\n    {\n        id: '433003',\n        name: 'SellDriven',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Exchange/switch CIV order - Sell driven',\n        tag: 433,\n        type: 'char',\n        codeSet: 'ListExecInstTypeCodeSet',\n    },\n    {\n        id: '433004',\n        name: 'BuyDrivenCashTopUp',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description:\n            'Exchange/switch CIV order - Buy driven, cash top-up (i.e. additional cash will be provided to fulfill the order)',\n        tag: 433,\n        type: 'char',\n        codeSet: 'ListExecInstTypeCodeSet',\n    },\n    {\n        id: '433005',\n        name: 'BuyDrivenCashWithdraw',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        description:\n            'Exchange/switch CIV order - Buy driven, cash withdraw (i.e. additional cash will not be provided to fulfill the order)',\n        tag: 433,\n        type: 'char',\n        codeSet: 'ListExecInstTypeCodeSet',\n    },\n    {\n        id: '434001',\n        name: 'OrderCancelRequest',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        description: 'Order cancel request',\n        tag: 434,\n        type: 'char',\n        codeSet: 'CxlRejResponseToCodeSet',\n    },\n    {\n        id: '434002',\n        name: 'OrderCancelReplaceRequest',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Order cancel/replace request',\n        tag: 434,\n        type: 'char',\n        codeSet: 'CxlRejResponseToCodeSet',\n    },\n    {\n        id: '442001',\n        name: 'SingleSecurity',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Single security (default if not specified)',\n        tag: 442,\n        type: 'char',\n        codeSet: 'MultiLegReportingTypeCodeSet',\n    },\n    {\n        id: '442002',\n        name: 'IndividualLegOfAMultiLegSecurity',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Individual leg of a multi-leg security',\n        tag: 442,\n        type: 'char',\n        codeSet: 'MultiLegReportingTypeCodeSet',\n    },\n    {\n        id: '442003',\n        name: 'MultiLegSecurity',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.2',\n        description: 'Multi-leg security',\n        tag: 442,\n        type: 'char',\n        codeSet: 'MultiLegReportingTypeCodeSet',\n    },\n    {\n        id: '447001',\n        name: 'UKNationalInsuranceOrPensionNumber',\n        value: '6',\n        sort: 1,\n        group: 'For PartyRole = \"InvestorID\" and for CIV',\n        added: 'FIX.4.3',\n        description: 'UK National Insurance or Pension Number',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447002',\n        name: 'USSocialSecurityNumber',\n        value: '7',\n        sort: 2,\n        group: 'For PartyRole = \"InvestorID\" and for CIV',\n        added: 'FIX.4.3',\n        description: 'US Social Security Number',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447003',\n        name: 'USEmployerOrTaxIDNumber',\n        value: '8',\n        sort: 3,\n        group: 'For PartyRole = \"InvestorID\" and for CIV',\n        added: 'FIX.4.3',\n        description: 'US Employer or Tax ID Number',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447004',\n        name: 'AustralianBusinessNumber',\n        value: '9',\n        sort: 4,\n        group: 'For PartyRole = \"InvestorID\" and for CIV',\n        added: 'FIX.4.3',\n        description: 'Australian Business Number',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447005',\n        name: 'AustralianTaxFileNumber',\n        value: 'A',\n        sort: 5,\n        group: 'For PartyRole = \"InvestorID\" and for CIV',\n        added: 'FIX.4.3',\n        description: 'Australian Tax File Number',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447006',\n        name: 'TaxID',\n        value: 'J',\n        sort: 6,\n        group: 'For PartyRole = \"InvestorID\" and for CIV',\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'Tax ID',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447007',\n        name: 'KoreanInvestorID',\n        value: '1',\n        sort: 1,\n        group: 'For PartyRole = \"InvestorID\" and for Equities',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '296',\n        description:\n            \"Korean Investor ID\\n\\nAlso known as the Investor Registration Certificate (IRC) issued by Korea's Financial Supervisory Service (FSS), an identifier tied into the depository for settlement and record keeping.\",\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447008',\n        name: 'TaiwaneseForeignInvestorID',\n        value: '2',\n        sort: 2,\n        group: 'For PartyRole = \"InvestorID\" and for Equities',\n        added: 'FIX.4.3',\n        description: 'Taiwanese Qualified Foreign Investor ID QFII/FID',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447009',\n        name: 'TaiwaneseTradingAcct',\n        value: '3',\n        sort: 3,\n        group: 'For PartyRole = \"InvestorID\" and for Equities',\n        added: 'FIX.4.3',\n        description: 'Taiwanese Trading Acct',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447010',\n        name: 'MalaysianCentralDepository',\n        value: '4',\n        sort: 4,\n        group: 'For PartyRole = \"InvestorID\" and for Equities',\n        added: 'FIX.4.3',\n        description: 'Malaysian Central Depository (MCD) number',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447011',\n        name: 'ChineseInvestorID',\n        value: '5',\n        sort: 5,\n        group: 'For PartyRole = \"InvestorID\" and for Equities',\n        added: 'FIX.4.3',\n        description: 'Chinese Investor ID',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447012',\n        name: 'ISITCAcronym',\n        value: 'I',\n        sort: 1,\n        group: 'For PartyRole=\"Broker of Credit\"',\n        added: 'FIX.4.4',\n        description:\n            'Directed broker three character acronym as defined in ISITC \"ETC Best Practice\" guidelines document',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447013',\n        name: 'BIC',\n        value: 'B',\n        sort: 1,\n        group: 'For all PartyRoles',\n        added: 'FIX.4.3',\n        description: 'BIC (Bank Identification Code - SWIFT managed) code (ISO9362 - See \"Appendix 6-B\")',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447014',\n        name: 'GeneralIdentifier',\n        value: 'C',\n        sort: 2,\n        group: 'For all PartyRoles',\n        added: 'FIX.4.3',\n        description: 'Generally accepted market participant identifier (e.g. NASD mnemonic)',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447015',\n        name: 'Proprietary',\n        value: 'D',\n        sort: 3,\n        group: 'For all PartyRoles',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description:\n            'Proprietary / Custom code\\n\\n\\n                        Custom ID schema used between counterparties, trading platforms and repositories.',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447016',\n        name: 'ISOCountryCode',\n        value: 'E',\n        sort: 4,\n        group: 'For all PartyRoles',\n        added: 'FIX.4.3',\n        description: 'ISO Country Code',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447017',\n        name: 'SettlementEntityLocation',\n        value: 'F',\n        sort: 5,\n        group: 'For all PartyRoles',\n        added: 'FIX.4.3',\n        description:\n            'Settlement Entity Location (note if Local Market Settlement use \"E=ISO Country Code\") (see \"Appendix 6-G\" for valid values)',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447018',\n        name: 'MIC',\n        value: 'G',\n        sort: 6,\n        group: 'For all PartyRoles',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '236',\n        description: 'Market Identifier Code (ISO 10383) MIC',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447019',\n        name: 'CSDParticipant',\n        value: 'H',\n        sort: 7,\n        group: 'For all PartyRoles',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'CSD participant/member code (e.g. Euroclear, DTC, CREST or Kassenverein number',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447020',\n        name: 'AustralianCompanyNumber',\n        value: 'K',\n        sort: 8,\n        group: 'For all PartyRoles',\n        added: 'FIX.5.0SP2',\n        addedEP: '108',\n        description: 'Australian Company Number',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447021',\n        name: 'AustralianRegisteredBodyNumber',\n        value: 'L',\n        sort: 9,\n        group: 'For all PartyRoles',\n        added: 'FIX.5.0SP2',\n        addedEP: '108',\n        description: 'Australian Registered Body Number',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447022',\n        name: 'CFTCReportingFirmIdentifier',\n        value: 'M',\n        sort: 10,\n        group: 'For all PartyRoles',\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'CFTC reporting firm identifier',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447023',\n        name: 'LegalEntityIdentifier',\n        value: 'N',\n        sort: 11,\n        group: 'For all PartyRoles',\n        added: 'FIX.5.0SP2',\n        addedEP: '156',\n        description: 'Legal Entity Identifier (ISO 17442) LEI',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447024',\n        name: 'InterimIdentifier',\n        value: 'O',\n        sort: 12,\n        group: 'For all PartyRoles',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Interim identifier\\n\\n\\n                        An interim entity identifier assigned by a regulatory agency prior to an LEI (ISO 17442) being assigned.',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447025',\n        name: 'ShortCodeIdentifier',\n        value: 'P',\n        sort: 13,\n        group: 'For all PartyRoles',\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        updated: 'FIX.Latest',\n        updatedEP: '303',\n        description:\n            'Short code identifier\\n\\nA generic means for trading venues, brokers, investment managers to convey a bilaterally agreed upon \"short hand\" code for an identifier that is a reference to a mapping between the parties. Can be used with PartyRole(452)=131 (Algorithm) for the short code of an algorithm.',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447026',\n        name: 'NationalIDNaturalPerson',\n        value: 'Q',\n        sort: 14,\n        group: 'For all PartyRoles',\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description:\n            'National ID of natural person\\n\\n\\n                        An identification number generally assigned by a government authority or agency to a natural person which is unique to the person it is assigned to. Examples include, but not limited to, \"social security number\", \"pension number\".',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447027',\n        name: 'IndiaPermanentAccountNumber',\n        value: 'R',\n        sort: 15,\n        group: 'For all PartyRoles',\n        added: 'FIX.5.0SP2',\n        addedEP: '244',\n        description:\n            'India Permanent Account Number\\n\\n\\n                        Also referred to as PAN ID. An identifier issued by the Income Tax Department of India.',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447028',\n        name: 'FDID',\n        value: 'S',\n        sort: 16,\n        group: 'For all PartyRoles',\n        added: 'FIX.5.0SP2',\n        addedEP: '248',\n        updated: 'FIX.Latest',\n        updatedEP: '262',\n        description:\n            'Firm designated identifier\\n\\n\\n                        Also referred to as FDID. A unique identifier required by the SEC for each trading account designated by Industry Members for purposes of reporting to CAT (Consolidated Audit Trail).',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447029',\n        name: 'SPSAID',\n        value: 'T',\n        sort: 17,\n        group: 'For all PartyRoles',\n        added: 'FIX.Latest',\n        addedEP: '262',\n        description:\n            'Special Segregated Account ID\\n\\n\\n                        Also referred to as SPSA ID. The Special Segregated Account identifier issued by Hong Kong Exchanges and Clearing.',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447030',\n        name: 'MasterSPSAID',\n        value: 'U',\n        sort: 18,\n        group: 'For all PartyRoles',\n        added: 'FIX.Latest',\n        addedEP: '262',\n        description:\n            'Master Special Segregated Account ID\\n\\n\\n                        Also referred to as Master SPSA ID. The master identifier issued by Hong Kong Exchanges and Clearing for the aggregation of SPSA IDs.',\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '447031',\n        name: 'KoreaShortSellingRegistrationNumber',\n        value: 'V',\n        sort: 19,\n        group: 'For all PartyRoles',\n        added: 'FIX.Latest',\n        addedEP: '296',\n        description:\n            \"Korea Short Selling Registration Number\\n\\n\\n                        Short selling registration number assigned by Korea's Financial Supervisory Service (FSS) for institutions placing eligible orders under Korea's Financial Services Commission's \\\"Short Sale Reform Measures\\\".\",\n        tag: 447,\n        type: 'char',\n        codeSet: 'PartyIDSourceCodeSet',\n    },\n    {\n        id: '452001',\n        name: 'ExecutingFirm',\n        value: '1',\n        sort: 0,\n        added: 'FIX.4.3',\n        description: 'Executing Firm (formerly FIX 4.2 ExecBroker)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452002',\n        name: 'BrokerOfCredit',\n        value: '2',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Broker of Credit (formerly FIX 4.2 BrokerOfCredit)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452003',\n        name: 'ClientID',\n        value: '3',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Client ID (formerly FIX 4.2 ClientID)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452004',\n        name: 'ClearingFirm',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Clearing Firm (formerly FIX 4.2 ClearingFirm)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452005',\n        name: 'InvestorID',\n        value: '5',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Investor ID',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452006',\n        name: 'IntroducingFirm',\n        value: '6',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Introducing Firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452007',\n        name: 'EnteringFirm',\n        value: '7',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Entering Firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452008',\n        name: 'Locate',\n        value: '8',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Locate / Lending Firm (for short-sales)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452009',\n        name: 'FundManagerClientID',\n        value: '9',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'Fund Manager Client ID (for CIV)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452010',\n        name: 'SettlementLocation',\n        value: '10',\n        sort: 9,\n        added: 'FIX.4.3',\n        description: 'Settlement Location (formerly FIX 4.2 SettlLocation)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452011',\n        name: 'OrderOriginationTrader',\n        value: '11',\n        sort: 10,\n        added: 'FIX.4.3',\n        description:\n            'Order Origination Trader (associated with Order Origination Firm - i.e. trader who initiates/submits the order)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452012',\n        name: 'ExecutingTrader',\n        value: '12',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: 'Executing Trader (associated with Executing Firm - actually executes)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452013',\n        name: 'OrderOriginationFirm',\n        value: '13',\n        sort: 12,\n        added: 'FIX.4.3',\n        description: 'Order Origination Firm (e.g. buy-side firm)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452014',\n        name: 'GiveupClearingFirmDepr',\n        value: '14',\n        sort: 13,\n        added: 'FIX.4.3',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '118',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description: 'Giveup Clearing Firm (firm to which trade is given up)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452015',\n        name: 'CorrespondantClearingFirm',\n        value: '15',\n        sort: 14,\n        added: 'FIX.4.3',\n        description: 'Correspondant Clearing Firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452016',\n        name: 'ExecutingSystem',\n        value: '16',\n        sort: 15,\n        added: 'FIX.4.3',\n        description: 'Executing System',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452017',\n        name: 'ContraFirm',\n        value: '17',\n        sort: 16,\n        added: 'FIX.4.3',\n        description: 'Contra Firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452018',\n        name: 'ContraClearingFirm',\n        value: '18',\n        sort: 17,\n        added: 'FIX.4.3',\n        description: 'Contra Clearing Firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452019',\n        name: 'SponsoringFirm',\n        value: '19',\n        sort: 18,\n        added: 'FIX.4.3',\n        description: 'Sponsoring Firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452020',\n        name: 'UnderlyingContraFirm',\n        value: '20',\n        sort: 19,\n        added: 'FIX.4.3',\n        description: 'Underlying Contra Firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452021',\n        name: 'ClearingOrganization',\n        value: '21',\n        sort: 20,\n        added: 'FIX.4.4',\n        description: 'Clearing Organization',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452022',\n        name: 'Exchange',\n        value: '22',\n        sort: 21,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '139',\n        description:\n            'Exchange\\n\\n\\n                        Identify using PartyIDSource(tag 447) = G (Market Identifier Code) if the MIC exists.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452023',\n        name: 'CustomerAccount',\n        value: '24',\n        sort: 22,\n        added: 'FIX.4.4',\n        description: 'Customer Account',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452024',\n        name: 'CorrespondentClearingOrganization',\n        value: '25',\n        sort: 23,\n        added: 'FIX.4.4',\n        description: 'Correspondent Clearing Organization',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452025',\n        name: 'CorrespondentBroker',\n        value: '26',\n        sort: 24,\n        added: 'FIX.4.4',\n        description: 'Correspondent Broker',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452026',\n        name: 'Buyer',\n        value: '27',\n        sort: 25,\n        added: 'FIX.4.4',\n        description: 'Buyer/Seller (Receiver/Deliverer)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452027',\n        name: 'Custodian',\n        value: '28',\n        sort: 26,\n        added: 'FIX.4.4',\n        description: 'Custodian',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452028',\n        name: 'Intermediary',\n        value: '29',\n        sort: 27,\n        added: 'FIX.4.4',\n        description: 'Intermediary',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452029',\n        name: 'Agent',\n        value: '30',\n        sort: 28,\n        added: 'FIX.4.4',\n        description: 'Agent',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452030',\n        name: 'SubCustodian',\n        value: '31',\n        sort: 29,\n        added: 'FIX.4.4',\n        description: 'Sub-custodian',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452031',\n        name: 'Beneficiary',\n        value: '32',\n        sort: 30,\n        added: 'FIX.4.4',\n        description: 'Beneficiary',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452032',\n        name: 'InterestedParty',\n        value: '33',\n        sort: 31,\n        added: 'FIX.4.4',\n        description: 'Interested party',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452033',\n        name: 'RegulatoryBody',\n        value: '34',\n        sort: 32,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'Regulatory body\\n\\n\\n                        In the context of regulatory reporting, this identifies the regulator the trade is being reported to.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452034',\n        name: 'LiquidityProvider',\n        value: '35',\n        sort: 33,\n        added: 'FIX.4.4',\n        description: 'Liquidity provider',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452035',\n        name: 'EnteringTrader',\n        value: '36',\n        sort: 34,\n        added: 'FIX.4.4',\n        description: 'Entering trader',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452036',\n        name: 'ContraTrader',\n        value: '37',\n        sort: 35,\n        added: 'FIX.4.4',\n        description: 'Contra trader',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452037',\n        name: 'PositionAccount',\n        value: '38',\n        sort: 36,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '155',\n        description:\n            'Position account\\n\\n\\n                        The account which positions are maintained. Typically represents the aggregation of one or more customer accounts.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452038',\n        name: 'ContraInvestorID',\n        value: '39',\n        sort: 37,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Contra Investor ID',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452039',\n        name: 'TransferToFirm',\n        value: '40',\n        sort: 38,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Transfer to Firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452040',\n        name: 'ContraPositionAccount',\n        value: '41',\n        sort: 39,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Contra Position Account',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452041',\n        name: 'ContraExchange',\n        value: '42',\n        sort: 40,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Contra Exchange',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452042',\n        name: 'InternalCarryAccount',\n        value: '43',\n        sort: 41,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Internal Carry Account',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452043',\n        name: 'OrderEntryOperatorID',\n        value: '44',\n        sort: 42,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Order Entry Operator ID',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452044',\n        name: 'SecondaryAccountNumber',\n        value: '45',\n        sort: 43,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Secondary Account Number',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452045',\n        name: 'ForeignFirm',\n        value: '46',\n        sort: 44,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Foreign Firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452046',\n        name: 'ThirdPartyAllocationFirm',\n        value: '47',\n        sort: 45,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Third Party Allocation Firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452047',\n        name: 'ClaimingAccount',\n        value: '48',\n        sort: 46,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Claiming Account',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452048',\n        name: 'AssetManager',\n        value: '49',\n        sort: 47,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Asset Manager',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452049',\n        name: 'PledgorAccount',\n        value: '50',\n        sort: 48,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Pledgor Account',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452050',\n        name: 'PledgeeAccount',\n        value: '51',\n        sort: 49,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Pledgee Account',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452051',\n        name: 'LargeTraderReportableAccount',\n        value: '52',\n        sort: 50,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Large Trader Reportable Account',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452052',\n        name: 'TraderMnemonic',\n        value: '53',\n        sort: 51,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Trader mnemonic',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452053',\n        name: 'SenderLocation',\n        value: '54',\n        sort: 52,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Sender Location',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452054',\n        name: 'SessionID',\n        value: '55',\n        sort: 53,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Session ID',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452055',\n        name: 'AcceptableCounterparty',\n        value: '56',\n        sort: 54,\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Acceptable Counterparty',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452056',\n        name: 'UnacceptableCounterparty',\n        value: '57',\n        sort: 55,\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Unacceptable Counterparty',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452057',\n        name: 'EnteringUnit',\n        value: '58',\n        sort: 56,\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Entering Unit',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452058',\n        name: 'ExecutingUnit',\n        value: '59',\n        sort: 57,\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Executing Unit',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452059',\n        name: 'IntroducingBroker',\n        value: '60',\n        sort: 58,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Introducing Broker',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452060',\n        name: 'QuoteOriginator',\n        value: '61',\n        sort: 59,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Quote originator',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452061',\n        name: 'ReportOriginator',\n        value: '62',\n        sort: 60,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Report originator',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452062',\n        name: 'SystematicInternaliser',\n        value: '63',\n        sort: 61,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Systematic internaliser (SI)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452063',\n        name: 'MultilateralTradingFacility',\n        value: '64',\n        sort: 62,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '139',\n        description:\n            'Multilateral Trading Facility (MTF)\\n\\n\\n                        Identify using PartyIDSource(tag 447) = G (Market Identifier Code) if the MIC exists.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452064',\n        name: 'RegulatedMarket',\n        value: '65',\n        sort: 63,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '139',\n        description:\n            'Regulated Market (RM)\\n\\n\\n                        Identify using PartyIDSource(tag 447) = G (Market Identifier Code) if the MIC exists.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452065',\n        name: 'MarketMaker',\n        value: '66',\n        sort: 64,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Market Maker',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452066',\n        name: 'InvestmentFirm',\n        value: '67',\n        sort: 65,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Investment Firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452067',\n        name: 'HostCompetentAuthority',\n        value: '68',\n        sort: 66,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Host Competent Authority (Host CA)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452068',\n        name: 'HomeCompetentAuthority',\n        value: '69',\n        sort: 67,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Home Competent Authority (Home CA)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452069',\n        name: 'CompetentAuthorityLiquidity',\n        value: '70',\n        sort: 68,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Competent Authority of the most relevant market in terms of liquidity (CAL)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452070',\n        name: 'CompetentAuthorityTransactionVenue',\n        value: '71',\n        sort: 69,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Competent Authority of the Transaction (Execution) Venue (CATV)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452071',\n        name: 'ReportingIntermediary',\n        value: '72',\n        sort: 70,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'Reporting intermediary\\n\\n\\n                        The medium or vendor used to report to a regulator, non-regulatory agency or data repository.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452072',\n        name: 'ExecutionVenue',\n        value: '73',\n        sort: 71,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '139',\n        description:\n            'Execution Venue\\n\\n\\n                        Identify using PartyIDSource(tag 447) = G (Market Identifier Code) if the MIC exists.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452073',\n        name: 'MarketDataEntryOriginator',\n        value: '74',\n        sort: 72,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Market data entry originator',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452074',\n        name: 'LocationID',\n        value: '75',\n        sort: 73,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Location ID',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452075',\n        name: 'DeskID',\n        value: '76',\n        sort: 74,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Desk ID',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452076',\n        name: 'MarketDataMarket',\n        value: '77',\n        sort: 75,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Market data market',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452077',\n        name: 'AllocationEntity',\n        value: '78',\n        sort: 76,\n        added: 'FIX.4.4',\n        addedEP: '35',\n        description: 'Allocation Entity',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452078',\n        name: 'PrimeBroker',\n        value: '79',\n        sort: 77,\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Prime Broker providing General Trade Services',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452079',\n        name: 'StepOutFirm',\n        value: '80',\n        sort: 78,\n        added: 'FIX.5.0',\n        addedEP: '68',\n        description: 'Step-Out Firm (Prime Broker)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452080',\n        name: 'BrokerClearingID',\n        value: '81',\n        sort: 79,\n        added: 'FIX.5.0',\n        addedEP: '68',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Broker clearing identifier',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452081',\n        name: 'CentralRegistrationDepository',\n        value: '82',\n        sort: 80,\n        added: 'FIX.5.0SP1',\n        addedEP: '79',\n        description: 'Central Registration Depository (CRD)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452082',\n        name: 'ClearingAccount',\n        value: '83',\n        sort: 81,\n        added: 'FIX.5.0SP1',\n        addedEP: '96',\n        description: 'Clearing Account',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452083',\n        name: 'AcceptableSettlingCounterparty',\n        value: '84',\n        sort: 82,\n        added: 'FIX.5.0SP1',\n        addedEP: '96',\n        description: 'Acceptable Settling Counterparty',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452084',\n        name: 'UnacceptableSettlingCounterparty',\n        value: '85',\n        sort: 83,\n        added: 'FIX.5.0SP1',\n        addedEP: '96',\n        description: 'Unacceptable Settling Counterparty',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452085',\n        name: 'CLSMemberBank',\n        value: '86',\n        sort: 84,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'CLS Member Bank',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452086',\n        name: 'InConcertGroup',\n        value: '87',\n        sort: 85,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'In Concert Group',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452087',\n        name: 'InConcertControllingEntity',\n        value: '88',\n        sort: 86,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'In Concert Controlling Entity',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452088',\n        name: 'LargePositionsReportingAccount',\n        value: '89',\n        sort: 87,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'Large Positions Reporting Account',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452089',\n        name: 'SettlementFirm',\n        value: '90',\n        sort: 88,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Settlement Firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452090',\n        name: 'SettlementAccount',\n        value: '91',\n        sort: 89,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '155',\n        description:\n            'Settlement account\\n\\n\\n                        The account to which individual payment obligations are aggregated for netting and funds movement. Typically represents the aggregation of many margin (performance bond) accounts.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452091',\n        name: 'ReportingMarketCenter',\n        value: '92',\n        sort: 90,\n        added: 'FIX.5.0SP2',\n        addedEP: '112',\n        description: 'Reporting Market Center',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452092',\n        name: 'RelatedReportingMarketCenter',\n        value: '93',\n        sort: 91,\n        added: 'FIX.5.0SP2',\n        addedEP: '112',\n        description: 'Related Reporting Market Center',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452093',\n        name: 'AwayMarket',\n        value: '94',\n        sort: 92,\n        added: 'FIX.5.0SP2',\n        addedEP: '112',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '139',\n        description:\n            'Away Market\\n\\n\\n                        Identify using PartyIDSource(tag 447) = G (Market Identifier Code) if the MIC exists.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452094',\n        name: 'GiveupTradingFirm',\n        value: '95',\n        sort: 93,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Give-up (trading) firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452095',\n        name: 'TakeupTradingFirm',\n        value: '96',\n        sort: 94,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Take-up (trading) firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452096',\n        name: 'GiveupClearingFirm',\n        value: '97',\n        sort: 95,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Give-up clearing firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452097',\n        name: 'TakeupClearingFirm',\n        value: '98',\n        sort: 96,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Take-up clearing firm',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452098',\n        name: 'OriginatingMarket',\n        value: '99',\n        sort: 97,\n        added: 'FIX.5.0SP2',\n        addedEP: '139',\n        description:\n            'Originating Market\\n\\n\\n                        Identifies the Market using PartyIDSource(tag 447) = G (Market Identifier Code) where an order originated in the event that the order is sent to an alternative market for execution. Serves as an inverse of an away market.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452099',\n        name: 'MarginAccount',\n        value: '100',\n        sort: 98,\n        added: 'FIX.5.0SP2',\n        addedEP: '155',\n        description:\n            'Margin account\\n\\n\\n                        Also referred to as \"performance bond account\". The margin account is the calculated margin requirements. Typically represents the aggregation of one or more position accounts.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452100',\n        name: 'CollateralAssetAccount',\n        value: '101',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '155',\n        description:\n            'Collateral asset account\\n\\n\\n                        The account at which individual collateral assets are maintained. Typically, although not always, one-for-one with the settlement account.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452101',\n        name: 'DataRepository',\n        value: '102',\n        sort: 100,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Data repository\\n\\n\\n                        Multiple instances of this PartyRole may appear for reporting purposes.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452102',\n        name: 'CalculationAgent',\n        value: '103',\n        sort: 101,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Calculation agent',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452103',\n        name: 'ExerciseNoticeSender',\n        value: '104',\n        sort: 102,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Sender of exercise notice',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452104',\n        name: 'ExerciseNoticeReceiver',\n        value: '105',\n        sort: 103,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Receiver of exercise notice',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452105',\n        name: 'RateReferenceBank',\n        value: '106',\n        sort: 104,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Rate reference bank\\n\\n\\n                        The bank providing the reference rate. Multiple instance of this PartyRole may appear.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452106',\n        name: 'Correspondent',\n        value: '107',\n        sort: 105,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Correspondent',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452107',\n        name: 'BeneficiaryBank',\n        value: '109',\n        sort: 106,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Beneficiary's bank or depository institution\\n\\n\\n                        The institution in which the beneficiary, a person or an entity, has their account with. The institution may be a bank or non-bank institution.\",\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452108',\n        name: 'Borrower',\n        value: '110',\n        sort: 107,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Borrower',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452109',\n        name: 'PrimaryObligator',\n        value: '111',\n        sort: 108,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Primary obligator',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452110',\n        name: 'Guarantor',\n        value: '112',\n        sort: 109,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Guarantor',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452111',\n        name: 'ExcludedReferenceEntity',\n        value: '113',\n        sort: 110,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Excluded reference entity',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452112',\n        name: 'DeterminingParty',\n        value: '114',\n        sort: 111,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Determining party',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452113',\n        name: 'HedgingParty',\n        value: '115',\n        sort: 112,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Hedging party',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452114',\n        name: 'ReportingEntity',\n        value: '116',\n        sort: 113,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reporting entity\\n\\n\\n                        The entity that is reporting the information.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452115',\n        name: 'SalesPerson',\n        value: '117',\n        sort: 114,\n        added: 'FIX.5.0SP2',\n        addedEP: '173',\n        description:\n            'Sales person\\n\\n\\n                        The person who is involved in the sales activities for their firm.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452116',\n        name: 'Operator',\n        value: '118',\n        sort: 115,\n        added: 'FIX.5.0SP2',\n        addedEP: '173',\n        description:\n            'Operator\\n\\n\\n                        The person who has the capabilities and authorization to take certain actions; for example, setting entitlements, etc.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452117',\n        name: 'CSD',\n        value: '119',\n        sort: 116,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Central Securities Depository (CSD)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452118',\n        name: 'ICSD',\n        value: '120',\n        sort: 117,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'International Central Securities Depository (ICSD)',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452119',\n        name: 'TradingSubAccount',\n        value: '121',\n        sort: 118,\n        added: 'FIX.5.0SP2',\n        addedEP: '217',\n        description:\n            'Trading sub-account\\n\\n\\n                        Example of sub-accounts include a clearing account that has multiple trading sub-accounts, a trading account that has multiple trading sub-accounts belonging to different trading firms.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452120',\n        name: 'InvestmentDecisionMaker',\n        value: '122',\n        sort: 119,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description:\n            'Investment decision maker\\n\\n\\n                        In the context of ESMA RTS reporting, this is used to specify party responsible for the investment decision. See RTS 24, Annex, Table 2, Field 4.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452121',\n        name: 'PublishingIntermediary',\n        value: '123',\n        sort: 120,\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description:\n            'Publishing intermediary\\n\\n\\n                        The medium or vendor used to publish to the market.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452122',\n        name: 'CSDParticipant',\n        value: '124',\n        sort: 121,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Central Securities Depository (CSD) Participant\\n\\n\\n                        In the context of EU SFTR reporting the identifier of the CSD participant or indirect participant of the reporting counterparty. Where both the CSD participant and indirect participant are involved in the transaction this should identify the indirect participant.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452123',\n        name: 'Issuer',\n        value: '125',\n        sort: 122,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Issuer\\n\\n\\n                        The issuer of the security.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452124',\n        name: 'ContraCustomerAccount',\n        value: '126',\n        sort: 123,\n        added: 'FIX.5.0SP2',\n        addedEP: '256',\n        description:\n            'Contra Customer Account\\n\\n\\n                        Same as PartyRole(452) = 24 (Customer Account) but for the counterparty. Can be used whenever the parties component is not nested in a repeating group representing both sides.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452125',\n        name: 'ContraInvestmentDecisionMaker',\n        value: '127',\n        sort: 124,\n        added: 'FIX.5.0SP2',\n        addedEP: '256',\n        description:\n            'Contra Investment Decision Maker\\n\\n\\n                        Same as PartyRole(452) = 122 (Investment Decision Maker) but for the counterparty. Can be used whenever the parties component is not nested in a repeating group representing both sides.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452126',\n        name: 'AuthorizingPerson',\n        value: '128',\n        sort: 125,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description:\n            'Authorizing person\\n\\nIn the context of MiFIR, this value is used to identify the person authorizing algorithms within a trading firm.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452127',\n        name: 'PrimaryPlaceOfListing',\n        value: '129',\n        sort: 126,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Primary place of listing\\n\\nOfficial place of listing. There can only be one home market where an instrument is listed. Identify using PartyIDSource(447) = G (Market Identifier Code) if the MIC exists.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452128',\n        name: 'SecondaryPlaceOfListing',\n        value: '130',\n        sort: 127,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Secondary place of listing\\n\\nThe market where an instrument is listed. This may not be the only market where the instrument is traded. Identify using PartyIDSource(447) = G (Market Identifier Code) if the MIC exists.',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '452129',\n        name: 'Algorithm',\n        value: '131',\n        sort: 128,\n        added: 'FIX.Latest',\n        addedEP: '303',\n        description:\n            'Algorithm\\n\\nIdentifier of a previously defined algorithm, e.g. the name of a branded algorithm or its short code. The version of an algorithm can be provided with an instance of PtysSubGrp with PartySubIDType(803)=88 (Algorithm version).',\n        tag: 452,\n        type: 'int',\n        codeSet: 'PartyRoleCodeSet',\n    },\n    {\n        id: '460001',\n        name: 'AGENCY',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'AGENCY',\n        tag: 460,\n        type: 'int',\n        codeSet: 'ProductCodeSet',\n    },\n    {\n        id: '460002',\n        name: 'COMMODITY',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'COMMODITY',\n        tag: 460,\n        type: 'int',\n        codeSet: 'ProductCodeSet',\n    },\n    {\n        id: '460003',\n        name: 'CORPORATE',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'CORPORATE',\n        tag: 460,\n        type: 'int',\n        codeSet: 'ProductCodeSet',\n    },\n    {\n        id: '460004',\n        name: 'CURRENCY',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'CURRENCY',\n        tag: 460,\n        type: 'int',\n        codeSet: 'ProductCodeSet',\n    },\n    {\n        id: '460005',\n        name: 'EQUITY',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'EQUITY',\n        tag: 460,\n        type: 'int',\n        codeSet: 'ProductCodeSet',\n    },\n    {\n        id: '460006',\n        name: 'GOVERNMENT',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'GOVERNMENT',\n        tag: 460,\n        type: 'int',\n        codeSet: 'ProductCodeSet',\n    },\n    {\n        id: '460007',\n        name: 'INDEX',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'INDEX',\n        tag: 460,\n        type: 'int',\n        codeSet: 'ProductCodeSet',\n    },\n    {\n        id: '460008',\n        name: 'LOAN',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'LOAN',\n        tag: 460,\n        type: 'int',\n        codeSet: 'ProductCodeSet',\n    },\n    {\n        id: '460009',\n        name: 'MONEYMARKET',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.3',\n        description: 'MONEYMARKET',\n        tag: 460,\n        type: 'int',\n        codeSet: 'ProductCodeSet',\n    },\n    {\n        id: '460010',\n        name: 'MORTGAGE',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.3',\n        description: 'MORTGAGE',\n        tag: 460,\n        type: 'int',\n        codeSet: 'ProductCodeSet',\n    },\n    {\n        id: '460011',\n        name: 'MUNICIPAL',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: 'MUNICIPAL',\n        tag: 460,\n        type: 'int',\n        codeSet: 'ProductCodeSet',\n    },\n    {\n        id: '460012',\n        name: 'OTHER',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.3',\n        description: 'OTHER',\n        tag: 460,\n        type: 'int',\n        codeSet: 'ProductCodeSet',\n    },\n    {\n        id: '460013',\n        name: 'FINANCING',\n        value: '13',\n        sort: 13,\n        added: 'FIX.4.4',\n        description: 'FINANCING',\n        tag: 460,\n        type: 'int',\n        codeSet: 'ProductCodeSet',\n    },\n    {\n        id: '464001',\n        name: 'False',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'False (production)',\n        tag: 464,\n        type: 'Boolean',\n        codeSet: 'TestMessageIndicatorCodeSet',\n    },\n    {\n        id: '464002',\n        name: 'True',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'True (test)',\n        tag: 464,\n        type: 'Boolean',\n        codeSet: 'TestMessageIndicatorCodeSet',\n    },\n    {\n        id: '468001',\n        name: 'RoundToNearest',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Round to nearest',\n        tag: 468,\n        type: 'char',\n        codeSet: 'RoundingDirectionCodeSet',\n    },\n    {\n        id: '468002',\n        name: 'RoundDown',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Round down',\n        tag: 468,\n        type: 'char',\n        codeSet: 'RoundingDirectionCodeSet',\n    },\n    {\n        id: '468003',\n        name: 'RoundUp',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Round up',\n        tag: 468,\n        type: 'char',\n        codeSet: 'RoundingDirectionCodeSet',\n    },\n    {\n        id: '477001',\n        name: 'CREST',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'CREST',\n        tag: 477,\n        type: 'int',\n        codeSet: 'DistribPaymentMethodCodeSet',\n    },\n    {\n        id: '477002',\n        name: 'NSCC',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'NSCC',\n        tag: 477,\n        type: 'int',\n        codeSet: 'DistribPaymentMethodCodeSet',\n    },\n    {\n        id: '477003',\n        name: 'Euroclear',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Euroclear',\n        tag: 477,\n        type: 'int',\n        codeSet: 'DistribPaymentMethodCodeSet',\n    },\n    {\n        id: '477004',\n        name: 'Clearstream',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Clearstream',\n        tag: 477,\n        type: 'int',\n        codeSet: 'DistribPaymentMethodCodeSet',\n    },\n    {\n        id: '477005',\n        name: 'Cheque',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Cheque',\n        tag: 477,\n        type: 'int',\n        codeSet: 'DistribPaymentMethodCodeSet',\n    },\n    {\n        id: '477006',\n        name: 'TelegraphicTransfer',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Telegraphic Transfer',\n        tag: 477,\n        type: 'int',\n        codeSet: 'DistribPaymentMethodCodeSet',\n    },\n    {\n        id: '477007',\n        name: 'FedWire',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.4',\n        description: 'Fed Wire',\n        tag: 477,\n        type: 'int',\n        codeSet: 'DistribPaymentMethodCodeSet',\n    },\n    {\n        id: '477008',\n        name: 'DirectCredit',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.4',\n        description: 'Direct Credit (BECS, BACS)',\n        tag: 477,\n        type: 'int',\n        codeSet: 'DistribPaymentMethodCodeSet',\n    },\n    {\n        id: '477009',\n        name: 'ACHCredit',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.4',\n        description: 'ACH Credit',\n        tag: 477,\n        type: 'int',\n        codeSet: 'DistribPaymentMethodCodeSet',\n    },\n    {\n        id: '477010',\n        name: 'BPAY',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.4',\n        description: 'BPAY',\n        tag: 477,\n        type: 'int',\n        codeSet: 'DistribPaymentMethodCodeSet',\n    },\n    {\n        id: '477011',\n        name: 'HighValueClearingSystemHVACS',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.4',\n        description: 'High Value Clearing System HVACS',\n        tag: 477,\n        type: 'int',\n        codeSet: 'DistribPaymentMethodCodeSet',\n    },\n    {\n        id: '477012',\n        name: 'ReinvestInFund',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.4',\n        description: 'Reinvest In Fund',\n        tag: 477,\n        type: 'int',\n        codeSet: 'DistribPaymentMethodCodeSet',\n    },\n    {\n        id: '477013',\n        name: 'Other',\n        value: '999',\n        sort: 999,\n        added: 'FIX.Latest',\n        addedEP: '271',\n        description: 'Other',\n        tag: 477,\n        type: 'int',\n        codeSet: 'DistribPaymentMethodCodeSet',\n    },\n    {\n        id: '480001',\n        name: 'Yes',\n        value: 'Y',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Yes',\n        tag: 480,\n        type: 'char',\n        codeSet: 'CancellationRightsCodeSet',\n    },\n    {\n        id: '480002',\n        name: 'NoExecutionOnly',\n        value: 'N',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'No - Execution Only',\n        tag: 480,\n        type: 'char',\n        codeSet: 'CancellationRightsCodeSet',\n    },\n    {\n        id: '480003',\n        name: 'NoWaiverAgreement',\n        value: 'M',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'No - Waiver agreement',\n        tag: 480,\n        type: 'char',\n        codeSet: 'CancellationRightsCodeSet',\n    },\n    {\n        id: '480004',\n        name: 'NoInstitutional',\n        value: 'O',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'No - Institutional',\n        tag: 480,\n        type: 'char',\n        codeSet: 'CancellationRightsCodeSet',\n    },\n    {\n        id: '481001',\n        name: 'Passed',\n        value: 'Y',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Passed',\n        tag: 481,\n        type: 'char',\n        codeSet: 'MoneyLaunderingStatusCodeSet',\n    },\n    {\n        id: '481002',\n        name: 'NotChecked',\n        value: 'N',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Not Checked',\n        tag: 481,\n        type: 'char',\n        codeSet: 'MoneyLaunderingStatusCodeSet',\n    },\n    {\n        id: '481003',\n        name: 'ExemptBelowLimit',\n        value: '1',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Exempt - Below the Limit',\n        tag: 481,\n        type: 'char',\n        codeSet: 'MoneyLaunderingStatusCodeSet',\n    },\n    {\n        id: '481004',\n        name: 'ExemptMoneyType',\n        value: '2',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Exempt - Client Money Type exemption',\n        tag: 481,\n        type: 'char',\n        codeSet: 'MoneyLaunderingStatusCodeSet',\n    },\n    {\n        id: '481005',\n        name: 'ExemptAuthorised',\n        value: '3',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Exempt - Authorised Credit or financial institution',\n        tag: 481,\n        type: 'char',\n        codeSet: 'MoneyLaunderingStatusCodeSet',\n    },\n    {\n        id: '484001',\n        name: 'BidPrice',\n        value: 'B',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Bid price',\n        tag: 484,\n        type: 'char',\n        codeSet: 'ExecPriceTypeCodeSet',\n    },\n    {\n        id: '484002',\n        name: 'CreationPrice',\n        value: 'C',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Creation price',\n        tag: 484,\n        type: 'char',\n        codeSet: 'ExecPriceTypeCodeSet',\n    },\n    {\n        id: '484003',\n        name: 'CreationPricePlusAdjustmentPercent',\n        value: 'D',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Creation price plus adjustment percent',\n        tag: 484,\n        type: 'char',\n        codeSet: 'ExecPriceTypeCodeSet',\n    },\n    {\n        id: '484004',\n        name: 'CreationPricePlusAdjustmentAmount',\n        value: 'E',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Creation price plus adjustment amount',\n        tag: 484,\n        type: 'char',\n        codeSet: 'ExecPriceTypeCodeSet',\n    },\n    {\n        id: '484005',\n        name: 'OfferPrice',\n        value: 'O',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Offer price',\n        tag: 484,\n        type: 'char',\n        codeSet: 'ExecPriceTypeCodeSet',\n    },\n    {\n        id: '484006',\n        name: 'OfferPriceMinusAdjustmentPercent',\n        value: 'P',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Offer price minus adjustment percent',\n        tag: 484,\n        type: 'char',\n        codeSet: 'ExecPriceTypeCodeSet',\n    },\n    {\n        id: '484007',\n        name: 'OfferPriceMinusAdjustmentAmount',\n        value: 'Q',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Offer price minus adjustment amount',\n        tag: 484,\n        type: 'char',\n        codeSet: 'ExecPriceTypeCodeSet',\n    },\n    {\n        id: '484008',\n        name: 'SinglePrice',\n        value: 'S',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'Single price',\n        tag: 484,\n        type: 'char',\n        codeSet: 'ExecPriceTypeCodeSet',\n    },\n    {\n        id: '487001',\n        name: 'New',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.3',\n        updated: 'FIX.4.4',\n        description: 'New',\n        tag: 487,\n        type: 'int',\n        codeSet: 'TradeReportTransTypeCodeSet',\n    },\n    {\n        id: '487002',\n        name: 'Cancel',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.3',\n        updated: 'FIX.4.4',\n        description: 'Cancel',\n        tag: 487,\n        type: 'int',\n        codeSet: 'TradeReportTransTypeCodeSet',\n    },\n    {\n        id: '487003',\n        name: 'Replace',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.3',\n        updated: 'FIX.4.4',\n        description: 'Replace',\n        tag: 487,\n        type: 'int',\n        codeSet: 'TradeReportTransTypeCodeSet',\n    },\n    {\n        id: '487004',\n        name: 'Release',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Release',\n        tag: 487,\n        type: 'int',\n        codeSet: 'TradeReportTransTypeCodeSet',\n    },\n    {\n        id: '487005',\n        name: 'Reverse',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Reverse',\n        tag: 487,\n        type: 'int',\n        codeSet: 'TradeReportTransTypeCodeSet',\n    },\n    {\n        id: '487006',\n        name: 'CancelDueToBackOutOfTrade',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Cancel Due To Back Out of Trade',\n        tag: 487,\n        type: 'int',\n        codeSet: 'TradeReportTransTypeCodeSet',\n    },\n    {\n        id: '492001',\n        name: 'CREST',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'CREST',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492002',\n        name: 'NSCC',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'NSCC',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492003',\n        name: 'Euroclear',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Euroclear',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492004',\n        name: 'Clearstream',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Clearstream',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492005',\n        name: 'Cheque',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Cheque',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492006',\n        name: 'TelegraphicTransfer',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Telegraphic Transfer',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492007',\n        name: 'FedWire',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Fed Wire',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492008',\n        name: 'DebitCard',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'Debit Card',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492009',\n        name: 'DirectDebit',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.3',\n        description: 'Direct Debit (BECS)',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492010',\n        name: 'DirectCredit',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.3',\n        description: 'Direct Credit (BECS)',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492011',\n        name: 'CreditCard',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: 'Credit Card',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492012',\n        name: 'ACHDebit',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.3',\n        description: 'ACH Debit',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492013',\n        name: 'ACHCredit',\n        value: '13',\n        sort: 13,\n        added: 'FIX.4.3',\n        description: 'ACH Credit',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492014',\n        name: 'BPAY',\n        value: '14',\n        sort: 14,\n        added: 'FIX.4.3',\n        description: 'BPAY',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492015',\n        name: 'HighValueClearingSystem',\n        value: '15',\n        sort: 15,\n        added: 'FIX.4.3',\n        description: 'High Value Clearing System (HVACS)',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492016',\n        name: 'CHIPS',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'CHIPS',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492017',\n        name: 'SWIFT',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'S.W.I.F.T.',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492018',\n        name: 'CHAPS',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'CHAPS',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492019',\n        name: 'SIC',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'SIC',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492020',\n        name: 'EuroSIC',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description: 'euroSIC',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '492021',\n        name: 'Other',\n        value: '999',\n        sort: 999,\n        added: 'FIX.Latest',\n        addedEP: '271',\n        description: 'Other',\n        tag: 492,\n        type: 'int',\n        codeSet: 'PaymentMethodCodeSet',\n    },\n    {\n        id: '495001',\n        name: 'None',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.3',\n        description: 'None/Not Applicable (default)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495002',\n        name: 'MaxiISA',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Maxi ISA (UK)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495003',\n        name: 'TESSA',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'TESSA (UK)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495004',\n        name: 'MiniCashISA',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Mini Cash ISA (UK)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495005',\n        name: 'MiniStocksAndSharesISA',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Mini Stocks And Shares ISA (UK)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495006',\n        name: 'MiniInsuranceISA',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Mini Insurance ISA (UK)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495007',\n        name: 'CurrentYearPayment',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Current Year Payment (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495008',\n        name: 'PriorYearPayment',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Prior Year Payment (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495009',\n        name: 'AssetTransfer',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'Asset Transfer (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495010',\n        name: 'EmployeePriorYear',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.3',\n        description: 'Employee - prior year (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495011',\n        name: 'EmployeeCurrentYear',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.3',\n        description: 'Employee - current year (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495012',\n        name: 'EmployerPriorYear',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: 'Employer - prior year (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495013',\n        name: 'EmployerCurrentYear',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.3',\n        description: 'Employer - current year (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495014',\n        name: 'NonFundPrototypeIRA',\n        value: '13',\n        sort: 13,\n        added: 'FIX.4.3',\n        description: 'Non-fund prototype IRA (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495015',\n        name: 'NonFundQualifiedPlan',\n        value: '14',\n        sort: 14,\n        added: 'FIX.4.3',\n        description: 'Non-fund qualified plan (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495016',\n        name: 'DefinedContributionPlan',\n        value: '15',\n        sort: 15,\n        added: 'FIX.4.3',\n        description: 'Defined contribution plan (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495017',\n        name: 'IRA',\n        value: '16',\n        sort: 16,\n        added: 'FIX.4.3',\n        description: 'Individual Retirement Account (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495018',\n        name: 'IRARollover',\n        value: '17',\n        sort: 17,\n        added: 'FIX.4.3',\n        description: 'Individual Retirement Account - Rollover (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495019',\n        name: 'KEOGH',\n        value: '18',\n        sort: 18,\n        added: 'FIX.4.3',\n        description: 'KEOGH (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495020',\n        name: 'ProfitSharingPlan',\n        value: '19',\n        sort: 19,\n        added: 'FIX.4.3',\n        description: 'Profit Sharing Plan (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495021',\n        name: 'US401K',\n        value: '20',\n        sort: 20,\n        added: 'FIX.4.3',\n        description: '401(k) (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495022',\n        name: 'SelfDirectedIRA',\n        value: '21',\n        sort: 21,\n        added: 'FIX.4.3',\n        description: 'Self-directed IRA (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495023',\n        name: 'US403b',\n        value: '22',\n        sort: 22,\n        added: 'FIX.4.3',\n        description: '403(b) (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495024',\n        name: 'US457',\n        value: '23',\n        sort: 23,\n        added: 'FIX.4.3',\n        description: '457 (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495025',\n        name: 'RothIRAPrototype',\n        value: '24',\n        sort: 24,\n        added: 'FIX.4.3',\n        description: 'Roth IRA (Fund Prototype) (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495026',\n        name: 'RothIRANonPrototype',\n        value: '25',\n        sort: 25,\n        added: 'FIX.4.3',\n        description: 'Roth IRA (Non-prototype) (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495027',\n        name: 'RothConversionIRAPrototype',\n        value: '26',\n        sort: 26,\n        added: 'FIX.4.3',\n        description: 'Roth Conversion IRA (Fund Prototype) (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495028',\n        name: 'RothConversionIRANonPrototype',\n        value: '27',\n        sort: 27,\n        added: 'FIX.4.3',\n        description: 'Roth Conversion IRA (Non-prototype) (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495029',\n        name: 'EducationIRAPrototype',\n        value: '28',\n        sort: 28,\n        added: 'FIX.4.3',\n        description: 'Education IRA (Fund Prototype) (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495030',\n        name: 'EducationIRANonPrototype',\n        value: '29',\n        sort: 29,\n        added: 'FIX.4.3',\n        description: 'Education IRA (Non-prototype) (US)',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '495031',\n        name: 'Other',\n        value: '999',\n        sort: 99,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Other',\n        tag: 495,\n        type: 'int',\n        codeSet: 'TaxAdvantageTypeCodeSet',\n    },\n    {\n        id: '497001',\n        name: 'No',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'No',\n        tag: 497,\n        type: 'char',\n        codeSet: 'FundRenewWaivCodeSet',\n    },\n    {\n        id: '497002',\n        name: 'Yes',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Yes',\n        tag: 497,\n        type: 'char',\n        codeSet: 'FundRenewWaivCodeSet',\n    },\n    {\n        id: '506001',\n        name: 'Accepted',\n        value: 'A',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Accepted',\n        tag: 506,\n        type: 'char',\n        codeSet: 'RegistStatusCodeSet',\n    },\n    {\n        id: '506002',\n        name: 'Rejected',\n        value: 'R',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Rejected',\n        tag: 506,\n        type: 'char',\n        codeSet: 'RegistStatusCodeSet',\n    },\n    {\n        id: '506003',\n        name: 'Held',\n        value: 'H',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Held',\n        tag: 506,\n        type: 'char',\n        codeSet: 'RegistStatusCodeSet',\n    },\n    {\n        id: '506004',\n        name: 'Reminder',\n        value: 'N',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Reminder - i.e. Registration Instructions are still outstanding',\n        tag: 506,\n        type: 'char',\n        codeSet: 'RegistStatusCodeSet',\n    },\n    {\n        id: '507001',\n        name: 'InvalidAccountType',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Account Type',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507002',\n        name: 'InvalidTaxExemptType',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Tax Exempt Type',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507003',\n        name: 'InvalidOwnershipType',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Ownership Type',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507004',\n        name: 'NoRegDetails',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable No Reg Details',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507005',\n        name: 'InvalidRegSeqNo',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Reg Seq No',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507006',\n        name: 'InvalidRegDetails',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Reg Details',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507007',\n        name: 'InvalidMailingDetails',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Mailing Details',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507008',\n        name: 'InvalidMailingInstructions',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Mailing Instructions',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507009',\n        name: 'InvalidInvestorID',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Investor ID',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507010',\n        name: 'InvalidInvestorIDSource',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.3',\n        description: 'Invalid/unaceeptable Investor ID Source',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507011',\n        name: 'InvalidDateOfBirth',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Date Of Birth',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507012',\n        name: 'InvalidCountry',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Investor Country Of Residence',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507013',\n        name: 'InvalidDistribInstns',\n        value: '13',\n        sort: 13,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable No Distrib Instns',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507014',\n        name: 'InvalidPercentage',\n        value: '14',\n        sort: 14,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Distrib Percentage',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507015',\n        name: 'InvalidPaymentMethod',\n        value: '15',\n        sort: 15,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Distrib Payment Method',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507016',\n        name: 'InvalidAccountName',\n        value: '16',\n        sort: 16,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Cash Distrib Agent Acct Name',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507017',\n        name: 'InvalidAgentCode',\n        value: '17',\n        sort: 17,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Cash Distrib Agent Code',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507018',\n        name: 'InvalidAccountNum',\n        value: '18',\n        sort: 18,\n        added: 'FIX.4.3',\n        description: 'Invalid/unacceptable Cash Distrib Agent Acct Num',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '507019',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 507,\n        type: 'int',\n        codeSet: 'RegistRejReasonCodeCodeSet',\n    },\n    {\n        id: '514001',\n        name: 'New',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'New',\n        tag: 514,\n        type: 'char',\n        codeSet: 'RegistTransTypeCodeSet',\n    },\n    {\n        id: '514002',\n        name: 'Cancel',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Cancel',\n        tag: 514,\n        type: 'char',\n        codeSet: 'RegistTransTypeCodeSet',\n    },\n    {\n        id: '514003',\n        name: 'Replace',\n        value: '1',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Replace',\n        tag: 514,\n        type: 'char',\n        codeSet: 'RegistTransTypeCodeSet',\n    },\n    {\n        id: '517001',\n        name: 'JointInvestors',\n        value: 'J',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Joint Investors',\n        tag: 517,\n        type: 'char',\n        codeSet: 'OwnershipTypeCodeSet',\n    },\n    {\n        id: '517002',\n        name: 'TenantsInCommon',\n        value: 'T',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Tenants in Common',\n        tag: 517,\n        type: 'char',\n        codeSet: 'OwnershipTypeCodeSet',\n    },\n    {\n        id: '517003',\n        name: 'JointTrustees',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Joint Trustees',\n        tag: 517,\n        type: 'char',\n        codeSet: 'OwnershipTypeCodeSet',\n    },\n    {\n        id: '519001',\n        name: 'CommissionAmount',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Commission amount (actual)',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519002',\n        name: 'CommissionPercent',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Commission percent (actual)',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519003',\n        name: 'InitialChargeAmount',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Initial Charge Amount',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519004',\n        name: 'InitialChargePercent',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Initial Charge Percent',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519005',\n        name: 'DiscountAmount',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Discount Amount',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519006',\n        name: 'DiscountPercent',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Discount Percent',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519007',\n        name: 'DilutionLevyAmount',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Dilution Levy Amount',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519008',\n        name: 'DilutionLevyPercent',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'Dilution Levy Percent',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519009',\n        name: 'ExitChargeAmount',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.3',\n        description: 'Exit Charge Amount',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519010',\n        name: 'ExitChargePercent',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.3',\n        description: 'Exit Charge Percent',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519011',\n        name: 'FundBasedRenewalCommissionPercent',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: 'Fund-Based Renewal Commission Percent (a.k.a. Trail commission)',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519012',\n        name: 'ProjectedFundValue',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.3',\n        description:\n            'Projected Fund Value (i.e. for investments intended to realise or exceed a specific future value)',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519013',\n        name: 'FundBasedRenewalCommissionOnOrder',\n        value: '13',\n        sort: 13,\n        added: 'FIX.4.3',\n        description: 'Fund-Based Renewal Commission Amount (based on Order value)',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519014',\n        name: 'FundBasedRenewalCommissionOnFund',\n        value: '14',\n        sort: 14,\n        added: 'FIX.4.3',\n        description: 'Fund-Based Renewal Commission Amount (based on Projected Fund value)',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '519015',\n        name: 'NetSettlementAmount',\n        value: '15',\n        sort: 15,\n        added: 'FIX.4.3',\n        description: 'Net Settlement Amount',\n        tag: 519,\n        type: 'int',\n        codeSet: 'ContAmtTypeCodeSet',\n    },\n    {\n        id: '522001',\n        name: 'IndividualInvestor',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Individual investor',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522002',\n        name: 'PublicCompany',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Public company',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522003',\n        name: 'PrivateCompany',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Private company',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522004',\n        name: 'IndividualTrustee',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Individual trustee',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522005',\n        name: 'CompanyTrustee',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Company trustee',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522006',\n        name: 'PensionPlan',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Pension plan',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522007',\n        name: 'CustodianUnderGiftsToMinorsAct',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Custodian under Gifts to Minors Act',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522008',\n        name: 'Trusts',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'Trusts',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522009',\n        name: 'Fiduciaries',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.3',\n        description: 'Fiduciaries',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522010',\n        name: 'NetworkingSubAccount',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Networking sub-account',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522011',\n        name: 'NonProfitOrganization',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: 'Non-profit organization',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522012',\n        name: 'CorporateBody',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Corporate body',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522013',\n        name: 'Nominee',\n        value: '13',\n        sort: 13,\n        added: 'FIX.4.3',\n        description: 'Nominee',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522014',\n        name: 'InstitutionalCustomer',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Institutional customer',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522015',\n        name: 'Combined',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description:\n            'Combined\\n\\n\\n                        Representing more than one type of beneficial owner account.',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522016',\n        name: 'MemberFirmEmployee',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Member firm employee or associated person',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522017',\n        name: 'MarketMakingAccount',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Market making account',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522018',\n        name: 'ProprietaryAccount',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Proprietary account',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522019',\n        name: 'NonbrokerDealer',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Non-broker-dealer',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522020',\n        name: 'UnknownBeneficialOwnerType',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Unknown beneficial owner type\\n\\n\\n                        In the context of US CAT this is a non-broker-dealer foreign affiliate or non-reporting foreign broker-dealer.',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522021',\n        name: 'FirmsErrorAccount',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Error account of firm',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '522022',\n        name: 'FirmAgencyAveragePriceAccount',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Firm agency average price account',\n        tag: 522,\n        type: 'int',\n        codeSet: 'OwnerTypeCodeSet',\n    },\n    {\n        id: '528001',\n        name: 'Agency',\n        value: 'A',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Agency',\n        tag: 528,\n        type: 'char',\n        codeSet: 'OrderCapacityCodeSet',\n    },\n    {\n        id: '528002',\n        name: 'Proprietary',\n        value: 'G',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Proprietary',\n        tag: 528,\n        type: 'char',\n        codeSet: 'OrderCapacityCodeSet',\n    },\n    {\n        id: '528003',\n        name: 'Individual',\n        value: 'I',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Individual',\n        tag: 528,\n        type: 'char',\n        codeSet: 'OrderCapacityCodeSet',\n    },\n    {\n        id: '528004',\n        name: 'Principal',\n        value: 'P',\n        sort: 4,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Principal\\n\\n\\n                        For some markets Principal may include Proprietary.',\n        tag: 528,\n        type: 'char',\n        codeSet: 'OrderCapacityCodeSet',\n    },\n    {\n        id: '528005',\n        name: 'RisklessPrincipal',\n        value: 'R',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Riskless Principal',\n        tag: 528,\n        type: 'char',\n        codeSet: 'OrderCapacityCodeSet',\n    },\n    {\n        id: '528006',\n        name: 'AgentForOtherMember',\n        value: 'W',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Agent for Other Member',\n        tag: 528,\n        type: 'char',\n        codeSet: 'OrderCapacityCodeSet',\n    },\n    {\n        id: '528007',\n        name: 'MixedCapacity',\n        value: 'M',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Mixed capacity',\n        tag: 528,\n        type: 'char',\n        codeSet: 'OrderCapacityCodeSet',\n    },\n    {\n        id: '529001',\n        name: 'ProgramTrade',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Program Trade',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529002',\n        name: 'IndexArbitrage',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Index Arbitrage',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529003',\n        name: 'NonIndexArbitrage',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Non-Index Arbitrage',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529004',\n        name: 'CompetingMarketMaker',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Competing Market Maker',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529005',\n        name: 'ActingAsMarketMakerOrSpecialistInSecurity',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Acting as Market Maker or Specialist in the security',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529006',\n        name: 'ActingAsMarketMakerOrSpecialistInUnderlying',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Acting as Market Maker or Specialist in the underlying security of a derivative security',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529007',\n        name: 'ForeignEntity',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Foreign Entity (of foreign government or regulatory jurisdiction)',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529008',\n        name: 'ExternalMarketParticipant',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'External Market Participant',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529009',\n        name: 'ExternalInterConnectedMarketLinkage',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'External Inter-connected Market Linkage',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529010',\n        name: 'RisklessArbitrage',\n        value: 'A',\n        sort: 10,\n        added: 'FIX.4.3',\n        description: 'Riskless Arbitrage',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529011',\n        name: 'IssuerHolding',\n        value: 'B',\n        sort: 11,\n        added: 'FIX.5.0',\n        addedEP: '61',\n        description: 'Issuer Holding',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529012',\n        name: 'IssuePriceStabilization',\n        value: 'C',\n        sort: 12,\n        added: 'FIX.5.0',\n        addedEP: '61',\n        description: 'Issue Price Stabilization',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529013',\n        name: 'NonAlgorithmic',\n        value: 'D',\n        sort: 13,\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Non-algorithmic',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529014',\n        name: 'Algorithmic',\n        value: 'E',\n        sort: 14,\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Algorithmic',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529015',\n        name: 'Cross',\n        value: 'F',\n        sort: 15,\n        added: 'FIX.5.0SP1',\n        addedEP: '78',\n        description: 'Cross',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529016',\n        name: 'InsiderAccount',\n        value: 'G',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        description: 'Insider Account',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529017',\n        name: 'SignificantShareholder',\n        value: 'H',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        description: 'Significant Shareholder',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '529018',\n        name: 'NormalCourseIssuerBid',\n        value: 'I',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        description: 'Normal Course Issuer Bid (NCIB)',\n        tag: 529,\n        type: 'MultipleCharValue',\n        codeSet: 'OrderRestrictionsCodeSet',\n    },\n    {\n        id: '530001',\n        name: 'CancelOrdersForASecurity',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Cancel orders for a security',\n        tag: 530,\n        type: 'char',\n        codeSet: 'MassCancelRequestTypeCodeSet',\n    },\n    {\n        id: '530002',\n        name: 'CancelOrdersForAnUnderlyingSecurity',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Cancel orders for an underlying security',\n        tag: 530,\n        type: 'char',\n        codeSet: 'MassCancelRequestTypeCodeSet',\n    },\n    {\n        id: '530003',\n        name: 'CancelOrdersForAProduct',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel orders for a product',\n        tag: 530,\n        type: 'char',\n        codeSet: 'MassCancelRequestTypeCodeSet',\n    },\n    {\n        id: '530004',\n        name: 'CancelOrdersForACFICode',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Cancel orders for a CFICode',\n        tag: 530,\n        type: 'char',\n        codeSet: 'MassCancelRequestTypeCodeSet',\n    },\n    {\n        id: '530005',\n        name: 'CancelOrdersForASecurityType',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel orders for a security type',\n        tag: 530,\n        type: 'char',\n        codeSet: 'MassCancelRequestTypeCodeSet',\n    },\n    {\n        id: '530006',\n        name: 'CancelOrdersForATradingSession',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Cancel orders for a trading session',\n        tag: 530,\n        type: 'char',\n        codeSet: 'MassCancelRequestTypeCodeSet',\n    },\n    {\n        id: '530007',\n        name: 'CancelAllOrders',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Cancel all orders',\n        tag: 530,\n        type: 'char',\n        codeSet: 'MassCancelRequestTypeCodeSet',\n    },\n    {\n        id: '530008',\n        name: 'CancelOrdersForAMarket',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Cancel orders for a market',\n        tag: 530,\n        type: 'char',\n        codeSet: 'MassCancelRequestTypeCodeSet',\n    },\n    {\n        id: '530009',\n        name: 'CancelOrdersForAMarketSegment',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Cancel orders for a market segment',\n        tag: 530,\n        type: 'char',\n        codeSet: 'MassCancelRequestTypeCodeSet',\n    },\n    {\n        id: '530010',\n        name: 'CancelOrdersForASecurityGroup',\n        value: 'A',\n        sort: 10,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Cancel orders for a security group',\n        tag: 530,\n        type: 'char',\n        codeSet: 'MassCancelRequestTypeCodeSet',\n    },\n    {\n        id: '530011',\n        name: 'CancelOrdersForSecurityIssuer',\n        value: 'B',\n        sort: 11,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel orders for an issuer',\n        tag: 530,\n        type: 'char',\n        codeSet: 'MassCancelRequestTypeCodeSet',\n    },\n    {\n        id: '530012',\n        name: 'CancelForIssuerOfUnderlyingSecurity',\n        value: 'C',\n        sort: 12,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel orders for an issuer of underlying security',\n        tag: 530,\n        type: 'char',\n        codeSet: 'MassCancelRequestTypeCodeSet',\n    },\n    {\n        id: '531001',\n        name: 'CancelRequestRejected',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.3',\n        description: 'Cancel Request Rejected - See MassCancelRejectReason (532)',\n        tag: 531,\n        type: 'char',\n        codeSet: 'MassCancelResponseCodeSet',\n    },\n    {\n        id: '531002',\n        name: 'CancelOrdersForASecurity',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Cancel orders for a security',\n        tag: 531,\n        type: 'char',\n        codeSet: 'MassCancelResponseCodeSet',\n    },\n    {\n        id: '531003',\n        name: 'CancelOrdersForAnUnderlyingSecurity',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel orders for an underlying security',\n        tag: 531,\n        type: 'char',\n        codeSet: 'MassCancelResponseCodeSet',\n    },\n    {\n        id: '531004',\n        name: 'CancelOrdersForAProduct',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel orders for a product',\n        tag: 531,\n        type: 'char',\n        codeSet: 'MassCancelResponseCodeSet',\n    },\n    {\n        id: '531005',\n        name: 'CancelOrdersForACFICode',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel orders for a CFI Code',\n        tag: 531,\n        type: 'char',\n        codeSet: 'MassCancelResponseCodeSet',\n    },\n    {\n        id: '531006',\n        name: 'CancelOrdersForASecurityType',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel orders for a security type',\n        tag: 531,\n        type: 'char',\n        codeSet: 'MassCancelResponseCodeSet',\n    },\n    {\n        id: '531007',\n        name: 'CancelOrdersForATradingSession',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Cancel orders for a trading session',\n        tag: 531,\n        type: 'char',\n        codeSet: 'MassCancelResponseCodeSet',\n    },\n    {\n        id: '531008',\n        name: 'CancelAllOrders',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel all orders',\n        tag: 531,\n        type: 'char',\n        codeSet: 'MassCancelResponseCodeSet',\n    },\n    {\n        id: '531009',\n        name: 'CancelOrdersForAMarket',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Cancel orders for a market',\n        tag: 531,\n        type: 'char',\n        codeSet: 'MassCancelResponseCodeSet',\n    },\n    {\n        id: '531010',\n        name: 'CancelOrdersForAMarketSegment',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Cancel orders for a market segment',\n        tag: 531,\n        type: 'char',\n        codeSet: 'MassCancelResponseCodeSet',\n    },\n    {\n        id: '531011',\n        name: 'CancelOrdersForASecurityGroup',\n        value: 'A',\n        sort: 10,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Cancel orders for a security group',\n        tag: 531,\n        type: 'char',\n        codeSet: 'MassCancelResponseCodeSet',\n    },\n    {\n        id: '531012',\n        name: 'CancelOrdersForASecuritiesIssuer',\n        value: 'B',\n        sort: 11,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel orders for an issuer',\n        tag: 531,\n        type: 'char',\n        codeSet: 'MassCancelResponseCodeSet',\n    },\n    {\n        id: '531013',\n        name: 'CancelOrdersForIssuerOfUnderlyingSecurity',\n        value: 'C',\n        sort: 12,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Cancel orders for an issuer of underlying security',\n        tag: 531,\n        type: 'char',\n        codeSet: 'MassCancelResponseCodeSet',\n    },\n    {\n        id: '532001',\n        name: 'MassCancelNotSupported',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.3',\n        description: 'Mass Cancel Not Supported',\n        tag: 532,\n        type: 'int',\n        codeSet: 'MassCancelRejectReasonCodeSet',\n    },\n    {\n        id: '532002',\n        name: 'InvalidOrUnknownSecurity',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Invalid or unknown security',\n        tag: 532,\n        type: 'int',\n        codeSet: 'MassCancelRejectReasonCodeSet',\n    },\n    {\n        id: '532003',\n        name: 'InvalidOrUnknownUnderlyingSecurity',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Invalid or unknown underlying security',\n        tag: 532,\n        type: 'int',\n        codeSet: 'MassCancelRejectReasonCodeSet',\n    },\n    {\n        id: '532004',\n        name: 'InvalidOrUnknownProduct',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Invalid or unknown product',\n        tag: 532,\n        type: 'int',\n        codeSet: 'MassCancelRejectReasonCodeSet',\n    },\n    {\n        id: '532005',\n        name: 'InvalidOrUnknownCFICode',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Invalid or unknown CFI Code',\n        tag: 532,\n        type: 'int',\n        codeSet: 'MassCancelRejectReasonCodeSet',\n    },\n    {\n        id: '532006',\n        name: 'InvalidOrUnknownSecurityType',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Invalid or unknown security type',\n        tag: 532,\n        type: 'int',\n        codeSet: 'MassCancelRejectReasonCodeSet',\n    },\n    {\n        id: '532007',\n        name: 'InvalidOrUnknownTradingSession',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Invalid or unknown trading session',\n        tag: 532,\n        type: 'int',\n        codeSet: 'MassCancelRejectReasonCodeSet',\n    },\n    {\n        id: '532008',\n        name: 'InvalidOrUnknownMarket',\n        value: '7',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Invalid or unknown market',\n        tag: 532,\n        type: 'int',\n        codeSet: 'MassCancelRejectReasonCodeSet',\n    },\n    {\n        id: '532009',\n        name: 'InvalidOrUnkownMarketSegment',\n        value: '8',\n        sort: 9,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Invalid or unknown market segment',\n        tag: 532,\n        type: 'int',\n        codeSet: 'MassCancelRejectReasonCodeSet',\n    },\n    {\n        id: '532010',\n        name: 'InvalidOrUnknownSecurityGroup',\n        value: '9',\n        sort: 10,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Invalid or unknown security group',\n        tag: 532,\n        type: 'int',\n        codeSet: 'MassCancelRejectReasonCodeSet',\n    },\n    {\n        id: '532011',\n        name: 'InvalidOrUnknownSecurityIssuer',\n        value: '10',\n        sort: 11,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Invalid or unknown security issuer',\n        tag: 532,\n        type: 'int',\n        codeSet: 'MassCancelRejectReasonCodeSet',\n    },\n    {\n        id: '532012',\n        name: 'InvalidOrUnknownIssuerOfUnderlyingSecurity',\n        value: '11',\n        sort: 12,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Invalid or unknown issuer of underlying security',\n        tag: 532,\n        type: 'int',\n        codeSet: 'MassCancelRejectReasonCodeSet',\n    },\n    {\n        id: '532013',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 532,\n        type: 'int',\n        codeSet: 'MassCancelRejectReasonCodeSet',\n    },\n    {\n        id: '537001',\n        name: 'Indicative',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Indicative',\n        tag: 537,\n        type: 'int',\n        codeSet: 'QuoteTypeCodeSet',\n    },\n    {\n        id: '537002',\n        name: 'Tradeable',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Tradeable',\n        tag: 537,\n        type: 'int',\n        codeSet: 'QuoteTypeCodeSet',\n    },\n    {\n        id: '537003',\n        name: 'RestrictedTradeable',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '126',\n        description: 'Restricted tradeable',\n        tag: 537,\n        type: 'int',\n        codeSet: 'QuoteTypeCodeSet',\n    },\n    {\n        id: '537004',\n        name: 'Counter',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Counter (tradeable)',\n        tag: 537,\n        type: 'int',\n        codeSet: 'QuoteTypeCodeSet',\n    },\n    {\n        id: '537005',\n        name: 'InitiallyTradeable',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '126',\n        description: 'Initially tradeable',\n        tag: 537,\n        type: 'int',\n        codeSet: 'QuoteTypeCodeSet',\n    },\n    {\n        id: '544001',\n        name: 'Cash',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Cash',\n        tag: 544,\n        type: 'char',\n        codeSet: 'CashMarginCodeSet',\n    },\n    {\n        id: '544002',\n        name: 'MarginOpen',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Margin Open',\n        tag: 544,\n        type: 'char',\n        codeSet: 'CashMarginCodeSet',\n    },\n    {\n        id: '544003',\n        name: 'MarginClose',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Margin Close',\n        tag: 544,\n        type: 'char',\n        codeSet: 'CashMarginCodeSet',\n    },\n    {\n        id: '546001',\n        name: 'LocalMarket',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Local Market (Exchange, ECN, ATS)',\n        tag: 546,\n        type: 'MultipleCharValue',\n        codeSet: 'ScopeCodeSet',\n    },\n    {\n        id: '546002',\n        name: 'National',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'National',\n        tag: 546,\n        type: 'MultipleCharValue',\n        codeSet: 'ScopeCodeSet',\n    },\n    {\n        id: '546003',\n        name: 'Global',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Global',\n        tag: 546,\n        type: 'MultipleCharValue',\n        codeSet: 'ScopeCodeSet',\n    },\n    {\n        id: '547001',\n        name: 'No',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.3',\n        description:\n            'Server must send an explicit delete for bids or offers falling outside the requested MarketDepth of the request',\n        tag: 547,\n        type: 'Boolean',\n        codeSet: 'MDImplicitDeleteCodeSet',\n    },\n    {\n        id: '547002',\n        name: 'Yes',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.3',\n        description:\n            'Client has responsibility for implicitly deleting bids or offers falling outside the MarketDepth of the request',\n        tag: 547,\n        type: 'Boolean',\n        codeSet: 'MDImplicitDeleteCodeSet',\n    },\n    {\n        id: '549001',\n        name: 'CrossAON',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description:\n            'All-or-none cross\\n\\n\\n                        A cross order which is executed completely or not at all. Both sides of the cross are treated in the same manner.',\n        tag: 549,\n        type: 'int',\n        codeSet: 'CrossTypeCodeSet',\n    },\n    {\n        id: '549002',\n        name: 'CrossIOC',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description:\n            'Immediate-or-cancel cross\\n\\n\\n                        A cross order which is immediately executed with any unfilled quantity cancelled. CrossPrioritization(550) may be used to indicate whether one side should have execution priority and any remaining quantity of the partially executed side be cancelled. Using CrossPrioritiation(550)=\"Y\" and CrossType(549)=2(Immediate-or-cancel cross) is equivalent to non-prioritized leg having a TimeInForce(59)=3(IOC) Immediate-or-cancel.',\n        tag: 549,\n        type: 'int',\n        codeSet: 'CrossTypeCodeSet',\n    },\n    {\n        id: '549003',\n        name: 'CrossOneSide',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description:\n            'One sided cross\\n\\n\\n                        A cross order which is executed on one side with any unfilled quantity remaining active. CrossPrioritization(550) may be used to indicate which side should have execution priority.',\n        tag: 549,\n        type: 'int',\n        codeSet: 'CrossTypeCodeSet',\n    },\n    {\n        id: '549004',\n        name: 'CrossSamePrice',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description:\n            'Cross executed against book\\n\\n\\n                        A cross order which is executed against existing orders in the order book. The quantity on one side of the cross is executed against existing orders and quotes with the same price, and any remaining quantity of the cross is executed against the other side of the cross. The two sides of the cross may have different quantities.',\n        tag: 549,\n        type: 'int',\n        codeSet: 'CrossTypeCodeSet',\n    },\n    {\n        id: '549005',\n        name: 'BasisCross',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description:\n            'Basis cross\\n\\n\\n                        A cross order where a basket of securities or an index participation unit is transacted at prices achieved through the execution of related exchange-traded derivative instruments in an amount that will correspond to an equivalent market exposure.',\n        tag: 549,\n        type: 'int',\n        codeSet: 'CrossTypeCodeSet',\n    },\n    {\n        id: '549006',\n        name: 'ContingentCross',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description:\n            'Contingent cross\\n\\n\\n                        A cross order resulting from a paired order placed by a participant to execute an order on a security that is contingent on the execution of a second order for an offsetting volume of a related security.',\n        tag: 549,\n        type: 'int',\n        codeSet: 'CrossTypeCodeSet',\n    },\n    {\n        id: '549007',\n        name: 'VWAPCross',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description:\n            'Volume-weighted-average-price (VWAP) cross\\n\\n\\n                        A cross order for the purpose of executing a trade at a volume-weighted-average-price (VWAP) of a security traded for a continuous period on or during a trading day.',\n        tag: 549,\n        type: 'int',\n        codeSet: 'CrossTypeCodeSet',\n    },\n    {\n        id: '549008',\n        name: 'STSCross',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description:\n            'Special trading session cross\\n\\n\\n                        A closing price cross resulting from an order placed by a participant for execution in a special trading session at the last sale price.',\n        tag: 549,\n        type: 'int',\n        codeSet: 'CrossTypeCodeSet',\n    },\n    {\n        id: '549009',\n        name: 'CustomerToCustomer',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description:\n            'Customer to customer cross\\n\\n\\n                        Cross order where both sides of the cross represent agency orders.',\n        tag: 549,\n        type: 'int',\n        codeSet: 'CrossTypeCodeSet',\n    },\n    {\n        id: '550001',\n        name: 'None',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'None',\n        tag: 550,\n        type: 'int',\n        codeSet: 'CrossPrioritizationCodeSet',\n    },\n    {\n        id: '550002',\n        name: 'BuySideIsPrioritized',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Buy side is prioritized',\n        tag: 550,\n        type: 'int',\n        codeSet: 'CrossPrioritizationCodeSet',\n    },\n    {\n        id: '550003',\n        name: 'SellSideIsPrioritized',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Sell side is prioritized',\n        tag: 550,\n        type: 'int',\n        codeSet: 'CrossPrioritizationCodeSet',\n    },\n    {\n        id: '552001',\n        name: 'OneSide',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'One Side',\n        tag: 552,\n        type: 'NumInGroup',\n        codeSet: 'NoSidesCodeSet',\n    },\n    {\n        id: '552002',\n        name: 'BothSides',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Both Sides',\n        tag: 552,\n        type: 'NumInGroup',\n        codeSet: 'NoSidesCodeSet',\n    },\n    {\n        id: '559001',\n        name: 'Symbol',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.3',\n        description: 'Symbol',\n        tag: 559,\n        type: 'int',\n        codeSet: 'SecurityListRequestTypeCodeSet',\n    },\n    {\n        id: '559002',\n        name: 'SecurityTypeAnd',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'SecurityType and/or CFICode',\n        tag: 559,\n        type: 'int',\n        codeSet: 'SecurityListRequestTypeCodeSet',\n    },\n    {\n        id: '559003',\n        name: 'Product',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Product',\n        tag: 559,\n        type: 'int',\n        codeSet: 'SecurityListRequestTypeCodeSet',\n    },\n    {\n        id: '559004',\n        name: 'TradingSessionID',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'TradingSessionID',\n        tag: 559,\n        type: 'int',\n        codeSet: 'SecurityListRequestTypeCodeSet',\n    },\n    {\n        id: '559005',\n        name: 'AllSecurities',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'All Securities',\n        tag: 559,\n        type: 'int',\n        codeSet: 'SecurityListRequestTypeCodeSet',\n    },\n    {\n        id: '559006',\n        name: 'MarketIDOrMarketID',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'MarketID or MarketID + MarketSegmentID',\n        tag: 559,\n        type: 'int',\n        codeSet: 'SecurityListRequestTypeCodeSet',\n    },\n    {\n        id: '560001',\n        name: 'ValidRequest',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.3',\n        description: 'Valid request',\n        tag: 560,\n        type: 'int',\n        codeSet: 'SecurityRequestResultCodeSet',\n    },\n    {\n        id: '560002',\n        name: 'InvalidOrUnsupportedRequest',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Invalid or unsupported request',\n        tag: 560,\n        type: 'int',\n        codeSet: 'SecurityRequestResultCodeSet',\n    },\n    {\n        id: '560003',\n        name: 'NoInstrumentsFound',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'No instruments found that match selection criteria',\n        tag: 560,\n        type: 'int',\n        codeSet: 'SecurityRequestResultCodeSet',\n    },\n    {\n        id: '560004',\n        name: 'NotAuthorizedToRetrieveInstrumentData',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Not authorized to retrieve instrument data',\n        tag: 560,\n        type: 'int',\n        codeSet: 'SecurityRequestResultCodeSet',\n    },\n    {\n        id: '560005',\n        name: 'InstrumentDataTemporarilyUnavailable',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Instrument data temporarily unavailable',\n        tag: 560,\n        type: 'int',\n        codeSet: 'SecurityRequestResultCodeSet',\n    },\n    {\n        id: '560006',\n        name: 'RequestForInstrumentDataNotSupported',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Request for instrument data not supported',\n        tag: 560,\n        type: 'int',\n        codeSet: 'SecurityRequestResultCodeSet',\n    },\n    {\n        id: '563001',\n        name: 'ReportByMulitlegSecurityOnly',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.4',\n        description: 'Report by mulitleg security only (do not report legs)',\n        tag: 563,\n        type: 'int',\n        codeSet: 'MultiLegRptTypeReqCodeSet',\n    },\n    {\n        id: '563002',\n        name: 'ReportByMultilegSecurityAndInstrumentLegs',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Report by multileg security and by instrument legs belonging to the multileg security',\n        tag: 563,\n        type: 'int',\n        codeSet: 'MultiLegRptTypeReqCodeSet',\n    },\n    {\n        id: '563003',\n        name: 'ReportByInstrumentLegsOnly',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description:\n            'Report by instrument legs belonging to the multileg security only (do not report status of multileg security)',\n        tag: 563,\n        type: 'int',\n        codeSet: 'MultiLegRptTypeReqCodeSet',\n    },\n    {\n        id: '567001',\n        name: 'UnknownOrInvalidTradingSessionID',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Unknown or invalid TradingSessionID',\n        tag: 567,\n        type: 'int',\n        codeSet: 'TradSesStatusRejReasonCodeSet',\n    },\n    {\n        id: '567002',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 567,\n        type: 'int',\n        codeSet: 'TradSesStatusRejReasonCodeSet',\n    },\n    {\n        id: '569001',\n        name: 'AllTrades',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.3',\n        description: 'All Trades',\n        tag: 569,\n        type: 'int',\n        codeSet: 'TradeRequestTypeCodeSet',\n    },\n    {\n        id: '569002',\n        name: 'MatchedTradesMatchingCriteria',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description:\n            'Matched trades matching criteria provided on request (Parties, ExecID, TradeID, OrderID, Instrument, InputSource, etc.)',\n        tag: 569,\n        type: 'int',\n        codeSet: 'TradeRequestTypeCodeSet',\n    },\n    {\n        id: '569003',\n        name: 'UnmatchedTradesThatMatchCriteria',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Unmatched trades that match criteria',\n        tag: 569,\n        type: 'int',\n        codeSet: 'TradeRequestTypeCodeSet',\n    },\n    {\n        id: '569004',\n        name: 'UnreportedTradesThatMatchCriteria',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Unreported trades that match criteria',\n        tag: 569,\n        type: 'int',\n        codeSet: 'TradeRequestTypeCodeSet',\n    },\n    {\n        id: '569005',\n        name: 'AdvisoriesThatMatchCriteria',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Advisories that match criteria',\n        tag: 569,\n        type: 'int',\n        codeSet: 'TradeRequestTypeCodeSet',\n    },\n    {\n        id: '570001',\n        name: 'NotReportedToCounterparty',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'Not reported to counterparty or market\\n\\n\\n                        In the context of RTS 13 Article 16 when a trade is reported to more than one \"approved publication arrangement\" (APA) the original report can be flagged as \"original\". This is the ESMA \"ORGN\" flag.',\n        tag: 570,\n        type: 'Boolean',\n        codeSet: 'PreviouslyReportedCodeSet',\n    },\n    {\n        id: '570002',\n        name: 'PreviouslyReportedToCounterparty',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'Previously reported to counterparty or market\\n\\n\\n                        In the context of RTS 13 Article 16 when a trade is reported to more than one \"approved publication arrangement\" (APA) the additional reports need to be flagged as \"duplicative\" and this flag needs to be present on any occurrence (even when publishing to the market). This is also used for reporting directly to ESMA when the trade has been previously reported. This is the ESMA \"DUPL\" flag.',\n        tag: 570,\n        type: 'Boolean',\n        codeSet: 'PreviouslyReportedCodeSet',\n    },\n    {\n        id: '573001',\n        name: 'Compared',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.3',\n        description: 'Compared, matched or affirmed',\n        tag: 573,\n        type: 'char',\n        codeSet: 'MatchStatusCodeSet',\n    },\n    {\n        id: '573002',\n        name: 'Uncompared',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Uncompared, unmatched, or unaffirmed',\n        tag: 573,\n        type: 'char',\n        codeSet: 'MatchStatusCodeSet',\n    },\n    {\n        id: '573003',\n        name: 'AdvisoryOrAlert',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Advisory or alert',\n        tag: 573,\n        type: 'char',\n        codeSet: 'MatchStatusCodeSet',\n    },\n    {\n        id: '573004',\n        name: 'Mismatched',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description:\n            'Mismatched\\n\\n\\n                        Indicates that data points from the AllocationInstruction(35=J) and Confirmation(35=AK) are matched but there are variances. MatchExceptionGrp component may be used to detail on the mis-matched data fields.',\n        tag: 573,\n        type: 'char',\n        codeSet: 'MatchStatusCodeSet',\n    },\n    {\n        id: '574001',\n        name: 'OnePartyTradeReport',\n        value: '1',\n        sort: 70,\n        group: 'General Purpose',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'One-Party Trade Report (privately negotiated trade)',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574002',\n        name: 'TwoPartyTradeReport',\n        value: '2',\n        sort: 71,\n        group: 'General Purpose',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Two-Party Trade Report (privately negotiated trade)',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574003',\n        name: 'ConfirmedTradeReport',\n        value: '3',\n        sort: 72,\n        group: 'General Purpose',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Confirmed Trade Report (reporting from recognized markets)',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574004',\n        name: 'AutoMatch',\n        value: '4',\n        sort: 73,\n        group: 'General Purpose',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Auto-match',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574005',\n        name: 'CrossAuction',\n        value: '5',\n        sort: 74,\n        group: 'General Purpose',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Cross Auction',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574006',\n        name: 'CounterOrderSelection',\n        value: '6',\n        sort: 75,\n        group: 'General Purpose',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Counter-Order Selection',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574007',\n        name: 'CallAuction',\n        value: '7',\n        sort: 76,\n        group: 'General Purpose',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Call Auction',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574008',\n        name: 'Issuing',\n        value: '8',\n        sort: 77,\n        group: 'General Purpose',\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Issuing/Buy Back Auction',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574009',\n        name: 'SystematicInternaliser',\n        value: '9',\n        sort: 78,\n        group: 'General Purpose',\n        added: 'FIX.5.0SP2',\n        addedEP: '163',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '228',\n        description: 'Systematic Internaliser (SI)',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574010',\n        name: 'AutoMatchLastLook',\n        value: '10',\n        sort: 79,\n        group: 'General Purpose',\n        added: 'FIX.5.0SP2',\n        addedEP: '198',\n        description:\n            'Auto-match with last look\\n\\n\\n                        Execution that arises from a match against orders or quotes which require a confirmation during continuous trading.',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574011',\n        name: 'CrossAuctionLastLook',\n        value: '11',\n        sort: 80,\n        group: 'General Purpose',\n        added: 'FIX.5.0SP2',\n        addedEP: '198',\n        description:\n            'Cross auction with last look\\n\\n\\n                        Execution that arises from a match against orders or quotes which require a confirmation during an auction.',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574012',\n        name: 'ACTAcceptedTrade',\n        value: 'M3',\n        sort: 2,\n        group: 'NASDAQ',\n        added: 'FIX.4.3',\n        description: 'ACT Accepted Trade',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574013',\n        name: 'ACTDefaultTrade',\n        value: 'M4',\n        sort: 3,\n        group: 'NASDAQ',\n        added: 'FIX.4.3',\n        description: 'ACT Default Trade',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574014',\n        name: 'ACTDefaultAfterM2',\n        value: 'M5',\n        sort: 4,\n        group: 'NASDAQ',\n        added: 'FIX.4.3',\n        description: 'ACT Default After M2',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574015',\n        name: 'ACTM6Match',\n        value: 'M6',\n        sort: 5,\n        group: 'NASDAQ',\n        added: 'FIX.4.3',\n        description: 'ACT M6 Match',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574016',\n        name: 'ExactMatchPlus4BadgesExecTime',\n        value: 'A1',\n        sort: 0,\n        group: 'NYSE and AMEX',\n        added: 'FIX.4.3',\n        description:\n            'Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator plus four badges and execution time (within two-minute window)',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574017',\n        name: 'ExactMatchPlus4Badges',\n        value: 'A2',\n        sort: 1,\n        group: 'NYSE and AMEX',\n        added: 'FIX.4.3',\n        description:\n            'Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator, plus four badges',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574018',\n        name: 'ExactMatchPlus2BadgesExecTime',\n        value: 'A3',\n        sort: 2,\n        group: 'NYSE and AMEX',\n        added: 'FIX.4.3',\n        description:\n            'Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator, plus two badges and execution time (within two-minute window)',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574019',\n        name: 'ExactMatchPlus2Badges',\n        value: 'A4',\n        sort: 3,\n        group: 'NYSE and AMEX',\n        added: 'FIX.4.3',\n        description:\n            'Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator, plus two badges',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574020',\n        name: 'ExactMatchPlusExecTime',\n        value: 'A5',\n        sort: 4,\n        group: 'NYSE and AMEX',\n        added: 'FIX.4.3',\n        description:\n            'Exact match on Trade Date, Stock Symbol, Quantity, Price, TradeType, and Special Trade Indicator plus execution time (within two-minute window)',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574021',\n        name: 'StampedAdvisoriesOrSpecialistAccepts',\n        value: 'AQ',\n        sort: 5,\n        group: 'NYSE and AMEX',\n        added: 'FIX.4.3',\n        description: 'Compared records resulting from stamped advisories or specialist accepts/pair-offs',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574022',\n        name: 'A1ExactMatchSummarizedQuantity',\n        value: 'S1',\n        sort: 6,\n        group: 'NYSE and AMEX',\n        added: 'FIX.4.3',\n        description: 'Summarized match using A1 exact match criteria except quantity is summaried',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574023',\n        name: 'A2ExactMatchSummarizedQuantity',\n        value: 'S2',\n        sort: 7,\n        group: 'NYSE and AMEX',\n        added: 'FIX.4.3',\n        description: 'Summarized match using A2 exact match criteria except quantity is summarized',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574024',\n        name: 'A3ExactMatchSummarizedQuantity',\n        value: 'S3',\n        sort: 8,\n        group: 'NYSE and AMEX',\n        added: 'FIX.4.3',\n        description: 'Summarized match using A3 exact match criteria except quantity is summarized',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574025',\n        name: 'A4ExactMatchSummarizedQuantity',\n        value: 'S4',\n        sort: 9,\n        group: 'NYSE and AMEX',\n        added: 'FIX.4.3',\n        description: 'Summarized match using A4 exact match criteria except quantity is summarized',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574026',\n        name: 'A5ExactMatchSummarizedQuantity',\n        value: 'S5',\n        sort: 10,\n        group: 'NYSE and AMEX',\n        added: 'FIX.4.3',\n        description: 'Summarized match using A5 exact match criteria except quantity is summarized',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574027',\n        name: 'ExactMatchMinusBadgesTimes',\n        value: 'M1',\n        sort: 11,\n        group: 'NYSE, AMEX and NASDAQ',\n        added: 'FIX.4.3',\n        description:\n            'Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator minus badges And times: ACT M1 match',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574028',\n        name: 'SummarizedMatchMinusBadgesTimes',\n        value: 'M2',\n        sort: 12,\n        group: 'NYSE, AMEX and NASDAQ',\n        added: 'FIX.4.3',\n        description: 'Summarized match minus badges and times: ACT M2 Match',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '574029',\n        name: 'OCSLockedIn',\n        value: 'MT',\n        sort: 13,\n        group: 'NYSE, AMEX and NASDAQ',\n        added: 'FIX.4.3',\n        description: 'OCS Locked In: Non-ACT',\n        tag: 574,\n        type: 'String',\n        codeSet: 'MatchTypeCodeSet',\n    },\n    {\n        id: '575001',\n        name: 'TreatAsRoundLot',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Treat as round lot (default)',\n        tag: 575,\n        type: 'Boolean',\n        codeSet: 'OddLotCodeSet',\n    },\n    {\n        id: '575002',\n        name: 'TreatAsOddLot',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Treat as odd lot',\n        tag: 575,\n        type: 'Boolean',\n        codeSet: 'OddLotCodeSet',\n    },\n    {\n        id: '577001',\n        name: 'ProcessNormally',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.3',\n        description: 'Process normally',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577002',\n        name: 'ExcludeFromAllNetting',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Exclude from all netting',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577003',\n        name: 'BilateralNettingOnly',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Bilateral netting only',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577004',\n        name: 'ExClearing',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Ex clearing',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577005',\n        name: 'SpecialTrade',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Special trade',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577006',\n        name: 'MultilateralNetting',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Multilateral netting',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577007',\n        name: 'ClearAgainstCentralCounterparty',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Clear against central counterparty',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577008',\n        name: 'ExcludeFromCentralCounterparty',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Exclude from central counterparty',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577009',\n        name: 'ManualMode',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'Manual mode (pre-posting and/or pre-giveup)',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577010',\n        name: 'AutomaticPostingMode',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.3',\n        description: 'Automatic posting mode (trade posting to the position account number specified)',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577011',\n        name: 'AutomaticGiveUpMode',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.3',\n        description: 'Automatic give-up mode (trade give-up to the give-up destination number specified)',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577012',\n        name: 'QualifiedServiceRepresentativeQSR',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.4',\n        description: 'Qualified Service Representative QSR',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577013',\n        name: 'CustomerTrade',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.4',\n        description: 'Customer trade',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577014',\n        name: 'SelfClearing',\n        value: '13',\n        sort: 13,\n        added: 'FIX.4.4',\n        description: 'Self clearing',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '577015',\n        name: 'BuyIn',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '136',\n        description: 'Buy-in',\n        tag: 577,\n        type: 'int',\n        codeSet: 'ClearingInstructionCodeSet',\n    },\n    {\n        id: '581001',\n        name: 'CarriedCustomerSide',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Account is carried on customer side of the books',\n        tag: 581,\n        type: 'int',\n        codeSet: 'AccountTypeCodeSet',\n    },\n    {\n        id: '581002',\n        name: 'CarriedNonCustomerSide',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Account is carried on non-customer side of books',\n        tag: 581,\n        type: 'int',\n        codeSet: 'AccountTypeCodeSet',\n    },\n    {\n        id: '581003',\n        name: 'HouseTrader',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'House Trader',\n        tag: 581,\n        type: 'int',\n        codeSet: 'AccountTypeCodeSet',\n    },\n    {\n        id: '581004',\n        name: 'FloorTrader',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Floor Trader',\n        tag: 581,\n        type: 'int',\n        codeSet: 'AccountTypeCodeSet',\n    },\n    {\n        id: '581005',\n        name: 'CarriedNonCustomerSideCrossMargined',\n        value: '6',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Account is carried on non-customer side of books and is cross margined',\n        tag: 581,\n        type: 'int',\n        codeSet: 'AccountTypeCodeSet',\n    },\n    {\n        id: '581006',\n        name: 'HouseTraderCrossMargined',\n        value: '7',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Account is house trader and is cross margined',\n        tag: 581,\n        type: 'int',\n        codeSet: 'AccountTypeCodeSet',\n    },\n    {\n        id: '581007',\n        name: 'JointBackOfficeAccount',\n        value: '8',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Joint back office account (JBO)',\n        tag: 581,\n        type: 'int',\n        codeSet: 'AccountTypeCodeSet',\n    },\n    {\n        id: '581008',\n        name: 'EquitiesSpecialist',\n        value: '9',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        description: 'Equities specialist',\n        tag: 581,\n        type: 'int',\n        codeSet: 'AccountTypeCodeSet',\n    },\n    {\n        id: '581009',\n        name: 'OptionsMarketMaker',\n        value: '10',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        description: 'Options market maker',\n        tag: 581,\n        type: 'int',\n        codeSet: 'AccountTypeCodeSet',\n    },\n    {\n        id: '581010',\n        name: 'OptionsFirmAccount',\n        value: '11',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        description: 'Options firm account',\n        tag: 581,\n        type: 'int',\n        codeSet: 'AccountTypeCodeSet',\n    },\n    {\n        id: '581011',\n        name: 'AccountCustomerNonCustomerOrders',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '256',\n        description:\n            'Account for customer and non-customer orders\\n\\n\\n                        Account aggregates orders from customers and non-customers.\\n\\n\\n                        In the context of IIROC UMIR this account type can be used for bundled orders (BU), i.e. orders including client, non-client and principal orders.',\n        tag: 581,\n        type: 'int',\n        codeSet: 'AccountTypeCodeSet',\n    },\n    {\n        id: '581012',\n        name: 'AccountOrdersMultipleCustomers',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '256',\n        description:\n            'Account for orders from multiple customers\\n\\n\\n                        Account aggregates orders from multiple customers.\\n\\n\\n                        In the context of IIROC UMIR this account type can be used for multiple client orders (MC), i.e. orders including orders from more than one client but no principal or non-client orders.',\n        tag: 581,\n        type: 'int',\n        codeSet: 'AccountTypeCodeSet',\n    },\n    {\n        id: '582001',\n        name: 'MemberTradingForTheirOwnAccount',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Member trading for their own account',\n        tag: 582,\n        type: 'int',\n        codeSet: 'CustOrderCapacityCodeSet',\n    },\n    {\n        id: '582002',\n        name: 'ClearingFirmTradingForItsProprietaryAccount',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '205',\n        description: 'Clearing firm trading for its proprietary account',\n        tag: 582,\n        type: 'int',\n        codeSet: 'CustOrderCapacityCodeSet',\n    },\n    {\n        id: '582003',\n        name: 'MemberTradingForAnotherMember',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Member trading for another member',\n        tag: 582,\n        type: 'int',\n        codeSet: 'CustOrderCapacityCodeSet',\n    },\n    {\n        id: '582004',\n        name: 'AllOther',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'All other',\n        tag: 582,\n        type: 'int',\n        codeSet: 'CustOrderCapacityCodeSet',\n    },\n    {\n        id: '582005',\n        name: 'RetailCustomer',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '205',\n        description:\n            'Retail customer\\n\\n\\n                        An order that originated from a retail customer (a natural person). In the context of the US Securities and Exchange Commission, this also means an order originated from a natural person where, prior to submission, no change was made to the terms of the order with respect to price or side of market and the order does not originate from an algorithm or other computerized trading method.',\n        tag: 582,\n        type: 'int',\n        codeSet: 'CustOrderCapacityCodeSet',\n    },\n    {\n        id: '585001',\n        name: 'StatusForOrdersForASecurity',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Status for orders for a security',\n        tag: 585,\n        type: 'int',\n        codeSet: 'MassStatusReqTypeCodeSet',\n    },\n    {\n        id: '585002',\n        name: 'StatusForOrdersForAnUnderlyingSecurity',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Status for orders for an underlying security',\n        tag: 585,\n        type: 'int',\n        codeSet: 'MassStatusReqTypeCodeSet',\n    },\n    {\n        id: '585003',\n        name: 'StatusForOrdersForAProduct',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Status for orders for a product',\n        tag: 585,\n        type: 'int',\n        codeSet: 'MassStatusReqTypeCodeSet',\n    },\n    {\n        id: '585004',\n        name: 'StatusForOrdersForACFICode',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Status for orders for a CFI Code',\n        tag: 585,\n        type: 'int',\n        codeSet: 'MassStatusReqTypeCodeSet',\n    },\n    {\n        id: '585005',\n        name: 'StatusForOrdersForASecurityType',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Status for orders for a security type',\n        tag: 585,\n        type: 'int',\n        codeSet: 'MassStatusReqTypeCodeSet',\n    },\n    {\n        id: '585006',\n        name: 'StatusForOrdersForATradingSession',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: 'Status for orders for a trading session',\n        tag: 585,\n        type: 'int',\n        codeSet: 'MassStatusReqTypeCodeSet',\n    },\n    {\n        id: '585007',\n        name: 'StatusForAllOrders',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'Status for all orders',\n        tag: 585,\n        type: 'int',\n        codeSet: 'MassStatusReqTypeCodeSet',\n    },\n    {\n        id: '585008',\n        name: 'StatusForOrdersForAPartyID',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Status for orders for a party identifier',\n        tag: 585,\n        type: 'int',\n        codeSet: 'MassStatusReqTypeCodeSet',\n    },\n    {\n        id: '585009',\n        name: 'StatusForSecurityIssuer',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Status for orders for an issuer',\n        tag: 585,\n        type: 'int',\n        codeSet: 'MassStatusReqTypeCodeSet',\n    },\n    {\n        id: '585010',\n        name: 'StatusForIssuerOfUnderlyingSecurity',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Status for orders for an issuer of underlying security',\n        tag: 585,\n        type: 'int',\n        codeSet: 'MassStatusReqTypeCodeSet',\n    },\n    {\n        id: '589001',\n        name: 'Auto',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Can trigger booking without reference to the order initiator (\"auto\")',\n        tag: 589,\n        type: 'char',\n        codeSet: 'DayBookingInstCodeSet',\n    },\n    {\n        id: '589002',\n        name: 'SpeakWithOrderInitiatorBeforeBooking',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Speak with order initiator before booking (\"speak first\")',\n        tag: 589,\n        type: 'char',\n        codeSet: 'DayBookingInstCodeSet',\n    },\n    {\n        id: '589003',\n        name: 'Accumulate',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Accumulate',\n        tag: 589,\n        type: 'char',\n        codeSet: 'DayBookingInstCodeSet',\n    },\n    {\n        id: '590001',\n        name: 'EachPartialExecutionIsABookableUnit',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Each partial execution is a bookable unit',\n        tag: 590,\n        type: 'char',\n        codeSet: 'BookingUnitCodeSet',\n    },\n    {\n        id: '590002',\n        name: 'AggregatePartialExecutionsOnThisOrder',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Aggregate partial executions on this order, and book one trade per order',\n        tag: 590,\n        type: 'char',\n        codeSet: 'BookingUnitCodeSet',\n    },\n    {\n        id: '590003',\n        name: 'AggregateExecutionsForThisSymbol',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Aggregate executions for this symbol, side, and settlement date',\n        tag: 590,\n        type: 'char',\n        codeSet: 'BookingUnitCodeSet',\n    },\n    {\n        id: '591001',\n        name: 'ProRata',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Pro rata',\n        tag: 591,\n        type: 'char',\n        codeSet: 'PreallocMethodCodeSet',\n    },\n    {\n        id: '591002',\n        name: 'DoNotProRata',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Do not pro-rata - discuss first',\n        tag: 591,\n        type: 'char',\n        codeSet: 'PreallocMethodCodeSet',\n    },\n    {\n        id: '625001',\n        name: 'PreTrading',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Pre-Trading',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625002',\n        name: 'OpeningOrOpeningAuction',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Opening or opening auction',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625003',\n        name: 'Continuous',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: '(Continuous) Trading',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625004',\n        name: 'ClosingOrClosingAuction',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Closing or closing auction',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625005',\n        name: 'PostTrading',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Post-Trading',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625006',\n        name: 'ScheduledIntradayAuction',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '163',\n        description: 'Scheduled intraday auction',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625007',\n        name: 'Quiescent',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Quiescent',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625008',\n        name: 'AnyAuction',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Any auction',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625009',\n        name: 'UnscheduledIntradayAuction',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '163',\n        description:\n            'Unscheduled intraday auction\\n\\n\\n                        An unscheduled intraday auction might be triggered by a circuit breaker.',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625010',\n        name: 'OutOfMainSessionTrading',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '163',\n        description:\n            'Out of main session trading\\n\\n\\n                        In the context of Market Model Typology \"Out of main session trading\" refers to both before and after session, neither auction nor continuous trading.',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625011',\n        name: 'PrivateAuction',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '168',\n        description:\n            'Private auction\\n\\n\\n                        An auction phase where only two parties participate.',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625012',\n        name: 'PublicAuction',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '168',\n        description:\n            'Public auction\\n\\n\\n                        An auction phase where all trading parties participate.',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625013',\n        name: 'GroupAuction',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '168',\n        description:\n            'Group auction\\n\\n\\n                        An auction phase limited to specific parties (e.g. parties that have resting orders in the order book).',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625014',\n        name: 'OrderInitiatedAuction',\n        value: '14',\n        sort: 14,\n        added: 'FIX.Latest',\n        addedEP: '286',\n        description:\n            'Order initiated auction\\n\\n\\n                        Auction automatically triggered by an order, e.g. an incoming order or a resting order that can be matched based on an incoming order. Use 9=\"Unscheduled intraday auction\" for any other auctions that are not scheduled. In the context of Market Model Topology, this can be used for an on demand auction (a.k.a. frequent batched auction).',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '625015',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Other\\n\\nIn the context of the EU Consolidated Tape, this is used for a trading phase that is not included in the list defined by ESMA.',\n        tag: 625,\n        type: 'String',\n        codeSet: 'TradingSessionSubIDCodeSet',\n    },\n    {\n        id: '626001',\n        name: 'Calculated',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Calculated (includes MiscFees and NetMoney)',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626002',\n        name: 'Preliminary',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Preliminary (without MiscFees and NetMoney)',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626003',\n        name: 'ReadyToBook',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Ready-To-Book',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626004',\n        name: 'WarehouseInstruction',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Warehouse instruction',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626005',\n        name: 'RequestToIntermediary',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Request to intermediary',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626006',\n        name: 'Accept',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '118',\n        description: 'Accept',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626007',\n        name: 'Reject',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '118',\n        description: 'Reject',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626008',\n        name: 'AcceptPending',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '118',\n        description: 'Accept Pending',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626009',\n        name: 'IncompleteGroup',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Incomplete group',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626010',\n        name: 'CompleteGroup',\n        value: '13',\n        sort: 13,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Complete group',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626011',\n        name: 'ReversalPending',\n        value: '14',\n        sort: 14,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '118',\n        description: 'Reversal Pending',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626012',\n        name: 'ReopenGroup',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Reopen group',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626013',\n        name: 'CancelGroup',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Cancel group',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626014',\n        name: 'Giveup',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Give-up',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626015',\n        name: 'Takeup',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Take-up',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626016',\n        name: 'RefuseTakeup',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Refuse take-up',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626017',\n        name: 'InitiateReversal',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Initiate reversal',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626018',\n        name: 'Reverse',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Reverse',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626019',\n        name: 'RefuseReversal',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Refuse reversal',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626020',\n        name: 'SubAllocationGiveup',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Sub-allocation give-up',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626021',\n        name: 'ApproveGiveup',\n        value: '24',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Approve give-up',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626022',\n        name: 'ApproveTakeup',\n        value: '25',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Approve take-up',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '626023',\n        name: 'NotionalValueAveragePxGroupAlloc',\n        value: '26',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '239',\n        description:\n            'Notional value average price group allocation\\n\\n\\n                        Used when conducting notional value average price (NVAP) group allocation with a clearinghouse.',\n        tag: 626,\n        type: 'int',\n        codeSet: 'AllocTypeCodeSet',\n    },\n    {\n        id: '635001',\n        name: 'FirstYearDelegate',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: '1st year delegate trading for own account',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '635002',\n        name: 'SecondYearDelegate',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: '2nd year delegate trading for own account',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '635003',\n        name: 'ThirdYearDelegate',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: '3rd year delegate trading for own account',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '635004',\n        name: 'FourthYearDelegate',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: '4th year delegate trading for own account',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '635005',\n        name: 'FifthYearDelegate',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: '5th year delegate trading for own account',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '635006',\n        name: 'SixthYearDelegate',\n        value: '9',\n        sort: 6,\n        added: 'FIX.4.3',\n        description: '6th year delegate trading for own account',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '635007',\n        name: 'CBOEMember',\n        value: 'B',\n        sort: 7,\n        added: 'FIX.4.3',\n        description: 'CBOE Member',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '635008',\n        name: 'NonMemberAndCustomer',\n        value: 'C',\n        sort: 8,\n        added: 'FIX.4.3',\n        description: 'Non-member and Customer',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '635009',\n        name: 'EquityMemberAndClearingMember',\n        value: 'E',\n        sort: 9,\n        added: 'FIX.4.3',\n        description: 'Equity Member and Clearing Member',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '635010',\n        name: 'FullAndAssociateMember',\n        value: 'F',\n        sort: 10,\n        added: 'FIX.4.3',\n        description: 'Full and Associate Member trading for own account and as floor brokers',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '635011',\n        name: 'Firms106HAnd106J',\n        value: 'H',\n        sort: 11,\n        added: 'FIX.4.3',\n        description: '106.H and 106.J firms',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '635012',\n        name: 'GIM',\n        value: 'I',\n        sort: 12,\n        added: 'FIX.4.3',\n        description: 'GIM, IDEM and COM Membership Interest Holders',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '635013',\n        name: 'Lessee106FEmployees',\n        value: 'L',\n        sort: 13,\n        added: 'FIX.4.3',\n        description: 'Lessee 106.F Employees',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '635014',\n        name: 'AllOtherOwnershipTypes',\n        value: 'M',\n        sort: 14,\n        added: 'FIX.4.3',\n        description: 'All other ownership types',\n        tag: 635,\n        type: 'String',\n        codeSet: 'ClearingFeeIndicatorCodeSet',\n    },\n    {\n        id: '636001',\n        name: 'NotWorking',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Order has been accepted but not yet in a working state',\n        tag: 636,\n        type: 'Boolean',\n        codeSet: 'WorkingIndicatorCodeSet',\n    },\n    {\n        id: '636002',\n        name: 'Working',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Order is currently being worked',\n        tag: 636,\n        type: 'Boolean',\n        codeSet: 'WorkingIndicatorCodeSet',\n    },\n    {\n        id: '638001',\n        name: 'PriorityUnchanged',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Priority unchanged',\n        tag: 638,\n        type: 'int',\n        codeSet: 'PriorityIndicatorCodeSet',\n    },\n    {\n        id: '638002',\n        name: 'LostPriorityAsResultOfOrderChange',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Lost Priority as result of order change',\n        tag: 638,\n        type: 'int',\n        codeSet: 'PriorityIndicatorCodeSet',\n    },\n    {\n        id: '650001',\n        name: 'DoesNotConsituteALegalConfirm',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Does not consitute a Legal Confirm',\n        tag: 650,\n        type: 'Boolean',\n        codeSet: 'LegalConfirmCodeSet',\n    },\n    {\n        id: '650002',\n        name: 'LegalConfirm',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.3',\n        description: 'Legal Confirm',\n        tag: 650,\n        type: 'Boolean',\n        codeSet: 'LegalConfirmCodeSet',\n    },\n    {\n        id: '658001',\n        name: 'UnknownSymbol',\n        value: '1',\n        sort: 0,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'Unknown Symbol (Security)\\n\\nIn the context of IA FX Reject codes, Quote Rejection Category F, the RFQ is rejected due to unknown or unsupported product, e.g. by the specific venue, tenor restrictions on the market participant(s) involved.',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658002',\n        name: 'Exchange',\n        value: '2',\n        sort: 1,\n        added: 'FIX.4.3',\n        description: 'Exchange (Security) Closed',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658003',\n        name: 'QuoteRequestExceedsLimit',\n        value: '3',\n        sort: 2,\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'Quote Request Exceeds Limit\\n\\nIn the context of IA FX Reject codes, Quote Rejection Category D, the RFQ is rejected due to risk limit exceeded or not in place.',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658004',\n        name: 'TooLateToEnter',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.3',\n        description: 'Too Late to enter',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658005',\n        name: 'InvalidPrice',\n        value: '5',\n        sort: 4,\n        added: 'FIX.4.3',\n        description: 'Invalid Price',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658006',\n        name: 'NotAuthorizedToRequestQuote',\n        value: '6',\n        sort: 5,\n        added: 'FIX.4.3',\n        description: 'Not Authorized To Request Quote',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658007',\n        name: 'NoMatchForInquiry',\n        value: '7',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'No Match For Inquiry',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658008',\n        name: 'NoMarketForInstrument',\n        value: '8',\n        sort: 7,\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'No Market For Instrument\\n\\nIn the context of IA FX Reject codes, Quote Rejection Category F, the RFQ is rejected due to unknown or unsupported product.',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658009',\n        name: 'NoInventory',\n        value: '9',\n        sort: 8,\n        added: 'FIX.4.4',\n        description: 'No Inventory',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658010',\n        name: 'Pass',\n        value: '10',\n        sort: 9,\n        added: 'FIX.4.4',\n        description: 'Pass',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658011',\n        name: 'InsufficientCredit',\n        value: '11',\n        sort: 10,\n        added: 'FIX.4.4',\n        addedEP: '21',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description:\n            'Insufficient credit\\n\\nIn the context of IA FX Reject codes, Quote Rejection Category A, the RFQ is rejected due to credit limit exceeded or not in place.',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658012',\n        name: 'ExceededClipSizeLimit',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Exceeded clip size limit',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658013',\n        name: 'ExceededMaxNotionalOrderAmt',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Exceeded maximum notional order amount',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658014',\n        name: 'ExceededDV01PV01Limit',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Exceeded DV01/PV01 limit',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658015',\n        name: 'ExceededCS01Limit',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Exceeded CS01 limit',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658016',\n        name: 'UnavailablePriceLiquidity',\n        value: '16',\n        sort: 16,\n        added: 'FIX.Latest',\n        addedEP: '290',\n        updated: 'FIX.Latest',\n        updatedEP: '298',\n        description:\n            'Unavailable price or liquidity\\n\\nIn the context of IA FX Reject codes, Quote Rejection Category B, the RFQ is rejected due to unavailable price information.',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658017',\n        name: 'UnmetRegulatoryRequirement',\n        value: '17',\n        sort: 17,\n        added: 'FIX.Latest',\n        addedEP: '290',\n        updated: 'FIX.Latest',\n        updatedEP: '298',\n        description:\n            'Unmet regulatory requirement\\n\\nIn the context of IA FX Reject codes, Quote Rejection Category C, the RFQ is rejected due to regulatory requirements not being met. For example, a RFQ is submitted into a SEF by a non-SEF participant, or an NDF was submitted into the trading platform.',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658018',\n        name: 'UnknownAccounts',\n        value: '18',\n        sort: 18,\n        added: 'FIX.Latest',\n        addedEP: '290',\n        updated: 'FIX.Latest',\n        updatedEP: '298',\n        description:\n            'Unknown account(s)\\n\\nIn the context of IA FX Reject codes, Quote Rejection Category E, the RFQ is rejected due to static data when the account/fund is not setup or unknown.',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658019',\n        name: 'InvalidMissingEntitlements',\n        value: '19',\n        sort: 19,\n        added: 'FIX.Latest',\n        addedEP: '290',\n        updated: 'FIX.Latest',\n        updatedEP: '298',\n        description:\n            'Invalid or missing entitlements\\n\\nIn the context of IA FX Reject codes, Quote Rejection Category E, the RFQ is rejected due to static data when the counterparty is not authorized or has missing entitlements.',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '658020',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '298',\n        description:\n            'Other\\n\\nIn the context of IA FX Reject codes, Quote Rejection Category G, the RFQ is rejected due to other exceptions. Further detail may be provided in RejectText(1328) or Text(58), with preference for RejectText(1328) if field is present in the message.',\n        tag: 658,\n        type: 'int',\n        codeSet: 'QuoteRequestRejectReasonCodeSet',\n    },\n    {\n        id: '660001',\n        name: 'BIC',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'BIC',\n        tag: 660,\n        type: 'int',\n        codeSet: 'AcctIDSourceCodeSet',\n    },\n    {\n        id: '660002',\n        name: 'SIDCode',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'SID Code',\n        tag: 660,\n        type: 'int',\n        codeSet: 'AcctIDSourceCodeSet',\n    },\n    {\n        id: '660003',\n        name: 'TFM',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'TFM (GSPTA)',\n        tag: 660,\n        type: 'int',\n        codeSet: 'AcctIDSourceCodeSet',\n    },\n    {\n        id: '660004',\n        name: 'OMGEO',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'OMGEO (Alert ID)',\n        tag: 660,\n        type: 'int',\n        codeSet: 'AcctIDSourceCodeSet',\n    },\n    {\n        id: '660005',\n        name: 'DTCCCode',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'DTCC Code',\n        tag: 660,\n        type: 'int',\n        codeSet: 'AcctIDSourceCodeSet',\n    },\n    {\n        id: '660006',\n        name: 'SPSAID',\n        value: '6',\n        sort: 6,\n        added: 'FIX.Latest',\n        addedEP: '262',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'Special Segregated Account ID\\n\\n\\n                        Also referred to as SPSA ID. The Special Segregated Account identifier issued by Hong Kong Exchanges and Clearing.',\n        tag: 660,\n        type: 'int',\n        codeSet: 'AcctIDSourceCodeSet',\n    },\n    {\n        id: '660007',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other (custom or proprietary)',\n        tag: 660,\n        type: 'int',\n        codeSet: 'AcctIDSourceCodeSet',\n    },\n    {\n        id: '665001',\n        name: 'Received',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Received',\n        tag: 665,\n        type: 'int',\n        codeSet: 'ConfirmStatusCodeSet',\n    },\n    {\n        id: '665002',\n        name: 'MismatchedAccount',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Mismatched Account',\n        tag: 665,\n        type: 'int',\n        codeSet: 'ConfirmStatusCodeSet',\n    },\n    {\n        id: '665003',\n        name: 'MissingSettlementInstructions',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Missing Settlement Instructions',\n        tag: 665,\n        type: 'int',\n        codeSet: 'ConfirmStatusCodeSet',\n    },\n    {\n        id: '665004',\n        name: 'Confirmed',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Confirmed',\n        tag: 665,\n        type: 'int',\n        codeSet: 'ConfirmStatusCodeSet',\n    },\n    {\n        id: '665005',\n        name: 'RequestRejected',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Request Rejected',\n        tag: 665,\n        type: 'int',\n        codeSet: 'ConfirmStatusCodeSet',\n    },\n    {\n        id: '666001',\n        name: 'New',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'New',\n        tag: 666,\n        type: 'int',\n        codeSet: 'ConfirmTransTypeCodeSet',\n    },\n    {\n        id: '666002',\n        name: 'Replace',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Replace',\n        tag: 666,\n        type: 'int',\n        codeSet: 'ConfirmTransTypeCodeSet',\n    },\n    {\n        id: '666003',\n        name: 'Cancel',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Cancel',\n        tag: 666,\n        type: 'int',\n        codeSet: 'ConfirmTransTypeCodeSet',\n    },\n    {\n        id: '668001',\n        name: 'BookEntry',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Book Entry (default)',\n        tag: 668,\n        type: 'int',\n        codeSet: 'DeliveryFormCodeSet',\n    },\n    {\n        id: '668002',\n        name: 'Bearer',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Bearer',\n        tag: 668,\n        type: 'int',\n        codeSet: 'DeliveryFormCodeSet',\n    },\n    {\n        id: '690001',\n        name: 'ParForPar',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Par For Par',\n        tag: 690,\n        type: 'int',\n        codeSet: 'LegSwapTypeCodeSet',\n    },\n    {\n        id: '690002',\n        name: 'ModifiedDuration',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Modified Duration',\n        tag: 690,\n        type: 'int',\n        codeSet: 'LegSwapTypeCodeSet',\n    },\n    {\n        id: '690003',\n        name: 'Risk',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Risk',\n        tag: 690,\n        type: 'int',\n        codeSet: 'LegSwapTypeCodeSet',\n    },\n    {\n        id: '690004',\n        name: 'Proceeds',\n        value: '5',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Proceeds',\n        tag: 690,\n        type: 'int',\n        codeSet: 'LegSwapTypeCodeSet',\n    },\n    {\n        id: '692001',\n        name: 'Percent',\n        value: '1',\n        sort: 0,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '207',\n        description: 'Percentage (i.e. percent of par) (often called \"dollar price\" for fixed income)',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692002',\n        name: 'PerShare',\n        value: '2',\n        sort: 1,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '207',\n        description: 'Per unit (i.e. per share or contract)',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692003',\n        name: 'FixedAmount',\n        value: '3',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Fixed Amount (absolute value)',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692004',\n        name: 'Discount',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Discount - percentage points below par',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692005',\n        name: 'Premium',\n        value: '5',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Premium - percentage points over par',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692006',\n        name: 'Spread',\n        value: '6',\n        sort: 5,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '207',\n        description:\n            'Spread (basis points relative to benchmark)\\n\\n\\n                        Usually the difference in yield between two switched bonds or a corporate bond traded spread-to-benchmark.',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692007',\n        name: 'TEDPrice',\n        value: '7',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'TED Price',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692008',\n        name: 'TEDYield',\n        value: '8',\n        sort: 7,\n        added: 'FIX.4.4',\n        description: 'TED Yield',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692009',\n        name: 'YieldSpread',\n        value: '9',\n        sort: 8,\n        added: 'FIX.4.4',\n        description: 'Yield Spread (swaps)',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692010',\n        name: 'Yield',\n        value: '10',\n        sort: 9,\n        added: 'FIX.4.4',\n        description: 'Yield',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692011',\n        name: 'PriceSpread',\n        value: '12',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description:\n            'Price spread\\n\\n\\n                        Price spread is expressed based on market convention for the asset being priced or traded. For example: the difference between the prices of a multileg switch or strategy expressed in basis points for a CDS or TBA roll; a price value to be added to a reference price, such as a \"pay up\" for specified pools.',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692012',\n        name: 'ProductTicksInHalves',\n        value: '13',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description: 'Product ticks in halves',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692013',\n        name: 'ProductTicksInFourths',\n        value: '14',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description: 'Product ticks in fourths',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692014',\n        name: 'ProductTicksInEighths',\n        value: '15',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description: 'Product ticks in eighths',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692015',\n        name: 'ProductTicksInSixteenths',\n        value: '16',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description: 'Product ticks in sixteenths',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692016',\n        name: 'ProductTicksInThirtySeconds',\n        value: '17',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description: 'Product ticks in thirty-seconds',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692017',\n        name: 'ProductTicksInSixtyFourths',\n        value: '18',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description: 'Product ticks in sixty-fourths',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692018',\n        name: 'ProductTicksInOneTwentyEighths',\n        value: '19',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description: 'Product ticks in one-twenty-eighths',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692019',\n        name: 'NormalRateRepresentation',\n        value: '20',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description: 'Normal rate representation (e.g. FX rate)',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692020',\n        name: 'InverseRateRepresentation',\n        value: '21',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description: 'Inverse rate representation (e.g. FX rate)',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692021',\n        name: 'BasisPoints',\n        value: '22',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description: 'Basis points\\n\\n\\n                        When the price is not spread based',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692022',\n        name: 'UpFrontPoints',\n        value: '23',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description: 'Up front points\\n\\n\\n                        Used specifically for CDS pricing.',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692023',\n        name: 'InterestRate',\n        value: '24',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description:\n            'Interest rate\\n\\n\\n                        When the price is an interest rate. For example, used with benchmark reference rate.',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '692024',\n        name: 'PercentageOfNotional',\n        value: '25',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '207',\n        description: 'Percentage of notional',\n        tag: 692,\n        type: 'int',\n        codeSet: 'QuotePriceTypeCodeSet',\n    },\n    {\n        id: '694001',\n        name: 'Hit',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Hit/Lift',\n        tag: 694,\n        type: 'int',\n        codeSet: 'QuoteRespTypeCodeSet',\n    },\n    {\n        id: '694002',\n        name: 'Counter',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Counter',\n        tag: 694,\n        type: 'int',\n        codeSet: 'QuoteRespTypeCodeSet',\n    },\n    {\n        id: '694003',\n        name: 'Expired',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Expired',\n        tag: 694,\n        type: 'int',\n        codeSet: 'QuoteRespTypeCodeSet',\n    },\n    {\n        id: '694004',\n        name: 'Cover',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '159',\n        description:\n            \"Cover\\n\\n\\n                        Trade was done with another quote provider. Quote provider's original quoted price was the best price not traded (i.e. the cover price).\",\n        tag: 694,\n        type: 'int',\n        codeSet: 'QuoteRespTypeCodeSet',\n    },\n    {\n        id: '694005',\n        name: 'DoneAway',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '159',\n        description: 'Done away\\n\\n\\n                        Trade was done with another quote provider.',\n        tag: 694,\n        type: 'int',\n        codeSet: 'QuoteRespTypeCodeSet',\n    },\n    {\n        id: '694006',\n        name: 'Pass',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Pass',\n        tag: 694,\n        type: 'int',\n        codeSet: 'QuoteRespTypeCodeSet',\n    },\n    {\n        id: '694007',\n        name: 'EndTrade',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0',\n        addedEP: '68',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '258',\n        description: 'End trade\\n\\n\\n                        Indicates an end to the trade negotiation.',\n        tag: 694,\n        type: 'int',\n        codeSet: 'QuoteRespTypeCodeSet',\n    },\n    {\n        id: '694008',\n        name: 'TimedOut',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '68',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '159',\n        description: 'Timed out',\n        tag: 694,\n        type: 'int',\n        codeSet: 'QuoteRespTypeCodeSet',\n    },\n    {\n        id: '694009',\n        name: 'Tied',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '159',\n        description:\n            \"Tied\\n\\n\\n                        Trade was done with another quote provider. Quote provider's original quoted price was the same as the traded price.\",\n        tag: 694,\n        type: 'int',\n        codeSet: 'QuoteRespTypeCodeSet',\n    },\n    {\n        id: '694010',\n        name: 'TiedCover',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '159',\n        description:\n            \"Tied cover\\n\\n\\n                        Trade was done with another quote provider. Quote provider's original quoted price was the best price not traded. There were other quote provider(s) at the same price.\",\n        tag: 694,\n        type: 'int',\n        codeSet: 'QuoteRespTypeCodeSet',\n    },\n    {\n        id: '694011',\n        name: 'Accept',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '258',\n        description:\n            'Accept\\n\\n\\n                        Used in a response to acknowledge an action communicated by the counterparty.',\n        tag: 694,\n        type: 'int',\n        codeSet: 'QuoteRespTypeCodeSet',\n    },\n    {\n        id: '694012',\n        name: 'TerminateContract',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '258',\n        description:\n            'Terminate contract\\n\\n\\n                        Used to communicate the termination of an existing contract.',\n        tag: 694,\n        type: 'int',\n        codeSet: 'QuoteRespTypeCodeSet',\n    },\n    {\n        id: '703001',\n        name: 'AllocationTradeQty',\n        value: 'ALC',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Allocation Trade Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703002',\n        name: 'OptionAssignment',\n        value: 'AS',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Option Assignment',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703003',\n        name: 'AsOfTradeQty',\n        value: 'ASF',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'As-of Trade Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703004',\n        name: 'DeliveryQty',\n        value: 'DLV',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Delivery Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703005',\n        name: 'ElectronicTradeQty',\n        value: 'ETR',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Electronic Trade Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703006',\n        name: 'OptionExerciseQty',\n        value: 'EX',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Option Exercise Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703007',\n        name: 'EndOfDayQty',\n        value: 'FIN',\n        sort: 7,\n        added: 'FIX.4.4',\n        description: 'End-of-Day Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703008',\n        name: 'IntraSpreadQty',\n        value: 'IAS',\n        sort: 8,\n        added: 'FIX.4.4',\n        description: 'Intra-spread Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703009',\n        name: 'InterSpreadQty',\n        value: 'IES',\n        sort: 9,\n        added: 'FIX.4.4',\n        description: 'Inter-spread Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703010',\n        name: 'AdjustmentQty',\n        value: 'PA',\n        sort: 10,\n        added: 'FIX.4.4',\n        description: 'Adjustment Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703011',\n        name: 'PitTradeQty',\n        value: 'PIT',\n        sort: 11,\n        added: 'FIX.4.4',\n        description: 'Pit Trade Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703012',\n        name: 'StartOfDayQty',\n        value: 'SOD',\n        sort: 12,\n        added: 'FIX.4.4',\n        description: 'Start-of-Day Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703013',\n        name: 'IntegralSplit',\n        value: 'SPL',\n        sort: 13,\n        added: 'FIX.4.4',\n        description: 'Integral Split',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703014',\n        name: 'TransactionFromAssignment',\n        value: 'TA',\n        sort: 14,\n        added: 'FIX.4.4',\n        description: 'Transaction from Assignment',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703015',\n        name: 'TotalTransactionQty',\n        value: 'TOT',\n        sort: 15,\n        added: 'FIX.4.4',\n        description: 'Total Transaction Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703016',\n        name: 'TransactionQuantity',\n        value: 'TQ',\n        sort: 16,\n        added: 'FIX.4.4',\n        description: 'Transaction Quantity',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703017',\n        name: 'TransferTradeQty',\n        value: 'TRF',\n        sort: 17,\n        added: 'FIX.4.4',\n        description: 'Transfer Trade Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703018',\n        name: 'TransactionFromExercise',\n        value: 'TX',\n        sort: 18,\n        added: 'FIX.4.4',\n        description: 'Transaction from Exercise',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703019',\n        name: 'CrossMarginQty',\n        value: 'XM',\n        sort: 19,\n        added: 'FIX.4.4',\n        description: 'Cross Margin Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703020',\n        name: 'ReceiveQuantity',\n        value: 'RCV',\n        sort: 20,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Receive Quantity',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703021',\n        name: 'CorporateActionAdjustment',\n        value: 'CAA',\n        sort: 21,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Corporate Action Adjustment',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703022',\n        name: 'DeliveryNoticeQty',\n        value: 'DN',\n        sort: 22,\n        added: 'FIX.4.4',\n        addedEP: '13',\n        description: 'Delivery Notice Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703023',\n        name: 'ExchangeForPhysicalQty',\n        value: 'EP',\n        sort: 23,\n        added: 'FIX.4.4',\n        addedEP: '13',\n        description: 'Exchange for Physical Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703024',\n        name: 'PrivatelyNegotiatedTradeQty',\n        value: 'PNTN',\n        sort: 24,\n        added: 'FIX.5.0',\n        addedEP: '55',\n        description: 'Privately negotiated Trade Qty (Non-regulated)',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703025',\n        name: 'NetDeltaQty',\n        value: 'DLT',\n        sort: 25,\n        added: 'FIX.5.0SP1',\n        addedEP: '79',\n        description: 'Net Delta Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703026',\n        name: 'CreditEventAdjustment',\n        value: 'CEA',\n        sort: 25,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'Credit Event Adjustment',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703027',\n        name: 'SuccessionEventAdjustment',\n        value: 'SEA',\n        sort: 26,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'Succession Event Adjustment',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703028',\n        name: 'NetQty',\n        value: 'NET',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Net Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703029',\n        name: 'GrossQty',\n        value: 'GRS',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Gross Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703030',\n        name: 'IntradayQty',\n        value: 'ITD',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'Intraday Qty',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703031',\n        name: 'GrossLongNonDeltaAdjustedSwaptionPosition',\n        value: 'NDAS',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Gross non-delta-adjusted swaption position',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703032',\n        name: 'LongDeltaAdjustedPairedSwaptionPosition',\n        value: 'DAS',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Delta-adjusted paired swaption position',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703033',\n        name: 'ExpiringQuantity',\n        value: 'EXP',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '151',\n        description:\n            'Expiring quantity\\n\\n\\n                        The position quantity on expiration day after the application of trade and post trade activity, but prior to the application of exercises and assignments.',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703034',\n        name: 'QuantityNotExercised',\n        value: 'UNEX',\n        sort: 33,\n        added: 'FIX.5.0SP2',\n        addedEP: '151',\n        description:\n            'Quantity not exercised\\n\\n\\n                        The exercise quantity requested that was not allowed, e.g., the exercise quantity requested that exceeded the final long position.',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703035',\n        name: 'RequestedExerciseQuantity',\n        value: 'REQ',\n        sort: 34,\n        added: 'FIX.5.0SP2',\n        addedEP: '151',\n        description:\n            'Requested exercise quantity\\n\\n\\n                        The exercise quantity requested. It may differ from the exercise quantity if it exceeds the final long position.',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703036',\n        name: 'CashFuturesEquivalentQuantity',\n        value: 'CFE',\n        sort: 35,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Cash futures equivalent quantity',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '703037',\n        name: 'LoanOrBorrowedQuantity',\n        value: 'SECLN',\n        sort: 36,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Loan or borrowed quantity\\n\\n\\n                        The number of shares, par value of bonds or commodity contracts on loan or borrowed.',\n        tag: 703,\n        type: 'String',\n        codeSet: 'PosTypeCodeSet',\n    },\n    {\n        id: '706001',\n        name: 'Submitted',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Submitted',\n        tag: 706,\n        type: 'int',\n        codeSet: 'PosQtyStatusCodeSet',\n    },\n    {\n        id: '706002',\n        name: 'Accepted',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Accepted',\n        tag: 706,\n        type: 'int',\n        codeSet: 'PosQtyStatusCodeSet',\n    },\n    {\n        id: '706003',\n        name: 'Rejected',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Rejected',\n        tag: 706,\n        type: 'int',\n        codeSet: 'PosQtyStatusCodeSet',\n    },\n    {\n        id: '707001',\n        name: 'CashAmount',\n        value: 'CASH',\n        sort: 0,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Cash amount (corporate event)',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707002',\n        name: 'CashResidualAmount',\n        value: 'CRES',\n        sort: 1,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Cash residual amount',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707003',\n        name: 'FinalMarkToMarketAmount',\n        value: 'FMTM',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Final mark-to-market amount',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707004',\n        name: 'IncrementalMarkToMarketAmount',\n        value: 'IMTM',\n        sort: 3,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Incremental mark-to-market',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707005',\n        name: 'PremiumAmount',\n        value: 'PREM',\n        sort: 4,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Premium amount',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707006',\n        name: 'StartOfDayMarkToMarketAmount',\n        value: 'SMTM',\n        sort: 5,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Start of day mark-to-market',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707007',\n        name: 'TradeVariationAmount',\n        value: 'TVAR',\n        sort: 6,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Trade variation amount',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707008',\n        name: 'ValueAdjustedAmount',\n        value: 'VADJ',\n        sort: 7,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Value adjusted amount',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707009',\n        name: 'SettlementValue',\n        value: 'SETL',\n        sort: 8,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Settlement value',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707010',\n        name: 'InitialTradeCouponAmount',\n        value: 'ICPN',\n        sort: 9,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Initial trade coupon amount',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707011',\n        name: 'AccruedCouponAmount',\n        value: 'ACPN',\n        sort: 10,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Accrued coupon amount',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707012',\n        name: 'CouponAmount',\n        value: 'CPN',\n        sort: 11,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Coupon amount',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707013',\n        name: 'IncrementalAccruedCoupon',\n        value: 'IACPN',\n        sort: 12,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Incremental accrued coupon',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707014',\n        name: 'CollateralizedMarkToMarket',\n        value: 'CMTM',\n        sort: 13,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Collateralized mark-to-market',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707015',\n        name: 'IncrementalCollateralizedMarkToMarket',\n        value: 'ICMTM',\n        sort: 14,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Incremental collateralized mark-to-market',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707016',\n        name: 'CompensationAmount',\n        value: 'DLV',\n        sort: 15,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Compensation amount',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707017',\n        name: 'TotalBankedAmount',\n        value: 'BANK',\n        sort: 16,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Total banked amount',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707018',\n        name: 'TotalCollateralizedAmount',\n        value: 'COLAT',\n        sort: 17,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Total collateralized amount',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707019',\n        name: 'LongPairedSwapNotionalValue',\n        value: 'LSNV',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Long paired swap or swaption notional value',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707020',\n        name: 'ShortPairedSwapNotionalValue',\n        value: 'SSNV',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Short paired swap or swaption notional value',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707021',\n        name: 'StartOfDayAccruedCoupon',\n        value: 'SACPN',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Start-of-day accrued coupon',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707022',\n        name: 'NetPresentValue',\n        value: 'NPV',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Net present value',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707023',\n        name: 'StartOfDayNetPresentValue',\n        value: 'SNPV',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Start-of-day net present value',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707024',\n        name: 'NetCashFlow',\n        value: 'NCF',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Net cash flow',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707025',\n        name: 'PresentValueOfFees',\n        value: 'PVFEES',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Present value of all fees',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707026',\n        name: 'PresentValueOneBasisPoints',\n        value: 'PV01',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Present value of one basis points\\n\\n\\n                        Change in value if yield curve shifts 0.01%.',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707027',\n        name: 'FiveYearEquivalentNotional',\n        value: '5YREN',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'The five year equivalent notional amount',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707028',\n        name: 'UndiscountedMarkToMarket',\n        value: 'UMTM',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Undiscounted mark-to-market',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707029',\n        name: 'MarkToModel',\n        value: 'MTD',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Mark-to-model',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707030',\n        name: 'MarkToMarketVariance',\n        value: 'VMTM',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Mark-to-market variance',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707031',\n        name: 'MarkToModelVariance',\n        value: 'VMTD',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Mark-to-model variance',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707032',\n        name: 'UpfrontPayment',\n        value: 'UPFRNT',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Upfront payment',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707033',\n        name: 'EndVale',\n        value: 'ENDV',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'End value\\n\\n\\n                        Principal amount of a securities financing transaction on maturity date.',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707034',\n        name: 'OutstandingMarginLoan',\n        value: 'MGNLN',\n        sort: 33,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Outstanding margin loan\\n\\n\\n                        The amount of the outstanding margin loan. In the event that the loan has a short market value, PosAmt(708) would be a negative value.',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '707035',\n        name: 'LoanValue',\n        value: 'LNVL',\n        sort: 34,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Loan value\\n\\n\\n                        The amount of the loan.',\n        tag: 707,\n        type: 'String',\n        codeSet: 'PosAmtTypeCodeSet',\n    },\n    {\n        id: '709001',\n        name: 'Exercise',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Exercise',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709002',\n        name: 'DoNotExercise',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '199',\n        description: 'Do not exercise',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709003',\n        name: 'PositionAdjustment',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '199',\n        description: 'Position adjustment',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709004',\n        name: 'PositionChangeSubmission',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '199',\n        description: 'Position change submission / margin disposition',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709005',\n        name: 'Pledge',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Pledge',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709006',\n        name: 'LargeTraderSubmission',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '13',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '199',\n        description: 'Large trader submission',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709007',\n        name: 'LargePositionsReportingSubmission',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '199',\n        description: 'Large positions reporting submission',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709008',\n        name: 'LongHoldings',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '110',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '199',\n        description: 'Long holdings',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709009',\n        name: 'InternalTransfer',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '199',\n        description:\n            'Internal transfer\\n\\n\\n                        Changes due to transfer of positions within a firm.',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709010',\n        name: 'TransferOfFirm',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '199',\n        description:\n            'Transfer of firm\\n\\n\\n                        Changes due to transfer of all positions of a firm.',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709011',\n        name: 'ExternalTransfer',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '199',\n        description:\n            'External transfer\\n\\n\\n                        Changes due to transfer of positions between firms.',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709012',\n        name: 'CorporateAction',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '199',\n        description: 'Corporate action',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709013',\n        name: 'Notification',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '199',\n        description:\n            'Notification\\n\\n\\n                        Information about a position that has been chosen for assignment.',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709014',\n        name: 'PositionCreation',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '199',\n        description:\n            'Position creation\\n\\n\\n                        Changes due to an option exercise causing a new futures position to be created.',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709015',\n        name: 'Closeout',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '199',\n        description: 'Close out\\n\\n\\n                        Information about a position that has been closed out.',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '709016',\n        name: 'Reopen',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '199',\n        description:\n            'Reopen\\n\\n\\n                        Information about a position that has been reopened, i.e. reversal of a close out.',\n        tag: 709,\n        type: 'int',\n        codeSet: 'PosTransTypeCodeSet',\n    },\n    {\n        id: '712001',\n        name: 'New',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'New\\n\\n\\n                        Used to increment the overall transaction quantity.',\n        tag: 712,\n        type: 'int',\n        codeSet: 'PosMaintActionCodeSet',\n    },\n    {\n        id: '712002',\n        name: 'Replace',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description:\n            'Replace\\n\\n\\n                        Used to override the overall transaction quantity or specific add messages based on the reference ID.',\n        tag: 712,\n        type: 'int',\n        codeSet: 'PosMaintActionCodeSet',\n    },\n    {\n        id: '712003',\n        name: 'Cancel',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description:\n            'Cancel\\n\\n\\n                        Used to remove the overall transaction quantity or specific add messages based on the reference ID.',\n        tag: 712,\n        type: 'int',\n        codeSet: 'PosMaintActionCodeSet',\n    },\n    {\n        id: '712004',\n        name: 'Reverse',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description:\n            'Reverse\\n\\n\\n                        Used to completelly back-out the transaction such that the transaction never existed.',\n        tag: 712,\n        type: 'int',\n        codeSet: 'PosMaintActionCodeSet',\n    },\n    {\n        id: '716001',\n        name: 'Intraday',\n        value: 'ITD',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '1',\n        description: 'Intraday',\n        tag: 716,\n        type: 'String',\n        codeSet: 'SettlSessIDCodeSet',\n    },\n    {\n        id: '716002',\n        name: 'RegularTradingHours',\n        value: 'RTH',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '1',\n        description: 'Regular Trading Hours',\n        tag: 716,\n        type: 'String',\n        codeSet: 'SettlSessIDCodeSet',\n    },\n    {\n        id: '716003',\n        name: 'ElectronicTradingHours',\n        value: 'ETH',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '1',\n        description: 'Electronic Trading Hours',\n        tag: 716,\n        type: 'String',\n        codeSet: 'SettlSessIDCodeSet',\n    },\n    {\n        id: '716004',\n        name: 'EndOfDay',\n        value: 'EOD',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'End Of Day',\n        tag: 716,\n        type: 'String',\n        codeSet: 'SettlSessIDCodeSet',\n    },\n    {\n        id: '718001',\n        name: 'ProcessRequestAsMarginDisposition',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '155',\n        description: 'Process request as margin disposition',\n        tag: 718,\n        type: 'int',\n        codeSet: 'AdjustmentTypeCodeSet',\n    },\n    {\n        id: '718002',\n        name: 'DeltaPlus',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '155',\n        description: 'Delta plus',\n        tag: 718,\n        type: 'int',\n        codeSet: 'AdjustmentTypeCodeSet',\n    },\n    {\n        id: '718003',\n        name: 'DeltaMinus',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '155',\n        description: 'Delta minus',\n        tag: 718,\n        type: 'int',\n        codeSet: 'AdjustmentTypeCodeSet',\n    },\n    {\n        id: '718004',\n        name: 'Final',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Final',\n        tag: 718,\n        type: 'int',\n        codeSet: 'AdjustmentTypeCodeSet',\n    },\n    {\n        id: '718005',\n        name: 'CustomerSpecificPosition',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '155',\n        description: 'Customer specific position',\n        tag: 718,\n        type: 'int',\n        codeSet: 'AdjustmentTypeCodeSet',\n    },\n    {\n        id: '722001',\n        name: 'Accepted',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Accepted',\n        tag: 722,\n        type: 'int',\n        codeSet: 'PosMaintStatusCodeSet',\n    },\n    {\n        id: '722002',\n        name: 'AcceptedWithWarnings',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Accepted With Warnings',\n        tag: 722,\n        type: 'int',\n        codeSet: 'PosMaintStatusCodeSet',\n    },\n    {\n        id: '722003',\n        name: 'Rejected',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Rejected',\n        tag: 722,\n        type: 'int',\n        codeSet: 'PosMaintStatusCodeSet',\n    },\n    {\n        id: '722004',\n        name: 'Completed',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Completed',\n        tag: 722,\n        type: 'int',\n        codeSet: 'PosMaintStatusCodeSet',\n    },\n    {\n        id: '722005',\n        name: 'CompletedWithWarnings',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Completed With Warnings',\n        tag: 722,\n        type: 'int',\n        codeSet: 'PosMaintStatusCodeSet',\n    },\n    {\n        id: '723001',\n        name: 'SuccessfulCompletion',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Successful Completion - no warnings or errors',\n        tag: 723,\n        type: 'int',\n        codeSet: 'PosMaintResultCodeSet',\n    },\n    {\n        id: '723002',\n        name: 'Rejected',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Rejected',\n        tag: 723,\n        type: 'int',\n        codeSet: 'PosMaintResultCodeSet',\n    },\n    {\n        id: '723003',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 723,\n        type: 'int',\n        codeSet: 'PosMaintResultCodeSet',\n    },\n    {\n        id: '724001',\n        name: 'Positions',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Positions',\n        tag: 724,\n        type: 'int',\n        codeSet: 'PosReqTypeCodeSet',\n    },\n    {\n        id: '724002',\n        name: 'Trades',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Trades',\n        tag: 724,\n        type: 'int',\n        codeSet: 'PosReqTypeCodeSet',\n    },\n    {\n        id: '724003',\n        name: 'Exercises',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Exercises',\n        tag: 724,\n        type: 'int',\n        codeSet: 'PosReqTypeCodeSet',\n    },\n    {\n        id: '724004',\n        name: 'Assignments',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Assignments',\n        tag: 724,\n        type: 'int',\n        codeSet: 'PosReqTypeCodeSet',\n    },\n    {\n        id: '724005',\n        name: 'SettlementActivity',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Settlement Activity',\n        tag: 724,\n        type: 'int',\n        codeSet: 'PosReqTypeCodeSet',\n    },\n    {\n        id: '724006',\n        name: 'BackoutMessage',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Backout Message',\n        tag: 724,\n        type: 'int',\n        codeSet: 'PosReqTypeCodeSet',\n    },\n    {\n        id: '724007',\n        name: 'DeltaPositions',\n        value: '6',\n        sort: 7,\n        added: 'FIX.5.0SP1',\n        addedEP: '79',\n        description: 'Delta Positions',\n        tag: 724,\n        type: 'int',\n        codeSet: 'PosReqTypeCodeSet',\n    },\n    {\n        id: '724008',\n        name: 'NetPosition',\n        value: '7',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Net Position',\n        tag: 724,\n        type: 'int',\n        codeSet: 'PosReqTypeCodeSet',\n    },\n    {\n        id: '724009',\n        name: 'LargePositionsReporting',\n        value: '8',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'Large Positions Reporting',\n        tag: 724,\n        type: 'int',\n        codeSet: 'PosReqTypeCodeSet',\n    },\n    {\n        id: '724010',\n        name: 'ExercisePositionReportingSubmission',\n        value: '9',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'Exercise Position Reporting Submission',\n        tag: 724,\n        type: 'int',\n        codeSet: 'PosReqTypeCodeSet',\n    },\n    {\n        id: '724011',\n        name: 'PositionLimitReportingSubmissing',\n        value: '10',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'Position Limit Reporting Submission',\n        tag: 724,\n        type: 'int',\n        codeSet: 'PosReqTypeCodeSet',\n    },\n    {\n        id: '725001',\n        name: 'Inband',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'In-band (default)\\n\\n\\n                        Transport of the request was sent over in-band.',\n        tag: 725,\n        type: 'int',\n        codeSet: 'ResponseTransportTypeCodeSet',\n    },\n    {\n        id: '725002',\n        name: 'OutOfBand',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description:\n            'Out of band\\n\\n\\n                        Pre-arranged out-of-band delivery mechanism (e.g. FTP, HTTP, NDM, etc.) between counterparties. Details specified via ResponseDestination(726).',\n        tag: 725,\n        type: 'int',\n        codeSet: 'ResponseTransportTypeCodeSet',\n    },\n    {\n        id: '728001',\n        name: 'ValidRequest',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Valid request',\n        tag: 728,\n        type: 'int',\n        codeSet: 'PosReqResultCodeSet',\n    },\n    {\n        id: '728002',\n        name: 'InvalidOrUnsupportedRequest',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Invalid or unsupported request',\n        tag: 728,\n        type: 'int',\n        codeSet: 'PosReqResultCodeSet',\n    },\n    {\n        id: '728003',\n        name: 'NoPositionsFoundThatMatchCriteria',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'No positions found that match criteria',\n        tag: 728,\n        type: 'int',\n        codeSet: 'PosReqResultCodeSet',\n    },\n    {\n        id: '728004',\n        name: 'NotAuthorizedToRequestPositions',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Not authorized to request positions',\n        tag: 728,\n        type: 'int',\n        codeSet: 'PosReqResultCodeSet',\n    },\n    {\n        id: '728005',\n        name: 'RequestForPositionNotSupported',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Request for position not supported',\n        tag: 728,\n        type: 'int',\n        codeSet: 'PosReqResultCodeSet',\n    },\n    {\n        id: '728006',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Other\\n\\n\\n                        Use Text(58) for further explanation.',\n        tag: 728,\n        type: 'int',\n        codeSet: 'PosReqResultCodeSet',\n    },\n    {\n        id: '729001',\n        name: 'Completed',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Completed',\n        tag: 729,\n        type: 'int',\n        codeSet: 'PosReqStatusCodeSet',\n    },\n    {\n        id: '729002',\n        name: 'CompletedWithWarnings',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Completed With Warnings',\n        tag: 729,\n        type: 'int',\n        codeSet: 'PosReqStatusCodeSet',\n    },\n    {\n        id: '729003',\n        name: 'Rejected',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Rejected',\n        tag: 729,\n        type: 'int',\n        codeSet: 'PosReqStatusCodeSet',\n    },\n    {\n        id: '731001',\n        name: 'Final',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Final',\n        tag: 731,\n        type: 'int',\n        codeSet: 'SettlPriceTypeCodeSet',\n    },\n    {\n        id: '731002',\n        name: 'Theoretical',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Theoretical',\n        tag: 731,\n        type: 'int',\n        codeSet: 'SettlPriceTypeCodeSet',\n    },\n    {\n        id: '744001',\n        name: 'ProRata',\n        value: 'P',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Pro rata',\n        tag: 744,\n        type: 'char',\n        codeSet: 'AssignmentMethodCodeSet',\n    },\n    {\n        id: '744002',\n        name: 'Random',\n        value: 'R',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Random',\n        tag: 744,\n        type: 'char',\n        codeSet: 'AssignmentMethodCodeSet',\n    },\n    {\n        id: '747001',\n        name: 'Automatic',\n        value: 'A',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Automatic',\n        tag: 747,\n        type: 'char',\n        codeSet: 'ExerciseMethodCodeSet',\n    },\n    {\n        id: '747002',\n        name: 'Manual',\n        value: 'M',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Manual',\n        tag: 747,\n        type: 'char',\n        codeSet: 'ExerciseMethodCodeSet',\n    },\n    {\n        id: '749001',\n        name: 'Successful',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Successful (default)',\n        tag: 749,\n        type: 'int',\n        codeSet: 'TradeRequestResultCodeSet',\n    },\n    {\n        id: '749002',\n        name: 'InvalidOrUnknownInstrument',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Invalid or unknown instrument',\n        tag: 749,\n        type: 'int',\n        codeSet: 'TradeRequestResultCodeSet',\n    },\n    {\n        id: '749003',\n        name: 'InvalidTypeOfTradeRequested',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Invalid type of trade requested',\n        tag: 749,\n        type: 'int',\n        codeSet: 'TradeRequestResultCodeSet',\n    },\n    {\n        id: '749004',\n        name: 'InvalidParties',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Invalid parties',\n        tag: 749,\n        type: 'int',\n        codeSet: 'TradeRequestResultCodeSet',\n    },\n    {\n        id: '749005',\n        name: 'InvalidTransportTypeRequested',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Invalid transport type requested',\n        tag: 749,\n        type: 'int',\n        codeSet: 'TradeRequestResultCodeSet',\n    },\n    {\n        id: '749006',\n        name: 'InvalidDestinationRequested',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Invalid destination requested',\n        tag: 749,\n        type: 'int',\n        codeSet: 'TradeRequestResultCodeSet',\n    },\n    {\n        id: '749007',\n        name: 'TradeRequestTypeNotSupported',\n        value: '8',\n        sort: 7,\n        added: 'FIX.4.4',\n        description: 'TradeRequestType not supported',\n        tag: 749,\n        type: 'int',\n        codeSet: 'TradeRequestResultCodeSet',\n    },\n    {\n        id: '749008',\n        name: 'NotAuthorized',\n        value: '9',\n        sort: 8,\n        added: 'FIX.4.4',\n        description: 'Not authorized',\n        tag: 749,\n        type: 'int',\n        codeSet: 'TradeRequestResultCodeSet',\n    },\n    {\n        id: '749009',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 749,\n        type: 'int',\n        codeSet: 'TradeRequestResultCodeSet',\n    },\n    {\n        id: '750001',\n        name: 'Accepted',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Accepted',\n        tag: 750,\n        type: 'int',\n        codeSet: 'TradeRequestStatusCodeSet',\n    },\n    {\n        id: '750002',\n        name: 'Completed',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Completed',\n        tag: 750,\n        type: 'int',\n        codeSet: 'TradeRequestStatusCodeSet',\n    },\n    {\n        id: '750003',\n        name: 'Rejected',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Rejected',\n        tag: 750,\n        type: 'int',\n        codeSet: 'TradeRequestStatusCodeSet',\n    },\n    {\n        id: '751001',\n        name: 'Successful',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Successful (default)',\n        tag: 751,\n        type: 'int',\n        codeSet: 'TradeReportRejectReasonCodeSet',\n    },\n    {\n        id: '751002',\n        name: 'InvalidPartyInformation',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Invalid party information',\n        tag: 751,\n        type: 'int',\n        codeSet: 'TradeReportRejectReasonCodeSet',\n    },\n    {\n        id: '751003',\n        name: 'UnknownInstrument',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Unknown instrument',\n        tag: 751,\n        type: 'int',\n        codeSet: 'TradeReportRejectReasonCodeSet',\n    },\n    {\n        id: '751004',\n        name: 'UnauthorizedToReportTrades',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Unauthorized to report trades',\n        tag: 751,\n        type: 'int',\n        codeSet: 'TradeReportRejectReasonCodeSet',\n    },\n    {\n        id: '751005',\n        name: 'InvalidTradeType',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Invalid trade type',\n        tag: 751,\n        type: 'int',\n        codeSet: 'TradeReportRejectReasonCodeSet',\n    },\n    {\n        id: '751006',\n        name: 'PriceExceedsCurrentPriceBand',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '136',\n        description: 'Price exceeds current price band',\n        tag: 751,\n        type: 'int',\n        codeSet: 'TradeReportRejectReasonCodeSet',\n    },\n    {\n        id: '751007',\n        name: 'ReferencePriceNotAvailable',\n        value: '6',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '136',\n        description: 'Reference price not available',\n        tag: 751,\n        type: 'int',\n        codeSet: 'TradeReportRejectReasonCodeSet',\n    },\n    {\n        id: '751008',\n        name: 'NotionalValueExceedsThreshold',\n        value: '7',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '136',\n        description: 'Notional value exceeds threshold',\n        tag: 751,\n        type: 'int',\n        codeSet: 'TradeReportRejectReasonCodeSet',\n    },\n    {\n        id: '751009',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 751,\n        type: 'int',\n        codeSet: 'TradeReportRejectReasonCodeSet',\n    },\n    {\n        id: '752001',\n        name: 'SingleSecurity',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Single Security (default if not specified)',\n        tag: 752,\n        type: 'int',\n        codeSet: 'SideMultiLegReportingTypeCodeSet',\n    },\n    {\n        id: '752002',\n        name: 'IndividualLegOfAMultilegSecurity',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Individual leg of a multileg security',\n        tag: 752,\n        type: 'int',\n        codeSet: 'SideMultiLegReportingTypeCodeSet',\n    },\n    {\n        id: '752003',\n        name: 'MultilegSecurity',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Multileg Security',\n        tag: 752,\n        type: 'int',\n        codeSet: 'SideMultiLegReportingTypeCodeSet',\n    },\n    {\n        id: '770001',\n        name: 'ExecutionTime',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Execution time\\n\\n\\n                        Timestamp for the order execution. In the context of US futures markets (CFTC regulated) this is the non-qualified reporting time of order execution.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770002',\n        name: 'TimeIn',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Time in\\n\\n\\n                        Timestamp for receiving an order, quote or trade. In the context of US futures markets (CFTC) this is the timestamp of when the order was received on the trading floor (booth).',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770003',\n        name: 'TimeOut',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Time out\\n\\n\\n                        Timestamp for sending an order, quote or trade. In the context of US futures markets (CFTC) this is the timestamp when the trade was received from the pit.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770004',\n        name: 'BrokerReceipt',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Broker receipt\\n\\n\\n                        Timestamp for a broker receiving an order, quote or trade. In the context of US futures markets (CFTC) this is the time at which the broker received the order.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770005',\n        name: 'BrokerExecution',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Broker execution\\n\\n\\n                        Timestamp for the broker executing an order. In the context of US futures markets (CFTC regulated) this is the time at which a broker executed the order for another broker.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770006',\n        name: 'DeskReceipt',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '9',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Desk receipt\\n\\n\\n                        Timestamp for the transmission of an order to an internal desk or department on the same day the firm received the order.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770007',\n        name: 'SubmissionToClearing',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Submission to clearing\\n\\n\\n                        The timestamp when the trade was officially acknowledged by the Clearing House.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770008',\n        name: 'TimePriority',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Time priority\\n\\n\\n                        A timestamp (manually or electronically) assigned by a market to specify time priority for an order or quote.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770009',\n        name: 'OrderbookEntryTime',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Orderbook entry time\\n\\n\\n                        Timestamp for an order representing the time it was entered in the orderbook of the execution venue. The orderbook entry time cannot change during the lifetime of the order.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770010',\n        name: 'OrderSubmissionTime',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Order submission time\\n\\n\\n                        Time the order was sent by the submitter.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770011',\n        name: 'PubliclyReported',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'Publicly reported\\n\\n\\n                        In the context of MiFID II, this is used to identify the time at which the transaction was first published to the market.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770012',\n        name: 'PublicReportUpdated',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            \"Public report updated\\n\\n\\n                        In the context of MiFID II, this is used to identify the time at which the transaction's publication to the market was last updated\",\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770013',\n        name: 'NonPubliclyReported',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Non-publicly reported',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770014',\n        name: 'NonPublicReportUpdated',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Non-public report updated',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770015',\n        name: 'SubmittedForConfirmation',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Submitted for confirmation',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770016',\n        name: 'UpdatedForConfirmation',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Updated for confirmation',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770017',\n        name: 'Confirmed',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Confirmed',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770018',\n        name: 'UpdatedForClearing',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Updated for clearing',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770019',\n        name: 'Cleared',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Cleared',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770020',\n        name: 'AllocationsSubmitted',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Allocations submitted',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770021',\n        name: 'AllocationsUpdated',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Allocations updated',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770022',\n        name: 'AllocationsCompleted',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '236',\n        description: 'Allocations completed',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770023',\n        name: 'SubmittedToRepository',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Submitted to repository',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770024',\n        name: 'PostTrdContntnEvnt',\n        value: '24',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Post-trade continuation event',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770025',\n        name: 'PostTradeValuation',\n        value: '25',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Post-trade valuation',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770026',\n        name: 'PreviousTimePriority',\n        value: '26',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Previous time priority\\n\\n\\n                        Can be used in conjunction with TrdRegTimestampType(770) = 8 (Time priority) to provide the current and last priority timestamp in a single message.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770027',\n        name: 'IdentifierAssigned',\n        value: '27',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Identifier assigned\\n\\n\\n                        Timestamp for the assignment of a (unique) identifier to an entity (e.g. order, quote, trade).',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770028',\n        name: 'PreviousIdentifierAssigned',\n        value: '28',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Previous identifier assigned\\n\\n\\n                        Timestamp of previous assignment of a (unique) identifier to an entity (e.g. order, quote, trade).',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770029',\n        name: 'OrderCancellationTime',\n        value: '29',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Order cancellation time\\n\\n\\n                        Timestamp for the cancellation of an order or quote.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770030',\n        name: 'OrderModificationTime',\n        value: '30',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Order modification time\\n\\n\\n                        Timestamp for the modification of an order or quote.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770031',\n        name: 'OrderRoutingTime',\n        value: '31',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Order routing time\\n\\n\\n                        Timestamp for the routing of an order to another broker or electronic execution venue.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770032',\n        name: 'TradeCancellationTime',\n        value: '32',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Trade cancellation time\\n\\n\\n                        Timestamp for the cancellation of an execution (ExecType(150) = H (Trade Cancel)) or trade (TradeReportType(856) = 6 (Trade Report Cancel)).',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770033',\n        name: 'TradeModificationTime',\n        value: '33',\n        sort: 33,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Trade modification time\\n\\n\\n                        Timestamp for the modification of an execution (ExecType(150) = G (Trade Correct)) or trade (TradeReportType(856) = 5 (No/Was)).',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770034',\n        name: 'ReferenceTimeForBBO',\n        value: '34',\n        sort: 34,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Reference time for BBO\\n\\nTimestamp for a BBO (best bid/offer) reference price at the level of a national or regional jurisdiction. The national or regional jurisdiction scope should be clarified by the implementation(s) using this code value.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770035',\n        name: 'Affirmed',\n        value: '35',\n        sort: 35,\n        added: 'FIX.Latest',\n        addedEP: '291',\n        description: 'Affirmed',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '770036',\n        name: 'UpdateTime',\n        value: '36',\n        sort: 36,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Update time\\n\\nTimestamp for the last update, e.g. to an aggregated book or to the indicative price or volume of an auction.',\n        tag: 770,\n        type: 'int',\n        codeSet: 'TrdRegTimestampTypeCodeSet',\n    },\n    {\n        id: '773001',\n        name: 'Status',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Status',\n        tag: 773,\n        type: 'int',\n        codeSet: 'ConfirmTypeCodeSet',\n    },\n    {\n        id: '773002',\n        name: 'Confirmation',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Confirmation',\n        tag: 773,\n        type: 'int',\n        codeSet: 'ConfirmTypeCodeSet',\n    },\n    {\n        id: '773003',\n        name: 'ConfirmationRequestRejected',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Confirmation Request Rejected (reason can be stated in Text (58) field)',\n        tag: 773,\n        type: 'int',\n        codeSet: 'ConfirmTypeCodeSet',\n    },\n    {\n        id: '774001',\n        name: 'MismatchedAccount',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '170',\n        description: 'Incorrect or missing account',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774002',\n        name: 'MissingSettlementInstructions',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '170',\n        description: 'Incorrect or missing settlement instructions',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774003',\n        name: 'UnknownOrMissingIndividualAllocId',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Unknown or missing IndividualAllocId(467)',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774004',\n        name: 'TransactionNotRecognized',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Transaction not recognized',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774005',\n        name: 'DuplicateTransaction',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Duplicate transaction',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774006',\n        name: 'IncorrectOrMissingInstrument',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing instrument',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774007',\n        name: 'IncorrectOrMissingPrice',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing price',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774008',\n        name: 'IncorrectOrMissingCommission',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing commission',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774009',\n        name: 'IncorrectOrMissingSettlDate',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing settlement date',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774010',\n        name: 'IncorrectOrMissingFundIDOrFundName',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing fund ID or fund name',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774011',\n        name: 'IncorrectOrMissingQuantity',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing quantity',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774012',\n        name: 'IncorrectOrMissingFees',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing fees',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774013',\n        name: 'IncorrectOrMissingTax',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing tax',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774014',\n        name: 'IncorrectOrMissingParty',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing party',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774015',\n        name: 'IncorrectOrMissingSide',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing side',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774016',\n        name: 'IncorrectOrMissingNetMoney',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing net-money',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774017',\n        name: 'IncorrectOrMissingTradeDate',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing trade date',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774018',\n        name: 'IncorrectOrMissingSettlCcyInstructions',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing settlement currency instructions',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774019',\n        name: 'IncorrectOrMissingCapacity',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Incorrect or missing capacity',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '774020',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '170',\n        description: 'Other\\n\\n\\n                        Use Text(58) for further reject reasons.',\n        tag: 774,\n        type: 'int',\n        codeSet: 'ConfirmRejReasonCodeSet',\n    },\n    {\n        id: '775001',\n        name: 'RegularBooking',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Regular booking',\n        tag: 775,\n        type: 'int',\n        codeSet: 'BookingTypeCodeSet',\n    },\n    {\n        id: '775002',\n        name: 'CFD',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'CFD (Contract for difference)',\n        tag: 775,\n        type: 'int',\n        codeSet: 'BookingTypeCodeSet',\n    },\n    {\n        id: '775003',\n        name: 'TotalReturnSwap',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Total Return Swap',\n        tag: 775,\n        type: 'int',\n        codeSet: 'BookingTypeCodeSet',\n    },\n    {\n        id: '780001',\n        name: 'UseDefaultInstructions',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Use default instructions',\n        tag: 780,\n        type: 'int',\n        codeSet: 'AllocSettlInstTypeCodeSet',\n    },\n    {\n        id: '780002',\n        name: 'DeriveFromParametersProvided',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Derive from parameters provided',\n        tag: 780,\n        type: 'int',\n        codeSet: 'AllocSettlInstTypeCodeSet',\n    },\n    {\n        id: '780003',\n        name: 'FullDetailsProvided',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Full details provided',\n        tag: 780,\n        type: 'int',\n        codeSet: 'AllocSettlInstTypeCodeSet',\n    },\n    {\n        id: '780004',\n        name: 'SSIDBIDsProvided',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'SSI DB IDs provided',\n        tag: 780,\n        type: 'int',\n        codeSet: 'AllocSettlInstTypeCodeSet',\n    },\n    {\n        id: '780005',\n        name: 'PhoneForInstructions',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Phone for instructions',\n        tag: 780,\n        type: 'int',\n        codeSet: 'AllocSettlInstTypeCodeSet',\n    },\n    {\n        id: '787001',\n        name: 'Cash',\n        value: 'C',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Cash',\n        tag: 787,\n        type: 'char',\n        codeSet: 'DlvyInstTypeCodeSet',\n    },\n    {\n        id: '787002',\n        name: 'Securities',\n        value: 'S',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Securities',\n        tag: 787,\n        type: 'char',\n        codeSet: 'DlvyInstTypeCodeSet',\n    },\n    {\n        id: '788001',\n        name: 'Overnight',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Overnight',\n        tag: 788,\n        type: 'int',\n        codeSet: 'TerminationTypeCodeSet',\n    },\n    {\n        id: '788002',\n        name: 'Term',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Term',\n        tag: 788,\n        type: 'int',\n        codeSet: 'TerminationTypeCodeSet',\n    },\n    {\n        id: '788003',\n        name: 'Flexible',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Flexible',\n        tag: 788,\n        type: 'int',\n        codeSet: 'TerminationTypeCodeSet',\n    },\n    {\n        id: '788004',\n        name: 'Open',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Open',\n        tag: 788,\n        type: 'int',\n        codeSet: 'TerminationTypeCodeSet',\n    },\n    {\n        id: '792001',\n        name: 'UnableToProcessRequest',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Unable to process request',\n        tag: 792,\n        type: 'int',\n        codeSet: 'SettlInstReqRejCodeCodeSet',\n    },\n    {\n        id: '792002',\n        name: 'UnknownAccount',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Unknown account',\n        tag: 792,\n        type: 'int',\n        codeSet: 'SettlInstReqRejCodeCodeSet',\n    },\n    {\n        id: '792003',\n        name: 'NoMatchingSettlementInstructionsFound',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'No matching settlement instructions found',\n        tag: 792,\n        type: 'int',\n        codeSet: 'SettlInstReqRejCodeCodeSet',\n    },\n    {\n        id: '792004',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 792,\n        type: 'int',\n        codeSet: 'SettlInstReqRejCodeCodeSet',\n    },\n    {\n        id: '794001',\n        name: 'PreliminaryRequestToIntermediary',\n        value: '2',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Preliminary request to intermediary',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794002',\n        name: 'SellsideCalculatedUsingPreliminary',\n        value: '3',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Sellside calculated using preliminary (includes MiscFees and NetMoney)',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794003',\n        name: 'SellsideCalculatedWithoutPreliminary',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description:\n            'Sellside calculated without preliminary (sent unsolicited by sellside, includes MiscFees and NetMoney)',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794004',\n        name: 'WarehouseRecap',\n        value: '5',\n        sort: 4,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Warehouse recap',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794005',\n        name: 'RequestToIntermediary',\n        value: '8',\n        sort: 5,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Request to intermediary',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794006',\n        name: 'Accept',\n        value: '9',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '118',\n        description: 'Accept',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794007',\n        name: 'Reject',\n        value: '10',\n        sort: 7,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '118',\n        description: 'Reject',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794008',\n        name: 'AcceptPending',\n        value: '11',\n        sort: 8,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '118',\n        description: 'Accept Pending',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794009',\n        name: 'Complete',\n        value: '12',\n        sort: 9,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '118',\n        description: 'Complete',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794010',\n        name: 'ReversePending',\n        value: '14',\n        sort: 10,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '118',\n        description: 'Reverse Pending',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794011',\n        name: 'Giveup',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Give-up',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794012',\n        name: 'Takeup',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Take-up',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794013',\n        name: 'Reversal',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Reversal',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794014',\n        name: 'Alleged',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Alleged reversal',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '794015',\n        name: 'SubAllocationGiveup',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Sub-allocation give-up',\n        tag: 794,\n        type: 'int',\n        codeSet: 'AllocReportTypeCodeSet',\n    },\n    {\n        id: '796001',\n        name: 'OriginalDetailsIncomplete',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Original details incomplete/incorrect',\n        tag: 796,\n        type: 'int',\n        codeSet: 'AllocCancReplaceReasonCodeSet',\n    },\n    {\n        id: '796002',\n        name: 'ChangeInUnderlyingOrderDetails',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Change in underlying order details',\n        tag: 796,\n        type: 'int',\n        codeSet: 'AllocCancReplaceReasonCodeSet',\n    },\n    {\n        id: '796003',\n        name: 'CancelledByGiveupFirm',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Cancelled by give-up firm',\n        tag: 796,\n        type: 'int',\n        codeSet: 'AllocCancReplaceReasonCodeSet',\n    },\n    {\n        id: '796004',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 796,\n        type: 'int',\n        codeSet: 'AllocCancReplaceReasonCodeSet',\n    },\n    {\n        id: '798001',\n        name: 'CarriedCustomerSide',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Account is carried pn customer side of books',\n        tag: 798,\n        type: 'int',\n        codeSet: 'AllocAccountTypeCodeSet',\n    },\n    {\n        id: '798002',\n        name: 'CarriedNonCustomerSide',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Account is carried on non-customer side of books',\n        tag: 798,\n        type: 'int',\n        codeSet: 'AllocAccountTypeCodeSet',\n    },\n    {\n        id: '798003',\n        name: 'HouseTrader',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'House trader',\n        tag: 798,\n        type: 'int',\n        codeSet: 'AllocAccountTypeCodeSet',\n    },\n    {\n        id: '798004',\n        name: 'FloorTrader',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Floor trader',\n        tag: 798,\n        type: 'int',\n        codeSet: 'AllocAccountTypeCodeSet',\n    },\n    {\n        id: '798005',\n        name: 'CarriedNonCustomerSideCrossMargined',\n        value: '6',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Account is carried on non-customer side of books and is cross margined',\n        tag: 798,\n        type: 'int',\n        codeSet: 'AllocAccountTypeCodeSet',\n    },\n    {\n        id: '798006',\n        name: 'HouseTraderCrossMargined',\n        value: '7',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Account is house trader and is cross margined',\n        tag: 798,\n        type: 'int',\n        codeSet: 'AllocAccountTypeCodeSet',\n    },\n    {\n        id: '798007',\n        name: 'JointBackOfficeAccount',\n        value: '8',\n        sort: 7,\n        added: 'FIX.4.4',\n        description: 'Joint back office account (JBO)',\n        tag: 798,\n        type: 'int',\n        codeSet: 'AllocAccountTypeCodeSet',\n    },\n    {\n        id: '803001',\n        name: 'Firm',\n        value: '1',\n        sort: 0,\n        added: 'FIX.4.4',\n        description: 'Firm',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803002',\n        name: 'Person',\n        value: '2',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Person',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803003',\n        name: 'System',\n        value: '3',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'System',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803004',\n        name: 'Application',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Application',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803005',\n        name: 'FullLegalNameOfFirm',\n        value: '5',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Full legal name of firm',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803006',\n        name: 'PostalAddress',\n        value: '6',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Postal address',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803007',\n        name: 'PhoneNumber',\n        value: '7',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Phone number',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803008',\n        name: 'EmailAddress',\n        value: '8',\n        sort: 7,\n        added: 'FIX.4.4',\n        description: 'Email address',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803009',\n        name: 'ContactName',\n        value: '9',\n        sort: 8,\n        added: 'FIX.4.4',\n        description: 'Contact name',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803010',\n        name: 'SecuritiesAccountNumber',\n        value: '10',\n        sort: 9,\n        added: 'FIX.4.4',\n        description: 'Securities account number (for settlement instructions)',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803011',\n        name: 'RegistrationNumber',\n        value: '11',\n        sort: 10,\n        added: 'FIX.4.4',\n        description: 'Registration number (for settlement instructions and confirmations)',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803012',\n        name: 'RegisteredAddressForConfirmation',\n        value: '12',\n        sort: 11,\n        added: 'FIX.4.4',\n        description: 'Registered address (for confirmation purposes)',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803013',\n        name: 'RegulatoryStatus',\n        value: '13',\n        sort: 12,\n        added: 'FIX.4.4',\n        description: 'Regulatory status (for confirmation purposes)',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803014',\n        name: 'RegistrationName',\n        value: '14',\n        sort: 13,\n        added: 'FIX.4.4',\n        description: 'Registration name (for settlement instructions)',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803015',\n        name: 'CashAccountNumber',\n        value: '15',\n        sort: 14,\n        added: 'FIX.4.4',\n        description: 'Cash account number (for settlement instructions)',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803016',\n        name: 'BIC',\n        value: '16',\n        sort: 15,\n        added: 'FIX.4.4',\n        description: 'BIC',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803017',\n        name: 'CSDParticipantMemberCode',\n        value: '17',\n        sort: 16,\n        added: 'FIX.4.4',\n        description: 'CSD participant member code',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803018',\n        name: 'RegisteredAddress',\n        value: '18',\n        sort: 17,\n        added: 'FIX.4.4',\n        description: 'Registered address',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803019',\n        name: 'FundAccountName',\n        value: '19',\n        sort: 18,\n        added: 'FIX.4.4',\n        description: 'Fund account name',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803020',\n        name: 'TelexNumber',\n        value: '20',\n        sort: 19,\n        added: 'FIX.4.4',\n        description: 'Telex number',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803021',\n        name: 'FaxNumber',\n        value: '21',\n        sort: 20,\n        added: 'FIX.4.4',\n        description: 'Fax number',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803022',\n        name: 'SecuritiesAccountName',\n        value: '22',\n        sort: 21,\n        added: 'FIX.4.4',\n        description: 'Securities account name',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803023',\n        name: 'CashAccountName',\n        value: '23',\n        sort: 22,\n        added: 'FIX.4.4',\n        description: 'Cash account name',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803024',\n        name: 'Department',\n        value: '24',\n        sort: 23,\n        added: 'FIX.4.4',\n        description: 'Department',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803025',\n        name: 'LocationDesk',\n        value: '25',\n        sort: 24,\n        added: 'FIX.4.4',\n        description: 'Location desk',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803026',\n        name: 'PositionAccountType',\n        value: '26',\n        sort: 25,\n        added: 'FIX.4.4',\n        description: 'Position account type',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803027',\n        name: 'SecurityLocateID',\n        value: '27',\n        sort: 26,\n        added: 'FIX.4.4',\n        addedEP: '1',\n        description: 'Security locate ID',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803028',\n        name: 'MarketMaker',\n        value: '28',\n        sort: 27,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Market maker',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803029',\n        name: 'EligibleCounterparty',\n        value: '29',\n        sort: 28,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Eligible counterparty',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803030',\n        name: 'ProfessionalClient',\n        value: '30',\n        sort: 29,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Professional client',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803031',\n        name: 'Location',\n        value: '31',\n        sort: 30,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Location',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803032',\n        name: 'ExecutionVenue',\n        value: '32',\n        sort: 31,\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Execution venue',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803033',\n        name: 'CurrencyDeliveryIdentifier',\n        value: '33',\n        sort: 32,\n        added: 'FIX.5.0',\n        addedEP: '44',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '103',\n        description: 'Currency delivery identifier',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803034',\n        name: 'AddressCity',\n        value: '34',\n        sort: 33,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'Address City',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803035',\n        name: 'AddressStateOrProvince',\n        value: '35',\n        sort: 34,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'Address State/Province',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803036',\n        name: 'AddressPostalCode',\n        value: '36',\n        sort: 35,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'Address Postal Code',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803037',\n        name: 'AddressStreet',\n        value: '37',\n        sort: 36,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'Address Street',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803038',\n        name: 'AddressISOCountryCode',\n        value: '38',\n        sort: 37,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'Address Country (ISO country code)',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803039',\n        name: 'ISOCountryCode',\n        value: '39',\n        sort: 38,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'ISO country code',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803040',\n        name: 'MarketSegment',\n        value: '40',\n        sort: 39,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description: 'Market segment',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803041',\n        name: 'CustomerAccountType',\n        value: '41',\n        sort: 40,\n        added: 'FIX.5.0SP2',\n        addedEP: '155',\n        description: 'Customer account type',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803042',\n        name: 'OmnibusAccount',\n        value: '42',\n        sort: 41,\n        added: 'FIX.5.0SP2',\n        addedEP: '155',\n        description: 'Omnibus account',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803043',\n        name: 'FundsSegregationType',\n        value: '43',\n        sort: 42,\n        added: 'FIX.5.0SP2',\n        addedEP: '155',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Funds segregation type',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803044',\n        name: 'GuaranteeFund',\n        value: '44',\n        sort: 43,\n        added: 'FIX.5.0SP2',\n        addedEP: '157',\n        description:\n            'Guarantee fund\\n\\n\\n                        Identifies a guarantee fund related to an account. Used when one account has multiple funds of collateral, each guaranteeing different positions. Can be used for PartyRole(452) = Customer Account(24).',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803045',\n        name: 'SwapDealer',\n        value: '45',\n        sort: 44,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description:\n            'Swap dealer\\n\\n\\n                        The US regulator\\'s defined term for identifying the trade counterparty as \"any person who holds itself out as a dealer in swaps, makes a market in swaps, regularly enters into swaps with counterparties as an ordinary course of business for its own account, or engages in activity causing itself to be commonly known in the trade as a dealer or market maker in swaps\".',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803046',\n        name: 'MajorParticipant',\n        value: '46',\n        sort: 45,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description:\n            'Major participant\\n\\n\\n                        When PartySubID(523)=Y the counterparty is not the swap dealer but is a major swap participant as defined in the regulations.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803047',\n        name: 'FinancialEntity',\n        value: '47',\n        sort: 46,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Financial entity\\n\\n\\n                        When PartySubID(523)=Y the counterparty is neither a swap dealer nor a major swap participant but is a financial entity as defined in the regulations.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803048',\n        name: 'USPerson',\n        value: '48',\n        sort: 47,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'U.S. person\\n\\n\\n                        A legal term referring to any U.S. person or legal entity anywhere in the world that should be taxed under U.S. law.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803049',\n        name: 'ReportingEntityIndicator',\n        value: '49',\n        sort: 48,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'Reporting entity indicator\\n\\n\\n                        Indicates the entity obligated or delegated to report to their regulator, a non-regulatory agency or data repository. Set PartySubID(523)=Y if true.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803050',\n        name: 'ElectedClearingRequirementException',\n        value: '50',\n        sort: 49,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Elected clearing requirement exception',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803051',\n        name: 'BusinessCenter',\n        value: '51',\n        sort: 50,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Business center',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803052',\n        name: 'ReferenceText',\n        value: '52',\n        sort: 51,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference text',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803053',\n        name: 'ShortMarkingExemptAccount',\n        value: '53',\n        sort: 52,\n        added: 'FIX.5.0SP2',\n        addedEP: '164',\n        description: 'Short-marking exempt account',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803054',\n        name: 'ParentFirmIdentifier',\n        value: '54',\n        sort: 53,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Parent firm identifier\\n\\n\\n                        Implementation-specific identifier of this party's parent entity.\",\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803055',\n        name: 'ParentFirmName',\n        value: '55',\n        sort: 54,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Parent firm name\\n\\n\\n                        Full name of this party's parent entity.\",\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803056',\n        name: 'DealIdentifier',\n        value: '56',\n        sort: 55,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Deal identifier\\n\\n\\n                        The internal identifier assigned to the trade by this party, particularly by a Clearing Organization.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803057',\n        name: 'SystemTradeID',\n        value: '57',\n        sort: 56,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'System trade identifier',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803058',\n        name: 'SystemTradeSubID',\n        value: '58',\n        sort: 57,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'System trade sub-identifier',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803059',\n        name: 'FCMCode',\n        value: '59',\n        sort: 58,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Futures Commission Merchant (FCM) code\\n\\n\\n                        The FCM's code or identifier in relation to the PartyRole(452). For example, if PartyRole(452) is the exchange or clearinghouse, the FCM code/ID specified in PartySubID(523) is the FCM's identifier at the exchange or clearinghouse.\",\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803060',\n        name: 'DlvryTrmlCode',\n        value: '60',\n        sort: 59,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Delivery terminal customer account/code\\n\\n\\n                        Usually used for gas delivery to identify whose account the gas is allocated to at the delivery terminal. Often referred to as \"HUB\" code.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803061',\n        name: 'VolntyRptEntity',\n        value: '61',\n        sort: 60,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Voluntary reporting entity\\n\\n\\n                        The entity voluntarily reporting the trade to the regulator. Set PartySubID(523)=Y if true.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803062',\n        name: 'RptObligJursdctn',\n        value: '62',\n        sort: 61,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Reporting obligation jurisdiction\\n\\n\\n                        For a trade that falls under multiple jurisdictions this may be used to identify, through PartySubID(523), the reporting jurisdiction to which the party is obligated to report.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803063',\n        name: 'VolntyRptJursdctn',\n        value: '63',\n        sort: 62,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Voluntary reporting jurisdiction\\n\\n\\n                        For a trade that falls under multiple jurisdictions this may be used to identify, through PartySubID(523), the regulatory jurisdiction to which the party is submitting a voluntary report.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803064',\n        name: 'CompanyActivities',\n        value: '64',\n        sort: 63,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description:\n            'Company activities\\n\\n\\n                        For regulatory reporting. ID values include: A = Assurance undertaking authorized in accordance with Directive 2002/83/EC C=Credit institution authorized in accordance with Directive 2006/48/EC F=Investment firm in accordance with Directive 2004/39/EC I=Insurance undertaking authorized in accordance with Directive 73/239/EC L=Alternative investment fund managed by AIFMs authorized or registered in accordance with Directive 2011/61/EC O=Institution for occupational retirement provision within the meaning of Article 6(a0 of Directive 2003/41/EC R=Reinsurance undertaking authorized in accordance with Directive 2005/68/EC U=UCITS and its management company, authorized in accordance with Directive 2009/65/EC or blank in case of coverage by LEI or in case of non-financial counterparties.\\n\\n\\n                        In the context of EU SFTR reporting use the appropriate 4- or 1-character code noted in the regulations. See SFTR ITS \"Commission Implementing Regulation (EU) 2019/363\" Annexes 1 and 2 for values.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803065',\n        name: 'EEAreaDomiciled',\n        value: '65',\n        sort: 64,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'European Economic Area domiciled\\n\\n\\n                        ID values: Y or N',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803066',\n        name: 'ContractLinked',\n        value: '66',\n        sort: 65,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Contract linked to commercial or treasury financing for this counterparty\\n\\n\\n                        ID values: Y or N',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803067',\n        name: 'ContractAbove',\n        value: '67',\n        sort: 66,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Contract above clearing threshold for this counterparty\\n\\n\\n                        ID values: Y or N',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803068',\n        name: 'VolntyRptPty',\n        value: '68',\n        sort: 67,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Voluntary reporting party\\n\\n\\n                        When PartySubID(523)=Y, identifies that the trading party is reporting voluntarily when VoluntaryRegulatoryReport(1935)=Y.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803069',\n        name: 'EndUser',\n        value: '69',\n        sort: 68,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'End user\\n\\n\\n                        When PartySubID(523)=Y, the counterparty is neither the swap dealer, major swap participant nor financial entity as defined in the regulations.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803070',\n        name: 'LocationOrJurisdiction',\n        value: '70',\n        sort: 69,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '193',\n        description:\n            'Location or jurisdiction\\n\\n\\n                        One or more instances may be used in combination with PartySubIDType(803) = 49 (Reporting entity indicator) or 102 (Data repository) to identify the jurisdiction, countries, regions or provinces for which the party is a reporting entity or data repository when that characteristic is ambiguous or where there are multiple locations. The party sub-ID value is either a jurisdiction acronym, a 2-character ISO 3166 country code, or a hyphenated combination of the country code and the standard post-office abbreviation for province, state or region if necessary. E.g. \"US\" for United States or \"CA-QC\" for Quebec Canada.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803071',\n        name: 'DerivativesDealer',\n        value: '71',\n        sort: 70,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Derivatives dealer\\n\\n\\n                        Indicates whether the party is a derivatives dealer or not (Y/N). The Canadian regulator\\'s defined term for identifying the trade counterparty as \"a person or company engaging in or holding himself, herself or itself out as engaging in the business of trading in derivatives in Ontario as principal or agent\".',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803072',\n        name: 'Domicile',\n        value: '72',\n        sort: 71,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Domicile\\n\\n\\n                        Country and optionally province, state or region of domicile. The party sub-ID value is either a 2-character ISO 3166 country code or a hyphenated combination of the country code and the standard post-office abbreviation of province, state or region if necessary. E.g. \"US\" for United States or \"CA-QC\" for Quebec Canada.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803073',\n        name: 'ExemptFromRecognition',\n        value: '73',\n        sort: 72,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Exempt from recognition\\n\\n\\n                        Used with party role 21 \"Clearing Organization\" to indicate exemption (Y/N). Identifies a clearing agency as exempt from oversight in Ontario, i.e. one that 1) only provides limited services and does not present significant risks or 2) is foreign-based, indends to operate in Ontario but is subject to regulatory oversight in another jurisdiction.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803074',\n        name: 'Payer',\n        value: '74',\n        sort: 73,\n        added: 'FIX.5.0SP2',\n        addedEP: '203',\n        description:\n            \"Payer\\n\\n\\n                        Identifies the party as the payer of a particular payment stream or bullet payment by quoting the stream's StreamDesc(40051) (or LegStreamDesc(40243) or UnderlyingStreamDesc(40542)) or payment's PaymentDesc(43087) in the associated party sub-identifier field.\",\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803075',\n        name: 'Receiver',\n        value: '75',\n        sort: 74,\n        added: 'FIX.5.0SP2',\n        addedEP: '203',\n        description:\n            \"Receiver\\n\\n\\n                        Identifies the party as the receiver of a particular payment stream or bullet payment by quoting the stream's StreamDesc(40051) (or LegStreamDesc(40243) or UnderlyingStreamDesc(40542)) or payment's PaymentDesc(43087) in the associated party sub-identifier field.\",\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803076',\n        name: 'SystematicInternaliser',\n        value: '76',\n        sort: 75,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        description:\n            'Systematic Internaliser (SI)\\n\\n\\n                        In the context of ESMA reporting, this is used to indicate whether the specified party is a Systematic Internaliser or not for the security defined in the Instrument component (Y/N).',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803077',\n        name: 'PublishingEntityIndicator',\n        value: '77',\n        sort: 76,\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description:\n            'Publishing entity indicator\\n\\n\\n                        Indicates the entity obligated or delegated to publish to the market. Set PartySubID(523)=Y if true.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803078',\n        name: 'FirstName',\n        value: '78',\n        sort: 77,\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        description:\n            'First name\\n\\n\\n                        The first name(s) of a natural person. If multiple names, separate entries by a comma.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803079',\n        name: 'Surname',\n        value: '79',\n        sort: 78,\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        description:\n            'Surname\\n\\n\\n                        The surname(s) or lastname(s) of a natural person. If multiple names, separate entries by a comma.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803080',\n        name: 'DateOfBirth',\n        value: '80',\n        sort: 79,\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        description:\n            'Date of birth\\n\\n\\n                        The date of birth of a natural person in the format YYYYMMDD.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803081',\n        name: 'OrderTransmittingFirm',\n        value: '81',\n        sort: 80,\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        description:\n            'Order transmitting firm\\n\\n\\n                        Identifies whether the party specified in PartyID(448) is the firm that transmitted the order. In the context of RTS 22 Article 4, when \"true\" the PartySubID(523)=Y shall be set \"by the transmitting firm within the transmitting firm\\'s report where conditions for transmission specified in Article 4 were not satisfied.\"',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803082',\n        name: 'OrderTransmittingFirmBuyer',\n        value: '82',\n        sort: 81,\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        description:\n            'Order transmitting firm for buyer\\n\\n\\n                        Identifies the firm that transmitted the order for the buyer. In the context of ESMA RTS 22, PartySubID(523)=Y is used to indicate the firm identified in PartyID(448) is the firm that transmitted the order for the buyer. \"This shall be populated by the receiving firm within the receiving firm\\'s report with the identification code provided by the transmitting firm.\"',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803083',\n        name: 'OrderTransmitterSeller',\n        value: '83',\n        sort: 82,\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        description:\n            'Order transmitter for seller\\n\\n\\n                        Identifies the order transmitting firm for the seller. In the context of ESMA RTS 22, PartySubID(523)=Y is used to indicate the firm identified in PartyID(448) is the firm that transmitted the order for the seller. \"This shall be populated by the receiving firm within the receiving firm\\'s report with the identification code provided by the transmitting firm.\"',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803084',\n        name: 'LegalEntityIdentifier',\n        value: '84',\n        sort: 83,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Legal Entity Identifier (ISO 17442) LEI',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803085',\n        name: 'SubSectorClassification',\n        value: '85',\n        sort: 84,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Sub-sector classification\\n\\n\\n                        Supplemental to party sub-ID type \"64\" (Company activities) for regulatory reporting. For EU SFTR reporting use the appropriate 4-character code noted in the regulations applying the conditional association rules. See SFTR ITS \"Commission Implementing Regulation (EU) 2019/363\" Annexes 1 and 2 for values.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803086',\n        name: 'PartySide',\n        value: '86',\n        sort: 85,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Party side\\n\\n\\n                        May be used, when appropriate, to explicitly indicate the transaction side of the party, e.g. Buyer, Seller, Lender, Borrower, Maker, Taker, etc. in the ID. In the context of EU SFTR reporting, use values as required by SFTR, \"GIVE\" and \"TAKE\" in the ID, to identify collateral giver and taker.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803087',\n        name: 'LegalRegistrationCountry',\n        value: '87',\n        sort: 86,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Legal registration country\\n\\n\\n                        ISO Country Code where the registered office of the party is located as specified in the LEI reference data.',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803088',\n        name: 'AlgorithmVersion',\n        value: '88',\n        sort: 87,\n        added: 'FIX.Latest',\n        addedEP: '303',\n        description:\n            'Algorithm version\\n\\nUnique identifier for the version of a previously defined algorithm identified in PartyID(448).',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '803089',\n        name: 'CertificateRegistrationStatus',\n        value: '89',\n        sort: 88,\n        added: 'FIX.Latest',\n        addedEP: '303',\n        description:\n            'Certificate registration status\\n\\nUsed to indicate the current status of a certificate that is registered with multiple venues (PartyRole(452)=73 (Execution venue)). In the context of algo certification, use values \"SUBMITTED\", \"REJECTED\", \"REGISTERED\", \"REVOKED\".',\n        tag: 803,\n        type: 'int',\n        codeSet: 'PartySubIDTypeCodeSet',\n    },\n    {\n        id: '808001',\n        name: 'PendingAccept',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Pending Accept',\n        tag: 808,\n        type: 'int',\n        codeSet: 'AllocIntermedReqTypeCodeSet',\n    },\n    {\n        id: '808002',\n        name: 'PendingRelease',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Pending Release',\n        tag: 808,\n        type: 'int',\n        codeSet: 'AllocIntermedReqTypeCodeSet',\n    },\n    {\n        id: '808003',\n        name: 'PendingReversal',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Pending Reversal',\n        tag: 808,\n        type: 'int',\n        codeSet: 'AllocIntermedReqTypeCodeSet',\n    },\n    {\n        id: '808004',\n        name: 'Accept',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Accept',\n        tag: 808,\n        type: 'int',\n        codeSet: 'AllocIntermedReqTypeCodeSet',\n    },\n    {\n        id: '808005',\n        name: 'BlockLevelReject',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Block Level Reject',\n        tag: 808,\n        type: 'int',\n        codeSet: 'AllocIntermedReqTypeCodeSet',\n    },\n    {\n        id: '808006',\n        name: 'AccountLevelReject',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Account Level Reject',\n        tag: 808,\n        type: 'int',\n        codeSet: 'AllocIntermedReqTypeCodeSet',\n    },\n    {\n        id: '814001',\n        name: 'NoActionTaken',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'No Action Taken',\n        tag: 814,\n        type: 'int',\n        codeSet: 'ApplQueueResolutionCodeSet',\n    },\n    {\n        id: '814002',\n        name: 'QueueFlushed',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Queue Flushed',\n        tag: 814,\n        type: 'int',\n        codeSet: 'ApplQueueResolutionCodeSet',\n    },\n    {\n        id: '814003',\n        name: 'OverlayLast',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Overlay Last',\n        tag: 814,\n        type: 'int',\n        codeSet: 'ApplQueueResolutionCodeSet',\n    },\n    {\n        id: '814004',\n        name: 'EndSession',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'End Session',\n        tag: 814,\n        type: 'int',\n        codeSet: 'ApplQueueResolutionCodeSet',\n    },\n    {\n        id: '815001',\n        name: 'NoActionTaken',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'No Action Taken',\n        tag: 815,\n        type: 'int',\n        codeSet: 'ApplQueueActionCodeSet',\n    },\n    {\n        id: '815002',\n        name: 'QueueFlushed',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Queue Flushed',\n        tag: 815,\n        type: 'int',\n        codeSet: 'ApplQueueActionCodeSet',\n    },\n    {\n        id: '815003',\n        name: 'OverlayLast',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Overlay Last',\n        tag: 815,\n        type: 'int',\n        codeSet: 'ApplQueueActionCodeSet',\n    },\n    {\n        id: '815004',\n        name: 'EndSession',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'End Session',\n        tag: 815,\n        type: 'int',\n        codeSet: 'ApplQueueActionCodeSet',\n    },\n    {\n        id: '819001',\n        name: 'NoAveragePricing',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'No average pricing',\n        tag: 819,\n        type: 'int',\n        codeSet: 'AvgPxIndicatorCodeSet',\n    },\n    {\n        id: '819002',\n        name: 'Trade',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Trade is part of an average price group identified by the AvgPxGroupID(1731)',\n        tag: 819,\n        type: 'int',\n        codeSet: 'AvgPxIndicatorCodeSet',\n    },\n    {\n        id: '819003',\n        name: 'LastTrade',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '234',\n        description: 'Last trade of the average price group identified by the AvgPxGroupID(1731)',\n        tag: 819,\n        type: 'int',\n        codeSet: 'AvgPxIndicatorCodeSet',\n    },\n    {\n        id: '819004',\n        name: 'NotionalValueAveragePxGroupTrade',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '239',\n        description:\n            'Trade is part of a notional value average price group\\n\\n\\n                        A notional value average price (NVAP) group is effectively closed and available for allocation as long as the NVAP of the group is non-zero.',\n        tag: 819,\n        type: 'int',\n        codeSet: 'AvgPxIndicatorCodeSet',\n    },\n    {\n        id: '819005',\n        name: 'AveragePricedTrade',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        description: 'Trade is average priced',\n        tag: 819,\n        type: 'int',\n        codeSet: 'AvgPxIndicatorCodeSet',\n    },\n    {\n        id: '826001',\n        name: 'AllocationNotRequired',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Allocation not required',\n        tag: 826,\n        type: 'int',\n        codeSet: 'TradeAllocIndicatorCodeSet',\n    },\n    {\n        id: '826002',\n        name: 'AllocationRequired',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Allocation required (give-up trade) allocation information not provided (incomplete)',\n        tag: 826,\n        type: 'int',\n        codeSet: 'TradeAllocIndicatorCodeSet',\n    },\n    {\n        id: '826003',\n        name: 'UseAllocationProvidedWithTheTrade',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Use allocation provided with the trade',\n        tag: 826,\n        type: 'int',\n        codeSet: 'TradeAllocIndicatorCodeSet',\n    },\n    {\n        id: '826004',\n        name: 'AllocationGiveUpExecutor',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Allocation give-up executor',\n        tag: 826,\n        type: 'int',\n        codeSet: 'TradeAllocIndicatorCodeSet',\n    },\n    {\n        id: '826005',\n        name: 'AllocationFromExecutor',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Allocation from executor',\n        tag: 826,\n        type: 'int',\n        codeSet: 'TradeAllocIndicatorCodeSet',\n    },\n    {\n        id: '826006',\n        name: 'AllocationToClaimAccount',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Allocation to claim account',\n        tag: 826,\n        type: 'int',\n        codeSet: 'TradeAllocIndicatorCodeSet',\n    },\n    {\n        id: '826007',\n        name: 'TradeSplit',\n        value: '6',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Trade split',\n        tag: 826,\n        type: 'int',\n        codeSet: 'TradeAllocIndicatorCodeSet',\n    },\n    {\n        id: '827001',\n        name: 'ExpireOnTradingSessionClose',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Expire on trading session close (default)',\n        tag: 827,\n        type: 'int',\n        codeSet: 'ExpirationCycleCodeSet',\n    },\n    {\n        id: '827002',\n        name: 'ExpireOnTradingSessionOpen',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Expire on trading session open',\n        tag: 827,\n        type: 'int',\n        codeSet: 'ExpirationCycleCodeSet',\n    },\n    {\n        id: '827003',\n        name: 'SpecifiedExpiration',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description:\n            'Trading eligibility expiration specified in the date and time fields [EventDate(866) and EventTime(1145)] associated with EventType(865)=7(Last Eligible Trade Date)',\n        tag: 827,\n        type: 'int',\n        codeSet: 'ExpirationCycleCodeSet',\n    },\n    {\n        id: '828001',\n        name: 'RegularTrade',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Regular trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828002',\n        name: 'BlockTrade',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Block trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828003',\n        name: 'EFP',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Exchange for physical (EFP)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828004',\n        name: 'Transfer',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Transfer',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828005',\n        name: 'LateTrade',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Late trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828006',\n        name: 'TTrade',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'T trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828007',\n        name: 'WeightedAveragePriceTrade',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Weighted average price trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828008',\n        name: 'BunchedTrade',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Bunched trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828009',\n        name: 'LateBunchedTrade',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Late bunched trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828010',\n        name: 'PriorReferencePriceTrade',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Prior reference price trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828011',\n        name: 'AfterHoursTrade',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'After hours trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828012',\n        name: 'ExchangeForRisk',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Exchange for risk (EFR)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828013',\n        name: 'ExchangeForSwap',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Exchange for swap (EFS)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828014',\n        name: 'ExchangeOfFuturesFor',\n        value: '13',\n        sort: 13,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description:\n            'Exchange of futures for in market futures (EFM)\\n\\n\\n                        For example full sized for mini.',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828015',\n        name: 'ExchangeOfOptionsForOptions',\n        value: '14',\n        sort: 14,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Exchange of options for options (EOO)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828016',\n        name: 'TradingAtSettlement',\n        value: '15',\n        sort: 15,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Trading at settlement',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828017',\n        name: 'AllOrNone',\n        value: '16',\n        sort: 16,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'All or none',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828018',\n        name: 'FuturesLargeOrderExecution',\n        value: '17',\n        sort: 17,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Futures large order execution',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828019',\n        name: 'ExchangeOfFuturesForFutures',\n        value: '18',\n        sort: 18,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Exchange of futures for external market futures (EFF)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828020',\n        name: 'OptionInterimTrade',\n        value: '19',\n        sort: 19,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Option interim trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828021',\n        name: 'OptionCabinetTrade',\n        value: '20',\n        sort: 20,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Option cabinet trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828022',\n        name: 'PrivatelyNegotiatedTrades',\n        value: '22',\n        sort: 21,\n        added: 'FIX.4.4',\n        addedEP: '19',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Privately negotiated trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828023',\n        name: 'SubstitutionOfFuturesForForwards',\n        value: '23',\n        sort: 22,\n        added: 'FIX.4.4',\n        addedEP: '19',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Substitution of futures for forwards',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828024',\n        name: 'NonStandardSettlement',\n        value: '48',\n        sort: 48,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Non-standard settlement',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828025',\n        name: 'DerivativeRelatedTransaction',\n        value: '49',\n        sort: 49,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Derivative related transaction',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828026',\n        name: 'PortfolioTrade',\n        value: '50',\n        sort: 50,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        updated: 'FIX.Latest',\n        updatedEP: '268',\n        description:\n            'Portfolio trade\\n\\n\\n                        Identifies a collection/basket of trades. In the context of bonds (e.g. corporate bonds) these are transacted as a single trade at an aggregate price for the entire portfolio and may be traded all-or-none or most-or-none depending on bilateral agreement.\\n\\n\\n                        In the context of ESMA RTS 1 Article 2(b), may be used to refer to portfolio trades to distinguish between addressable and non-addressable volume.\\n\\n\\n                        In the context of Market Model Typology (MMT), use of this value applies to SecondaryTrdType(855) or TertiaryTrdType(2896), and when used for MMT market data publication requires MDEntryType(269) = 2 (Trade).',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828027',\n        name: 'VolumeWeightedAverageTrade',\n        value: '51',\n        sort: 51,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Volume weighted average trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828028',\n        name: 'ExchangeGrantedTrade',\n        value: '52',\n        sort: 52,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Exchange granted trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828029',\n        name: 'RepurchaseAgreement',\n        value: '53',\n        sort: 53,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Repurchase agreement',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828030',\n        name: 'OTC',\n        value: '54',\n        sort: 54,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '177',\n        description:\n            'OTC\\n\\n\\n                        Trade executed off-market. In the context of CFTC regulatory reporting for swaps, it is a large notional off-facility swap. In the context of MiFID transparency reporting rules this is used to report, into an exchange, deals made outside exchange rules.',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828031',\n        name: 'ExchangeBasisFacility',\n        value: '55',\n        sort: 55,\n        added: 'FIX.5.0',\n        addedEP: '55',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Exchange basis facility (EBF)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828032',\n        name: 'OpeningTrade',\n        value: '56',\n        sort: 56,\n        added: 'FIX.5.0SP2',\n        addedEP: '104',\n        updated: 'FIX.Latest',\n        updatedEP: '283',\n        description:\n            'Opening trade\\n\\n\\n                        Identifies a trade that resulted from the opening of a market. In the context of IIROC, this indicates a trade that occurred at the opening or the first trade of the day for a security.',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828033',\n        name: 'NettedTrade',\n        value: '57',\n        sort: 57,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Netted trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828034',\n        name: 'BlockSwapTrade',\n        value: '58',\n        sort: 58,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '177',\n        description:\n            'Block swap trade\\n\\n\\n                        Block trade executed off-market or on a registered market. In the context of CFTC regulatory reporting for swaps, it is a swap executed according to SEF or DCM rules.',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828035',\n        name: 'CreditEventTrade',\n        value: '59',\n        sort: 59,\n        added: 'FIX.5.0SP2',\n        addedEP: '165',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Credit event trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828036',\n        name: 'SuccessionEventTrade',\n        value: '60',\n        sort: 60,\n        added: 'FIX.5.0SP2',\n        addedEP: '165',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Succession event trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828037',\n        name: 'GiveUpGiveInTrade',\n        value: '61',\n        sort: 61,\n        added: 'FIX.5.0SP2',\n        addedEP: '163',\n        description: 'Give-up Give-in trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828038',\n        name: 'DarkTrade',\n        value: '62',\n        sort: 62,\n        added: 'FIX.5.0SP2',\n        addedEP: '163',\n        updated: 'FIX.Latest',\n        updatedEP: '268',\n        description:\n            'Dark trade\\n\\n\\n                        In the context of Market Model Typology (MMT), a dark trade might also come from a lit/hybrid book (e.g. when an aggressive lit order hits a resting dark order). The use of this value applies to TrdType(828), and when used for MMT market data publication requires MDEntryType(269) = 2 (Trade).',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828039',\n        name: 'TechnicalTrade',\n        value: '63',\n        sort: 63,\n        added: 'FIX.5.0SP2',\n        addedEP: '163',\n        description: 'Technical trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828040',\n        name: 'Benchmark',\n        value: '64',\n        sort: 64,\n        added: 'FIX.5.0SP2',\n        addedEP: '163',\n        updated: 'FIX.Latest',\n        updatedEP: '268',\n        description:\n            'Benchmark\\n\\n\\n                        In the context of ESMA RTS 1 Article 2(a), may be used to refer to benchmark trades.\\n\\n\\n                        In the context of Market Model Typology (MMT), the \"benchmark\" price depends on a benchmark which has no current price but was derived from a time series such as a VWAP. The use of this value applies to SecondaryTrdType(855) or TertiaryTrdType(2896), and when used for MMT market data publication requires MDEntryType(269) = 2 (Trade).',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828041',\n        name: 'PackageTrade',\n        value: '65',\n        sort: 65,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        updated: 'FIX.Latest',\n        updatedEP: '277',\n        description:\n            'Package trade\\n\\n\\n                        May be used to identify the pseudo-trade of a stream or collection of trades to be transacted, cleared and be reported as an atomic unit.\\n\\n\\n                        In the context of MiFIR RTS 1, this is the \"CONT\" flag.\\n\\n\\n                        In the context of MiFIR RTS 2 Article 1(1)(b), may be used to refer to package transactions (excluding exchange for physicals).\\n\\n\\n                        In the context of Market Model Typology (MMT), use of this value applies to SecondaryTrdType(855) or TertiaryTrdType(2896), and when used for MMT market data publication requires MDEntryType(269) = 2 (Trade).',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828042',\n        name: 'RollTrade',\n        value: '66',\n        sort: 66,\n        added: 'FIX.5.0SP2',\n        addedEP: '258',\n        description:\n            'Roll trade\\n\\n\\n                        Trade is a roll from one contract that is about to expire to a new contract.',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828043',\n        name: 'ClosingPriceTrade',\n        value: '67',\n        sort: 67,\n        added: 'FIX.Latest',\n        addedEP: '283',\n        description:\n            'Closing price trade\\n\\n\\n                        Identifies a trade that uses the closing price of a market without resulting from the closing of this market. In the context of FCA policy statement PS23/4, this indicates a benchmark transaction executed using the market closing price and is the \"CLSE\" flag.',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828044',\n        name: 'InterFundTransferTrade',\n        value: '68',\n        sort: 68,\n        added: 'FIX.Latest',\n        addedEP: '289',\n        description:\n            'Inter-fund transfer trade\\n\\n\\n                        Administrative trade (non price-forming) related to the transfer of ownership between funds.',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828045',\n        name: 'NetAssetValueCalculatedTrade',\n        value: '69',\n        sort: 69,\n        added: 'FIX.Latest',\n        addedEP: '289',\n        description:\n            'Net asset value calculated trade\\n\\n\\n                        Trade of a fund priced at the net asset value of its constituents. In the context of MiFIR RTS 1, this may be used for ETFs when the NAV price becomes available.',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828046',\n        name: 'ErrorTrade',\n        value: '24',\n        sort: 24,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Error trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828047',\n        name: 'SpecialCumDividend',\n        value: '25',\n        sort: 25,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Special cum dividend (CD)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828048',\n        name: 'SpecialExDividend',\n        value: '26',\n        sort: 26,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Special ex dividend (XD)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828049',\n        name: 'SpecialCumCoupon',\n        value: '27',\n        sort: 27,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Special cum coupon (CC)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828050',\n        name: 'SpecialExCoupon',\n        value: '28',\n        sort: 28,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Special ex coupon (XC)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828051',\n        name: 'CashSettlement',\n        value: '29',\n        sort: 29,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Cash settlement (CS)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828052',\n        name: 'SpecialPrice',\n        value: '30',\n        sort: 30,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Special price (SP)\\n\\n\\n                        Usually net or all-in price.',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828053',\n        name: 'GuaranteedDelivery',\n        value: '31',\n        sort: 31,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Guaranteed delivery (GD)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828054',\n        name: 'SpecialCumRights',\n        value: '32',\n        sort: 32,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Special cum rights (CR)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828055',\n        name: 'SpecialExRights',\n        value: '33',\n        sort: 33,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Special ex rights (XR)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828056',\n        name: 'SpecialCumCapitalRepayments',\n        value: '34',\n        sort: 34,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Special cum capital repayments (CP)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828057',\n        name: 'SpecialExCapitalRepayments',\n        value: '35',\n        sort: 35,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Special ex capital repayments (XP)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828058',\n        name: 'SpecialCumBonus',\n        value: '36',\n        sort: 36,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Special cum bonus (CB)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828059',\n        name: 'SpecialExBonus',\n        value: '37',\n        sort: 37,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Special ex bonus (XB)',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828060',\n        name: 'LargeTrade',\n        value: '38',\n        sort: 38,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Block trade\\n\\n\\n                        The same as large trade.',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828061',\n        name: 'WorkedPrincipalTrade',\n        value: '39',\n        sort: 39,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Worked principal trade',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828062',\n        name: 'BlockTrades',\n        value: '40',\n        sort: 40,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Block trades',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828063',\n        name: 'NameChange',\n        value: '41',\n        sort: 41,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Name change',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828064',\n        name: 'PortfolioTransfer',\n        value: '42',\n        sort: 42,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Portfolio transfer',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828065',\n        name: 'ProrogationBuy',\n        value: '43',\n        sort: 43,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description:\n            'Prorogation buy\\n\\n\\n                        Used by Euronext Paris only. Is used to defer settlement under French SRD (deferred settlement system). Trades must be reported as crosses at zero price.',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828066',\n        name: 'ProrogationSell',\n        value: '44',\n        sort: 44,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Prorogation sell\\n\\n\\n                        See prorogation buy.',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828067',\n        name: 'OptionExercise',\n        value: '45',\n        sort: 45,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Option exercise',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828068',\n        name: 'DeltaNeutralTransaction',\n        value: '46',\n        sort: 46,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Delta neutral transaction',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '828069',\n        name: 'FinancingTransaction',\n        value: '47',\n        sort: 47,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Financing transaction',\n        tag: 828,\n        type: 'int',\n        codeSet: 'TrdTypeCodeSet',\n    },\n    {\n        id: '829001',\n        name: 'CMTA',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'CMTA',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829002',\n        name: 'InternalTransferOrAdjustment',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Internal transfer or adjustment',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829003',\n        name: 'ExternalTransferOrTransferOfAccount',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'External transfer or transfer of account',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829004',\n        name: 'RejectForSubmittingSide',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Reject for submitting side',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829005',\n        name: 'AdvisoryForContraSide',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Advisory for contra side',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829006',\n        name: 'OffsetDueToAnAllocation',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Offset due to an allocation',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829007',\n        name: 'OnsetDueToAnAllocation',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Onset due to an allocation',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829008',\n        name: 'DifferentialSpread',\n        value: '7',\n        sort: 8,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Differential spread',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829009',\n        name: 'ImpliedSpreadLegExecutedAgainstAnOutright',\n        value: '8',\n        sort: 9,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Implied spread leg executed against an outright',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829010',\n        name: 'TransactionFromExercise',\n        value: '9',\n        sort: 10,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Transaction from exercise',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829011',\n        name: 'TransactionFromAssignment',\n        value: '10',\n        sort: 11,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Transaction from assignment',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829012',\n        name: 'ACATS',\n        value: '11',\n        sort: 12,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'ACATS',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829013',\n        name: 'OffHoursTrade',\n        value: '33',\n        sort: 32,\n        added: 'FIX.5.0',\n        addedEP: '61',\n        description: 'Off Hours Trade',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829014',\n        name: 'OnHoursTrade',\n        value: '34',\n        sort: 33,\n        added: 'FIX.5.0',\n        addedEP: '61',\n        description: 'On Hours Trade',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829015',\n        name: 'OTCQuote',\n        value: '35',\n        sort: 34,\n        added: 'FIX.5.0',\n        addedEP: '61',\n        description: 'OTC Quote',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829016',\n        name: 'ConvertedSWAP',\n        value: '36',\n        sort: 36,\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Converted SWAP',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829017',\n        name: 'WashTrade',\n        value: '40',\n        sort: 40,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        description: 'Wash Trade',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829018',\n        name: 'TradeAtSettlement',\n        value: '41',\n        sort: 41,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '227',\n        description:\n            'Trade at Settlement (TAS)\\n\\n\\n                        Identifies a trade that will be priced using the settlement price.',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829019',\n        name: 'AuctionTrade',\n        value: '42',\n        sort: 42,\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '227',\n        description:\n            'Auction Trade\\n\\n\\n                        Mutually exclusive with TrdSubType(829) = 50 (Balancing).',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829020',\n        name: 'TradeAtMarker',\n        value: '43',\n        sort: 43,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '227',\n        description:\n            'Trade at Marker (TAM)\\n\\n\\n                        Posted at a specific time each day and used to price the consummated trade for the product/month/strip executed (+/- and differentials). Closely related to TAS trades in function and trade practice.',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829021',\n        name: 'CreditDefault',\n        value: '44',\n        sort: 44,\n        added: 'FIX.5.0SP2',\n        addedEP: '165',\n        description: 'Default (Credit Event)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829022',\n        name: 'CreditRestructuring',\n        value: '45',\n        sort: 45,\n        added: 'FIX.5.0SP2',\n        addedEP: '165',\n        description: 'Restructuring (credit event)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829023',\n        name: 'Merger',\n        value: '46',\n        sort: 46,\n        added: 'FIX.5.0SP2',\n        addedEP: '165',\n        description: 'Merger (succession event)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829024',\n        name: 'SpinOff',\n        value: '47',\n        sort: 47,\n        added: 'FIX.5.0SP2',\n        addedEP: '165',\n        description: 'Spin-off (succession event)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829025',\n        name: 'MultilateralCompression',\n        value: '48',\n        sort: 48,\n        added: 'FIX.5.0SP2',\n        addedEP: '201',\n        updated: 'FIX.Latest',\n        updatedEP: '269',\n        description:\n            'Multilateral compression\\n\\n\\n                        Used to identify a special case of compression between multiple parties, e.g. for netted or portfolio trades.',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829026',\n        name: 'Balancing',\n        value: '50',\n        sort: 50,\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description:\n            'Balancing\\n\\n\\n                        Identifies an additional trade distributed to auction participants meant to resolve an imbalance between bids and offers.\\n\\n\\n                        Mutually exclusive with TrdSubType(829) = 42 =(Auction).',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829027',\n        name: 'BasisTradeIndexClose',\n        value: '51',\n        sort: 51,\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description:\n            'Basis Trade index Close (BTIC)\\n\\n\\n                        The marketplace name given to Trade at Marker (TAM) transactions in equity index futures.',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829028',\n        name: 'TradeAtCashOpen',\n        value: '52',\n        sort: 52,\n        added: 'FIX.5.0SP2',\n        addedEP: '243',\n        description:\n            'Trade At Cash Open (TACO)\\n\\n\\n                        The marketplace name given to trading futures based on an opening quote of the underlying cash market.',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829029',\n        name: 'TrdSubmitVenueClrSettl',\n        value: '53',\n        sort: 53,\n        added: 'FIX.Latest',\n        addedEP: '268',\n        description:\n            'Trade submitted to venue for clearing and settlement\\n\\n\\n                        Identifies trades brought on a trading venue purely for clearing and settlement purposes.',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829030',\n        name: 'BilateralCompression',\n        value: '54',\n        sort: 54,\n        added: 'FIX.Latest',\n        addedEP: '269',\n        description:\n            'Bilateral compression\\n\\n\\n                        Used to identify a special case of compression between two parties, e.g. for netted or portfolio trades.',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829031',\n        name: 'AI',\n        value: '14',\n        sort: 13,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'AI (Automated input facility disabled in response to an exchange request.)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829032',\n        name: 'B',\n        value: '15',\n        sort: 14,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description:\n            'B (Transaction between two member firms where neither member firm is registered as a market maker in the security in question and neither is a designated fund manager. Also used by broker dealers when dealing with another broker which is not a member firm. Non-order book securities only.)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829033',\n        name: 'K',\n        value: '16',\n        sort: 15,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'K (Transaction using block trade facility.)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829034',\n        name: 'LC',\n        value: '17',\n        sort: 16,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'LC (Correction submitted more than three days after publication of the original trade report.)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829035',\n        name: 'M',\n        value: '18',\n        sort: 17,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description:\n            'M (Transaction, other than a transaction resulting from a stock swap or stock switch, between two market makers registered in that security including IDB or a public display system trades. Non-order book securities only.)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829036',\n        name: 'N',\n        value: '19',\n        sort: 18,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'N (Non-protected portfolio transaction or a fully disclosed portfolio transaction)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829037',\n        name: 'NM',\n        value: '20',\n        sort: 19,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description:\n            'NM ( i) transaction where Exchange has granted permission for non-publication\\n\\n\\n                        ii)IDB is reporting as seller\\n\\n\\n                        iii) submitting a transaction report to the Exchange, where the transaction report is not also a trade report.)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829038',\n        name: 'NR',\n        value: '21',\n        sort: 20,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'NR (Non-risk transaction in a SEATS security other than an AIM security)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829039',\n        name: 'P',\n        value: '22',\n        sort: 21,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description:\n            'P (Protected portfolio transaction or a worked principal agreement to effect a portfolio transaction which includes order book securities)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829040',\n        name: 'PA',\n        value: '23',\n        sort: 22,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'PA (Protected transaction notification)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829041',\n        name: 'PC',\n        value: '24',\n        sort: 23,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description:\n            'PC (Contra trade for transaction which took place on a previous day and which was automatically executed on the Exchange trading system)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829042',\n        name: 'PN',\n        value: '25',\n        sort: 24,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description:\n            'PN (Worked principal notification for a portfolio transaction which includes order book securities)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829043',\n        name: 'R',\n        value: '26',\n        sort: 25,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description:\n            'R ( (i) riskless principal transaction between non-members where the buying and selling transactions are executed at different prices or on different terms (requires a trade report with trade type indicator R for each transaction)\\n\\n\\n                        (ii) market maker is reporting all the legs of a riskless principal transaction where the buying and selling transactions are executed at different prices (requires a trade report with trade type indicator R for each transaction)or\\n\\n\\n                        (iii) market maker is reporting the onward leg of a riskless principal transaction where the legs are executed at different prices, and another market maker has submitted a trade report using trade type indicator M for the first leg (this requires a single trade report with trade type indicator R).)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829044',\n        name: 'RO',\n        value: '27',\n        sort: 26,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description:\n            'RO (Transaction which resulted from the exercise of a traditional option or a stock-settled covered warrant)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829045',\n        name: 'RT',\n        value: '28',\n        sort: 27,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description:\n            'RT (Risk transaction in a SEATS security, (excluding AIM security) reported by a market maker registered in that security)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829046',\n        name: 'SW',\n        value: '29',\n        sort: 28,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description:\n            'SW (Transactions resulting from stock swap or a stock switch (one report is required for each line of stock))',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829047',\n        name: 'T',\n        value: '30',\n        sort: 29,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'T (If reporting a single protected transaction)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829048',\n        name: 'WN',\n        value: '31',\n        sort: 30,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'WN (Worked principal notification for a single order book security)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829049',\n        name: 'WT',\n        value: '32',\n        sort: 31,\n        group: 'MiFID Values',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'WT (Worked principal transaction (other than a portfolio transaction))',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829050',\n        name: 'CrossedTrade',\n        value: '37',\n        sort: 37,\n        group: 'MiFID Values',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Crossed Trade (X)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829051',\n        name: 'InterimProtectedTrade',\n        value: '38',\n        sort: 38,\n        group: 'MiFID Values',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Interim Protected Trade (I)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '829052',\n        name: 'LargeInScale',\n        value: '39',\n        sort: 39,\n        group: 'MiFID Values',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Large in Scale (L)',\n        tag: 829,\n        type: 'int',\n        codeSet: 'TrdSubTypeCodeSet',\n    },\n    {\n        id: '835001',\n        name: 'Floating',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Floating (default)',\n        tag: 835,\n        type: 'int',\n        codeSet: 'PegMoveTypeCodeSet',\n    },\n    {\n        id: '835002',\n        name: 'Fixed',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Fixed',\n        tag: 835,\n        type: 'int',\n        codeSet: 'PegMoveTypeCodeSet',\n    },\n    {\n        id: '836001',\n        name: 'Price',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Price (default)',\n        tag: 836,\n        type: 'int',\n        codeSet: 'PegOffsetTypeCodeSet',\n    },\n    {\n        id: '836002',\n        name: 'BasisPoints',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Basis Points',\n        tag: 836,\n        type: 'int',\n        codeSet: 'PegOffsetTypeCodeSet',\n    },\n    {\n        id: '836003',\n        name: 'Ticks',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Ticks',\n        tag: 836,\n        type: 'int',\n        codeSet: 'PegOffsetTypeCodeSet',\n    },\n    {\n        id: '836004',\n        name: 'PriceTier',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Price Tier / Level',\n        tag: 836,\n        type: 'int',\n        codeSet: 'PegOffsetTypeCodeSet',\n    },\n    {\n        id: '836005',\n        name: 'Percentage',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'Percentage',\n        tag: 836,\n        type: 'int',\n        codeSet: 'PegOffsetTypeCodeSet',\n    },\n    {\n        id: '837001',\n        name: 'OrBetter',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Or better (default) - price improvement allowed',\n        tag: 837,\n        type: 'int',\n        codeSet: 'PegLimitTypeCodeSet',\n    },\n    {\n        id: '837002',\n        name: 'Strict',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Strict - limit is a strict limit',\n        tag: 837,\n        type: 'int',\n        codeSet: 'PegLimitTypeCodeSet',\n    },\n    {\n        id: '837003',\n        name: 'OrWorse',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description:\n            'Or worse - for a buy the peg limit is a minimum and for a sell the peg limit is a maximum (for use for orders which have a price range)',\n        tag: 837,\n        type: 'int',\n        codeSet: 'PegLimitTypeCodeSet',\n    },\n    {\n        id: '838001',\n        name: 'MoreAggressive',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description:\n            'More aggressive - on a buy order round the price up to the nearest tick; on a sell order round down to the nearest tick',\n        tag: 838,\n        type: 'int',\n        codeSet: 'PegRoundDirectionCodeSet',\n    },\n    {\n        id: '838002',\n        name: 'MorePassive',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description:\n            'More passive - on a buy order round down to the nearest tick; on a sell order round up to the nearest tick',\n        tag: 838,\n        type: 'int',\n        codeSet: 'PegRoundDirectionCodeSet',\n    },\n    {\n        id: '840001',\n        name: 'Local',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Local (Exchange, ECN, ATS)',\n        tag: 840,\n        type: 'int',\n        codeSet: 'PegScopeCodeSet',\n    },\n    {\n        id: '840002',\n        name: 'National',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'National',\n        tag: 840,\n        type: 'int',\n        codeSet: 'PegScopeCodeSet',\n    },\n    {\n        id: '840003',\n        name: 'Global',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Global',\n        tag: 840,\n        type: 'int',\n        codeSet: 'PegScopeCodeSet',\n    },\n    {\n        id: '840004',\n        name: 'NationalExcludingLocal',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'National excluding local',\n        tag: 840,\n        type: 'int',\n        codeSet: 'PegScopeCodeSet',\n    },\n    {\n        id: '841001',\n        name: 'Floating',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Floating (default)',\n        tag: 841,\n        type: 'int',\n        codeSet: 'DiscretionMoveTypeCodeSet',\n    },\n    {\n        id: '841002',\n        name: 'Fixed',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Fixed',\n        tag: 841,\n        type: 'int',\n        codeSet: 'DiscretionMoveTypeCodeSet',\n    },\n    {\n        id: '842001',\n        name: 'Price',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Price (default)',\n        tag: 842,\n        type: 'int',\n        codeSet: 'DiscretionOffsetTypeCodeSet',\n    },\n    {\n        id: '842002',\n        name: 'BasisPoints',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Basis Points',\n        tag: 842,\n        type: 'int',\n        codeSet: 'DiscretionOffsetTypeCodeSet',\n    },\n    {\n        id: '842003',\n        name: 'Ticks',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Ticks',\n        tag: 842,\n        type: 'int',\n        codeSet: 'DiscretionOffsetTypeCodeSet',\n    },\n    {\n        id: '842004',\n        name: 'PriceTier',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Price Tier / Level',\n        tag: 842,\n        type: 'int',\n        codeSet: 'DiscretionOffsetTypeCodeSet',\n    },\n    {\n        id: '843001',\n        name: 'OrBetter',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Or better (default) - price improvement allowed',\n        tag: 843,\n        type: 'int',\n        codeSet: 'DiscretionLimitTypeCodeSet',\n    },\n    {\n        id: '843002',\n        name: 'Strict',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Strict - limit is a strict limit',\n        tag: 843,\n        type: 'int',\n        codeSet: 'DiscretionLimitTypeCodeSet',\n    },\n    {\n        id: '843003',\n        name: 'OrWorse',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description:\n            'Or worse - for a buy the discretion price is a minimum and for a sell the discretion price is a maximum (for use for orders which have a price range)',\n        tag: 843,\n        type: 'int',\n        codeSet: 'DiscretionLimitTypeCodeSet',\n    },\n    {\n        id: '844001',\n        name: 'MoreAggressive',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description:\n            'More aggressive - on a buy order round the price up to the nearest tick; on a sell round down to the nearest tick',\n        tag: 844,\n        type: 'int',\n        codeSet: 'DiscretionRoundDirectionCodeSet',\n    },\n    {\n        id: '844002',\n        name: 'MorePassive',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description:\n            'More passive - on a buy order round down to the nearest tick; on a sell order round up to the nearest tick',\n        tag: 844,\n        type: 'int',\n        codeSet: 'DiscretionRoundDirectionCodeSet',\n    },\n    {\n        id: '846001',\n        name: 'Local',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Local (Exchange, ECN, ATS)',\n        tag: 846,\n        type: 'int',\n        codeSet: 'DiscretionScopeCodeSet',\n    },\n    {\n        id: '846002',\n        name: 'National',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'National',\n        tag: 846,\n        type: 'int',\n        codeSet: 'DiscretionScopeCodeSet',\n    },\n    {\n        id: '846003',\n        name: 'Global',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Global',\n        tag: 846,\n        type: 'int',\n        codeSet: 'DiscretionScopeCodeSet',\n    },\n    {\n        id: '846004',\n        name: 'NationalExcludingLocal',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'National excluding local',\n        tag: 846,\n        type: 'int',\n        codeSet: 'DiscretionScopeCodeSet',\n    },\n    {\n        id: '847001',\n        name: 'VWAP',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'VWAP',\n        tag: 847,\n        type: 'int',\n        codeSet: 'TargetStrategyCodeSet',\n    },\n    {\n        id: '847002',\n        name: 'Participate',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Participate (i.e. aim to be x percent of the market volume)',\n        tag: 847,\n        type: 'int',\n        codeSet: 'TargetStrategyCodeSet',\n    },\n    {\n        id: '847003',\n        name: 'MininizeMarketImpact',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Mininize market impact',\n        tag: 847,\n        type: 'int',\n        codeSet: 'TargetStrategyCodeSet',\n    },\n    {\n        id: '851001',\n        name: 'NeitherAddedNorRemovedLiquidity',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '252',\n        updated: 'FIX.Latest',\n        updatedEP: '278',\n        description:\n            'Neither added nor removed liquidity\\n\\n\\n                        May be used by venues where market rules do not define \"add\" or \"remove\" liquidity.\\n\\n\\n                        In the context of the SEC amendment of Regulation NMS Rule 606(b), may be used to identify executions that are only reported as part of total shares executed and not as part of shares providing or removing liquidity (see https://www.sec.gov/rules/final/2018/34-84528.pdf for details).',\n        tag: 851,\n        type: 'int',\n        codeSet: 'LastLiquidityIndCodeSet',\n    },\n    {\n        id: '851002',\n        name: 'AddedLiquidity',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Added Liquidity',\n        tag: 851,\n        type: 'int',\n        codeSet: 'LastLiquidityIndCodeSet',\n    },\n    {\n        id: '851003',\n        name: 'RemovedLiquidity',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Removed Liquidity',\n        tag: 851,\n        type: 'int',\n        codeSet: 'LastLiquidityIndCodeSet',\n    },\n    {\n        id: '851004',\n        name: 'LiquidityRoutedOut',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Liquidity Routed Out',\n        tag: 851,\n        type: 'int',\n        codeSet: 'LastLiquidityIndCodeSet',\n    },\n    {\n        id: '851005',\n        name: 'Auction',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '57',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '252',\n        description: 'Auction execution',\n        tag: 851,\n        type: 'int',\n        codeSet: 'LastLiquidityIndCodeSet',\n    },\n    {\n        id: '851006',\n        name: 'TriggeredStopOrder',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Triggered stop order\\n\\n\\n                        Fill was the result of a stop order being triggered and immediately executed.',\n        tag: 851,\n        type: 'int',\n        codeSet: 'LastLiquidityIndCodeSet',\n    },\n    {\n        id: '851007',\n        name: 'TriggeredContingencyOrder',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Triggered contingency order\\n\\n\\n                        Fill was the result of a contingency order (OCO, OTO, OUO) becoming active (after cancelling or updating another order) and being immediately executed.',\n        tag: 851,\n        type: 'int',\n        codeSet: 'LastLiquidityIndCodeSet',\n    },\n    {\n        id: '851008',\n        name: 'TriggeredMarketOrder',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Triggered market order\\n\\n\\n                        Fill was the result of a market order being triggered due to an executable orderbook situation.',\n        tag: 851,\n        type: 'int',\n        codeSet: 'LastLiquidityIndCodeSet',\n    },\n    {\n        id: '851009',\n        name: 'RemovedLiquidityAfterFirmOrderCommitment',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '252',\n        description:\n            'Removed liquidity after firm order commitment\\n\\n\\n                        An order that was submitted for continuous trading that required a firm order commit prior to execution. \"Conditional order\" is an alternate term used for such orders.',\n        tag: 851,\n        type: 'int',\n        codeSet: 'LastLiquidityIndCodeSet',\n    },\n    {\n        id: '851010',\n        name: 'AuctionExecutionAfterFirmOrderCommitment',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '252',\n        description:\n            'Auction execution after firm order commitment\\n\\n\\n                        An order that was submitted for auction trading that required a firm order commit prior to execution. \"Conditional order\" is an alternate term used for such orders.',\n        tag: 851,\n        type: 'int',\n        codeSet: 'LastLiquidityIndCodeSet',\n    },\n    {\n        id: '851011',\n        name: 'Unknown',\n        value: '10',\n        sort: 10,\n        added: 'FIX.Latest',\n        addedEP: '278',\n        description:\n            'Unknown\\n\\n\\n                        The liquidity indicator of the execution cannot be determined or was not provided upon execution.',\n        tag: 851,\n        type: 'int',\n        codeSet: 'LastLiquidityIndCodeSet',\n    },\n    {\n        id: '851012',\n        name: 'Other',\n        value: '11',\n        sort: 11,\n        added: 'FIX.Latest',\n        addedEP: '278',\n        description:\n            \"Other\\n\\n\\n                        None of the existing liquidity indicators are applicable for the execution (e.g. due to a venue's new order type that does not fit existing values).\",\n        tag: 851,\n        type: 'int',\n        codeSet: 'LastLiquidityIndCodeSet',\n    },\n    {\n        id: '852001',\n        name: 'DoNotReportTrade',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Do Not Report Trade',\n        tag: 852,\n        type: 'Boolean',\n        codeSet: 'PublishTrdIndicatorCodeSet',\n    },\n    {\n        id: '852002',\n        name: 'ReportTrade',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Report Trade',\n        tag: 852,\n        type: 'Boolean',\n        codeSet: 'PublishTrdIndicatorCodeSet',\n    },\n    {\n        id: '853001',\n        name: 'DealerSoldShort',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Dealer Sold Short',\n        tag: 853,\n        type: 'int',\n        codeSet: 'ShortSaleReasonCodeSet',\n    },\n    {\n        id: '853002',\n        name: 'DealerSoldShortExempt',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Dealer Sold Short Exempt',\n        tag: 853,\n        type: 'int',\n        codeSet: 'ShortSaleReasonCodeSet',\n    },\n    {\n        id: '853003',\n        name: 'SellingCustomerSoldShort',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Selling Customer Sold Short',\n        tag: 853,\n        type: 'int',\n        codeSet: 'ShortSaleReasonCodeSet',\n    },\n    {\n        id: '853004',\n        name: 'SellingCustomerSoldShortExempt',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Selling Customer Sold Short Exempt',\n        tag: 853,\n        type: 'int',\n        codeSet: 'ShortSaleReasonCodeSet',\n    },\n    {\n        id: '853005',\n        name: 'QualifiedServiceRepresentative',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Qualified Service Representative (QSR) or Automatic Give-up (AGU) Contra Side Sold Short',\n        tag: 853,\n        type: 'int',\n        codeSet: 'ShortSaleReasonCodeSet',\n    },\n    {\n        id: '853006',\n        name: 'QSROrAGUContraSideSoldShortExempt',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'QSR or AGU Contra Side Sold Short Exempt',\n        tag: 853,\n        type: 'int',\n        codeSet: 'ShortSaleReasonCodeSet',\n    },\n    {\n        id: '854001',\n        name: 'Units',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Units (shares, par, currency)',\n        tag: 854,\n        type: 'int',\n        codeSet: 'QtyTypeCodeSet',\n    },\n    {\n        id: '854002',\n        name: 'Contracts',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '107',\n        description: 'Contracts',\n        tag: 854,\n        type: 'int',\n        codeSet: 'QtyTypeCodeSet',\n    },\n    {\n        id: '854003',\n        name: 'UnitsOfMeasurePerTimeUnit',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '107',\n        description: 'Unit of Measure per Time Unit',\n        tag: 854,\n        type: 'int',\n        codeSet: 'QtyTypeCodeSet',\n    },\n    {\n        id: '856001',\n        name: 'Submit',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Submit',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856002',\n        name: 'Alleged',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Alleged',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856003',\n        name: 'Accept',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Accept',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856004',\n        name: 'Decline',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Decline',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856005',\n        name: 'Addendum',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '241',\n        description:\n            'Addendum\\n\\n\\n                        Used to provide material supplemental data to a previously submitted trade.',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856006',\n        name: 'No',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '241',\n        description:\n            'No/Was\\n\\n\\n                        Used to report a full replacement of a previously submitted trade.',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856007',\n        name: 'TradeReportCancel',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.4',\n        description: 'Trade Report Cancel',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856008',\n        name: 'LockedIn',\n        value: '7',\n        sort: 8,\n        added: 'FIX.4.4',\n        description: '(Locked-In) Trade Break',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856009',\n        name: 'Defaulted',\n        value: '8',\n        sort: 9,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Defaulted',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856010',\n        name: 'InvalidCMTA',\n        value: '9',\n        sort: 10,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Invalid CMTA',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856011',\n        name: 'Pended',\n        value: '10',\n        sort: 11,\n        added: 'FIX.4.4',\n        addedEP: '23',\n        description: 'Pended',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856012',\n        name: 'AllegedNew',\n        value: '11',\n        sort: 12,\n        added: 'FIX.4.4',\n        addedEP: '23',\n        description: 'Alleged New',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856013',\n        name: 'AllegedAddendum',\n        value: '12',\n        sort: 13,\n        added: 'FIX.4.4',\n        addedEP: '23',\n        description: 'Alleged Addendum',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856014',\n        name: 'AllegedNo',\n        value: '13',\n        sort: 14,\n        added: 'FIX.4.4',\n        addedEP: '23',\n        description: 'Alleged No/Was',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856015',\n        name: 'AllegedTradeReportCancel',\n        value: '14',\n        sort: 15,\n        added: 'FIX.4.4',\n        addedEP: '23',\n        description: 'Alleged Trade Report Cancel',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856016',\n        name: 'AllegedTradeBreak',\n        value: '15',\n        sort: 16,\n        added: 'FIX.4.4',\n        addedEP: '23',\n        description: 'Alleged (Locked-In) Trade Break',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856017',\n        name: 'Verify',\n        value: '16',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Verify\\n\\n\\n                        Used in reports from a trading party to the SDR to confirm trade details. Omit RegulatoryReportType(1934).',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856018',\n        name: 'Dispute',\n        value: '17',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Dispute\\n\\n\\n                        Used in reports from a trading party to the SDR to dispute trade details. Omit RegulatoryReportType(1934).',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '856019',\n        name: 'NonMaterialUpdate',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '241',\n        description:\n            'Non-material Update\\n\\n\\n                        Used to provide non-material supplemental data to a previously submitted trade.',\n        tag: 856,\n        type: 'int',\n        codeSet: 'TradeReportTypeCodeSet',\n    },\n    {\n        id: '857001',\n        name: 'NotSpecified',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Not specified',\n        tag: 857,\n        type: 'int',\n        codeSet: 'AllocNoOrdersTypeCodeSet',\n    },\n    {\n        id: '857002',\n        name: 'ExplicitListProvided',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description: 'Explicit list provided',\n        tag: 857,\n        type: 'int',\n        codeSet: 'AllocNoOrdersTypeCodeSet',\n    },\n    {\n        id: '865001',\n        name: 'Put',\n        value: '1',\n        sort: 0,\n        added: 'FIX.4.4',\n        description: 'Put',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865002',\n        name: 'Call',\n        value: '2',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Call',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865003',\n        name: 'Tender',\n        value: '3',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Tender',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865004',\n        name: 'SinkingFundCall',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Sinking fund call',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865005',\n        name: 'Activation',\n        value: '5',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Activation',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865006',\n        name: 'Inactiviation',\n        value: '6',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '137',\n        description: 'Inactivation',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865007',\n        name: 'LastEligibleTradeDate',\n        value: '7',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '42',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Last eligible trade date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865008',\n        name: 'SwapStartDate',\n        value: '8',\n        sort: 7,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Swap start date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865009',\n        name: 'SwapEndDate',\n        value: '9',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Swap end date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865010',\n        name: 'SwapRollDate',\n        value: '10',\n        sort: 9,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Swap roll date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865011',\n        name: 'SwapNextStartDate',\n        value: '11',\n        sort: 10,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Swap next start date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865012',\n        name: 'SwapNextRollDate',\n        value: '12',\n        sort: 11,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Swap next roll date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865013',\n        name: 'FirstDeliveryDate',\n        value: '13',\n        sort: 12,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'First delivery date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865014',\n        name: 'LastDeliveryDate',\n        value: '14',\n        sort: 13,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Last delivery date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865015',\n        name: 'InitialInventoryDueDate',\n        value: '15',\n        sort: 14,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Initial inventory due date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865016',\n        name: 'FinalInventoryDueDate',\n        value: '16',\n        sort: 15,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Final inventory due date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865017',\n        name: 'FirstIntentDate',\n        value: '17',\n        sort: 16,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'First intent date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865018',\n        name: 'LastIntentDate',\n        value: '18',\n        sort: 17,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Last intent date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865019',\n        name: 'PositionRemovalDate',\n        value: '19',\n        sort: 18,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Position removal date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865020',\n        name: 'MinimumNotice',\n        value: '20',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        description: 'Minimum notice',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865021',\n        name: 'DeliveryStartTime',\n        value: '21',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '228',\n        description: 'Delivery start time',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865022',\n        name: 'DeliveryEndTime',\n        value: '22',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        description: 'Delivery end time',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865023',\n        name: 'FirstNoticeDate',\n        value: '23',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '138',\n        description:\n            \"First notice date\\n\\n\\n                        The first day that a notice of intent to deliver a commodity can be made by a clearing house to a buyer in fulfillment of a given month's futures contract.\",\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865024',\n        name: 'LastNoticeDate',\n        value: '24',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '138',\n        description:\n            'Last notice date\\n\\n\\n                        The last day on which a clearing house may inform an investor that a seller intends to make delivery of a commodity that the investor previously bought in a futures contract. The date is governed by the rules of different exchanges and clearing houses, but may also be stated in the futures contract itself.',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865025',\n        name: 'FirstExerciseDate',\n        value: '25',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'First exercise date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865026',\n        name: 'RedemptionDate',\n        value: '26',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Redemption date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865027',\n        name: 'TrdCntntnEfctvDt',\n        value: '27',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Trade continuation effective date',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '865028',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 865,\n        type: 'int',\n        codeSet: 'EventTypeCodeSet',\n    },\n    {\n        id: '871001',\n        name: 'Flat',\n        value: '1',\n        sort: 0,\n        added: 'FIX.4.4',\n        description: 'Flat (securities pay interest on a current basis but are traded without interest)',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871002',\n        name: 'ZeroCoupon',\n        value: '2',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Zero coupon',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871003',\n        name: 'InterestBearing',\n        value: '3',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Interest bearing (for Euro commercial paper when not issued at discount)',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871004',\n        name: 'NoPeriodicPayments',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'No periodic payments',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871005',\n        name: 'VariableRate',\n        value: '5',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Variable rate',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871006',\n        name: 'LessFeeForPut',\n        value: '6',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Less fee for put',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871007',\n        name: 'SteppedCoupon',\n        value: '7',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Stepped coupon',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871008',\n        name: 'CouponPeriod',\n        value: '8',\n        sort: 7,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description:\n            'Coupon period (if not semi-annual)\\n\\n\\n                        Supply redemption date in the InstrAttribValue(872) field.',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871009',\n        name: 'When',\n        value: '9',\n        sort: 8,\n        added: 'FIX.4.4',\n        description: 'When [and if] issued',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871010',\n        name: 'OriginalIssueDiscount',\n        value: '10',\n        sort: 9,\n        added: 'FIX.4.4',\n        description: 'Original issue discount',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871011',\n        name: 'Callable',\n        value: '11',\n        sort: 10,\n        added: 'FIX.4.4',\n        description: 'Callable, puttable',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871012',\n        name: 'EscrowedToMaturity',\n        value: '12',\n        sort: 11,\n        added: 'FIX.4.4',\n        description: 'Escrowed to Maturity',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871013',\n        name: 'EscrowedToRedemptionDate',\n        value: '13',\n        sort: 12,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description:\n            'Escrowed to redemption date - callable\\n\\n\\n                        Supply redemption date in the InstrAttribValue(872) field.',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871014',\n        name: 'PreRefunded',\n        value: '14',\n        sort: 13,\n        added: 'FIX.4.4',\n        description: 'Pre-refunded',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871015',\n        name: 'InDefault',\n        value: '15',\n        sort: 14,\n        added: 'FIX.4.4',\n        description: 'In default',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871016',\n        name: 'Unrated',\n        value: '16',\n        sort: 15,\n        added: 'FIX.4.4',\n        description: 'Unrated',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871017',\n        name: 'Taxable',\n        value: '17',\n        sort: 16,\n        added: 'FIX.4.4',\n        description: 'Taxable',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871018',\n        name: 'Indexed',\n        value: '18',\n        sort: 17,\n        added: 'FIX.4.4',\n        description: 'Indexed',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871019',\n        name: 'SubjectToAlternativeMinimumTax',\n        value: '19',\n        sort: 18,\n        added: 'FIX.4.4',\n        description: 'Subject To Alternative Minimum Tax',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871020',\n        name: 'OriginalIssueDiscountPrice',\n        value: '20',\n        sort: 19,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description:\n            'Original issue discount price\\n\\n\\n                        Supply price in the InstrAttribValue(872) field.',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871021',\n        name: 'CallableBelowMaturityValue',\n        value: '21',\n        sort: 20,\n        added: 'FIX.4.4',\n        description: 'Callable below maturity value',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871022',\n        name: 'CallableWithoutNotice',\n        value: '22',\n        sort: 21,\n        added: 'FIX.4.4',\n        description: 'Callable without notice by mail to holder unless registered',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871023',\n        name: 'PriceTickRulesForSecurity',\n        value: '23',\n        sort: 22,\n        added: 'FIX.5.0',\n        addedEP: '42',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Price tick rules for security',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871024',\n        name: 'TradeTypeEligibilityDetailsForSecurity',\n        value: '24',\n        sort: 23,\n        added: 'FIX.5.0',\n        addedEP: '42',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Trade type eligibility details for security',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871025',\n        name: 'InstrumentDenominator',\n        value: '25',\n        sort: 26,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Instrument denominator',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871026',\n        name: 'InstrumentNumerator',\n        value: '26',\n        sort: 27,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Instrument numerator',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871027',\n        name: 'InstrumentPricePrecision',\n        value: '27',\n        sort: 28,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Instrument price precision',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871028',\n        name: 'InstrumentStrikePrice',\n        value: '28',\n        sort: 29,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Instrument strike price',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871029',\n        name: 'TradeableIndicator',\n        value: '29',\n        sort: 30,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Tradeable indicator',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871030',\n        name: 'InstrumentEligibleAnonOrders',\n        value: '30',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        description: 'Instrument is eligible to accept anonymous orders',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871031',\n        name: 'MinGuaranteedFillVolume',\n        value: '31',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Minimum guaranteed fill volume',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871032',\n        name: 'MinGuaranteedFillStatus',\n        value: '32',\n        sort: 33,\n        added: 'FIX.5.0SP2',\n        addedEP: '104',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Minimum guaranteed fill status',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871033',\n        name: 'TradeAtSettlementEligibility',\n        value: '33',\n        sort: 34,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Trade at settlement (TAS) eligibility',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871034',\n        name: 'TestInstrument',\n        value: '34',\n        sort: 35,\n        added: 'FIX.5.0SP2',\n        addedEP: '130',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description:\n            'Test instrument\\n\\n\\n                        Instrument that is tradable but has no effect on the positions, exchange turnover etc.',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871035',\n        name: 'DummyInstrument',\n        value: '35',\n        sort: 36,\n        added: 'FIX.5.0SP2',\n        addedEP: '130',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description:\n            'Dummy instrument\\n\\n\\n                        Instrument that is normally halted and is only activated for trading under very special conditions (e.g. temporarily assigned for newly listed instrument). Use of a dummy instrument generally applies to systems that are unable to add reference data for new instruments intraday.',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871036',\n        name: 'NegativeSettlementPriceEligibility',\n        value: '36',\n        sort: 37,\n        added: 'FIX.5.0SP2',\n        addedEP: '138',\n        description: 'Negative settlement price eligibility',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871037',\n        name: 'NegativeStrikePriceEligibility',\n        value: '37',\n        sort: 38,\n        added: 'FIX.5.0SP2',\n        addedEP: '138',\n        description: 'Negative strike price eligibility',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871038',\n        name: 'USStdContractInd',\n        value: '38',\n        sort: 39,\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description:\n            'US standard contract indicator\\n\\n\\n                        Indicates through InstrAttribValue(872) - values Y or N - whether the underlying asset in the trade references or is economically related to a contract listed in Appendix B of CFTC Part 43 regulation. See http://www.ecfr.gov/cgi-bin/text-idx?SID=4b2d1078ad68f6564a89d7ff6c52ec43&node=17:2.0.1.1.3.0.1.8.2&rgn=div or refer to Appendix B to Part 43 in the final rule at http://www.cftc.gov/ucm/groups/public/@lrfederalregister/documents/file/2013-12133a.pdf',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871039',\n        name: 'AdmittedToTradingOnTradingVenue',\n        value: '39',\n        sort: 40,\n        added: 'FIX.5.0SP2',\n        addedEP: '236',\n        description: 'Admitted to trading on a trading venue',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871040',\n        name: 'AverageDailyNotionalAmount',\n        value: '40',\n        sort: 41,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Average daily notional amount',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871041',\n        name: 'AverageDailyNumberTrades',\n        value: '41',\n        sort: 42,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Average daily number of trades',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '871042',\n        name: 'Text',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Text\\n\\n\\n                        Supply the text value in InstrAttribValue(872).',\n        tag: 871,\n        type: 'int',\n        codeSet: 'InstrAttribTypeCodeSet',\n    },\n    {\n        id: '875001',\n        name: 'Program3a3',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '201',\n        description:\n            '3(a)(3)\\n\\n\\n                        Arising out of a current transaction with a maturity less than 9 months.',\n        tag: 875,\n        type: 'int',\n        codeSet: 'CPProgramCodeSet',\n    },\n    {\n        id: '875002',\n        name: 'Program42',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '201',\n        description: '4(2)\\n\\n\\n                        Issued not involving any public offering.',\n        tag: 875,\n        type: 'int',\n        codeSet: 'CPProgramCodeSet',\n    },\n    {\n        id: '875003',\n        name: 'Program3a2',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '201',\n        description:\n            '3(a)(2)\\n\\n\\n                        Issued or guaranteed by the US, state or territorial government.',\n        tag: 875,\n        type: 'int',\n        codeSet: 'CPProgramCodeSet',\n    },\n    {\n        id: '875004',\n        name: 'Program3a3And3c7',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '201',\n        description: '3(a)(3) & 3(c)(7)\\n\\n\\n                        Combination of 3(a)(3) and 3(c)(7).',\n        tag: 875,\n        type: 'int',\n        codeSet: 'CPProgramCodeSet',\n    },\n    {\n        id: '875005',\n        name: 'Program3a4',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '201',\n        description:\n            '3(a)(4)\\n\\n\\n                        Religious, education, benevolent, fraternal, charitable or reformatory purposes.',\n        tag: 875,\n        type: 'int',\n        codeSet: 'CPProgramCodeSet',\n    },\n    {\n        id: '875006',\n        name: 'Program3a5',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '201',\n        description:\n            \"3(a)(5)\\n\\n\\n                        Issued by an institution supervised by state or federal authority or by an exempt farmer's cooperative.\",\n        tag: 875,\n        type: 'int',\n        codeSet: 'CPProgramCodeSet',\n    },\n    {\n        id: '875007',\n        name: 'Program3a7',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '201',\n        description: '3(a)(7)\\n\\n\\n                        Issued by a receiver or trustee in bankruptcy.',\n        tag: 875,\n        type: 'int',\n        codeSet: 'CPProgramCodeSet',\n    },\n    {\n        id: '875008',\n        name: 'Program3c7',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '201',\n        description:\n            '3(c)(7)\\n\\n\\n                        Qualified hedge-fund under the Investment Company Act of 1940.',\n        tag: 875,\n        type: 'int',\n        codeSet: 'CPProgramCodeSet',\n    },\n    {\n        id: '875009',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 875,\n        type: 'int',\n        codeSet: 'CPProgramCodeSet',\n    },\n    {\n        id: '891001',\n        name: 'Absolute',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '240',\n        description:\n            'Absolute\\n\\n\\n                        The fee or markup is a total fixed amount expressed in the currency of the trade.',\n        tag: 891,\n        type: 'int',\n        codeSet: 'MiscFeeBasisCodeSet',\n    },\n    {\n        id: '891002',\n        name: 'PerUnit',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '240',\n        description:\n            'Per Unit\\n\\n\\n                        The fee or markup is an amount per quantity unit, i.e. per share or contract, expressed in the currency of the trade.',\n        tag: 891,\n        type: 'int',\n        codeSet: 'MiscFeeBasisCodeSet',\n    },\n    {\n        id: '891003',\n        name: 'Percentage',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '240',\n        description:\n            'Percentage\\n\\n\\n                        The percentage is expressed in standard FIX \"Percentage\" datatype format, i.e. \"0.01\" for 1 percent and ranges between 0 and 1. It is the number which when multiplied by the trade price and quantity produces the total amount of the fee or markup.',\n        tag: 891,\n        type: 'int',\n        codeSet: 'MiscFeeBasisCodeSet',\n    },\n    {\n        id: '893001',\n        name: 'NotLastMessage',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Not Last Message',\n        tag: 893,\n        type: 'Boolean',\n        codeSet: 'LastFragmentCodeSet',\n    },\n    {\n        id: '893002',\n        name: 'LastMessage',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Last Message',\n        tag: 893,\n        type: 'Boolean',\n        codeSet: 'LastFragmentCodeSet',\n    },\n    {\n        id: '895001',\n        name: 'Initial',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Initial',\n        tag: 895,\n        type: 'int',\n        codeSet: 'CollAsgnReasonCodeSet',\n    },\n    {\n        id: '895002',\n        name: 'Scheduled',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Scheduled',\n        tag: 895,\n        type: 'int',\n        codeSet: 'CollAsgnReasonCodeSet',\n    },\n    {\n        id: '895003',\n        name: 'TimeWarning',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Time Warning',\n        tag: 895,\n        type: 'int',\n        codeSet: 'CollAsgnReasonCodeSet',\n    },\n    {\n        id: '895004',\n        name: 'MarginDeficiency',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description:\n            'Margin Deficiency\\n\\n\\n                        In a CollateralRequest(35=AX), this indicates there is a margin deficiency. In a CollateralAssignment(35=AY), this indicates that the assignment is a deposit to meet margin deficiency.',\n        tag: 895,\n        type: 'int',\n        codeSet: 'CollAsgnReasonCodeSet',\n    },\n    {\n        id: '895005',\n        name: 'MarginExcess',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description:\n            'Margin Excess\\n\\n\\n                        In a CollateralRequest(35=AX), this indicates there is excess margin. In a CollateralAssignment(35=AY), this indicates that the assignment is a withdrawal of the margin excess.',\n        tag: 895,\n        type: 'int',\n        codeSet: 'CollAsgnReasonCodeSet',\n    },\n    {\n        id: '895006',\n        name: 'ForwardCollateralDemand',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Forward Collateral Demand',\n        tag: 895,\n        type: 'int',\n        codeSet: 'CollAsgnReasonCodeSet',\n    },\n    {\n        id: '895007',\n        name: 'EventOfDefault',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.4',\n        description: 'Event of default',\n        tag: 895,\n        type: 'int',\n        codeSet: 'CollAsgnReasonCodeSet',\n    },\n    {\n        id: '895008',\n        name: 'AdverseTaxEvent',\n        value: '7',\n        sort: 8,\n        added: 'FIX.4.4',\n        description: 'Adverse tax event',\n        tag: 895,\n        type: 'int',\n        codeSet: 'CollAsgnReasonCodeSet',\n    },\n    {\n        id: '895009',\n        name: 'TransferDeposit',\n        value: '8',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description:\n            'Transfer deposit\\n\\n\\n                        Collateral deposit in which the asset is to be transferred from an undesignated holding into collateral. I.e. there is no intermediate conversion to cash.',\n        tag: 895,\n        type: 'int',\n        codeSet: 'CollAsgnReasonCodeSet',\n    },\n    {\n        id: '895010',\n        name: 'TransferWithdrawal',\n        value: '9',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description:\n            'Transfer withdrawal\\n\\n\\n                        Collateral withdrawal in which the asset is to be transferred from collateral into an undesignated holding. I.e. there is no intermediate conversion to cash.',\n        tag: 895,\n        type: 'int',\n        codeSet: 'CollAsgnReasonCodeSet',\n    },\n    {\n        id: '895011',\n        name: 'Pledge',\n        value: '10',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '197',\n        description:\n            'Pledge\\n\\n\\n                        The purpose of the collateral assignment is to pledge or \"lock up\" a value of a basket of securities, individual security or fund as collateral.',\n        tag: 895,\n        type: 'int',\n        codeSet: 'CollAsgnReasonCodeSet',\n    },\n    {\n        id: '896001',\n        name: 'TradeDate',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Trade Date',\n        tag: 896,\n        type: 'int',\n        codeSet: 'CollInquiryQualifierCodeSet',\n    },\n    {\n        id: '896002',\n        name: 'GCInstrument',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'GC Instrument',\n        tag: 896,\n        type: 'int',\n        codeSet: 'CollInquiryQualifierCodeSet',\n    },\n    {\n        id: '896003',\n        name: 'CollateralInstrument',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Collateral Instrument',\n        tag: 896,\n        type: 'int',\n        codeSet: 'CollInquiryQualifierCodeSet',\n    },\n    {\n        id: '896004',\n        name: 'SubstitutionEligible',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Substitution Eligible',\n        tag: 896,\n        type: 'int',\n        codeSet: 'CollInquiryQualifierCodeSet',\n    },\n    {\n        id: '896005',\n        name: 'NotAssigned',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Not Assigned',\n        tag: 896,\n        type: 'int',\n        codeSet: 'CollInquiryQualifierCodeSet',\n    },\n    {\n        id: '896006',\n        name: 'PartiallyAssigned',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Partially Assigned',\n        tag: 896,\n        type: 'int',\n        codeSet: 'CollInquiryQualifierCodeSet',\n    },\n    {\n        id: '896007',\n        name: 'FullyAssigned',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.4',\n        description: 'Fully Assigned',\n        tag: 896,\n        type: 'int',\n        codeSet: 'CollInquiryQualifierCodeSet',\n    },\n    {\n        id: '896008',\n        name: 'OutstandingTrades',\n        value: '7',\n        sort: 8,\n        added: 'FIX.4.4',\n        description: 'Outstanding Trades (Today < end date)',\n        tag: 896,\n        type: 'int',\n        codeSet: 'CollInquiryQualifierCodeSet',\n    },\n    {\n        id: '903001',\n        name: 'New',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'New',\n        tag: 903,\n        type: 'int',\n        codeSet: 'CollAsgnTransTypeCodeSet',\n    },\n    {\n        id: '903002',\n        name: 'Replace',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Replace',\n        tag: 903,\n        type: 'int',\n        codeSet: 'CollAsgnTransTypeCodeSet',\n    },\n    {\n        id: '903003',\n        name: 'Cancel',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Cancel',\n        tag: 903,\n        type: 'int',\n        codeSet: 'CollAsgnTransTypeCodeSet',\n    },\n    {\n        id: '903004',\n        name: 'Release',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Release',\n        tag: 903,\n        type: 'int',\n        codeSet: 'CollAsgnTransTypeCodeSet',\n    },\n    {\n        id: '903005',\n        name: 'Reverse',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Reverse',\n        tag: 903,\n        type: 'int',\n        codeSet: 'CollAsgnTransTypeCodeSet',\n    },\n    {\n        id: '905001',\n        name: 'Received',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Received',\n        tag: 905,\n        type: 'int',\n        codeSet: 'CollAsgnRespTypeCodeSet',\n    },\n    {\n        id: '905002',\n        name: 'Accepted',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Accepted',\n        tag: 905,\n        type: 'int',\n        codeSet: 'CollAsgnRespTypeCodeSet',\n    },\n    {\n        id: '905003',\n        name: 'Declined',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Declined',\n        tag: 905,\n        type: 'int',\n        codeSet: 'CollAsgnRespTypeCodeSet',\n    },\n    {\n        id: '905004',\n        name: 'Rejected',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Rejected',\n        tag: 905,\n        type: 'int',\n        codeSet: 'CollAsgnRespTypeCodeSet',\n    },\n    {\n        id: '905005',\n        name: 'TransactionPending',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Transaction pending\\n\\n\\n                        The collateral assignment transaction is pending at the recipient.',\n        tag: 905,\n        type: 'int',\n        codeSet: 'CollAsgnRespTypeCodeSet',\n    },\n    {\n        id: '905006',\n        name: 'TransactionCompletedWithWarning',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Transaction completed with warning - see Text(58) for further information.\\n\\n\\n                        The collateral assignment transaction was accepted and completed but with warnings.',\n        tag: 905,\n        type: 'int',\n        codeSet: 'CollAsgnRespTypeCodeSet',\n    },\n    {\n        id: '906001',\n        name: 'UnknownDeal',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Unknown deal (order / trade)',\n        tag: 906,\n        type: 'int',\n        codeSet: 'CollAsgnRejectReasonCodeSet',\n    },\n    {\n        id: '906002',\n        name: 'UnknownOrInvalidInstrument',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Unknown or invalid instrument',\n        tag: 906,\n        type: 'int',\n        codeSet: 'CollAsgnRejectReasonCodeSet',\n    },\n    {\n        id: '906003',\n        name: 'UnauthorizedTransaction',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Unauthorized transaction',\n        tag: 906,\n        type: 'int',\n        codeSet: 'CollAsgnRejectReasonCodeSet',\n    },\n    {\n        id: '906004',\n        name: 'InsufficientCollateral',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Insufficient collateral',\n        tag: 906,\n        type: 'int',\n        codeSet: 'CollAsgnRejectReasonCodeSet',\n    },\n    {\n        id: '906005',\n        name: 'InvalidTypeOfCollateral',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Invalid type of collateral',\n        tag: 906,\n        type: 'int',\n        codeSet: 'CollAsgnRejectReasonCodeSet',\n    },\n    {\n        id: '906006',\n        name: 'ExcessiveSubstitution',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Excessive substitution',\n        tag: 906,\n        type: 'int',\n        codeSet: 'CollAsgnRejectReasonCodeSet',\n    },\n    {\n        id: '906007',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 906,\n        type: 'int',\n        codeSet: 'CollAsgnRejectReasonCodeSet',\n    },\n    {\n        id: '910001',\n        name: 'Unassigned',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Unassigned',\n        tag: 910,\n        type: 'int',\n        codeSet: 'CollStatusCodeSet',\n    },\n    {\n        id: '910002',\n        name: 'PartiallyAssigned',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Partially Assigned',\n        tag: 910,\n        type: 'int',\n        codeSet: 'CollStatusCodeSet',\n    },\n    {\n        id: '910003',\n        name: 'AssignmentProposed',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Assignment Proposed',\n        tag: 910,\n        type: 'int',\n        codeSet: 'CollStatusCodeSet',\n    },\n    {\n        id: '910004',\n        name: 'Assigned',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Assigned (Accepted)',\n        tag: 910,\n        type: 'int',\n        codeSet: 'CollStatusCodeSet',\n    },\n    {\n        id: '910005',\n        name: 'Challenged',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Challenged',\n        tag: 910,\n        type: 'int',\n        codeSet: 'CollStatusCodeSet',\n    },\n    {\n        id: '910006',\n        name: 'Reused',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Reused\\n\\n\\n                        A modification of the details of the collateral re-use. In the context of EU SFTR reporting, to be used with RegulatoryReportType(1934)=31 (Collateral update).',\n        tag: 910,\n        type: 'int',\n        codeSet: 'CollStatusCodeSet',\n    },\n    {\n        id: '912001',\n        name: 'NotLastMessage',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Not last message',\n        tag: 912,\n        type: 'Boolean',\n        codeSet: 'LastRptRequestedCodeSet',\n    },\n    {\n        id: '912002',\n        name: 'LastMessage',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Last message',\n        tag: 912,\n        type: 'Boolean',\n        codeSet: 'LastRptRequestedCodeSet',\n    },\n    {\n        id: '919001',\n        name: 'VersusPayment',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: '\"Versus Payment\": Deliver (if sell) or Receive (if buy) vs. (against) Payment',\n        tag: 919,\n        type: 'int',\n        codeSet: 'DeliveryTypeCodeSet',\n    },\n    {\n        id: '919002',\n        name: 'Free',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: '\"Free\": Deliver (if sell) or Receive (if buy) Free',\n        tag: 919,\n        type: 'int',\n        codeSet: 'DeliveryTypeCodeSet',\n    },\n    {\n        id: '919003',\n        name: 'TriParty',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Tri-Party',\n        tag: 919,\n        type: 'int',\n        codeSet: 'DeliveryTypeCodeSet',\n    },\n    {\n        id: '919004',\n        name: 'HoldInCustody',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Hold In Custody',\n        tag: 919,\n        type: 'int',\n        codeSet: 'DeliveryTypeCodeSet',\n    },\n    {\n        id: '919005',\n        name: 'DeliverByValue',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Deliver-by-Value\\n\\n\\n                        In the context of EU SFTR reporting, indicates that the transaction is to be or was settled using the DBV mechanism.',\n        tag: 919,\n        type: 'int',\n        codeSet: 'DeliveryTypeCodeSet',\n    },\n    {\n        id: '924001',\n        name: 'LogOnUser',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Log On User',\n        tag: 924,\n        type: 'int',\n        codeSet: 'UserRequestTypeCodeSet',\n    },\n    {\n        id: '924002',\n        name: 'LogOffUser',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Log Off User',\n        tag: 924,\n        type: 'int',\n        codeSet: 'UserRequestTypeCodeSet',\n    },\n    {\n        id: '924003',\n        name: 'ChangePasswordForUser',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Change Password For User',\n        tag: 924,\n        type: 'int',\n        codeSet: 'UserRequestTypeCodeSet',\n    },\n    {\n        id: '924004',\n        name: 'RequestIndividualUserStatus',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Request Individual User Status',\n        tag: 924,\n        type: 'int',\n        codeSet: 'UserRequestTypeCodeSet',\n    },\n];\n\nconst batch2: ISpecEnums[] = [\n    {\n        id: '924005',\n        name: 'RequestThrottleLimit',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Request Throttle Limit',\n        tag: 924,\n        type: 'int',\n        codeSet: 'UserRequestTypeCodeSet',\n    },\n    {\n        id: '926001',\n        name: 'LoggedIn',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Logged In',\n        tag: 926,\n        type: 'int',\n        codeSet: 'UserStatusCodeSet',\n    },\n    {\n        id: '926002',\n        name: 'NotLoggedIn',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Not Logged In',\n        tag: 926,\n        type: 'int',\n        codeSet: 'UserStatusCodeSet',\n    },\n    {\n        id: '926003',\n        name: 'UserNotRecognised',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'User Not Recognised',\n        tag: 926,\n        type: 'int',\n        codeSet: 'UserStatusCodeSet',\n    },\n    {\n        id: '926004',\n        name: 'PasswordIncorrect',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Password Incorrect',\n        tag: 926,\n        type: 'int',\n        codeSet: 'UserStatusCodeSet',\n    },\n    {\n        id: '926005',\n        name: 'PasswordChanged',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Password Changed',\n        tag: 926,\n        type: 'int',\n        codeSet: 'UserStatusCodeSet',\n    },\n    {\n        id: '926006',\n        name: 'Other',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Other',\n        tag: 926,\n        type: 'int',\n        codeSet: 'UserStatusCodeSet',\n    },\n    {\n        id: '926007',\n        name: 'ForcedUserLogoutByExchange',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'Forced user logout by Exchange',\n        tag: 926,\n        type: 'int',\n        codeSet: 'UserStatusCodeSet',\n    },\n    {\n        id: '926008',\n        name: 'SessionShutdownWarning',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'Session shutdown warning',\n        tag: 926,\n        type: 'int',\n        codeSet: 'UserStatusCodeSet',\n    },\n    {\n        id: '926009',\n        name: 'ThrottleParametersChanged',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Throttle parameters changed',\n        tag: 926,\n        type: 'int',\n        codeSet: 'UserStatusCodeSet',\n    },\n    {\n        id: '928001',\n        name: 'Connected',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Connected',\n        tag: 928,\n        type: 'int',\n        codeSet: 'StatusValueCodeSet',\n    },\n    {\n        id: '928002',\n        name: 'NotConnectedUnexpected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Not Connected - down expected up',\n        tag: 928,\n        type: 'int',\n        codeSet: 'StatusValueCodeSet',\n    },\n    {\n        id: '928003',\n        name: 'NotConnectedExpected',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Not Connected - down expected down',\n        tag: 928,\n        type: 'int',\n        codeSet: 'StatusValueCodeSet',\n    },\n    {\n        id: '928004',\n        name: 'InProcess',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'In Process',\n        tag: 928,\n        type: 'int',\n        codeSet: 'StatusValueCodeSet',\n    },\n    {\n        id: '935001',\n        name: 'Snapshot',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Snapshot',\n        tag: 935,\n        type: 'int',\n        codeSet: 'NetworkRequestTypeCodeSet',\n    },\n    {\n        id: '935002',\n        name: 'Subscribe',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Subscribe',\n        tag: 935,\n        type: 'int',\n        codeSet: 'NetworkRequestTypeCodeSet',\n    },\n    {\n        id: '935003',\n        name: 'StopSubscribing',\n        value: '4',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Stop Subscribing',\n        tag: 935,\n        type: 'int',\n        codeSet: 'NetworkRequestTypeCodeSet',\n    },\n    {\n        id: '935004',\n        name: 'LevelOfDetail',\n        value: '8',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: \"Level of Detail, then NoCompID's becomes required\",\n        tag: 935,\n        type: 'int',\n        codeSet: 'NetworkRequestTypeCodeSet',\n    },\n    {\n        id: '937001',\n        name: 'Full',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Full',\n        tag: 937,\n        type: 'int',\n        codeSet: 'NetworkStatusResponseTypeCodeSet',\n    },\n    {\n        id: '937002',\n        name: 'IncrementalUpdate',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Incremental Update',\n        tag: 937,\n        type: 'int',\n        codeSet: 'NetworkStatusResponseTypeCodeSet',\n    },\n    {\n        id: '939001',\n        name: 'Accepted',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Accepted',\n        tag: 939,\n        type: 'int',\n        codeSet: 'TrdRptStatusCodeSet',\n    },\n    {\n        id: '939002',\n        name: 'Rejected',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Rejected',\n        tag: 939,\n        type: 'int',\n        codeSet: 'TrdRptStatusCodeSet',\n    },\n    {\n        id: '939003',\n        name: 'Cancelled',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Cancelled',\n        tag: 939,\n        type: 'int',\n        codeSet: 'TrdRptStatusCodeSet',\n    },\n    {\n        id: '939004',\n        name: 'AcceptedWithErrors',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '13',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '107',\n        description: 'Accepted with errors',\n        tag: 939,\n        type: 'int',\n        codeSet: 'TrdRptStatusCodeSet',\n    },\n    {\n        id: '939005',\n        name: 'PendingNew',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Pending New',\n        tag: 939,\n        type: 'int',\n        codeSet: 'TrdRptStatusCodeSet',\n    },\n    {\n        id: '939006',\n        name: 'PendingCancel',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Pending Cancel',\n        tag: 939,\n        type: 'int',\n        codeSet: 'TrdRptStatusCodeSet',\n    },\n    {\n        id: '939007',\n        name: 'PendingReplace',\n        value: '6',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Pending Replace',\n        tag: 939,\n        type: 'int',\n        codeSet: 'TrdRptStatusCodeSet',\n    },\n    {\n        id: '939008',\n        name: 'Terminated',\n        value: '7',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '165',\n        description: 'Terminated',\n        tag: 939,\n        type: 'int',\n        codeSet: 'TrdRptStatusCodeSet',\n    },\n    {\n        id: '939009',\n        name: 'PendingVerification',\n        value: '8',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Pending verification\\n\\n\\n                        Used in reports from the SDR to the regulator and to trading parties to indicate that the trade details have not been verified by one or both parties.',\n        tag: 939,\n        type: 'int',\n        codeSet: 'TrdRptStatusCodeSet',\n    },\n    {\n        id: '939010',\n        name: 'DeemedVerified',\n        value: '9',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Deemed verified\\n\\n\\n                        Used in reports from the SDR to the regulator and to trading parties to indicate that the trade details are deemed verified by the SDR but have not been confirmed by the trading parties.',\n        tag: 939,\n        type: 'int',\n        codeSet: 'TrdRptStatusCodeSet',\n    },\n    {\n        id: '939011',\n        name: 'Verified',\n        value: '10',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Verified\\n\\n\\n                        Used in reports from the SDR to the regulator and to trading parties to indicate that the trade details have been confirmed by the trading parties.',\n        tag: 939,\n        type: 'int',\n        codeSet: 'TrdRptStatusCodeSet',\n    },\n    {\n        id: '939012',\n        name: 'Disputed',\n        value: '11',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Disputed\\n\\n\\n                        Used in reports from the SDR to the regulator and to trading parties to indicate that the trade details have been disputed by a trading party.',\n        tag: 939,\n        type: 'int',\n        codeSet: 'TrdRptStatusCodeSet',\n    },\n    {\n        id: '940001',\n        name: 'Received',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Received',\n        tag: 940,\n        type: 'int',\n        codeSet: 'AffirmStatusCodeSet',\n    },\n    {\n        id: '940002',\n        name: 'ConfirmRejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Confirm rejected, i.e. not affirmed',\n        tag: 940,\n        type: 'int',\n        codeSet: 'AffirmStatusCodeSet',\n    },\n    {\n        id: '940003',\n        name: 'Affirmed',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Affirmed',\n        tag: 940,\n        type: 'int',\n        codeSet: 'AffirmStatusCodeSet',\n    },\n    {\n        id: '944001',\n        name: 'Retain',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Retain',\n        tag: 944,\n        type: 'int',\n        codeSet: 'CollActionCodeSet',\n    },\n    {\n        id: '944002',\n        name: 'Add',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Add',\n        tag: 944,\n        type: 'int',\n        codeSet: 'CollActionCodeSet',\n    },\n    {\n        id: '944003',\n        name: 'Remove',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Remove',\n        tag: 944,\n        type: 'int',\n        codeSet: 'CollActionCodeSet',\n    },\n    {\n        id: '945001',\n        name: 'Accepted',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Accepted',\n        tag: 945,\n        type: 'int',\n        codeSet: 'CollInquiryStatusCodeSet',\n    },\n    {\n        id: '945002',\n        name: 'AcceptedWithWarnings',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Accepted With Warnings',\n        tag: 945,\n        type: 'int',\n        codeSet: 'CollInquiryStatusCodeSet',\n    },\n    {\n        id: '945003',\n        name: 'Completed',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Completed',\n        tag: 945,\n        type: 'int',\n        codeSet: 'CollInquiryStatusCodeSet',\n    },\n    {\n        id: '945004',\n        name: 'CompletedWithWarnings',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Completed With Warnings',\n        tag: 945,\n        type: 'int',\n        codeSet: 'CollInquiryStatusCodeSet',\n    },\n    {\n        id: '945005',\n        name: 'Rejected',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Rejected',\n        tag: 945,\n        type: 'int',\n        codeSet: 'CollInquiryStatusCodeSet',\n    },\n    {\n        id: '946001',\n        name: 'Successful',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        description: 'Successful (default)',\n        tag: 946,\n        type: 'int',\n        codeSet: 'CollInquiryResultCodeSet',\n    },\n    {\n        id: '946002',\n        name: 'InvalidOrUnknownInstrument',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        description: 'Invalid or unknown instrument',\n        tag: 946,\n        type: 'int',\n        codeSet: 'CollInquiryResultCodeSet',\n    },\n    {\n        id: '946003',\n        name: 'InvalidOrUnknownCollateralType',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        description: 'Invalid or unknown collateral type',\n        tag: 946,\n        type: 'int',\n        codeSet: 'CollInquiryResultCodeSet',\n    },\n    {\n        id: '946004',\n        name: 'InvalidParties',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        description: 'Invalid Parties',\n        tag: 946,\n        type: 'int',\n        codeSet: 'CollInquiryResultCodeSet',\n    },\n    {\n        id: '946005',\n        name: 'InvalidTransportTypeRequested',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        description: 'Invalid Transport Type requested',\n        tag: 946,\n        type: 'int',\n        codeSet: 'CollInquiryResultCodeSet',\n    },\n    {\n        id: '946006',\n        name: 'InvalidDestinationRequested',\n        value: '5',\n        sort: 6,\n        added: 'FIX.4.4',\n        description: 'Invalid Destination requested',\n        tag: 946,\n        type: 'int',\n        codeSet: 'CollInquiryResultCodeSet',\n    },\n    {\n        id: '946007',\n        name: 'NoCollateralFoundForTheTradeSpecified',\n        value: '6',\n        sort: 7,\n        added: 'FIX.4.4',\n        description: 'No collateral found for the trade specified',\n        tag: 946,\n        type: 'int',\n        codeSet: 'CollInquiryResultCodeSet',\n    },\n    {\n        id: '946008',\n        name: 'NoCollateralFoundForTheOrderSpecified',\n        value: '7',\n        sort: 8,\n        added: 'FIX.4.4',\n        description: 'No collateral found for the order specified',\n        tag: 946,\n        type: 'int',\n        codeSet: 'CollInquiryResultCodeSet',\n    },\n    {\n        id: '946009',\n        name: 'CollateralInquiryTypeNotSupported',\n        value: '8',\n        sort: 9,\n        added: 'FIX.4.4',\n        description: 'Collateral inquiry type not supported',\n        tag: 946,\n        type: 'int',\n        codeSet: 'CollInquiryResultCodeSet',\n    },\n    {\n        id: '946010',\n        name: 'UnauthorizedForCollateralInquiry',\n        value: '9',\n        sort: 10,\n        added: 'FIX.4.4',\n        description: 'Unauthorized for collateral inquiry',\n        tag: 946,\n        type: 'int',\n        codeSet: 'CollInquiryResultCodeSet',\n    },\n    {\n        id: '946011',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.4.4',\n        description: 'Other (further information in Text (58) field)',\n        tag: 946,\n        type: 'int',\n        codeSet: 'CollInquiryResultCodeSet',\n    },\n    {\n        id: '959001',\n        name: 'Int',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Int',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959002',\n        name: 'Length',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Length',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959003',\n        name: 'NumInGroup',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'NumInGroup',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959004',\n        name: 'SeqNum',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'SeqNum',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959005',\n        name: 'TagNum',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'TagNum',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959006',\n        name: 'Float',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'float',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959007',\n        name: 'Qty',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Qty',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959008',\n        name: 'Price',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Price',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959009',\n        name: 'PriceOffset',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'PriceOffset',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959010',\n        name: 'Amt',\n        value: '10',\n        sort: 10,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Amt',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959011',\n        name: 'Percentage',\n        value: '11',\n        sort: 11,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Percentage',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959012',\n        name: 'Char',\n        value: '12',\n        sort: 12,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Char',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959013',\n        name: 'Boolean',\n        value: '13',\n        sort: 13,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Boolean',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959014',\n        name: 'String',\n        value: '14',\n        sort: 14,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'String',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959015',\n        name: 'MultipleCharValue',\n        value: '15',\n        sort: 15,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'MultipleCharValue',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959016',\n        name: 'Currency',\n        value: '16',\n        sort: 16,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Currency',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959017',\n        name: 'Exchange',\n        value: '17',\n        sort: 17,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Exchange',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959018',\n        name: 'MonthYear',\n        value: '18',\n        sort: 18,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'MonthYear',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959019',\n        name: 'UTCTimestamp',\n        value: '19',\n        sort: 19,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'UTCTimestamp',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959020',\n        name: 'UTCTimeOnly',\n        value: '20',\n        sort: 20,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'UTCTimeOnly',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959021',\n        name: 'LocalMktDate',\n        value: '21',\n        sort: 21,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'LocalMktDate',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959022',\n        name: 'UTCDateOnly',\n        value: '22',\n        sort: 22,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'UTCDateOnly',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959023',\n        name: 'Data',\n        value: '23',\n        sort: 23,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'data',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959024',\n        name: 'MultipleStringValue',\n        value: '24',\n        sort: 24,\n        added: 'FIX.4.4',\n        addedEP: '34',\n        description: 'MultipleStringValue',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959025',\n        name: 'Country',\n        value: '25',\n        sort: 25,\n        added: 'FIX.5.0SP1',\n        addedEP: '95',\n        description: 'Country',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959026',\n        name: 'Language',\n        value: '26',\n        sort: 26,\n        added: 'FIX.5.0SP1',\n        addedEP: '95',\n        description: 'Language',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959027',\n        name: 'TZTimeOnly',\n        value: '27',\n        sort: 27,\n        added: 'FIX.5.0SP1',\n        addedEP: '95',\n        description: 'TZTimeOnly',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959028',\n        name: 'TZTimestamp',\n        value: '28',\n        sort: 28,\n        added: 'FIX.5.0SP1',\n        addedEP: '95',\n        description: 'TZTimestamp',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '959029',\n        name: 'Tenor',\n        value: '29',\n        sort: 29,\n        added: 'FIX.5.0SP1',\n        addedEP: '95',\n        description: 'Tenor',\n        tag: 959,\n        type: 'int',\n        codeSet: 'StrategyParameterTypeCodeSet',\n    },\n    {\n        id: '965001',\n        name: 'Active',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description: 'Active\\n\\n\\n                        Instrument is active, i.e. trading is possible.',\n        tag: 965,\n        type: 'String',\n        codeSet: 'SecurityStatusCodeSet',\n    },\n    {\n        id: '965002',\n        name: 'Inactive',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description:\n            'Inactive\\n\\n\\n                        Instrument has previously been active and is now no longer traded but has not expired yet. The instrument may become active again.',\n        tag: 965,\n        type: 'String',\n        codeSet: 'SecurityStatusCodeSet',\n    },\n    {\n        id: '965003',\n        name: 'ActiveClosingOrdersOnly',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Active, closing orders only\\n\\n\\n                        Instrument is active but only orders closing positions (reducing risk) are allowed.',\n        tag: 965,\n        type: 'String',\n        codeSet: 'SecurityStatusCodeSet',\n    },\n    {\n        id: '965004',\n        name: 'Expired',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Expired\\n\\n\\n                        Instrument has expired. E.g. An instrument may expire due to reaching maturity or expired based on contract definitions or exchange rules.',\n        tag: 965,\n        type: 'String',\n        codeSet: 'SecurityStatusCodeSet',\n    },\n    {\n        id: '965005',\n        name: 'Delisted',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Delisted\\n\\n\\n                        Instrument has been removed from securities reference data. Delisting rules varies from exchange to exchange, which may include non-compliance of capitalization, revenue, consecutive minimum closing price. The instrument may become listed again once the instrument is back in compliance. A delisted instrument would not trade on the exchange but it may still be traded over-the-counter (e.g. OTCBB) or on Pink Sheets, or other similar trading service.',\n        tag: 965,\n        type: 'String',\n        codeSet: 'SecurityStatusCodeSet',\n    },\n    {\n        id: '965006',\n        name: 'KnockedOut',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Knocked-out\\n\\n\\n                        Instrument has breached a pre-defined price threshold.',\n        tag: 965,\n        type: 'String',\n        codeSet: 'SecurityStatusCodeSet',\n    },\n    {\n        id: '965007',\n        name: 'KnockOutRevoked',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Knock-out revoked\\n\\n\\n                        Instrument reinstated, i.e. threshold has not been breached.',\n        tag: 965,\n        type: 'String',\n        codeSet: 'SecurityStatusCodeSet',\n    },\n    {\n        id: '965008',\n        name: 'PendingExpiry',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            \"Pending Expiry\\n\\n\\n                        Instrument is currently still active but will expire after the current business day. For example, a contract that expires intra-day (e.g. at noon time) and is no longer tradeable but will still show up in the current day's order book with related statistics.\",\n        tag: 965,\n        type: 'String',\n        codeSet: 'SecurityStatusCodeSet',\n    },\n    {\n        id: '965009',\n        name: 'Suspended',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Suspended\\n\\n\\n                        Instrument has been temporarily disabled for trading (i.e. halted).',\n        tag: 965,\n        type: 'String',\n        codeSet: 'SecurityStatusCodeSet',\n    },\n    {\n        id: '965010',\n        name: 'Published',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Published\\n\\n\\n                        Instrument information is provided prior to its first activation.',\n        tag: 965,\n        type: 'String',\n        codeSet: 'SecurityStatusCodeSet',\n    },\n    {\n        id: '965011',\n        name: 'PendingDeletion',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Pending Deletion\\n\\n\\n                        Instrument is awaiting deletion from security reference data.',\n        tag: 965,\n        type: 'String',\n        codeSet: 'SecurityStatusCodeSet',\n    },\n    {\n        id: '974001',\n        name: 'FIXED',\n        value: 'FIXED',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'FIXED',\n        tag: 974,\n        type: 'String',\n        codeSet: 'UnderlyingCashTypeCodeSet',\n    },\n    {\n        id: '974002',\n        name: 'DIFF',\n        value: 'DIFF',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'DIFF',\n        tag: 974,\n        type: 'String',\n        codeSet: 'UnderlyingCashTypeCodeSet',\n    },\n    {\n        id: '975001',\n        name: 'TPlus1',\n        value: '2',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'T+1',\n        tag: 975,\n        type: 'int',\n        codeSet: 'UnderlyingSettlementTypeCodeSet',\n    },\n    {\n        id: '975002',\n        name: 'TPlus3',\n        value: '4',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'T+3',\n        tag: 975,\n        type: 'int',\n        codeSet: 'UnderlyingSettlementTypeCodeSet',\n    },\n    {\n        id: '975003',\n        name: 'TPlus4',\n        value: '5',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'T+4',\n        tag: 975,\n        type: 'int',\n        codeSet: 'UnderlyingSettlementTypeCodeSet',\n    },\n    {\n        id: '980001',\n        name: 'Add',\n        value: 'A',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Add',\n        tag: 980,\n        type: 'char',\n        codeSet: 'SecurityUpdateActionCodeSet',\n    },\n    {\n        id: '980002',\n        name: 'Delete',\n        value: 'D',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Delete',\n        tag: 980,\n        type: 'char',\n        codeSet: 'SecurityUpdateActionCodeSet',\n    },\n    {\n        id: '980003',\n        name: 'Modify',\n        value: 'M',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Modify',\n        tag: 980,\n        type: 'char',\n        codeSet: 'SecurityUpdateActionCodeSet',\n    },\n    {\n        id: '982001',\n        name: 'AutoExercise',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Auto Exercise',\n        tag: 982,\n        type: 'int',\n        codeSet: 'ExpirationQtyTypeCodeSet',\n    },\n    {\n        id: '982002',\n        name: 'NonAutoExercise',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Non Auto Exercise',\n        tag: 982,\n        type: 'int',\n        codeSet: 'ExpirationQtyTypeCodeSet',\n    },\n    {\n        id: '982003',\n        name: 'FinalWillBeExercised',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Final Will Be Exercised',\n        tag: 982,\n        type: 'int',\n        codeSet: 'ExpirationQtyTypeCodeSet',\n    },\n    {\n        id: '982004',\n        name: 'ContraryIntention',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Contrary Intention',\n        tag: 982,\n        type: 'int',\n        codeSet: 'ExpirationQtyTypeCodeSet',\n    },\n    {\n        id: '982005',\n        name: 'Difference',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Difference',\n        tag: 982,\n        type: 'int',\n        codeSet: 'ExpirationQtyTypeCodeSet',\n    },\n    {\n        id: '992001',\n        name: 'SubAllocate',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Sub Allocate',\n        tag: 992,\n        type: 'int',\n        codeSet: 'IndividualAllocTypeCodeSet',\n    },\n    {\n        id: '992002',\n        name: 'ThirdPartyAllocation',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Third Party Allocation',\n        tag: 992,\n        type: 'int',\n        codeSet: 'IndividualAllocTypeCodeSet',\n    },\n    {\n        id: '996001',\n        name: 'BillionCubicFeet',\n        value: 'Bcf',\n        sort: 1,\n        group: 'Fixed Magnitude UOM',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Billion cubic feet',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996002',\n        name: 'CubicMeters',\n        value: 'CBM',\n        sort: 2,\n        group: 'Fixed Magnitude UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Cubic Meters',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996003',\n        name: 'Gigajoules',\n        value: 'GJ',\n        sort: 3,\n        group: 'Fixed Magnitude UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '152',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description: 'gigajoules',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996004',\n        name: 'HeatRate',\n        value: 'kHR',\n        sort: 4,\n        group: 'Fixed Magnitude UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '243',\n        description:\n            'Heat rate\\n\\n\\n                        The number of BTUs required to produce one kilowatt hour of electricity, typically 3,412.14 BTUs per 1 kWh.',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996005',\n        name: 'KilowattHours',\n        value: 'kWh',\n        sort: 5,\n        group: 'Fixed Magnitude UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '243',\n        description: 'Kilowatt hours',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996006',\n        name: 'MegaHeatRate',\n        value: 'MHR',\n        sort: 6,\n        group: 'Fixed Magnitude UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '243',\n        description:\n            'Mega heat rate\\n\\n\\n                        The number of million BTUs required to produce one megawatt hour of electricity, typically 3.41214 million BTUs per 1 MWh.',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996007',\n        name: 'OneMillionBTU',\n        value: 'MMBtu',\n        sort: 7,\n        group: 'Fixed Magnitude UOM',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '243',\n        description: 'One Million BTU',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996008',\n        name: 'MegawattHours',\n        value: 'MWh',\n        sort: 8,\n        group: 'Fixed Magnitude UOM',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '243',\n        description: 'Megawatt hours',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996009',\n        name: 'Therms',\n        value: 'thm',\n        sort: 9,\n        group: 'Fixed Magnitude UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '152',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description: 'therms\\n\\n\\n                        Equal to 100,000 BTU',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996010',\n        name: 'TonsOfCarbonDioxide',\n        value: 'tnCO2',\n        sort: 10,\n        group: 'Fixed Magnitude UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Tons of carbon dioxide',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996011',\n        name: 'MillionBarrels',\n        value: 'MMbbl',\n        sort: 99,\n        group: 'Fixed Magnitude UOM',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        deprecated: 'FIX.5.0SP1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Million Barrels',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996012',\n        name: 'Allowances',\n        value: 'Alw',\n        sort: 1,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP1',\n        addedEP: '89',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Allowances',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996013',\n        name: 'Barrels',\n        value: 'Bbl',\n        sort: 2,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Barrels\\n\\n\\n                        Equal to 42 US gallons',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996014',\n        name: 'BoardFeet',\n        value: 'BDFT',\n        sort: 3,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Board feet\\n\\n\\n                        Equal to 144 cubic inches',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996015',\n        name: 'Bushels',\n        value: 'Bu',\n        sort: 4,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Bushels',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996016',\n        name: 'Currency',\n        value: 'Ccy',\n        sort: 5,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Amount of currency',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996017',\n        name: 'CoolingDegreeDay',\n        value: 'CDD',\n        sort: 6,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Cooling degree day',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996018',\n        name: 'CertifiedEmissionsReduction',\n        value: 'CER',\n        sort: 7,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Certified emissions reduction',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996019',\n        name: 'CriticalPrecipDay',\n        value: 'CPD',\n        sort: 8,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Critical precipitation day',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996020',\n        name: 'ClimateReserveTonnes',\n        value: 'CRT',\n        sort: 9,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Climate reserve tonnes',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996021',\n        name: 'Hundredweight',\n        value: 'cwt',\n        sort: 10,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Hundredweight(US)\\n\\n\\n                        Equal to 100 lbs',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996022',\n        name: 'Day',\n        value: 'day',\n        sort: 11,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Days',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996023',\n        name: 'DryMetricTons',\n        value: 'dt',\n        sort: 12,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Dry metric tons',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996024',\n        name: 'EnvAllwncCert',\n        value: 'EnvAllwnc',\n        sort: 13,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Environmental allowance certificates',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996025',\n        name: 'EnvironmentalCredit',\n        value: 'EnvCrd',\n        sort: 14,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Environmental credit',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996026',\n        name: 'EnvironmentalOffset',\n        value: 'EnvOfst',\n        sort: 15,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Environmental Offset',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996027',\n        name: 'Grams',\n        value: 'g',\n        sort: 16,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Grams',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996028',\n        name: 'Gallons',\n        value: 'Gal',\n        sort: 17,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Gallons',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996029',\n        name: 'GrossTons',\n        value: 'GT',\n        sort: 18,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '154',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'Gross tons\\n\\n\\n                        Also known as long tons or imperial tons, equal to 2240 lbs',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996030',\n        name: 'HeatingDegreeDay',\n        value: 'HDD',\n        sort: 19,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Heating degree day',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996031',\n        name: 'IndexPoint',\n        value: 'IPNT',\n        sort: 20,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Index point',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996032',\n        name: 'Kilograms',\n        value: 'kg',\n        sort: 21,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '154',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Kilograms',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996033',\n        name: 'Kiloliters',\n        value: 'kL',\n        sort: 22,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '152',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description: 'kiloliters',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996034',\n        name: 'KilowattYear',\n        value: 'kW-a',\n        sort: 23,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: 'Kilowatt year (electrical capacity)',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996035',\n        name: 'KilowattDay',\n        value: 'kW-d',\n        sort: 24,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: 'Kilowatt day (electrical capacity)',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996036',\n        name: 'KilowattHour',\n        value: 'kW-h',\n        sort: 25,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: 'Kilowatt hour (electrical capacity)',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996037',\n        name: 'KilowattMonth',\n        value: 'kW-M',\n        sort: 26,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: 'Kilowatt month (electrical capacity)',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996038',\n        name: 'KilowattMinute',\n        value: 'kW-min',\n        sort: 27,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        description: 'Kilowatt-Minute (electrical capacity)',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996039',\n        name: 'Liters',\n        value: 'L',\n        sort: 28,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '152',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description: 'liters',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996040',\n        name: 'Pounds',\n        value: 'lbs',\n        sort: 29,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'pounds',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996041',\n        name: 'MegawattYear',\n        value: 'MW-a',\n        sort: 30,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: 'Megawatt year (electrical capacity)',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996042',\n        name: 'MegawattDay',\n        value: 'MW-d',\n        sort: 31,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: 'Megawatt day (electrical capacity)',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996043',\n        name: 'MegawattHour',\n        value: 'MW-h',\n        sort: 32,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: 'Megawatt hour (electrical capacity)',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996044',\n        name: 'MegawattMonth',\n        value: 'MW-M',\n        sort: 33,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: 'Megawatt month (electrical capacity)',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996045',\n        name: 'MegawattMinute',\n        value: 'MW-min',\n        sort: 34,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '137',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: 'Megawatt minute (electrical capacity)',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996046',\n        name: 'TroyOunces',\n        value: 'oz_tr',\n        sort: 35,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Troy ounces',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996047',\n        name: 'PrincipalWithRelationToDebtInstrument',\n        value: 'PRINC',\n        sort: 36,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Principal with relation to debt instrument',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996048',\n        name: 'MetricTons',\n        value: 't',\n        sort: 37,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Metric tons\\n\\n\\n                        Also known as Tonnes, equal to 1000 kg',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996049',\n        name: 'Tons',\n        value: 'tn',\n        sort: 38,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Tons (US)\\n\\n\\n                        Equal to 2000 lbs',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996050',\n        name: 'Are',\n        value: 'a',\n        sort: 39,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Are',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996051',\n        name: 'Acre',\n        value: 'ac',\n        sort: 40,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Acre',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996052',\n        name: 'Centiliter',\n        value: 'cL',\n        sort: 41,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Centiliter',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996053',\n        name: 'Centimeter',\n        value: 'cM',\n        sort: 42,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Centimeter',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996054',\n        name: 'DieselGallonEquivalent',\n        value: 'DGE',\n        sort: 43,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Diesel gallon equivalent',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996055',\n        name: 'Foot',\n        value: 'ft',\n        sort: 44,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Foot',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996056',\n        name: 'GBGallon',\n        value: 'Gal_gb',\n        sort: 45,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'GB Gallon',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996057',\n        name: 'GasolineGallonEquivalent',\n        value: 'GGE',\n        sort: 46,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Gasonline gallon equivalent',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996058',\n        name: 'Hectare',\n        value: 'ha',\n        sort: 47,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Hectare',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996059',\n        name: 'Inch',\n        value: 'in',\n        sort: 48,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Inch',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996060',\n        name: 'Kilometer',\n        value: 'kM',\n        sort: 49,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Kilometer',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996061',\n        name: 'Meter',\n        value: 'M',\n        sort: 50,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Meter',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996062',\n        name: 'Mile',\n        value: 'mi',\n        sort: 51,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Mile',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996063',\n        name: 'Milliliter',\n        value: 'mL',\n        sort: 52,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Milliliter',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996064',\n        name: 'Millimeter',\n        value: 'mM',\n        sort: 53,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Millimeter',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996065',\n        name: 'USOunce',\n        value: 'oz',\n        sort: 54,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'US ounce',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996066',\n        name: 'Piece',\n        value: 'pc',\n        sort: 55,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Piece',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996067',\n        name: 'USPint',\n        value: 'pt',\n        sort: 56,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'US Pint',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996068',\n        name: 'GBPint',\n        value: 'pt_gb',\n        sort: 57,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'GB pint',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996069',\n        name: 'USQuart',\n        value: 'qt',\n        sort: 58,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'US Quart',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996070',\n        name: 'GBQuart',\n        value: 'qt_gb',\n        sort: 59,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'GB Quart',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996071',\n        name: 'SquareCentimeter',\n        value: 'SqcM',\n        sort: 60,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Square centimeter',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996072',\n        name: 'SquareFoot',\n        value: 'Sqft',\n        sort: 61,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Square foot',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996073',\n        name: 'SquareInch',\n        value: 'Sqin',\n        sort: 62,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Square inch',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996074',\n        name: 'SquareKilometer',\n        value: 'SqkM',\n        sort: 63,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Square kilometer',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996075',\n        name: 'SquareMeter',\n        value: 'SqM',\n        sort: 64,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Square meter',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996076',\n        name: 'SquareMile',\n        value: 'Sqmi',\n        sort: 65,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Square mile',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996077',\n        name: 'SquareMillimeter',\n        value: 'SqmM',\n        sort: 66,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Square millimeter',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996078',\n        name: 'SquareYard',\n        value: 'Sqyd',\n        sort: 67,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Square yard',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996079',\n        name: 'Yard',\n        value: 'yd',\n        sort: 68,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Yard',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '996080',\n        name: 'USDollars',\n        value: 'USD',\n        sort: 99,\n        group: 'Variable Quantity UOM',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '122',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'US Dollars',\n        tag: 996,\n        type: 'String',\n        codeSet: 'UnitOfMeasureCodeSet',\n    },\n    {\n        id: '997001',\n        name: 'Hour',\n        value: 'H',\n        sort: 0,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Hour',\n        tag: 997,\n        type: 'String',\n        codeSet: 'TimeUnitCodeSet',\n    },\n    {\n        id: '997002',\n        name: 'Minute',\n        value: 'Min',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Minute',\n        tag: 997,\n        type: 'String',\n        codeSet: 'TimeUnitCodeSet',\n    },\n    {\n        id: '997003',\n        name: 'Second',\n        value: 'S',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Second',\n        tag: 997,\n        type: 'String',\n        codeSet: 'TimeUnitCodeSet',\n    },\n    {\n        id: '997004',\n        name: 'Day',\n        value: 'D',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Day',\n        tag: 997,\n        type: 'String',\n        codeSet: 'TimeUnitCodeSet',\n    },\n    {\n        id: '997005',\n        name: 'Week',\n        value: 'Wk',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Week',\n        tag: 997,\n        type: 'String',\n        codeSet: 'TimeUnitCodeSet',\n    },\n    {\n        id: '997006',\n        name: 'Month',\n        value: 'Mo',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Month',\n        tag: 997,\n        type: 'String',\n        codeSet: 'TimeUnitCodeSet',\n    },\n    {\n        id: '997007',\n        name: 'Year',\n        value: 'Yr',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Year',\n        tag: 997,\n        type: 'String',\n        codeSet: 'TimeUnitCodeSet',\n    },\n    {\n        id: '997008',\n        name: 'Quarter',\n        value: 'Q',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Quarter',\n        tag: 997,\n        type: 'String',\n        codeSet: 'TimeUnitCodeSet',\n    },\n    {\n        id: '997009',\n        name: 'EndOfMonth',\n        value: 'EOM',\n        sort: 8,\n        added: 'FIX.Latest',\n        addedEP: '287',\n        description:\n            'End of Month\\n\\n\\n                        End of Month identifies a relative time unit, e.g. until the third Friday of each month.',\n        tag: 997,\n        type: 'String',\n        codeSet: 'TimeUnitCodeSet',\n    },\n    {\n        id: '997010',\n        name: 'Flexible',\n        value: 'F',\n        sort: 9,\n        added: 'FIX.Latest',\n        addedEP: '287',\n        description:\n            'Flexible\\n\\n\\n                        A flexible time unit indicates that a specific time unit for the contract is currently undetermined.',\n        tag: 997,\n        type: 'String',\n        codeSet: 'TimeUnitCodeSet',\n    },\n    {\n        id: '1002001',\n        name: 'Automatic',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Automatic',\n        tag: 1002,\n        type: 'int',\n        codeSet: 'AllocMethodCodeSet',\n    },\n    {\n        id: '1002002',\n        name: 'Guarantor',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Guarantor',\n        tag: 1002,\n        type: 'int',\n        codeSet: 'AllocMethodCodeSet',\n    },\n    {\n        id: '1002003',\n        name: 'Manual',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Manual',\n        tag: 1002,\n        type: 'int',\n        codeSet: 'AllocMethodCodeSet',\n    },\n    {\n        id: '1002004',\n        name: 'BrokerAssigned',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Broker assigned',\n        tag: 1002,\n        type: 'int',\n        codeSet: 'AllocMethodCodeSet',\n    },\n    {\n        id: '1015001',\n        name: 'False',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'false - trade is not an AsOf trade',\n        tag: 1015,\n        type: 'char',\n        codeSet: 'AsOfIndicatorCodeSet',\n    },\n    {\n        id: '1015002',\n        name: 'True',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'true - trade is an AsOf trade',\n        tag: 1015,\n        type: 'char',\n        codeSet: 'AsOfIndicatorCodeSet',\n    },\n    {\n        id: '1021001',\n        name: 'TopOfBook',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Top of Book',\n        tag: 1021,\n        type: 'int',\n        codeSet: 'MDBookTypeCodeSet',\n    },\n    {\n        id: '1021002',\n        name: 'PriceDepth',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Price Depth',\n        tag: 1021,\n        type: 'int',\n        codeSet: 'MDBookTypeCodeSet',\n    },\n    {\n        id: '1021003',\n        name: 'OrderDepth',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Order Depth',\n        tag: 1021,\n        type: 'int',\n        codeSet: 'MDBookTypeCodeSet',\n    },\n    {\n        id: '1024001',\n        name: 'Book',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Book',\n        tag: 1024,\n        type: 'int',\n        codeSet: 'MDOriginTypeCodeSet',\n    },\n    {\n        id: '1024002',\n        name: 'OffBook',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Off-Book',\n        tag: 1024,\n        type: 'int',\n        codeSet: 'MDOriginTypeCodeSet',\n    },\n    {\n        id: '1024003',\n        name: 'Cross',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Cross',\n        tag: 1024,\n        type: 'int',\n        codeSet: 'MDOriginTypeCodeSet',\n    },\n    {\n        id: '1024004',\n        name: 'QuoteDrivenMarket',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '163',\n        description:\n            'Quote driven market\\n\\n\\n                        Examples for quote driven markets are market maker or specialist market models.',\n        tag: 1024,\n        type: 'int',\n        codeSet: 'MDOriginTypeCodeSet',\n    },\n    {\n        id: '1024005',\n        name: 'DarkOrderBook',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '163',\n        description: 'Dark order book',\n        tag: 1024,\n        type: 'int',\n        codeSet: 'MDOriginTypeCodeSet',\n    },\n    {\n        id: '1024006',\n        name: 'AuctionDrivenMarket',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description:\n            'Auction driven market\\n\\n\\n                        Markets where matching occurs only in scheduled auctions.',\n        tag: 1024,\n        type: 'int',\n        codeSet: 'MDOriginTypeCodeSet',\n    },\n    {\n        id: '1024007',\n        name: 'QuoteNegotiation',\n        value: '6',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description:\n            'Quote negotiation\\n\\n\\n                        Discretionary quoting on request or \"request for quote\" market.',\n        tag: 1024,\n        type: 'int',\n        codeSet: 'MDOriginTypeCodeSet',\n    },\n    {\n        id: '1024008',\n        name: 'VoiceNegotiation',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        description:\n            'Voice negotiation\\n\\n\\n                        A trading system where transactions between members are arranged through voice negotiation.',\n        tag: 1024,\n        type: 'int',\n        codeSet: 'MDOriginTypeCodeSet',\n    },\n    {\n        id: '1024009',\n        name: 'HybridMarket',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        updated: 'FIX.Latest',\n        updatedEP: '286',\n        description:\n            'Hybrid market\\n\\n\\n                        A hybrid system falling into two or more types of trading systems. In the context of ESMA reporting, this is for \"Hybrid system.\" In the context of FCA reporting, this is for \"Any other, including hybrid.\"',\n        tag: 1024,\n        type: 'int',\n        codeSet: 'MDOriginTypeCodeSet',\n    },\n    {\n        id: '1024010',\n        name: 'OtherMarket',\n        value: '9',\n        sort: 9,\n        added: 'FIX.Latest',\n        addedEP: '286',\n        description:\n            'Other market\\n\\n\\n                        A market that does not fall under any of the market types defined for MDOriginType(1024). In the context of ESMA reporting, this is for \"Any other, excluding hybrid.\"',\n        tag: 1024,\n        type: 'int',\n        codeSet: 'MDOriginTypeCodeSet',\n    },\n    {\n        id: '1031001',\n        name: 'PhoneSimple',\n        value: 'A',\n        sort: 0,\n        group: 'FIA Execution Source Code',\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        description: 'Phone simple',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031002',\n        name: 'PhoneComplex',\n        value: 'B',\n        sort: 1,\n        group: 'FIA Execution Source Code',\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        description: 'Phone complex',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031003',\n        name: 'FCMProvidedScreen',\n        value: 'C',\n        sort: 2,\n        group: 'FIA Execution Source Code',\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        description: 'FCM provided screen',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031004',\n        name: 'OtherProvidedScreen',\n        value: 'D',\n        sort: 3,\n        group: 'FIA Execution Source Code',\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        description: 'Other provided screen',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031005',\n        name: 'ClientProvidedPlatformControlledByFCM',\n        value: 'E',\n        sort: 4,\n        group: 'FIA Execution Source Code',\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        description: 'Client provided platform controlled by FCM',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031006',\n        name: 'ClientProvidedPlatformDirectToExchange',\n        value: 'F',\n        sort: 5,\n        group: 'FIA Execution Source Code',\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        description: 'Client provided platform direct to exchange',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031007',\n        name: 'AlgoEngine',\n        value: 'H',\n        sort: 7,\n        group: 'FIA Execution Source Code',\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        description: 'Algo engine',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031008',\n        name: 'PriceAtExecution',\n        value: 'J',\n        sort: 8,\n        group: 'FIA Execution Source Code',\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        description:\n            'Price at execution (price added at initial order entry, trading, middle office or time of give-up)',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031009',\n        name: 'DeskElectronic',\n        value: 'W',\n        sort: 9,\n        group: 'FIA Execution Source Code',\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        description: 'Desk - electronic',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031010',\n        name: 'DeskPit',\n        value: 'X',\n        sort: 10,\n        group: 'FIA Execution Source Code',\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        description: 'Desk - pit',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031011',\n        name: 'ClientElectronic',\n        value: 'Y',\n        sort: 11,\n        group: 'FIA Execution Source Code',\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        description: 'Client - electronic',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031012',\n        name: 'ClientPit',\n        value: 'Z',\n        sort: 12,\n        group: 'FIA Execution Source Code',\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        description: 'Client - pit',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031013',\n        name: 'AddOnOrder',\n        value: 'ADD',\n        sort: 1,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Add-on order',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031014',\n        name: 'AllOrNone',\n        value: 'AON',\n        sort: 2,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'All or none',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031015',\n        name: 'ConditionalOrder',\n        value: 'CND',\n        sort: 3,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Conditional order',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031016',\n        name: 'CashNotHeld',\n        value: 'CNH',\n        sort: 4,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Cash not held',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031017',\n        name: 'DeliveryInstructionsCash',\n        value: 'CSH',\n        sort: 5,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Delivery instructions - cash',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031018',\n        name: 'DirectedOrder',\n        value: 'DIR',\n        sort: 6,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Directed order',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031019',\n        name: 'DiscretionaryLimitOrder',\n        value: 'DLO',\n        sort: 7,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Discretionary limit order',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031020',\n        name: 'ExchangeForPhysicalTransaction',\n        value: 'E.W',\n        sort: 8,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Exchange for physical transaction',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031021',\n        name: 'FillOrKill',\n        value: 'FOK',\n        sort: 9,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Fill or kill',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031022',\n        name: 'IntraDayCross',\n        value: 'IDX',\n        sort: 11,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Intraday cross',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031023',\n        name: 'ImbalanceOnly',\n        value: 'IO',\n        sort: 12,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Imbalance only',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031024',\n        name: 'ImmediateOrCancel',\n        value: 'IOC',\n        sort: 13,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Immediate or cancel',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031025',\n        name: 'IntermarketSweepOrder',\n        value: 'ISO',\n        sort: 14,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Intermarket sweep order',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031026',\n        name: 'LimitOnOpen',\n        value: 'LOO',\n        sort: 15,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Limit on open',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031027',\n        name: 'LimitOnClose',\n        value: 'LOC',\n        sort: 16,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Limit on Close',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031028',\n        name: 'MarketAtOpen',\n        value: 'MAO',\n        sort: 17,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Market at Open',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031029',\n        name: 'MarketAtClose',\n        value: 'MAC',\n        sort: 18,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Market at close',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031030',\n        name: 'MarketOnOpen',\n        value: 'MOO',\n        sort: 19,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Market on open',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031031',\n        name: 'MarketOnClose',\n        value: 'MOC',\n        sort: 20,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Market on close',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031032',\n        name: 'MergerRelatedTransferPosition',\n        value: 'MPT',\n        sort: 21,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Merger related transfer position',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031033',\n        name: 'MinimumQuantity',\n        value: 'MQT',\n        sort: 22,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Minimum quantity',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031034',\n        name: 'MarketToLimit',\n        value: 'MTL',\n        sort: 23,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Market to limit',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031035',\n        name: 'DeliveryInstructionsNextDay',\n        value: 'ND',\n        sort: 24,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Delivery instructions - next day',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031036',\n        name: 'NotHeld',\n        value: 'NH',\n        sort: 25,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Not held',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031037',\n        name: 'OptionsRelatedTransaction',\n        value: 'OPT',\n        sort: 26,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Options related transaction',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031038',\n        name: 'OverTheDay',\n        value: 'OVD',\n        sort: 27,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Over the day',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031039',\n        name: 'Pegged',\n        value: 'PEG',\n        sort: 28,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Pegged',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031040',\n        name: 'ReserveSizeOrder',\n        value: 'RSV',\n        sort: 29,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Reserve size order',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031041',\n        name: 'StopStockTransaction',\n        value: 'S.W',\n        sort: 30,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Stop stock transaction',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031042',\n        name: 'Scale',\n        value: 'SCL',\n        sort: 31,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Scale',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031043',\n        name: 'DeliveryInstructionsSellersOption',\n        value: 'SLR',\n        sort: 32,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Delivery instructions - sellers option',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031044',\n        name: 'TimeOrder',\n        value: 'TMO',\n        sort: 33,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Time order',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031045',\n        name: 'TrailingStop',\n        value: 'TS',\n        sort: 34,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Trailing stop',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031046',\n        name: 'Work',\n        value: 'WRK',\n        sort: 35,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Work',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031047',\n        name: 'StayOnOfferside',\n        value: 'F0',\n        sort: 36,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Stay on offerside',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031048',\n        name: 'GoAlong',\n        value: 'F3',\n        sort: 37,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Go along',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031049',\n        name: 'ParticipateDoNotInitiate',\n        value: 'F6',\n        sort: 38,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Participate do not initiate',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031050',\n        name: 'StrictScale',\n        value: 'F7',\n        sort: 39,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Strict scale',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031051',\n        name: 'TryToScale',\n        value: 'F8',\n        sort: 40,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Try to scale',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031052',\n        name: 'StayOnBidside',\n        value: 'F9',\n        sort: 41,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Stay on bidside',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031053',\n        name: 'NoCross',\n        value: 'FA',\n        sort: 42,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'No cross',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031054',\n        name: 'OKToCross',\n        value: 'FB',\n        sort: 43,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'OK to cross',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031055',\n        name: 'CallFirst',\n        value: 'FC',\n        sort: 44,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Call first',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031056',\n        name: 'PercentOfVolume',\n        value: 'FD',\n        sort: 45,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Percent of volume',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031057',\n        name: 'ReinstateOnSystemFailure',\n        value: 'FH',\n        sort: 46,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Reinstate on system failure',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031058',\n        name: 'InstitutionOnly',\n        value: 'FI',\n        sort: 47,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Institution only',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031059',\n        name: 'ReinstateOnTradingHalt',\n        value: 'FJ',\n        sort: 48,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Reinstate on trading halt',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031060',\n        name: 'CancelOnTradingHalf',\n        value: 'FK',\n        sort: 49,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Cancel on trading half',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031061',\n        name: 'LastPeg',\n        value: 'FL',\n        sort: 50,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Last peg',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031062',\n        name: 'MidPricePeg',\n        value: 'FM',\n        sort: 51,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Mid-price peg',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031063',\n        name: 'NonNegotiable',\n        value: 'FN',\n        sort: 52,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Non-negotiable',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031064',\n        name: 'OpeningPeg',\n        value: 'FO',\n        sort: 53,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Opening peg',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031065',\n        name: 'MarketPeg',\n        value: 'FP',\n        sort: 54,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Market peg',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031066',\n        name: 'CancelOnSystemFailure',\n        value: 'FQ',\n        sort: 55,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Cancel on system failure',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031067',\n        name: 'PrimaryPeg',\n        value: 'FR',\n        sort: 56,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Primary peg',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031068',\n        name: 'Suspend',\n        value: 'FS',\n        sort: 57,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Suspend',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031069',\n        name: 'FixedPegToLocalBBO',\n        value: 'FT',\n        sort: 58,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Fixed peg to local best bid or offer at time of order',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031070',\n        name: 'PegToVWAP',\n        value: 'FW',\n        sort: 59,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Peg to VWAP',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031071',\n        name: 'TradeAlong',\n        value: 'FX',\n        sort: 60,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Trade along',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031072',\n        name: 'TryToStop',\n        value: 'FY',\n        sort: 61,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Try to stop',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031073',\n        name: 'CancelIfNotBest',\n        value: 'FZ',\n        sort: 62,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Cancel if not best',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031074',\n        name: 'StrictLimit',\n        value: 'Fb',\n        sort: 63,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Strict limit',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031075',\n        name: 'IgnorePriceValidityChecks',\n        value: 'Fc',\n        sort: 64,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Ignore price validity checks',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031076',\n        name: 'PegToLimitPrice',\n        value: 'Fd',\n        sort: 65,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Peg to Limit Price',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031077',\n        name: 'WorkToTargetStrategy',\n        value: 'Fe',\n        sort: 66,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Work to target strategy',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1031078',\n        name: 'GOrderAndFCMAPIorFIX',\n        value: 'G',\n        sort: 0,\n        group: 'SHARED',\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'G Order(FINRA OATS), FCM API or FIX(FIA Execution Source)',\n        tag: 1031,\n        type: 'MultipleStringValue',\n        codeSet: 'CustOrderHandlingInstCodeSet',\n    },\n    {\n        id: '1032001',\n        name: 'FINRAOATS',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'FINRA OATS',\n        tag: 1032,\n        type: 'int',\n        codeSet: 'OrderHandlingInstSourceCodeSet',\n    },\n    {\n        id: '1032002',\n        name: 'FIAExecutionSourceCode',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '133',\n        description: 'FIA Execution Source Code',\n        tag: 1032,\n        type: 'int',\n        codeSet: 'OrderHandlingInstSourceCodeSet',\n    },\n    {\n        id: '1033001',\n        name: 'Agency',\n        value: 'A',\n        sort: 1,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Agency',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033002',\n        name: 'Arbitrage',\n        value: 'AR',\n        sort: 2,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Arbitrage',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033003',\n        name: 'BlockTrading',\n        value: 'B',\n        sort: 3,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Block trading',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033004',\n        name: 'ConvertibleDesk',\n        value: 'C',\n        sort: 4,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Convertible desk',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033005',\n        name: 'CentralRiskBooks',\n        value: 'CR',\n        sort: 5,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Central risk books',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033006',\n        name: 'Derivatives',\n        value: 'D',\n        sort: 6,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Derivatives',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033007',\n        name: 'EquityCapitalMarkets',\n        value: 'EC',\n        sort: 7,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Equity capital markets',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033008',\n        name: 'International',\n        value: 'IN',\n        sort: 8,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'International',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033009',\n        name: 'Institutional',\n        value: 'IS',\n        sort: 9,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Institutional',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033010',\n        name: 'Other',\n        value: 'O',\n        sort: 10,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Other',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033011',\n        name: 'PreferredTrading',\n        value: 'PF',\n        sort: 11,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Preferred trading',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033012',\n        name: 'Proprietary',\n        value: 'PR',\n        sort: 12,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Proprietary',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033013',\n        name: 'ProgramTrading',\n        value: 'PT',\n        sort: 13,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Program trading',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033014',\n        name: 'Sales',\n        value: 'S',\n        sort: 14,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Sales',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033015',\n        name: 'Swaps',\n        value: 'SW',\n        sort: 15,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Swaps',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033016',\n        name: 'TradingDeskSystem',\n        value: 'T',\n        sort: 16,\n        group: 'FINRA OATS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Trading desk or system non-market maker',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033017',\n        name: 'Treasury',\n        value: 'TR',\n        sort: 17,\n        group: 'FINRA OATS',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Treasury',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1033018',\n        name: 'FloorBroker',\n        value: 'FB',\n        sort: 18,\n        group: 'FINRA OATS',\n        added: 'FIX.Latest',\n        addedEP: '264',\n        description: 'Floor Broker',\n        tag: 1033,\n        type: 'String',\n        codeSet: 'DeskTypeCodeSet',\n    },\n    {\n        id: '1034001',\n        name: 'FINRAOATS',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'FINRA OATS',\n        tag: 1034,\n        type: 'int',\n        codeSet: 'DeskTypeSourceCodeSet',\n    },\n    {\n        id: '1036001',\n        name: 'Received',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Received, not yet processed',\n        tag: 1036,\n        type: 'char',\n        codeSet: 'ExecAckStatusCodeSet',\n    },\n    {\n        id: '1036002',\n        name: 'Accepted',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Accepted',\n        tag: 1036,\n        type: 'char',\n        codeSet: 'ExecAckStatusCodeSet',\n    },\n    {\n        id: '1036003',\n        name: 'DontKnow',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: \"Don't know / Rejected\",\n        tag: 1036,\n        type: 'char',\n        codeSet: 'ExecAckStatusCodeSet',\n    },\n    {\n        id: '1043001',\n        name: 'SpecificDeposit',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Specific Deposit',\n        tag: 1043,\n        type: 'int',\n        codeSet: 'CollApplTypeCodeSet',\n    },\n    {\n        id: '1043002',\n        name: 'General',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'General',\n        tag: 1043,\n        type: 'int',\n        codeSet: 'CollApplTypeCodeSet',\n    },\n    {\n        id: '1046001',\n        name: 'Divide',\n        value: 'D',\n        sort: 0,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Divide',\n        tag: 1046,\n        type: 'char',\n        codeSet: 'UnderlyingFXRateCalcCodeSet',\n    },\n    {\n        id: '1046002',\n        name: 'Multiply',\n        value: 'M',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Multiply',\n        tag: 1046,\n        type: 'char',\n        codeSet: 'UnderlyingFXRateCalcCodeSet',\n    },\n    {\n        id: '1047001',\n        name: 'Open',\n        value: 'O',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Open',\n        tag: 1047,\n        type: 'char',\n        codeSet: 'AllocPositionEffectCodeSet',\n    },\n    {\n        id: '1047002',\n        name: 'Close',\n        value: 'C',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Close',\n        tag: 1047,\n        type: 'char',\n        codeSet: 'AllocPositionEffectCodeSet',\n    },\n    {\n        id: '1047003',\n        name: 'Rolled',\n        value: 'R',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Rolled',\n        tag: 1047,\n        type: 'char',\n        codeSet: 'AllocPositionEffectCodeSet',\n    },\n    {\n        id: '1047004',\n        name: 'FIFO',\n        value: 'F',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'FIFO',\n        tag: 1047,\n        type: 'char',\n        codeSet: 'AllocPositionEffectCodeSet',\n    },\n    {\n        id: '1048001',\n        name: 'Agent',\n        value: 'A',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '95',\n        description: 'Agent',\n        tag: 1048,\n        type: 'char',\n        codeSet: 'DealingCapacityCodeSet',\n    },\n    {\n        id: '1048002',\n        name: 'Principal',\n        value: 'P',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '95',\n        description: 'Principal',\n        tag: 1048,\n        type: 'char',\n        codeSet: 'DealingCapacityCodeSet',\n    },\n    {\n        id: '1048003',\n        name: 'RisklessPrincipal',\n        value: 'R',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '95',\n        description: 'Riskless Principal',\n        tag: 1048,\n        type: 'char',\n        codeSet: 'DealingCapacityCodeSet',\n    },\n    {\n        id: '1048004',\n        name: 'CrossAsPrincipal',\n        value: 'X',\n        sort: 3,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Cross as principal\\n\\nIn the context of the EU Consolidated Tape, this is used for the post-trade transparency flag MTCH.',\n        tag: 1048,\n        type: 'char',\n        codeSet: 'DealingCapacityCodeSet',\n    },\n    {\n        id: '1049001',\n        name: 'ProRata',\n        value: 'P',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Pro rata',\n        tag: 1049,\n        type: 'char',\n        codeSet: 'InstrmtAssignmentMethodCodeSet',\n    },\n    {\n        id: '1049002',\n        name: 'Random',\n        value: 'R',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Random',\n        tag: 1049,\n        type: 'char',\n        codeSet: 'InstrmtAssignmentMethodCodeSet',\n    },\n    {\n        id: '1057001',\n        name: 'OrderInitiatorIsAggressor',\n        value: 'Y',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Order initiator is aggressor',\n        tag: 1057,\n        type: 'Boolean',\n        codeSet: 'AggressorIndicatorCodeSet',\n    },\n    {\n        id: '1057002',\n        name: 'OrderInitiatorIsPassive',\n        value: 'N',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Order initiator is passive',\n        tag: 1057,\n        type: 'Boolean',\n        codeSet: 'AggressorIndicatorCodeSet',\n    },\n    {\n        id: '1081001',\n        name: 'SecondaryOrderID',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description:\n            'Secondary order ID\\n\\n\\n                        Can be used to refer to an additional order identifier assigned by the party accepting an order, e.g. SecondaryOrderID(198).',\n        tag: 1081,\n        type: 'char',\n        codeSet: 'RefOrderIDSourceCodeSet',\n    },\n    {\n        id: '1081002',\n        name: 'OrderID',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description:\n            'Order ID\\n\\n\\n                        Can be used to refer to an order identifier assigned by the party accepting an order, e.g. OrderID(37).',\n        tag: 1081,\n        type: 'char',\n        codeSet: 'RefOrderIDSourceCodeSet',\n    },\n    {\n        id: '1081003',\n        name: 'MDEntryID',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description:\n            'Market data entry ID\\n\\n\\n                        Can be used to refer to a market data entry identifier provided with market data, e.g. MDEntryID(278).',\n        tag: 1081,\n        type: 'char',\n        codeSet: 'RefOrderIDSourceCodeSet',\n    },\n    {\n        id: '1081004',\n        name: 'QuoteEntryID',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description:\n            'Quote entry ID\\n\\n\\n                        Can be used to refer to a quote identifier provided with market data or quote, e.g. QuoteEntryID(299).',\n        tag: 1081,\n        type: 'char',\n        codeSet: 'RefOrderIDSourceCodeSet',\n    },\n    {\n        id: '1081005',\n        name: 'OriginalOrderID',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description:\n            'Original order ID\\n\\n\\n                        Can be used to refer to an initial order identifier assigned by the party accepting an order, e.g. OrderID(37) that changed.',\n        tag: 1081,\n        type: 'char',\n        codeSet: 'RefOrderIDSourceCodeSet',\n    },\n    {\n        id: '1081006',\n        name: 'QuoteID',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description:\n            'Quote ID\\n\\n\\n                        Can be used to refer to a quote identifier assigned by the party issuing the quote, e.g. QuoteID(117).',\n        tag: 1081,\n        type: 'char',\n        codeSet: 'RefOrderIDSourceCodeSet',\n    },\n    {\n        id: '1081007',\n        name: 'QuoteReqID',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description:\n            'Quote request ID\\n\\n\\n                        Can be used to refer to a quote identifier or quote request identifier assigned by the party issuing the request, e.g. QuoteReqID(131).',\n        tag: 1081,\n        type: 'char',\n        codeSet: 'RefOrderIDSourceCodeSet',\n    },\n    {\n        id: '1081008',\n        name: 'PreviousOrderIdentifier',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Previous order identifier\\n\\n\\n                        Can be used when previously assigned (unique) system order identifier has changed.',\n        tag: 1081,\n        type: 'char',\n        codeSet: 'RefOrderIDSourceCodeSet',\n    },\n    {\n        id: '1081009',\n        name: 'PreviousQuoteIdentifier',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Previous quote identifier\\n\\n\\n                        Can be used when previously assigned (unique) quote identifier has changed.',\n        tag: 1081,\n        type: 'char',\n        codeSet: 'RefOrderIDSourceCodeSet',\n    },\n    {\n        id: '1081010',\n        name: 'ParentOrderIdentifier',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Parent order identifier\\n\\n\\n                        Can be used where orders are split into child orders and need to refer back to their parent order.',\n        tag: 1081,\n        type: 'char',\n        codeSet: 'RefOrderIDSourceCodeSet',\n    },\n    {\n        id: '1081011',\n        name: 'ManualOrderIdentifier',\n        value: 'A',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Manual order identifier\\n\\n\\n                        Can be used to refer to a manually received order that is being replaced by an electronically received order.',\n        tag: 1081,\n        type: 'char',\n        codeSet: 'RefOrderIDSourceCodeSet',\n    },\n    {\n        id: '1083001',\n        name: 'Immediate',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Immediate (after each fill)',\n        tag: 1083,\n        type: 'char',\n        codeSet: 'DisplayWhenCodeSet',\n    },\n    {\n        id: '1083002',\n        name: 'Exhaust',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Exhaust (when DisplayQty = 0)',\n        tag: 1083,\n        type: 'char',\n        codeSet: 'DisplayWhenCodeSet',\n    },\n    {\n        id: '1084001',\n        name: 'Initial',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Initial (use original DisplayQty)',\n        tag: 1084,\n        type: 'char',\n        codeSet: 'DisplayMethodCodeSet',\n    },\n    {\n        id: '1084002',\n        name: 'New',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'New (use RefreshQty)',\n        tag: 1084,\n        type: 'char',\n        codeSet: 'DisplayMethodCodeSet',\n    },\n    {\n        id: '1084003',\n        name: 'Random',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Random (randomize value)',\n        tag: 1084,\n        type: 'char',\n        codeSet: 'DisplayMethodCodeSet',\n    },\n    {\n        id: '1084004',\n        name: 'Undisclosed',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '78',\n        description: 'Undisclosed (invisible order)',\n        tag: 1084,\n        type: 'char',\n        codeSet: 'DisplayMethodCodeSet',\n    },\n    {\n        id: '1092001',\n        name: 'None',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'None',\n        tag: 1092,\n        type: 'char',\n        codeSet: 'PriceProtectionScopeCodeSet',\n    },\n    {\n        id: '1092002',\n        name: 'Local',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Local (Exchange, ECN, ATS)',\n        tag: 1092,\n        type: 'char',\n        codeSet: 'PriceProtectionScopeCodeSet',\n    },\n    {\n        id: '1092003',\n        name: 'National',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'National (Across all national markets)',\n        tag: 1092,\n        type: 'char',\n        codeSet: 'PriceProtectionScopeCodeSet',\n    },\n    {\n        id: '1092004',\n        name: 'Global',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Global (Across all markets)',\n        tag: 1092,\n        type: 'char',\n        codeSet: 'PriceProtectionScopeCodeSet',\n    },\n    {\n        id: '1093001',\n        name: 'OddLot',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Odd Lot',\n        tag: 1093,\n        type: 'char',\n        codeSet: 'LotTypeCodeSet',\n    },\n    {\n        id: '1093002',\n        name: 'RoundLot',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Round Lot',\n        tag: 1093,\n        type: 'char',\n        codeSet: 'LotTypeCodeSet',\n    },\n    {\n        id: '1093003',\n        name: 'BlockLot',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Block Lot',\n        tag: 1093,\n        type: 'char',\n        codeSet: 'LotTypeCodeSet',\n    },\n    {\n        id: '1093004',\n        name: 'RoundLotBasedUpon',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        description: 'Round lot based upon UnitOfMeasure(996)',\n        tag: 1093,\n        type: 'char',\n        codeSet: 'LotTypeCodeSet',\n    },\n    {\n        id: '1094001',\n        name: 'LastPeg',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Last peg (last sale)',\n        tag: 1094,\n        type: 'int',\n        codeSet: 'PegPriceTypeCodeSet',\n    },\n    {\n        id: '1094002',\n        name: 'MidPricePeg',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Mid-price peg (midprice of inside quote)',\n        tag: 1094,\n        type: 'int',\n        codeSet: 'PegPriceTypeCodeSet',\n    },\n    {\n        id: '1094003',\n        name: 'OpeningPeg',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Opening peg',\n        tag: 1094,\n        type: 'int',\n        codeSet: 'PegPriceTypeCodeSet',\n    },\n    {\n        id: '1094004',\n        name: 'MarketPeg',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Market peg',\n        tag: 1094,\n        type: 'int',\n        codeSet: 'PegPriceTypeCodeSet',\n    },\n    {\n        id: '1094005',\n        name: 'PrimaryPeg',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Primary peg (primary market - buy at bid or sell at offer)',\n        tag: 1094,\n        type: 'int',\n        codeSet: 'PegPriceTypeCodeSet',\n    },\n    {\n        id: '1094006',\n        name: 'PegToVWAP',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Peg to VWAP',\n        tag: 1094,\n        type: 'int',\n        codeSet: 'PegPriceTypeCodeSet',\n    },\n    {\n        id: '1094007',\n        name: 'TrailingStopPeg',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Trailing Stop Peg',\n        tag: 1094,\n        type: 'int',\n        codeSet: 'PegPriceTypeCodeSet',\n    },\n    {\n        id: '1094008',\n        name: 'PegToLimitPrice',\n        value: '9',\n        sort: 9,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Peg to Limit Price',\n        tag: 1094,\n        type: 'int',\n        codeSet: 'PegPriceTypeCodeSet',\n    },\n    {\n        id: '1094009',\n        name: 'ShortSaleMinPricePeg',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '123',\n        description:\n            'Short sale minimum price Peg\\n\\n\\n                        Short sale minimum price Peg (published price that a short sell order must meet in order to comply with regulatory requirements, e.g. SEC uptick rules).',\n        tag: 1094,\n        type: 'int',\n        codeSet: 'PegPriceTypeCodeSet',\n    },\n    {\n        id: '1100001',\n        name: 'PartialExecution',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Partial Execution',\n        tag: 1100,\n        type: 'char',\n        codeSet: 'TriggerTypeCodeSet',\n    },\n    {\n        id: '1100002',\n        name: 'SpecifiedTradingSession',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Specified Trading Session',\n        tag: 1100,\n        type: 'char',\n        codeSet: 'TriggerTypeCodeSet',\n    },\n    {\n        id: '1100003',\n        name: 'NextAuction',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Next Auction',\n        tag: 1100,\n        type: 'char',\n        codeSet: 'TriggerTypeCodeSet',\n    },\n    {\n        id: '1100004',\n        name: 'PriceMovement',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Price Movement',\n        tag: 1100,\n        type: 'char',\n        codeSet: 'TriggerTypeCodeSet',\n    },\n    {\n        id: '1100005',\n        name: 'OnOrderEntryOrModification',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'On Order Entry or order modification entry',\n        tag: 1100,\n        type: 'char',\n        codeSet: 'TriggerTypeCodeSet',\n    },\n    {\n        id: '1101001',\n        name: 'Activate',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Activate',\n        tag: 1101,\n        type: 'char',\n        codeSet: 'TriggerActionCodeSet',\n    },\n    {\n        id: '1101002',\n        name: 'Modify',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Modify',\n        tag: 1101,\n        type: 'char',\n        codeSet: 'TriggerActionCodeSet',\n    },\n    {\n        id: '1101003',\n        name: 'Cancel',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Cancel',\n        tag: 1101,\n        type: 'char',\n        codeSet: 'TriggerActionCodeSet',\n    },\n    {\n        id: '1107001',\n        name: 'BestOffer',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Best Offer',\n        tag: 1107,\n        type: 'char',\n        codeSet: 'TriggerPriceTypeCodeSet',\n    },\n    {\n        id: '1107002',\n        name: 'LastTrade',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Last Trade',\n        tag: 1107,\n        type: 'char',\n        codeSet: 'TriggerPriceTypeCodeSet',\n    },\n    {\n        id: '1107003',\n        name: 'BestBid',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Best Bid',\n        tag: 1107,\n        type: 'char',\n        codeSet: 'TriggerPriceTypeCodeSet',\n    },\n    {\n        id: '1107004',\n        name: 'BestBidOrLastTrade',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Best Bid or Last Trade',\n        tag: 1107,\n        type: 'char',\n        codeSet: 'TriggerPriceTypeCodeSet',\n    },\n    {\n        id: '1107005',\n        name: 'BestOfferOrLastTrade',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Best Offer or Last Trade',\n        tag: 1107,\n        type: 'char',\n        codeSet: 'TriggerPriceTypeCodeSet',\n    },\n    {\n        id: '1107006',\n        name: 'BestMid',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Best Mid',\n        tag: 1107,\n        type: 'char',\n        codeSet: 'TriggerPriceTypeCodeSet',\n    },\n    {\n        id: '1108001',\n        name: 'None',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'None',\n        tag: 1108,\n        type: 'char',\n        codeSet: 'TriggerPriceTypeScopeCodeSet',\n    },\n    {\n        id: '1108002',\n        name: 'Local',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Local (Exchange, ECN, ATS)',\n        tag: 1108,\n        type: 'char',\n        codeSet: 'TriggerPriceTypeScopeCodeSet',\n    },\n    {\n        id: '1108003',\n        name: 'National',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'National (Across all national markets)',\n        tag: 1108,\n        type: 'char',\n        codeSet: 'TriggerPriceTypeScopeCodeSet',\n    },\n    {\n        id: '1108004',\n        name: 'Global',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Global (Across all markets)',\n        tag: 1108,\n        type: 'char',\n        codeSet: 'TriggerPriceTypeScopeCodeSet',\n    },\n    {\n        id: '1109001',\n        name: 'Up',\n        value: 'U',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Trigger if the price of the specified type goes UP to or through the specified Trigger Price.',\n        tag: 1109,\n        type: 'char',\n        codeSet: 'TriggerPriceDirectionCodeSet',\n    },\n    {\n        id: '1109002',\n        name: 'Down',\n        value: 'D',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Trigger if the price of the specified type goes DOWN to or through the specified Trigger Price.',\n        tag: 1109,\n        type: 'char',\n        codeSet: 'TriggerPriceDirectionCodeSet',\n    },\n    {\n        id: '1111001',\n        name: 'Market',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '35',\n        description: 'Market',\n        tag: 1111,\n        type: 'char',\n        codeSet: 'TriggerOrderTypeCodeSet',\n    },\n    {\n        id: '1111002',\n        name: 'Limit',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '35',\n        description: 'Limit',\n        tag: 1111,\n        type: 'char',\n        codeSet: 'TriggerOrderTypeCodeSet',\n    },\n    {\n        id: '1115001',\n        name: 'Order',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Order',\n        tag: 1115,\n        type: 'char',\n        codeSet: 'OrderCategoryCodeSet',\n    },\n    {\n        id: '1115002',\n        name: 'Quote',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Quote',\n        tag: 1115,\n        type: 'char',\n        codeSet: 'OrderCategoryCodeSet',\n    },\n    {\n        id: '1115003',\n        name: 'PrivatelyNegotiatedTrade',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Privately Negotiated Trade',\n        tag: 1115,\n        type: 'char',\n        codeSet: 'OrderCategoryCodeSet',\n    },\n    {\n        id: '1115004',\n        name: 'MultilegOrder',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Multileg order',\n        tag: 1115,\n        type: 'char',\n        codeSet: 'OrderCategoryCodeSet',\n    },\n    {\n        id: '1115005',\n        name: 'LinkedOrder',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Linked order',\n        tag: 1115,\n        type: 'char',\n        codeSet: 'OrderCategoryCodeSet',\n    },\n    {\n        id: '1115006',\n        name: 'QuoteRequest',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Quote Request',\n        tag: 1115,\n        type: 'char',\n        codeSet: 'OrderCategoryCodeSet',\n    },\n    {\n        id: '1115007',\n        name: 'ImpliedOrder',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Implied Order',\n        tag: 1115,\n        type: 'char',\n        codeSet: 'OrderCategoryCodeSet',\n    },\n    {\n        id: '1115008',\n        name: 'CrossOrder',\n        value: '8',\n        sort: 8,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Cross Order',\n        tag: 1115,\n        type: 'char',\n        codeSet: 'OrderCategoryCodeSet',\n    },\n    {\n        id: '1115009',\n        name: 'StreamingPrice',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Streaming price (quote)',\n        tag: 1115,\n        type: 'char',\n        codeSet: 'OrderCategoryCodeSet',\n    },\n    {\n        id: '1115010',\n        name: 'InternalCrossOrder',\n        value: 'A',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '101',\n        description: 'Internal Cross Order',\n        tag: 1115,\n        type: 'char',\n        codeSet: 'OrderCategoryCodeSet',\n    },\n    {\n        id: '1123001',\n        name: 'TradeConfirmation',\n        value: '0',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '136',\n        description: 'Trade confirmation',\n        tag: 1123,\n        type: 'char',\n        codeSet: 'TradeHandlingInstrCodeSet',\n    },\n    {\n        id: '1123002',\n        name: 'TwoPartyReport',\n        value: '1',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '136',\n        description: 'Two-party report',\n        tag: 1123,\n        type: 'char',\n        codeSet: 'TradeHandlingInstrCodeSet',\n    },\n    {\n        id: '1123003',\n        name: 'OnePartyReportForMatching',\n        value: '2',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '136',\n        description: 'One-party report for matching',\n        tag: 1123,\n        type: 'char',\n        codeSet: 'TradeHandlingInstrCodeSet',\n    },\n    {\n        id: '1123004',\n        name: 'OnePartyReportForPassThrough',\n        value: '3',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '212',\n        description:\n            'One-party report for pass through\\n\\n\\n                        Can be used when one of the parties to the trade submits a report which then has to be approved or confirmed by the other (counter)party.',\n        tag: 1123,\n        type: 'char',\n        codeSet: 'TradeHandlingInstrCodeSet',\n    },\n    {\n        id: '1123005',\n        name: 'AutomatedFloorOrderRouting',\n        value: '4',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '136',\n        description: 'Automated floor order routing',\n        tag: 1123,\n        type: 'char',\n        codeSet: 'TradeHandlingInstrCodeSet',\n    },\n    {\n        id: '1123006',\n        name: 'TwoPartyReportForClaim',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '55',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '136',\n        description: 'Two-party report for claim',\n        tag: 1123,\n        type: 'char',\n        codeSet: 'TradeHandlingInstrCodeSet',\n    },\n    {\n        id: '1123007',\n        name: 'OnePartyReport',\n        value: '6',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '136',\n        description: 'One-party report',\n        tag: 1123,\n        type: 'char',\n        codeSet: 'TradeHandlingInstrCodeSet',\n    },\n    {\n        id: '1123008',\n        name: 'ThirdPtyRptForPassThrough',\n        value: '7',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '212',\n        description:\n            'Third-party report for pass through\\n\\n\\n                        Can be used when RootParties component contains a service provider role who submits the trade report and is not necessarily also on one side of the trade.',\n        tag: 1123,\n        type: 'char',\n        codeSet: 'TradeHandlingInstrCodeSet',\n    },\n    {\n        id: '1123009',\n        name: 'OnePartyReportAutoMatch',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description:\n            'One-party report for auto-match\\n\\n\\n                        Indicates that the submission is a transfer trade to a firm or account that is part of the same corporate entity and that once validated the transfer should be automatically accepted without confirmation.',\n        tag: 1123,\n        type: 'char',\n        codeSet: 'TradeHandlingInstrCodeSet',\n    },\n    {\n        id: '1128001',\n        name: 'FIX27',\n        value: '0',\n        sort: 0,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'FIX27',\n        tag: 1128,\n        type: 'String',\n        codeSet: 'ApplVerIDCodeSet',\n    },\n    {\n        id: '1128002',\n        name: 'FIX30',\n        value: '1',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'FIX30',\n        tag: 1128,\n        type: 'String',\n        codeSet: 'ApplVerIDCodeSet',\n    },\n    {\n        id: '1128003',\n        name: 'FIX40',\n        value: '2',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'FIX40',\n        tag: 1128,\n        type: 'String',\n        codeSet: 'ApplVerIDCodeSet',\n    },\n    {\n        id: '1128004',\n        name: 'FIX41',\n        value: '3',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'FIX41',\n        tag: 1128,\n        type: 'String',\n        codeSet: 'ApplVerIDCodeSet',\n    },\n    {\n        id: '1128005',\n        name: 'FIX42',\n        value: '4',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'FIX42',\n        tag: 1128,\n        type: 'String',\n        codeSet: 'ApplVerIDCodeSet',\n    },\n    {\n        id: '1128006',\n        name: 'FIX43',\n        value: '5',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'FIX43',\n        tag: 1128,\n        type: 'String',\n        codeSet: 'ApplVerIDCodeSet',\n    },\n    {\n        id: '1128007',\n        name: 'FIX44',\n        value: '6',\n        sort: 6,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'FIX44',\n        tag: 1128,\n        type: 'String',\n        codeSet: 'ApplVerIDCodeSet',\n    },\n    {\n        id: '1128008',\n        name: 'FIX50',\n        value: '7',\n        sort: 7,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'FIX50',\n        tag: 1128,\n        type: 'String',\n        codeSet: 'ApplVerIDCodeSet',\n    },\n    {\n        id: '1128009',\n        name: 'FIX50SP1',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'FIX50SP1',\n        tag: 1128,\n        type: 'String',\n        codeSet: 'ApplVerIDCodeSet',\n    },\n    {\n        id: '1128010',\n        name: 'FIX50SP2',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP1',\n        addedEP: '97',\n        description: 'FIX50SP2',\n        tag: 1128,\n        type: 'String',\n        codeSet: 'ApplVerIDCodeSet',\n    },\n    {\n        id: '1128011',\n        name: 'FIXLatest',\n        value: '10',\n        sort: 10,\n        added: 'FIX.Latest',\n        addedEP: '260',\n        description: 'FIXLatest',\n        tag: 1128,\n        type: 'String',\n        codeSet: 'ApplVerIDCodeSet',\n    },\n    {\n        id: '1133001',\n        name: 'BIC',\n        value: 'B',\n        sort: 1,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'BIC (Bank Identification Code) (ISO 9362)',\n        tag: 1133,\n        type: 'char',\n        codeSet: 'ExDestinationIDSourceCodeSet',\n    },\n    {\n        id: '1133002',\n        name: 'GeneralIdentifier',\n        value: 'C',\n        sort: 2,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Generally accepted market participant identifier (e.g. NASD mnemonic)',\n        tag: 1133,\n        type: 'char',\n        codeSet: 'ExDestinationIDSourceCodeSet',\n    },\n    {\n        id: '1133003',\n        name: 'Proprietary',\n        value: 'D',\n        sort: 3,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'Proprietary / Custom code',\n        tag: 1133,\n        type: 'char',\n        codeSet: 'ExDestinationIDSourceCodeSet',\n    },\n    {\n        id: '1133004',\n        name: 'ISOCountryCode',\n        value: 'E',\n        sort: 4,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'ISO Country Code',\n        tag: 1133,\n        type: 'char',\n        codeSet: 'ExDestinationIDSourceCodeSet',\n    },\n    {\n        id: '1133005',\n        name: 'MIC',\n        value: 'G',\n        sort: 5,\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description: 'MIC (ISO 10383 - Market Identifier Code)',\n        tag: 1133,\n        type: 'char',\n        codeSet: 'ExDestinationIDSourceCodeSet',\n    },\n    {\n        id: '1144001',\n        name: 'NotImplied',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description: 'Not implied',\n        tag: 1144,\n        type: 'int',\n        codeSet: 'ImpliedMarketIndicatorCodeSet',\n    },\n    {\n        id: '1144002',\n        name: 'ImpliedIn',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description: 'Implied-in - The existence of a multi-leg instrument is implied by the legs of that instrument',\n        tag: 1144,\n        type: 'int',\n        codeSet: 'ImpliedMarketIndicatorCodeSet',\n    },\n    {\n        id: '1144003',\n        name: 'ImpliedOut',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description: 'Implied-out - The existence of the underlying legs are implied by the multi-leg instrument',\n        tag: 1144,\n        type: 'int',\n        codeSet: 'ImpliedMarketIndicatorCodeSet',\n    },\n    {\n        id: '1144004',\n        name: 'BothImpliedInAndImpliedOut',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description: 'Both Implied-in and Implied-out',\n        tag: 1144,\n        type: 'int',\n        codeSet: 'ImpliedMarketIndicatorCodeSet',\n    },\n    {\n        id: '1159001',\n        name: 'Preliminary',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Preliminary',\n        tag: 1159,\n        type: 'int',\n        codeSet: 'SettlObligModeCodeSet',\n    },\n    {\n        id: '1159002',\n        name: 'Final',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Final',\n        tag: 1159,\n        type: 'int',\n        codeSet: 'SettlObligModeCodeSet',\n    },\n    {\n        id: '1162001',\n        name: 'Cancel',\n        value: 'C',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Cancel',\n        tag: 1162,\n        type: 'char',\n        codeSet: 'SettlObligTransTypeCodeSet',\n    },\n    {\n        id: '1162002',\n        name: 'New',\n        value: 'N',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'New',\n        tag: 1162,\n        type: 'char',\n        codeSet: 'SettlObligTransTypeCodeSet',\n    },\n    {\n        id: '1162003',\n        name: 'Replace',\n        value: 'R',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Replace',\n        tag: 1162,\n        type: 'char',\n        codeSet: 'SettlObligTransTypeCodeSet',\n    },\n    {\n        id: '1162004',\n        name: 'Restate',\n        value: 'T',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Restate',\n        tag: 1162,\n        type: 'char',\n        codeSet: 'SettlObligTransTypeCodeSet',\n    },\n    {\n        id: '1164001',\n        name: 'InstructionsOfBroker',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Instructions of Broker',\n        tag: 1164,\n        type: 'char',\n        codeSet: 'SettlObligSourceCodeSet',\n    },\n    {\n        id: '1164002',\n        name: 'InstructionsForInstitution',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Instructions for Institution',\n        tag: 1164,\n        type: 'char',\n        codeSet: 'SettlObligSourceCodeSet',\n    },\n    {\n        id: '1164003',\n        name: 'Investor',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Investor',\n        tag: 1164,\n        type: 'char',\n        codeSet: 'SettlObligSourceCodeSet',\n    },\n    {\n        id: '1164004',\n        name: 'BuyersSettlementInstructions',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: \"Buyer's settlement instructions\",\n        tag: 1164,\n        type: 'char',\n        codeSet: 'SettlObligSourceCodeSet',\n    },\n    {\n        id: '1164005',\n        name: 'SellersSettlementInstructions',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: \"Seller's settlement instructions\",\n        tag: 1164,\n        type: 'char',\n        codeSet: 'SettlObligSourceCodeSet',\n    },\n    {\n        id: '1167001',\n        name: 'Accepted',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Accepted',\n        tag: 1167,\n        type: 'int',\n        codeSet: 'QuoteEntryStatusCodeSet',\n    },\n    {\n        id: '1167002',\n        name: 'Rejected',\n        value: '5',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Rejected',\n        tag: 1167,\n        type: 'int',\n        codeSet: 'QuoteEntryStatusCodeSet',\n    },\n    {\n        id: '1167003',\n        name: 'RemovedFromMarket',\n        value: '6',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Removed from Market',\n        tag: 1167,\n        type: 'int',\n        codeSet: 'QuoteEntryStatusCodeSet',\n    },\n    {\n        id: '1167004',\n        name: 'Expired',\n        value: '7',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Expired',\n        tag: 1167,\n        type: 'int',\n        codeSet: 'QuoteEntryStatusCodeSet',\n    },\n    {\n        id: '1167005',\n        name: 'LockedMarketWarning',\n        value: '12',\n        sort: 5,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Locked Market Warning',\n        tag: 1167,\n        type: 'int',\n        codeSet: 'QuoteEntryStatusCodeSet',\n    },\n    {\n        id: '1167006',\n        name: 'CrossMarketWarning',\n        value: '13',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Cross Market Warning',\n        tag: 1167,\n        type: 'int',\n        codeSet: 'QuoteEntryStatusCodeSet',\n    },\n    {\n        id: '1167007',\n        name: 'CanceledDueToLockMarket',\n        value: '14',\n        sort: 7,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Canceled due to Lock Market',\n        tag: 1167,\n        type: 'int',\n        codeSet: 'QuoteEntryStatusCodeSet',\n    },\n    {\n        id: '1167008',\n        name: 'CanceledDueToCrossMarket',\n        value: '15',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Canceled due to Cross Market',\n        tag: 1167,\n        type: 'int',\n        codeSet: 'QuoteEntryStatusCodeSet',\n    },\n    {\n        id: '1167009',\n        name: 'Active',\n        value: '16',\n        sort: 9,\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Active',\n        tag: 1167,\n        type: 'int',\n        codeSet: 'QuoteEntryStatusCodeSet',\n    },\n    {\n        id: '1171001',\n        name: 'PrivateQuote',\n        value: 'Y',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '46',\n        description: 'Private Quote',\n        tag: 1171,\n        type: 'Boolean',\n        codeSet: 'PrivateQuoteCodeSet',\n    },\n    {\n        id: '1171002',\n        name: 'PublicQuote',\n        value: 'N',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '46',\n        description: 'Public Quote',\n        tag: 1171,\n        type: 'Boolean',\n        codeSet: 'PrivateQuoteCodeSet',\n    },\n    {\n        id: '1172001',\n        name: 'AllMarketParticipants',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '46',\n        description: 'All market participants',\n        tag: 1172,\n        type: 'int',\n        codeSet: 'RespondentTypeCodeSet',\n    },\n    {\n        id: '1172002',\n        name: 'SpecifiedMarketParticipants',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '46',\n        description: 'Specified market participants',\n        tag: 1172,\n        type: 'int',\n        codeSet: 'RespondentTypeCodeSet',\n    },\n    {\n        id: '1172003',\n        name: 'AllMarketMakers',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '46',\n        description: 'All Market Makers',\n        tag: 1172,\n        type: 'int',\n        codeSet: 'RespondentTypeCodeSet',\n    },\n    {\n        id: '1172004',\n        name: 'PrimaryMarketMaker',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '46',\n        description: 'Primary Market Maker(s)',\n        tag: 1172,\n        type: 'int',\n        codeSet: 'RespondentTypeCodeSet',\n    },\n    {\n        id: '1174001',\n        name: 'OrderImbalance',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Order imbalance, auction is extended',\n        tag: 1174,\n        type: 'int',\n        codeSet: 'SecurityTradingEventCodeSet',\n    },\n    {\n        id: '1174002',\n        name: 'TradingResumes',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Trading resumes (after Halt)',\n        tag: 1174,\n        type: 'int',\n        codeSet: 'SecurityTradingEventCodeSet',\n    },\n    {\n        id: '1174003',\n        name: 'PriceVolatilityInterruption',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Price Volatility Interruption',\n        tag: 1174,\n        type: 'int',\n        codeSet: 'SecurityTradingEventCodeSet',\n    },\n    {\n        id: '1174004',\n        name: 'ChangeOfTradingSession',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Change of Trading Session',\n        tag: 1174,\n        type: 'int',\n        codeSet: 'SecurityTradingEventCodeSet',\n    },\n    {\n        id: '1174005',\n        name: 'ChangeOfTradingSubsession',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Change of Trading Subsession',\n        tag: 1174,\n        type: 'int',\n        codeSet: 'SecurityTradingEventCodeSet',\n    },\n    {\n        id: '1174006',\n        name: 'ChangeOfSecurityTradingStatus',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Change of Security Trading Status',\n        tag: 1174,\n        type: 'int',\n        codeSet: 'SecurityTradingEventCodeSet',\n    },\n    {\n        id: '1174007',\n        name: 'ChangeOfBookType',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Change of Book Type',\n        tag: 1174,\n        type: 'int',\n        codeSet: 'SecurityTradingEventCodeSet',\n    },\n    {\n        id: '1174008',\n        name: 'ChangeOfMarketDepth',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Change of Market Depth',\n        tag: 1174,\n        type: 'int',\n        codeSet: 'SecurityTradingEventCodeSet',\n    },\n    {\n        id: '1174009',\n        name: 'CorporateAction',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Corporate action',\n        tag: 1174,\n        type: 'int',\n        codeSet: 'SecurityTradingEventCodeSet',\n    },\n    {\n        id: '1176001',\n        name: 'ExchangeLast',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Exchange Last',\n        tag: 1176,\n        type: 'int',\n        codeSet: 'StatsTypeCodeSet',\n    },\n    {\n        id: '1176002',\n        name: 'High',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'High / Low Price',\n        tag: 1176,\n        type: 'int',\n        codeSet: 'StatsTypeCodeSet',\n    },\n    {\n        id: '1176003',\n        name: 'AveragePrice',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Average Price (VWAP, TWAP ... )',\n        tag: 1176,\n        type: 'int',\n        codeSet: 'StatsTypeCodeSet',\n    },\n    {\n        id: '1176004',\n        name: 'Turnover',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Turnover (Price * Qty)',\n        tag: 1176,\n        type: 'int',\n        codeSet: 'StatsTypeCodeSet',\n    },\n    {\n        id: '1178001',\n        name: 'Customer',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '47',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '190',\n        description: 'Customer\\n\\n\\n                        Quantity of retail investors.',\n        tag: 1178,\n        type: 'int',\n        codeSet: 'MDSecSizeTypeCodeSet',\n    },\n    {\n        id: '1178002',\n        name: 'CustomerProfessional',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description:\n            'Customer professional\\n\\n\\n                        Quantity of high-volume investors acting similar to broker-dealers.',\n        tag: 1178,\n        type: 'int',\n        codeSet: 'MDSecSizeTypeCodeSet',\n    },\n    {\n        id: '1178003',\n        name: 'DoNotTradeThrough',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description:\n            'Do not trade through\\n\\n\\n                        Quantity that cannot trade through the away markets.',\n        tag: 1178,\n        type: 'int',\n        codeSet: 'MDSecSizeTypeCodeSet',\n    },\n    {\n        id: '1193001',\n        name: 'CashSettlementRequired',\n        value: 'C',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Cash settlement required',\n        tag: 1193,\n        type: 'String',\n        codeSet: 'SettlMethodCodeSet',\n    },\n    {\n        id: '1193002',\n        name: 'PhysicalSettlementRequired',\n        value: 'P',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Physical settlement required',\n        tag: 1193,\n        type: 'String',\n        codeSet: 'SettlMethodCodeSet',\n    },\n    {\n        id: '1193003',\n        name: 'Election',\n        value: 'E',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Election at exercise\\n\\n\\n                        The settlement method will be elected at the time of contract exercise.',\n        tag: 1193,\n        type: 'String',\n        codeSet: 'SettlMethodCodeSet',\n    },\n    {\n        id: '1194001',\n        name: 'European',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'European',\n        tag: 1194,\n        type: 'int',\n        codeSet: 'ExerciseStyleCodeSet',\n    },\n    {\n        id: '1194002',\n        name: 'American',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'American',\n        tag: 1194,\n        type: 'int',\n        codeSet: 'ExerciseStyleCodeSet',\n    },\n    {\n        id: '1194003',\n        name: 'Bermuda',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Bermuda',\n        tag: 1194,\n        type: 'int',\n        codeSet: 'ExerciseStyleCodeSet',\n    },\n    {\n        id: '1194004',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Other',\n        tag: 1194,\n        type: 'int',\n        codeSet: 'ExerciseStyleCodeSet',\n    },\n    {\n        id: '1196001',\n        name: 'Standard',\n        value: 'STD',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Standard, money per unit of a physical',\n        tag: 1196,\n        type: 'String',\n        codeSet: 'PriceQuoteMethodCodeSet',\n    },\n    {\n        id: '1196002',\n        name: 'Index',\n        value: 'INX',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Index',\n        tag: 1196,\n        type: 'String',\n        codeSet: 'PriceQuoteMethodCodeSet',\n    },\n    {\n        id: '1196003',\n        name: 'InterestRateIndex',\n        value: 'INT',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Interest rate Index',\n        tag: 1196,\n        type: 'String',\n        codeSet: 'PriceQuoteMethodCodeSet',\n    },\n    {\n        id: '1196004',\n        name: 'PercentOfPar',\n        value: 'PCTPAR',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'Percent of Par',\n        tag: 1196,\n        type: 'String',\n        codeSet: 'PriceQuoteMethodCodeSet',\n    },\n    {\n        id: '1197001',\n        name: 'PremiumStyle',\n        value: 'EQTY',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'premium style',\n        tag: 1197,\n        type: 'String',\n        codeSet: 'ValuationMethodCodeSet',\n    },\n    {\n        id: '1197002',\n        name: 'FuturesStyleMarkToMarket',\n        value: 'FUT',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'futures style mark-to-market',\n        tag: 1197,\n        type: 'String',\n        codeSet: 'ValuationMethodCodeSet',\n    },\n    {\n        id: '1197003',\n        name: 'FuturesStyleWithAnAttachedCashAdjustment',\n        value: 'FUTDA',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'futures style with an attached cash adjustment',\n        tag: 1197,\n        type: 'String',\n        codeSet: 'ValuationMethodCodeSet',\n    },\n    {\n        id: '1197004',\n        name: 'CDSStyleCollateralization',\n        value: 'CDS',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'CDS style collateralization of market to market and coupon',\n        tag: 1197,\n        type: 'String',\n        codeSet: 'ValuationMethodCodeSet',\n    },\n    {\n        id: '1197005',\n        name: 'CDSInDeliveryUseRecoveryRateToCalculate',\n        value: 'CDSD',\n        sort: 5,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'CDS in delivery - use recovery rate to calculate obligation',\n        tag: 1197,\n        type: 'String',\n        codeSet: 'ValuationMethodCodeSet',\n    },\n    {\n        id: '1198001',\n        name: 'PreListedOnly',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'pre-listed only',\n        tag: 1198,\n        type: 'int',\n        codeSet: 'ListMethodCodeSet',\n    },\n    {\n        id: '1198002',\n        name: 'UserRequested',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'user requested',\n        tag: 1198,\n        type: 'int',\n        codeSet: 'ListMethodCodeSet',\n    },\n    {\n        id: '1209001',\n        name: 'RegularTrading',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Regular trading',\n        tag: 1209,\n        type: 'int',\n        codeSet: 'TickRuleTypeCodeSet',\n    },\n    {\n        id: '1209002',\n        name: 'VariableCabinet',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Variable cabinet',\n        tag: 1209,\n        type: 'int',\n        codeSet: 'TickRuleTypeCodeSet',\n    },\n    {\n        id: '1209003',\n        name: 'FixedCabinet',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '138',\n        description: 'Fixed cabinet',\n        tag: 1209,\n        type: 'int',\n        codeSet: 'TickRuleTypeCodeSet',\n    },\n    {\n        id: '1209004',\n        name: 'TradedAsASpreadLeg',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Traded as a spread leg',\n        tag: 1209,\n        type: 'int',\n        codeSet: 'TickRuleTypeCodeSet',\n    },\n    {\n        id: '1209005',\n        name: 'SettledAsASpreadLeg',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '138',\n        description: 'Settled as a spread leg',\n        tag: 1209,\n        type: 'int',\n        codeSet: 'TickRuleTypeCodeSet',\n    },\n    {\n        id: '1209006',\n        name: 'TradedAsSpread',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '138',\n        description: 'Traded as spread\\n\\n\\n                        Basis points spread',\n        tag: 1209,\n        type: 'int',\n        codeSet: 'TickRuleTypeCodeSet',\n    },\n    {\n        id: '1302001',\n        name: 'Months',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Months',\n        tag: 1302,\n        type: 'int',\n        codeSet: 'MaturityMonthYearIncrementUnitsCodeSet',\n    },\n    {\n        id: '1302002',\n        name: 'Days',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Days',\n        tag: 1302,\n        type: 'int',\n        codeSet: 'MaturityMonthYearIncrementUnitsCodeSet',\n    },\n    {\n        id: '1302003',\n        name: 'Weeks',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Weeks',\n        tag: 1302,\n        type: 'int',\n        codeSet: 'MaturityMonthYearIncrementUnitsCodeSet',\n    },\n    {\n        id: '1302004',\n        name: 'Years',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Years',\n        tag: 1302,\n        type: 'int',\n        codeSet: 'MaturityMonthYearIncrementUnitsCodeSet',\n    },\n    {\n        id: '1303001',\n        name: 'YearMonthOnly',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'YearMonth Only (default)',\n        tag: 1303,\n        type: 'int',\n        codeSet: 'MaturityMonthYearFormatCodeSet',\n    },\n    {\n        id: '1303002',\n        name: 'YearMonthDay',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'YearMonthDay',\n        tag: 1303,\n        type: 'int',\n        codeSet: 'MaturityMonthYearFormatCodeSet',\n    },\n    {\n        id: '1303003',\n        name: 'YearMonthWeek',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'YearMonthWeek',\n        tag: 1303,\n        type: 'int',\n        codeSet: 'MaturityMonthYearFormatCodeSet',\n    },\n    {\n        id: '1306001',\n        name: 'Price',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Price (default)',\n        tag: 1306,\n        type: 'int',\n        codeSet: 'PriceLimitTypeCodeSet',\n    },\n    {\n        id: '1306002',\n        name: 'Ticks',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Ticks',\n        tag: 1306,\n        type: 'int',\n        codeSet: 'PriceLimitTypeCodeSet',\n    },\n    {\n        id: '1306003',\n        name: 'Percentage',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Percentage',\n        tag: 1306,\n        type: 'int',\n        codeSet: 'PriceLimitTypeCodeSet',\n    },\n    {\n        id: '1324001',\n        name: 'Add',\n        value: 'A',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Add',\n        tag: 1324,\n        type: 'char',\n        codeSet: 'ListUpdateActionCodeSet',\n    },\n    {\n        id: '1324002',\n        name: 'Delete',\n        value: 'D',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Delete',\n        tag: 1324,\n        type: 'char',\n        codeSet: 'ListUpdateActionCodeSet',\n    },\n    {\n        id: '1324003',\n        name: 'Modify',\n        value: 'M',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Modify',\n        tag: 1324,\n        type: 'char',\n        codeSet: 'ListUpdateActionCodeSet',\n    },\n    {\n        id: '1324004',\n        name: 'Snapshot',\n        value: 'S',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Snapshot',\n        tag: 1324,\n        type: 'char',\n        codeSet: 'ListUpdateActionCodeSet',\n    },\n    {\n        id: '1347001',\n        name: 'Retransmission',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Retransmission of application messages for the specified Applications',\n        tag: 1347,\n        type: 'int',\n        codeSet: 'ApplReqTypeCodeSet',\n    },\n    {\n        id: '1347002',\n        name: 'Subscription',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Subscription to the specified Applications',\n        tag: 1347,\n        type: 'int',\n        codeSet: 'ApplReqTypeCodeSet',\n    },\n    {\n        id: '1347003',\n        name: 'RequestLastSeqNum',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Request for the last ApplLastSeqNum published for the specified Applications',\n        tag: 1347,\n        type: 'int',\n        codeSet: 'ApplReqTypeCodeSet',\n    },\n    {\n        id: '1347004',\n        name: 'RequestApplications',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Request valid set of Applications',\n        tag: 1347,\n        type: 'int',\n        codeSet: 'ApplReqTypeCodeSet',\n    },\n    {\n        id: '1347005',\n        name: 'Unsubscribe',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Unsubscribe to the specified Applications',\n        tag: 1347,\n        type: 'int',\n        codeSet: 'ApplReqTypeCodeSet',\n    },\n    {\n        id: '1347006',\n        name: 'CancelRetransmission',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0SP1',\n        addedEP: '78',\n        description: 'Cancel retransmission',\n        tag: 1347,\n        type: 'int',\n        codeSet: 'ApplReqTypeCodeSet',\n    },\n    {\n        id: '1347007',\n        name: 'CancelRetransmissionUnsubscribe',\n        value: '6',\n        sort: 7,\n        added: 'FIX.5.0SP1',\n        addedEP: '78',\n        description: 'Cancel retransmission and unsubscribe to the specified applications',\n        tag: 1347,\n        type: 'int',\n        codeSet: 'ApplReqTypeCodeSet',\n    },\n    {\n        id: '1348001',\n        name: 'RequestSuccessfullyProcessed',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Request successfully processed',\n        tag: 1348,\n        type: 'int',\n        codeSet: 'ApplResponseTypeCodeSet',\n    },\n    {\n        id: '1348002',\n        name: 'ApplicationDoesNotExist',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Application does not exist',\n        tag: 1348,\n        type: 'int',\n        codeSet: 'ApplResponseTypeCodeSet',\n    },\n    {\n        id: '1348003',\n        name: 'MessagesNotAvailable',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Messages not available',\n        tag: 1348,\n        type: 'int',\n        codeSet: 'ApplResponseTypeCodeSet',\n    },\n    {\n        id: '1354001',\n        name: 'ApplicationDoesNotExist',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Application does not exist',\n        tag: 1354,\n        type: 'int',\n        codeSet: 'ApplResponseErrorCodeSet',\n    },\n    {\n        id: '1354002',\n        name: 'MessagesRequestedAreNotAvailable',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Messages requested are not available',\n        tag: 1354,\n        type: 'int',\n        codeSet: 'ApplResponseErrorCodeSet',\n    },\n    {\n        id: '1354003',\n        name: 'UserNotAuthorizedForApplication',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'User not authorized for application',\n        tag: 1354,\n        type: 'int',\n        codeSet: 'ApplResponseErrorCodeSet',\n    },\n    {\n        id: '1368001',\n        name: 'TradingResumes',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Trading resumes (after Halt)',\n        tag: 1368,\n        type: 'int',\n        codeSet: 'TradSesEventCodeSet',\n    },\n    {\n        id: '1368002',\n        name: 'ChangeOfTradingSession',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Change of Trading Session',\n        tag: 1368,\n        type: 'int',\n        codeSet: 'TradSesEventCodeSet',\n    },\n    {\n        id: '1368003',\n        name: 'ChangeOfTradingSubsession',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Change of Trading Subsession',\n        tag: 1368,\n        type: 'int',\n        codeSet: 'TradSesEventCodeSet',\n    },\n    {\n        id: '1368004',\n        name: 'ChangeOfTradingStatus',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Change of Trading Status',\n        tag: 1368,\n        type: 'int',\n        codeSet: 'TradSesEventCodeSet',\n    },\n    {\n        id: '1373001',\n        name: 'SuspendOrders',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Suspend orders',\n        tag: 1373,\n        type: 'int',\n        codeSet: 'MassActionTypeCodeSet',\n    },\n    {\n        id: '1373002',\n        name: 'ReleaseOrdersFromSuspension',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Release orders from suspension',\n        tag: 1373,\n        type: 'int',\n        codeSet: 'MassActionTypeCodeSet',\n    },\n    {\n        id: '1373003',\n        name: 'CancelOrders',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Cancel orders',\n        tag: 1373,\n        type: 'int',\n        codeSet: 'MassActionTypeCodeSet',\n    },\n    {\n        id: '1374001',\n        name: 'AllOrdersForASecurity',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'All orders for a security',\n        tag: 1374,\n        type: 'int',\n        codeSet: 'MassActionScopeCodeSet',\n    },\n    {\n        id: '1374002',\n        name: 'AllOrdersForAnUnderlyingSecurity',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'All orders for an underlying security',\n        tag: 1374,\n        type: 'int',\n        codeSet: 'MassActionScopeCodeSet',\n    },\n    {\n        id: '1374003',\n        name: 'AllOrdersForAProduct',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'All orders for a product',\n        tag: 1374,\n        type: 'int',\n        codeSet: 'MassActionScopeCodeSet',\n    },\n    {\n        id: '1374004',\n        name: 'AllOrdersForACFICode',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'All orders for a CFI Code',\n        tag: 1374,\n        type: 'int',\n        codeSet: 'MassActionScopeCodeSet',\n    },\n    {\n        id: '1374005',\n        name: 'AllOrdersForASecurityType',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'All orders for a security type',\n        tag: 1374,\n        type: 'int',\n        codeSet: 'MassActionScopeCodeSet',\n    },\n    {\n        id: '1374006',\n        name: 'AllOrdersForATradingSession',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'All orders for a trading session',\n        tag: 1374,\n        type: 'int',\n        codeSet: 'MassActionScopeCodeSet',\n    },\n    {\n        id: '1374007',\n        name: 'AllOrders',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'All orders',\n        tag: 1374,\n        type: 'int',\n        codeSet: 'MassActionScopeCodeSet',\n    },\n    {\n        id: '1374008',\n        name: 'AllOrdersForAMarket',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'All orders for a market',\n        tag: 1374,\n        type: 'int',\n        codeSet: 'MassActionScopeCodeSet',\n    },\n    {\n        id: '1374009',\n        name: 'AllOrdersForAMarketSegment',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'All orders for a market segment (or multiple segments)',\n        tag: 1374,\n        type: 'int',\n        codeSet: 'MassActionScopeCodeSet',\n    },\n    {\n        id: '1374010',\n        name: 'AllOrdersForASecurityGroup',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'All orders for a security group',\n        tag: 1374,\n        type: 'int',\n        codeSet: 'MassActionScopeCodeSet',\n    },\n    {\n        id: '1374011',\n        name: 'CancelForSecurityIssuer',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'All orders for an issuer',\n        tag: 1374,\n        type: 'int',\n        codeSet: 'MassActionScopeCodeSet',\n    },\n    {\n        id: '1374012',\n        name: 'CancelForIssuerOfUnderlyingSecurity',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'All orders for an issuer of underlying security',\n        tag: 1374,\n        type: 'int',\n        codeSet: 'MassActionScopeCodeSet',\n    },\n    {\n        id: '1375001',\n        name: 'Rejected',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Rejected - See MassActionRejectReason(1376)',\n        tag: 1375,\n        type: 'int',\n        codeSet: 'MassActionResponseCodeSet',\n    },\n    {\n        id: '1375002',\n        name: 'Accepted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Accepted',\n        tag: 1375,\n        type: 'int',\n        codeSet: 'MassActionResponseCodeSet',\n    },\n    {\n        id: '1375003',\n        name: 'Completed',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Completed',\n        tag: 1375,\n        type: 'int',\n        codeSet: 'MassActionResponseCodeSet',\n    },\n    {\n        id: '1376001',\n        name: 'MassActionNotSupported',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Mass action not supported',\n        tag: 1376,\n        type: 'int',\n        codeSet: 'MassActionRejectReasonCodeSet',\n    },\n    {\n        id: '1376002',\n        name: 'InvalidOrUnknownSecurity',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Invalid or unknown security',\n        tag: 1376,\n        type: 'int',\n        codeSet: 'MassActionRejectReasonCodeSet',\n    },\n    {\n        id: '1376003',\n        name: 'InvalidOrUnknownUnderlyingSecurity',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Invalid or unknown underlying security',\n        tag: 1376,\n        type: 'int',\n        codeSet: 'MassActionRejectReasonCodeSet',\n    },\n    {\n        id: '1376004',\n        name: 'InvalidOrUnknownProduct',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Invalid or unknown product',\n        tag: 1376,\n        type: 'int',\n        codeSet: 'MassActionRejectReasonCodeSet',\n    },\n    {\n        id: '1376005',\n        name: 'InvalidOrUnknownCFICode',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Invalid or unknown CFI Code',\n        tag: 1376,\n        type: 'int',\n        codeSet: 'MassActionRejectReasonCodeSet',\n    },\n    {\n        id: '1376006',\n        name: 'InvalidOrUnknownSecurityType',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Invalid or unknown security type',\n        tag: 1376,\n        type: 'int',\n        codeSet: 'MassActionRejectReasonCodeSet',\n    },\n    {\n        id: '1376007',\n        name: 'InvalidOrUnknownTradingSession',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Invalid or unknown trading session',\n        tag: 1376,\n        type: 'int',\n        codeSet: 'MassActionRejectReasonCodeSet',\n    },\n    {\n        id: '1376008',\n        name: 'InvalidOrUnknownMarket',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Invalid or unknown market',\n        tag: 1376,\n        type: 'int',\n        codeSet: 'MassActionRejectReasonCodeSet',\n    },\n    {\n        id: '1376009',\n        name: 'InvalidOrUnknownMarketSegment',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Invalid or unknown market segment',\n        tag: 1376,\n        type: 'int',\n        codeSet: 'MassActionRejectReasonCodeSet',\n    },\n    {\n        id: '1376010',\n        name: 'InvalidOrUnknownSecurityGroup',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Invalid or unknown security group',\n        tag: 1376,\n        type: 'int',\n        codeSet: 'MassActionRejectReasonCodeSet',\n    },\n    {\n        id: '1376011',\n        name: 'InvalidOrUnknownSecurityIssuer',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Invalid or unknown issuer',\n        tag: 1376,\n        type: 'int',\n        codeSet: 'MassActionRejectReasonCodeSet',\n    },\n    {\n        id: '1376012',\n        name: 'InvalidOrUnknownIssuerOfUnderlyingSecurity',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Invalid or unknown issuer of underlying security',\n        tag: 1376,\n        type: 'int',\n        codeSet: 'MassActionRejectReasonCodeSet',\n    },\n    {\n        id: '1376013',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Other',\n        tag: 1376,\n        type: 'int',\n        codeSet: 'MassActionRejectReasonCodeSet',\n    },\n    {\n        id: '1377001',\n        name: 'PredefinedMultilegSecurity',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'Predefined Multileg Security',\n        tag: 1377,\n        type: 'int',\n        codeSet: 'MultilegModelCodeSet',\n    },\n    {\n        id: '1377002',\n        name: 'UserDefinedMultilegSecurity',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '59',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description: 'User-defined Multileg Security',\n        tag: 1377,\n        type: 'int',\n        codeSet: 'MultilegModelCodeSet',\n    },\n    {\n        id: '1377003',\n        name: 'UserDefined',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'User-defined, Non-Securitized, Multileg',\n        tag: 1377,\n        type: 'int',\n        codeSet: 'MultilegModelCodeSet',\n    },\n    {\n        id: '1378001',\n        name: 'NetPrice',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'Net Price',\n        tag: 1378,\n        type: 'int',\n        codeSet: 'MultilegPriceMethodCodeSet',\n    },\n    {\n        id: '1378002',\n        name: 'ReversedNetPrice',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'Reversed Net Price',\n        tag: 1378,\n        type: 'int',\n        codeSet: 'MultilegPriceMethodCodeSet',\n    },\n    {\n        id: '1378003',\n        name: 'YieldDifference',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'Yield Difference',\n        tag: 1378,\n        type: 'int',\n        codeSet: 'MultilegPriceMethodCodeSet',\n    },\n    {\n        id: '1378004',\n        name: 'Individual',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'Individual',\n        tag: 1378,\n        type: 'int',\n        codeSet: 'MultilegPriceMethodCodeSet',\n    },\n    {\n        id: '1378005',\n        name: 'ContractWeightedAveragePrice',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'Contract Weighted Average Price',\n        tag: 1378,\n        type: 'int',\n        codeSet: 'MultilegPriceMethodCodeSet',\n    },\n    {\n        id: '1378006',\n        name: 'MultipliedPrice',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'Multiplied Price',\n        tag: 1378,\n        type: 'int',\n        codeSet: 'MultilegPriceMethodCodeSet',\n    },\n    {\n        id: '1385001',\n        name: 'OneCancelsTheOther',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '60',\n        description: 'One Cancels the Other (OCO)',\n        tag: 1385,\n        type: 'int',\n        codeSet: 'ContingencyTypeCodeSet',\n    },\n    {\n        id: '1385002',\n        name: 'OneTriggersTheOther',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '60',\n        description: 'One Triggers the Other (OTO)',\n        tag: 1385,\n        type: 'int',\n        codeSet: 'ContingencyTypeCodeSet',\n    },\n    {\n        id: '1385003',\n        name: 'OneUpdatesTheOtherAbsolute',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '60',\n        description: 'One Updates the Other (OUO) - Absolute Quantity Reduction',\n        tag: 1385,\n        type: 'int',\n        codeSet: 'ContingencyTypeCodeSet',\n    },\n    {\n        id: '1385004',\n        name: 'OneUpdatesTheOtherProportional',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '60',\n        description: 'One Updates the Other (OUO) - Proportional Quantity Reduction',\n        tag: 1385,\n        type: 'int',\n        codeSet: 'ContingencyTypeCodeSet',\n    },\n    {\n        id: '1385005',\n        name: 'BidAndOffer',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Bid and Offer',\n        tag: 1385,\n        type: 'int',\n        codeSet: 'ContingencyTypeCodeSet',\n    },\n    {\n        id: '1385006',\n        name: 'BidAndOfferOCO',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Bid and Offer OCO',\n        tag: 1385,\n        type: 'int',\n        codeSet: 'ContingencyTypeCodeSet',\n    },\n    {\n        id: '1386001',\n        name: 'BrokerCredit',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '60',\n        description: 'Broker / Exchange option',\n        tag: 1386,\n        type: 'int',\n        codeSet: 'ListRejectReasonCodeSet',\n    },\n    {\n        id: '1386002',\n        name: 'ExchangeClosed',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '60',\n        description: 'Exchange closed',\n        tag: 1386,\n        type: 'int',\n        codeSet: 'ListRejectReasonCodeSet',\n    },\n    {\n        id: '1386003',\n        name: 'TooLateToEnter',\n        value: '4',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '60',\n        description: 'Too late to enter',\n        tag: 1386,\n        type: 'int',\n        codeSet: 'ListRejectReasonCodeSet',\n    },\n    {\n        id: '1386004',\n        name: 'UnknownOrder',\n        value: '5',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '60',\n        description: 'Unknown order',\n        tag: 1386,\n        type: 'int',\n        codeSet: 'ListRejectReasonCodeSet',\n    },\n    {\n        id: '1386005',\n        name: 'DuplicateOrder',\n        value: '6',\n        sort: 5,\n        added: 'FIX.5.0',\n        addedEP: '60',\n        description: 'Duplicate Order (e.g. dupe ClOrdID)',\n        tag: 1386,\n        type: 'int',\n        codeSet: 'ListRejectReasonCodeSet',\n    },\n    {\n        id: '1386006',\n        name: 'UnsupportedOrderCharacteristic',\n        value: '11',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '60',\n        description: 'Unsupported order characteristic',\n        tag: 1386,\n        type: 'int',\n        codeSet: 'ListRejectReasonCodeSet',\n    },\n    {\n        id: '1386007',\n        name: 'Other',\n        value: '99',\n        sort: 7,\n        added: 'FIX.5.0',\n        addedEP: '60',\n        description: 'Other',\n        tag: 1386,\n        type: 'int',\n        codeSet: 'ListRejectReasonCodeSet',\n    },\n    {\n        id: '1390001',\n        name: 'DoNotPublishTrade',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '61',\n        description: 'Do Not Publish Trade',\n        tag: 1390,\n        type: 'int',\n        codeSet: 'TradePublishIndicatorCodeSet',\n    },\n    {\n        id: '1390002',\n        name: 'PublishTrade',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '61',\n        description: 'Publish Trade',\n        tag: 1390,\n        type: 'int',\n        codeSet: 'TradePublishIndicatorCodeSet',\n    },\n    {\n        id: '1390003',\n        name: 'DeferredPublication',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '61',\n        description: 'Deferred Publication',\n        tag: 1390,\n        type: 'int',\n        codeSet: 'TradePublishIndicatorCodeSet',\n    },\n    {\n        id: '1390004',\n        name: 'Published',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description:\n            'Published\\n\\n\\n                        Indicates that the transaction has been published to the market.',\n        tag: 1390,\n        type: 'int',\n        codeSet: 'TradePublishIndicatorCodeSet',\n    },\n    {\n        id: '1409001',\n        name: 'SessionActive',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'Session active',\n        tag: 1409,\n        type: 'int',\n        codeSet: 'SessionStatusCodeSet',\n    },\n    {\n        id: '1409002',\n        name: 'SessionPasswordChanged',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'Session password changed',\n        tag: 1409,\n        type: 'int',\n        codeSet: 'SessionStatusCodeSet',\n    },\n    {\n        id: '1409003',\n        name: 'SessionPasswordDueToExpire',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'Session password due to expire',\n        tag: 1409,\n        type: 'int',\n        codeSet: 'SessionStatusCodeSet',\n    },\n    {\n        id: '1409004',\n        name: 'NewSessionPasswordDoesNotComplyWithPolicy',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'New session password does not comply with policy',\n        tag: 1409,\n        type: 'int',\n        codeSet: 'SessionStatusCodeSet',\n    },\n    {\n        id: '1409005',\n        name: 'SessionLogoutComplete',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'Session logout complete',\n        tag: 1409,\n        type: 'int',\n        codeSet: 'SessionStatusCodeSet',\n    },\n    {\n        id: '1409006',\n        name: 'InvalidUsernameOrPassword',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'Invalid username or password',\n        tag: 1409,\n        type: 'int',\n        codeSet: 'SessionStatusCodeSet',\n    },\n    {\n        id: '1409007',\n        name: 'AccountLocked',\n        value: '6',\n        sort: 7,\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'Account locked',\n        tag: 1409,\n        type: 'int',\n        codeSet: 'SessionStatusCodeSet',\n    },\n    {\n        id: '1409008',\n        name: 'LogonsAreNotAllowedAtThisTime',\n        value: '7',\n        sort: 8,\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'Logons are not allowed at this time',\n        tag: 1409,\n        type: 'int',\n        codeSet: 'SessionStatusCodeSet',\n    },\n    {\n        id: '1409009',\n        name: 'PasswordExpired',\n        value: '8',\n        sort: 9,\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'Password expired',\n        tag: 1409,\n        type: 'int',\n        codeSet: 'SessionStatusCodeSet',\n    },\n    {\n        id: '1409010',\n        name: 'ReceivedMsgSeqNumTooLow',\n        value: '9',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '124',\n        description: 'Received MsgSeqNum(34) is too low.',\n        tag: 1409,\n        type: 'int',\n        codeSet: 'SessionStatusCodeSet',\n    },\n    {\n        id: '1409011',\n        name: 'ReceivedNextExpectedMsgSeqNumTooHigh',\n        value: '10',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '124',\n        description: 'Received NextExpectedMsgSeqNum(789) is too high.',\n        tag: 1409,\n        type: 'int',\n        codeSet: 'SessionStatusCodeSet',\n    },\n    {\n        id: '1426001',\n        name: 'ApplSeqNumReset',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Reset ApplSeqNum to new value specified in ApplNewSeqNum(1399)',\n        tag: 1426,\n        type: 'int',\n        codeSet: 'ApplReportTypeCodeSet',\n    },\n    {\n        id: '1426002',\n        name: 'LastMessageSent',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description:\n            'Reports that the last message has been sent for the ApplIDs Refer to RefApplLastSeqNum(1357) for the application sequence number of the last message.',\n        tag: 1426,\n        type: 'int',\n        codeSet: 'ApplReportTypeCodeSet',\n    },\n    {\n        id: '1426003',\n        name: 'ApplicationAlive',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description:\n            'Heartbeat message indicating that Application identified by RefApplID(1355) is still alive. Refer to RefApplLastSeqNum(1357) for the application sequence number of the previous message.',\n        tag: 1426,\n        type: 'int',\n        codeSet: 'ApplReportTypeCodeSet',\n    },\n    {\n        id: '1426004',\n        name: 'ResendComplete',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '91',\n        description: 'Application message re-send completed.',\n        tag: 1426,\n        type: 'int',\n        codeSet: 'ApplReportTypeCodeSet',\n    },\n    {\n        id: '1429001',\n        name: 'Seconds',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'Seconds (default if not specified)',\n        tag: 1429,\n        type: 'int',\n        codeSet: 'OrderDelayUnitCodeSet',\n    },\n    {\n        id: '1429002',\n        name: 'TenthsOfASecond',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'Tenths of a second',\n        tag: 1429,\n        type: 'int',\n        codeSet: 'OrderDelayUnitCodeSet',\n    },\n    {\n        id: '1429003',\n        name: 'HundredthsOfASecond',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'Hundredths of a second',\n        tag: 1429,\n        type: 'int',\n        codeSet: 'OrderDelayUnitCodeSet',\n    },\n    {\n        id: '1429004',\n        name: 'Milliseconds',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'milliseconds',\n        tag: 1429,\n        type: 'int',\n        codeSet: 'OrderDelayUnitCodeSet',\n    },\n    {\n        id: '1429005',\n        name: 'Microseconds',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'microseconds',\n        tag: 1429,\n        type: 'int',\n        codeSet: 'OrderDelayUnitCodeSet',\n    },\n    {\n        id: '1429006',\n        name: 'Nanoseconds',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'nanoseconds',\n        tag: 1429,\n        type: 'int',\n        codeSet: 'OrderDelayUnitCodeSet',\n    },\n    {\n        id: '1429007',\n        name: 'Minutes',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'minutes',\n        tag: 1429,\n        type: 'int',\n        codeSet: 'OrderDelayUnitCodeSet',\n    },\n    {\n        id: '1429008',\n        name: 'Hours',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'hours',\n        tag: 1429,\n        type: 'int',\n        codeSet: 'OrderDelayUnitCodeSet',\n    },\n    {\n        id: '1429009',\n        name: 'Days',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'days',\n        tag: 1429,\n        type: 'int',\n        codeSet: 'OrderDelayUnitCodeSet',\n    },\n    {\n        id: '1429010',\n        name: 'Weeks',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'weeks',\n        tag: 1429,\n        type: 'int',\n        codeSet: 'OrderDelayUnitCodeSet',\n    },\n    {\n        id: '1429011',\n        name: 'Months',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'months',\n        tag: 1429,\n        type: 'int',\n        codeSet: 'OrderDelayUnitCodeSet',\n    },\n    {\n        id: '1429012',\n        name: 'Years',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'years',\n        tag: 1429,\n        type: 'int',\n        codeSet: 'OrderDelayUnitCodeSet',\n    },\n    {\n        id: '1430001',\n        name: 'Electronic',\n        value: 'E',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Electronic exchange',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1430002',\n        name: 'Pit',\n        value: 'P',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'Pit',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1430003',\n        name: 'ExPit',\n        value: 'X',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Ex-pit',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1430004',\n        name: 'ClearingHouse',\n        value: 'C',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Clearinghouse',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1430005',\n        name: 'RegisteredMarket',\n        value: 'R',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Registered market\\n\\n\\n                        Markets registered with regulators such as exchange, multilateral trading facility (MTF), swap execution facility (SEF). In the context of regulatory reporting (e.g. CFTC reporting), this is used for regulated markets, e.g. swap markets.',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1430006',\n        name: 'OffMarket',\n        value: 'O',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Off-market\\n\\n\\n                        Off-book, off-facility. In the context of regulatory reporting (e.g. CFTC reporting) this identifies trades conducted away from a regulated market.',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1430007',\n        name: 'CentralLimitOrderBook',\n        value: 'B',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '163',\n        description: 'Central limit order book',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1430008',\n        name: 'QuoteDrivenMarket',\n        value: 'Q',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '163',\n        description: 'Quote driven market',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1430009',\n        name: 'DarkOrderBook',\n        value: 'D',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '163',\n        description: 'Dark order book',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1430010',\n        name: 'AuctionDrivenMarket',\n        value: 'A',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description:\n            'Auction driven market\\n\\n\\n                        Markets where matching occurs only in scheduled auctions.',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1430011',\n        name: 'QuoteNegotiation',\n        value: 'N',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description:\n            'Quote negotiation\\n\\n\\n                        Discretionary quoting on request or \"request for quote\" market.',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1430012',\n        name: 'VoiceNegotiation',\n        value: 'V',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Voice negotiation\\n\\n\\n                        A trading system where transactions between members are arranged through voice negotiation.',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1430013',\n        name: 'HybridMarket',\n        value: 'H',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        updated: 'FIX.Latest',\n        updatedEP: '286',\n        description:\n            'Hybrid market\\n\\n\\n                        A hybrid system falling into two or more types of trading systems. In the context of ESMA reporting, this is for \"Hybrid system.\" In the context of FCA reporting, this is for \"Any other, including hybrid.\"',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1430014',\n        name: 'OtherMarket',\n        value: 'z',\n        sort: 13,\n        added: 'FIX.Latest',\n        addedEP: '277',\n        updated: 'FIX.Latest',\n        updatedEP: '286',\n        description:\n            'Other market (lowercase \"z\")\\n\\n\\n                        A market that does not fall under any of the market types defined for VenueType(1430). In the context of ESMA reporting, this is for \"Any other, excluding hybrid.\"',\n        tag: 1430,\n        type: 'char',\n        codeSet: 'VenueTypeCodeSet',\n    },\n    {\n        id: '1431001',\n        name: 'GTCFromPreviousDay',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'GTC from previous day',\n        tag: 1431,\n        type: 'int',\n        codeSet: 'RefOrdIDReasonCodeSet',\n    },\n    {\n        id: '1431002',\n        name: 'PartialFillRemaining',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'Partial Fill Remaining',\n        tag: 1431,\n        type: 'int',\n        codeSet: 'RefOrdIDReasonCodeSet',\n    },\n    {\n        id: '1431003',\n        name: 'OrderChanged',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'Order Changed',\n        tag: 1431,\n        type: 'int',\n        codeSet: 'RefOrdIDReasonCodeSet',\n    },\n    {\n        id: '1432001',\n        name: 'MemberTradingForTheirOwnAccount',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'Member trading for their own account',\n        tag: 1432,\n        type: 'int',\n        codeSet: 'OrigCustOrderCapacityCodeSet',\n    },\n    {\n        id: '1432002',\n        name: 'ClearingFirmTradingForItsProprietaryAccount',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'Clearing Firm trading for its proprietary account',\n        tag: 1432,\n        type: 'int',\n        codeSet: 'OrigCustOrderCapacityCodeSet',\n    },\n    {\n        id: '1432003',\n        name: 'MemberTradingForAnotherMember',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'Member trading for another member',\n        tag: 1432,\n        type: 'int',\n        codeSet: 'OrigCustOrderCapacityCodeSet',\n    },\n    {\n        id: '1432004',\n        name: 'AllOther',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'All other',\n        tag: 1432,\n        type: 'int',\n        codeSet: 'OrigCustOrderCapacityCodeSet',\n    },\n    {\n        id: '1434001',\n        name: 'UtilityProvidedStandardModel',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '79',\n        description: 'Utility provided standard model',\n        tag: 1434,\n        type: 'int',\n        codeSet: 'ModelTypeCodeSet',\n    },\n    {\n        id: '1434002',\n        name: 'ProprietaryModel',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '79',\n        description: 'Proprietary (user supplied) model',\n        tag: 1434,\n        type: 'int',\n        codeSet: 'ModelTypeCodeSet',\n    },\n    {\n        id: '1435001',\n        name: 'Shares',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        description: 'Shares',\n        tag: 1435,\n        type: 'int',\n        codeSet: 'ContractMultiplierUnitCodeSet',\n    },\n    {\n        id: '1435002',\n        name: 'Hours',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        description: 'Hours',\n        tag: 1435,\n        type: 'int',\n        codeSet: 'ContractMultiplierUnitCodeSet',\n    },\n    {\n        id: '1435003',\n        name: 'Days',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        description: 'Days',\n        tag: 1435,\n        type: 'int',\n        codeSet: 'ContractMultiplierUnitCodeSet',\n    },\n    {\n        id: '1439001',\n        name: 'NERCEasternOffPeak',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        description: 'NERC Eastern Off-Peak',\n        tag: 1439,\n        type: 'int',\n        codeSet: 'FlowScheduleTypeCodeSet',\n    },\n    {\n        id: '1439002',\n        name: 'NERCWesternOffPeak',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        description: 'NERC Western Off-Peak',\n        tag: 1439,\n        type: 'int',\n        codeSet: 'FlowScheduleTypeCodeSet',\n    },\n    {\n        id: '1439003',\n        name: 'NERCCalendarAllDaysInMonth',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        description: 'NERC Calendar-All Days in month',\n        tag: 1439,\n        type: 'int',\n        codeSet: 'FlowScheduleTypeCodeSet',\n    },\n    {\n        id: '1439004',\n        name: 'NERCEasternPeak',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        description: 'NERC Eastern Peak',\n        tag: 1439,\n        type: 'int',\n        codeSet: 'FlowScheduleTypeCodeSet',\n    },\n    {\n        id: '1439005',\n        name: 'NERCWesternPeak',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        description: 'NERC Western Peak',\n        tag: 1439,\n        type: 'int',\n        codeSet: 'FlowScheduleTypeCodeSet',\n    },\n    {\n        id: '1439006',\n        name: 'AllTimes',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'All times',\n        tag: 1439,\n        type: 'int',\n        codeSet: 'FlowScheduleTypeCodeSet',\n    },\n    {\n        id: '1439007',\n        name: 'OnPeak',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'On peak',\n        tag: 1439,\n        type: 'int',\n        codeSet: 'FlowScheduleTypeCodeSet',\n    },\n    {\n        id: '1439008',\n        name: 'OffPeak',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Off peak',\n        tag: 1439,\n        type: 'int',\n        codeSet: 'FlowScheduleTypeCodeSet',\n    },\n    {\n        id: '1439009',\n        name: 'Base',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Base',\n        tag: 1439,\n        type: 'int',\n        codeSet: 'FlowScheduleTypeCodeSet',\n    },\n    {\n        id: '1439010',\n        name: 'Block',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Block',\n        tag: 1439,\n        type: 'int',\n        codeSet: 'FlowScheduleTypeCodeSet',\n    },\n    {\n        id: '1439011',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Other',\n        tag: 1439,\n        type: 'int',\n        codeSet: 'FlowScheduleTypeCodeSet',\n    },\n    {\n        id: '1446001',\n        name: 'Bloomberg',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        description: 'Bloomberg',\n        tag: 1446,\n        type: 'int',\n        codeSet: 'RateSourceCodeSet',\n    },\n    {\n        id: '1446002',\n        name: 'Reuters',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        description: 'Reuters',\n        tag: 1446,\n        type: 'int',\n        codeSet: 'RateSourceCodeSet',\n    },\n    {\n        id: '1446003',\n        name: 'Telerate',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        description: 'Telerate',\n        tag: 1446,\n        type: 'int',\n        codeSet: 'RateSourceCodeSet',\n    },\n    {\n        id: '1446004',\n        name: 'ISDARateOption',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'ISDA Settlement Rate Option\\n\\n\\n                        The source of the currency conversion as specified by the ISDA terms in Annex A to the 1998 FX and Currency Option Definitions. See http://www.fpml.org/coding-scheme/settlement-rate-option',\n        tag: 1446,\n        type: 'int',\n        codeSet: 'RateSourceCodeSet',\n    },\n    {\n        id: '1446005',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        description: 'Other',\n        tag: 1446,\n        type: 'int',\n        codeSet: 'RateSourceCodeSet',\n    },\n    {\n        id: '1447001',\n        name: 'Primary',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        description: 'Primary',\n        tag: 1447,\n        type: 'int',\n        codeSet: 'RateSourceTypeCodeSet',\n    },\n    {\n        id: '1447002',\n        name: 'Secondary',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        description: 'Secondary',\n        tag: 1447,\n        type: 'int',\n        codeSet: 'RateSourceTypeCodeSet',\n    },\n    {\n        id: '1449001',\n        name: 'FullRestructuring',\n        value: 'FR',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'Full Restructuring',\n        tag: 1449,\n        type: 'String',\n        codeSet: 'RestructuringTypeCodeSet',\n    },\n    {\n        id: '1449002',\n        name: 'ModifiedRestructuring',\n        value: 'MR',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'Modified Restructuring',\n        tag: 1449,\n        type: 'String',\n        codeSet: 'RestructuringTypeCodeSet',\n    },\n    {\n        id: '1449003',\n        name: 'ModifiedModRestructuring',\n        value: 'MM',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'Modified Mod Restructuring',\n        tag: 1449,\n        type: 'String',\n        codeSet: 'RestructuringTypeCodeSet',\n    },\n    {\n        id: '1449004',\n        name: 'NoRestructuringSpecified',\n        value: 'XR',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'No Restructuring specified',\n        tag: 1449,\n        type: 'String',\n        codeSet: 'RestructuringTypeCodeSet',\n    },\n    {\n        id: '1450001',\n        name: 'SeniorSecured',\n        value: 'SD',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'Senior Secured',\n        tag: 1450,\n        type: 'String',\n        codeSet: 'SeniorityCodeSet',\n    },\n    {\n        id: '1450002',\n        name: 'Senior',\n        value: 'SR',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'Senior',\n        tag: 1450,\n        type: 'String',\n        codeSet: 'SeniorityCodeSet',\n    },\n    {\n        id: '1450003',\n        name: 'Subordinated',\n        value: 'SB',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'Subordinated',\n        tag: 1450,\n        type: 'String',\n        codeSet: 'SeniorityCodeSet',\n    },\n    {\n        id: '1450004',\n        name: 'Junior',\n        value: 'JR',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            'Junior\\n\\n\\n                        In the context of MiFID II this value is used as identified in RTS 23 Annex I Table 3 Field 23 \"Seniority of the bond\".',\n        tag: 1450,\n        type: 'String',\n        codeSet: 'SeniorityCodeSet',\n    },\n    {\n        id: '1450005',\n        name: 'Mezzanine',\n        value: 'MZ',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            'Mezzanine\\n\\n\\n                        In the context of MiFID II this value is used as identified in RTS 23 Annex I Table 3 Field 23 \"Seniority of the bond\".',\n        tag: 1450,\n        type: 'String',\n        codeSet: 'SeniorityCodeSet',\n    },\n    {\n        id: '1450006',\n        name: 'SeniorNonPreferred',\n        value: 'SN',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            \"Senior Non-Preferred\\n\\n\\n                        For CDS reference obligations of non-preferred senior debt issued by European Financials that constitute a layer of debt ranking between the bank's normal senior debt but above the bank's normal tier 2 subordinated debt (reference: ISDA Credit Market Infrastructure Group).\",\n        tag: 1450,\n        type: 'String',\n        codeSet: 'SeniorityCodeSet',\n    },\n    {\n        id: '1470001',\n        name: 'IndustryClassification',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        description: 'Industry Classification',\n        tag: 1470,\n        type: 'int',\n        codeSet: 'SecurityListTypeCodeSet',\n    },\n    {\n        id: '1470002',\n        name: 'TradingList',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        description: 'Trading List',\n        tag: 1470,\n        type: 'int',\n        codeSet: 'SecurityListTypeCodeSet',\n    },\n    {\n        id: '1470003',\n        name: 'Market',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        description: 'Market / Market Segment List',\n        tag: 1470,\n        type: 'int',\n        codeSet: 'SecurityListTypeCodeSet',\n    },\n    {\n        id: '1470004',\n        name: 'NewspaperList',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        description: 'Newspaper List',\n        tag: 1470,\n        type: 'int',\n        codeSet: 'SecurityListTypeCodeSet',\n    },\n    {\n        id: '1471001',\n        name: 'ICB',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        description: 'ICB (Industry Classification Benchmark) published by Dow Jones and FTSE - www.icbenchmark.com',\n        tag: 1471,\n        type: 'int',\n        codeSet: 'SecurityListTypeSourceCodeSet',\n    },\n    {\n        id: '1471002',\n        name: 'NAICS',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        description:\n            'NAICS (North American Industry Classification System). Replaced SIC (Standard Industry Classification) www.census.gov/naics or www.naics.com.',\n        tag: 1471,\n        type: 'int',\n        codeSet: 'SecurityListTypeSourceCodeSet',\n    },\n    {\n        id: '1471003',\n        name: 'GICS',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        description: 'GICS (Global Industry Classification Standard) published by Standards & Poor',\n        tag: 1471,\n        type: 'int',\n        codeSet: 'SecurityListTypeSourceCodeSet',\n    },\n    {\n        id: '1473001',\n        name: 'CompanyNews',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        description: 'Company News',\n        tag: 1473,\n        type: 'int',\n        codeSet: 'NewsCategoryCodeSet',\n    },\n    {\n        id: '1473002',\n        name: 'MarketplaceNews',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        description: 'Marketplace News',\n        tag: 1473,\n        type: 'int',\n        codeSet: 'NewsCategoryCodeSet',\n    },\n    {\n        id: '1473003',\n        name: 'FinancialMarketNews',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        description: 'Financial Market News',\n        tag: 1473,\n        type: 'int',\n        codeSet: 'NewsCategoryCodeSet',\n    },\n    {\n        id: '1473004',\n        name: 'TechnicalNews',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        description: 'Technical News',\n        tag: 1473,\n        type: 'int',\n        codeSet: 'NewsCategoryCodeSet',\n    },\n    {\n        id: '1473005',\n        name: 'OtherNews',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        description: 'Other News',\n        tag: 1473,\n        type: 'int',\n        codeSet: 'NewsCategoryCodeSet',\n    },\n    {\n        id: '1477001',\n        name: 'Replacement',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        description: 'Replacement',\n        tag: 1477,\n        type: 'int',\n        codeSet: 'NewsRefTypeCodeSet',\n    },\n    {\n        id: '1477002',\n        name: 'OtherLanguage',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '190',\n        description: 'Other language',\n        tag: 1477,\n        type: 'int',\n        codeSet: 'NewsRefTypeCodeSet',\n    },\n    {\n        id: '1477003',\n        name: 'Complimentary',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        description: 'Complimentary',\n        tag: 1477,\n        type: 'int',\n        codeSet: 'NewsRefTypeCodeSet',\n    },\n    {\n        id: '1477004',\n        name: 'Withdrawal',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description:\n            'Withdrawal\\n\\n\\n                        Withdrawal of the referenced news item, e.g. to correct an error.',\n        tag: 1477,\n        type: 'int',\n        codeSet: 'NewsRefTypeCodeSet',\n    },\n    {\n        id: '1478001',\n        name: 'FixedStrike',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Fixed strike (default if not specified)',\n        tag: 1478,\n        type: 'int',\n        codeSet: 'StrikePriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '1478002',\n        name: 'StrikeSetAtExpiration',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Strike set at expiration to underlying or other value (lookback floating)',\n        tag: 1478,\n        type: 'int',\n        codeSet: 'StrikePriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '1478003',\n        name: 'StrikeSetToAverageAcrossLife',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Strike set to average of underlying settlement price across the life of the option',\n        tag: 1478,\n        type: 'int',\n        codeSet: 'StrikePriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '1478004',\n        name: 'StrikeSetToOptimalValue',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Strike set to optimal value',\n        tag: 1478,\n        type: 'int',\n        codeSet: 'StrikePriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '1479001',\n        name: 'LessThan',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Less than underlying price is in-the-money (ITM)',\n        tag: 1479,\n        type: 'int',\n        codeSet: 'StrikePriceBoundaryMethodCodeSet',\n    },\n    {\n        id: '1479002',\n        name: 'LessThanOrEqual',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Less than or equal to the underlying price is in-the-money(ITM)',\n        tag: 1479,\n        type: 'int',\n        codeSet: 'StrikePriceBoundaryMethodCodeSet',\n    },\n    {\n        id: '1479003',\n        name: 'Equal',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Equal to the underlying price is in-the-money(ITM)',\n        tag: 1479,\n        type: 'int',\n        codeSet: 'StrikePriceBoundaryMethodCodeSet',\n    },\n    {\n        id: '1479004',\n        name: 'GreaterThanOrEqual',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Greater than or equal to underlying price is in-the-money(ITM)',\n        tag: 1479,\n        type: 'int',\n        codeSet: 'StrikePriceBoundaryMethodCodeSet',\n    },\n    {\n        id: '1479005',\n        name: 'GreaterThan',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Greater than underlying is in-the-money(ITM)',\n        tag: 1479,\n        type: 'int',\n        codeSet: 'StrikePriceBoundaryMethodCodeSet',\n    },\n    {\n        id: '1481001',\n        name: 'Regular',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Regular',\n        tag: 1481,\n        type: 'int',\n        codeSet: 'UnderlyingPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '1481002',\n        name: 'SpecialReference',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Special reference',\n        tag: 1481,\n        type: 'int',\n        codeSet: 'UnderlyingPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '1481003',\n        name: 'OptimalValue',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Optimal value (Lookback)',\n        tag: 1481,\n        type: 'int',\n        codeSet: 'UnderlyingPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '1481004',\n        name: 'AverageValue',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Average value (Asian option)',\n        tag: 1481,\n        type: 'int',\n        codeSet: 'UnderlyingPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '1482001',\n        name: 'Vanilla',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Vanilla',\n        tag: 1482,\n        type: 'int',\n        codeSet: 'OptPayoutTypeCodeSet',\n    },\n    {\n        id: '1482002',\n        name: 'Capped',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Capped',\n        tag: 1482,\n        type: 'int',\n        codeSet: 'OptPayoutTypeCodeSet',\n    },\n    {\n        id: '1482003',\n        name: 'Binary',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description: 'Digital (Binary)',\n        tag: 1482,\n        type: 'int',\n        codeSet: 'OptPayoutTypeCodeSet',\n    },\n    {\n        id: '1482004',\n        name: 'Asian',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Asian',\n        tag: 1482,\n        type: 'int',\n        codeSet: 'OptPayoutTypeCodeSet',\n    },\n    {\n        id: '1482005',\n        name: 'Barrier',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Barrier',\n        tag: 1482,\n        type: 'int',\n        codeSet: 'OptPayoutTypeCodeSet',\n    },\n    {\n        id: '1482006',\n        name: 'DigitalBarrier',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Digital Barrier',\n        tag: 1482,\n        type: 'int',\n        codeSet: 'OptPayoutTypeCodeSet',\n    },\n    {\n        id: '1482007',\n        name: 'Lookback',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Lookback',\n        tag: 1482,\n        type: 'int',\n        codeSet: 'OptPayoutTypeCodeSet',\n    },\n    {\n        id: '1482008',\n        name: 'OtherPathDependent',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Other path dependent',\n        tag: 1482,\n        type: 'int',\n        codeSet: 'OptPayoutTypeCodeSet',\n    },\n    {\n        id: '1482009',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Other',\n        tag: 1482,\n        type: 'int',\n        codeSet: 'OptPayoutTypeCodeSet',\n    },\n    {\n        id: '1484001',\n        name: 'Capped',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Capped',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484002',\n        name: 'Trigger',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Trigger',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484003',\n        name: 'KnockInUp',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Knock-in up',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484004',\n        name: 'KnockInDown',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Knock-in down',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484005',\n        name: 'KnockOutUp',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Knock-out up',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484006',\n        name: 'KnockOutDown',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Knock-out down',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484007',\n        name: 'Underlying',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Underlying',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484008',\n        name: 'ResetBarrier',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Reset Barrier',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484009',\n        name: 'RollingBarrier',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Rolling Barrier',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484010',\n        name: 'OneTouch',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'One-touch',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484011',\n        name: 'NoTouch',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'No-touch',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484012',\n        name: 'DblOneTouch',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Double one-touch',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484013',\n        name: 'DblNoTouch',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Double no-touch',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484014',\n        name: 'FXComposite',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Foreign exchange composite',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484015',\n        name: 'FXQuanto',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Foreign exchange Quanto',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484016',\n        name: 'FXCrssCcy',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Foreign exchange cross currency',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484017',\n        name: 'StrkSpread',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Strike spread',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484018',\n        name: 'ClndrSpread',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Calendar spread',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484019',\n        name: 'PxObsvtn',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Price observation (Asian or Lookback)',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484020',\n        name: 'PassThrough',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Pass-through',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484021',\n        name: 'StrkSched',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Strike schedule',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484022',\n        name: 'EquityValuation',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Equity valuation',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1484023',\n        name: 'DividendValuation',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Dividend valuation',\n        tag: 1484,\n        type: 'int',\n        codeSet: 'ComplexEventTypeCodeSet',\n    },\n    {\n        id: '1487001',\n        name: 'LessThanComplexEventPrice',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Less than ComplexEventPrice(1486)',\n        tag: 1487,\n        type: 'int',\n        codeSet: 'ComplexEventPriceBoundaryMethodCodeSet',\n    },\n    {\n        id: '1487002',\n        name: 'LessThanOrEqualToComplexEventPrice',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Less than or equal to ComplexEventPrice(1486)',\n        tag: 1487,\n        type: 'int',\n        codeSet: 'ComplexEventPriceBoundaryMethodCodeSet',\n    },\n    {\n        id: '1487003',\n        name: 'EqualToComplexEventPrice',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Equal to ComplexEventPrice(1486)',\n        tag: 1487,\n        type: 'int',\n        codeSet: 'ComplexEventPriceBoundaryMethodCodeSet',\n    },\n    {\n        id: '1487004',\n        name: 'GreaterThanOrEqualToComplexEventPrice',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Greater than or equal to ComplexEventPrice(1486)',\n        tag: 1487,\n        type: 'int',\n        codeSet: 'ComplexEventPriceBoundaryMethodCodeSet',\n    },\n    {\n        id: '1487005',\n        name: 'GreaterThanComplexEventPrice',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Greater than ComplexEventPrice(1486)',\n        tag: 1487,\n        type: 'int',\n        codeSet: 'ComplexEventPriceBoundaryMethodCodeSet',\n    },\n    {\n        id: '1489001',\n        name: 'Expiration',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Expiration',\n        tag: 1489,\n        type: 'int',\n        codeSet: 'ComplexEventPriceTimeTypeCodeSet',\n    },\n    {\n        id: '1489002',\n        name: 'Immediate',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Immediate (At Any Time)',\n        tag: 1489,\n        type: 'int',\n        codeSet: 'ComplexEventPriceTimeTypeCodeSet',\n    },\n    {\n        id: '1489003',\n        name: 'SpecifiedDate',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Specified Date/Time',\n        tag: 1489,\n        type: 'int',\n        codeSet: 'ComplexEventPriceTimeTypeCodeSet',\n    },\n    {\n        id: '1489004',\n        name: 'Close',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Close\\n\\n\\n                        Official closing time of the exchange on valuation date.',\n        tag: 1489,\n        type: 'int',\n        codeSet: 'ComplexEventPriceTimeTypeCodeSet',\n    },\n    {\n        id: '1489005',\n        name: 'Open',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Open\\n\\n\\n                        Official opening time of the exchange on valuation date.',\n        tag: 1489,\n        type: 'int',\n        codeSet: 'ComplexEventPriceTimeTypeCodeSet',\n    },\n    {\n        id: '1489006',\n        name: 'OfficialSettlPrice',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Official settlement price\\n\\n\\n                        Official settlement price determination time.',\n        tag: 1489,\n        type: 'int',\n        codeSet: 'ComplexEventPriceTimeTypeCodeSet',\n    },\n    {\n        id: '1489007',\n        name: 'DerivativesClose',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Derivatives close\\n\\n\\n                        Official closing time of the derivatives exchange.',\n        tag: 1489,\n        type: 'int',\n        codeSet: 'ComplexEventPriceTimeTypeCodeSet',\n    },\n    {\n        id: '1489008',\n        name: 'AsSpecifiedMasterConfirmation',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'As specified in Master Confirmation',\n        tag: 1489,\n        type: 'int',\n        codeSet: 'ComplexEventPriceTimeTypeCodeSet',\n    },\n    {\n        id: '1490001',\n        name: 'And',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'And',\n        tag: 1490,\n        type: 'int',\n        codeSet: 'ComplexEventConditionCodeSet',\n    },\n    {\n        id: '1490002',\n        name: 'Or',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Or',\n        tag: 1490,\n        type: 'int',\n        codeSet: 'ComplexEventConditionCodeSet',\n    },\n    {\n        id: '1498001',\n        name: 'StreamAssignmentForNewCustomer',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Stream assignment for new customer(s)',\n        tag: 1498,\n        type: 'int',\n        codeSet: 'StreamAsgnReqTypeCodeSet',\n    },\n    {\n        id: '1498002',\n        name: 'StreamAssignmentForExistingCustomer',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Stream assignment for existing customer(s)',\n        tag: 1498,\n        type: 'int',\n        codeSet: 'StreamAsgnReqTypeCodeSet',\n    },\n    {\n        id: '1502001',\n        name: 'UnknownClient',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Unknown client',\n        tag: 1502,\n        type: 'int',\n        codeSet: 'StreamAsgnRejReasonCodeSet',\n    },\n    {\n        id: '1502002',\n        name: 'ExceedsMaximumSize',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Exceeds maximum size',\n        tag: 1502,\n        type: 'int',\n        codeSet: 'StreamAsgnRejReasonCodeSet',\n    },\n    {\n        id: '1502003',\n        name: 'UnknownOrInvalidCurrencyPair',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Unknown or Invalid currency pair',\n        tag: 1502,\n        type: 'int',\n        codeSet: 'StreamAsgnRejReasonCodeSet',\n    },\n    {\n        id: '1502004',\n        name: 'NoAvailableStream',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'No available stream',\n        tag: 1502,\n        type: 'int',\n        codeSet: 'StreamAsgnRejReasonCodeSet',\n    },\n    {\n        id: '1502005',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Other',\n        tag: 1502,\n        type: 'int',\n        codeSet: 'StreamAsgnRejReasonCodeSet',\n    },\n    {\n        id: '1503001',\n        name: 'AssignmentAccepted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Assignment Accepted',\n        tag: 1503,\n        type: 'int',\n        codeSet: 'StreamAsgnAckTypeCodeSet',\n    },\n    {\n        id: '1503002',\n        name: 'AssignmentRejected',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Assignment Rejected',\n        tag: 1503,\n        type: 'int',\n        codeSet: 'StreamAsgnAckTypeCodeSet',\n    },\n    {\n        id: '1511001',\n        name: 'ValidRequest',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Valid request',\n        tag: 1511,\n        type: 'int',\n        codeSet: 'RequestResultCodeSet',\n    },\n    {\n        id: '1511002',\n        name: 'InvalidOrUnsupportedRequest',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Invalid or unsupported request',\n        tag: 1511,\n        type: 'int',\n        codeSet: 'RequestResultCodeSet',\n    },\n    {\n        id: '1511003',\n        name: 'NoDataFound',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'No data found that match selection criteria',\n        tag: 1511,\n        type: 'int',\n        codeSet: 'RequestResultCodeSet',\n    },\n    {\n        id: '1511004',\n        name: 'NotAuthorized',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Not authorized to retrieve data',\n        tag: 1511,\n        type: 'int',\n        codeSet: 'RequestResultCodeSet',\n    },\n    {\n        id: '1511005',\n        name: 'DataTemporarilyUnavailable',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Data temporarily unavailable',\n        tag: 1511,\n        type: 'int',\n        codeSet: 'RequestResultCodeSet',\n    },\n    {\n        id: '1511006',\n        name: 'RequestForDataNotSupported',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Request for data not supported',\n        tag: 1511,\n        type: 'int',\n        codeSet: 'RequestResultCodeSet',\n    },\n    {\n        id: '1511007',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Other (further information in RejectText (1328) field)',\n        tag: 1511,\n        type: 'int',\n        codeSet: 'RequestResultCodeSet',\n    },\n    {\n        id: '1515001',\n        name: 'IsAlso',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Is also',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515002',\n        name: 'ClearsFor',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Clears for',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515003',\n        name: 'ClearsThrough',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Clears through',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515004',\n        name: 'TradesFor',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Trades for',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515005',\n        name: 'TradesThrough',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Trades through',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515006',\n        name: 'Sponsors',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Sponsors',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515007',\n        name: 'SponsoredThrough',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Sponsored through',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515008',\n        name: 'ProvidesGuaranteeFor',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Provides guarantee for',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515009',\n        name: 'IsGuaranteedBy',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Is guaranteed by',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515010',\n        name: 'MemberOf',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Member of',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515011',\n        name: 'HasMembers',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Has members',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515012',\n        name: 'ProvidesMarketplaceFor',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Provides marketplace for',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515013',\n        name: 'ParticipantOfMarketplace',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Participant of marketplace',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515014',\n        name: 'CarriesPositionsFor',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Carries positions for',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515015',\n        name: 'PostsTradesTo',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Posts trades to',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515016',\n        name: 'EntersTradesFor',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Enters trades for',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515017',\n        name: 'EntersTradesThrough',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Enters trades through',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515018',\n        name: 'ProvidesQuotesTo',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Provides quotes to',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515019',\n        name: 'RequestsQuotesFrom',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Requests quotes from',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515020',\n        name: 'InvestsFor',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Invests for',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515021',\n        name: 'InvestsThrough',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Invests through',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515022',\n        name: 'BrokersTradesFor',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Brokers trades for',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515023',\n        name: 'BrokersTradesThrough',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Brokers trades through',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515024',\n        name: 'ProvidesTradingServicesFor',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Provides trading services for',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515025',\n        name: 'UsesTradingServicesOf',\n        value: '24',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Uses trading services of',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515026',\n        name: 'ApprovesOf',\n        value: '25',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Approves of',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515027',\n        name: 'ApprovedBy',\n        value: '26',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Approved by',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515028',\n        name: 'ParentFirmFor',\n        value: '27',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Parent firm for',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515029',\n        name: 'SubsidiaryOf',\n        value: '28',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Subsidiary of',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515030',\n        name: 'RegulatoryOwnerOf',\n        value: '29',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Regulatory owner of',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515031',\n        name: 'OwnedByRegulatory',\n        value: '30',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Owned by (regulatory)',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515032',\n        name: 'Controls',\n        value: '31',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Controls',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515033',\n        name: 'IsControlledBy',\n        value: '32',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Is controlled by',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515034',\n        name: 'LegalOwnerOf',\n        value: '33',\n        sort: 33,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Legal / titled owner of',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515035',\n        name: 'OwnedByLegal',\n        value: '34',\n        sort: 34,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Owned by (legal / title)',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515036',\n        name: 'BeneficialOwnerOf',\n        value: '35',\n        sort: 35,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Beneficial owner of',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515037',\n        name: 'OwnedByBeneficial',\n        value: '36',\n        sort: 36,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Owned by (beneficial)',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515038',\n        name: 'SettlesFor',\n        value: '37',\n        sort: 37,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Settles for',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1515039',\n        name: 'SettlesThrough',\n        value: '38',\n        sort: 38,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Settles through',\n        tag: 1515,\n        type: 'int',\n        codeSet: 'PartyRelationshipCodeSet',\n    },\n    {\n        id: '1523001',\n        name: 'Accepted',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Accepted',\n        tag: 1523,\n        type: 'int',\n        codeSet: 'TrdAckStatusCodeSet',\n    },\n    {\n        id: '1523002',\n        name: 'Rejected',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Rejected',\n        tag: 1523,\n        type: 'int',\n        codeSet: 'TrdAckStatusCodeSet',\n    },\n    {\n        id: '1523003',\n        name: 'Received',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Received',\n        tag: 1523,\n        type: 'int',\n        codeSet: 'TrdAckStatusCodeSet',\n    },\n    {\n        id: '1530001',\n        name: 'CreditLimit',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Credit limit\\n\\n\\n                        The credit limit provided by one party to another for trading.',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530002',\n        name: 'GrossLimit',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '128',\n        description: 'Gross limit',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530003',\n        name: 'NetLimit',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '128',\n        description: 'Net limit',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530004',\n        name: 'Exposure',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Exposure',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530005',\n        name: 'LongLimit',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '128',\n        description: 'Long limit',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530006',\n        name: 'ShortLimit',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '128',\n        description: 'Short limit',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530007',\n        name: 'CashMargin',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Cash margin',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530008',\n        name: 'AdditionalMargin',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Additional margin',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530009',\n        name: 'TotalMargin',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Total margin',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530010',\n        name: 'LimitConsumed',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Limit consumed\\n\\n\\n                        The limit used in the recent transaction.',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530011',\n        name: 'ClipSize',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '214',\n        description:\n            'Clip size/notional limit per time period\\n\\n\\n                        The total notional amount limit allowed to be executed within a defined period of time or velocity. The defined period of time may be specified by the RiskLimitVelocityPeriod(2336) and RiskLimitVelocityUnit(2337).',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530012',\n        name: 'MaxNotionalOrderSize',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Maximum notional order size',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530013',\n        name: 'DV01PV01Limit',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'DV01/PV01 limit\\n\\n\\n                        The maximum dollar value change resulting from a move of 1 basis point in the yield curve. This limits the interest rate risk exposure. Also known as \"basis point value\" or BPV.',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530014',\n        name: 'CS01Limit',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'CS01 limit\\n\\n\\n                        Credit spread sensitivity. Represents the change in market value of a CDS for a one basis point change in the credit spread. This limits the credit risk exposure of a CDS. Also known as \"risky-DV01\".',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530015',\n        name: 'VolumeLimitPerTimePeriod',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '214',\n        description:\n            'Volume limit per time period\\n\\n\\n                        The total number of shares, bonds or contracts allowed to be executed within a defined period of time or velocity. The defined period of time may be specified by the RiskLimitVelocityPeriod(2336) and RiskLimitVelocityUnit(2337).',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530016',\n        name: 'VolFilledPctOrdVolTmPeriod',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '214',\n        description:\n            'Volume filled as percent of ordered volume per time period\\n\\n\\n                        The total number of shares, bonds or contracts executed as a percentage of the total ordered shares, contracts or notional amount for a specified security, instrument, symbol, or underlying, over a defined period of time or velocity. The defined period of time may be specified by the RiskLimitVelocityPeriod(2336) and RiskLimitVelocityUnit(2337).',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530017',\n        name: 'NotlFilledPctNotlTmPeriod',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '214',\n        description:\n            'Notional filled as percent of notional per time period\\n\\n\\n                        The total notional amount executed as a percentage of the total ordered shares, contracts or notional amount for a specified security, instrument, symbol, or underlying, over a defined period of time or velocity. The defined period of time may be specified by the RiskLimitVelocityPeriod(2336) and RiskLimitVelocityUnit(2337).',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1530018',\n        name: 'TransactionExecutionLimitPerTimePeriod',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '214',\n        description:\n            'Transaction/execution limit per time period\\n\\n\\n                        The total number of transactions or execution fills allowed within a defined period of time or velocity. The defined period of time may be specified by the RiskLimitVelocityPeriod(2336) and RiskLimitVelocityUnit(2337).',\n        tag: 1530,\n        type: 'int',\n        codeSet: 'RiskLimitTypeCodeSet',\n    },\n    {\n        id: '1535001',\n        name: 'Include',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Include',\n        tag: 1535,\n        type: 'int',\n        codeSet: 'InstrumentScopeOperatorCodeSet',\n    },\n    {\n        id: '1535002',\n        name: 'Exclude',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Exclude',\n        tag: 1535,\n        type: 'int',\n        codeSet: 'InstrumentScopeOperatorCodeSet',\n    },\n    {\n        id: '1575001',\n        name: 'Amortizing',\n        value: 'AMTZ',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description: 'Amortizing notional schedule',\n        tag: 1575,\n        type: 'String',\n        codeSet: 'SwapSubClassCodeSet',\n    },\n    {\n        id: '1575002',\n        name: 'Compounding',\n        value: 'COMP',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '238',\n        description: 'Compounding',\n        tag: 1575,\n        type: 'String',\n        codeSet: 'SwapSubClassCodeSet',\n    },\n    {\n        id: '1575003',\n        name: 'ConstantNotionalSchedule',\n        value: 'CNST',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Constant notional schedule',\n        tag: 1575,\n        type: 'String',\n        codeSet: 'SwapSubClassCodeSet',\n    },\n    {\n        id: '1575004',\n        name: 'AccretingNotionalSchedule',\n        value: 'ACRT',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Accreting notional schedule',\n        tag: 1575,\n        type: 'String',\n        codeSet: 'SwapSubClassCodeSet',\n    },\n    {\n        id: '1575005',\n        name: 'CustomNotionalSchedule',\n        value: 'CUST',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Custom notional schedule',\n        tag: 1575,\n        type: 'String',\n        codeSet: 'SwapSubClassCodeSet',\n    },\n    {\n        id: '1583001',\n        name: 'Fee',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Fee',\n        tag: 1583,\n        type: 'int',\n        codeSet: 'SecurityClassificationReasonCodeSet',\n    },\n    {\n        id: '1583002',\n        name: 'CreditControls',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Credit Controls',\n        tag: 1583,\n        type: 'int',\n        codeSet: 'SecurityClassificationReasonCodeSet',\n    },\n    {\n        id: '1583003',\n        name: 'Margin',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Margin',\n        tag: 1583,\n        type: 'int',\n        codeSet: 'SecurityClassificationReasonCodeSet',\n    },\n    {\n        id: '1583004',\n        name: 'EntitlementOrEligibility',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Entitlement / Eligibility',\n        tag: 1583,\n        type: 'int',\n        codeSet: 'SecurityClassificationReasonCodeSet',\n    },\n    {\n        id: '1583005',\n        name: 'MarketData',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Market Data',\n        tag: 1583,\n        type: 'int',\n        codeSet: 'SecurityClassificationReasonCodeSet',\n    },\n    {\n        id: '1583006',\n        name: 'AccountSelection',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Account Selection',\n        tag: 1583,\n        type: 'int',\n        codeSet: 'SecurityClassificationReasonCodeSet',\n    },\n    {\n        id: '1583007',\n        name: 'DeliveryProcess',\n        value: '6',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Delivery Process',\n        tag: 1583,\n        type: 'int',\n        codeSet: 'SecurityClassificationReasonCodeSet',\n    },\n    {\n        id: '1583008',\n        name: 'Sector',\n        value: '7',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Sector',\n        tag: 1583,\n        type: 'int',\n        codeSet: 'SecurityClassificationReasonCodeSet',\n    },\n    {\n        id: '1585001',\n        name: 'OptionsSettlement',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Options settlement',\n        tag: 1585,\n        type: 'int',\n        codeSet: 'PosAmtReasonCodeSet',\n    },\n    {\n        id: '1585002',\n        name: 'PendingErosionAdjustment',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Pending erosion adjustment',\n        tag: 1585,\n        type: 'int',\n        codeSet: 'PosAmtReasonCodeSet',\n    },\n    {\n        id: '1585003',\n        name: 'FinalErosionAdjustment',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Final erosion adjustment',\n        tag: 1585,\n        type: 'int',\n        codeSet: 'PosAmtReasonCodeSet',\n    },\n    {\n        id: '1585004',\n        name: 'TearUpCouponAmount',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Tear-up coupon amount',\n        tag: 1585,\n        type: 'int',\n        codeSet: 'PosAmtReasonCodeSet',\n    },\n    {\n        id: '1585005',\n        name: 'PriceAlignmentInterest',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description:\n            'Price alignment interest\\n\\n\\n                        To minimize the impact of daily cash variation margin payments on the pricing of interest rate swaps, the Clearing House will charge interest on cumulative variation margin received and pay interest on cumulative variation margin paid in respect of these instruments. This interest element is known as price alignment interest.',\n        tag: 1585,\n        type: 'int',\n        codeSet: 'PosAmtReasonCodeSet',\n    },\n    {\n        id: '1585006',\n        name: 'DeliveryInvoiceCharges',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Delivery invoice charges',\n        tag: 1585,\n        type: 'int',\n        codeSet: 'PosAmtReasonCodeSet',\n    },\n    {\n        id: '1585007',\n        name: 'DeliveryStorageCharges',\n        value: '6',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Delivery storage charges',\n        tag: 1585,\n        type: 'int',\n        codeSet: 'PosAmtReasonCodeSet',\n    },\n    {\n        id: '1598001',\n        name: 'TradeClearingAtExecutionPrice',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '111',\n        description: 'Trade Clearing at Execution Price',\n        tag: 1598,\n        type: 'int',\n        codeSet: 'SideClearingTradePriceTypeCodeSet',\n    },\n    {\n        id: '1598002',\n        name: 'TradeClearingAtAlternateClearingPrice',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '111',\n        description: 'Trade Clearing at Alternate Clearing Price',\n        tag: 1598,\n        type: 'int',\n        codeSet: 'SideClearingTradePriceTypeCodeSet',\n    },\n    {\n        id: '1607001',\n        name: 'InvalidInstrumentRequested',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description: 'Invalid instrument requested',\n        tag: 1607,\n        type: 'int',\n        codeSet: 'SecurityRejectReasonCodeSet',\n    },\n    {\n        id: '1607002',\n        name: 'InstrumentAlreadyExists',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description: 'Instrument already exists',\n        tag: 1607,\n        type: 'int',\n        codeSet: 'SecurityRejectReasonCodeSet',\n    },\n    {\n        id: '1607003',\n        name: 'RequestTypeNotSupported',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description: 'Request type not supported',\n        tag: 1607,\n        type: 'int',\n        codeSet: 'SecurityRejectReasonCodeSet',\n    },\n    {\n        id: '1607004',\n        name: 'SystemUnavailableForInstrumentCreation',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description: 'System unavailable for instrument creation',\n        tag: 1607,\n        type: 'int',\n        codeSet: 'SecurityRejectReasonCodeSet',\n    },\n    {\n        id: '1607005',\n        name: 'IneligibleInstrumentGroup',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description: 'Ineligible instrument group',\n        tag: 1607,\n        type: 'int',\n        codeSet: 'SecurityRejectReasonCodeSet',\n    },\n    {\n        id: '1607006',\n        name: 'InstrumentIDUnavailable',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description: 'Instrument ID unavailable',\n        tag: 1607,\n        type: 'int',\n        codeSet: 'SecurityRejectReasonCodeSet',\n    },\n    {\n        id: '1607007',\n        name: 'InvalidOrMissingDataOnOptionLeg',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description: 'Invalid or missing data on option leg',\n        tag: 1607,\n        type: 'int',\n        codeSet: 'SecurityRejectReasonCodeSet',\n    },\n    {\n        id: '1607008',\n        name: 'InvalidOrMissingDataOnFutureLeg',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description: 'Invalid or missing data on future leg',\n        tag: 1607,\n        type: 'int',\n        codeSet: 'SecurityRejectReasonCodeSet',\n    },\n    {\n        id: '1607009',\n        name: 'InvalidOrMissingDataOnFXLeg',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description: 'Invalid or missing data on FX leg',\n        tag: 1607,\n        type: 'int',\n        codeSet: 'SecurityRejectReasonCodeSet',\n    },\n    {\n        id: '1607010',\n        name: 'InvalidLegPriceSpecified',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description: 'Invalid leg price specified',\n        tag: 1607,\n        type: 'int',\n        codeSet: 'SecurityRejectReasonCodeSet',\n    },\n    {\n        id: '1607011',\n        name: 'InvalidInstrumentStructureSpecified',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description: 'Invalid instrument structure specified',\n        tag: 1607,\n        type: 'int',\n        codeSet: 'SecurityRejectReasonCodeSet',\n    },\n    {\n        id: '1609001',\n        name: 'ThrottleLimitNotExceededNotQueued',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Throttle limit not exceeded, not queued',\n        tag: 1609,\n        type: 'int',\n        codeSet: 'ThrottleStatusCodeSet',\n    },\n    {\n        id: '1609002',\n        name: 'QueuedDueToThrottleLimitExceeded',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Queued due to throttle limit exceeded',\n        tag: 1609,\n        type: 'int',\n        codeSet: 'ThrottleStatusCodeSet',\n    },\n    {\n        id: '1611001',\n        name: 'QueueInbound',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '128',\n        description: 'Queue inbound',\n        tag: 1611,\n        type: 'int',\n        codeSet: 'ThrottleActionCodeSet',\n    },\n    {\n        id: '1611002',\n        name: 'QueueOutbound',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '128',\n        description: 'Queue outbound',\n        tag: 1611,\n        type: 'int',\n        codeSet: 'ThrottleActionCodeSet',\n    },\n    {\n        id: '1611003',\n        name: 'Reject',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Reject',\n        tag: 1611,\n        type: 'int',\n        codeSet: 'ThrottleActionCodeSet',\n    },\n    {\n        id: '1611004',\n        name: 'Disconnect',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Disconnect',\n        tag: 1611,\n        type: 'int',\n        codeSet: 'ThrottleActionCodeSet',\n    },\n    {\n        id: '1611005',\n        name: 'Warning',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Warning',\n        tag: 1611,\n        type: 'int',\n        codeSet: 'ThrottleActionCodeSet',\n    },\n    {\n        id: '1612001',\n        name: 'InboundRate',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Inbound Rate',\n        tag: 1612,\n        type: 'int',\n        codeSet: 'ThrottleTypeCodeSet',\n    },\n    {\n        id: '1612002',\n        name: 'OutstandingRequests',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Outstanding Requests',\n        tag: 1612,\n        type: 'int',\n        codeSet: 'ThrottleTypeCodeSet',\n    },\n    {\n        id: '1617001',\n        name: 'Assignment',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Assignment',\n        tag: 1617,\n        type: 'int',\n        codeSet: 'StreamAsgnTypeCodeSet',\n    },\n    {\n        id: '1617002',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Rejected',\n        tag: 1617,\n        type: 'int',\n        codeSet: 'StreamAsgnTypeCodeSet',\n    },\n    {\n        id: '1617003',\n        name: 'Terminate',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Terminate/Unassign',\n        tag: 1617,\n        type: 'int',\n        codeSet: 'StreamAsgnTypeCodeSet',\n    },\n    {\n        id: '1625001',\n        name: 'Match',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '99',\n        description: 'Match',\n        tag: 1625,\n        type: 'int',\n        codeSet: 'MatchInstCodeSet',\n    },\n    {\n        id: '1625002',\n        name: 'DoNotMatch',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '99',\n        description: 'Do Not Match',\n        tag: 1625,\n        type: 'int',\n        codeSet: 'MatchInstCodeSet',\n    },\n    {\n        id: '1628001',\n        name: 'ThisOrder',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'This order (default)',\n        tag: 1628,\n        type: 'int',\n        codeSet: 'TriggerScopeCodeSet',\n    },\n    {\n        id: '1628002',\n        name: 'OtherOrder',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Other order (use RefID)',\n        tag: 1628,\n        type: 'int',\n        codeSet: 'TriggerScopeCodeSet',\n    },\n    {\n        id: '1628003',\n        name: 'AllOtherOrdersForGivenSecurity',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'All other orders for the given security',\n        tag: 1628,\n        type: 'int',\n        codeSet: 'TriggerScopeCodeSet',\n    },\n    {\n        id: '1628004',\n        name: 'AllOtherOrdersForGivenSecurityAndPrice',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'All other orders for the given security and price',\n        tag: 1628,\n        type: 'int',\n        codeSet: 'TriggerScopeCodeSet',\n    },\n    {\n        id: '1628005',\n        name: 'AllOtherOrdersForGivenSecurityAndSide',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'All other orders for the given security and side',\n        tag: 1628,\n        type: 'int',\n        codeSet: 'TriggerScopeCodeSet',\n    },\n    {\n        id: '1628006',\n        name: 'AllOtherOrdersForGivenSecurityPriceAndSide',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'All other orders for the given security, price and side',\n        tag: 1628,\n        type: 'int',\n        codeSet: 'TriggerScopeCodeSet',\n    },\n    {\n        id: '1631001',\n        name: 'CreditLimit',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Credit limit',\n        tag: 1631,\n        type: 'int',\n        codeSet: 'LimitAmtTypeCodeSet',\n    },\n    {\n        id: '1631002',\n        name: 'GrossPositionLimit',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Gross position limit',\n        tag: 1631,\n        type: 'int',\n        codeSet: 'LimitAmtTypeCodeSet',\n    },\n    {\n        id: '1631003',\n        name: 'NetPositionLimit',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Net position limit',\n        tag: 1631,\n        type: 'int',\n        codeSet: 'LimitAmtTypeCodeSet',\n    },\n    {\n        id: '1631004',\n        name: 'RiskExposureLimit',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Risk exposure limit',\n        tag: 1631,\n        type: 'int',\n        codeSet: 'LimitAmtTypeCodeSet',\n    },\n    {\n        id: '1631005',\n        name: 'LongPositionLimit',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Long position limit',\n        tag: 1631,\n        type: 'int',\n        codeSet: 'LimitAmtTypeCodeSet',\n    },\n    {\n        id: '1631006',\n        name: 'ShortPositionLimit',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Short position limit',\n        tag: 1631,\n        type: 'int',\n        codeSet: 'LimitAmtTypeCodeSet',\n    },\n    {\n        id: '1637001',\n        name: 'Summary',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Summary',\n        tag: 1637,\n        type: 'int',\n        codeSet: 'MarginReqmtInqQualifierCodeSet',\n    },\n    {\n        id: '1637002',\n        name: 'Detail',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Detail',\n        tag: 1637,\n        type: 'int',\n        codeSet: 'MarginReqmtInqQualifierCodeSet',\n    },\n    {\n        id: '1637003',\n        name: 'ExcessDeficit',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Excess/Deficit',\n        tag: 1637,\n        type: 'int',\n        codeSet: 'MarginReqmtInqQualifierCodeSet',\n    },\n    {\n        id: '1637004',\n        name: 'NetPosition',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Net Position',\n        tag: 1637,\n        type: 'int',\n        codeSet: 'MarginReqmtInqQualifierCodeSet',\n    },\n    {\n        id: '1638001',\n        name: 'Summary',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Summary',\n        tag: 1638,\n        type: 'int',\n        codeSet: 'MarginReqmtRptTypeCodeSet',\n    },\n    {\n        id: '1638002',\n        name: 'Detail',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Detail',\n        tag: 1638,\n        type: 'int',\n        codeSet: 'MarginReqmtRptTypeCodeSet',\n    },\n    {\n        id: '1638003',\n        name: 'ExcessDeficit',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Excess/Deficit',\n        tag: 1638,\n        type: 'int',\n        codeSet: 'MarginReqmtRptTypeCodeSet',\n    },\n    {\n        id: '1641001',\n        name: 'Successful',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Successful (default)',\n        tag: 1641,\n        type: 'int',\n        codeSet: 'MarginReqmtInqResultCodeSet',\n    },\n    {\n        id: '1641002',\n        name: 'InvalidOrUnknownInstrument',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Invalid or unknown instrument',\n        tag: 1641,\n        type: 'int',\n        codeSet: 'MarginReqmtInqResultCodeSet',\n    },\n    {\n        id: '1641003',\n        name: 'InvalidOrUnknownMarginClass',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Invalid or unknown margin class',\n        tag: 1641,\n        type: 'int',\n        codeSet: 'MarginReqmtInqResultCodeSet',\n    },\n    {\n        id: '1641004',\n        name: 'InvalidParties',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Invalid Parties',\n        tag: 1641,\n        type: 'int',\n        codeSet: 'MarginReqmtInqResultCodeSet',\n    },\n    {\n        id: '1641005',\n        name: 'InvalidTransportTypeReq',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Invalid Transport Type requested',\n        tag: 1641,\n        type: 'int',\n        codeSet: 'MarginReqmtInqResultCodeSet',\n    },\n    {\n        id: '1641006',\n        name: 'InvalidDestinationReq',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Invalid Destination requested',\n        tag: 1641,\n        type: 'int',\n        codeSet: 'MarginReqmtInqResultCodeSet',\n    },\n    {\n        id: '1641007',\n        name: 'NoMarginReqFound',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'No margin requirement found',\n        tag: 1641,\n        type: 'int',\n        codeSet: 'MarginReqmtInqResultCodeSet',\n    },\n    {\n        id: '1641008',\n        name: 'MarginReqInquiryQualifierNotSupported',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Margin requirement inquiry qualifier not supported',\n        tag: 1641,\n        type: 'int',\n        codeSet: 'MarginReqmtInqResultCodeSet',\n    },\n    {\n        id: '1641009',\n        name: 'UnauthorizedForMarginReqInquiry',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Unauthorized for margin requirement inquiry',\n        tag: 1641,\n        type: 'int',\n        codeSet: 'MarginReqmtInqResultCodeSet',\n    },\n    {\n        id: '1641010',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Other (further information in Text (58) field)',\n        tag: 1641,\n        type: 'int',\n        codeSet: 'MarginReqmtInqResultCodeSet',\n    },\n    {\n        id: '1644001',\n        name: 'AdditionalMargin',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Additional Margin\\n\\n\\n                        Component of the total margin calculation which allows the CCP to include amounts generated outside of the Margin Deficit. Additional risk charges collected when a firm is placed on higher than normal surveillance.\\n\\n\\n                        Additional margin serves to cover the additional liquidation costs that potentially could be incurred. Such possible close-out costs could arise if, based on the current market value of a portfolio, the worst case loss were to occur within a 24-hour period. It is used for options (also options on futures) and non-spread futures positions, bonds and equity trades. For bonds and equity trades, the additional margin is calculated for security positions but not for the corresponding cash positions.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644002',\n        name: 'AdjustedMargin',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Adjusted Margin\\n\\n\\n                        Unadjusted Margin can be modified to become an Adjusted Margin by assigning a specific collateral to it or by applying an exchange rate.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644003',\n        name: 'UnadjustedMargin',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Unadjusted Margin\\n\\n\\n                        Calculated by adding up the options Premium Margin, the current Liquidating Margin, the Futures Spread Margin and the Additional Margin on account and currency level.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644004',\n        name: 'BinaryAddOnAmount',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Binary Add-On Amount\\n\\n\\n                        Requirement generated from positions in Binary Options which are considered fully margined. Margin for an individual contract in this category represents the total amount that would be paid upon delivery of a contract should it expire in-the-money. This amount is included as a component of Additional Margin in the Total Margin calculation.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644005',\n        name: 'CashBalanceAmount',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Cash Balance Amount\\n\\n\\n                        Information about cash balance posted to the clearing house to cover the current margin requirement.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644006',\n        name: 'ConcentrationMargin',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Concentration Margin\\n\\n\\n                        Reflects a riskier portfolio concentration when a set of closely related products is held.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644007',\n        name: 'CoreMargin',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Core Margin\\n\\n\\n                        Specific basic requirement of a position. Core margin is equal to Initial Margin plus a percentage of the Variation Margin.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644008',\n        name: 'DeliveryMargin',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Delivery Margin\\n\\n\\n                        Margin amount calculated between the Last Trade Date or Options Exercise Date and the Delivery or Settlement Date. Can also represent a commodities or energy delivery.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644009',\n        name: 'DiscretionaryMargin',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Discretionary Margin\\n\\n\\n                        Unspecific margin amount added by the risk manager, also called Increase Coverage Amount.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644010',\n        name: 'FuturesSpreadMargin',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Futures Spread Margin\\n\\n\\n                        Long and short positions of futures with different expiration dates can be offset against each other and are called \u201Cspreads\u201D. The remaining risk stems from the difference in expiration dates which does not provide a perfect price correlation. The purpose of Futures Spread Margin is to cover this risk until the next trading day.\\n\\n\\n                        This kind of margin is levied in order to cover those risks associated with a futures spread which could arise between today and tomorrow.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644011',\n        name: 'InitialMargin',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Initial Margin\\n\\n\\n                        The initial amount required to cover the position.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644012',\n        name: 'LiquidatingMargin',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Liquidating Margin\\n\\n\\n                        Calculated for cash, bond and equity positions and is equal to the profits and losses in such positions at the time of calculation. This margin protects the CCP if it is required to close out the position at the current/EOD price.\\n\\n\\n                        The liquidating margin (also called Current Liquidating Margin or Net Liquidating Margin) is paid by the buyer or the seller of the bonds. This margin covers losses that would occur if a position were to be liquidated today. The liquidating margin is adjusted daily similar to premium margin.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644013',\n        name: 'MarginCallAmount',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Margin Call Amount\\n\\n\\n                        If the collateral that has been deposited is no longer sufficient, meaning a lack of coverage exists, then the market participant will be called upon to provide additional cash as collateral.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644014',\n        name: 'MarginDeficitAmount',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Margin Deficit Amount (Shortfall)\\n\\n\\n                        Base margin risk charge. This amount represents anticipated losses should the value of a portfolio (all positions in the account) fall below predefined level of Historical Value-at-Risk confidence. Also called Expected Shortfall Amount.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644015',\n        name: 'MarginExcessAmount',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            \"Margin Excess Amount (Surplus)\\n\\n\\n                        Excess long premium value which is generated when long premium value exceeds the sum of any short premium debit requirement and the account's risk charges. Also called Expected Surplus Amount or Margin Credit Amount.\",\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644016',\n        name: 'OptionPremiumAmount',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Option Premium Amount\\n\\n\\n                        Premium registered on the given trading date.\\n\\n\\n                        The amount of money that the options buyer must pay the options seller.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644017',\n        name: 'PremiumMargin',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Premium Margin\\n\\n\\n                        Premium margin must be deposited by the seller of a traditional options position. It remains effective until the exercise or expiration of the option, and covers the potential costs of a close-out (liquidation) of the position of the seller at the settlement price.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644018',\n        name: 'ReserveMargin',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Reserve Margin\\n\\n\\n                        Reserve margin provides a way to reflect the inflated risk of a position. Reserve margin is equal to a percentage of the variation margin.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644019',\n        name: 'SecurityCollateralAmount',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Security Collateral Amount\\n\\n\\n                        Information about the security collateral posted to the clearing house to cover the current margin requirement.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644020',\n        name: 'StressTestAddOnAmount',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Stress Test Add-On Amount\\n\\n\\n                        Amount in addition to Margin Deficit in the Risk component of the margin calculation. This charge is based on tests which incorporate changes to distributional and confidence level assumptions to evaluate exposure to security concentration and changes in dependence structure; a predetermined percentage of the calculated exposure is collateralized as this charge.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644021',\n        name: 'SuperMargin',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            \"Super Margin\\n\\n\\n                        Additional risk charge applied to predetermined Cross-Margin accounts. The charge is based on the account's level of Margin Deficit. This amount is included as a component of Additional Margin in the Total Margin calculation.\",\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644022',\n        name: 'TotalMargin',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Total Margin\\n\\n\\n                        Sum of all margin amounts at value date.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644023',\n        name: 'VariationMargin',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            \"Variation Margin\\n\\n\\n                        Variation margin (also called Contingent Variation Margin or Maintenance Margin) is the daily Profit and Loss (P&L) on Open Positions for the given trading date. The current price is compared to the previous day's price.\\n\\n\\n                        Variation margin (a daily offsetting of profits and losses) occurs as a result of the mark-to-market procedure used for futures and options on futures.\",\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644024',\n        name: 'SecondaryVariationMargin',\n        value: '24',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description:\n            'Secondary Variation Margin\\n\\n\\n                        Variation margin on Option Positions that is calculated based on the market movement. This will be used by CCPs wanting to report the variation for Options and Futures separately.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644025',\n        name: 'RolledUpMarginDeficit',\n        value: '25',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Rolled up margin deficit',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644026',\n        name: 'SpreadResponseMargin',\n        value: '26',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Spread response margin\\n\\n\\n                        Risk factor component associated with spread moves, curve shape changes and recovery rates.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644027',\n        name: 'SystemicRiskMargin',\n        value: '27',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Systemic risk margin\\n\\n\\n                        Risk factor component to capture parallel shift of credit spreads.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644028',\n        name: 'CurveRiskMargin',\n        value: '28',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Curve risk margin\\n\\n\\n                        Risk factor captures curve shifts based on portfolio.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644029',\n        name: 'IndexSpreadRiskMargin',\n        value: '29',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Index spread risk margin\\n\\n\\n                        Risk factor component associated with risks due to widening/tightening spreads of CDS indices relative to each other.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644030',\n        name: 'SectorRiskMargin',\n        value: '30',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Sector risk margin\\n\\n\\n                        Risk factor component to capture sector risk.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644031',\n        name: 'JumpToDefaultRiskMargin',\n        value: '31',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Jump-to-default risk margin\\n\\n\\n                        Risk factor component to capture extreme widening of credit spreads of a reference entity. Also known as Idiosyncratic Risk.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644032',\n        name: 'BasisRiskMargin',\n        value: '32',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Basis risk margin\\n\\n\\n                        Risk factor component to capture basis risk between index and index constituent reference entities.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644033',\n        name: 'InterestRateRiskMargin',\n        value: '33',\n        sort: 33,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Interest rate risk margin\\n\\n\\n                        Risk factor component associated with parallel shift movements in interest rates.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644034',\n        name: 'JumpToHealthRiskMargin',\n        value: '34',\n        sort: 34,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Jump-to-health risk margin\\n\\n\\n                        Risk factor component to capture extreme narrowing of credit spreads of a reference entity. Also known as Idiosyncratic Risk.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1644035',\n        name: 'OtherRiskMargin',\n        value: '35',\n        sort: 35,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Other risk margin\\n\\n\\n                        Any other risk factors include in the Margin Model.',\n        tag: 1644,\n        type: 'int',\n        codeSet: 'MarginAmtTypeCodeSet',\n    },\n    {\n        id: '1648001',\n        name: 'HedgesForInstrument',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: '\"hedges for\" instrument',\n        tag: 1648,\n        type: 'int',\n        codeSet: 'RelatedInstrumentTypeCodeSet',\n    },\n    {\n        id: '1648002',\n        name: 'Underlier',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Underlier',\n        tag: 1648,\n        type: 'int',\n        codeSet: 'RelatedInstrumentTypeCodeSet',\n    },\n    {\n        id: '1648003',\n        name: 'EquityEquivalent',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Equity equivalent',\n        tag: 1648,\n        type: 'int',\n        codeSet: 'RelatedInstrumentTypeCodeSet',\n    },\n    {\n        id: '1648004',\n        name: 'NearestExchangeTradedContract',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Nearest exchange traded contract',\n        tag: 1648,\n        type: 'int',\n        codeSet: 'RelatedInstrumentTypeCodeSet',\n    },\n    {\n        id: '1648005',\n        name: 'RetailEquivalent',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Retail equivalent of wholesale instrument',\n        tag: 1648,\n        type: 'int',\n        codeSet: 'RelatedInstrumentTypeCodeSet',\n    },\n    {\n        id: '1648006',\n        name: 'Leg',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '201',\n        description:\n            'Leg\\n\\n\\n                        Used to associate or link InstrumentLeg to Instrument in messages where there can be multiple instruments, such as in Email(35=C) and News(35=B) messages.',\n        tag: 1648,\n        type: 'int',\n        codeSet: 'RelatedInstrumentTypeCodeSet',\n    },\n    {\n        id: '1655001',\n        name: 'NoParticipation',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '104',\n        description: 'No participation',\n        tag: 1655,\n        type: 'int',\n        codeSet: 'MarketMakerActivityCodeSet',\n    },\n    {\n        id: '1655002',\n        name: 'BuyParticipation',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '104',\n        description: 'Buy participation',\n        tag: 1655,\n        type: 'int',\n        codeSet: 'MarketMakerActivityCodeSet',\n    },\n    {\n        id: '1655003',\n        name: 'SellParticipation',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '104',\n        description: 'Sell participation',\n        tag: 1655,\n        type: 'int',\n        codeSet: 'MarketMakerActivityCodeSet',\n    },\n    {\n        id: '1655004',\n        name: 'BothBuyAndSellParticipation',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '104',\n        description: 'Both buy and sell participation',\n        tag: 1655,\n        type: 'int',\n        codeSet: 'MarketMakerActivityCodeSet',\n    },\n    {\n        id: '1672001',\n        name: 'Active',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Active (default if not specified)',\n        tag: 1672,\n        type: 'int',\n        codeSet: 'PartyDetailStatusCodeSet',\n    },\n    {\n        id: '1672002',\n        name: 'Suspended',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Suspended',\n        tag: 1672,\n        type: 'int',\n        codeSet: 'PartyDetailStatusCodeSet',\n    },\n    {\n        id: '1672003',\n        name: 'Halted',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Halted',\n        tag: 1672,\n        type: 'int',\n        codeSet: 'PartyDetailStatusCodeSet',\n    },\n    {\n        id: '1674001',\n        name: 'FirmOrLegalEntity',\n        value: '23',\n        sort: 23,\n        group: 'For all firm / broker type party roles',\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description: 'Firm or legal entity',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674002',\n        name: 'Current',\n        value: '18',\n        sort: 18,\n        group: 'For all party roles',\n        added: 'FIX.5.0SP2',\n        addedEP: '213',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description:\n            'Current\\n\\n\\n                        Can be used to convey an existing party identifier for the same party role in a single message.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674003',\n        name: 'New',\n        value: '19',\n        sort: 19,\n        group: 'For all party roles',\n        added: 'FIX.5.0SP2',\n        addedEP: '213',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description:\n            'New\\n\\n\\n                        Can be used to convey a future party identifier for the same party role in a single message.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674004',\n        name: 'NaturalPerson',\n        value: '24',\n        sort: 24,\n        group: 'For all trader / customer type party roles',\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description: 'Natural person',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674005',\n        name: 'Agency',\n        value: '0',\n        sort: 0,\n        group: 'For party role 1 (Executing Firm)',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'Agency',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674006',\n        name: 'Principal',\n        value: '1',\n        sort: 1,\n        group: 'For party role 1 (Executing Firm)',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'Principal',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674007',\n        name: 'RisklessPrincipal',\n        value: '2',\n        sort: 2,\n        group: 'For party role 1 (Executing Firm)',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'Riskless principal',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674008',\n        name: 'ExchangeOrderSubmitter',\n        value: '30',\n        sort: 3,\n        group: 'For party role 1 (Executing Firm)',\n        added: 'FIX.Latest',\n        addedEP: '279',\n        description:\n            'Exchange order submitter\\n\\n\\n                        Used to identify original or initial exchange order submitting broker when party role \"1\" (Executing Firm) appears more than once.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674009',\n        name: 'PrimaryTrdRepository',\n        value: '9',\n        sort: 9,\n        group: 'For party role 102 (Data repository)',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description:\n            'Primary trade repository\\n\\n\\n                        Used to differentiate the principal trade repository from the Original or Additional trade repositories when there are multiple trade repositories being reported.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674010',\n        name: 'OrigTrdRepository',\n        value: '10',\n        sort: 10,\n        group: 'For party role 102 (Data repository)',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description:\n            'Original trade repository\\n\\n\\n                        Used to identify the trade repository to which the trade was originally reported if different from the current repository to which the trade is being reported.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674011',\n        name: 'AddtnlIntlTrdRepository',\n        value: '11',\n        sort: 11,\n        group: 'For party role 102 (Data repository)',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description:\n            'Additional international trade repository\\n\\n\\n                        Used with InternationalSwapIndicator(2526) to identify the trade repository that is in addition to the local swaps data repository as required by U.S. law.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674012',\n        name: 'AddtnlDomesticTrdRepository',\n        value: '12',\n        sort: 12,\n        group: 'For party role 102 (Data repository)',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description:\n            'Additional domestic trade repository\\n\\n\\n                        Used with MixedSwapIndicator(1929) to identify the trade repository that is in addition to the current trade repository when the assets in the swap are subject to two different domestic regulators.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674013',\n        name: 'RegularTrader',\n        value: '25',\n        sort: 25,\n        group: 'For party role 11 (Order Origination Trader), 12 (Executing Trader), 36 (Entering Trader), 37 (Contra Trader)',\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'Regular trader\\n\\n\\n                        Standard trader profile.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674014',\n        name: 'HeadTrader',\n        value: '26',\n        sort: 26,\n        group: 'For party role 11 (Order Origination Trader), 12 (Executing Trader), 36 (Entering Trader), 37 (Contra Trader)',\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'Head trader\\n\\n\\n                        Senior trader leading a group of regular traders.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674015',\n        name: 'Supervisor',\n        value: '27',\n        sort: 27,\n        group: 'For party role 11 (Order Origination Trader), 12 (Executing Trader), 36 (Entering Trader), 37 (Contra Trader)',\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Supervisor\\n\\n\\n                        Administrative user that has only limited rights for normal trading but possibly special rights for emergency actions.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674016',\n        name: 'Algorithm',\n        value: '22',\n        sort: 22,\n        group: 'For party role 12 (Executing trader) or 122 (Investment decision maker)',\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'Algorithm',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674017',\n        name: 'RelatedExchange',\n        value: '13',\n        sort: 13,\n        group: 'For party role 22 (Exchange)',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'Related exchange',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674018',\n        name: 'OptionsExchange',\n        value: '14',\n        sort: 14,\n        group: 'For party role 22 (Exchange)',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'Options exchange',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674019',\n        name: 'SpecifiedExchange',\n        value: '15',\n        sort: 15,\n        group: 'For party role 22 (Exchange)',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'Specified exchange',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674020',\n        name: 'ConstituentExchange',\n        value: '16',\n        sort: 16,\n        group: 'For party role 22 (Exchange)',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'Constituent exchange',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674021',\n        name: 'Bank',\n        value: '7',\n        sort: 7,\n        group: 'For party role 29 (Intermediary), 32 (Beneficiary) and 107 (Correspondent)',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'Bank',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674022',\n        name: 'Hub',\n        value: '8',\n        sort: 8,\n        group: 'For party role 29 (Intermediary), 32 (Beneficiary) and 107 (Correspondent)',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description:\n            'Hub\\n\\n\\n                        Indicates that the Intermediary party is a hub system or service provider.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674023',\n        name: 'TriParty',\n        value: '28',\n        sort: 28,\n        group: 'For party role 30 (Agent)',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Tri-party\\n\\n\\n                        In the context of EU SFTR reporting, identifies the third party, not necessarily the custodian, to which the reporting counterparty has outsourced the post-trade processing of an SFT (if applicable).',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674024',\n        name: 'Lender',\n        value: '29',\n        sort: 29,\n        group: 'For party role 30 (Agent)',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Lender\\n\\n\\n                        In the context of EU SFTR reporting, identifies the agent lender involved in the securities lending transaction.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674025',\n        name: 'GeneralClearingMember',\n        value: '3',\n        sort: 3,\n        group: 'For party role 4 (Clearing Firm)',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'General clearing member',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674026',\n        name: 'IndividualClearingMember',\n        value: '4',\n        sort: 4,\n        group: 'For party role 4 (Clearing Firm)',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'Individual clearing member',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674027',\n        name: 'PreferredMarketMaker',\n        value: '5',\n        sort: 5,\n        group: 'For party role 66 (Market Maker)',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description:\n            'Preferred market maker\\n\\n\\n                        Market maker getting a part of the matched quantity before primary or default market maker.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674028',\n        name: 'DirectedMarketMaker',\n        value: '6',\n        sort: 6,\n        group: 'For party role 66 (Market Maker)',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description:\n            'Directed market maker\\n\\n\\n                        Single market maker to handle the order provided.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674029',\n        name: 'DesignatedSponsor',\n        value: '20',\n        sort: 20,\n        group: 'For party role 66 (Market Maker)',\n        added: 'FIX.5.0SP2',\n        addedEP: '219',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description:\n            'Designated sponsor\\n\\n\\n                        Market maker jointly providing liquidity for the same security with other market makers.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674030',\n        name: 'Specialist',\n        value: '21',\n        sort: 21,\n        group: 'For party role 66 (Market Maker)',\n        added: 'FIX.5.0SP2',\n        addedEP: '219',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description:\n            'Specialist\\n\\n\\n                        Market maker being the only one providing liquidity for a security.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1674031',\n        name: 'ExemptFromTradeReporting',\n        value: '17',\n        sort: 17,\n        group: 'For party role 73 (Execution Venue)',\n        added: 'FIX.5.0SP2',\n        addedEP: '209',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description:\n            'Exempt from trade reporting\\n\\n\\n                        In the context of FINRA TRACE reporting requirements, this is used to indicate the ATS has been granted a regulatory exemption from reporting.',\n        tag: 1674,\n        type: 'int',\n        codeSet: 'PartyDetailRoleQualifierCodeSet',\n    },\n    {\n        id: '1685001',\n        name: 'RejectIfThrottleLimitExceeded',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Reject if throttle limit exceeded',\n        tag: 1685,\n        type: 'int',\n        codeSet: 'ThrottleInstCodeSet',\n    },\n    {\n        id: '1685002',\n        name: 'QueueIfThrottleLimitExceeded',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Queue if throttle limit exceeded',\n        tag: 1685,\n        type: 'int',\n        codeSet: 'ThrottleInstCodeSet',\n    },\n    {\n        id: '1686001',\n        name: 'OutstandingRequestsUnchanged',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Outstanding requests unchanged',\n        tag: 1686,\n        type: 'int',\n        codeSet: 'ThrottleCountIndicatorCodeSet',\n    },\n    {\n        id: '1686002',\n        name: 'OutstandingRequestsDecreased',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Outstanding requests decreased',\n        tag: 1686,\n        type: 'int',\n        codeSet: 'ThrottleCountIndicatorCodeSet',\n    },\n    {\n        id: '1687001',\n        name: 'NoRestrictions',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '120',\n        description: 'No restrictions',\n        tag: 1687,\n        type: 'int',\n        codeSet: 'ShortSaleRestrictionCodeSet',\n    },\n    {\n        id: '1687002',\n        name: 'SecurityNotShortable',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '120',\n        description: 'Security is not shortable',\n        tag: 1687,\n        type: 'int',\n        codeSet: 'ShortSaleRestrictionCodeSet',\n    },\n    {\n        id: '1687003',\n        name: 'SecurityNotShortableAtOrBelowBestBid',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '120',\n        description: 'Security not shortable at or below the best bid',\n        tag: 1687,\n        type: 'int',\n        codeSet: 'ShortSaleRestrictionCodeSet',\n    },\n    {\n        id: '1687004',\n        name: 'SecurityNotShortableWithoutPreBorrow',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '164',\n        description: 'Security is not shortable without pre-borrow',\n        tag: 1687,\n        type: 'int',\n        codeSet: 'ShortSaleRestrictionCodeSet',\n    },\n    {\n        id: '1688001',\n        name: 'ExemptionReasonUnknown',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '121',\n        description:\n            'Exemption reason unknown\\n\\n\\n                        An exemption reason not provided or received.',\n        tag: 1688,\n        type: 'int',\n        codeSet: 'ShortSaleExemptionReasonCodeSet',\n    },\n    {\n        id: '1688002',\n        name: 'IncomingSSE',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '121',\n        description:\n            \"Income sell short exempt\\n\\n\\n                        Agency broker has the customer's exemption reason, which is not explicitly provided to executing broker.\",\n        tag: 1688,\n        type: 'int',\n        codeSet: 'ShortSaleExemptionReasonCodeSet',\n    },\n    {\n        id: '1688003',\n        name: 'AboveNationalBestBid',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '121',\n        description:\n            'Above national best bid (broker/dealer provision)\\n\\n\\n                        Broker / dealer responsible for enforcing exemption rule has determined that the order is priced one or more ticks above the nation best bid of the security to be traded.',\n        tag: 1688,\n        type: 'int',\n        codeSet: 'ShortSaleExemptionReasonCodeSet',\n    },\n    {\n        id: '1688004',\n        name: 'DelayedDelivery',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '121',\n        description:\n            'Delayed delivery\\n\\n\\n                        The broker-dealer has a reasonable basis to believe the seller owns the covered security (pursuant to Rule 200 in the U.S.), but is subject to restrictions on delivery, provided that the seller intends to deliver the security as soon as all restrictions on delivery have been removed.',\n        tag: 1688,\n        type: 'int',\n        codeSet: 'ShortSaleExemptionReasonCodeSet',\n    },\n    {\n        id: '1688005',\n        name: 'OddLot',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '121',\n        description:\n            'Odd lot\\n\\n\\n                        The broker-dealer has a reasonable basis to believe the sale is by a market maker to offset customer odd-lot orders or to liquidate an odd-lot position that changes such broker\u2019s or dealer\u2019s position by no more than a unit of trading.',\n        tag: 1688,\n        type: 'int',\n        codeSet: 'ShortSaleExemptionReasonCodeSet',\n    },\n    {\n        id: '1688006',\n        name: 'DomesticArbitrage',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '121',\n        description:\n            'Domestic arbitrage\\n\\n\\n                        The sale is connected to a bona-fide domestic arbitrage transaction.',\n        tag: 1688,\n        type: 'int',\n        codeSet: 'ShortSaleExemptionReasonCodeSet',\n    },\n    {\n        id: '1688007',\n        name: 'InternationalArbitrage',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '121',\n        description:\n            'International arbitrage\\n\\n\\n                        The sale is connected to an international arbitrage transaction.',\n        tag: 1688,\n        type: 'int',\n        codeSet: 'ShortSaleExemptionReasonCodeSet',\n    },\n    {\n        id: '1688008',\n        name: 'UnderwriterOrSyndicateDistribution',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '121',\n        description:\n            'Underwriter or syndicate distribution\\n\\n\\n                        The short sale is (i) by an underwriter or member of a syndicate or group participating in the distribution of a security in connection with an over-allotment of securities; or (ii) is for purposes of a lay-off sale by an underwriter or member of a syndicate or group in connection with a distribution of securities through a rights or standby underwriting commitment.',\n        tag: 1688,\n        type: 'int',\n        codeSet: 'ShortSaleExemptionReasonCodeSet',\n    },\n    {\n        id: '1688009',\n        name: 'RisklessPrincipal',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '121',\n        description:\n            'Riskless principal\\n\\n\\n                        The short sale is by a broker or dealer effecting the execution of a customer purchase or the execution of a customer \u201Clong\u201D sale on a riskless principal basis.',\n        tag: 1688,\n        type: 'int',\n        codeSet: 'ShortSaleExemptionReasonCodeSet',\n    },\n    {\n        id: '1688010',\n        name: 'VWAP',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '121',\n        description:\n            'VWAP\\n\\n\\n                        The short sale order is for the sale of a covered security at the volume weighted average price (VWAP) meeting certain criteria.',\n        tag: 1688,\n        type: 'int',\n        codeSet: 'ShortSaleExemptionReasonCodeSet',\n    },\n    {\n        id: '1724001',\n        name: 'OrderReceivedFromCustomer',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Order received from a customer',\n        tag: 1724,\n        type: 'int',\n        codeSet: 'OrderOriginationCodeSet',\n    },\n    {\n        id: '1724002',\n        name: 'OrderReceivedFromWithinFirm',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Order received from within the firm',\n        tag: 1724,\n        type: 'int',\n        codeSet: 'OrderOriginationCodeSet',\n    },\n    {\n        id: '1724003',\n        name: 'OrderReceivedFromAnotherBrokerDealer',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'Order received from another broker-dealer',\n        tag: 1724,\n        type: 'int',\n        codeSet: 'OrderOriginationCodeSet',\n    },\n    {\n        id: '1724004',\n        name: 'OrderReceivedFromCustomerOrWithFirm',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '256',\n        description: 'Order received from a customer or originated from within the firm',\n        tag: 1724,\n        type: 'int',\n        codeSet: 'OrderOriginationCodeSet',\n    },\n    {\n        id: '1724005',\n        name: 'OrderReceivedFromDirectAccessCustomer',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description: 'Order received from a direct access or sponsored access customer',\n        tag: 1724,\n        type: 'int',\n        codeSet: 'OrderOriginationCodeSet',\n    },\n    {\n        id: '1724006',\n        name: 'OrderReceivedFromForeignDealerEquivalent',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '256',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'Order received from a foreign dealer equivalent\\n\\n\\n                        A foreign dealer equivalent is a person in the business of trading securities in a foreign jurisdiction in a manner analogous to an investment dealer and that is subject to the regulatory jurisdiction of a signatory to the International Organization of Securities Commissions\u2019 (IOSCO) Multilateral Memorandum of Understanding in that foreign jurisdiction.',\n        tag: 1724,\n        type: 'int',\n        codeSet: 'OrderOriginationCodeSet',\n    },\n    {\n        id: '1724007',\n        name: 'OrderReceivedFromExecutionOnlyService',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '256',\n        description:\n            'Order received from an execution-only service\\n\\n\\n                        The acceptance and execution of orders from customers for trades that the broker-dealer has not recommended and for which the broker-dealer takes no responsibility as to the appropriateness or suitability of orders accepted or account positions held.',\n        tag: 1724,\n        type: 'int',\n        codeSet: 'OrderOriginationCodeSet',\n    },\n    {\n        id: '1735001',\n        name: 'Rollup',\n        value: '0',\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Roll up',\n        tag: 1735,\n        type: 'int',\n        codeSet: 'AllocationRollupInstructionCodeSet',\n    },\n    {\n        id: '1735002',\n        name: 'DoNotRollUp',\n        value: '1',\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Do not roll up',\n        tag: 1735,\n        type: 'int',\n        codeSet: 'AllocationRollupInstructionCodeSet',\n    },\n    {\n        id: '1738001',\n        name: 'Completed',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Completed',\n        tag: 1738,\n        type: 'int',\n        codeSet: 'AllocReversalStatusCodeSet',\n    },\n    {\n        id: '1738002',\n        name: 'Refused',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Refused',\n        tag: 1738,\n        type: 'int',\n        codeSet: 'AllocReversalStatusCodeSet',\n    },\n    {\n        id: '1738003',\n        name: 'Cancelled',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Cancelled',\n        tag: 1738,\n        type: 'int',\n        codeSet: 'AllocReversalStatusCodeSet',\n    },\n    {\n        id: '1739001',\n        name: 'Bond',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Bond',\n        tag: 1739,\n        type: 'String',\n        codeSet: 'ObligationTypeCodeSet',\n    },\n    {\n        id: '1739002',\n        name: 'ConvertBond',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Convertible bond',\n        tag: 1739,\n        type: 'String',\n        codeSet: 'ObligationTypeCodeSet',\n    },\n    {\n        id: '1739003',\n        name: 'Mortgage',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Mortgage',\n        tag: 1739,\n        type: 'String',\n        codeSet: 'ObligationTypeCodeSet',\n    },\n    {\n        id: '1739004',\n        name: 'Loan',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Loan',\n        tag: 1739,\n        type: 'String',\n        codeSet: 'ObligationTypeCodeSet',\n    },\n    {\n        id: '1740001',\n        name: 'PercentPar',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Percent of par',\n        tag: 1740,\n        type: 'int',\n        codeSet: 'TradePriceNegotiationMethodCodeSet',\n    },\n    {\n        id: '1740002',\n        name: 'DealSpread',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Deal spread',\n        tag: 1740,\n        type: 'int',\n        codeSet: 'TradePriceNegotiationMethodCodeSet',\n    },\n    {\n        id: '1740003',\n        name: 'UpfrontPnts',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Upfront points',\n        tag: 1740,\n        type: 'int',\n        codeSet: 'TradePriceNegotiationMethodCodeSet',\n    },\n    {\n        id: '1740004',\n        name: 'UpfrontAmt',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Upfront amount',\n        tag: 1740,\n        type: 'int',\n        codeSet: 'TradePriceNegotiationMethodCodeSet',\n    },\n    {\n        id: '1740005',\n        name: 'ParUpfrontAmt',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Percent of par and upfront amount',\n        tag: 1740,\n        type: 'int',\n        codeSet: 'TradePriceNegotiationMethodCodeSet',\n    },\n    {\n        id: '1740006',\n        name: 'SpreadUpfrontAmt',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Deal spread and upfront amount',\n        tag: 1740,\n        type: 'int',\n        codeSet: 'TradePriceNegotiationMethodCodeSet',\n    },\n    {\n        id: '1740007',\n        name: 'UpfrontPntsAmt',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Upfront points and upfront amount',\n        tag: 1740,\n        type: 'int',\n        codeSet: 'TradePriceNegotiationMethodCodeSet',\n    },\n    {\n        id: '1741001',\n        name: 'Percentage',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Percentage (i.e. percent of par) (often called \"dollar price\" for fixed income)',\n        tag: 1741,\n        type: 'int',\n        codeSet: 'UpfrontPriceTypeCodeSet',\n    },\n    {\n        id: '1741002',\n        name: 'FixedAmount',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Fixed amount (absolute value)',\n        tag: 1741,\n        type: 'int',\n        codeSet: 'UpfrontPriceTypeCodeSet',\n    },\n    {\n        id: '1744001',\n        name: 'NoApplRecoveryNeeded',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '124',\n        description: 'Application level recovery is not needed (default)',\n        tag: 1744,\n        type: 'int',\n        codeSet: 'ApplLevelRecoveryIndicatorCodeSet',\n    },\n    {\n        id: '1744002',\n        name: 'ApplRecoveryNeeded',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '124',\n        description: 'Application level recovery is needed',\n        tag: 1744,\n        type: 'int',\n        codeSet: 'ApplLevelRecoveryIndicatorCodeSet',\n    },\n    {\n        id: '1760001',\n        name: 'Definitions',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Definitions(Default)',\n        tag: 1760,\n        type: 'int',\n        codeSet: 'RiskLimitRequestTypeCodeSet',\n    },\n    {\n        id: '1760002',\n        name: 'Utilization',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Utilization',\n        tag: 1760,\n        type: 'int',\n        codeSet: 'RiskLimitRequestTypeCodeSet',\n    },\n    {\n        id: '1760003',\n        name: 'DefinitionsAndUtilizations',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Definitions and utilization',\n        tag: 1760,\n        type: 'int',\n        codeSet: 'RiskLimitRequestTypeCodeSet',\n    },\n    {\n        id: '1761001',\n        name: 'Successful',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Successful (default)',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761002',\n        name: 'InvalidParty',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Invalid party(-ies)',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761003',\n        name: 'InvalidRelatedParty',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Invalid related party(-ies)',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761004',\n        name: 'InvalidRiskLimitType',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Invalid risk limit type(s)',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761005',\n        name: 'InvalidRiskLimitID',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Invalid risk limit ID(s)',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761006',\n        name: 'InvalidRiskLimitAmount',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Invalid risk limit amount(s)',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761007',\n        name: 'InvalidRiskWarningLevelAction',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Invalid risk/warning level action(s)',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761008',\n        name: 'InvalidRiskInstrumentScope',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Invalid risk instrument scope(s)',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761009',\n        name: 'RiskLimitActionsNotSupported',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Risk limit actions not supported',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761010',\n        name: 'WarningLevelsNotSupported',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Warning levels not supported',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761011',\n        name: 'WarningLevelActionsNotSupported',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Warning level actions not supported',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761012',\n        name: 'RiskInstrumentScopeNotSupported',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Risk instrument scope not supported',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761013',\n        name: 'RiskLimitNotApprovedForParty',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Risk limit not approved for party(-ies)',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761014',\n        name: 'RiskLimitAlreadyDefinedForParty',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Risk limit already defined for party(-ies)',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761015',\n        name: 'InstrumentNotApprovedForParty',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Instrument not approved for party(-ies)',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761016',\n        name: 'NotAuthorized',\n        value: '98',\n        sort: 98,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Not authorized',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1761017',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Other',\n        tag: 1761,\n        type: 'int',\n        codeSet: 'RiskLimitRequestResultCodeSet',\n    },\n    {\n        id: '1767001',\n        name: 'QueueInbound',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Queue inbound',\n        tag: 1767,\n        type: 'int',\n        codeSet: 'RiskLimitActionCodeSet',\n    },\n    {\n        id: '1767002',\n        name: 'QueueOutbound',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Queue outbound',\n        tag: 1767,\n        type: 'int',\n        codeSet: 'RiskLimitActionCodeSet',\n    },\n    {\n        id: '1767003',\n        name: 'Reject',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Reject',\n        tag: 1767,\n        type: 'int',\n        codeSet: 'RiskLimitActionCodeSet',\n    },\n    {\n        id: '1767004',\n        name: 'Disconnect',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Disconnect',\n        tag: 1767,\n        type: 'int',\n        codeSet: 'RiskLimitActionCodeSet',\n    },\n    {\n        id: '1767005',\n        name: 'Warning',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Warning',\n        tag: 1767,\n        type: 'int',\n        codeSet: 'RiskLimitActionCodeSet',\n    },\n    {\n        id: '1767006',\n        name: 'PingCreditCheckWithRevalidation',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Ping credit check model with revalidation\\n\\n\\n                        Each subsequent order, quote request or quote submission by the Credit\\n\\n\\n                        User must obtain pre-approval. Any open orders, quote requests or quotes are to be cancelled.',\n        tag: 1767,\n        type: 'int',\n        codeSet: 'RiskLimitActionCodeSet',\n    },\n    {\n        id: '1767007',\n        name: 'PingCreditCheckNoRevalidation',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Ping credit check model without revalidation\\n\\n\\n                        Each subsequent order, quote request or quote submission by the Credit\\n\\n\\n                        User must obtain pre-approval. Any open orders, quote requests or quotes will remain active.',\n        tag: 1767,\n        type: 'int',\n        codeSet: 'RiskLimitActionCodeSet',\n    },\n    {\n        id: '1767008',\n        name: 'PushCreditCheckWithRevalidation',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Push credit check model with revalidation\\n\\n\\n                        Each subsequent order, quote request or quote subnmission by the Credit\\n\\n\\n                        User must be checked against the limit amounts pushed to the trading platform. Any open orders, quote requests or quotes are\\n\\n\\n                        to be cancelled.',\n        tag: 1767,\n        type: 'int',\n        codeSet: 'RiskLimitActionCodeSet',\n    },\n    {\n        id: '1767009',\n        name: 'PushCreditCheckNoRevalidation',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Push credit check model without revalidation\\n\\n\\n                        Each subsequent order, quote request or quote subnmission by the Credit\\n\\n\\n                        User must be checked against the limit amounts pushed to the trading platform. Any open orders, quote requests or quotes will\\n\\n\\n                        remain active.',\n        tag: 1767,\n        type: 'int',\n        codeSet: 'RiskLimitActionCodeSet',\n    },\n    {\n        id: '1767010',\n        name: 'Suspend',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Suspend\\n\\n\\n                        Suspend the Credit User from trading once limit(s) is breached. This is\\n\\n\\n                        considered a \"soft\" stop.',\n        tag: 1767,\n        type: 'int',\n        codeSet: 'RiskLimitActionCodeSet',\n    },\n    {\n        id: '1767011',\n        name: 'HaltTrading',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Halt trading\\n\\n\\n                        Halt or stop the Credit User from trading once limit(s) is breached.\\n\\n\\n                        This is considered a \"hard\" stop and may require more involved actions to reinstate the Credit User\\'s ability\\n\\n\\n                        to trade.',\n        tag: 1767,\n        type: 'int',\n        codeSet: 'RiskLimitActionCodeSet',\n    },\n    {\n        id: '1775001',\n        name: 'Trade',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '173',\n        description: 'Trade',\n        tag: 1775,\n        type: 'int',\n        codeSet: 'EntitlementTypeCodeSet',\n    },\n    {\n        id: '1775002',\n        name: 'MakeMarkets',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '173',\n        description: 'Make markets',\n        tag: 1775,\n        type: 'int',\n        codeSet: 'EntitlementTypeCodeSet',\n    },\n    {\n        id: '1775003',\n        name: 'HoldPositions',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '173',\n        description: 'Hold positions',\n        tag: 1775,\n        type: 'int',\n        codeSet: 'EntitlementTypeCodeSet',\n    },\n    {\n        id: '1775004',\n        name: 'PerformGiveUps',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '173',\n        description: 'Perform give-ups',\n        tag: 1775,\n        type: 'int',\n        codeSet: 'EntitlementTypeCodeSet',\n    },\n    {\n        id: '1775005',\n        name: 'SubmitIOIs',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '173',\n        description: 'Submit Indications of Interest (IOIs)',\n        tag: 1775,\n        type: 'int',\n        codeSet: 'EntitlementTypeCodeSet',\n    },\n    {\n        id: '1775006',\n        name: 'SubscribeMarketData',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '173',\n        description: 'Subscribe to market data',\n        tag: 1775,\n        type: 'int',\n        codeSet: 'EntitlementTypeCodeSet',\n    },\n    {\n        id: '1775007',\n        name: 'ShortWithPreBorrow',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '164',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '173',\n        description:\n            'Short with pre-borrow\\n\\n\\n                        Short sell order is allowed with pre-borrowing.',\n        tag: 1775,\n        type: 'int',\n        codeSet: 'EntitlementTypeCodeSet',\n    },\n    {\n        id: '1775008',\n        name: 'SubmitQuoteRequests',\n        value: '7',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '173',\n        description:\n            'Submit quote requests\\n\\n\\n                        Entitled to submit quote requests into the market in order to receive quotes from the market.',\n        tag: 1775,\n        type: 'int',\n        codeSet: 'EntitlementTypeCodeSet',\n    },\n    {\n        id: '1775009',\n        name: 'RespondToQuoteRequests',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '173',\n        description:\n            'Respond to quote requests\\n\\n\\n                        Entitled to respond to quote requests from the market.',\n        tag: 1775,\n        type: 'int',\n        codeSet: 'EntitlementTypeCodeSet',\n    },\n    {\n        id: '1779001',\n        name: 'Tenor',\n        value: '29',\n        sort: 29,\n        group: 'Pattern',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Tenor',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779002',\n        name: 'Pattern',\n        value: '32',\n        sort: 32,\n        group: 'Pattern',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Pattern',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779003',\n        name: 'Reserved100Plus',\n        value: '33',\n        sort: 33,\n        group: 'Pattern',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Reserved100Plus',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779004',\n        name: 'Reserved1000Plus',\n        value: '34',\n        sort: 34,\n        group: 'Pattern',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Reserved1000Plus',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779005',\n        name: 'Reserved4000Plus',\n        value: '35',\n        sort: 35,\n        group: 'Pattern',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Reserved4000Plus',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779006',\n        name: 'String',\n        value: '14',\n        sort: 14,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'String',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779007',\n        name: 'MultipleCharValue',\n        value: '15',\n        sort: 15,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'MultipleCharValue',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779008',\n        name: 'Currency',\n        value: '16',\n        sort: 16,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Currency',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779009',\n        name: 'Exchange',\n        value: '17',\n        sort: 17,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Exchange',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779010',\n        name: 'MonthYear',\n        value: '18',\n        sort: 18,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'MonthYear',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779011',\n        name: 'UTCTimestamp',\n        value: '19',\n        sort: 19,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'UTCTimestamp',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779012',\n        name: 'UTCTimeOnly',\n        value: '20',\n        sort: 20,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'UTCTimeOnly',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779013',\n        name: 'LocalMktDate',\n        value: '21',\n        sort: 21,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'LocalMktDate',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779014',\n        name: 'UTCDateOnly',\n        value: '22',\n        sort: 22,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'UTCDateOnly',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779015',\n        name: 'Data',\n        value: '23',\n        sort: 23,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        updated: 'FIX.Latest',\n        updatedEP: '264',\n        description: 'data',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779016',\n        name: 'MultipleStringValue',\n        value: '24',\n        sort: 24,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'MultipleStringValue',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779017',\n        name: 'Country',\n        value: '25',\n        sort: 25,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Country',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779018',\n        name: 'Language',\n        value: '26',\n        sort: 26,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Language',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779019',\n        name: 'TZTimeOnly',\n        value: '27',\n        sort: 27,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'TZTimeOnly',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779020',\n        name: 'TZTimestamp',\n        value: '28',\n        sort: 28,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'TZTimestamp',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779021',\n        name: 'XMLData',\n        value: '31',\n        sort: 31,\n        group: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'XMLData',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779022',\n        name: 'Char',\n        value: '12',\n        sort: 12,\n        group: 'char',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        updated: 'FIX.Latest',\n        updatedEP: '264',\n        description: 'char',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779023',\n        name: 'Boolean',\n        value: '13',\n        sort: 13,\n        group: 'char',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Boolean',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779024',\n        name: 'Float',\n        value: '6',\n        sort: 6,\n        group: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        updated: 'FIX.Latest',\n        updatedEP: '264',\n        description: 'float',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779025',\n        name: 'Qty',\n        value: '7',\n        sort: 7,\n        group: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Qty',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779026',\n        name: 'Price',\n        value: '8',\n        sort: 8,\n        group: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Price',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779027',\n        name: 'PriceOffset',\n        value: '9',\n        sort: 9,\n        group: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'PriceOffset',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779028',\n        name: 'Amt',\n        value: '10',\n        sort: 10,\n        group: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Amt',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779029',\n        name: 'Percentage',\n        value: '11',\n        sort: 11,\n        group: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Percentage',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779030',\n        name: 'Int',\n        value: '1',\n        sort: 1,\n        group: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        updated: 'FIX.Latest',\n        updatedEP: '264',\n        description: 'int',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779031',\n        name: 'Length',\n        value: '2',\n        sort: 2,\n        group: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Length',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779032',\n        name: 'NumInGroup',\n        value: '3',\n        sort: 3,\n        group: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'NumInGroup',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779033',\n        name: 'SeqNum',\n        value: '4',\n        sort: 4,\n        group: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'SeqNum',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779034',\n        name: 'TagNum',\n        value: '5',\n        sort: 5,\n        group: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'TagNum',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1779035',\n        name: 'DayOfMonth',\n        value: '30',\n        sort: 30,\n        group: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'DayOfMonth',\n        tag: 1779,\n        type: 'int',\n        codeSet: 'EntitlementAttribDatatypeCodeSet',\n    },\n    {\n        id: '1785001',\n        name: 'Automatic',\n        value: '0',\n        added: 'FIX.5.0SP2',\n        addedEP: '130',\n        description: 'Automatic (Default)',\n        tag: 1785,\n        type: 'int',\n        codeSet: 'TradSesControlCodeSet',\n    },\n    {\n        id: '1785002',\n        name: 'Manual',\n        value: '1',\n        added: 'FIX.5.0SP2',\n        addedEP: '130',\n        description: 'Manual',\n        tag: 1785,\n        type: 'int',\n        codeSet: 'TradSesControlCodeSet',\n    },\n    {\n        id: '1786001',\n        name: 'NumberOfUnits',\n        value: '0',\n        added: 'FIX.5.0SP2',\n        addedEP: '130',\n        description: 'Number of units (e.g. share, par, currency, contracts) (default)',\n        tag: 1786,\n        type: 'int',\n        codeSet: 'TradeVolTypeCodeSet',\n    },\n    {\n        id: '1786002',\n        name: 'NumberOfRoundLots',\n        value: '1',\n        added: 'FIX.5.0SP2',\n        addedEP: '130',\n        description: 'Number of round lots',\n        tag: 1786,\n        type: 'int',\n        codeSet: 'TradeVolTypeCodeSet',\n    },\n    {\n        id: '1796001',\n        name: 'Added',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Added (0=New)',\n        tag: 1796,\n        type: 'int',\n        codeSet: 'OrderEventTypeCodeSet',\n    },\n    {\n        id: '1796002',\n        name: 'Modified',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Modified (5=Replaced)',\n        tag: 1796,\n        type: 'int',\n        codeSet: 'OrderEventTypeCodeSet',\n    },\n    {\n        id: '1796003',\n        name: 'Deleted',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Deleted (4=Canceled)',\n        tag: 1796,\n        type: 'int',\n        codeSet: 'OrderEventTypeCodeSet',\n    },\n    {\n        id: '1796004',\n        name: 'PartiallyFilled',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Partially Filled (F=Trade)',\n        tag: 1796,\n        type: 'int',\n        codeSet: 'OrderEventTypeCodeSet',\n    },\n    {\n        id: '1796005',\n        name: 'Filled',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Filled (F=Trade)',\n        tag: 1796,\n        type: 'int',\n        codeSet: 'OrderEventTypeCodeSet',\n    },\n    {\n        id: '1796006',\n        name: 'Suspended',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Suspended (9=Suspended)',\n        tag: 1796,\n        type: 'int',\n        codeSet: 'OrderEventTypeCodeSet',\n    },\n    {\n        id: '1796007',\n        name: 'Released',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Released (N=Released)',\n        tag: 1796,\n        type: 'int',\n        codeSet: 'OrderEventTypeCodeSet',\n    },\n    {\n        id: '1796008',\n        name: 'Restated',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Restated (D=Restated)',\n        tag: 1796,\n        type: 'int',\n        codeSet: 'OrderEventTypeCodeSet',\n    },\n    {\n        id: '1796009',\n        name: 'Locked',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Locked (M=Locked)',\n        tag: 1796,\n        type: 'int',\n        codeSet: 'OrderEventTypeCodeSet',\n    },\n    {\n        id: '1796010',\n        name: 'Triggered',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '188',\n        description: 'Triggered (L=Triggered or Activated by System)',\n        tag: 1796,\n        type: 'int',\n        codeSet: 'OrderEventTypeCodeSet',\n    },\n    {\n        id: '1796011',\n        name: 'Activated',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Activated (L=Triggered or Activated by System)',\n        tag: 1796,\n        type: 'int',\n        codeSet: 'OrderEventTypeCodeSet',\n    },\n    {\n        id: '1798001',\n        name: 'AddOrderRequest',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Add order request',\n        tag: 1798,\n        type: 'int',\n        codeSet: 'OrderEventReasonCodeSet',\n    },\n    {\n        id: '1798002',\n        name: 'ModifyOrderRequest',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Modify order request',\n        tag: 1798,\n        type: 'int',\n        codeSet: 'OrderEventReasonCodeSet',\n    },\n    {\n        id: '1798003',\n        name: 'DeleteOrderRequest',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Delete order request',\n        tag: 1798,\n        type: 'int',\n        codeSet: 'OrderEventReasonCodeSet',\n    },\n    {\n        id: '1798004',\n        name: 'OrderEnteredOOB',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Order entered out-of-band',\n        tag: 1798,\n        type: 'int',\n        codeSet: 'OrderEventReasonCodeSet',\n    },\n    {\n        id: '1798005',\n        name: 'OrderModifiedOOB',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Order modified out-of-band',\n        tag: 1798,\n        type: 'int',\n        codeSet: 'OrderEventReasonCodeSet',\n    },\n    {\n        id: '1798006',\n        name: 'OrderDeletedOOB',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Order deleted out-of-band',\n        tag: 1798,\n        type: 'int',\n        codeSet: 'OrderEventReasonCodeSet',\n    },\n    {\n        id: '1798007',\n        name: 'OrderActivatedOrTriggered',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Order activated or triggered',\n        tag: 1798,\n        type: 'int',\n        codeSet: 'OrderEventReasonCodeSet',\n    },\n    {\n        id: '1798008',\n        name: 'OrderExpired',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Order expired',\n        tag: 1798,\n        type: 'int',\n        codeSet: 'OrderEventReasonCodeSet',\n    },\n    {\n        id: '1798009',\n        name: 'ReserveOrderRefreshed',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Reserve order refreshed',\n        tag: 1798,\n        type: 'int',\n        codeSet: 'OrderEventReasonCodeSet',\n    },\n    {\n        id: '1798010',\n        name: 'AwayMarketBetter',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Away market better',\n        tag: 1798,\n        type: 'int',\n        codeSet: 'OrderEventReasonCodeSet',\n    },\n    {\n        id: '1798011',\n        name: 'CorporateAction',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Corporate action',\n        tag: 1798,\n        type: 'int',\n        codeSet: 'OrderEventReasonCodeSet',\n    },\n    {\n        id: '1798012',\n        name: 'StartOfDay',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Start of day',\n        tag: 1798,\n        type: 'int',\n        codeSet: 'OrderEventReasonCodeSet',\n    },\n    {\n        id: '1798013',\n        name: 'EndOfDay',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'End of day',\n        tag: 1798,\n        type: 'int',\n        codeSet: 'OrderEventReasonCodeSet',\n    },\n    {\n        id: '1803001',\n        name: 'None',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'None',\n        tag: 1803,\n        type: 'int',\n        codeSet: 'AuctionTypeCodeSet',\n    },\n    {\n        id: '1803002',\n        name: 'BlockOrderAuction',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Block order auction',\n        tag: 1803,\n        type: 'int',\n        codeSet: 'AuctionTypeCodeSet',\n    },\n    {\n        id: '1803003',\n        name: 'DirectedOrderAuction',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Directed order auction',\n        tag: 1803,\n        type: 'int',\n        codeSet: 'AuctionTypeCodeSet',\n    },\n    {\n        id: '1803004',\n        name: 'ExposureOrderAuction',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Exposure order auction',\n        tag: 1803,\n        type: 'int',\n        codeSet: 'AuctionTypeCodeSet',\n    },\n    {\n        id: '1803005',\n        name: 'FlashOrderAuction',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Flash order auction',\n        tag: 1803,\n        type: 'int',\n        codeSet: 'AuctionTypeCodeSet',\n    },\n    {\n        id: '1803006',\n        name: 'FacilitationOrderAuction',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Facilitation order auction',\n        tag: 1803,\n        type: 'int',\n        codeSet: 'AuctionTypeCodeSet',\n    },\n    {\n        id: '1803007',\n        name: 'SolicitationOrderAuction',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Solicitation order auction',\n        tag: 1803,\n        type: 'int',\n        codeSet: 'AuctionTypeCodeSet',\n    },\n    {\n        id: '1803008',\n        name: 'PriceImprovementMechanism',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Price improvement mechanism (PIM)',\n        tag: 1803,\n        type: 'int',\n        codeSet: 'AuctionTypeCodeSet',\n    },\n    {\n        id: '1803009',\n        name: 'DirectedOrderPriceImprovementMechanism',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Directed Order price improvement mechanism (PIM)',\n        tag: 1803,\n        type: 'int',\n        codeSet: 'AuctionTypeCodeSet',\n    },\n    {\n        id: '1805001',\n        name: 'AutomatedAuctionPermitted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Automatic auction permitted (default)',\n        tag: 1805,\n        type: 'int',\n        codeSet: 'AuctionInstructionCodeSet',\n    },\n    {\n        id: '1805002',\n        name: 'AutomatedAuctionNotPermitted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Automatic auction not permitted',\n        tag: 1805,\n        type: 'int',\n        codeSet: 'AuctionInstructionCodeSet',\n    },\n    {\n        id: '1807001',\n        name: 'NotLocked',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Not locked',\n        tag: 1807,\n        type: 'int',\n        codeSet: 'LockTypeCodeSet',\n    },\n    {\n        id: '1807002',\n        name: 'AwayMarketNetter',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Away market better',\n        tag: 1807,\n        type: 'int',\n        codeSet: 'LockTypeCodeSet',\n    },\n    {\n        id: '1807003',\n        name: 'ThreeTickLocked',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Three tick locked',\n        tag: 1807,\n        type: 'int',\n        codeSet: 'LockTypeCodeSet',\n    },\n    {\n        id: '1807004',\n        name: 'LockedByMarketMaker',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Locked by market maker',\n        tag: 1807,\n        type: 'int',\n        codeSet: 'LockTypeCodeSet',\n    },\n    {\n        id: '1807005',\n        name: 'DirectedOrderLock',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Directed order lock',\n        tag: 1807,\n        type: 'int',\n        codeSet: 'LockTypeCodeSet',\n    },\n    {\n        id: '1807006',\n        name: 'MultilegLock',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description:\n            'Multileg lock\\n\\n\\n                        Lock in the context of multileg orders where legs are executed independently and the entire order is locked until matching information is available for all legs. A multileg order or quote must be matched in its entirety or not at all. For example, one of the legs may be a stock leg sent to a different execution venue that may or may not be able to fill it.',\n        tag: 1807,\n        type: 'int',\n        codeSet: 'LockTypeCodeSet',\n    },\n    {\n        id: '1807007',\n        name: 'MarketOrderLock',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Market order lock',\n        tag: 1807,\n        type: 'int',\n        codeSet: 'LockTypeCodeSet',\n    },\n    {\n        id: '1807008',\n        name: 'PreAssignmentLock',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Pre-assignment lock',\n        tag: 1807,\n        type: 'int',\n        codeSet: 'LockTypeCodeSet',\n    },\n    {\n        id: '1810001',\n        name: 'ISO',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Intermarket Sweep Order (ISO)',\n        tag: 1810,\n        type: 'int',\n        codeSet: 'ReleaseInstructionCodeSet',\n    },\n    {\n        id: '1810002',\n        name: 'NoAwayMarketBetterCheck',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'No Away Market Better check',\n        tag: 1810,\n        type: 'int',\n        codeSet: 'ReleaseInstructionCodeSet',\n    },\n    {\n        id: '1813001',\n        name: 'Volume',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Volume',\n        tag: 1813,\n        type: 'int',\n        codeSet: 'DisclosureTypeCodeSet',\n    },\n    {\n        id: '1813002',\n        name: 'Price',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Price',\n        tag: 1813,\n        type: 'int',\n        codeSet: 'DisclosureTypeCodeSet',\n    },\n    {\n        id: '1813003',\n        name: 'Side',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Side',\n        tag: 1813,\n        type: 'int',\n        codeSet: 'DisclosureTypeCodeSet',\n    },\n    {\n        id: '1813004',\n        name: 'AON',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'AON',\n        tag: 1813,\n        type: 'int',\n        codeSet: 'DisclosureTypeCodeSet',\n    },\n    {\n        id: '1813005',\n        name: 'General',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description:\n            'General\\n\\n\\n                        General is used for bilateral agreed disclosure information type(s).',\n        tag: 1813,\n        type: 'int',\n        codeSet: 'DisclosureTypeCodeSet',\n    },\n    {\n        id: '1813006',\n        name: 'ClearingAccount',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Clearing account',\n        tag: 1813,\n        type: 'int',\n        codeSet: 'DisclosureTypeCodeSet',\n    },\n    {\n        id: '1813007',\n        name: 'CMTAAccount',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'CMTA account',\n        tag: 1813,\n        type: 'int',\n        codeSet: 'DisclosureTypeCodeSet',\n    },\n    {\n        id: '1814001',\n        name: 'No',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'No',\n        tag: 1814,\n        type: 'int',\n        codeSet: 'DisclosureInstructionCodeSet',\n    },\n    {\n        id: '1814002',\n        name: 'Yes',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Yes',\n        tag: 1814,\n        type: 'int',\n        codeSet: 'DisclosureInstructionCodeSet',\n    },\n    {\n        id: '1814003',\n        name: 'UseDefaultSetting',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Use default setting',\n        tag: 1814,\n        type: 'int',\n        codeSet: 'DisclosureInstructionCodeSet',\n    },\n    {\n        id: '1815001',\n        name: 'Customer',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Customer',\n        tag: 1815,\n        type: 'int',\n        codeSet: 'TradingCapacityCodeSet',\n    },\n    {\n        id: '1815002',\n        name: 'CustomerProfessional',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Customer professional',\n        tag: 1815,\n        type: 'int',\n        codeSet: 'TradingCapacityCodeSet',\n    },\n    {\n        id: '1815003',\n        name: 'BrokerDealer',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Broker-dealer',\n        tag: 1815,\n        type: 'int',\n        codeSet: 'TradingCapacityCodeSet',\n    },\n    {\n        id: '1815004',\n        name: 'CustomerBrokerDealer',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Customer broker-dealer',\n        tag: 1815,\n        type: 'int',\n        codeSet: 'TradingCapacityCodeSet',\n    },\n    {\n        id: '1815005',\n        name: 'Principal',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Principal',\n        tag: 1815,\n        type: 'int',\n        codeSet: 'TradingCapacityCodeSet',\n    },\n    {\n        id: '1815006',\n        name: 'MarketMaker',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Market maker',\n        tag: 1815,\n        type: 'int',\n        codeSet: 'TradingCapacityCodeSet',\n    },\n    {\n        id: '1815007',\n        name: 'AwayMarketMaker',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Away market maker',\n        tag: 1815,\n        type: 'int',\n        codeSet: 'TradingCapacityCodeSet',\n    },\n    {\n        id: '1815008',\n        name: 'SystematicInternaliser',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'Systematic internaliser',\n        tag: 1815,\n        type: 'int',\n        codeSet: 'TradingCapacityCodeSet',\n    },\n    {\n        id: '1816001',\n        name: 'Customer',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Customer',\n        tag: 1816,\n        type: 'int',\n        codeSet: 'ClearingAccountTypeCodeSet',\n    },\n    {\n        id: '1816002',\n        name: 'Firm',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Firm',\n        tag: 1816,\n        type: 'int',\n        codeSet: 'ClearingAccountTypeCodeSet',\n    },\n    {\n        id: '1816003',\n        name: 'MarketMaker',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Market maker',\n        tag: 1816,\n        type: 'int',\n        codeSet: 'ClearingAccountTypeCodeSet',\n    },\n    {\n        id: '1821001',\n        name: 'NBBid',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'NBB (National Best Bid)',\n        tag: 1821,\n        type: 'int',\n        codeSet: 'RelatedPriceSourceCodeSet',\n    },\n    {\n        id: '1821002',\n        name: 'NBOffer',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'NBO (National Best Offer)',\n        tag: 1821,\n        type: 'int',\n        codeSet: 'RelatedPriceSourceCodeSet',\n    },\n    {\n        id: '1822001',\n        name: 'Once',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Once (applies only to first execution)',\n        tag: 1822,\n        type: 'int',\n        codeSet: 'MinQtyMethodCodeSet',\n    },\n    {\n        id: '1822002',\n        name: 'Multiple',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Multiple (applies to every execution)',\n        tag: 1822,\n        type: 'int',\n        codeSet: 'MinQtyMethodCodeSet',\n    },\n    {\n        id: '1823001',\n        name: 'NotTriggered',\n        value: '0',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Not triggered (default)',\n        tag: 1823,\n        type: 'int',\n        codeSet: 'TriggeredCodeSet',\n    },\n    {\n        id: '1823002',\n        name: 'Triggered',\n        value: '1',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Triggered',\n        tag: 1823,\n        type: 'int',\n        codeSet: 'TriggeredCodeSet',\n    },\n    {\n        id: '1823003',\n        name: 'StopOrderTriggered',\n        value: '2',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Stop order triggered',\n        tag: 1823,\n        type: 'int',\n        codeSet: 'TriggeredCodeSet',\n    },\n    {\n        id: '1823004',\n        name: 'OCOOrderTriggered',\n        value: '3',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'One Cancels the Other (OCO) order triggered',\n        tag: 1823,\n        type: 'int',\n        codeSet: 'TriggeredCodeSet',\n    },\n    {\n        id: '1823005',\n        name: 'OTOOrderTriggered',\n        value: '4',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'One Triggers the Other (OTO) order triggered',\n        tag: 1823,\n        type: 'int',\n        codeSet: 'TriggeredCodeSet',\n    },\n    {\n        id: '1823006',\n        name: 'OUOOrderTriggered',\n        value: '5',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'One Updates the Other (OUO) order triggered',\n        tag: 1823,\n        type: 'int',\n        codeSet: 'TriggeredCodeSet',\n    },\n    {\n        id: '1827001',\n        name: 'Hour',\n        value: 'H',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        description: 'Hour',\n        tag: 1827,\n        type: 'String',\n        codeSet: 'EventTimeUnitCodeSet',\n    },\n    {\n        id: '1827002',\n        name: 'Minute',\n        value: 'Min',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        description: 'Minute',\n        tag: 1827,\n        type: 'String',\n        codeSet: 'EventTimeUnitCodeSet',\n    },\n    {\n        id: '1827003',\n        name: 'Second',\n        value: 'S',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        description: 'Second',\n        tag: 1827,\n        type: 'String',\n        codeSet: 'EventTimeUnitCodeSet',\n    },\n    {\n        id: '1827004',\n        name: 'Day',\n        value: 'D',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        description: 'Day',\n        tag: 1827,\n        type: 'String',\n        codeSet: 'EventTimeUnitCodeSet',\n    },\n    {\n        id: '1827005',\n        name: 'Week',\n        value: 'Wk',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        description: 'Week',\n        tag: 1827,\n        type: 'String',\n        codeSet: 'EventTimeUnitCodeSet',\n    },\n    {\n        id: '1827006',\n        name: 'Month',\n        value: 'Mo',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        description: 'Month',\n        tag: 1827,\n        type: 'String',\n        codeSet: 'EventTimeUnitCodeSet',\n    },\n    {\n        id: '1827007',\n        name: 'Year',\n        value: 'Yr',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        description: 'Year',\n        tag: 1827,\n        type: 'String',\n        codeSet: 'EventTimeUnitCodeSet',\n    },\n    {\n        id: '1832001',\n        name: 'NotCleared',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '196',\n        description:\n            'Not cleared\\n\\n\\n                        Trade or position has not yet been submitted for clearing.',\n        tag: 1832,\n        type: 'int',\n        codeSet: 'ClearedIndicatorCodeSet',\n    },\n    {\n        id: '1832002',\n        name: 'Cleared',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '196',\n        description: 'Cleared\\n\\n\\n                        Trade or position has been successfully cleared.',\n        tag: 1832,\n        type: 'int',\n        codeSet: 'ClearedIndicatorCodeSet',\n    },\n    {\n        id: '1832003',\n        name: 'Submitted',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '196',\n        description: 'Submitted\\n\\n\\n                        Trade or position has been submitted for clearing.',\n        tag: 1832,\n        type: 'int',\n        codeSet: 'ClearedIndicatorCodeSet',\n    },\n    {\n        id: '1832004',\n        name: 'Rejected',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '196',\n        description: 'Rejected\\n\\n\\n                        Trade or position was rejected by clearing.',\n        tag: 1832,\n        type: 'int',\n        codeSet: 'ClearedIndicatorCodeSet',\n    },\n    {\n        id: '1833001',\n        name: 'TwoComponentIntercommoditySpread',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Two component intercommodity spread',\n        tag: 1833,\n        type: 'int',\n        codeSet: 'ContractRefPosTypeCodeSet',\n    },\n    {\n        id: '1833002',\n        name: 'IndexOrBasket',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Index or basket',\n        tag: 1833,\n        type: 'int',\n        codeSet: 'ContractRefPosTypeCodeSet',\n    },\n    {\n        id: '1833003',\n        name: 'TwoComponentLocationBasis',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Two component locational basis',\n        tag: 1833,\n        type: 'int',\n        codeSet: 'ContractRefPosTypeCodeSet',\n    },\n    {\n        id: '1833004',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Other',\n        tag: 1833,\n        type: 'int',\n        codeSet: 'ContractRefPosTypeCodeSet',\n    },\n    {\n        id: '1834001',\n        name: 'Principal',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Principal',\n        tag: 1834,\n        type: 'int',\n        codeSet: 'PositionCapacityCodeSet',\n    },\n    {\n        id: '1834002',\n        name: 'Agent',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Agent',\n        tag: 1834,\n        type: 'int',\n        codeSet: 'PositionCapacityCodeSet',\n    },\n    {\n        id: '1834003',\n        name: 'Customer',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Customer',\n        tag: 1834,\n        type: 'int',\n        codeSet: 'PositionCapacityCodeSet',\n    },\n    {\n        id: '1834004',\n        name: 'Counterparty',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Counterparty',\n        tag: 1834,\n        type: 'int',\n        codeSet: 'PositionCapacityCodeSet',\n    },\n    {\n        id: '1839001',\n        name: 'SpecialCumDividend',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Special cum dividend (CD)',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839002',\n        name: 'SpecialCumRights',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Special cum rights (CR)',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839003',\n        name: 'SpecialExDividend',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Special ex dividend (XD)',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839004',\n        name: 'SpecialExRights',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Special ex rights (XR)',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839005',\n        name: 'SpecialCumCoupon',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Special cum coupon (CC)',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839006',\n        name: 'SpecialCumCapitalRepayments',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Special cum capital repayments (CP)',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839007',\n        name: 'SpecialExCoupon',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Special ex coupon (XC)',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839008',\n        name: 'SpecialExCapitalRepayments',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Special ex capital repayments (XP)',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839009',\n        name: 'CashSettlement',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Cash settlement (CS)',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839010',\n        name: 'SpecialCumBonus',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Special cum bonus (CB)',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839011',\n        name: 'SpecialPrice',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Special price (SP)\\n\\n\\n                        Usually net or all-in price.',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839012',\n        name: 'SpecialExBonus',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Special ex bonus (XB)',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839013',\n        name: 'GuaranteedDelivery',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Guaranteed delivery (GD)',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839014',\n        name: 'SpecialDividend',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description:\n            'Special dividend\\n\\n\\n                        Deviation from regular ex/cum treatment (without further specification) leading to price modification. To be used only if it is not clear whether it is a special cum or special ex dividend. For ESMA RTS 1, this is the \"SDIV\" flag.',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839015',\n        name: 'PriceImprovement',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description:\n            'Price improvement\\n\\n\\n                        The price is better than a reference price. For example, this may be due to an offer by a systematic internaliser to always quote better prices than a public reference price. For ESMA RTS 1, this is the \"RPRI\" flag.',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839016',\n        name: 'NonPriceFormingTrade',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description:\n            'Non-price forming trade\\n\\n\\n                        In the context of MiFID II, these are transactions which are exempted from the trading obligation (i.e. permitted to be transacted as an OTC transaction) and are deemed not to be contributing to the price discovery process. However, these transactions are not exempted from post trade transparency reporting and are required to be published by MiFID venues and \"approved publication arrangement\" (APAs) for market transparency purposes. The price from exempted transactions should be disregarded for the purposes of price discovery. For ESMA RTS 1 and RTS 2, this is the \"NPFT\" flag.',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839017',\n        name: 'TradeExemptedFromTradingObligation',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.Latest',\n        updatedEP: '277',\n        description:\n            'Trade exempted from trading obligation\\n\\n\\n                        Per MiFIR Article 23, these types of trades are not exempted from post-trade transparency if reported to a trading venue under MiFID II and deemed on exchange, however, they are ignored for price formation despite published by venue. For the UK implementation of MiFIR RTS 1, this is the \"TNCP\" flag.',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839018',\n        name: 'PricePending',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        updated: 'FIX.Latest',\n        updatedEP: '277',\n        description:\n            'Price or strike price is pending\\n\\n\\n                        In the context of MiFIR RTS 1, RTS 2, and RTS 22, this is the \"PNDG\" flag.',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1839019',\n        name: 'PriceNotApplicable',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        updated: 'FIX.Latest',\n        updatedEP: '277',\n        description:\n            'Price is not applicable\\n\\n\\n                        In the context of MiFIR RTS 1, RTS 2, and RTS 22, this is the \"NOAP\" flag.',\n        tag: 1839,\n        type: 'int',\n        codeSet: 'TradePriceConditionCodeSet',\n    },\n    {\n        id: '1840001',\n        name: 'PendingClear',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Pending clear',\n        tag: 1840,\n        type: 'int',\n        codeSet: 'TradeAllocStatusCodeSet',\n    },\n    {\n        id: '1840002',\n        name: 'Claimed',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Claimed',\n        tag: 1840,\n        type: 'int',\n        codeSet: 'TradeAllocStatusCodeSet',\n    },\n    {\n        id: '1840003',\n        name: 'Cleared',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Cleared',\n        tag: 1840,\n        type: 'int',\n        codeSet: 'TradeAllocStatusCodeSet',\n    },\n    {\n        id: '1840004',\n        name: 'Rejected',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Rejected',\n        tag: 1840,\n        type: 'int',\n        codeSet: 'TradeAllocStatusCodeSet',\n    },\n    {\n        id: '1842001',\n        name: 'ClearedQuantity',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Cleared quantity',\n        tag: 1842,\n        type: 'int',\n        codeSet: 'TradeQtyTypeCodeSet',\n    },\n    {\n        id: '1842002',\n        name: 'LongSideClaimedQuantity',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Long side claimed quantity',\n        tag: 1842,\n        type: 'int',\n        codeSet: 'TradeQtyTypeCodeSet',\n    },\n    {\n        id: '1842003',\n        name: 'ShortSideClaimedQuantity',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Short side claimed quantity',\n        tag: 1842,\n        type: 'int',\n        codeSet: 'TradeQtyTypeCodeSet',\n    },\n    {\n        id: '1842004',\n        name: 'LongSideRejectedQuantity',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Long side rejected quantity',\n        tag: 1842,\n        type: 'int',\n        codeSet: 'TradeQtyTypeCodeSet',\n    },\n    {\n        id: '1842005',\n        name: 'ShortSideRejectedQuantity',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Short side rejected quantity',\n        tag: 1842,\n        type: 'int',\n        codeSet: 'TradeQtyTypeCodeSet',\n    },\n    {\n        id: '1842006',\n        name: 'PendingQuantity',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Pending quantity',\n        tag: 1842,\n        type: 'int',\n        codeSet: 'TradeQtyTypeCodeSet',\n    },\n    {\n        id: '1842007',\n        name: 'TransactionQuantity',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Transaction quantity',\n        tag: 1842,\n        type: 'int',\n        codeSet: 'TradeQtyTypeCodeSet',\n    },\n    {\n        id: '1842008',\n        name: 'RemainingQuantity',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description:\n            'Remaining trade quantity\\n\\n\\n                        Used to indicate the remaining quantity of a trade after a give-up or posting action.',\n        tag: 1842,\n        type: 'int',\n        codeSet: 'TradeQtyTypeCodeSet',\n    },\n    {\n        id: '1842009',\n        name: 'PreviousRemainingQuantity',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description:\n            'Previous remaining trade quantity\\n\\n\\n                        Used to indicate the remaining quantity of a trade prior to a give-up or posting action.',\n        tag: 1842,\n        type: 'int',\n        codeSet: 'TradeQtyTypeCodeSet',\n    },\n    {\n        id: '1848001',\n        name: 'Add',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Add to an existing allocation group if one exists.',\n        tag: 1848,\n        type: 'int',\n        codeSet: 'TradeAllocGroupInstructionCodeSet',\n    },\n    {\n        id: '1848002',\n        name: 'DoNotAdd',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Do not add the trade to an allocation group.',\n        tag: 1848,\n        type: 'int',\n        codeSet: 'TradeAllocGroupInstructionCodeSet',\n    },\n    {\n        id: '1849001',\n        name: 'Offset',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description:\n            \"Offset\\n\\n\\n                        A type of transaction where an executing firm gives up a trade as a result of an allocation. Or, in the case of a reversal of an allocation, the take-up (claiming) firm's transaction.\",\n        tag: 1849,\n        type: 'int',\n        codeSet: 'OffsetInstructionCodeSet',\n    },\n    {\n        id: '1849002',\n        name: 'Onset',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description:\n            \"Onset\\n\\n\\n                        A type of transaction where a take-up (claiming) firm takes up a trade as a result of an allocation. Or, in the case of a reversal of an allocation, the executing firm's transaction.\",\n        tag: 1849,\n        type: 'int',\n        codeSet: 'OffsetInstructionCodeSet',\n    },\n    {\n        id: '1857001',\n        name: 'NonFIXSource',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        description: 'Non-FIX source',\n        tag: 1857,\n        type: 'int',\n        codeSet: 'RelatedTradeIDSourceCodeSet',\n    },\n    {\n        id: '1857002',\n        name: 'TradeID',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '165',\n        description: 'Trade ID',\n        tag: 1857,\n        type: 'int',\n        codeSet: 'RelatedTradeIDSourceCodeSet',\n    },\n    {\n        id: '1857003',\n        name: 'SecondaryTradeID',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '165',\n        description: 'Secondary trade ID',\n        tag: 1857,\n        type: 'int',\n        codeSet: 'RelatedTradeIDSourceCodeSet',\n    },\n    {\n        id: '1857004',\n        name: 'TradeReportID',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '165',\n        description: 'Trade report ID',\n        tag: 1857,\n        type: 'int',\n        codeSet: 'RelatedTradeIDSourceCodeSet',\n    },\n    {\n        id: '1857005',\n        name: 'FirmTradeID',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '165',\n        description: 'Firm trade ID',\n        tag: 1857,\n        type: 'int',\n        codeSet: 'RelatedTradeIDSourceCodeSet',\n    },\n    {\n        id: '1857006',\n        name: 'SecondaryFirmTradeID',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '165',\n        description: 'Secondary firm Trade ID',\n        tag: 1857,\n        type: 'int',\n        codeSet: 'RelatedTradeIDSourceCodeSet',\n    },\n    {\n        id: '1857007',\n        name: 'RegulatoryTradeID',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '165',\n        description: 'Regulatory trade ID',\n        tag: 1857,\n        type: 'int',\n        codeSet: 'RelatedTradeIDSourceCodeSet',\n    },\n    {\n        id: '1863001',\n        name: 'PosMaintRptID',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        description: 'Position maintenance report ID - PosMaintRptID(721)',\n        tag: 1863,\n        type: 'int',\n        codeSet: 'RelatedPositionIDSourceCodeSet',\n    },\n    {\n        id: '1863002',\n        name: 'TransferID',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '199',\n        description: 'Position transfer ID - TransferID(2437)',\n        tag: 1863,\n        type: 'int',\n        codeSet: 'RelatedPositionIDSourceCodeSet',\n    },\n    {\n        id: '1863003',\n        name: 'PositionEntityID',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '199',\n        description: 'Position entity ID - PositionID(2618)',\n        tag: 1863,\n        type: 'int',\n        codeSet: 'RelatedPositionIDSourceCodeSet',\n    },\n    {\n        id: '1865001',\n        name: 'ReceivedNotYetProcessed',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '143',\n        description: 'Received, not yet processed',\n        tag: 1865,\n        type: 'int',\n        codeSet: 'QuoteAckStatusCodeSet',\n    },\n    {\n        id: '1865002',\n        name: 'Accepted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '143',\n        description: 'Accepted',\n        tag: 1865,\n        type: 'int',\n        codeSet: 'QuoteAckStatusCodeSet',\n    },\n    {\n        id: '1865003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '143',\n        description: 'Rejected',\n        tag: 1865,\n        type: 'int',\n        codeSet: 'QuoteAckStatusCodeSet',\n    },\n    {\n        id: '1869001',\n        name: 'PriceCheck',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '144',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'Price check\\n\\n\\n                        In the context of ESMA RTS 6 Article 15(1)(a) investment firms are required to perform pre-trade controls using \"price collars, which automatically block or cancel orders that do not meet set price parameters, differentiating between different financial instruments, both on an order-by-order basis and over a specified period of time\".',\n        tag: 1869,\n        type: 'int',\n        codeSet: 'ValueCheckTypeCodeSet',\n    },\n    {\n        id: '1869002',\n        name: 'NotionalValueCheck',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '144',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'Notional value check\\n\\n\\n                        In the context of ESMA RTS 6 Article 15(1)(b) investment firms are required to perform pre-trade controls using \"maximum order values, which prevent orders with an uncommonly large order value from entering the order book\".',\n        tag: 1869,\n        type: 'int',\n        codeSet: 'ValueCheckTypeCodeSet',\n    },\n    {\n        id: '1869003',\n        name: 'QuantityCheck',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description:\n            'Quantity check\\n\\n\\n                        In the context of ESMA RTS 6 Article 15(1)(c) investment firms are required to perform pre-trade controls using \"maximum order volumes, which prevent orders with an uncommonly large order quantity from entering the order book\".',\n        tag: 1869,\n        type: 'int',\n        codeSet: 'ValueCheckTypeCodeSet',\n    },\n    {\n        id: '1870001',\n        name: 'DoNotCheck',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '144',\n        description:\n            'Do not check\\n\\n\\n                        Checks will not be done for the specified ValueCheckType(1869).',\n        tag: 1870,\n        type: 'int',\n        codeSet: 'ValueCheckActionCodeSet',\n    },\n    {\n        id: '1870002',\n        name: 'Check',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '144',\n        description: 'Check\\n\\n\\n                        Checks will be done for the specificed ValueCheckType(1869)',\n        tag: 1870,\n        type: 'int',\n        codeSet: 'ValueCheckActionCodeSet',\n    },\n    {\n        id: '1870003',\n        name: 'BestEffort',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '144',\n        description:\n            'Best effort\\n\\n\\n                        The market may or may not check the specified ValueCheckType(1869) depending on availability of reference data.',\n        tag: 1870,\n        type: 'int',\n        codeSet: 'ValueCheckActionCodeSet',\n    },\n    {\n        id: '1877001',\n        name: 'Successful',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Successful (default)',\n        tag: 1877,\n        type: 'int',\n        codeSet: 'PartyDetailRequestResultCodeSet',\n    },\n    {\n        id: '1877002',\n        name: 'InvalidParty',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Invalid party(-ies)',\n        tag: 1877,\n        type: 'int',\n        codeSet: 'PartyDetailRequestResultCodeSet',\n    },\n    {\n        id: '1877003',\n        name: 'InvalidRelatedParty',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Invalid related party(-ies)',\n        tag: 1877,\n        type: 'int',\n        codeSet: 'PartyDetailRequestResultCodeSet',\n    },\n    {\n        id: '1877004',\n        name: 'InvalidPartyStatus',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Invalid party status(es)',\n        tag: 1877,\n        type: 'int',\n        codeSet: 'PartyDetailRequestResultCodeSet',\n    },\n    {\n        id: '1877005',\n        name: 'NotAuthorized',\n        value: '98',\n        sort: 98,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Not authorized',\n        tag: 1877,\n        type: 'int',\n        codeSet: 'PartyDetailRequestResultCodeSet',\n    },\n    {\n        id: '1877006',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Other',\n        tag: 1877,\n        type: 'int',\n        codeSet: 'PartyDetailRequestResultCodeSet',\n    },\n    {\n        id: '1878001',\n        name: 'Accepted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Accepted',\n        tag: 1878,\n        type: 'int',\n        codeSet: 'PartyDetailRequestStatusCodeSet',\n    },\n    {\n        id: '1878002',\n        name: 'AcceptedWithChanges',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Accepted with changes',\n        tag: 1878,\n        type: 'int',\n        codeSet: 'PartyDetailRequestStatusCodeSet',\n    },\n    {\n        id: '1878003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Rejected',\n        tag: 1878,\n        type: 'int',\n        codeSet: 'PartyDetailRequestStatusCodeSet',\n    },\n    {\n        id: '1878004',\n        name: 'AcceptancePending',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Acceptance pending',\n        tag: 1878,\n        type: 'int',\n        codeSet: 'PartyDetailRequestStatusCodeSet',\n    },\n    {\n        id: '1879001',\n        name: 'Accepted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Accepted',\n        tag: 1879,\n        type: 'int',\n        codeSet: 'PartyDetailDefinitionStatusCodeSet',\n    },\n    {\n        id: '1879002',\n        name: 'AcceptedWithChanges',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Accepted with changes',\n        tag: 1879,\n        type: 'int',\n        codeSet: 'PartyDetailDefinitionStatusCodeSet',\n    },\n    {\n        id: '1879003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Rejected',\n        tag: 1879,\n        type: 'int',\n        codeSet: 'PartyDetailDefinitionStatusCodeSet',\n    },\n    {\n        id: '1881001',\n        name: 'Successful',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Successful (default)',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881002',\n        name: 'InvalidParty',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Invalid party(-ies)',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881003',\n        name: 'InvalidRelatedParty',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Invalid related party(-ies)',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881004',\n        name: 'InvalidEntitlementType',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Invalid entitlement type(s)',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881005',\n        name: 'InvalidEntitlementID',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Invalid entitlement ID(s) / ref ID(s)',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881006',\n        name: 'InvalidEntitlementAttribute',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Invalid entitlement attribute(s)',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881007',\n        name: 'InvalidInstrumentScope',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Invalid instrument scope(s)',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881008',\n        name: 'InvalidMarketSegmentScope',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Invalid market segment scope(s)',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881009',\n        name: 'InvalidStartDate',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Invalid start date',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881010',\n        name: 'InvalidEndDate',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Invalid end date',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881011',\n        name: 'InstrumentScopeNotSupported',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Instrument scope not supported',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881012',\n        name: 'MarketSegmentScopeNotSupported',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Market segment scope not supported',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881013',\n        name: 'EntitlementNotApprovedForParty',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Entitlement not approved for party(-ies)',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881014',\n        name: 'EntitlementAlreadyDefinedForParty',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Entitlement already defined for party(-ies)',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881015',\n        name: 'InstrumentNotApprovedForParty',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Instrument not approved for party(-ies)',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881016',\n        name: 'NotAuthorized',\n        value: '98',\n        sort: 98,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Not authorized',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1881017',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Other',\n        tag: 1881,\n        type: 'int',\n        codeSet: 'EntitlementRequestResultCodeSet',\n    },\n    {\n        id: '1883001',\n        name: 'Accepted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '173',\n        description: 'Accepted',\n        tag: 1883,\n        type: 'int',\n        codeSet: 'EntitlementStatusCodeSet',\n    },\n    {\n        id: '1883002',\n        name: 'AcceptedWithChanges',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '173',\n        description: 'Accepted with changes',\n        tag: 1883,\n        type: 'int',\n        codeSet: 'EntitlementStatusCodeSet',\n    },\n    {\n        id: '1883003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '173',\n        description: 'Rejected',\n        tag: 1883,\n        type: 'int',\n        codeSet: 'EntitlementStatusCodeSet',\n    },\n    {\n        id: '1883004',\n        name: 'Pending',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '173',\n        description:\n            'Pending\\n\\n\\n                        Entitlement definition request submitted that still requires an action to be taken (e.g. approval or setting up).',\n        tag: 1883,\n        type: 'int',\n        codeSet: 'EntitlementStatusCodeSet',\n    },\n    {\n        id: '1883005',\n        name: 'Requested',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '173',\n        description: 'Requested\\n\\n\\n                        Entitlement definition has been requested.',\n        tag: 1883,\n        type: 'int',\n        codeSet: 'EntitlementStatusCodeSet',\n    },\n    {\n        id: '1883006',\n        name: 'Deferred',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '183',\n        description:\n            'Deferred\\n\\n\\n                        Entitlement definition request is being postponed or delayed.',\n        tag: 1883,\n        type: 'int',\n        codeSet: 'EntitlementStatusCodeSet',\n    },\n    {\n        id: '1896001',\n        name: 'ReceivedNotProcessed',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Received, not yet processed',\n        tag: 1896,\n        type: 'int',\n        codeSet: 'TradeMatchAckStatusCodeSet',\n    },\n    {\n        id: '1896002',\n        name: 'Accepted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Accepted',\n        tag: 1896,\n        type: 'int',\n        codeSet: 'TradeMatchAckStatusCodeSet',\n    },\n    {\n        id: '1896003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Rejected',\n        tag: 1896,\n        type: 'int',\n        codeSet: 'TradeMatchAckStatusCodeSet',\n    },\n    {\n        id: '1897001',\n        name: 'Successful',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Successful',\n        tag: 1897,\n        type: 'int',\n        codeSet: 'TradeMatchRejectReasonCodeSet',\n    },\n    {\n        id: '1897002',\n        name: 'InvalidPartyInformation',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Invalid party information',\n        tag: 1897,\n        type: 'int',\n        codeSet: 'TradeMatchRejectReasonCodeSet',\n    },\n    {\n        id: '1897003',\n        name: 'UnknownInstrument',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Unknown instrument',\n        tag: 1897,\n        type: 'int',\n        codeSet: 'TradeMatchRejectReasonCodeSet',\n    },\n    {\n        id: '1897004',\n        name: 'Unauthorized',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Not authorized to report trades',\n        tag: 1897,\n        type: 'int',\n        codeSet: 'TradeMatchRejectReasonCodeSet',\n    },\n    {\n        id: '1897005',\n        name: 'InvalidTradeType',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Invalid trade type',\n        tag: 1897,\n        type: 'int',\n        codeSet: 'TradeMatchRejectReasonCodeSet',\n    },\n    {\n        id: '1897006',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Other',\n        tag: 1897,\n        type: 'int',\n        codeSet: 'TradeMatchRejectReasonCodeSet',\n    },\n    {\n        id: '1904001',\n        name: 'InitialBlockTrade',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Initial block trade',\n        tag: 1904,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDEventCodeSet',\n    },\n    {\n        id: '1904002',\n        name: 'Allocation',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Allocation\\n\\n\\n                        Determination that the block trade will not be further allocated.',\n        tag: 1904,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDEventCodeSet',\n    },\n    {\n        id: '1904003',\n        name: 'Clearing',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Clearing',\n        tag: 1904,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDEventCodeSet',\n    },\n    {\n        id: '1904004',\n        name: 'Compression',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Compression',\n        tag: 1904,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDEventCodeSet',\n    },\n    {\n        id: '1904005',\n        name: 'Novation',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Novation',\n        tag: 1904,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDEventCodeSet',\n    },\n    {\n        id: '1904006',\n        name: 'Termination',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Termination',\n        tag: 1904,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDEventCodeSet',\n    },\n    {\n        id: '1904007',\n        name: 'PostTrdVal',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Post-trade valuation',\n        tag: 1904,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDEventCodeSet',\n    },\n    {\n        id: '1905001',\n        name: 'UniqueTransactionIdentifier',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '275',\n        description: 'Unique Transaction Identifier (ISO 23897)',\n        tag: 1905,\n        type: 'String',\n        codeSet: 'RegulatoryTradeIDSourceCodeSet',\n    },\n    {\n        id: '1906001',\n        name: 'Current',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Current\\n\\n\\n                        The default if not specified.',\n        tag: 1906,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDTypeCodeSet',\n    },\n    {\n        id: '1906002',\n        name: 'Previous',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Previous\\n\\n\\n                        The previous trade's identifier when reporting a cleared trade or novation of a previous trade.\",\n        tag: 1906,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDTypeCodeSet',\n    },\n    {\n        id: '1906003',\n        name: 'Block',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Block\\n\\n\\n                        The block trade's identifier when reporting an allocated subtrade.\",\n        tag: 1906,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDTypeCodeSet',\n    },\n    {\n        id: '1906004',\n        name: 'Related',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Related\\n\\n\\n                        The related trade identifier when reporting a mixed swap.',\n        tag: 1906,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDTypeCodeSet',\n    },\n    {\n        id: '1906005',\n        name: 'ClearedBlockTrade',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Cleared block trade\\n\\n\\n                        Assigned by the CCP to a bunched order/trade when it needs to be cleared with the standby clearing firm prior to post-trade allocation.',\n        tag: 1906,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDTypeCodeSet',\n    },\n    {\n        id: '1906006',\n        name: 'TradingVenueTransactionIdentifier',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description:\n            'Trading venue transaction identifier\\n\\n\\n                        Assigned by the trading venue to a transaction. In the context of ESMA RTS 22 and RTS 24, this is an unique transaction identification \"number generated by trading venues and disseminated to both the buying and selling parties in accordance with Article 12 of [RTS 24 on the maintenance of relevant data relating to orders in financial instruments under Article 25 of Regulation 600/2014 EU].\" (quoted text from RTS 22). \"Uniqueness\" may be defined per relevant regulations.',\n        tag: 1906,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDTypeCodeSet',\n    },\n    {\n        id: '1906007',\n        name: 'ReportTrackingNumber',\n        value: '6',\n        sort: 6,\n        added: 'FIX.Latest',\n        addedEP: '284',\n        description:\n            'Report tracking number\\n\\n\\n                        In the context of EMIR Refit this is a \"unique code assigned to the execution of an order and common for a group of reports related to the same execution\" (see Q28 in https://www.esma.europa.eu/sites/default/files/library/esma74-362-2281_final_report_guidelines_emir_refit.pdf). Also referred to as the RTN.',\n        tag: 1906,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDTypeCodeSet',\n    },\n    {\n        id: '1923001',\n        name: 'Amount',\n        value: '0',\n        added: 'FIX.5.0SP2',\n        addedEP: '160',\n        description: 'Amount',\n        tag: 1923,\n        type: 'int',\n        codeSet: 'PriceMovementTypeCodeSet',\n    },\n    {\n        id: '1923002',\n        name: 'Percentage',\n        value: '1',\n        added: 'FIX.5.0SP2',\n        addedEP: '160',\n        description: 'Percentage',\n        tag: 1923,\n        type: 'int',\n        codeSet: 'PriceMovementTypeCodeSet',\n    },\n    {\n        id: '1924001',\n        name: 'DoNotIntendToClear',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Do not intend to clear',\n        tag: 1924,\n        type: 'int',\n        codeSet: 'ClearingIntentionCodeSet',\n    },\n    {\n        id: '1924002',\n        name: 'IntendToClear',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Intend to clear',\n        tag: 1924,\n        type: 'int',\n        codeSet: 'ClearingIntentionCodeSet',\n    },\n    {\n        id: '1927001',\n        name: 'NonElectronic',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Non-electronic',\n        tag: 1927,\n        type: 'int',\n        codeSet: 'ConfirmationMethodCodeSet',\n    },\n    {\n        id: '1927002',\n        name: 'Electronic',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Electronic',\n        tag: 1927,\n        type: 'int',\n        codeSet: 'ConfirmationMethodCodeSet',\n    },\n    {\n        id: '1927003',\n        name: 'Unconfirmed',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Unconfirmed',\n        tag: 1927,\n        type: 'int',\n        codeSet: 'ConfirmationMethodCodeSet',\n    },\n    {\n        id: '1931001',\n        name: 'NonElectronic',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Non-electronic',\n        tag: 1931,\n        type: 'int',\n        codeSet: 'VerificationMethodCodeSet',\n    },\n    {\n        id: '1931002',\n        name: 'Electronic',\n        value: '1',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Electronic',\n        tag: 1931,\n        type: 'int',\n        codeSet: 'VerificationMethodCodeSet',\n    },\n    {\n        id: '1932001',\n        name: 'NoException',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'No exception',\n        tag: 1932,\n        type: 'int',\n        codeSet: 'ClearingRequirementExceptionCodeSet',\n    },\n    {\n        id: '1932002',\n        name: 'Exception',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '177',\n        description:\n            'Exception\\n\\n\\n                        Used to indicate an exception to a clearing requirement without elaborating on the type of exception.',\n        tag: 1932,\n        type: 'int',\n        codeSet: 'ClearingRequirementExceptionCodeSet',\n    },\n    {\n        id: '1932003',\n        name: 'EndUserException',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '177',\n        description:\n            'End-user exception\\n\\n\\n                        In the US, see CFTC Final Rule on End-User Exception to Clearing Requirements for Swaps Fact Sheet http://www.cftc.gov/ucm/groups/public/@newsroom/documents/file/eue_factsheet_final.pdf',\n        tag: 1932,\n        type: 'int',\n        codeSet: 'ClearingRequirementExceptionCodeSet',\n    },\n    {\n        id: '1932004',\n        name: 'InterAffiliateException',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '177',\n        description:\n            'Inter-affiliate exception\\n\\n\\n                        In the US, see CFTC Final Rule - Clearing Exemption for Swaps Between Certain Affiliated Entities http://www.cftc.gov//ucm/groups/public/@lrfederalregister/documents/file/2013-07970a.pdf',\n        tag: 1932,\n        type: 'int',\n        codeSet: 'ClearingRequirementExceptionCodeSet',\n    },\n    {\n        id: '1932005',\n        name: 'TreasuryAffiliateException',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '177',\n        description:\n            'Treasury affiliate exception\\n\\n\\n                        In the US, see CFTC No Action Letter 13-22 No Action Relief from the Clearing Requirement for Swaps Entered into by Eligible Treasury Affiliates http://www.cftc.gov/ucm/groups/public/@lrlettergeneral/documents/letter/13-22.pdf',\n        tag: 1932,\n        type: 'int',\n        codeSet: 'ClearingRequirementExceptionCodeSet',\n    },\n    {\n        id: '1932006',\n        name: 'CooperativeException',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '177',\n        description:\n            'Cooperative exception\\n\\n\\n                        Clearing exception for certain swaps entered into by cooperatives. In the US, see Regulation 50.51(a) Definition of Exempt Cooperative: https://www.federalregister.gov/articles/2013/08/22/2013-19945/clearing-exemption-for-certain-swaps-entered-into-by-cooperatives',\n        tag: 1932,\n        type: 'int',\n        codeSet: 'ClearingRequirementExceptionCodeSet',\n    },\n    {\n        id: '1933001',\n        name: 'Pay',\n        value: 'PAY',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Principal is paying fixed rate',\n        tag: 1933,\n        type: 'String',\n        codeSet: 'IRSDirectionCodeSet',\n    },\n    {\n        id: '1933002',\n        name: 'Rcv',\n        value: 'RCV',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Principal is receiving fixed rate',\n        tag: 1933,\n        type: 'String',\n        codeSet: 'IRSDirectionCodeSet',\n    },\n    {\n        id: '1933003',\n        name: 'NA',\n        value: 'NA',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Swap is float/float or fixed/fixed',\n        tag: 1933,\n        type: 'String',\n        codeSet: 'IRSDirectionCodeSet',\n    },\n    {\n        id: '1934001',\n        name: 'RT',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Real-time (RT)\\n\\n\\n                        Report of data relating to a regulated transaction including price and volume that is to be disseminated publically. If dissemination is to be suppressed due to an end user exception or to local regulatory rules that allow suppression of certain types of transactions use TradePublishIndicator(1390)=0.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934002',\n        name: 'PET',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Primary economic terms (PET)\\n\\n\\n                        Report to regulators of the full terms of a regulated transaction included in the legal confirmation.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934003',\n        name: 'Snapshot',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Snapshot\\n\\n\\n                        Periodic report of full primary economic terms data throughout the life cycle of a regulated transaction.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934004',\n        name: 'Confirmation',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Confirmation\\n\\n\\n                        Report from a clearing organization of a cleared regulated transaction.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934005',\n        name: 'RTPET',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Combination of RT and PET\\n\\n\\n                        A single report combining the requirements of both real-time and full primary economy terms of a regulated transaction.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934006',\n        name: 'PETConfirmation',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Combination of PET and confirmation\\n\\n\\n                        A single report combining the requirements of both full primary economic terms of a regulated transaction report and confirmation.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934007',\n        name: 'RTPETConfirmation',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Combination of RT, PET and confirmation\\n\\n\\n                        A single report combining the requirements of real-time and full primary economic terms of a regulated transaction report, and confirmation.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934008',\n        name: 'PostTrade',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Post-trade valuation\\n\\n\\n                        Periodic report of the ongoing mark-to-market value of a regulated transaction.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934009',\n        name: 'Verification',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Verification\\n\\n\\n                        Used by the trading counterparty to report its full primary economic terms of a regulated transaction separately to the repository.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934010',\n        name: 'PstTrdEvnt',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description:\n            'Post-trade event\\n\\n\\n                        Report of a regulated transaction continuation event that does not fall within the requirements for real-time reporting.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934011',\n        name: 'PstTrdEvntRTReportable',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Post trade event RT reportable\\n\\n\\n                        Report of a regulated transaction continuation event that falls within the requirements for real-time reporting and public dissemination. If dissemination is to be suppressed due to an end user exception or to local regulatory rules that allow suppression of certain types of transactions, use TradePublishIndicator(1390) = 0 (Do not publish trade).',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934012',\n        name: 'LimitedDetailsTrade',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Limited Details Trade\\n\\nIn the context of MiFIR RTS 2 and EU Consolidated Tape for derivatives, this is the supplementary deferral flag \"LMTF\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934013',\n        name: 'DailyAggregatedTrade',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Daily Aggregated Trade\\n\\nIn the context of MiFIR RTS 2 and EU Consolidated Tape for derivatives, this is the supplementary deferral flag \"DATF\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934014',\n        name: 'VolumeOmissionTrade',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Volume Omission Trade\\n\\nIn the context of MiFIR RTS 2, EU Consolidated Tape for derivatives and UK Consolidated Tape for bonds, this is the supplementary deferral flag \"VOLO\". In the context of MiFIR RTS 2 and EU Consolidated Tape for sovereign bonds, this is the supplementary deferral flag \"OMIS\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934015',\n        name: 'FourWeeksAggregationTrade',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Four Weeks Aggregation Trade\\n\\nIn the context of MiFIR RTS 2 and EU Consolidated Tape for derivatives, this is the supplementary deferral flag \"FWAF\". In the context of MiFIR RTS 2 and EU Consolidated Tape for sovereign bonds, this is the supplementary deferral flag \"AGFW\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934016',\n        name: 'IndefiniteAggregationTrade',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Indefinite Aggregation Trade\\n\\nIn the context of MiFIR RTS 2, this is the supplementary deferral flag \"IDAF\". Note as of April 2026 this value is no longer used by ESMA and is retained for backward compatibility and reference.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934017',\n        name: 'VolumeOmissionTradeEnrichment',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Volume Omission Trade Eligible for Subsequent Aggregated Enrichment\\n\\nIn the context of MiFIR RTS 2, this is the supplementary deferral flag \"VOLW\". Note as of April 2026 this value is no longer used by ESMA and is retained for backward compatibility and reference.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934018',\n        name: 'FullDetailsLimitedDetailsTrade',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Full Details of \"Limited Details Trade\"\\n\\nFull details of a previously reported limited details trade. In the context of MiFIR RTS 2 and EU Consolidated Tape for derivatives, this is the supplementary deferral flag \"FULF\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934019',\n        name: 'FullDetailsDailyAggregatedTrade',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Full Details of \"Daily Aggregated Trade\"\\n\\nFull details of a previously reported daily aggregated trade. In the context of MiFIR RTS 2 and EU Consolidated Tape for derivatives, this is the supplementary deferral flag \"FULA\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934020',\n        name: 'FullDetailsVolumeOmissionTrade',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Full Details of \"Volume Omission Trade\"\\n\\nFull details of a previously reported volume omission trade. In the context of MiFIR RTS 2, EU Consolidated Tape for derivatives and UK Consolidated Tape for bonds, this is the supplementary deferral flag \"FULV\". In the context of MiFIR RTS 2 and EU Consolidated Tape for sovereign bonds, this is the supplementary deferral flag \"FULO\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934021',\n        name: 'FullDetailsFourWeeksAggregationTrade',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Full Details of \"Four Weeks Aggregation Trade\"\\n\\nFull details of a previously reported four weeks aggregation trade. In the context of MiFIR RTS 2 and EU Consolidated Tape for derivatives, this is the supplementary deferral flag \"FULJ\". In the context of MiFIR RTS 2 and EU Consolidated Tape for sovereign bonds, this is the supplementary deferral flag \"FULG\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934022',\n        name: 'FullDetailsVolumeOmissionTradeEnrichment',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Full Details in Aggregated Form of \"Volume Omission Trade Eligible for Subsequent Aggregated Enrichment\"\\n\\nFull details of a previously reported \"volume omission trade eligible for subsequent aggregated enrichment\" transaction. In the context of MiFIR RTS 2, this is the supplementary deferral flag \"COAF\". Note as of April 2026 this value is no longer used by ESMA and is retained for backward compatibility and reference.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934023',\n        name: 'Order',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Order\\n\\n\\n                        Report for order handling events to enter, change or delete orders. In the context of US CAT this is used for the event types MENO, MEOM, MEOJ, and MEOC.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934024',\n        name: 'ChildOrder',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Child order\\n\\n\\n                        Report for child order handling events to enter, change or delete child orders. Child orders are created when a (parent) order is split into multiple (child) orders. In the context of US CAT this is used for the event types MECO, MECOM, and MECOC.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934025',\n        name: 'OrderRoute',\n        value: '24',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Order route\\n\\n\\n                        Reported when an order is routed between market participants and/or execution venues such as an exchange. In the context of US CAT this is used for the event types MEOR, MEOA and MEIR.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934026',\n        name: 'Trade',\n        value: '25',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Trade\\n\\n\\n                        Report for trade handling events to enter, change or delete trades. In the context of US CAT this is used for the event types MEOT, MEOF and MEFA.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934027',\n        name: 'Quote',\n        value: '26',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Quote\\n\\n\\n                        Report for quote handling events to enter, change or delete quotes. In the context of US CAT this is used for the event types MENQ, MEQR, and MEQC.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934028',\n        name: 'Supplement',\n        value: '27',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Supplement\\n\\n\\n                        Reported when an order, quote or trade report is split across multiple messages. The recipient must be able to create the full report by combining the initial and supplement reports. In the context of US CAT this is used for the event types MENOS, MEOMS and MEOTS.',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934029',\n        name: 'NewTransaction',\n        value: '28',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'New transaction\\n\\n\\n                        In the context of EU SFTR reporting this corresponds to \"action type\" \"NEWT\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934030',\n        name: 'TransactionCorrection',\n        value: '29',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Transaction correction\\n\\n\\n                        In the context of EU SFTR reporting this corresponds to \"action type\" \"CORR\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934031',\n        name: 'TransactionModification',\n        value: '30',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Transaction modification\\n\\n\\n                        In the context of EU SFTR reporting this corresponds to \"action type\" \"MODI\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934032',\n        name: 'CollateralUpdate',\n        value: '31',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Collateral update\\n\\n\\n                        In the context of EU SFTR reporting this corresponds to \"action type\" \"COLU\" if CollStatus(910)=3 (Assigned (Accepted)), or \"REUU\" if CollStatus(910)=5 (Reused).',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934033',\n        name: 'MarginUpdate',\n        value: '32',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Margin update\\n\\n\\n                        In the context of EU SFTR reporting this corresponds to \"action type\" \"MARU\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934034',\n        name: 'TransactionReportedInError',\n        value: '33',\n        sort: 33,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Transaction reported in error\\n\\n\\n                        In the context of EU SFTR reporting this corresponds to \"action type\" \"EROR\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1934035',\n        name: 'TerminationEarlyTermination',\n        value: '34',\n        sort: 34,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Termination / Early termination\\n\\n\\n                        In the context of EU SFTR reporting this corresponds to \"action type\" \"ETRM\".',\n        tag: 1934,\n        type: 'int',\n        codeSet: 'RegulatoryReportTypeCodeSet',\n    },\n    {\n        id: '1936001',\n        name: 'Uncollateralized',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Uncollateralized',\n        tag: 1936,\n        type: 'int',\n        codeSet: 'TradeCollateralizationCodeSet',\n    },\n    {\n        id: '1936002',\n        name: 'PartiallyCollateralized',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Partially collateralized',\n        tag: 1936,\n        type: 'int',\n        codeSet: 'TradeCollateralizationCodeSet',\n    },\n    {\n        id: '1936003',\n        name: 'OneWayCollaterallization',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'One-way collaterallization',\n        tag: 1936,\n        type: 'int',\n        codeSet: 'TradeCollateralizationCodeSet',\n    },\n    {\n        id: '1936004',\n        name: 'FullyCollateralized',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Fully collateralized',\n        tag: 1936,\n        type: 'int',\n        codeSet: 'TradeCollateralizationCodeSet',\n    },\n    {\n        id: '1936005',\n        name: 'NetExposure',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Net exposure\\n\\n\\n                        Indication of whether the collateral has been provided for a net exposure, rather than for a single transaction.',\n        tag: 1936,\n        type: 'int',\n        codeSet: 'TradeCollateralizationCodeSet',\n    },\n    {\n        id: '1937001',\n        name: 'Novation',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Novation',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937002',\n        name: 'PartialNovation',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Partial novation',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937003',\n        name: 'TradeUnwind',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '179',\n        description: 'Trade unwind\\n\\n\\n                        \"Trade\" includes \"Swaps\".',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937004',\n        name: 'PartialTradeUnwind',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '179',\n        description: 'Partial trade unwind\\n\\n\\n                        \"Trade\" includes \"Swaps\".',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937005',\n        name: 'Exercise',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Exercise',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937006',\n        name: 'Netting',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '179',\n        description:\n            'Compression/Netting\\n\\n\\n                        Compression (used for OTC derivative trades) and Netting (used for Futures trades) are essentially the same business process, i.e. rolling up closely related contracts into a single trade or position.',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937007',\n        name: 'FullNetting',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Full netting',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937008',\n        name: 'PartialNetting',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Partial netting',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937009',\n        name: 'Amendment',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '193',\n        description:\n            'Amendment\\n\\n\\n                        Based on mutual agreement between the counterparties, used to change the original or previously amended contract terms reported to a trade repository.',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937010',\n        name: 'Increase',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Increase',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937011',\n        name: 'CreditEvent',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Credit event',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937012',\n        name: 'StrategicRestructuring',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Strategic restructuring',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937013',\n        name: 'SuccessionEventReorganization',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Succession event reorganization',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937014',\n        name: 'SuccessionEventRenaming',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Succession event renaming',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937015',\n        name: 'Porting',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Porting',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937016',\n        name: 'Withdrawl',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Withdrawal\\n\\n\\n                        One party withdrew from the trade prior to confirmation or clearing. Can be used with TradeReportTransType(487)=1 (Cancel).',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937017',\n        name: 'Void',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Void\\n\\n\\n                        Trade is to be ended after clearing. Can be used with TradeReportTransType(487)=1 (Cancel).',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937018',\n        name: 'AccountTransfer',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Account transfer',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937019',\n        name: 'GiveUp',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Give up',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937020',\n        name: 'TakeUp',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'TakeUp',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937021',\n        name: 'AveragePricing',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Average pricing',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937022',\n        name: 'Reversal',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Reversal',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937023',\n        name: 'AllocTrdPosting',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Allocation/Trade posting',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937024',\n        name: 'Cascade',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Cascade\\n\\n\\n                        The breakdown of a contract position to a more granular level, e.g. from a yearly position to monthly positions.',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937025',\n        name: 'Delivery',\n        value: '24',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Delivery',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937026',\n        name: 'OptionAsgn',\n        value: '25',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Option assignment',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937027',\n        name: 'Expiration',\n        value: '26',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Expiration',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937028',\n        name: 'Maturity',\n        value: '27',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Maturity',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937029',\n        name: 'EqualPosAdj',\n        value: '28',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Equal position adjustment',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937030',\n        name: 'UnequalPosAdj',\n        value: '29',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Unequal position adjustment\\n\\n\\n                        An adjustment to either the long or short position quantity but not both.',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937031',\n        name: 'Correction',\n        value: '30',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description:\n            'Correction\\n\\n\\n                        Used to correct an error in the contract terms of a previously submitted report to a trade repository.',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937032',\n        name: 'EarlyTermination',\n        value: '31',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Early termination\\n\\n\\n                        The transaction/contract has closed before its natural end (maturity date or end date).',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937033',\n        name: 'Rerate',\n        value: '32',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '258',\n        description:\n            'Rerate\\n\\n\\n                        Change in the repo rate of an open repo contract due to shift in the market conditions.',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1937034',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '179',\n        description:\n            'Other price-forming continuation data\\n\\n\\n                        Other price-forming continuation data or lifecycle event. Include description of type in TradeContinuationText(2374).',\n        tag: 1937,\n        type: 'int',\n        codeSet: 'TradeContinuationCodeSet',\n    },\n    {\n        id: '1938001',\n        name: 'InterestRate',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Interest rate',\n        tag: 1938,\n        type: 'int',\n        codeSet: 'AssetClassCodeSet',\n    },\n    {\n        id: '1938002',\n        name: 'Currency',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Currency',\n        tag: 1938,\n        type: 'int',\n        codeSet: 'AssetClassCodeSet',\n    },\n    {\n        id: '1938003',\n        name: 'Credit',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Credit',\n        tag: 1938,\n        type: 'int',\n        codeSet: 'AssetClassCodeSet',\n    },\n    {\n        id: '1938004',\n        name: 'Equity',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Equity',\n        tag: 1938,\n        type: 'int',\n        codeSet: 'AssetClassCodeSet',\n    },\n    {\n        id: '1938005',\n        name: 'Commodity',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Commodity',\n        tag: 1938,\n        type: 'int',\n        codeSet: 'AssetClassCodeSet',\n    },\n    {\n        id: '1938006',\n        name: 'Other',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Other',\n        tag: 1938,\n        type: 'int',\n        codeSet: 'AssetClassCodeSet',\n    },\n    {\n        id: '1938007',\n        name: 'Cash',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Cash',\n        tag: 1938,\n        type: 'int',\n        codeSet: 'AssetClassCodeSet',\n    },\n    {\n        id: '1938008',\n        name: 'Debt',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Debt',\n        tag: 1938,\n        type: 'int',\n        codeSet: 'AssetClassCodeSet',\n    },\n    {\n        id: '1938009',\n        name: 'Fund',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Fund\\n\\n\\n                        Such as mutual fund, collective investment vehicle, investment program, specialized account program.',\n        tag: 1938,\n        type: 'int',\n        codeSet: 'AssetClassCodeSet',\n    },\n    {\n        id: '1938010',\n        name: 'LoanFacility',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Loan facility',\n        tag: 1938,\n        type: 'int',\n        codeSet: 'AssetClassCodeSet',\n    },\n    {\n        id: '1938011',\n        name: 'Index',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Index\\n\\n\\n                        A main index identified as a security type, for example under EU SFTR reporting.',\n        tag: 1938,\n        type: 'int',\n        codeSet: 'AssetClassCodeSet',\n    },\n    {\n        id: '1939001',\n        name: 'Metals',\n        value: '13',\n        sort: 13,\n        group: 'Commodity',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Metals',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939002',\n        name: 'Bullion',\n        value: '14',\n        sort: 14,\n        group: 'Commodity',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Bullion',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939003',\n        name: 'Energy',\n        value: '15',\n        sort: 15,\n        group: 'Commodity',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Energy',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939004',\n        name: 'CommodityIndex',\n        value: '16',\n        sort: 16,\n        group: 'Commodity',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Commodity index',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939005',\n        name: 'Agricultural',\n        value: '17',\n        sort: 17,\n        group: 'Commodity',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Agricultural',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939006',\n        name: 'Environmental',\n        value: '18',\n        sort: 18,\n        group: 'Commodity',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Environmental',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939007',\n        name: 'Freight',\n        value: '19',\n        sort: 19,\n        group: 'Commodity',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Freight',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939008',\n        name: 'Fertilizer',\n        value: '41',\n        sort: 41,\n        group: 'Commodity',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Fertilizer',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939009',\n        name: 'IndustrialProduct',\n        value: '42',\n        sort: 42,\n        group: 'Commodity',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Industrial product',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939010',\n        name: 'Inflation',\n        value: '43',\n        sort: 43,\n        group: 'Commodity',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Inflation',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939011',\n        name: 'Paper',\n        value: '44',\n        sort: 44,\n        group: 'Commodity',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Paper',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939012',\n        name: 'Polypropylene',\n        value: '45',\n        sort: 45,\n        group: 'Commodity',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Polypropylene',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939013',\n        name: 'OfficialEconomicStatistics',\n        value: '46',\n        sort: 46,\n        group: 'Commodity',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Official economic statistics',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939014',\n        name: 'SingleName',\n        value: '4',\n        sort: 4,\n        group: 'Credit',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Single name',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939015',\n        name: 'CreditIndex',\n        value: '5',\n        sort: 5,\n        group: 'Credit',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Credit index',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939016',\n        name: 'IndexTranche',\n        value: '6',\n        sort: 6,\n        group: 'Credit',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Index tranche',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939017',\n        name: 'CreditBasket',\n        value: '7',\n        sort: 7,\n        group: 'Credit',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Credit basket',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939018',\n        name: 'Basket',\n        value: '3',\n        sort: 3,\n        group: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Basket [for multi-currency]',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939019',\n        name: 'FXCrossRates',\n        value: '38',\n        sort: 38,\n        group: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'FX cross rates',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939020',\n        name: 'FXEmergingMarkets',\n        value: '39',\n        sort: 39,\n        group: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'FX emerging markets',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939021',\n        name: 'FXMajors',\n        value: '40',\n        sort: 40,\n        group: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'FX Majors',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939022',\n        name: 'Government',\n        value: '20',\n        sort: 20,\n        group: 'Debt',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Government',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939023',\n        name: 'Agency',\n        value: '21',\n        sort: 21,\n        group: 'Debt',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Agency',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939024',\n        name: 'Corporate',\n        value: '22',\n        sort: 22,\n        group: 'Debt',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Corporate',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939025',\n        name: 'Financing',\n        value: '23',\n        sort: 23,\n        group: 'Debt',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Financing',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939026',\n        name: 'MoneyMarket',\n        value: '24',\n        sort: 24,\n        group: 'Debt',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Money market',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939027',\n        name: 'Mortgage',\n        value: '25',\n        sort: 25,\n        group: 'Debt',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Mortgage',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939028',\n        name: 'Municipal',\n        value: '26',\n        sort: 26,\n        group: 'Debt',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Municipal',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939029',\n        name: 'Common',\n        value: '9',\n        sort: 9,\n        group: 'Equity',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Common',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939030',\n        name: 'Preferred',\n        value: '10',\n        sort: 10,\n        group: 'Equity',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Preferred',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939031',\n        name: 'EquityIndex',\n        value: '11',\n        sort: 11,\n        group: 'Equity',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Equity index',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939032',\n        name: 'EquityBasket',\n        value: '12',\n        sort: 12,\n        group: 'Equity',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Equity basket',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939033',\n        name: 'DividendIndex',\n        value: '34',\n        sort: 34,\n        group: 'Equity',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Dividend index',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939034',\n        name: 'StockDividend',\n        value: '35',\n        sort: 35,\n        group: 'Equity',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Stock dividend',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939035',\n        name: 'ExchangeTradedFund',\n        value: '36',\n        sort: 36,\n        group: 'Equity',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Exchange traded fund',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939036',\n        name: 'VolatilityIndex',\n        value: '37',\n        sort: 37,\n        group: 'Equity',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Volatility index',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939037',\n        name: 'MutualFund',\n        value: '27',\n        sort: 27,\n        group: 'Fund',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Mutual fund',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939038',\n        name: 'CollectiveInvestmentVehicle',\n        value: '28',\n        sort: 28,\n        group: 'Fund',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Collective investment vehicle',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939039',\n        name: 'InvestmentProgram',\n        value: '29',\n        sort: 29,\n        group: 'Fund',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Investment program\\n\\n\\n                        A generalized fund for major investors.',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939040',\n        name: 'SpecializedAccountProgram',\n        value: '30',\n        sort: 30,\n        group: 'Fund',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Specialized account program\\n\\n\\n                        A specialized fund setup for a particular account or group of accounts.',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939041',\n        name: 'SingleCurrency',\n        value: '1',\n        sort: 1,\n        group: 'Interest Rate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Single currency',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939042',\n        name: 'CrossCurrency',\n        value: '2',\n        sort: 2,\n        group: 'Interest Rate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Cross currency',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939043',\n        name: 'TermLoan',\n        value: '31',\n        sort: 31,\n        group: 'Loan Facility',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Term loan',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939044',\n        name: 'BridgeLoan',\n        value: '32',\n        sort: 32,\n        group: 'Loan Facility',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Bridge loan',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939045',\n        name: 'LetterOfCredit',\n        value: '33',\n        sort: 33,\n        group: 'Loan Facility',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Letter of credit',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939046',\n        name: 'Exotic',\n        value: '8',\n        sort: 8,\n        group: 'Other',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Exotic',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939047',\n        name: 'OtherC10',\n        value: '47',\n        sort: 47,\n        group: 'Other',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            \"Other C10\\n\\n\\n                        Defined under MiFID II (Directive 2014/65/EU) Section C(10) of Annex I and paraphrased in ESMA RTS 2 Annex III Section 10, \\\"Other C10\\\" is a financial instrument \\\"which is not a 'Freight derivative', any of the following interest rate derivatives sub-asset classes: 'Inflation multi-currency swap or cross-currency swap', a 'Future/forward on inflation multi-currency swaps or cross-currency swaps', an 'Inflation single currency swap', a 'Future/forward on inflation single currency swap' and any of the following equity derivatives sub-asset classes: a 'Volatility index option', a 'Volatility index future/forward', a swap with parameter return variance, a swap with parameter return volatility, a portfolio swap with parameter return variance, a portfolio swap with parameter return volatility\\\".\",\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1939048',\n        name: 'Other',\n        value: '48',\n        sort: 48,\n        group: 'Other',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Other\\n\\n\\n                        May be used with any AssetClass(1938) values.',\n        tag: 1939,\n        type: 'int',\n        codeSet: 'AssetSubClassCodeSet',\n    },\n    {\n        id: '1941001',\n        name: 'BasisSwap',\n        value: 'BS',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Basis swap',\n        tag: 1941,\n        type: 'String',\n        codeSet: 'SwapClassCodeSet',\n    },\n    {\n        id: '1941002',\n        name: 'IndexSwap',\n        value: 'IX',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Index swap',\n        tag: 1941,\n        type: 'String',\n        codeSet: 'SwapClassCodeSet',\n    },\n    {\n        id: '1941003',\n        name: 'BroadBasedSecuritySwap',\n        value: 'BB',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Broad-based security swap',\n        tag: 1941,\n        type: 'String',\n        codeSet: 'SwapClassCodeSet',\n    },\n    {\n        id: '1941004',\n        name: 'BasketSwap',\n        value: 'SK',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Basket swap',\n        tag: 1941,\n        type: 'String',\n        codeSet: 'SwapClassCodeSet',\n    },\n    {\n        id: '1946001',\n        name: 'Zero',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Zero',\n        tag: 1946,\n        type: 'int',\n        codeSet: 'CouponTypeCodeSet',\n    },\n    {\n        id: '1946002',\n        name: 'FixedRate',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Fixed rate',\n        tag: 1946,\n        type: 'int',\n        codeSet: 'CouponTypeCodeSet',\n    },\n    {\n        id: '1946003',\n        name: 'FloatingRate',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Floating rate',\n        tag: 1946,\n        type: 'int',\n        codeSet: 'CouponTypeCodeSet',\n    },\n    {\n        id: '1946004',\n        name: 'Structured',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Structured',\n        tag: 1946,\n        type: 'int',\n        codeSet: 'CouponTypeCodeSet',\n    },\n    {\n        id: '1949001',\n        name: 'Day',\n        value: 'D',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Day',\n        tag: 1949,\n        type: 'String',\n        codeSet: 'CouponFrequencyUnitCodeSet',\n    },\n    {\n        id: '1949002',\n        name: 'Week',\n        value: 'Wk',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Week',\n        tag: 1949,\n        type: 'String',\n        codeSet: 'CouponFrequencyUnitCodeSet',\n    },\n    {\n        id: '1949003',\n        name: 'Month',\n        value: 'Mo',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Month',\n        tag: 1949,\n        type: 'String',\n        codeSet: 'CouponFrequencyUnitCodeSet',\n    },\n    {\n        id: '1949004',\n        name: 'Year',\n        value: 'Yr',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Year',\n        tag: 1949,\n        type: 'String',\n        codeSet: 'CouponFrequencyUnitCodeSet',\n    },\n    {\n        id: '1949005',\n        name: 'Hour',\n        value: 'H',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Hour',\n        tag: 1949,\n        type: 'String',\n        codeSet: 'CouponFrequencyUnitCodeSet',\n    },\n    {\n        id: '1949006',\n        name: 'Minute',\n        value: 'Min',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Minute',\n        tag: 1949,\n        type: 'String',\n        codeSet: 'CouponFrequencyUnitCodeSet',\n    },\n    {\n        id: '1949007',\n        name: 'Second',\n        value: 'S',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Second',\n        tag: 1949,\n        type: 'String',\n        codeSet: 'CouponFrequencyUnitCodeSet',\n    },\n    {\n        id: '1949008',\n        name: 'Term',\n        value: 'T',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Term',\n        tag: 1949,\n        type: 'String',\n        codeSet: 'CouponFrequencyUnitCodeSet',\n    },\n    {\n        id: '1950001',\n        name: 'OneOne',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '200',\n        description:\n            '1/1\\n\\n\\n                        If parties specify the Day Count Fraction to be 1/1 then in calculating the applicable amount, 1 is simply input into the calculation as the relevant Day Count Fraction. See also 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (a).',\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950002',\n        name: 'ThirtyThreeSixtyUS',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '266',\n        description: \"30/360 (30U/360 or Bond Basis)\\n\\n\\n                        See also ISO 15022 MICO code 'A001'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950003',\n        name: 'ThirtyThreeSixtySIA',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            '30/360 (SIA)\\n\\n\\n                        A variant of \"30/360\" - when Date1 and Date2 are both Feb. 28th or 29th convert them to 30th using the same logic in the conversion of 31st to 30th.',\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950004',\n        name: 'ThirtyThreeSixtyM',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            '30/360M\\n\\n\\n                        Commonly used day count convention for US mortgage backed securities. Feb 28th (or 29th in a leap year) is always considered as a 30th for a start date. As a comparison, in the regular 30/360 day count as used by most US agency and corporate bonds, a start date of Feb 28th (or 29th in a leap year) is still considered as the 28th (or 29th) day of a month of 30 days.',\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950005',\n        name: 'ThirtyEThreeSixty',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: \"30E/360 (Eurobond Basis)\\n\\n\\n                        See also ISO 15022 MICO code 'A007'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950006',\n        name: 'ThirtyEThreeSixtyISDA',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '200',\n        description:\n            '30E/360 (ISDA)\\n\\n\\n                        Date adjustment rules are: (1) if Date1 is the last day of the month, then change Date1 to 30; (2) if D2 is the last day of the month (unless Date2 is the maturity date and Date2 is in February), then change Date2 to 30. See also 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (h).',\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950007',\n        name: 'ActThreeSixty',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: \"Act/360\\n\\n\\n                        See also ISO 15022 MICO code 'A004'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950008',\n        name: 'ActThreeSixtyFiveFixed',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: \"Act/365 (FIXED)\\n\\n\\n                        See also ISO 15022 MICO code 'A005'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950009',\n        name: 'ActActAFB',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: \"Act/Act (AFB)\\n\\n\\n                        See also ISO 15022 MICO code 'A010'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950010',\n        name: 'ActActICMA',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: \"Act/Act (ICMA)\\n\\n\\n                        See also ISO 15022 MICO code 'A006'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950011',\n        name: 'ActActISMAUltimo',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description:\n            'Act/Act (ICMA Ultimo)\\n\\n\\n                        The Act/Act (ICMA Ultimo) differs from Act/Act (ICMA) method only that it assumes that regular coupons always fall on the last day of the month.',\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950012',\n        name: 'ActActISDA',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: \"Act/Act (ISDA)\\n\\n\\n                        See also ISO 15022 MICO code 'A008'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950013',\n        name: 'BusTwoFiftyTwo',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '200',\n        description:\n            'BUS/252\\n\\n\\n                        Used for Brazilian Real swaps, which is based on business days instead of calendar days. The number of business days divided by 252.',\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950014',\n        name: 'ThirtyEPlusThreeSixty',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            '30E+/360\\n\\n\\n                        Variation on 30E/360. Date adjustment rules: (1) If Date1 falls on the 31st, then change it to the 30th; (2) If Date2 falls on the 31st, then change it to 1 and increase Month2 by one, i.e. next month.',\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950015',\n        name: 'ActThreeSixtyFiveL',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: \"Act/365L\\n\\n\\n                        See also ISO 15022 MICO code 'A009'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950016',\n        name: 'NLThreeSixtyFive',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description: \"NL365\\n\\n\\n                        See also ISO 15022 MICO code 'A014'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950017',\n        name: 'NLThreeSixty',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'NL360\\n\\n\\n                        This is the same as Act/360, with the exception of leap days (29th February) which are ignored.',\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950018',\n        name: 'Act364',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '200',\n        description:\n            'Act/364\\n\\n\\n                        The actual number of days between Date1 and Date2, divided by 364.',\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950019',\n        name: 'ThirtyThreeSixtyFive',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            \"30/365\\n\\n\\n                        Interest is calculated based on a 30-day month in a way similar to the 30/360 (basic rule) and a 365-day year. Accrued interest to a value date on the last day of a month shall be the same as to the 30th calendar day of the same month, except for February. This means that a 31 is assumed to be a 30 and the 28 February (or 29 February for a leap year) is assumed to be a 28 (or 29). See also ISO 15022 MICO code 'A002'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950020',\n        name: 'ThirtyActual',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            \"30/Actual\\n\\n\\n                        Interest is calculated based on a 30-day month in a way similar to the 30/360 (basic rule) and the assumed number of days in a year in a way similar to the Actual/Actual (ICMA). Accrued interest to a value date on the last day of a month shall be the same as to the 30th calendar day of the same month, except for February. This means that a 31 is assumed to be a 30 and the 28 February (or 29 February for a leap year) is assumed to be a 28 (or 29). The assumed number of days in a year is computed as the actual number of days in the coupon period multiplied by the number of interest payments in the year. See also ISO 15022 MICO code 'A003'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950021',\n        name: 'ThirtyThreeSixtyICMA',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            \"30/360 (ICMA or basis rule)\\n\\n\\n                        Interest is calculated based on a 30-day month and a 360-day year. Accrued interest to a value date on the last day of a month shall be the same as to the 30 calendar day of the same month, except for February. This means that a 31 is assumed to be a 30 and the 28 February (or 29 February for a leap year) is assumed to be a 28 (or 29). It is the most commonly used 30/360 method for non-US straight and convertible bonds issued before 1 January 1999. See also ISO 15022 MICO code 'A011'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950022',\n        name: 'ThirtyETwoThreeSixty',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            \"30E2/360 (Eurobond basis model two)\\n\\n\\n                        Interest is calculated based on a 30-day month and a 360-day year. Accrued interest to a value date on the last day of a month shall be the same as to the 30th calendar day of the same month, except for the last day of February whose day of the month value shall be adapted to the value of the first day of the interest period if the latter is higher and if the period is one of a regular schedule. This means that a 31 is assumed to be a 30 and the 28 February of a non-leap year is assumed to be equivalent to a 29 February when the first day of the interest period is a 29, or to a 30 February when the first day of the interest period is a 30 or a 31. The 29 February of a leap year is assumed to be equivalent to a 30 February when the first day of the interest period is a 30 or a 31. Similarly, if the coupon period starts on the last day of February, it is assumed to produce only one day of interest in February as if it was starting on a 30 February when the end of the period is a 30 or a 31, or two days of interest in February when the end of the period is a 29, or three days of interest in February when it is the 28 February of a non-leap year and the end of the period is before the 29. See also ISO 15022 MICO code 'A012'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950023',\n        name: 'ThirtyEThreeThreeSixty',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            \"30E3/360 (Eurobond basis model three)\\n\\n\\n                        Interest is calculated based on a 30-day month and a 360-day year. Accrued interest to a value date on the last day of a month shall be the same as to the 30th calendar day of the same month. This means that a 31 is assumed to be a 30 and the 28 February (or 29 February for a leap year) is assumed to be equivalent to a 30 February. It is a variation of the 30E/360 (or Eurobond basis) method where the last day of February is always assumed to be a 30, even if it is the last day of the maturity coupon period. See also ISO 15022 MICO code 'A013'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1950024',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            \"Other\\n\\n\\n                        For other day count method. See also ISO 15022 MICO code 'OTHR'.\",\n        tag: 1950,\n        type: 'int',\n        codeSet: 'CouponDayCountCodeSet',\n    },\n    {\n        id: '1954001',\n        name: 'Unknown',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Unknown',\n        tag: 1954,\n        type: 'int',\n        codeSet: 'LienSeniorityCodeSet',\n    },\n    {\n        id: '1954002',\n        name: 'FirstLien',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'First lien',\n        tag: 1954,\n        type: 'int',\n        codeSet: 'LienSeniorityCodeSet',\n    },\n    {\n        id: '1954003',\n        name: 'SecondLien',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Second lien',\n        tag: 1954,\n        type: 'int',\n        codeSet: 'LienSeniorityCodeSet',\n    },\n    {\n        id: '1954004',\n        name: 'ThirdLien',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Third lien',\n        tag: 1954,\n        type: 'int',\n        codeSet: 'LienSeniorityCodeSet',\n    },\n    {\n        id: '1955001',\n        name: 'BridgeLoan',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Bridge loan',\n        tag: 1955,\n        type: 'int',\n        codeSet: 'LoanFacilityCodeSet',\n    },\n    {\n        id: '1955002',\n        name: 'LetterOfCredit',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Letter of credit',\n        tag: 1955,\n        type: 'int',\n        codeSet: 'LoanFacilityCodeSet',\n    },\n    {\n        id: '1955003',\n        name: 'RevolvingLoan',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Revolving loan',\n        tag: 1955,\n        type: 'int',\n        codeSet: 'LoanFacilityCodeSet',\n    },\n    {\n        id: '1955004',\n        name: 'SwinglineFunding',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Swingline funding',\n        tag: 1955,\n        type: 'int',\n        codeSet: 'LoanFacilityCodeSet',\n    },\n    {\n        id: '1955005',\n        name: 'TermLoan',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Term loan',\n        tag: 1955,\n        type: 'int',\n        codeSet: 'LoanFacilityCodeSet',\n    },\n    {\n        id: '1955006',\n        name: 'TradeClaim',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Trade claim',\n        tag: 1955,\n        type: 'int',\n        codeSet: 'LoanFacilityCodeSet',\n    },\n    {\n        id: '1956001',\n        name: 'Asian',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Asian',\n        tag: 1956,\n        type: 'int',\n        codeSet: 'ReferenceEntityTypeCodeSet',\n    },\n    {\n        id: '1956002',\n        name: 'AustralianNewZealand',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Australian and New Zealand',\n        tag: 1956,\n        type: 'int',\n        codeSet: 'ReferenceEntityTypeCodeSet',\n    },\n    {\n        id: '1956003',\n        name: 'EuropeanEmergingMarkets',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'European emerging markets',\n        tag: 1956,\n        type: 'int',\n        codeSet: 'ReferenceEntityTypeCodeSet',\n    },\n    {\n        id: '1956004',\n        name: 'Japanese',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Japanese',\n        tag: 1956,\n        type: 'int',\n        codeSet: 'ReferenceEntityTypeCodeSet',\n    },\n    {\n        id: '1956005',\n        name: 'NorthAmericanHighYield',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'North American high yield',\n        tag: 1956,\n        type: 'int',\n        codeSet: 'ReferenceEntityTypeCodeSet',\n    },\n    {\n        id: '1956006',\n        name: 'NorthAmericanInsurance',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'North American insurance',\n        tag: 1956,\n        type: 'int',\n        codeSet: 'ReferenceEntityTypeCodeSet',\n    },\n    {\n        id: '1956007',\n        name: 'NorthAmericanInvestmentGrade',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'North American investment grade',\n        tag: 1956,\n        type: 'int',\n        codeSet: 'ReferenceEntityTypeCodeSet',\n    },\n    {\n        id: '1956008',\n        name: 'Singaporean',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Singaporean',\n        tag: 1956,\n        type: 'int',\n        codeSet: 'ReferenceEntityTypeCodeSet',\n    },\n    {\n        id: '1956009',\n        name: 'WesternEuropean',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Western European',\n        tag: 1956,\n        type: 'int',\n        codeSet: 'ReferenceEntityTypeCodeSet',\n    },\n    {\n        id: '1956010',\n        name: 'WesternEuropeanInsurance',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Western European insurance',\n        tag: 1956,\n        type: 'int',\n        codeSet: 'ReferenceEntityTypeCodeSet',\n    },\n    {\n        id: '1980001',\n        name: 'BlockToBeAllocated',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Block to be allocated',\n        tag: 1980,\n        type: 'int',\n        codeSet: 'BlockTrdAllocIndicatorCodeSet',\n    },\n    {\n        id: '1980002',\n        name: 'BlockNotToBeAllocated',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Block not to be allocated',\n        tag: 1980,\n        type: 'int',\n        codeSet: 'BlockTrdAllocIndicatorCodeSet',\n    },\n    {\n        id: '1980003',\n        name: 'AllocatedTrade',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Allocated trade\\n\\n\\n                        A sub-trade of a block trade.',\n        tag: 1980,\n        type: 'int',\n        codeSet: 'BlockTrdAllocIndicatorCodeSet',\n    },\n    {\n        id: '2012001',\n        name: 'Bond',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Bond',\n        tag: 2012,\n        type: 'String',\n        codeSet: 'UnderlyingObligationTypeCodeSet',\n    },\n    {\n        id: '2012002',\n        name: 'ConvertibleBond',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Convertible bond',\n        tag: 2012,\n        type: 'String',\n        codeSet: 'UnderlyingObligationTypeCodeSet',\n    },\n    {\n        id: '2012003',\n        name: 'Mortgage',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Mortgage',\n        tag: 2012,\n        type: 'String',\n        codeSet: 'UnderlyingObligationTypeCodeSet',\n    },\n    {\n        id: '2012004',\n        name: 'Loan',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Loan',\n        tag: 2012,\n        type: 'String',\n        codeSet: 'UnderlyingObligationTypeCodeSet',\n    },\n    {\n        id: '2109001',\n        name: 'Base64',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Base64 encoding',\n        tag: 2109,\n        type: 'int',\n        codeSet: 'AttachmentEncodingTypeCodeSet',\n    },\n    {\n        id: '2109002',\n        name: 'RawBinary',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Raw binary\\n\\n\\n                        Unencoded binary content.',\n        tag: 2109,\n        type: 'int',\n        codeSet: 'AttachmentEncodingTypeCodeSet',\n    },\n    {\n        id: '2115001',\n        name: 'AutoSpot',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '168',\n        description:\n            'Auto spot\\n\\n\\n                        The spot price for the reference or benchmark security is provided automatically.',\n        tag: 2115,\n        type: 'int',\n        codeSet: 'NegotiationMethodCodeSet',\n    },\n    {\n        id: '2115002',\n        name: 'NegotiatedSpot',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '168',\n        description:\n            'Negotiated spot\\n\\n\\n                        The spot price for the reference or benchmark security is to be negotiated.',\n        tag: 2115,\n        type: 'int',\n        codeSet: 'NegotiationMethodCodeSet',\n    },\n    {\n        id: '2115003',\n        name: 'PhoneSpot',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '168',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'The spot price for the reference or benchmark security is to be negotiated via phone or voice.\\n\\n\\n                        The spot price for the reference of benchmark security is to be negotiated via phone or voice.',\n        tag: 2115,\n        type: 'int',\n        codeSet: 'NegotiationMethodCodeSet',\n    },\n    {\n        id: '2121001',\n        name: 'Close',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Close',\n        tag: 2121,\n        type: 'int',\n        codeSet: 'ComplexOptPayoutTimeCodeSet',\n    },\n    {\n        id: '2121002',\n        name: 'Open',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Open',\n        tag: 2121,\n        type: 'int',\n        codeSet: 'ComplexOptPayoutTimeCodeSet',\n    },\n    {\n        id: '2121003',\n        name: 'OfficialSettl',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Official settlement',\n        tag: 2121,\n        type: 'int',\n        codeSet: 'ComplexOptPayoutTimeCodeSet',\n    },\n    {\n        id: '2121004',\n        name: 'ValuationTime',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Valuation time',\n        tag: 2121,\n        type: 'int',\n        codeSet: 'ComplexOptPayoutTimeCodeSet',\n    },\n    {\n        id: '2121005',\n        name: 'ExcahgneSettlTime',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Exchange settlement time',\n        tag: 2121,\n        type: 'int',\n        codeSet: 'ComplexOptPayoutTimeCodeSet',\n    },\n    {\n        id: '2121006',\n        name: 'DerivativesClose',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Derivatives close',\n        tag: 2121,\n        type: 'int',\n        codeSet: 'ComplexOptPayoutTimeCodeSet',\n    },\n    {\n        id: '2121007',\n        name: 'AsSpecified',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'As specified in master confirmation',\n        tag: 2121,\n        type: 'int',\n        codeSet: 'ComplexOptPayoutTimeCodeSet',\n    },\n    {\n        id: '2126001',\n        name: 'Currency1PerCurrency2',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Currency 1 per currency 2',\n        tag: 2126,\n        type: 'int',\n        codeSet: 'ComplexEventQuoteBasisCodeSet',\n    },\n    {\n        id: '2126002',\n        name: 'Currency2PerCurrency1',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Currency 2 per currency 1',\n        tag: 2126,\n        type: 'int',\n        codeSet: 'ComplexEventQuoteBasisCodeSet',\n    },\n    {\n        id: '2134001',\n        name: 'SellerNotifies',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Seller notifies',\n        tag: 2134,\n        type: 'int',\n        codeSet: 'ComplexEventCreditEventNotifyingPartyCodeSet',\n    },\n    {\n        id: '2134002',\n        name: 'BuyerNotifies',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Buyer notifies',\n        tag: 2134,\n        type: 'int',\n        codeSet: 'ComplexEventCreditEventNotifyingPartyCodeSet',\n    },\n    {\n        id: '2134003',\n        name: 'SellerOrBuyerNotifies',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Seller or buyer notifies',\n        tag: 2134,\n        type: 'int',\n        codeSet: 'ComplexEventCreditEventNotifyingPartyCodeSet',\n    },\n    {\n        id: '2141001',\n        name: 'Straddle',\n        value: 'STD',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Straddle',\n        tag: 2141,\n        type: 'String',\n        codeSet: 'StrategyTypeCodeSet',\n    },\n    {\n        id: '2141002',\n        name: 'Strangle',\n        value: 'STG',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Strangle',\n        tag: 2141,\n        type: 'String',\n        codeSet: 'StrategyTypeCodeSet',\n    },\n    {\n        id: '2141003',\n        name: 'Butterfly',\n        value: 'BF',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Butterfly',\n        tag: 2141,\n        type: 'String',\n        codeSet: 'StrategyTypeCodeSet',\n    },\n    {\n        id: '2141004',\n        name: 'Condor',\n        value: 'CNDR',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Condor',\n        tag: 2141,\n        type: 'String',\n        codeSet: 'StrategyTypeCodeSet',\n    },\n    {\n        id: '2141005',\n        name: 'CallableInversibleSnowball',\n        value: 'CISN',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Callable inversible snowball',\n        tag: 2141,\n        type: 'String',\n        codeSet: 'StrategyTypeCodeSet',\n    },\n    {\n        id: '2141006',\n        name: 'Other',\n        value: 'OTHER',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Other',\n        tag: 2141,\n        type: 'String',\n        codeSet: 'StrategyTypeCodeSet',\n    },\n    {\n        id: '2143001',\n        name: 'Negotiation',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Negotiation',\n        tag: 2143,\n        type: 'int',\n        codeSet: 'SettlDisruptionProvisionCodeSet',\n    },\n    {\n        id: '2143002',\n        name: 'Cancellation',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Cancellation and payment',\n        tag: 2143,\n        type: 'int',\n        codeSet: 'SettlDisruptionProvisionCodeSet',\n    },\n    {\n        id: '2210001',\n        name: 'Financials',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Financials\\n\\n\\n                        A categorization which usually includes rates, foreign exchange, credit, bonds and equity products or assets.',\n        tag: 2210,\n        type: 'int',\n        codeSet: 'AssetGroupCodeSet',\n    },\n    {\n        id: '2210002',\n        name: 'Commodities',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Commodities\\n\\n\\n                        A categorization which usually includes hard commodities such as agricultural, metals, freight, energy products or assets.',\n        tag: 2210,\n        type: 'int',\n        codeSet: 'AssetGroupCodeSet',\n    },\n    {\n        id: '2210003',\n        name: 'AlternativeInvestments',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Alternative investments\\n\\n\\n                        A categorization which usually includes weather, housing, and commodity indices products or assets.',\n        tag: 2210,\n        type: 'int',\n        codeSet: 'AssetGroupCodeSet',\n    },\n    {\n        id: '2316001',\n        name: 'Accepted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Accepted',\n        tag: 2316,\n        type: 'int',\n        codeSet: 'RiskLimitReportStatusCodeSet',\n    },\n    {\n        id: '2316002',\n        name: 'Rejected',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Rejected',\n        tag: 2316,\n        type: 'int',\n        codeSet: 'RiskLimitReportStatusCodeSet',\n    },\n    {\n        id: '2317001',\n        name: 'UnkRiskLmtRprtID',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Unknown RiskLimitReportID(1667)',\n        tag: 2317,\n        type: 'int',\n        codeSet: 'RiskLimitReportRejectReasonCodeSet',\n    },\n    {\n        id: '2317002',\n        name: 'UnkPty',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Unknown party',\n        tag: 2317,\n        type: 'int',\n        codeSet: 'RiskLimitReportRejectReasonCodeSet',\n    },\n    {\n        id: '2317003',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Other',\n        tag: 2317,\n        type: 'int',\n        codeSet: 'RiskLimitReportRejectReasonCodeSet',\n    },\n    {\n        id: '2320001',\n        name: 'New',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'New',\n        tag: 2320,\n        type: 'int',\n        codeSet: 'RiskLimitCheckTransTypeCodeSet',\n    },\n    {\n        id: '2320002',\n        name: 'Cancel',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Cancel',\n        tag: 2320,\n        type: 'int',\n        codeSet: 'RiskLimitCheckTransTypeCodeSet',\n    },\n    {\n        id: '2320003',\n        name: 'Replace',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Replace',\n        tag: 2320,\n        type: 'int',\n        codeSet: 'RiskLimitCheckTransTypeCodeSet',\n    },\n    {\n        id: '2321001',\n        name: 'Submit',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Submit\\n\\n\\n                        Indicates a submission for a limit check. The RiskLimitCheckTransType(2320) indicates whether the submission is a new request, a cancel or replace/amend of a prior submission.',\n        tag: 2321,\n        type: 'int',\n        codeSet: 'RiskLimitCheckTypeCodeSet',\n    },\n    {\n        id: '2321002',\n        name: 'LimitConsumed',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Limit consumed\\n\\n\\n                        Indicates that the limit reserved by a prior request has been used or consumed by a transaction that occurred.',\n        tag: 2321,\n        type: 'int',\n        codeSet: 'RiskLimitCheckTypeCodeSet',\n    },\n    {\n        id: '2323001',\n        name: 'AllOrNone',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'All or none (default if not specified).\\n\\n\\n                        The limit check request is for the full amount requested or none at all. Request can only be responded to with a full approval of the amount requested or a rejection of the request.',\n        tag: 2323,\n        type: 'int',\n        codeSet: 'RiskLimitCheckRequestTypeCodeSet',\n    },\n    {\n        id: '2323002',\n        name: 'Partial',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Partial\\n\\n\\n                        The requester will accept a partial approval of the requested credit limit amount.',\n        tag: 2323,\n        type: 'int',\n        codeSet: 'RiskLimitCheckRequestTypeCodeSet',\n    },\n    {\n        id: '2325001',\n        name: 'Approved',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Approved\\n\\n\\n                        Request has been accepted and processed. The credit amount requested has been reserved for the transaction.',\n        tag: 2325,\n        type: 'int',\n        codeSet: 'RiskLimitCheckRequestStatusCodeSet',\n    },\n    {\n        id: '2325002',\n        name: 'PartiallyApproved',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Partially approved\\n\\n\\n                        Only a partial amount of the credit amount requested has been approved and has been reserved for the transaction.',\n        tag: 2325,\n        type: 'int',\n        codeSet: 'RiskLimitCheckRequestStatusCodeSet',\n    },\n    {\n        id: '2325003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Rejected',\n        tag: 2325,\n        type: 'int',\n        codeSet: 'RiskLimitCheckRequestStatusCodeSet',\n    },\n    {\n        id: '2325004',\n        name: 'ApprovalPending',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Approval pending',\n        tag: 2325,\n        type: 'int',\n        codeSet: 'RiskLimitCheckRequestStatusCodeSet',\n    },\n    {\n        id: '2325005',\n        name: 'Cancelled',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Cancelled',\n        tag: 2325,\n        type: 'int',\n        codeSet: 'RiskLimitCheckRequestStatusCodeSet',\n    },\n    {\n        id: '2326001',\n        name: 'Successful',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Successful (default)',\n        tag: 2326,\n        type: 'int',\n        codeSet: 'RiskLimitCheckRequestResultCodeSet',\n    },\n    {\n        id: '2326002',\n        name: 'InvalidParty',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Invalid party',\n        tag: 2326,\n        type: 'int',\n        codeSet: 'RiskLimitCheckRequestResultCodeSet',\n    },\n    {\n        id: '2326003',\n        name: 'ReqExceedsCreditLimit',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Requested amount exceeds credit limit',\n        tag: 2326,\n        type: 'int',\n        codeSet: 'RiskLimitCheckRequestResultCodeSet',\n    },\n    {\n        id: '2326004',\n        name: 'ReqExceedsClipSizeLimit',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Requested amount exceeds clip size limit',\n        tag: 2326,\n        type: 'int',\n        codeSet: 'RiskLimitCheckRequestResultCodeSet',\n    },\n    {\n        id: '2326005',\n        name: 'ReqExceedsMaxNotional',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Request exceeds maximum notional order amount',\n        tag: 2326,\n        type: 'int',\n        codeSet: 'RiskLimitCheckRequestResultCodeSet',\n    },\n    {\n        id: '2326006',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Other',\n        tag: 2326,\n        type: 'int',\n        codeSet: 'RiskLimitCheckRequestResultCodeSet',\n    },\n    {\n        id: '2329001',\n        name: 'Suspend',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Suspend',\n        tag: 2329,\n        type: 'int',\n        codeSet: 'PartyActionTypeCodeSet',\n    },\n    {\n        id: '2329002',\n        name: 'HaltTrading',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Halt trading',\n        tag: 2329,\n        type: 'int',\n        codeSet: 'PartyActionTypeCodeSet',\n    },\n    {\n        id: '2329003',\n        name: 'Reinstate',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Reinstate',\n        tag: 2329,\n        type: 'int',\n        codeSet: 'PartyActionTypeCodeSet',\n    },\n    {\n        id: '2332001',\n        name: 'Accepted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Accepted\\n\\n\\n                        The action request is accepted for processing.',\n        tag: 2332,\n        type: 'int',\n        codeSet: 'PartyActionResponseCodeSet',\n    },\n    {\n        id: '2332002',\n        name: 'Completed',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Completed\\n\\n\\n                        The processing of the requested action has been successfully completed.',\n        tag: 2332,\n        type: 'int',\n        codeSet: 'PartyActionResponseCodeSet',\n    },\n    {\n        id: '2332003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Rejected\\n\\n\\n                        The action request was rejected. PartyActionRejectReason(2233) should be used to specify the rejection reason',\n        tag: 2332,\n        type: 'int',\n        codeSet: 'PartyActionResponseCodeSet',\n    },\n    {\n        id: '2333001',\n        name: 'InvalidParty',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '182',\n        description: 'Invalid party or parties',\n        tag: 2333,\n        type: 'int',\n        codeSet: 'PartyActionRejectReasonCodeSet',\n    },\n    {\n        id: '2333002',\n        name: 'UnkReqParty',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Unknown requesting party',\n        tag: 2333,\n        type: 'int',\n        codeSet: 'PartyActionRejectReasonCodeSet',\n    },\n    {\n        id: '2333003',\n        name: 'NotAuthorized',\n        value: '98',\n        sort: 98,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Not authorized',\n        tag: 2333,\n        type: 'int',\n        codeSet: 'PartyActionRejectReasonCodeSet',\n    },\n    {\n        id: '2333004',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Other',\n        tag: 2333,\n        type: 'int',\n        codeSet: 'PartyActionRejectReasonCodeSet',\n    },\n    {\n        id: '2335001',\n        name: 'RiskLimitRequestID',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'RiskLimitRequestID(1666)',\n        tag: 2335,\n        type: 'int',\n        codeSet: 'RefRiskLimitCheckIDTypeCodeSet',\n    },\n    {\n        id: '2335002',\n        name: 'RiskLimitCheckID',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'RiskLimitCheckID(2319)',\n        tag: 2335,\n        type: 'int',\n        codeSet: 'RefRiskLimitCheckIDTypeCodeSet',\n    },\n    {\n        id: '2335003',\n        name: 'OutOfBandID',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '180',\n        description: 'Out of band identifier',\n        tag: 2335,\n        type: 'int',\n        codeSet: 'RefRiskLimitCheckIDTypeCodeSet',\n    },\n    {\n        id: '2339001',\n        name: 'None',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'None (default if not specified)\\n\\n\\n                        No specified limit check model is defined. Limit checks for the party will be based on parameters defined.',\n        tag: 2339,\n        type: 'int',\n        codeSet: 'RiskLimitCheckModelTypeCodeSet',\n    },\n    {\n        id: '2339002',\n        name: 'PlusOneModel',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            \"PlusOne model\\n\\n\\n                        A pre-trade credit limit check model which allows trades to occur until it is determined by the clearinghouse or other designated limit checker that the party's limit(s) was breached by the most recent trade executed.\",\n        tag: 2339,\n        type: 'int',\n        codeSet: 'RiskLimitCheckModelTypeCodeSet',\n    },\n    {\n        id: '2339003',\n        name: 'PingModel',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Ping model\\n\\n\\n                        A pre-trade credit limit check model which requires the execution venue to obtain limit approval from the Credit Provider for every transaction about to be conducted by the Credit User.',\n        tag: 2339,\n        type: 'int',\n        codeSet: 'RiskLimitCheckModelTypeCodeSet',\n    },\n    {\n        id: '2339004',\n        name: 'PushModel',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Push model\\n\\n\\n                        A pre-trade credit limit check model in which the Credit Provider \"pushes\" to the execution venue the credit limit information allocated to each of the Credit Provider\\'s counterparty or customer.',\n        tag: 2339,\n        type: 'int',\n        codeSet: 'RiskLimitCheckModelTypeCodeSet',\n    },\n    {\n        id: '2343001',\n        name: 'Accepted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '172',\n        description:\n            'Accepted\\n\\n\\n                        For use when none of the more specific status enumerations apply.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343002',\n        name: 'Rejected',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '172',\n        description:\n            'Rejected\\n\\n\\n                        For use when none of the more specific status enumerations apply.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343003',\n        name: 'ClaimRequired',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '172',\n        description:\n            'Claim required\\n\\n\\n                        Indicates that the clearing firm is required to accept or decline the trade.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343004',\n        name: 'PreDefinedLimitCheckSucceeded',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '172',\n        description:\n            'Pre-defined limit check succeeded\\n\\n\\n                        Indicates a check enforced automatically by the clearing house.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343005',\n        name: 'PreDefinedLimitCheckFailed',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '172',\n        description:\n            'Pre-defined limit check failed\\n\\n\\n                        Indicates a check enforced automatically by the clearing house.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343006',\n        name: 'PreDefinedAutoAcceptRuleInvoked',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '172',\n        description:\n            'Pre-defined auto-accept rule invoked\\n\\n\\n                        Indicates that the clearing firm is required to accept or decline the trade because no limit or rule applies.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343007',\n        name: 'PreDefinedAutoRejectRuleInvoked',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '172',\n        description:\n            'Pre-defined auto-reject rule invoked\\n\\n\\n                        Indicates a check enforced automatically by the clearing house. Note that clearing house rules of engagement may still require a clearing firm accept or reject the trade.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343008',\n        name: 'AcceptedByClearingFirm',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '172',\n        description:\n            'Accepted by clearing firm\\n\\n\\n                        Indicates that explicit action by the clearing firm, and not an automatic check by the clearing house, was the basis for accepting the trade.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343009',\n        name: 'RejectedByClearingFirm',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '172',\n        description:\n            'Rejected by clearing firm\\n\\n\\n                        Indicates that explicit action by the clearing firm, and not an automatic check by the clearing house, was the basis for rejecting the trade.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343010',\n        name: 'Pending',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '172',\n        description:\n            'Pending\\n\\n\\n                        Indicates that one or more side level risk checks are in progress.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343011',\n        name: 'AcceptedByCreditHub',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '180',\n        description:\n            'Accepted by credit hub\\n\\n\\n                        Indicates that a credit hub accepted the trade. An identifier assigned by the credit hub may appear in the appropriate RefRiskLimitCheckID(2334) field.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343012',\n        name: 'RejectedByCreditHub',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '180',\n        description:\n            'Rejected by credit hub\\n\\n\\n                        Indicates that a credit hub rejected the trade.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343013',\n        name: 'PendingCreditHubCheck',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '180',\n        description:\n            'Pending credit hub check\\n\\n\\n                        Indicates that a check is pending at a credit hub.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343014',\n        name: 'AcceptedByExecVenue',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '180',\n        description:\n            'Accepted by execution venue\\n\\n\\n                        Indicates acceptance by an execution venue, such as a SEF.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2343015',\n        name: 'RejectedByExecVenue',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '180',\n        description:\n            'Rejected by execution venue\\n\\n\\n                        Indicates that the trade was rejected by an execution venue, such as a SEF.',\n        tag: 2343,\n        type: 'int',\n        codeSet: 'RiskLimitCheckStatusCodeSet',\n    },\n    {\n        id: '2347001',\n        name: 'None',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '176',\n        description:\n            'None (default if not specified)\\n\\n\\n                        The transaction does not fall under any special regulatory rule or mandate.',\n        tag: 2347,\n        type: 'int',\n        codeSet: 'RegulatoryTransactionTypeCodeSet',\n    },\n    {\n        id: '2347002',\n        name: 'SEFRequiredTransaction',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '176',\n        description:\n            'Swap Execution Facility (SEF) required transaction\\n\\n\\n                        The transaction is a \"Required\" transaction under Dodd-Frank Act SEF Rules. \"Required\" transactions are subject to the trade execution mandate under section 2(h)(8) of the CEA and are not block trades.',\n        tag: 2347,\n        type: 'int',\n        codeSet: 'RegulatoryTransactionTypeCodeSet',\n    },\n    {\n        id: '2347003',\n        name: 'SEFPermittedTransaction',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '176',\n        description:\n            'Swap Execution Facility (SEF) permitted transaction\\n\\n\\n                        The transaction is a \"Permitted\" transaction under Dodd-Frank Act SEF Rules. \"Permitted\" transactions are not subject to the clearing and trade execution mandates, illiquid or bespoke swaps, or block trades.',\n        tag: 2347,\n        type: 'int',\n        codeSet: 'RegulatoryTransactionTypeCodeSet',\n    },\n    {\n        id: '2355001',\n        name: 'Disabled',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '214',\n        description: 'Disabled\\n\\n\\n                        Risk limits for party is disabled.',\n        tag: 2355,\n        type: 'int',\n        codeSet: 'PartyRiskLimitStatusCodeSet',\n    },\n    {\n        id: '2355002',\n        name: 'Enabled',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '214',\n        description: 'Enabled\\n\\n\\n                        Risk limits for party is enabled.',\n        tag: 2355,\n        type: 'int',\n        codeSet: 'PartyRiskLimitStatusCodeSet',\n    },\n    {\n        id: '2356001',\n        name: 'NoRemunerationPaid',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '209',\n        description: 'No remuneration paid',\n        tag: 2356,\n        type: 'int',\n        codeSet: 'RemunerationIndicatorCodeSet',\n    },\n    {\n        id: '2356002',\n        name: 'RemunerationPaid',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '209',\n        description: 'Remuneration paid',\n        tag: 2356,\n        type: 'int',\n        codeSet: 'RemunerationIndicatorCodeSet',\n    },\n    {\n        id: '2375001',\n        name: 'ISINOrAltInstrmtID',\n        value: 'I',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'ISIN or Alternate instrument identifier plus CFI\\n\\n\\n                        Identified through use of SecurityID(48) and SecurityIDSource(22) of ISIN or another standard source plus CFICode(461).',\n        tag: 2375,\n        type: 'char',\n        codeSet: 'TaxonomyTypeCodeSet',\n    },\n    {\n        id: '2375002',\n        name: 'InterimTaxonomy',\n        value: 'E',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Interim Taxonomy\\n\\n\\n                        Identified through use of AssetClass(1938) plus either Symbol(55) or SecurityID(48) and SecurityIDSource(22), and/or other additional instrument attributes.',\n        tag: 2375,\n        type: 'char',\n        codeSet: 'TaxonomyTypeCodeSet',\n    },\n    {\n        id: '2387001',\n        name: 'DoesNotApply',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'Does not apply (default if not specified)\\n\\n\\n                        The trade is for an asset class that is not traded with contingency.',\n        tag: 2387,\n        type: 'int',\n        codeSet: 'TradeContingencyCodeSet',\n    },\n    {\n        id: '2387002',\n        name: 'ContingentTrade',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Contingent trade\\n\\n\\n                        The trade is terminated as soon as its paired trade is cleared or denied clearing.',\n        tag: 2387,\n        type: 'int',\n        codeSet: 'TradeContingencyCodeSet',\n    },\n    {\n        id: '2387003',\n        name: 'NonContingentTrade',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Non-contingent trade\\n\\n\\n                        Identifies a trade that is not contingent but is for an asset class that may be contingent.',\n        tag: 2387,\n        type: 'int',\n        codeSet: 'TradeContingencyCodeSet',\n    },\n    {\n        id: '2397001',\n        name: 'ClearingMember',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '181',\n        description: 'Clearing member',\n        tag: 2397,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDScopeCodeSet',\n    },\n    {\n        id: '2397002',\n        name: 'Client',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '181',\n        description: 'Client',\n        tag: 2397,\n        type: 'int',\n        codeSet: 'RegulatoryTradeIDScopeCodeSet',\n    },\n    {\n        id: '2402001',\n        name: 'OrderEntry',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '183',\n        description: 'Order entry\\n\\n\\n                        Entitle to enter new orders',\n        tag: 2402,\n        type: 'int',\n        codeSet: 'EntitlementSubTypeCodeSet',\n    },\n    {\n        id: '2402002',\n        name: 'HItLift',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '183',\n        description: 'Hit/Lift\\n\\n\\n                        Entitle to Hit/Lift',\n        tag: 2402,\n        type: 'int',\n        codeSet: 'EntitlementSubTypeCodeSet',\n    },\n    {\n        id: '2402003',\n        name: 'ViewIndicativePx',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '183',\n        description: 'View indicative prices\\n\\n\\n                        Entitle to subscribe to indicative prices',\n        tag: 2402,\n        type: 'int',\n        codeSet: 'EntitlementSubTypeCodeSet',\n    },\n    {\n        id: '2402004',\n        name: 'ViewExecutablePx',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '183',\n        description: 'View executable prices\\n\\n\\n                        Entitle to subscribe to executable prices',\n        tag: 2402,\n        type: 'int',\n        codeSet: 'EntitlementSubTypeCodeSet',\n    },\n    {\n        id: '2402005',\n        name: 'SingleQuote',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '183',\n        description: 'Single quote\\n\\n\\n                        Entitle to submit quote request for a single quote',\n        tag: 2402,\n        type: 'int',\n        codeSet: 'EntitlementSubTypeCodeSet',\n    },\n    {\n        id: '2402006',\n        name: 'StreamingQuotes',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '183',\n        description:\n            'Streaming quotes\\n\\n\\n                        Entitle to submit quote request for streaming quotes',\n        tag: 2402,\n        type: 'int',\n        codeSet: 'EntitlementSubTypeCodeSet',\n    },\n    {\n        id: '2402007',\n        name: 'SingleBroker',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '183',\n        description: 'Single broker\\n\\n\\n                        Entitle to submit quote request for a single broker',\n        tag: 2402,\n        type: 'int',\n        codeSet: 'EntitlementSubTypeCodeSet',\n    },\n    {\n        id: '2402008',\n        name: 'MultiBrokers',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '183',\n        description: 'Multi brokers\\n\\n\\n                        Entitle to submit quote request for multiple brokers',\n        tag: 2402,\n        type: 'int',\n        codeSet: 'EntitlementSubTypeCodeSet',\n    },\n    {\n        id: '2403001',\n        name: 'QuoteEntry',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '184',\n        description:\n            'Quote entry\\n\\n\\n                        New quote is entered or previously submitted quote is updated in full without regard to amount executed when a subsequent quote (e.g. with the same QuoteID reference) is received by the Recipient of the quote message.',\n        tag: 2403,\n        type: 'int',\n        codeSet: 'QuoteModelTypeCodeSet',\n    },\n    {\n        id: '2403002',\n        name: 'QuoteModification',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '184',\n        description:\n            'Quote modification\\n\\n\\n                        Previously submitted quote must be present and is updated, taking into consideration the amount already executed when a subsequent quote (e.g. with the same QuoteID reference) is received by the Recipient of the quote message.',\n        tag: 2403,\n        type: 'int',\n        codeSet: 'QuoteModelTypeCodeSet',\n    },\n    {\n        id: '2405001',\n        name: 'Unspecified',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '186',\n        updated: 'FIX.Latest',\n        updatedEP: '299',\n        description: 'Undefined/unspecified - (default when not specified)',\n        tag: 2405,\n        type: 'int',\n        codeSet: 'ExecMethodCodeSet',\n    },\n    {\n        id: '2405002',\n        name: 'Manual',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '186',\n        updated: 'FIX.Latest',\n        updatedEP: '299',\n        description:\n            'Manual\\n\\nThe transaction was executed in a manual or other non-automated manner, e.g. by voice directly between the counterparties. In the context of Market Model Typology (MMT), this value represents an off book non-automated transaction type.',\n        tag: 2405,\n        type: 'int',\n        codeSet: 'ExecMethodCodeSet',\n    },\n    {\n        id: '2405003',\n        name: 'Automated',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '186',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '228',\n        description:\n            'Automated\\n\\n\\n                        The transaction was executed on an automated execution platform such as an automated systematic internaliser system, broker crossing network, broker crossing system, dark pool trading, \"direct to capital\" systems, broker position unwind mechanisms, etc.',\n        tag: 2405,\n        type: 'int',\n        codeSet: 'ExecMethodCodeSet',\n    },\n    {\n        id: '2405004',\n        name: 'VoiceBrokered',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '201',\n        description:\n            'Voice brokered\\n\\n\\n                        The transaction was negotiated by voice through an intermediary.',\n        tag: 2405,\n        type: 'int',\n        codeSet: 'ExecMethodCodeSet',\n    },\n    {\n        id: '2425001',\n        name: 'Accepted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Accepted',\n        tag: 2425,\n        type: 'int',\n        codeSet: 'MassOrderRequestStatusCodeSet',\n    },\n    {\n        id: '2425002',\n        name: 'AcceptedWithAdditionalEvents',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Accepted with additional events',\n        tag: 2425,\n        type: 'int',\n        codeSet: 'MassOrderRequestStatusCodeSet',\n    },\n    {\n        id: '2425003',\n        name: 'Rejected',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Rejected',\n        tag: 2425,\n        type: 'int',\n        codeSet: 'MassOrderRequestStatusCodeSet',\n    },\n    {\n        id: '2426001',\n        name: 'Successful',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Successful',\n        tag: 2426,\n        type: 'int',\n        codeSet: 'MassOrderRequestResultCodeSet',\n    },\n    {\n        id: '2426002',\n        name: 'ResponseLevelNotSupported',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Response level not supported',\n        tag: 2426,\n        type: 'int',\n        codeSet: 'MassOrderRequestResultCodeSet',\n    },\n    {\n        id: '2426003',\n        name: 'InvalidMarket',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Invalid market',\n        tag: 2426,\n        type: 'int',\n        codeSet: 'MassOrderRequestResultCodeSet',\n    },\n    {\n        id: '2426004',\n        name: 'InvalidMarketSegment',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Invalid market segment',\n        tag: 2426,\n        type: 'int',\n        codeSet: 'MassOrderRequestResultCodeSet',\n    },\n    {\n        id: '2426005',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Other',\n        tag: 2426,\n        type: 'int',\n        codeSet: 'MassOrderRequestResultCodeSet',\n    },\n    {\n        id: '2427001',\n        name: 'NoAck',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description:\n            'No acknowledgement\\n\\n\\n                        Responses are provided through one or more ExecutionReport(35=8) messages.',\n        tag: 2427,\n        type: 'int',\n        codeSet: 'OrderResponseLevelCodeSet',\n    },\n    {\n        id: '2427002',\n        name: 'MinimumAck',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description:\n            'Minimum acknowledgement\\n\\n\\n                        The minimum is any information to explain why the requested transaction was refused or led to additional events, e.g. immediate execution of an order that was entered or modified.',\n        tag: 2427,\n        type: 'int',\n        codeSet: 'OrderResponseLevelCodeSet',\n    },\n    {\n        id: '2427003',\n        name: 'AckEach',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description:\n            'Acknowledge each order\\n\\n\\n                        The number of entries in the response is identical to the number of entries in the request.',\n        tag: 2427,\n        type: 'int',\n        codeSet: 'OrderResponseLevelCodeSet',\n    },\n    {\n        id: '2427004',\n        name: 'SummaryAck',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description:\n            'Summary acknowledgement\\n\\n\\n                        Responses are provided through a single MassOrderAck(35=DK) without entries and one or more ExecutionReport(35=8) messages.',\n        tag: 2427,\n        type: 'int',\n        codeSet: 'OrderResponseLevelCodeSet',\n    },\n    {\n        id: '2429001',\n        name: 'Add',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Add',\n        tag: 2429,\n        type: 'char',\n        codeSet: 'OrderEntryActionCodeSet',\n    },\n    {\n        id: '2429002',\n        name: 'Modify',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Modify',\n        tag: 2429,\n        type: 'char',\n        codeSet: 'OrderEntryActionCodeSet',\n    },\n    {\n        id: '2429003',\n        name: 'Delete',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Delete / Cancel',\n        tag: 2429,\n        type: 'char',\n        codeSet: 'OrderEntryActionCodeSet',\n    },\n    {\n        id: '2429004',\n        name: 'Suspend',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Suspend',\n        tag: 2429,\n        type: 'char',\n        codeSet: 'OrderEntryActionCodeSet',\n    },\n    {\n        id: '2429005',\n        name: 'Release',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Release',\n        tag: 2429,\n        type: 'char',\n        codeSet: 'OrderEntryActionCodeSet',\n    },\n    {\n        id: '2431001',\n        name: 'OrdAddedOnRequest',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Order added upon request',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431002',\n        name: 'OrdReplacedOnRequest',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Order replaced upon request',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431003',\n        name: 'OrdCxldOnRequest',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Order cancelled upon request',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431004',\n        name: 'UnsolicitedOrdCxl',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Unsolicited order cancellation',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431005',\n        name: 'NonRestingOrdAddedOnRequest',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Non-resting order added upon request',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431006',\n        name: 'OrdReplacedWithNonRestingOrdOnRequest',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Order replaced with non-resting order upon request',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431007',\n        name: 'TriggerOrdReplacedOnRequest',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Trigger order replaced upon request',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431008',\n        name: 'SuspendedOrdReplacedOnRequest',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Suspended order replaced upon request',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431009',\n        name: 'SuspendedOrdCxldOnRequest',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Suspended order canceled upon request',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431010',\n        name: 'OrdCxlPending',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Order cancellation pending',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431011',\n        name: 'PendingCxlExecuted',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Pending cancellation executed',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431012',\n        name: 'RestingOrdTriggered',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Resting order triggered',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431013',\n        name: 'SuspendedOrdActivated',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Suspended order activated',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431014',\n        name: 'ActiveOrdSuspended',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Active order suspended',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2431015',\n        name: 'OrdExpired',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Order expired',\n        tag: 2431,\n        type: 'int',\n        codeSet: 'ExecTypeReasonCodeSet',\n    },\n    {\n        id: '2439001',\n        name: 'New',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'New',\n        tag: 2439,\n        type: 'int',\n        codeSet: 'TransferTransTypeCodeSet',\n    },\n    {\n        id: '2439002',\n        name: 'Replace',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Replace',\n        tag: 2439,\n        type: 'int',\n        codeSet: 'TransferTransTypeCodeSet',\n    },\n    {\n        id: '2439003',\n        name: 'Cancel',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Cancel',\n        tag: 2439,\n        type: 'int',\n        codeSet: 'TransferTransTypeCodeSet',\n    },\n    {\n        id: '2440001',\n        name: 'RequestTransfer',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Request transfer',\n        tag: 2440,\n        type: 'int',\n        codeSet: 'TransferTypeCodeSet',\n    },\n    {\n        id: '2440002',\n        name: 'AcceptTransfer',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Accept transfer',\n        tag: 2440,\n        type: 'int',\n        codeSet: 'TransferTypeCodeSet',\n    },\n    {\n        id: '2440003',\n        name: 'DeclineTransfer',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Decline transfer',\n        tag: 2440,\n        type: 'int',\n        codeSet: 'TransferTypeCodeSet',\n    },\n    {\n        id: '2441001',\n        name: 'InterFirmTransfer',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Inter-firm transfer',\n        tag: 2441,\n        type: 'int',\n        codeSet: 'TransferScopeCodeSet',\n    },\n    {\n        id: '2441002',\n        name: 'IntraFirmTransfer',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Intra-firm transfer',\n        tag: 2441,\n        type: 'int',\n        codeSet: 'TransferScopeCodeSet',\n    },\n    {\n        id: '2441003',\n        name: 'CMTA',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Clearing Member Trade Assignment',\n        tag: 2441,\n        type: 'int',\n        codeSet: 'TransferScopeCodeSet',\n    },\n    {\n        id: '2442001',\n        name: 'Received',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Received',\n        tag: 2442,\n        type: 'int',\n        codeSet: 'TransferStatusCodeSet',\n    },\n    {\n        id: '2442002',\n        name: 'RejectedByIntermediary',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Rejected by intermediary',\n        tag: 2442,\n        type: 'int',\n        codeSet: 'TransferStatusCodeSet',\n    },\n    {\n        id: '2442003',\n        name: 'AcceptPending',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Accept pending',\n        tag: 2442,\n        type: 'int',\n        codeSet: 'TransferStatusCodeSet',\n    },\n    {\n        id: '2442004',\n        name: 'Accepted',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Accepted',\n        tag: 2442,\n        type: 'int',\n        codeSet: 'TransferStatusCodeSet',\n    },\n    {\n        id: '2442005',\n        name: 'Declined',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Declined',\n        tag: 2442,\n        type: 'int',\n        codeSet: 'TransferStatusCodeSet',\n    },\n    {\n        id: '2442006',\n        name: 'Cancelled',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Cancelled',\n        tag: 2442,\n        type: 'int',\n        codeSet: 'TransferStatusCodeSet',\n    },\n    {\n        id: '2443001',\n        name: 'Success',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Success',\n        tag: 2443,\n        type: 'int',\n        codeSet: 'TransferRejectReasonCodeSet',\n    },\n    {\n        id: '2443002',\n        name: 'InvalidParty',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Invalid party',\n        tag: 2443,\n        type: 'int',\n        codeSet: 'TransferRejectReasonCodeSet',\n    },\n    {\n        id: '2443003',\n        name: 'UnknownInstrument',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Unknown instrument',\n        tag: 2443,\n        type: 'int',\n        codeSet: 'TransferRejectReasonCodeSet',\n    },\n    {\n        id: '2443004',\n        name: 'UnauthorizedToSubmitXfer',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Not authorized to submit transfers',\n        tag: 2443,\n        type: 'int',\n        codeSet: 'TransferRejectReasonCodeSet',\n    },\n    {\n        id: '2443005',\n        name: 'UnknownPosition',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Unknown position',\n        tag: 2443,\n        type: 'int',\n        codeSet: 'TransferRejectReasonCodeSet',\n    },\n    {\n        id: '2443006',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Other',\n        tag: 2443,\n        type: 'int',\n        codeSet: 'TransferRejectReasonCodeSet',\n    },\n    {\n        id: '2444001',\n        name: 'Submit',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Submit',\n        tag: 2444,\n        type: 'int',\n        codeSet: 'TransferReportTypeCodeSet',\n    },\n    {\n        id: '2444002',\n        name: 'Alleged',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Alleged',\n        tag: 2444,\n        type: 'int',\n        codeSet: 'TransferReportTypeCodeSet',\n    },\n    {\n        id: '2451001',\n        name: 'Unknown',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '282',\n        description: 'Unknown',\n        tag: 2451,\n        type: 'int',\n        codeSet: 'SettlPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '2451002',\n        name: 'LastTradePrice',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '282',\n        description: 'Last trade price',\n        tag: 2451,\n        type: 'int',\n        codeSet: 'SettlPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '2451003',\n        name: 'LastBidPrice',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '282',\n        description: 'Last bid price',\n        tag: 2451,\n        type: 'int',\n        codeSet: 'SettlPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '2451004',\n        name: 'LastOfferPrice',\n        value: '3',\n        sort: 3,\n        added: 'FIX.Latest',\n        addedEP: '282',\n        description: 'Last offer price',\n        tag: 2451,\n        type: 'int',\n        codeSet: 'SettlPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '2451005',\n        name: 'MidPrice',\n        value: '4',\n        sort: 4,\n        added: 'FIX.Latest',\n        addedEP: '282',\n        description:\n            'Mid price\\n\\n\\n                        The price at the mid-point between last bid and last offer price.',\n        tag: 2451,\n        type: 'int',\n        codeSet: 'SettlPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '2451006',\n        name: 'AverageLastTradePrice',\n        value: '5',\n        sort: 5,\n        added: 'FIX.Latest',\n        addedEP: '282',\n        description:\n            'Average last trade price\\n\\n\\n                        The average price across a bi-laterally agreed number of trades, e.g. last five trades.',\n        tag: 2451,\n        type: 'int',\n        codeSet: 'SettlPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '2451007',\n        name: 'AverageLastTradePeriod',\n        value: '6',\n        sort: 6,\n        added: 'FIX.Latest',\n        addedEP: '282',\n        description:\n            'Average last trade period\\n\\n\\n                        Average price across bi-laterally agreed time period, e.g. last minute of trading.',\n        tag: 2451,\n        type: 'int',\n        codeSet: 'SettlPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '2451008',\n        name: 'UnderlyingPrice',\n        value: '7',\n        sort: 7,\n        added: 'FIX.Latest',\n        addedEP: '282',\n        description: 'Underlying price\\n\\n\\n                        Based on price of underlying instrument.',\n        tag: 2451,\n        type: 'int',\n        codeSet: 'SettlPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '2451009',\n        name: 'CalculatedPrice',\n        value: '8',\n        sort: 8,\n        added: 'FIX.Latest',\n        addedEP: '282',\n        description: 'Calculated price\\n\\n\\n                        Other calculation method, e.g. theoretical price.',\n        tag: 2451,\n        type: 'int',\n        codeSet: 'SettlPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '2451010',\n        name: 'ManualPrice',\n        value: '9',\n        sort: 9,\n        added: 'FIX.Latest',\n        addedEP: '282',\n        description: 'Manual price\\n\\n\\n                        Manually entered price.',\n        tag: 2451,\n        type: 'int',\n        codeSet: 'SettlPriceDeterminationMethodCodeSet',\n    },\n    {\n        id: '2456001',\n        name: 'Count',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Count\\n\\n\\n                        Simple count of entities or events, e.g. orders transactions during a period of time.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456002',\n        name: 'AverageVolume',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '231',\n        description:\n            'Average volume\\n\\n\\n                        Average quantity of entities, e.g. average volume of incoming quotes or average trade volume.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456003',\n        name: 'TotalVolume',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '231',\n        description:\n            'Total volume\\n\\n\\n                        Aggregated quantities of entities across events, e.g. total trade volume during a period of time.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456004',\n        name: 'Distribution',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Distribution\\n\\n\\n                        Distribution of entities across entity types, e.g. percentage of limit orders amongst all order types.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456005',\n        name: 'Ratio',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Ratio\\n\\n\\n                        Pre-defined ratio between entities, e.g. ratio of trades triggered by buy orders.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456006',\n        name: 'Liquidity',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Liquidity\\n\\n\\n                        Measurement of liquidity of an instrument, e.g. by providing the spread between bid and offer or the trade volume needed to move the price.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456007',\n        name: 'VWAP',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Volume weighted average price (VWAP)\\n\\n\\n                        Benchmark price.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456008',\n        name: 'Volatility',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Volatility\\n\\n\\n                        Volatility of entities, e.g. price movements of incoming orders.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456009',\n        name: 'Duration',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Duration\\n\\n\\n                        Time period of events, e.g. resting period of passive orders.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456010',\n        name: 'Tick',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Tick\\n\\n\\n                        Price movement of an instrument in number of ticks.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456011',\n        name: 'AverageValue',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '231',\n        description: 'Average value\\n\\n\\n                        Average quantity multiplied by price.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456012',\n        name: 'TotalValue',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '231',\n        description:\n            'Total value\\n\\n\\n                        Aggregated quantity multiplied by price; also described as turnover.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456013',\n        name: 'High',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'High\\n\\n\\n                        Highest price.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456014',\n        name: 'Low',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Low\\n\\n\\n                        Lowest price.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456015',\n        name: 'Midpoint',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Midpoint\\n\\n\\n                        Midpoint price between bid and offer.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456016',\n        name: 'First',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'First\\n\\n\\n                        First price or initial value.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456017',\n        name: 'Last',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Last\\n\\n\\n                        Most recent price or value.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456018',\n        name: 'Final',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Final\\n\\n\\n                        Final price or confirmed value.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456019',\n        name: 'ExchangeBest',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Exchange best\\n\\n\\n                        Best price of a single venue regardless of volume.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456020',\n        name: 'ExchangeBestWithVolume',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Exchange best with volume\\n\\n\\n                        Best price of a single venue with volume at or above a pre-defined threshold.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456021',\n        name: 'ConsolidatedBest',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Consolidated best\\n\\n\\n                        Best price across multiple venues regardless of volume.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456022',\n        name: 'ConsolidatedBestWithVolume',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Consolidated best with volume\\n\\n\\n                        Best price across multiple venues with volume at or above a pre-defined threshold.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456023',\n        name: 'TWAP',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Time weighted average price (TWAP)',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456024',\n        name: 'AverageDuration',\n        value: '24',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Average duration\\n\\n\\n                        Average duration of time periods of events.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456025',\n        name: 'AveragePrice',\n        value: '25',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Average price\\n\\n\\n                        Average price across entities e.g. trade prices.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456026',\n        name: 'TotalFees',\n        value: '26',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Total fees\\n\\n\\n                        Aggregated fees.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456027',\n        name: 'TotalBenefits',\n        value: '27',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Total benefits\\n\\n\\n                        Aggregated benefits.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456028',\n        name: 'MedianValue',\n        value: '28',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Median value\\n\\n\\n                        Median quantity multiplied by price for orders or quotes.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456029',\n        name: 'AverageLiquidity',\n        value: '29',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Average liquidity\\n\\n\\n                        Average liquidity of an instrument e.g. average effective spread.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2456030',\n        name: 'MedianDuration',\n        value: '30',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Median duration\\n\\n\\n                        Median duration of time periods of events.',\n        tag: 2456,\n        type: 'int',\n        codeSet: 'MDStatisticTypeCodeSet',\n    },\n    {\n        id: '2457001',\n        name: 'BidPrices',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Bid prices',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457002',\n        name: 'OfferPrices',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Offer prices',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457003',\n        name: 'BidDepth',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Bid depth',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457004',\n        name: 'OfferDepth',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Offer depth',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457005',\n        name: 'Orders',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Orders',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457006',\n        name: 'Quotes',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Quotes',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457007',\n        name: 'OrdersAndQuotes',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Orders and Quotes',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457008',\n        name: 'Trades',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Trades',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457009',\n        name: 'TradePrices',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Trade prices',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457010',\n        name: 'AuctionPrices',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Auction prices',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457011',\n        name: 'OpeningPrices',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Opening prices',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457012',\n        name: 'ClosingPrices',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Closing prices',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457013',\n        name: 'SettlementPrices',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Settlement prices',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457014',\n        name: 'UnderlyingPrices',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Underlying prices',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457015',\n        name: 'OpenInterest',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Open interest',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457016',\n        name: 'IndexValues',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Index values',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457017',\n        name: 'MarginRates',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Margin rates',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457018',\n        name: 'Outages',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Outages\\n\\n\\n                        System halt due to a technical malfunction or failure.',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457019',\n        name: 'ScheduledAuctions',\n        value: '19',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Scheduled auctions',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457020',\n        name: 'ReferencePrices',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Reference prices',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457021',\n        name: 'TradeValue',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Trade value\\n\\n\\n                        Trade size multiplied by price.',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457022',\n        name: 'MarketDataFeeItems',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Market data fee items\\n\\n\\n                        Fees related to market data access.',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457023',\n        name: 'Rebates',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Rebates\\n\\n\\n                        Rebate items offered to the client.',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457024',\n        name: 'Discounts',\n        value: '24',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Discounts\\n\\n\\n                        Discounts offered to the client.',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457025',\n        name: 'Payments',\n        value: '25',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Payments\\n\\n\\n                        Other benefits offered to the client.',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457026',\n        name: 'Taxes',\n        value: '26',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Taxes\\n\\n\\n                        Taxes incurred.',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457027',\n        name: 'Levies',\n        value: '27',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Levies\\n\\n\\n                        Levies incurred.',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457028',\n        name: 'Benefits',\n        value: '28',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Benefits\\n\\n\\n                        Benefits offered to the client.',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457029',\n        name: 'Fees',\n        value: '29',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Fees',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457030',\n        name: 'OrdersRFQs',\n        value: '30',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Orders and RFQs (Request for quotes)',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457031',\n        name: 'MarketMakers',\n        value: '31',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Market makers',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457032',\n        name: 'TradingInterruptions',\n        value: '32',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Trading interruptions\\n\\n\\n                        Disruption in trading due to an automatic or manual decision.',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457033',\n        name: 'TradingSuspensions',\n        value: '33',\n        sort: 33,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Trading suspensions\\n\\n\\n                        An instrument is deliberately prevented from being quoted or traded due to a decision by execution venue or a competent authority.',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457034',\n        name: 'NoQuotes',\n        value: '34',\n        sort: 34,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'No quotes\\n\\n\\n                        Period of no quotes received.',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457035',\n        name: 'RequestForQuotes',\n        value: '35',\n        sort: 35,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Request for quotes',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2457036',\n        name: 'TradeVolume',\n        value: '36',\n        sort: 36,\n        added: 'FIX.5.0SP2',\n        addedEP: '236',\n        description: 'Trade volume\\n\\n\\n                        Quantity traded.',\n        tag: 2457,\n        type: 'int',\n        codeSet: 'MDStatisticScopeCodeSet',\n    },\n    {\n        id: '2458001',\n        name: 'Visible',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Visible\\n\\n\\n                        Only includes visible orders and/or quotes.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458002',\n        name: 'Hidden',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Hidden\\n\\n\\n                        Only includes hidden orders and/or quotes.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458003',\n        name: 'Indicative',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Indicative\\n\\n\\n                        Only includes IOIs and non-tradable quotes.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458004',\n        name: 'Tradeable',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Tradeable\\n\\n\\n                        Excludes IOIs and indicative quotes.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458005',\n        name: 'Passive',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Passive\\n\\n\\n                        Only includes resting orders and tradeable quotes.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458006',\n        name: 'MarketConsensus',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Market consensus\\n\\n\\n                        Only includes entities, e.g. trades, conforming to minimum requirements. Details to be defined out of band.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458007',\n        name: 'Power',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Power\\n\\n\\n                        Outages due to power failure.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458008',\n        name: 'HardwareError',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Hardware error\\n\\n\\n                        Outages due to a hardware malfunction or failure.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458009',\n        name: 'SoftwareError',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Software error\\n\\n\\n                        Outages due to a software malfunction or failure.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458010',\n        name: 'NetworkError',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Network error\\n\\n\\n                        Outages due to network error.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458011',\n        name: 'Failed',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Failed\\n\\n\\n                        Transaction voided by the execution venue.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458012',\n        name: 'Executed',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Executed\\n\\n\\n                        Total or partial execution of an order or quote.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458013',\n        name: 'Entered',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Entered\\n\\n\\n                        Order or quote entry.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458014',\n        name: 'Modified',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Modified\\n\\n\\n                        Order or quote modification.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458015',\n        name: 'Cancelled',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Cancelled\\n\\n\\n                        Order or quote cancellation.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458016',\n        name: 'MarketDataAccess',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Market data access',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458017',\n        name: 'TerminalAccess',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Terminal access',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458018',\n        name: 'Volume',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Volume\\n\\n\\n                        Specifies sub-scope of market data per volume.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458019',\n        name: 'Cleared',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Cleared\\n\\n\\n                        Cleared trade.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458020',\n        name: 'Settled',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Settled\\n\\n\\n                        Settled trade.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458021',\n        name: 'Other',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Other\\n\\n\\n                        Any other fees incurred by the client.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458022',\n        name: 'Monetary',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Monetary\\n\\n\\n                        Monetary benefits offered to the clients.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458023',\n        name: 'NonMonetary',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Non-monetary\\n\\n\\n                        Non-monetary benefits offered to the clients',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458024',\n        name: 'Gross',\n        value: '24',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Gross\\n\\n\\n                        Total fees excluding rebates and discounts.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458025',\n        name: 'LargeInScale',\n        value: '25',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Large in scale\\n\\n\\n                        Means an order classified as large in scale in accordance with a regulatory definition.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458026',\n        name: 'NeitherHiddenNorLargeInScale',\n        value: '26',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Neither hidden nor large in scale\\n\\n\\n                        Excluding orders pending disclosures and LIS.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458027',\n        name: 'CorporateAction',\n        value: '27',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Corporate action\\n\\n\\n                        Specifies type of trading suspension.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458028',\n        name: 'VenueDecision',\n        value: '28',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Venue decision\\n\\n\\n                        Specifies type of trading suspension.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458029',\n        name: 'MinimumTimePeriod',\n        value: '29',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Minimum time period\\n\\n\\n                        Minimum time period for the event defined by scope.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458030',\n        name: 'Open',\n        value: '30',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Open\\n\\n\\n                        Open status of RFQs (request for quotes), no quotes have been provided.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458031',\n        name: 'NotExecuted',\n        value: '31',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: \"Not executed\\n\\n\\n                        Orders or quotes that didn't execute.\",\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458032',\n        name: 'Aggressive',\n        value: '32',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '236',\n        description:\n            'Aggressive\\n\\n\\n                        Order or Quote entered into the order book that took liquidity.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2458033',\n        name: 'Directed',\n        value: '33',\n        sort: 33,\n        added: 'FIX.5.0SP2',\n        addedEP: '236',\n        description: 'Directed\\n\\n\\n                        An order where execution venue is specified by the client.',\n        tag: 2458,\n        type: 'int',\n        codeSet: 'MDStatisticSubScopeCodeSet',\n    },\n    {\n        id: '2459001',\n        name: 'EntryRate',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Entry rate',\n        tag: 2459,\n        type: 'int',\n        codeSet: 'MDStatisticScopeTypeCodeSet',\n    },\n    {\n        id: '2459002',\n        name: 'ModificationRate',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Modification rate',\n        tag: 2459,\n        type: 'int',\n        codeSet: 'MDStatisticScopeTypeCodeSet',\n    },\n    {\n        id: '2459003',\n        name: 'CancelRate',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Cancel rate',\n        tag: 2459,\n        type: 'int',\n        codeSet: 'MDStatisticScopeTypeCodeSet',\n    },\n    {\n        id: '2459004',\n        name: 'DownwardMove',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Downward move',\n        tag: 2459,\n        type: 'int',\n        codeSet: 'MDStatisticScopeTypeCodeSet',\n    },\n    {\n        id: '2459005',\n        name: 'UpwardMove',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Upward move',\n        tag: 2459,\n        type: 'int',\n        codeSet: 'MDStatisticScopeTypeCodeSet',\n    },\n    {\n        id: '2464001',\n        name: 'SlidingWindow',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Sliding window\\n\\n\\n                        Window is defined as an interval period up to the current time of dissemination, see MDStatisticIntervalPeriod (2466).',\n        tag: 2464,\n        type: 'int',\n        codeSet: 'MDStatisticIntervalTypeCodeSet',\n    },\n    {\n        id: '2464002',\n        name: 'SlidingWindowPeak',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Sliding window peak\\n\\n\\n                        Highest value of all sliding windows across date and/or time range. Omission of date/time range represents current day.',\n        tag: 2464,\n        type: 'int',\n        codeSet: 'MDStatisticIntervalTypeCodeSet',\n    },\n    {\n        id: '2464003',\n        name: 'FixedDateRange',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Fixed date range\\n\\n\\n                        Interval may be open ended on either side, see MDStatisticStartDate (2468) and MDStatisticEndDate(2469). Starting/ending time of date fields only apply to the first/last day of the date range. Additional time range may be defined with MDStatisticStartTime(2470) and MDStatisticEndTime(2471) and applies to every business day within date range, i.e. to define an identical time slice across days.',\n        tag: 2464,\n        type: 'int',\n        codeSet: 'MDStatisticIntervalTypeCodeSet',\n    },\n    {\n        id: '2464004',\n        name: 'FixedTimeRange',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Fixed time range\\n\\n\\n                        Interval may be open ended on either side, see MDStatisticStartTime(2470) and MDStatisticEndTime(2471).',\n        tag: 2464,\n        type: 'int',\n        codeSet: 'MDStatisticIntervalTypeCodeSet',\n    },\n    {\n        id: '2464005',\n        name: 'CurrentTimeUnit',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Current time unit\\n\\n\\n                        Relative time unit which has not ended yet, e.g. current day. Interval ends with the time of dissemination of the statistic. Requires the definition of an actual unit, see MDStatisticIntervalTypeUnit(2465).',\n        tag: 2464,\n        type: 'int',\n        codeSet: 'MDStatisticIntervalTypeCodeSet',\n    },\n    {\n        id: '2464006',\n        name: 'PreviousTimeUnit',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Previous time unit\\n\\n\\n                        Relative time unit which has ended in the past. Requires the definition of an actual unit, see MDStatisticIntervalTypeUnit(2465).',\n        tag: 2464,\n        type: 'int',\n        codeSet: 'MDStatisticIntervalTypeCodeSet',\n    },\n    {\n        id: '2464007',\n        name: 'MaximumRange',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Maximum range\\n\\n\\n                        Use to convey record values over the lifetime of the system or venue.',\n        tag: 2464,\n        type: 'int',\n        codeSet: 'MDStatisticIntervalTypeCodeSet',\n    },\n    {\n        id: '2464008',\n        name: 'MaximumRangeUpToPreviousTimeUnit',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Maximum range up to previous time unit\\n\\n\\n                        Use to convey record values over the lifetime of the system or venue but does not include the most recent time unit as it has not completed yet. Requires the definition of an actual unit, see MDStatisticIntervalTypeUnit(2465)',\n        tag: 2464,\n        type: 'int',\n        codeSet: 'MDStatisticIntervalTypeCodeSet',\n    },\n    {\n        id: '2472001',\n        name: 'BuyersToSellers',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Buyers to sellers',\n        tag: 2472,\n        type: 'int',\n        codeSet: 'MDStatisticRatioTypeCodeSet',\n    },\n    {\n        id: '2472002',\n        name: 'UpticksToDownticks',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Upticks to downticks\\n\\n\\n                        Can also be used with a scope of multiple instruments representing an index.',\n        tag: 2472,\n        type: 'int',\n        codeSet: 'MDStatisticRatioTypeCodeSet',\n    },\n    {\n        id: '2472003',\n        name: 'MarketMakerToNonMarketMaker',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Market maker to non-market maker\\n\\n\\n                        Use to identify share of market making activity.',\n        tag: 2472,\n        type: 'int',\n        codeSet: 'MDStatisticRatioTypeCodeSet',\n    },\n    {\n        id: '2472004',\n        name: 'AutomatedToNonAutomated',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Automated to non-automated\\n\\n\\n                        Use to identify ratio of orders and quotes resulting from automated trading.',\n        tag: 2472,\n        type: 'int',\n        codeSet: 'MDStatisticRatioTypeCodeSet',\n    },\n    {\n        id: '2472005',\n        name: 'OrdersToTrades',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Orders to trades\\n\\n\\n                        Use with scope of trades.',\n        tag: 2472,\n        type: 'int',\n        codeSet: 'MDStatisticRatioTypeCodeSet',\n    },\n    {\n        id: '2472006',\n        name: 'QuotesToTrades',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Quotes to trades\\n\\n\\n                        Use with scope of trades.',\n        tag: 2472,\n        type: 'int',\n        codeSet: 'MDStatisticRatioTypeCodeSet',\n    },\n    {\n        id: '2472007',\n        name: 'OrdersAndQuotesToTrades',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Orders and quotes to trades\\n\\n\\n                        Use with scope of trades.',\n        tag: 2472,\n        type: 'int',\n        codeSet: 'MDStatisticRatioTypeCodeSet',\n    },\n    {\n        id: '2472008',\n        name: 'FailedToTotalTradedValue',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Failed to total traded value\\n\\n\\n                        Total value of failed trades over total traded value.',\n        tag: 2472,\n        type: 'int',\n        codeSet: 'MDStatisticRatioTypeCodeSet',\n    },\n    {\n        id: '2472009',\n        name: 'BenefitsToTotalTradedValue',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Benefits to total traded value\\n\\n\\n                        Total value of all benefits over total traded value.',\n        tag: 2472,\n        type: 'int',\n        codeSet: 'MDStatisticRatioTypeCodeSet',\n    },\n    {\n        id: '2472010',\n        name: 'FeesToTotalTradedValue',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Fees to total traded value\\n\\n\\n                        Total value of all fees excluding rebates over total traded value.',\n        tag: 2472,\n        type: 'int',\n        codeSet: 'MDStatisticRatioTypeCodeSet',\n    },\n    {\n        id: '2472011',\n        name: 'TradeVolumeToTotalTradedVolume',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '236',\n        description:\n            'Trade volume to total traded volume\\n\\n\\n                        Total value of failed trades over total traded value.',\n        tag: 2472,\n        type: 'int',\n        codeSet: 'MDStatisticRatioTypeCodeSet',\n    },\n    {\n        id: '2472012',\n        name: 'OrdersToTotalNumberOrders',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '236',\n        description:\n            'Orders to total number of orders\\n\\n\\n                        Orders pertaining to a type over total number of orders.',\n        tag: 2472,\n        type: 'int',\n        codeSet: 'MDStatisticRatioTypeCodeSet',\n    },\n    {\n        id: '2473001',\n        name: 'Successful',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Successful (default)',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473002',\n        name: 'InvalidOrUnknownMarket',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Invalid or unknown market',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473003',\n        name: 'InvalidOrUnknownMarketSegment',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Invalid or unknown market segment',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473004',\n        name: 'InvalidOrUnknownSecurityList',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Invalid or unknown security list',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473005',\n        name: 'InvalidOrUnknownInstruments',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Invalid or unknown instrument(s)',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473006',\n        name: 'InvalidParties',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Invalid parties',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473007',\n        name: 'TradeDateOutOfSupportedRange',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Trade date out of supported range',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473008',\n        name: 'UnsupportedStatisticType',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Statistic type not supported',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473009',\n        name: 'UnsupportedScopeOrSubScope',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Scope or sub-scope not supported',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473010',\n        name: 'UnsupportedScopeType',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Scope type not supported',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473011',\n        name: 'MarketDepthNotSupported',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Market depth not supported',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473012',\n        name: 'FrequencyNotSupported',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Frequency not supported',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473013',\n        name: 'UnsupportedStatisticInterval',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Statistic interval not supported',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473014',\n        name: 'UnsupportedStatisticDateRange',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Statistic date range not supported',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473015',\n        name: 'UnsupportedStatisticTimeRange',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Statistic time range not supported',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473016',\n        name: 'UnsupportedRatioType',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Ratio type not supported',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473017',\n        name: 'InvalidOrUnknownTradeInputSource',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Invalid or unknown trade input source',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473018',\n        name: 'InvalidOrUnknownTradingSession',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Invalid or unknown trading session',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473019',\n        name: 'UnauthorizedForStatisticRequest',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Unauthorized for statistic request',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2473020',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Other (further information in Text (58) field)',\n        tag: 2473,\n        type: 'int',\n        codeSet: 'MDStatisticRequestResultCodeSet',\n    },\n    {\n        id: '2477001',\n        name: 'Active',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Active (default)',\n        tag: 2477,\n        type: 'int',\n        codeSet: 'MDStatisticStatusCodeSet',\n    },\n    {\n        id: '2477002',\n        name: 'Inactive',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Inactive (not disseminated)',\n        tag: 2477,\n        type: 'int',\n        codeSet: 'MDStatisticStatusCodeSet',\n    },\n    {\n        id: '2479001',\n        name: 'Absolute',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Absolute',\n        tag: 2479,\n        type: 'int',\n        codeSet: 'MDStatisticValueTypeCodeSet',\n    },\n    {\n        id: '2479002',\n        name: 'Percentage',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Percentage',\n        tag: 2479,\n        type: 'int',\n        codeSet: 'MDStatisticValueTypeCodeSet',\n    },\n    {\n        id: '2487001',\n        name: 'UnknownTrade',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Unknown trade or transaction',\n        tag: 2487,\n        type: 'int',\n        codeSet: 'CollRptRejectReasonCodeSet',\n    },\n    {\n        id: '2487002',\n        name: 'UnknownInstrument',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Unknown or invalid instrument',\n        tag: 2487,\n        type: 'int',\n        codeSet: 'CollRptRejectReasonCodeSet',\n    },\n    {\n        id: '2487003',\n        name: 'UnknownCounterparty',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Unknown or invalid counterparty',\n        tag: 2487,\n        type: 'int',\n        codeSet: 'CollRptRejectReasonCodeSet',\n    },\n    {\n        id: '2487004',\n        name: 'UnknownPosition',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Unknown or invalid position',\n        tag: 2487,\n        type: 'int',\n        codeSet: 'CollRptRejectReasonCodeSet',\n    },\n    {\n        id: '2487005',\n        name: 'UnacceptableCollateral',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Unacceptable or invalid type of collateral',\n        tag: 2487,\n        type: 'int',\n        codeSet: 'CollRptRejectReasonCodeSet',\n    },\n    {\n        id: '2487006',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Other',\n        tag: 2487,\n        type: 'int',\n        codeSet: 'CollRptRejectReasonCodeSet',\n    },\n    {\n        id: '2488001',\n        name: 'Accepted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Accepted (successfully processed)',\n        tag: 2488,\n        type: 'int',\n        codeSet: 'CollRptStatusCodeSet',\n    },\n    {\n        id: '2488002',\n        name: 'Received',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Received (not yet processed)',\n        tag: 2488,\n        type: 'int',\n        codeSet: 'CollRptStatusCodeSet',\n    },\n    {\n        id: '2488003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Rejected',\n        tag: 2488,\n        type: 'int',\n        codeSet: 'CollRptStatusCodeSet',\n    },\n    {\n        id: '2523001',\n        name: 'NoCross',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '218',\n        description: 'No cross\\n\\n\\n                        Crossing did not occur.',\n        tag: 2523,\n        type: 'int',\n        codeSet: 'CrossedIndicatorCodeSet',\n    },\n    {\n        id: '2523002',\n        name: 'CrossRejected',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '218',\n        description:\n            'Cross rejected\\n\\n\\n                        Crossing occurred but execution was prevented, e.g. due to self-match prevention.',\n        tag: 2523,\n        type: 'int',\n        codeSet: 'CrossedIndicatorCodeSet',\n    },\n    {\n        id: '2523003',\n        name: 'CrossAccepted',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '218',\n        description: 'Cross accepted\\n\\n\\n                        Crossing occurred but execution was permitted.',\n        tag: 2523,\n        type: 'int',\n        codeSet: 'CrossedIndicatorCodeSet',\n    },\n    {\n        id: '2524001',\n        name: 'NotReported',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '237',\n        description:\n            'Trade has not (yet) been reported\\n\\n\\n                        Depending on the regulatory regime the trade is reportable and the recipient may be responsible for reporting.',\n        tag: 2524,\n        type: 'int',\n        codeSet: 'TradeReportingIndicatorCodeSet',\n    },\n    {\n        id: '2524002',\n        name: 'OnBook',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '237',\n        description: 'Trade has been or will be reported by a trading venue as an \"on-book\" trade',\n        tag: 2524,\n        type: 'int',\n        codeSet: 'TradeReportingIndicatorCodeSet',\n    },\n    {\n        id: '2524003',\n        name: 'SISeller',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        updated: 'FIX.Latest',\n        updatedEP: '283',\n        description: 'Trade has or will be reported as a seller trade by the authorised reporter',\n        tag: 2524,\n        type: 'int',\n        codeSet: 'TradeReportingIndicatorCodeSet',\n    },\n    {\n        id: '2524004',\n        name: 'SIBuyer',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        updated: 'FIX.Latest',\n        updatedEP: '283',\n        description: 'Trade has or will be reported as a buyer trade by the authorised reporter',\n        tag: 2524,\n        type: 'int',\n        codeSet: 'TradeReportingIndicatorCodeSet',\n    },\n    {\n        id: '2524005',\n        name: 'NonSISeller',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        updated: 'FIX.Latest',\n        updatedEP: '283',\n        description: 'Trade has or will be reported as a seller trade by an entity other than the authorised reporter',\n        tag: 2524,\n        type: 'int',\n        codeSet: 'TradeReportingIndicatorCodeSet',\n    },\n    {\n        id: '2524006',\n        name: 'SubDelegationByFirm',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '237',\n        description:\n            'Trade has been or will be reported under a sub-delegation arrangement by an investment firm to a reporting facility (e.g. APA) on behalf of another investment firm',\n        tag: 2524,\n        type: 'int',\n        codeSet: 'TradeReportingIndicatorCodeSet',\n    },\n    {\n        id: '2524007',\n        name: 'Reportable',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '237',\n        description:\n            'Trade has been or will be reported\\n\\n\\n                        Depending on the regulatory regime the recipient is not responsible for reporting.',\n        tag: 2524,\n        type: 'int',\n        codeSet: 'TradeReportingIndicatorCodeSet',\n    },\n    {\n        id: '2524008',\n        name: 'NonSIBuyer',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '237',\n        updated: 'FIX.Latest',\n        updatedEP: '283',\n        description:\n            'Trade has been or will be reported as a buyer trade by an entity other than the authorised reporter',\n        tag: 2524,\n        type: 'int',\n        codeSet: 'TradeReportingIndicatorCodeSet',\n    },\n    {\n        id: '2524009',\n        name: 'OffBook',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '237',\n        description: 'Trade has been or will be reported by a trading venue as an \"off-book\" trade',\n        tag: 2524,\n        type: 'int',\n        codeSet: 'TradeReportingIndicatorCodeSet',\n    },\n    {\n        id: '2524010',\n        name: 'NotReportable',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '237',\n        description:\n            'Trade is not reportable\\n\\n\\n                        The (non-equity) instrument does not need to be reported by any party, e.g. because it is not deemed to have been traded on a trading venue.',\n        tag: 2524,\n        type: 'int',\n        codeSet: 'TradeReportingIndicatorCodeSet',\n    },\n    {\n        id: '2530001',\n        name: 'ASWSpread',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description:\n            \"Asset Swap Spread\\n\\n\\n                        ASW Spread. The asset swap spread is the difference in the bond's yield (yield to maturity) and a floating interest rate (usually LIBOR), expressed in basis points.\",\n        tag: 2530,\n        type: 'int',\n        codeSet: 'RelativeValueTypeCodeSet',\n    },\n    {\n        id: '2530002',\n        name: 'OIS',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description:\n            'Overnight Indexed Swap Spread\\n\\n\\n                        OIS Spread. The overnight indexed swap spread is the spread, expressed in basis points, between the bond yield (the fixed rate) and an overnight indexed rate (e.g. Fed Funds rate, EONIA, SONIA, etc.) (the floating rate).',\n        tag: 2530,\n        type: 'int',\n        codeSet: 'RelativeValueTypeCodeSet',\n    },\n    {\n        id: '2530003',\n        name: 'ZSpread',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description:\n            'Zero Volatility Spread\\n\\n\\n                        Z-Spread. The zero coupon spread is the constant spread added to the reference zero coupon yield curve (usually Treasury spot rate curve), expressed in basis points, to derive the adjusted yield curve used to determine the present value of the cash flows so that it equals the dirty price of the bond (i.e. accrued interested factored in).',\n        tag: 2530,\n        type: 'int',\n        codeSet: 'RelativeValueTypeCodeSet',\n    },\n    {\n        id: '2530004',\n        name: 'DiscountMargin',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description:\n            \"Discount Margin\\n\\n\\n                        The DM is the spread, expressed in basis points, added to the bond's reference rate that will equate the bond's cash flows to its current price.\",\n        tag: 2530,\n        type: 'int',\n        codeSet: 'RelativeValueTypeCodeSet',\n    },\n    {\n        id: '2530005',\n        name: 'ISpread',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description:\n            'Interpolated Spread\\n\\n\\n                        I-Spread or I-Curve spread. The spread, expressed in basis points, added to an interpolated point on the reference yield curve.',\n        tag: 2530,\n        type: 'int',\n        codeSet: 'RelativeValueTypeCodeSet',\n    },\n    {\n        id: '2530006',\n        name: 'OAS',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description:\n            \"Option Adjusted Spread\\n\\n\\n                        OAS or OA-spread. Used to evaluate bonds with embedded (callable or put-able) options. The option adjusted spread is a constant spread, expressed in basis points, applied to each point on the spot rate curve (usually Treasury spot rate curve) where the bond's cash flow is received, such that the price of the bond is the same as the present value of its cash flows.\",\n        tag: 2530,\n        type: 'int',\n        codeSet: 'RelativeValueTypeCodeSet',\n    },\n    {\n        id: '2530007',\n        name: 'GSpread',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description:\n            \"G-Spread\\n\\n\\n                        The spread difference between the bond's yield and the interpolated yield from the government reference yield curve, expressed in basis points. It represents the curve adjusted value of the bond by accounting for the difference between the bond's benchmark yield and the interpolated government reference yield at the same point on the curve that matches the bond's remaining life.\",\n        tag: 2530,\n        type: 'int',\n        codeSet: 'RelativeValueTypeCodeSet',\n    },\n    {\n        id: '2530008',\n        name: 'CDSBasis',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description:\n            'CDS Basis\\n\\n\\n                        Also referred to as CDS Bond Basis. The CDS basis is the spread difference between the CDS spread or premium for the obligor and the Z-Spread or the ASW spread of the same reference or obligor bond, expressed in basis points.',\n        tag: 2530,\n        type: 'int',\n        codeSet: 'RelativeValueTypeCodeSet',\n    },\n    {\n        id: '2530009',\n        name: 'CDSInterpolatedBasis',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description:\n            \"CDS Interpolated Basis\\n\\n\\n                        Also referred to as CDS Bond Interpolated Basis. The CDS interpolated basis is the difference between the reference or obligor bond's Z Spread or ASW spread and an interpolated point on CDS curve that matches the maturity of the reference bond, expressed in basis points.\",\n        tag: 2530,\n        type: 'int',\n        codeSet: 'RelativeValueTypeCodeSet',\n    },\n    {\n        id: '2530010',\n        name: 'DV01',\n        value: '10',\n        sort: 10,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description:\n            'DV01\\n\\n\\n                        The currency value change in response to a move of one basis point in the yield of the instrument. Typically used as a measure of interest rate risk of a single bond. Also known as \"basis point value\" or BPV.',\n        tag: 2530,\n        type: 'int',\n        codeSet: 'RelativeValueTypeCodeSet',\n    },\n    {\n        id: '2530011',\n        name: 'PV01',\n        value: '11',\n        sort: 11,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description:\n            'PV01\\n\\n\\n                        The present value change in response to a move of one basis point all along the yield curve used for the instrument. In certain cases the DV01 and PV01 values may be the same.',\n        tag: 2530,\n        type: 'int',\n        codeSet: 'RelativeValueTypeCodeSet',\n    },\n    {\n        id: '2530012',\n        name: 'CS01',\n        value: '12',\n        sort: 12,\n        added: 'FIX.Latest',\n        addedEP: '272',\n        description:\n            'CS01\\n\\n\\n                        Credit spread sensitivity. Represents the change in value of a (CDS) transaction for a one basis point change in the credit spread.',\n        tag: 2530,\n        type: 'int',\n        codeSet: 'RelativeValueTypeCodeSet',\n    },\n    {\n        id: '2532001',\n        name: 'Bid',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description: 'Bid',\n        tag: 2532,\n        type: 'int',\n        codeSet: 'RelativeValueSideCodeSet',\n    },\n    {\n        id: '2532002',\n        name: 'Mid',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description: 'Mid',\n        tag: 2532,\n        type: 'int',\n        codeSet: 'RelativeValueSideCodeSet',\n    },\n    {\n        id: '2532003',\n        name: 'Offer',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description: 'Offer',\n        tag: 2532,\n        type: 'int',\n        codeSet: 'RelativeValueSideCodeSet',\n    },\n    {\n        id: '2535001',\n        name: 'StartInstrumentRefData',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Start of instrument reference data',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2535002',\n        name: 'EndInstrumentRefData',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'End of instrument reference data',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2535003',\n        name: 'StartOffMarketTrades',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Start of off-market trades',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2535004',\n        name: 'EndOffMarketTrades',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'End of off-market trades',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2535005',\n        name: 'StartOrderBookTrades',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Start of order book trades',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2535006',\n        name: 'EndOrderBookTrades',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'End of order book trades',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2535007',\n        name: 'StartOpenInterest',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Start of open interest',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2535008',\n        name: 'EndOpenInterest',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'End of open interest',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2535009',\n        name: 'StartSettlementPrices',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Start of settlement prices',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2535010',\n        name: 'EndSettlementPrices',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'End of settlement prices',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2535011',\n        name: 'StartStatsRefData',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Start of statistics reference data',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2535012',\n        name: 'EndStatsRefData',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'End of statistics reference data',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2535013',\n        name: 'StartStatistics',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Start of statistics',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2535014',\n        name: 'EndStatistics',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'End of statistics',\n        tag: 2535,\n        type: 'int',\n        codeSet: 'MDReportEventCodeSet',\n    },\n    {\n        id: '2542001',\n        name: 'Active',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Active\\n\\n\\n                        Market segment is active, i.e. trading is possible.',\n        tag: 2542,\n        type: 'int',\n        codeSet: 'MarketSegmentStatusCodeSet',\n    },\n    {\n        id: '2542002',\n        name: 'Inactive',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Inactive\\n\\n\\n                        Market segment has previously been active and is now inactive.',\n        tag: 2542,\n        type: 'int',\n        codeSet: 'MarketSegmentStatusCodeSet',\n    },\n    {\n        id: '2542003',\n        name: 'Published',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Published\\n\\n\\n                        Market segment information is provided prior to its first activation.',\n        tag: 2542,\n        type: 'int',\n        codeSet: 'MarketSegmentStatusCodeSet',\n    },\n    {\n        id: '2543001',\n        name: 'Pool',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Pool\\n\\n\\n                        Used when multiple market segments are being grouped or pooled together.',\n        tag: 2543,\n        type: 'int',\n        codeSet: 'MarketSegmentTypeCodeSet',\n    },\n    {\n        id: '2543002',\n        name: 'Retail',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Retail',\n        tag: 2543,\n        type: 'int',\n        codeSet: 'MarketSegmentTypeCodeSet',\n    },\n    {\n        id: '2543003',\n        name: 'Wholesale',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Wholesale',\n        tag: 2543,\n        type: 'int',\n        codeSet: 'MarketSegmentTypeCodeSet',\n    },\n    {\n        id: '2544001',\n        name: 'InterProductSpread',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Inter-product spread\\n\\n\\n                        Complex instruments which consist of leg instruments from different products, e.g. a location spread which include country-specific products in each leg instrument.',\n        tag: 2544,\n        type: 'int',\n        codeSet: 'MarketSegmentSubTypeCodeSet',\n    },\n    {\n        id: '2547001',\n        name: 'MarketSegmentPoolMember',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Market segment pool member\\n\\n\\n                        Market segments represent constituents of the pool identified.',\n        tag: 2547,\n        type: 'int',\n        codeSet: 'MarketSegmentRelationshipCodeSet',\n    },\n    {\n        id: '2547002',\n        name: 'RetailSegment',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Retail segment\\n\\n\\n                        Retail segment related to wholesale segment identified.',\n        tag: 2547,\n        type: 'int',\n        codeSet: 'MarketSegmentRelationshipCodeSet',\n    },\n    {\n        id: '2547003',\n        name: 'WholesaleSegment',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Wholesale segment\\n\\n\\n                        Wholesale segment related to retail segment identified.',\n        tag: 2547,\n        type: 'int',\n        codeSet: 'MarketSegmentRelationshipCodeSet',\n    },\n    {\n        id: '2559001',\n        name: 'No',\n        value: 'N',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Single sided quotes are not allowed',\n        tag: 2559,\n        type: 'Boolean',\n        codeSet: 'QuoteSideIndicatorCodeSet',\n    },\n    {\n        id: '2559002',\n        name: 'Yes',\n        value: 'Y',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Single sided quotes are allowed',\n        tag: 2559,\n        type: 'Boolean',\n        codeSet: 'QuoteSideIndicatorCodeSet',\n    },\n    {\n        id: '2570001',\n        name: 'NoPriority',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'No priority',\n        tag: 2570,\n        type: 'int',\n        codeSet: 'CustomerPriorityCodeSet',\n    },\n    {\n        id: '2570002',\n        name: 'UnconditionalPriority',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Unconditional priority',\n        tag: 2570,\n        type: 'int',\n        codeSet: 'CustomerPriorityCodeSet',\n    },\n    {\n        id: '2579001',\n        name: 'Shares',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Shares',\n        tag: 2579,\n        type: 'int',\n        codeSet: 'SettlSubMethodCodeSet',\n    },\n    {\n        id: '2579002',\n        name: 'Derivatives',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Derivatives',\n        tag: 2579,\n        type: 'int',\n        codeSet: 'SettlSubMethodCodeSet',\n    },\n    {\n        id: '2579003',\n        name: 'PaymentVsPayment',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Payment vs payment',\n        tag: 2579,\n        type: 'int',\n        codeSet: 'SettlSubMethodCodeSet',\n    },\n    {\n        id: '2579004',\n        name: 'Notional',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Notional',\n        tag: 2579,\n        type: 'int',\n        codeSet: 'SettlSubMethodCodeSet',\n    },\n    {\n        id: '2579005',\n        name: 'Cascade',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Cascade',\n        tag: 2579,\n        type: 'int',\n        codeSet: 'SettlSubMethodCodeSet',\n    },\n    {\n        id: '2579006',\n        name: 'Repurchase',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Repurchase',\n        tag: 2579,\n        type: 'int',\n        codeSet: 'SettlSubMethodCodeSet',\n    },\n    {\n        id: '2579007',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Other',\n        tag: 2579,\n        type: 'int',\n        codeSet: 'SettlSubMethodCodeSet',\n    },\n    {\n        id: '2592001',\n        name: 'Automatic',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Automatic (default)',\n        tag: 2592,\n        type: 'int',\n        codeSet: 'CalculationMethodCodeSet',\n    },\n    {\n        id: '2592002',\n        name: 'Manual',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Manual',\n        tag: 2592,\n        type: 'int',\n        codeSet: 'CalculationMethodCodeSet',\n    },\n    {\n        id: '2594001',\n        name: 'AggregatedOrder',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description:\n            'Aggregated order\\n\\n\\n                        In the context of ESMA RTS 24 Article 2(3), when OrderAttributeValue(2595)=Y, it signifies that the order consists of several orders aggregated together. This maps to ESMA RTS value \"AGGR\".',\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594002',\n        name: 'PendingAllocation',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Order pending allocation\\n\\n\\n                        In the context of ESMA RTS 24 Article 2(2), when OrderAttributeValue(2595)=Y, it signifies that the order submitter \"is authorized under the legislation of a Member State to allocate an order to its client following submission of the order to the trading venue and has not yet allocated the order to its client at the time of the submission of the order\". This maps to ESMA RTS value \"PNAL\".',\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594003',\n        name: 'LiquidityProvisionActivityOrder',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description:\n            'Liquidity provision activity order\\n\\n\\n                        In the context of ESMA RTS 24 Article 3, when OrderAttributeValue(2595)=Y, it signifies that the order was submitted \"as part of a market making strategy pursuant to Articles 17 and 18 of Directive 2014/65/EU, or is submitted as part of another activity in accordance with Article 3\" (of RTS 24).',\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594004',\n        name: 'RiskReductionOrder',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description:\n            'Risk reduction order\\n\\n\\n                        In the context of ESMA RTS 22 Article 4(2)(i), when OrderAttributeValue(2595)=Y, it signifies that the commodity derivative order is a transaction \"to reduce risk in an objectively measurable way in accordance with Article 57 of Directive 2014/65/EU\".',\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594005',\n        name: 'AlgorithmicOrder',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description:\n            'Algorithmic order\\n\\n\\n                        When OrderAttributeValue(2595)=Y, it signifies the order submitted to the dealer/investment firm resulted from an algorithm.',\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594006',\n        name: 'SystematicInternaliserOrder',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        updated: 'FIX.Latest',\n        updatedEP: '289',\n        description:\n            'Authorised reporter order\\n\\n\\n                        When OrderAttributeValue(2595)=Y, it signifies the order is submitted by an authorised reporter who is responsible for reporting trades resulting from the order. This may be a systematic internaliser.',\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594007',\n        name: 'AllExecutionsSubmittedToAPA',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        description:\n            \"All executions for the order are to be submitted to an APA\\n\\n\\n                        All executions from this order that may need to be trade reported by the order submitter under MiFID II rules will be submitted by the order receiver on the submitter's behalf to the Approved Publication Arrangement (APA) facility specified in OrderAttributeValue(2595). ESMA RTS 1.\",\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594008',\n        name: 'OrderExecutionInstructedByClient',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        description:\n            \"Order execution instructed by client\\n\\n\\n                        In the context of ESMA RTS 22, Annex I, Table 2, Field 59, when OrderAttributeValue(2595)=Y, it signifies that the execution (e.g. the details of the trade including the venue of execution) was instructed by a client or by another person from outside the Investment Firm but within the same group (Field 59 'CLIENT' in ESMA 2016-1452 Guidelines).\",\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594009',\n        name: 'LargeInScale',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Large in scale order\\n\\n\\n                        In the context of MiFIR Article 4(1)(c) and Article 9(1)(a), when OrderAttributeValue(2595)=Y, it signifies that the order size is large in scale compared to normal market size.',\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594010',\n        name: 'Hidden',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Hidden order\\n\\n\\n                        In the context of MiFIR Article 4(1)(d) and Article 9(1)(a), when OrderAttributeValue(2595)=Y, it signifies that the order is held in an order management facility of the trading venue pending disclosure.',\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594011',\n        name: 'SubjectToEUSTO',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '250',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '255',\n        description:\n            \"Subject to EU share trading obligation (STO)\\n\\n\\n                        This attribute is mutually exclusive with OrderAttributeType(2594)=14 (Exempt from STO), but not mutually exclusive with OrderAttributeType(2594)=11 (Subject to UK STO).\\n\\n\\n                        In the context of the trading obligation for shares (STO) under ESMA's Article 23 of MiFIR, it signifies that the order is subject to the rules defined by ESMA.\",\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594012',\n        name: 'SubjectToUKSTO',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '250',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '255',\n        description:\n            \"Subject to UK share trading obligation (STO)\\n\\n\\n                        This attribute is mutually exclusive with OrderAttributeType(2594)=14 (Exempt from STO), but not mutually exclusive with OrderAttributeType(2594)=10 (Subject to EU STO).\\n\\n\\n                        In the context of the trading obligation for shares (STO) under ESMA's Article 23 of MiFIR, it signifies that the order is subject to UK rules defined by the FCA.\",\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594013',\n        name: 'RepresentativeOrder',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Representative order\\n\\n\\n                        Order was originated to represent an order received by the broker from a customer/client.',\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594014',\n        name: 'LinkageType',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Linkage type\\n\\n\\n                        Order is subject to regulatory linkage requirements related to customer/client orders. Can be used for US CAT order and trade level linkages between customer/client orders and representative orders.',\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2594015',\n        name: 'ExemptFromSTO',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '255',\n        description:\n            \"Exempt from share trading obligation (STO)\\n\\n\\n                        This attribute is mutually exclusive with OrderAttributeType(2594)=10 = (Subject to EU STO) and OrderAttributeType(2594)=11 = (Subject to UK STO). It can be used to override standing instructions for a trading obligation for shares (STO). It overrides the standing instructions in their entirety.\\n\\n\\n                        In the context of STO under ESMA's Article 23 of MiFIR, it signifies that the order is exempt from any share trading obligation.\",\n        tag: 2594,\n        type: 'int',\n        codeSet: 'OrderAttributeTypeCodeSet',\n    },\n    {\n        id: '2599001',\n        name: 'Close',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Close\\n\\n\\n                        In respect of the \"early final valuation date\", the provisions for \"future present value close\" shall apply.',\n        tag: 2599,\n        type: 'int',\n        codeSet: 'ComplexEventPVFinalPriceElectionFallbackCodeSet',\n    },\n    {\n        id: '2599002',\n        name: 'HedgeElection',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Hedge election\\n\\n\\n                        In respect of the \"early final valuation date\", the provisions for \"future present value hedge execution\" shall apply.',\n        tag: 2599,\n        type: 'int',\n        codeSet: 'ComplexEventPVFinalPriceElectionFallbackCodeSet',\n    },\n    {\n        id: '2601001',\n        name: 'Bid',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Bid',\n        tag: 2601,\n        type: 'int',\n        codeSet: 'StrikeIndexQuoteCodeSet',\n    },\n    {\n        id: '2601002',\n        name: 'Mid',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Mid',\n        tag: 2601,\n        type: 'int',\n        codeSet: 'StrikeIndexQuoteCodeSet',\n    },\n    {\n        id: '2601003',\n        name: 'Offer',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Offer',\n        tag: 2601,\n        type: 'int',\n        codeSet: 'StrikeIndexQuoteCodeSet',\n    },\n    {\n        id: '2602001',\n        name: 'CalculationAgent',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Calculation agent\\n\\n\\n                        The Calculation Agent has the right to adjust the terms of the trade following a corporate action.',\n        tag: 2602,\n        type: 'int',\n        codeSet: 'ExtraordinaryEventAdjustmentMethodCodeSet',\n    },\n    {\n        id: '2602002',\n        name: 'OptionsExchange',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Options exchange\\n\\n\\n                        The trade will be adjusted in accordance with any adjustment made by the exchange on which options on the underlying are listed.',\n        tag: 2602,\n        type: 'int',\n        codeSet: 'ExtraordinaryEventAdjustmentMethodCodeSet',\n    },\n    {\n        id: '2617001',\n        name: 'Execution',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Execution\\n\\n\\n                        The adjustments to the number of units are governed by an execution clause.',\n        tag: 2617,\n        type: 'int',\n        codeSet: 'UnderlyingNotionalAdjustmentsCodeSet',\n    },\n    {\n        id: '2617002',\n        name: 'PortfolioRebalancing',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Portfolio rebalancing\\n\\n\\n                        The adjustments to the number of units are governed by a portfolio rebalancing clause.',\n        tag: 2617,\n        type: 'int',\n        codeSet: 'UnderlyingNotionalAdjustmentsCodeSet',\n    },\n    {\n        id: '2617003',\n        name: 'Standard',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Standrd\\n\\n\\n                        The adjustments to the number of units are not governed by any specific clause.',\n        tag: 2617,\n        type: 'int',\n        codeSet: 'UnderlyingNotionalAdjustmentsCodeSet',\n    },\n    {\n        id: '2632001',\n        name: 'MarketValuation',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '197',\n        description: 'Market valuation (the default)',\n        tag: 2632,\n        type: 'int',\n        codeSet: 'CollateralAmountTypeCodeSet',\n    },\n    {\n        id: '2632002',\n        name: 'PortfolioValue',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '197',\n        description: 'Portfolio value before processing pledge request',\n        tag: 2632,\n        type: 'int',\n        codeSet: 'CollateralAmountTypeCodeSet',\n    },\n    {\n        id: '2632003',\n        name: 'ValueConfirmed',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '197',\n        description: 'Value confirmed as \"locked-up\" for processing a pledge request',\n        tag: 2632,\n        type: 'int',\n        codeSet: 'CollateralAmountTypeCodeSet',\n    },\n    {\n        id: '2632004',\n        name: 'CollateralCreditValue',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '197',\n        description: 'Credit value of collateral at CCP processing a pledge request',\n        tag: 2632,\n        type: 'int',\n        codeSet: 'CollateralAmountTypeCodeSet',\n    },\n    {\n        id: '2632005',\n        name: 'AdditionalCollateralValue',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description:\n            'Additional collateral value\\n\\n\\n                        Additional collateral deposited by the collateral provider at trade or post-trade. CollateralPercentOverage(2690) gives the overage percent',\n        tag: 2632,\n        type: 'int',\n        codeSet: 'CollateralAmountTypeCodeSet',\n    },\n    {\n        id: '2632006',\n        name: 'EstimatedMarketValuation',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Estimated market valuation\\n\\n\\n                        Estimated market valuation of collateral. In the context of EU SFTR this may be used for value of re-use of collateral.',\n        tag: 2632,\n        type: 'int',\n        codeSet: 'CollateralAmountTypeCodeSet',\n    },\n    {\n        id: '2641001',\n        name: 'Unspecified',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Unspecified',\n        tag: 2641,\n        type: 'int',\n        codeSet: 'CommissionAmountTypeCodeSet',\n    },\n    {\n        id: '2641002',\n        name: 'Acceptance',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: \"Acceptance\\n\\n\\n                        The bank's charge for issuing a Letter of Credit.\",\n        tag: 2641,\n        type: 'int',\n        codeSet: 'CommissionAmountTypeCodeSet',\n    },\n    {\n        id: '2641003',\n        name: 'Broker',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: \"Broker\\n\\n\\n                        The executing broker's commission.\",\n        tag: 2641,\n        type: 'int',\n        codeSet: 'CommissionAmountTypeCodeSet',\n    },\n    {\n        id: '2641004',\n        name: 'ClearingBroker',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: \"Clearing broker\\n\\n\\n                        The clearing broker's commission.\",\n        tag: 2641,\n        type: 'int',\n        codeSet: 'CommissionAmountTypeCodeSet',\n    },\n    {\n        id: '2641005',\n        name: 'Retail',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Retail\\n\\n\\n                        Commission charged by or related to retail sales.',\n        tag: 2641,\n        type: 'int',\n        codeSet: 'CommissionAmountTypeCodeSet',\n    },\n    {\n        id: '2641006',\n        name: 'SalesCommission',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Sales commission\\n\\n\\n                        The commission charged by the sales desk.',\n        tag: 2641,\n        type: 'int',\n        codeSet: 'CommissionAmountTypeCodeSet',\n    },\n    {\n        id: '2641007',\n        name: 'LocalCommission',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description:\n            'Local commission\\n\\n\\n                        Commission paid to local broker in a cross-border transaction.',\n        tag: 2641,\n        type: 'int',\n        codeSet: 'CommissionAmountTypeCodeSet',\n    },\n    {\n        id: '2641008',\n        name: 'ResearchPayment',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '233',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '240',\n        description: 'Research payment',\n        tag: 2641,\n        type: 'int',\n        codeSet: 'CommissionAmountTypeCodeSet',\n    },\n    {\n        id: '2667001',\n        name: 'NonAlgorithmicTrade',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description: 'Non-algorithmic trade',\n        tag: 2667,\n        type: 'int',\n        codeSet: 'AlgorithmicTradeIndicatorCodeSet',\n    },\n    {\n        id: '2667002',\n        name: 'AlgorithmicTrade',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description:\n            'Algorithmic trade\\n\\n\\n                        In the context of ESMA MiFID II, a trade has to be flagged as \"algorithmic\" if at least one of the matched orders was submitted by a trading algorithm. See Directive 2014/65/EU Article 4(1)(39).',\n        tag: 2667,\n        type: 'int',\n        codeSet: 'AlgorithmicTradeIndicatorCodeSet',\n    },\n    {\n        id: '2669001',\n        name: 'PreTradeTransparencyWaiver',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description:\n            'Pre-trade transparency waiver\\n\\n\\n                        There are allowable waivers from the obligation to make public current bid/offer prices and trading depth. In the context of MiFIR, see Article 3 and Article 4.',\n        tag: 2669,\n        type: 'int',\n        codeSet: 'TrdRegPublicationTypeCodeSet',\n    },\n    {\n        id: '2669002',\n        name: 'PostTradeDeferral',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description:\n            'Post-trade deferral\\n\\n\\n                        There are allowable deferrals for the post-trade publication of trade transactions. In the context of MiFIR, see Article 7(1).',\n        tag: 2669,\n        type: 'int',\n        codeSet: 'TrdRegPublicationTypeCodeSet',\n    },\n    {\n        id: '2669003',\n        name: 'ExemptFromPublication',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        description:\n            'Exempt from publication\\n\\n\\n                        There are allowable exemptions for the post-trade publication of trade transactions. In the context of ESMA exemptions are specified in RTS 22 Annex I, Table 2, Field 65 and RTS 2 Article 14(1) and Article 15(1).',\n        tag: 2669,\n        type: 'int',\n        codeSet: 'TrdRegPublicationTypeCodeSet',\n    },\n    {\n        id: '2669004',\n        name: 'OrderLevelPublicationToSubscribers',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        updated: 'FIX.Latest',\n        updatedEP: '264',\n        description:\n            'Order level publication to subscribers\\n\\n\\n                        Individual orders are displayed outside of the execution venue but only to subscribers. In the context of US CAT this can be used by Alternative Trading Systems (ATSs) to provide additional information related to price distribution.',\n        tag: 2669,\n        type: 'int',\n        codeSet: 'TrdRegPublicationTypeCodeSet',\n    },\n    {\n        id: '2669005',\n        name: 'PriceLevelPublicationToSubscribers',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        updated: 'FIX.Latest',\n        updatedEP: '264',\n        description:\n            'Price level publication to subscribers\\n\\n\\n                        Aggregated orders are displayed outside of the execution venue but only to subscribers. In the context of US CAT this can be used by Alternative Trading Systems (ATSs) to provide additional information related to price distribution.',\n        tag: 2669,\n        type: 'int',\n        codeSet: 'TrdRegPublicationTypeCodeSet',\n    },\n    {\n        id: '2669006',\n        name: 'OrderLevelPublicationToThePublic',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        updated: 'FIX.Latest',\n        updatedEP: '264',\n        description:\n            'Order level publication to the public\\n\\n\\n                        Individual orders are displayed outside of the execution venue via public quotation. In the context of US CAT this can be used by Alternative Trading Systems (ATSs) to provide additional information related to price distribution.',\n        tag: 2669,\n        type: 'int',\n        codeSet: 'TrdRegPublicationTypeCodeSet',\n    },\n    {\n        id: '2669007',\n        name: 'PublicationInternalToExecutionVenue',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        updated: 'FIX.Latest',\n        updatedEP: '264',\n        description:\n            'Publication internal to execution venue\\n\\n\\n                        Orders are not displayed outside of the execution venue. In the context of US CAT this can be used by Alternative Trading Systems (ATSs) to provide additional information related to price distribution.',\n        tag: 2669,\n        type: 'int',\n        codeSet: 'TrdRegPublicationTypeCodeSet',\n    },\n    {\n        id: '2670001',\n        name: 'NoBookOrderDueToAverageSpreadPrice',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'No preceding order in book as transaction price set within average spread of a liquid instrument\\n\\n\\n                        Per MiFIR Article 4(1)(b)(i) the obligation to place a public order can be waived for transactions of liquid instruments on \"systems that formalise negotiated transactions which are made within the current volume weighted spread reflected on the order book or the quotes of the market makers of the trading venue operating that system, subject to the conditions set out in Article 5\" of MiFIR on volume caps. \"Liquid markets\" as per MiFIR Article 2(17)(b) are assessed by the regulator for the purposes of MiFIR Articles 4, 5 and 14. For ESMA RTS 1, RTS 6 and RTS 22 this is the waiver \"NLIQ\" flag.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670002',\n        name: 'NoBookOrderDueToRefPrice',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '236',\n        description:\n            'No preceding order in book as transaction price depends on system-set reference price for an illiquid instrument\\n\\n\\n                        Per MiFIR Article 4(1)(b)(ii) the obligation to place a public order can be waived for \"negotiated transactions which are in an illiquid share, depositary receipt, ETF, certificate or other similar financial instrument that does not fall within the meaning of a liquid market, and are dealt within a percentage of a suitable reference price, being a percentage and a reference price set in advance by the system operator.\" For ESMA RTS 1, this is the \"OILQ\" flag.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670003',\n        name: 'NoBookOrderDueToOtherConditions',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'No preceding order in book as transaction price is for transaction subject to conditions other than current market price\\n\\n\\n                        Per MiFIR Article 4(1)(b)(iii), the obligation to place a public order can be waived in \"systems that formalise negotiated transactions which are subject to conditions other than the current market price of that financial instrument.\" For ESMA RTS1, RTS 6 and RTS 22 this is the waiver flag \"PRIC\".',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670004',\n        name: 'NoPublicPriceDueToRefPrice',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'No public price for preceding order as public reference price was used for matching orders\\n\\n\\n                        Per MiFIR Article 4(1)(a) the obligation to place a public order can be waived for \"systems matching orders based on a trading methodology by which the price of the financial instrument is derived from the trading venue where that financial instrument was first admitted to trading or the most relevant market in terms of liquidity, where that reference price is widely published and is regarded by market participants as a reliable reference price.\" For ESMA RTS 1, RTS 6 and RTS 22 this is the waiver flag \"RFPT\".',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670005',\n        name: 'NoPublicPriceDueToIlliquid',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'No public price quoted as instrument is illiquid\\n\\n\\n                        According to MiFIR Article 4(1)(b)(ii) and Article 14(1) the obligation to publish the quote prior to closing the trade may be waived if it was made in an illiquid instrument. However, according to MiFIR Article 14(1) and Article 18(2), systematic internalisers shall still disclose quotes to their clients upon request. This obligation may also be waived in case of bonds, structured finance products, emission allowances and derivatives. For ESMA RTS 1, RTS 2, RTS 6 and RTS 22 this is the waiver flag \"ILQD\".',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670006',\n        name: 'NoPublicPriceDueToOrderSize',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'No public price quoted due to \"Size\"\\n\\n\\n                        In the context of ESMA, as per MiFIR Article 4(1)(c) and Article 14(2), the systematic internaliser was not obliged to quote prior to closing the trade as the trade was above the standard market size. In accordance to MiFIR Article 9(1)(b) and Article 18(10), market operators, investment firms and systematic internalisers may be waived, in accordance to guidance from the Competent Authorities, from making public prices for derivative instruments which are above a side specific to the instrument. For ESMA RTS 1, RTS 2, RTS 6 and RTS 22 this is the waiver flag \"SIZE\".',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670007',\n        name: 'DeferralDueToLargeInScale',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'Deferral due to \"Large in Scale\"\\n\\n\\n                        Per MiFID Article 14, publication deferral is permitted if the transaction is large in scale compared to a standard market size, as set in RTS 1/Annex II (thresholds for \"large in scale\") and RTS 2/Annex III (\"LIS and SSTI thresholds\"). For ESMA RTS 1 and RTS 2, this is the \"LRGS\" flag.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670008',\n        name: 'DeferralDueToIlliquid',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description:\n            'Deferral due to \"Illiquid Instrument\"\\n\\n\\n                        Publication deferral is permitted if the transaction\\'s instrument is illiquid, as defined by regulator\\'s stipulation. For ESMA RTS 2, this is the \"ILQD\" flag.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670009',\n        name: 'DeferralDueToSizeSpecific',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'Deferral due to \"Size Specific\"\\n\\n\\n                        Per MiFIR Article 11, publication deferral is permitted if the transaction is greater than the stipulated \\'Size Specific to the financial instrument\\' threshold. For ESMA RTS 2, this is the \"SIZE\" flag.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670010',\n        name: 'NoPublicPriceDueToLargeInScale',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        description:\n            'No public price and/or size quoted as transaction is \"large in scale\"\\n\\n\\n                        In the context of ESMA, as per MiFIR Article 4(1)(c) and Article 9(1)(a), the trading venue was not obliged to quote prior to closing the trade as the order size was above normal market size.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670011',\n        name: 'NoPublicPriceSizeDueToOrderHidden',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'No public price and/or size quoted due to order being hidden\\n\\n\\n                        In the context of ESMA, as per MiFIR Article 4(1)(d) and Article 9(1)(a), a transaction arising from an order that was not fully pre-trade transparent due to all or part of it being held in a trading venue order management facility, such as a reserve order.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670012',\n        name: 'ExemptedDueToSecuritiesFinancingTransaction',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        description:\n            'Exempted due to securities financing transaction\\n\\n\\n                        Per ESMA RTS 22, Annex I, Table 2, Field 65: a transaction which \"falls within the scope of activity but is exempted from reporting under Securities Financing Transaction Regulation\".',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670013',\n        name: 'ExemptedDueToESCBPolicyTransaction',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        description:\n            'Exempted due to European System of Central Banks (ESCB) policy transaction\\n\\n\\n                        Per ESMA RTS2, Article 14(1), and Article 15(1): \"A transaction shall be considered to be entered into by a member of the European System of Central Banks (ESCB) in performance of monetary, foreign exchange and financial stability policy [is exempted from publication] \u2026 [The regulation] shall not apply to the following types of transaction entered into by a member of the ESCB for the performance of one of the tasks referred to in Article 14: transaction entered into for the management of its own funds; transaction entered into for administrative purposes or for the staff of the member of the ESCB which include transactions conducted in the capacity as administrator of a pension scheme for its staff; transactions entered into for its investment portfolio pursuant to obligations under national law.\"',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670014',\n        name: 'ExceptionDueToReportByPaper',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Exception due to report by paper\\n\\n\\n                        Incomplete report due to submission by paper (form). In the context of US CAT this is Form T pursuant to FINRA Trade Reporting Rules.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670015',\n        name: 'ExceptionDueToTradeExecutedWithNonReportingParty',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Exception due to trade with non-reporting party\\n\\n\\n                        Incomplete report due to counterparty of the reporting party being absent. In the context of US CAT this is when a trade was executed by a non-FINRA member and reported to the TRF by the FINRA member counterparty.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670016',\n        name: 'ExceptionDueToIntraFirmOrder',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Exception due to intra-firm order\\n\\n\\n                        Incomplete report due to intra\u2013firm order filled from firm\u2019s proprietary account.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670017',\n        name: 'ReportedOutsideReportingHours',\n        value: '16',\n        sort: 16,\n        added: 'FIX.Latest',\n        addedEP: '268',\n        description:\n            'Reported outside of reporting hours\\n\\n\\n                        In the context of ESMA, trades published after the trade reporting facility being used (e.g. APA for trades brought onto a trading venue) closes, will be reported the following business day and not flagged as deferred (as the MiFID deferral regime is not applicable). This value distinguishes these types of trades from trades executed (and published) on the same business day. It is recommended that this value be set by the trade reporting facility, e.g. APAs, (as opposed to publishing investment firms) to ensure the most accurate use of this value.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670018',\n        name: 'NoPublicPxDueToPreTradeWaiver',\n        value: '17',\n        sort: 17,\n        added: 'FIX.Latest',\n        addedEP: '283',\n        description:\n            'No public price quoted due to usage of a pre-trade transparency waiver\\n\\n\\n                        Per FCA policy statement PS23/4, this is the \"NETW\" flag for negotiated trades in accordance to MiFIR Article 4(1)(b).',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670019',\n        name: 'DeferralDueToMediumLiquidInstrument',\n        value: '18',\n        sort: 18,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Deferral due to medium liquid instrument\\n\\nIn the context of the EU Consolidated Tape, this is used for the post-trade deferral flag MLF1.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670020',\n        name: 'DeferralDueToMediumIlliquidInstrument',\n        value: '19',\n        sort: 19,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Deferral due to medium illiquid instrument\\n\\nIn the context of the EU Consolidated Tape, this is used for the post-trade deferral flag MIF2.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670021',\n        name: 'DeferralDueToLargeLiquidInstrument',\n        value: '20',\n        sort: 20,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Deferral due to large liquid instrument\\n\\nIn the context of the EU Consolidated Tape, this is used for the post-trade deferral flag LLF3.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670022',\n        name: 'DeferralDueToLargeIlliquidInstrument',\n        value: '21',\n        sort: 21,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Deferral due to large illiquid instrument\\n\\nIn the context of the EU Consolidated Tape, this is used for the post-trade deferral flag LIF4.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670023',\n        name: 'DeferralDueToVeryLargeLiquidInstrument',\n        value: '22',\n        sort: 22,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Deferral due to very large liquid instrument\\n\\nIn the context of the EU Consolidated Tape, this is used for the post-trade deferral flag VLF5.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670024',\n        name: 'DeferralDueToVeryLargeIlliquidInstrument',\n        value: '23',\n        sort: 23,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Deferral due to very large illiquid instrument\\n\\nIn the context of the EU Consolidated Tape, this is used for the post-trade deferral flag VIF5.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2670025',\n        name: 'DeferralDueToAssetClass',\n        value: '24',\n        sort: 24,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Deferral due to asset class\\n\\nIn the context of the EU Consolidated Tape, this is used for the post-trade deferral flag DEFF.',\n        tag: 2670,\n        type: 'int',\n        codeSet: 'TrdRegPublicationReasonCodeSet',\n    },\n    {\n        id: '2675001',\n        name: 'None',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'No special reason (default)',\n        tag: 2675,\n        type: 'int',\n        codeSet: 'MassActionReasonCodeSet',\n    },\n    {\n        id: '2675002',\n        name: 'TradingRiskControl',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Trading risk control\\n\\n\\n                        General violation of trading rules. Can be used if specific reason is unavailable or must not be disclosed.',\n        tag: 2675,\n        type: 'int',\n        codeSet: 'MassActionReasonCodeSet',\n    },\n    {\n        id: '2675003',\n        name: 'ClearingRiskControl',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Clearing risk control\\n\\n\\n                        General violation of clearing rules. Can be used if specific reason is unavailable or must not be disclosed.',\n        tag: 2675,\n        type: 'int',\n        codeSet: 'MassActionReasonCodeSet',\n    },\n    {\n        id: '2675004',\n        name: 'MarketMakerProtection',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Market maker protection\\n\\n\\n                        Specific action taken to prevent further executions for a market maker.',\n        tag: 2675,\n        type: 'int',\n        codeSet: 'MassActionReasonCodeSet',\n    },\n    {\n        id: '2675005',\n        name: 'StopTrading',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Stop trading\\n\\n\\n                        Specific action taken in conjunction with the prevention of further trading. Scope can be defined with TargetParties component.',\n        tag: 2675,\n        type: 'int',\n        codeSet: 'MassActionReasonCodeSet',\n    },\n    {\n        id: '2675006',\n        name: 'EmergencyAction',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Emergency action\\n\\n\\n                        Specific action taken due to an emergency condition. Scope can be defined with TargetParties component.',\n        tag: 2675,\n        type: 'int',\n        codeSet: 'MassActionReasonCodeSet',\n    },\n    {\n        id: '2675007',\n        name: 'SessionLossLogout',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Session loss or logout\\n\\n\\n                        Protection of trader or firm after having lost connectivity.',\n        tag: 2675,\n        type: 'int',\n        codeSet: 'MassActionReasonCodeSet',\n    },\n    {\n        id: '2675008',\n        name: 'DuplicateLogin',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'Duplicate login\\n\\n\\n                        Trader only allowed to login once.',\n        tag: 2675,\n        type: 'int',\n        codeSet: 'MassActionReasonCodeSet',\n    },\n    {\n        id: '2675009',\n        name: 'ProductNotTraded',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Product not traded\\n\\n\\n                        Product not available for trading, e.g. in a halted state.',\n        tag: 2675,\n        type: 'int',\n        codeSet: 'MassActionReasonCodeSet',\n    },\n    {\n        id: '2675010',\n        name: 'InstrumentNotTraded',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Instrument not traded\\n\\n\\n                        Instrument not available for trading, e.g. due to intra-day expiration.',\n        tag: 2675,\n        type: 'int',\n        codeSet: 'MassActionReasonCodeSet',\n    },\n    {\n        id: '2675011',\n        name: 'CompleInstrumentDeleted',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Complex instrument deleted\\n\\n\\n                        Removal of complex instrument, e.g. due to expiry, leading to mass action on open orders.',\n        tag: 2675,\n        type: 'int',\n        codeSet: 'MassActionReasonCodeSet',\n    },\n    {\n        id: '2675012',\n        name: 'CircuitBreakerActivated',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Circuit breaker activated\\n\\n\\n                        Trading interruption leading to mass action on open orders.',\n        tag: 2675,\n        type: 'int',\n        codeSet: 'MassActionReasonCodeSet',\n    },\n    {\n        id: '2675013',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'Other',\n        tag: 2675,\n        type: 'int',\n        codeSet: 'MassActionReasonCodeSet',\n    },\n    {\n        id: '2677001',\n        name: 'OrderSuspended',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'Order suspended',\n        tag: 2677,\n        type: 'int',\n        codeSet: 'NotAffectedReasonCodeSet',\n    },\n    {\n        id: '2677002',\n        name: 'InstrumentSuspended',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'Instrument suspended',\n        tag: 2677,\n        type: 'int',\n        codeSet: 'NotAffectedReasonCodeSet',\n    },\n    {\n        id: '2679001',\n        name: 'NoChange',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'No change of ownership (default)',\n        tag: 2679,\n        type: 'int',\n        codeSet: 'OrderOwnershipIndicatorCodeSet',\n    },\n    {\n        id: '2679002',\n        name: 'ExecutingPartyChange',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Change of ownership to executing party\\n\\n\\n                        Executing party can be given either implicitly via session attributes or explicitly via Parties component. The party taking over ownership must also be the one submitting the request.',\n        tag: 2679,\n        type: 'int',\n        codeSet: 'OrderOwnershipIndicatorCodeSet',\n    },\n    {\n        id: '2679003',\n        name: 'EnteringPartyChange',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Change of ownership to entering party\\n\\n\\n                        Entering party can be given either implicitly via session attributes or explicitly via Parties component. The party taking over ownership must also be the one submitting the request.',\n        tag: 2679,\n        type: 'int',\n        codeSet: 'OrderOwnershipIndicatorCodeSet',\n    },\n    {\n        id: '2679004',\n        name: 'SpecifiedPartyChange',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Change of ownership to specified party\\n\\n\\n                        Ownership is transferred by a third party from/to the parties specified via Parties component together with PartyRoleQualifier(2376) = Current(18) and New(19).',\n        tag: 2679,\n        type: 'int',\n        codeSet: 'OrderOwnershipIndicatorCodeSet',\n    },\n    {\n        id: '2681001',\n        name: 'StandardITM',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '224',\n        description:\n            \"Standard in-the-money\\n\\n\\n                        The option's strike price is less than the underlying settlement price for a call or greater than the underlying settlement price for a put.\",\n        tag: 2681,\n        type: 'int',\n        codeSet: 'InTheMoneyConditionCodeSet',\n    },\n    {\n        id: '2681002',\n        name: 'ATMITM',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '224',\n        description:\n            \"At-the-money is in-the-money\\n\\n\\n                        The option's strike price of either the put or call is equal to the underlying settlement price in addition to standard in-the-money behavior.\",\n        tag: 2681,\n        type: 'int',\n        codeSet: 'InTheMoneyConditionCodeSet',\n    },\n    {\n        id: '2681003',\n        name: 'ATMCallITM',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '224',\n        description:\n            \"At-the-money call is in-the-money\\n\\n\\n                        The call option's strike price is equal to the underlying settlement price in addition to standard in-the-money behavior.\",\n        tag: 2681,\n        type: 'int',\n        codeSet: 'InTheMoneyConditionCodeSet',\n    },\n    {\n        id: '2681004',\n        name: 'ATMPutITM',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '224',\n        description:\n            \"At-the-money put is in-the-money\\n\\n\\n                        The put option's strike price is equal to the underlying settlement price in addition to standard in-the-money behavior.\",\n        tag: 2681,\n        type: 'int',\n        codeSet: 'InTheMoneyConditionCodeSet',\n    },\n    {\n        id: '2704001',\n        name: 'NoRestriction',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        description:\n            'No restriction\\n\\n\\n                        May be used for MiFID II to indicate no restriction on where the order is executed.',\n        tag: 2704,\n        type: 'int',\n        codeSet: 'ExDestinationTypeCodeSet',\n    },\n    {\n        id: '2704002',\n        name: 'TradedOnlyOnTradingVenue',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        description:\n            'Can be traded only on a trading venue\\n\\n\\n                        May be used for MiFID II to indicate the order can only be executed on a trading venue.',\n        tag: 2704,\n        type: 'int',\n        codeSet: 'ExDestinationTypeCodeSet',\n    },\n    {\n        id: '2704003',\n        name: 'TradedOnlyOnSI',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        description:\n            'Can be traded only on a Systematic Internaliser (SI)\\n\\n\\n                        May be used for MiFID II to indicate the order can only be executed on a Systematic Internaliser.',\n        tag: 2704,\n        type: 'int',\n        codeSet: 'ExDestinationTypeCodeSet',\n    },\n    {\n        id: '2704004',\n        name: 'TradedOnTradingVenueOrSI',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        description:\n            'Can be traded on a trading venue or Systematic internaliser (SI)\\n\\n\\n                        May be used for MiFID II to indicate the order can be executed on either a trading venue or a Systematic Internaliser.',\n        tag: 2704,\n        type: 'int',\n        codeSet: 'ExDestinationTypeCodeSet',\n    },\n    {\n        id: '2705001',\n        name: 'Normal',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description:\n            'Normal\\n\\n\\n                        The condition of the market in the absence of \"stressed\" or \"exceptional\" conditions.',\n        tag: 2705,\n        type: 'int',\n        codeSet: 'MarketConditionCodeSet',\n    },\n    {\n        id: '2705002',\n        name: 'Stressed',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description:\n            'Stressed\\n\\n\\n                        In the context of ESMA RTS 8 Article 6: Trading venues shall set out the parameters to identify stressed market conditions in terms of significant short-term changes of price and volume. Trading venues shall consider the resumption of trading after volatility interruptions as stressed market conditions.',\n        tag: 2705,\n        type: 'int',\n        codeSet: 'MarketConditionCodeSet',\n    },\n    {\n        id: '2705003',\n        name: 'Exceptional',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description:\n            'Exceptional\\n\\n\\n                        In the context of ESMA RTS 8 Article 3: Due to (a) a situation of extreme volatility; (b) war, industrial action, civil unrest or cyber sabotage; (c) disorderly trading conditions, e.g. due to technical issues; (d) unavailability of risk management facilities.',\n        tag: 2705,\n        type: 'int',\n        codeSet: 'MarketConditionCodeSet',\n    },\n    {\n        id: '2707001',\n        name: 'QuoteAboveStandardMarketSize',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description:\n            'Quote is above standard market size\\n\\n\\n                        In the context of ESMA pre-trade transparency under MiFIR to make prices public, the quote size is above standard market size, therefore the price is not made public. Applicable for cash equities instruments.',\n        tag: 2707,\n        type: 'int',\n        codeSet: 'QuoteAttributeTypeCodeSet',\n    },\n    {\n        id: '2707002',\n        name: 'QuoteAboveSpecificInstrumentSize',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description:\n            'Quote is above size specific to the instrument\\n\\n\\n                        In the context of ESMA pre-trade transparency under MiFID to make public prices, the quote size is above the size specific to the instrument, therefore the price is not or will not be made public. Applicable for non-cash equities instruments.',\n        tag: 2707,\n        type: 'int',\n        codeSet: 'QuoteAttributeTypeCodeSet',\n    },\n    {\n        id: '2707003',\n        name: 'QuoteApplicableForLiquidtyProvisionActivity',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description:\n            'Quote applicable for liquidity provision activity\\n\\n\\n                        In the context of ESMA RTS 24 Article 3, when QuoteAttributeValue(2708)=Y, it signifies that the quote was submitted \"as part of a market making strategy pursuant to Articles 17 and 18 of Directive 2014/65/EU, or is submitted as part of another activity in accordance with Article 3\" (of RTS 24).',\n        tag: 2707,\n        type: 'int',\n        codeSet: 'QuoteAttributeTypeCodeSet',\n    },\n    {\n        id: '2707004',\n        name: 'QuoteIssuerStatus',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Quote issuer status\\n\\n\\n                        Indicate whether quote issuer is available or not. Can be used in the context of US CAT to indicate if a market maker\u2019s quote is open (O) or closed (C) whenever the quote is sent to an inter-dealer quotation system.',\n        tag: 2707,\n        type: 'int',\n        codeSet: 'QuoteAttributeTypeCodeSet',\n    },\n    {\n        id: '2707005',\n        name: 'BidOrAskRequest',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Bid or ask request\\n\\n\\n                        Indicate explicitly whether a request for a quote is a request for a bid or an ask.',\n        tag: 2707,\n        type: 'int',\n        codeSet: 'QuoteAttributeTypeCodeSet',\n    },\n    {\n        id: '2710001',\n        name: 'AccruedInterestIsFactored',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '230',\n        description:\n            'Accrued interest (if any) is factored into the price\\n\\n\\n                        The price is either \"dirty\" or the security is in default or soon to be defaulted. I.e. on fill there will be no separate accrued interest amount. This is often called a \"flat\" price.',\n        tag: 2710,\n        type: 'int',\n        codeSet: 'PriceQualifierCodeSet',\n    },\n    {\n        id: '2710002',\n        name: 'TaxIsFactored',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '230',\n        description:\n            \"Tax is factored into the price\\n\\n\\n                        The security's price includes applicable taxes, e.g. Japanese government bonds.\",\n        tag: 2710,\n        type: 'int',\n        codeSet: 'PriceQualifierCodeSet',\n    },\n    {\n        id: '2710003',\n        name: 'BondAmortizationIsFactored',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '230',\n        description:\n            \"The effect of bond amortization or the floating rate index offset is factored into the price\\n\\n\\n                        The security's price includes the effect of bond amortization or a floating rate index. For example this qualifier would apply to the normal pricing of index-linked UK gilt bonds but not to US or EU index-linked bonds.\",\n        tag: 2710,\n        type: 'int',\n        codeSet: 'PriceQualifierCodeSet',\n    },\n    {\n        id: '2711001',\n        name: 'Range1',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Range 1',\n        tag: 2711,\n        type: 'int',\n        codeSet: 'MDValueTierCodeSet',\n    },\n    {\n        id: '2711002',\n        name: 'Range2',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Range 2',\n        tag: 2711,\n        type: 'int',\n        codeSet: 'MDValueTierCodeSet',\n    },\n    {\n        id: '2711003',\n        name: 'Range3',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Range 3',\n        tag: 2711,\n        type: 'int',\n        codeSet: 'MDValueTierCodeSet',\n    },\n    {\n        id: '2712001',\n        name: 'Contributes',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Contributes (default)\\n\\n\\n                        Fee contributes to the trade or transaction economics.',\n        tag: 2712,\n        type: 'int',\n        codeSet: 'MiscFeeQualifierCodeSet',\n    },\n    {\n        id: '2712002',\n        name: 'DoesNotContribute',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Does not contribute\\n\\n\\n                        Fee does not contribute to the trade or transaction economics.',\n        tag: 2712,\n        type: 'int',\n        codeSet: 'MiscFeeQualifierCodeSet',\n    },\n    {\n        id: '2725001',\n        name: 'ResearchPaymentAccount',\n        value: '0',\n        sort: 0,\n        group: 'Research Payment',\n        added: 'FIX.5.0SP2',\n        addedEP: '233',\n        description: 'Research payment account (RPA)',\n        tag: 2725,\n        type: 'int',\n        codeSet: 'CommissionAmountSubTypeCodeSet',\n    },\n    {\n        id: '2725002',\n        name: 'CommissionSharingAgreement',\n        value: '1',\n        sort: 1,\n        group: 'Research Payment',\n        added: 'FIX.5.0SP2',\n        addedEP: '233',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Commission sharing agreement (CSA)',\n        tag: 2725,\n        type: 'int',\n        codeSet: 'CommissionAmountSubTypeCodeSet',\n    },\n    {\n        id: '2725003',\n        name: 'OtherTypeResearchPayment',\n        value: '2',\n        sort: 2,\n        group: 'Research Payment',\n        added: 'FIX.5.0SP2',\n        addedEP: '233',\n        description:\n            'Other type of research payment\\n\\n\\n                        A type of research payment other than RPA or CSA.',\n        tag: 2725,\n        type: 'int',\n        codeSet: 'CommissionAmountSubTypeCodeSet',\n    },\n    {\n        id: '2736001',\n        name: 'ArgusMcCloskey',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Argus McCloskey',\n        tag: 2736,\n        type: 'int',\n        codeSet: 'CommodityFinalPriceTypeCodeSet',\n    },\n    {\n        id: '2736002',\n        name: 'Baltic',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Baltic',\n        tag: 2736,\n        type: 'int',\n        codeSet: 'CommodityFinalPriceTypeCodeSet',\n    },\n    {\n        id: '2736003',\n        name: 'Exchange',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Exchange',\n        tag: 2736,\n        type: 'int',\n        codeSet: 'CommodityFinalPriceTypeCodeSet',\n    },\n    {\n        id: '2736004',\n        name: 'GlobalCoal',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Global Coal',\n        tag: 2736,\n        type: 'int',\n        codeSet: 'CommodityFinalPriceTypeCodeSet',\n    },\n    {\n        id: '2736005',\n        name: 'IHSMcCloskey',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'IHS McCloskey',\n        tag: 2736,\n        type: 'int',\n        codeSet: 'CommodityFinalPriceTypeCodeSet',\n    },\n    {\n        id: '2736006',\n        name: 'Platts',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Platts',\n        tag: 2736,\n        type: 'int',\n        codeSet: 'CommodityFinalPriceTypeCodeSet',\n    },\n    {\n        id: '2736007',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Other',\n        tag: 2736,\n        type: 'int',\n        codeSet: 'CommodityFinalPriceTypeCodeSet',\n    },\n    {\n        id: '2748001',\n        name: 'AdmitToTradeRequestDate',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            'Date of request for admission to trading\\n\\n\\n                        In the context of MiFID II ESMA RTS 23 this is defined as \"Date and time the issuer has approved admission to trading or trading in its financial instruments on a trading venue.\" (Reference: Annex I Table 3 Field 9)',\n        tag: 2748,\n        type: 'int',\n        codeSet: 'ReferenceDataDateTypeCodeSet',\n    },\n    {\n        id: '2748002',\n        name: 'AdmitToTradeApprovalDate',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            'Date of approval of admission to trading\\n\\n\\n                        In the context of MiFID II ESMA RTS 23 this is defined as \"Date and time of the request for admission to trading on the trading venue.\" (Reference: Annex I Table 3 Field 10)',\n        tag: 2748,\n        type: 'int',\n        codeSet: 'ReferenceDataDateTypeCodeSet',\n    },\n    {\n        id: '2748003',\n        name: 'AdmitToTradeOrFirstTradeDate',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            'Date of admission to trading or date of first trade\\n\\n\\n                        In the context of MiFID II ESMA RTS 23 this is defined as \"Date and time of the admission to trading on the trading venue or the date and time when the instrument was first traded or an order or quote was first received by the trading venue.\" (Reference: Annex I Table 3 Field 11)',\n        tag: 2748,\n        type: 'int',\n        codeSet: 'ReferenceDataDateTypeCodeSet',\n    },\n    {\n        id: '2748004',\n        name: 'TerminationDate',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            'Termination date\\n\\n\\n                        In the context of MiFID II ESMA RTS 23 this is defined as \"Where available, the date and time when the financial instrument ceases to be traded or to be admitted to trading on the trading venue.\" (Reference: Annex I Table 3 Field 12)',\n        tag: 2748,\n        type: 'int',\n        codeSet: 'ReferenceDataDateTypeCodeSet',\n    },\n    {\n        id: '2753001',\n        name: 'Dividend',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Dividend',\n        tag: 2753,\n        type: 'int',\n        codeSet: 'ReturnTriggerCodeSet',\n    },\n    {\n        id: '2753002',\n        name: 'Variance',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Variance',\n        tag: 2753,\n        type: 'int',\n        codeSet: 'ReturnTriggerCodeSet',\n    },\n    {\n        id: '2753003',\n        name: 'Volatility',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Volatility',\n        tag: 2753,\n        type: 'int',\n        codeSet: 'ReturnTriggerCodeSet',\n    },\n    {\n        id: '2753004',\n        name: 'TotalReturn',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Total return',\n        tag: 2753,\n        type: 'int',\n        codeSet: 'ReturnTriggerCodeSet',\n    },\n    {\n        id: '2753005',\n        name: 'ContractForDifference',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Contract for difference',\n        tag: 2753,\n        type: 'int',\n        codeSet: 'ReturnTriggerCodeSet',\n    },\n    {\n        id: '2753006',\n        name: 'CreditDefault',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Credit default',\n        tag: 2753,\n        type: 'int',\n        codeSet: 'ReturnTriggerCodeSet',\n    },\n    {\n        id: '2753007',\n        name: 'SpreadBet',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Spread bet',\n        tag: 2753,\n        type: 'int',\n        codeSet: 'ReturnTriggerCodeSet',\n    },\n    {\n        id: '2753008',\n        name: 'Price',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Price',\n        tag: 2753,\n        type: 'int',\n        codeSet: 'ReturnTriggerCodeSet',\n    },\n    {\n        id: '2753009',\n        name: 'ForwardPriceUnderlyingInstrument',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Forward price of underlying instrument',\n        tag: 2753,\n        type: 'int',\n        codeSet: 'ReturnTriggerCodeSet',\n    },\n    {\n        id: '2753010',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Other',\n        tag: 2753,\n        type: 'int',\n        codeSet: 'ReturnTriggerCodeSet',\n    },\n    {\n        id: '2763001',\n        name: 'TimeWeightedAveragePrice',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        description:\n            'Time weighted average price\\n\\n\\n                        TWAP is the simple average price of a security over a specified time without regard to the volume traded.',\n        tag: 2763,\n        type: 'int',\n        codeSet: 'AveragePriceTypeCodeSet',\n    },\n    {\n        id: '2763002',\n        name: 'VolumeWeightedAveragePrice',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        description:\n            'Volume weighted average price\\n\\n\\n                        VWAP is the sum of the currency amount traded for all trades in the averaging group (price times quantity) divided by the total quantity.',\n        tag: 2763,\n        type: 'int',\n        codeSet: 'AveragePriceTypeCodeSet',\n    },\n    {\n        id: '2763003',\n        name: 'PercentOfVolumeAveragePrice',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Percent of volume average price\\n\\n\\n                        POV is the sum of the currency amount traded for all trades executed as part of an order intended to purchase a specified percentage of the total volume of an instrument, divided by the total quantity.',\n        tag: 2763,\n        type: 'int',\n        codeSet: 'AveragePriceTypeCodeSet',\n    },\n    {\n        id: '2763004',\n        name: 'LimitOrderAveragePrice',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        description:\n            'Limit order average price\\n\\n\\n                        The limit order average price is the currency amount of all trades executed to fill a limit order, divided by the total quantity.',\n        tag: 2763,\n        type: 'int',\n        codeSet: 'AveragePriceTypeCodeSet',\n    },\n    {\n        id: '2767001',\n        name: 'Added',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        description:\n            'Added\\n\\n\\n                        This trade has been associated with the group for the first time.',\n        tag: 2767,\n        type: 'int',\n        codeSet: 'AllocGroupStatusCodeSet',\n    },\n    {\n        id: '2767002',\n        name: 'Canceled',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        description: 'Canceled\\n\\n\\n                        This trade has been removed from the group.',\n        tag: 2767,\n        type: 'int',\n        codeSet: 'AllocGroupStatusCodeSet',\n    },\n    {\n        id: '2767003',\n        name: 'Replaced',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        description: 'Replaced\\n\\n\\n                        This trade already in the group has been updated.',\n        tag: 2767,\n        type: 'int',\n        codeSet: 'AllocGroupStatusCodeSet',\n    },\n    {\n        id: '2767004',\n        name: 'Changed',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '241',\n        description:\n            'Changed\\n\\n\\n                        An allocated trade or give-up has moved from one allocation group to another.',\n        tag: 2767,\n        type: 'int',\n        codeSet: 'AllocGroupStatusCodeSet',\n    },\n    {\n        id: '2767005',\n        name: 'Pending',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '241',\n        description:\n            'Pending\\n\\n\\n                        A request to assign or change an allocation group is pending.',\n        tag: 2767,\n        type: 'int',\n        codeSet: 'AllocGroupStatusCodeSet',\n    },\n    {\n        id: '2768001',\n        name: 'Accepted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '241',\n        description: 'Accepted',\n        tag: 2768,\n        type: 'int',\n        codeSet: 'AllocRequestStatusCodeSet',\n    },\n    {\n        id: '2768002',\n        name: 'Rejected',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '241',\n        description: 'Rejected',\n        tag: 2768,\n        type: 'int',\n        codeSet: 'AllocRequestStatusCodeSet',\n    },\n    {\n        id: '2773001',\n        name: 'NoMatchingConfirmation',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'No matching confirmation',\n        tag: 2773,\n        type: 'int',\n        codeSet: 'MatchExceptionTypeCodeSet',\n    },\n    {\n        id: '2773002',\n        name: 'NoMatchingAllocation',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'No matching allocation',\n        tag: 2773,\n        type: 'int',\n        codeSet: 'MatchExceptionTypeCodeSet',\n    },\n    {\n        id: '2773003',\n        name: 'AllocationDataElementMissing',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Allocation data element missing',\n        tag: 2773,\n        type: 'int',\n        codeSet: 'MatchExceptionTypeCodeSet',\n    },\n    {\n        id: '2773004',\n        name: 'ConfirmationDataElementMissing',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Confirmation data element missing',\n        tag: 2773,\n        type: 'int',\n        codeSet: 'MatchExceptionTypeCodeSet',\n    },\n    {\n        id: '2773005',\n        name: 'DataDifferenceNotWithinTolerance',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Data difference not within tolerance',\n        tag: 2773,\n        type: 'int',\n        codeSet: 'MatchExceptionTypeCodeSet',\n    },\n    {\n        id: '2773006',\n        name: 'MatchWithinTolerance',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Match within tolerance',\n        tag: 2773,\n        type: 'int',\n        codeSet: 'MatchExceptionTypeCodeSet',\n    },\n    {\n        id: '2773007',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Other',\n        tag: 2773,\n        type: 'int',\n        codeSet: 'MatchExceptionTypeCodeSet',\n    },\n    {\n        id: '2774001',\n        name: 'AccruedInterest',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Accrued interest',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774002',\n        name: 'DealPrice',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Deal price',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774003',\n        name: 'TradeDate',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Trade date\\n\\n\\n                        Tolerance not applicable',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774004',\n        name: 'SettlementDate',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Settlement date\\n\\n\\n                        Tolerance not applicable',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774005',\n        name: 'SideIndicator',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Side indicator\\n\\n\\n                        Tolerance not applicable',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774006',\n        name: 'TradedCurrency',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Traded currency\\n\\n\\n                        Tolerance not applicable',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774007',\n        name: 'AccountID',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Account ID\\n\\n\\n                        Tolerance not applicable',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774008',\n        name: 'ExecutingBrokerID',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Executing broker ID\\n\\n\\n                        Tolerance not applicable',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774009',\n        name: 'SettlementCurrencyAndAmount',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Settlement currency and amount',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774010',\n        name: 'InvestmentManagerID',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Investment manager ID\\n\\n\\n                        Tolerance not applicable',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774011',\n        name: 'NetAmount',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Net amount',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774012',\n        name: 'PlaceOfSettlement',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Place of settlement\\n\\n\\n                        Tolerance not applicable',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774013',\n        name: 'Commissions',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Commissions',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774014',\n        name: 'SecurityIdentifier',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Security identifier\\n\\n\\n                        Tolerance not applicable',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774015',\n        name: 'QualityAllocated',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Quantity allocated',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774016',\n        name: 'Principal',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Principal',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774017',\n        name: 'Fees',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Fees',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2774018',\n        name: 'Tax',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Tax',\n        tag: 2774,\n        type: 'int',\n        codeSet: 'MatchExceptionElementTypeCodeSet',\n    },\n    {\n        id: '2779001',\n        name: 'FixedAmount',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Fixed amount\\n\\n\\n                        Default if not specified',\n        tag: 2779,\n        type: 'int',\n        codeSet: 'MatchExceptionToleranceValueTypeCodeSet',\n    },\n    {\n        id: '2779002',\n        name: 'Percentage',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Percentage',\n        tag: 2779,\n        type: 'int',\n        codeSet: 'MatchExceptionToleranceValueTypeCodeSet',\n    },\n    {\n        id: '2782001',\n        name: 'Mandatory',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Mandatory',\n        tag: 2782,\n        type: 'int',\n        codeSet: 'MatchingDataPointIndicatorCodeSet',\n    },\n    {\n        id: '2782002',\n        name: 'Optional',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Optional',\n        tag: 2782,\n        type: 'int',\n        codeSet: 'MatchingDataPointIndicatorCodeSet',\n    },\n    {\n        id: '2788001',\n        name: 'New',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'New',\n        tag: 2788,\n        type: 'int',\n        codeSet: 'TradeAggregationTransTypeCodeSet',\n    },\n    {\n        id: '2788002',\n        name: 'Cancel',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'Cancel',\n        tag: 2788,\n        type: 'int',\n        codeSet: 'TradeAggregationTransTypeCodeSet',\n    },\n    {\n        id: '2788003',\n        name: 'Replace',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'Replace',\n        tag: 2788,\n        type: 'int',\n        codeSet: 'TradeAggregationTransTypeCodeSet',\n    },\n    {\n        id: '2790001',\n        name: 'Accepted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'Accepted',\n        tag: 2790,\n        type: 'int',\n        codeSet: 'TradeAggregationRequestStatusCodeSet',\n    },\n    {\n        id: '2790002',\n        name: 'Rejected',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'Rejected',\n        tag: 2790,\n        type: 'int',\n        codeSet: 'TradeAggregationRequestStatusCodeSet',\n    },\n    {\n        id: '2791001',\n        name: 'UnknownOrders',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'Unknown order(s)',\n        tag: 2791,\n        type: 'int',\n        codeSet: 'TradeAggregationRejectReasonCodeSet',\n    },\n    {\n        id: '2791002',\n        name: 'UnknownExecutionFills',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'Unknown execution/fill(s)',\n        tag: 2791,\n        type: 'int',\n        codeSet: 'TradeAggregationRejectReasonCodeSet',\n    },\n    {\n        id: '2791003',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'Other',\n        tag: 2791,\n        type: 'int',\n        codeSet: 'TradeAggregationRejectReasonCodeSet',\n    },\n    {\n        id: '2795001',\n        name: 'Regular',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description:\n            'Regular - Default if not specified.\\n\\n\\n                        The notion of onshore and offshore rates does not apply.',\n        tag: 2795,\n        type: 'int',\n        codeSet: 'OffshoreIndicatorCodeSet',\n    },\n    {\n        id: '2795002',\n        name: 'Offshore',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description:\n            'Offshore\\n\\n\\n                        Used to indicate that the rate specified is an offshore rate which differs from its onshore rate.',\n        tag: 2795,\n        type: 'int',\n        codeSet: 'OffshoreIndicatorCodeSet',\n    },\n    {\n        id: '2795003',\n        name: 'Onshore',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description:\n            'Onshore\\n\\n\\n                        Used to indicate that the rate specified is an onshore rate which differs from its offshore rate.',\n        tag: 2795,\n        type: 'int',\n        codeSet: 'OffshoreIndicatorCodeSet',\n    },\n    {\n        id: '2804001',\n        name: 'New',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'New',\n        tag: 2804,\n        type: 'int',\n        codeSet: 'PayReportTransTypeCodeSet',\n    },\n    {\n        id: '2804002',\n        name: 'Replace',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Replace',\n        tag: 2804,\n        type: 'int',\n        codeSet: 'PayReportTransTypeCodeSet',\n    },\n    {\n        id: '2804003',\n        name: 'Status',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'Status\\n\\n\\n                        An unsolicited message reporting the current progress status of the payment.',\n        tag: 2804,\n        type: 'int',\n        codeSet: 'PayReportTransTypeCodeSet',\n    },\n    {\n        id: '2806001',\n        name: 'Received',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Received, not yet processed',\n        tag: 2806,\n        type: 'int',\n        codeSet: 'PayReportStatusCodeSet',\n    },\n    {\n        id: '2806002',\n        name: 'Accepted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Accepted',\n        tag: 2806,\n        type: 'int',\n        codeSet: 'PayReportStatusCodeSet',\n    },\n    {\n        id: '2806003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Rejected',\n        tag: 2806,\n        type: 'int',\n        codeSet: 'PayReportStatusCodeSet',\n    },\n    {\n        id: '2806004',\n        name: 'Disputed',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'Disputed\\n\\n\\n                        Used when there is some type of mismatch that can be resolved.',\n        tag: 2806,\n        type: 'int',\n        codeSet: 'PayReportStatusCodeSet',\n    },\n    {\n        id: '2811001',\n        name: 'New',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'New',\n        tag: 2811,\n        type: 'int',\n        codeSet: 'PayRequestTransTypeCodeSet',\n    },\n    {\n        id: '2811002',\n        name: 'Cancel',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Cancel',\n        tag: 2811,\n        type: 'int',\n        codeSet: 'PayRequestTransTypeCodeSet',\n    },\n    {\n        id: '2813001',\n        name: 'Received',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Received, not yet processed',\n        tag: 2813,\n        type: 'int',\n        codeSet: 'PayRequestStatusCodeSet',\n    },\n    {\n        id: '2813002',\n        name: 'Accepted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Accepted',\n        tag: 2813,\n        type: 'int',\n        codeSet: 'PayRequestStatusCodeSet',\n    },\n    {\n        id: '2813003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Rejected',\n        tag: 2813,\n        type: 'int',\n        codeSet: 'PayRequestStatusCodeSet',\n    },\n    {\n        id: '2813004',\n        name: 'Disputed',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'Disputed\\n\\n\\n                        Used when there is some type of mismatch that can be resolved.',\n        tag: 2813,\n        type: 'int',\n        codeSet: 'PayRequestStatusCodeSet',\n    },\n    {\n        id: '2819001',\n        name: 'DebitPay',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Debit / Pay',\n        tag: 2819,\n        type: 'int',\n        codeSet: 'PostTradePaymentDebitOrCreditCodeSet',\n    },\n    {\n        id: '2819002',\n        name: 'CreditReceive',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Credit / Receive',\n        tag: 2819,\n        type: 'int',\n        codeSet: 'PostTradePaymentDebitOrCreditCodeSet',\n    },\n    {\n        id: '2823001',\n        name: 'New',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'New\\n\\n\\n                        Payment is awaiting confirmation from the recipient.',\n        tag: 2823,\n        type: 'int',\n        codeSet: 'PostTradePaymentStatusCodeSet',\n    },\n    {\n        id: '2823002',\n        name: 'Initiated',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'Initiated\\n\\n\\n                        Payment is confirmed by the recipient and has been scheduled.',\n        tag: 2823,\n        type: 'int',\n        codeSet: 'PostTradePaymentStatusCodeSet',\n    },\n    {\n        id: '2823003',\n        name: 'Pending',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'Pending\\n\\n\\n                        Payment has been instructed to the payment service but status is unknown.',\n        tag: 2823,\n        type: 'int',\n        codeSet: 'PostTradePaymentStatusCodeSet',\n    },\n    {\n        id: '2823004',\n        name: 'Confirmed',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Confirmed\\n\\n\\n                        Payment is complete and confirmed by the payment service.',\n        tag: 2823,\n        type: 'int',\n        codeSet: 'PostTradePaymentStatusCodeSet',\n    },\n    {\n        id: '2823005',\n        name: 'Rejected',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Rejected\\n\\n\\n                        Payment was rejected by the payment service.',\n        tag: 2823,\n        type: 'int',\n        codeSet: 'PostTradePaymentStatusCodeSet',\n    },\n    {\n        id: '2829001',\n        name: 'UniqueClOrdID',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Unique ClOrdID(11)',\n        tag: 2829,\n        type: 'Boolean',\n        codeSet: 'DuplicateClOrdIDIndicatorCodeSet',\n    },\n    {\n        id: '2829002',\n        name: 'DuplicateClOrdID',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Duplicate ClOrdID(11)',\n        tag: 2829,\n        type: 'Boolean',\n        codeSet: 'DuplicateClOrdIDIndicatorCodeSet',\n    },\n    {\n        id: '2830001',\n        name: 'CustomerOrClient',\n        value: 'C',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Customer or client',\n        tag: 2830,\n        type: 'char',\n        codeSet: 'EventInitiatorTypeCodeSet',\n    },\n    {\n        id: '2830002',\n        name: 'ExchangeOrExecutionVenue',\n        value: 'E',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Exchange or execution venue',\n        tag: 2830,\n        type: 'char',\n        codeSet: 'EventInitiatorTypeCodeSet',\n    },\n    {\n        id: '2830003',\n        name: 'FirmOrBroker',\n        value: 'F',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Firm or broker',\n        tag: 2830,\n        type: 'char',\n        codeSet: 'EventInitiatorTypeCodeSet',\n    },\n    {\n        id: '2831001',\n        name: 'Bid',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Bid\\n\\n\\n                        May apply to price or quantity.',\n        tag: 2831,\n        type: 'int',\n        codeSet: 'NBBOEntryTypeCodeSet',\n    },\n    {\n        id: '2831002',\n        name: 'Offer',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Offer\\n\\n\\n                        May apply to price or quantity.',\n        tag: 2831,\n        type: 'int',\n        codeSet: 'NBBOEntryTypeCodeSet',\n    },\n    {\n        id: '2831003',\n        name: 'MidPrice',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Mid-price',\n        tag: 2831,\n        type: 'int',\n        codeSet: 'NBBOEntryTypeCodeSet',\n    },\n    {\n        id: '2834001',\n        name: 'NotApplicable',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Not applicable\\n\\n\\n                        Default if not specified. NBBO information is not applicable. NBBOEntryType(2831), NBBOPrice(2832), and NBBOQty(2833) must be omitted.',\n        tag: 2834,\n        type: 'int',\n        codeSet: 'NBBOSourceCodeSet',\n    },\n    {\n        id: '2834002',\n        name: 'Direct',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Direct\\n\\n\\n                        Information is retrieved directly from an exchange or other electronic execution venue. There may be a performance advantage compared to retrieving the information from a source consolidating multiple feeds.',\n        tag: 2834,\n        type: 'int',\n        codeSet: 'NBBOSourceCodeSet',\n    },\n    {\n        id: '2834003',\n        name: 'SIP',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Securities Information Processor\\n\\n\\n                        The Securities Information Processor (SIP) links the U.S. markets by processing and consolidating all protected bid/ask quotes and trades from every trading venue into a single, easily consumed data feed.',\n        tag: 2834,\n        type: 'int',\n        codeSet: 'NBBOSourceCodeSet',\n    },\n    {\n        id: '2834004',\n        name: 'Hybrid',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Hybrid\\n\\n\\n                        A combination of two or more data feeds is used as NBBO source. In the context of US CAT this is used for a combination of direct and SIP feeds.',\n        tag: 2834,\n        type: 'int',\n        codeSet: 'NBBOSourceCodeSet',\n    },\n    {\n        id: '2837001',\n        name: 'MultipleQuotesAllowed',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Multiple quotes allowed',\n        tag: 2837,\n        type: 'Boolean',\n        codeSet: 'SingleQuoteIndicatorCodeSet',\n    },\n    {\n        id: '2837002',\n        name: 'OnlyOneQuoteAllowed',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Only one quote allowed',\n        tag: 2837,\n        type: 'Boolean',\n        codeSet: 'SingleQuoteIndicatorCodeSet',\n    },\n    {\n        id: '2839001',\n        name: 'NotManuallyCaptured',\n        value: 'N',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Not manually captured',\n        tag: 2839,\n        type: 'Boolean',\n        codeSet: 'TrdRegTimestampManualIndicatorCodeSet',\n    },\n    {\n        id: '2839002',\n        name: 'ManuallyCaptured',\n        value: 'Y',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Manually captured',\n        tag: 2839,\n        type: 'Boolean',\n        codeSet: 'TrdRegTimestampManualIndicatorCodeSet',\n    },\n    {\n        id: '2844001',\n        name: 'MoneyMarketFund',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Money market fund\\n\\n\\n                        Registered money market fund. In the context of EU SFTR reporting this corresponds to code \"MMFT\".',\n        tag: 2844,\n        type: 'int',\n        codeSet: 'CollateralReinvestmentTypeCodeSet',\n    },\n    {\n        id: '2844002',\n        name: 'OtherComingledPool',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Other comingled pool\\n\\n\\n                        Any commingled pool other than money market fund. In the context of EU SFTR reporting this corresponds to code \"OCMP\".',\n        tag: 2844,\n        type: 'int',\n        codeSet: 'CollateralReinvestmentTypeCodeSet',\n    },\n    {\n        id: '2844003',\n        name: 'RepoMarket',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Repo market\\n\\n\\n                        The repurchase agreement market. In the context of EU SFTR reporting this corresponds to code \"REPM\".',\n        tag: 2844,\n        type: 'int',\n        codeSet: 'CollateralReinvestmentTypeCodeSet',\n    },\n    {\n        id: '2844004',\n        name: 'DirectPurchaseOfSecurities',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Direct purchase of securities\\n\\n\\n                        In the context of EU SFTR reporting this corresponds to code \"SDPU\".',\n        tag: 2844,\n        type: 'int',\n        codeSet: 'CollateralReinvestmentTypeCodeSet',\n    },\n    {\n        id: '2844005',\n        name: 'OtherInvestments',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Other investments\\n\\n\\n                        In the context of EU SFTR reporting this corresponds to code \"OTHR\".',\n        tag: 2844,\n        type: 'int',\n        codeSet: 'CollateralReinvestmentTypeCodeSet',\n    },\n    {\n        id: '2846001',\n        name: 'Repo',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Repurchase agreement\\n\\n\\n                        Repurchase agreements or Buy Sellbacks. In the context of EU SFTR reporting this corresponds to code \"REPO\".',\n        tag: 2846,\n        type: 'int',\n        codeSet: 'FundingSourceCodeSet',\n    },\n    {\n        id: '2846002',\n        name: 'Cash',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Cash\\n\\n\\n                        Cash collateral from securities lending. In the context of EU SFTR reporting this corresponds to code \"SECL\".',\n        tag: 2846,\n        type: 'int',\n        codeSet: 'FundingSourceCodeSet',\n    },\n    {\n        id: '2846003',\n        name: 'FreeCedits',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Free credits\\n\\n\\n                        In the context of EU SFTR reporting this corresponds to code \"FREE\".',\n        tag: 2846,\n        type: 'int',\n        codeSet: 'FundingSourceCodeSet',\n    },\n    {\n        id: '2846004',\n        name: 'CustomerShortSales',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Customer short sales\\n\\n\\n                        Proceeds from customer short sales. In the context of EU SFTR reporting this corresponds to code \"CSHS\".',\n        tag: 2846,\n        type: 'int',\n        codeSet: 'FundingSourceCodeSet',\n    },\n    {\n        id: '2846005',\n        name: 'BrokerShortSales',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Broker short sales\\n\\n\\n                        Proceeds from broker short sales. In the context of EU SFTR reporting this corresponds to code \"BSHS\".',\n        tag: 2846,\n        type: 'int',\n        codeSet: 'FundingSourceCodeSet',\n    },\n    {\n        id: '2846006',\n        name: 'UnsecuredBorrowing',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Unsecured borrowing\\n\\n\\n                        In the context of EU SFTR reporting this corresponds to code \"UBOR\".',\n        tag: 2846,\n        type: 'int',\n        codeSet: 'FundingSourceCodeSet',\n    },\n    {\n        id: '2846007',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Other\\n\\n\\n                        In the context of EU SFTR reporting this corresponds to code \"OTHR\".',\n        tag: 2846,\n        type: 'int',\n        codeSet: 'FundingSourceCodeSet',\n    },\n    {\n        id: '2851001',\n        name: 'Posted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Posted\\n\\n\\n                        The party or account that is the object of the report posted margin.',\n        tag: 2851,\n        type: 'int',\n        codeSet: 'MarginDirectionCodeSet',\n    },\n    {\n        id: '2851002',\n        name: 'Received',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Received\\n\\n\\n                        The party or account that is the object of the report received margin.',\n        tag: 2851,\n        type: 'int',\n        codeSet: 'MarginDirectionCodeSet',\n    },\n    {\n        id: '2872001',\n        name: 'ExclusiveArrangement',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            \"Exclusive arrangement\\n\\n\\n                        In the context of securities borrowing and lending transaction, an indication of whether the borrower has exclusive access to borrow from the lender's securities portfolio. Not applicable to commodities. TransactionAttributeValue(2873) takes Y or N value.\",\n        tag: 2872,\n        type: 'int',\n        codeSet: 'TransactionAttributeTypeCodeSet',\n    },\n    {\n        id: '2872002',\n        name: 'CollateralReuse',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Collateral reuse\\n\\n\\n                        Indication of whether the collateral taker can reuse the securities provided as collateral for the transaction. TransactionAttributeValue(tbd2873) takes Y or N value.',\n        tag: 2872,\n        type: 'int',\n        codeSet: 'TransactionAttributeTypeCodeSet',\n    },\n    {\n        id: '2872003',\n        name: 'CollateralArrangementType',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'Collateral arrangement type\\n\\n\\n                        In the context of securities financing transactions, indicates the type of collateral arrangement. For EU SFTR reporting, TransactionAttributeValue(2873) may take ESMA assigned values \"TTCA\" (title transfer), \"SICA\" (securities financial interest), or \"SIUR\" (securities financial interest with right of use).',\n        tag: 2872,\n        type: 'int',\n        codeSet: 'TransactionAttributeTypeCodeSet',\n    },\n    {\n        id: '2883001',\n        name: 'NoRoutingArrangementInPlace',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '256',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'No routing arrangement in place',\n        tag: 2883,\n        type: 'int',\n        codeSet: 'RoutingArrangementIndicatorCodeSet',\n    },\n    {\n        id: '2883002',\n        name: 'RoutingArrangementInPlace',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '256',\n        description: 'Routing arrangement in place',\n        tag: 2883,\n        type: 'int',\n        codeSet: 'RoutingArrangementIndicatorCodeSet',\n    },\n    {\n        id: '2888001',\n        name: 'NonFIXSource',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '259',\n        description: 'Non-FIX Source',\n        tag: 2888,\n        type: 'int',\n        codeSet: 'RelatedOrderIDSourceCodeSet',\n    },\n    {\n        id: '2888002',\n        name: 'SystemOrderIdentifier',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '259',\n        description:\n            'Order identifier\\n\\n\\n                        Can be used to refer to an order identifier assigned by the party accepting the order, e.g. OrderID(37).',\n        tag: 2888,\n        type: 'int',\n        codeSet: 'RelatedOrderIDSourceCodeSet',\n    },\n    {\n        id: '2888003',\n        name: 'ClientOrderIdentifier',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '259',\n        description:\n            'Client order identifier\\n\\n\\n                        Can be used to refer to an order identifier assigned by the party initiating the order, e.g. ClOrdID(11).',\n        tag: 2888,\n        type: 'int',\n        codeSet: 'RelatedOrderIDSourceCodeSet',\n    },\n    {\n        id: '2888004',\n        name: 'SecondaryOrderIdentifier',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '259',\n        description:\n            'Secondary order identifier\\n\\n\\n                        Can be used to refer to an additional order identifier assigned by the party accepting the order, e.g. SecondaryOrderID(198).',\n        tag: 2888,\n        type: 'int',\n        codeSet: 'RelatedOrderIDSourceCodeSet',\n    },\n    {\n        id: '2888005',\n        name: 'SecondaryClientOrderIdentifier',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '259',\n        description:\n            'Secondary client order identifier\\n\\n\\n                        Can be used to refer to an additional order identifier assigned by the party initiating the order, e.g. SecondaryClOrdID(526).',\n        tag: 2888,\n        type: 'int',\n        codeSet: 'RelatedOrderIDSourceCodeSet',\n    },\n    {\n        id: '2890001',\n        name: 'NotSpecified',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '259',\n        description: 'Not specified',\n        tag: 2890,\n        type: 'int',\n        codeSet: 'OrderRelationshipCodeSet',\n    },\n    {\n        id: '2890002',\n        name: 'OrderAggregation',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '259',\n        description:\n            'Order aggregation\\n\\n\\n                        Order has been subject to a bundling of multiple orders to a single new order identified outside of the component.',\n        tag: 2890,\n        type: 'int',\n        codeSet: 'OrderRelationshipCodeSet',\n    },\n    {\n        id: '2890003',\n        name: 'OrderSplit',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '259',\n        description:\n            'Order split\\n\\n\\n                        Order has been created as a child order of the order identified outside of the component.',\n        tag: 2890,\n        type: 'int',\n        codeSet: 'OrderRelationshipCodeSet',\n    },\n    {\n        id: '2897001',\n        name: 'CUSIP',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'CUSIP',\n        tag: 2897,\n        type: 'String',\n        codeSet: 'CurrencyCodeSourceCodeSet',\n    },\n    {\n        id: '2897002',\n        name: 'SEDOL',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'SEDOL',\n        tag: 2897,\n        type: 'String',\n        codeSet: 'CurrencyCodeSourceCodeSet',\n    },\n    {\n        id: '2897003',\n        name: 'ISINNumber',\n        value: '4',\n        sort: 4,\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'ISIN',\n        tag: 2897,\n        type: 'String',\n        codeSet: 'CurrencyCodeSourceCodeSet',\n    },\n    {\n        id: '2897004',\n        name: 'ISOCurrencyCode',\n        value: '6',\n        sort: 6,\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'ISO Currency Code (ISO 4217)',\n        tag: 2897,\n        type: 'String',\n        codeSet: 'CurrencyCodeSourceCodeSet',\n    },\n    {\n        id: '2897005',\n        name: 'FinancialInstrumentGlobalIdentifier',\n        value: 'S',\n        sort: 27,\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description:\n            'Financial Instrument Global Identifier\\n\\n\\n                        An Object Management Group (OMG) standard. Also referred to as FIGI. Formerly known as \"Bloomberg Open Symbology BBGID\".',\n        tag: 2897,\n        type: 'String',\n        codeSet: 'CurrencyCodeSourceCodeSet',\n    },\n    {\n        id: '2897006',\n        name: 'DigitalTokenIdentifier',\n        value: 'Y',\n        sort: 33,\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Digital Token Identifier (ISO 24165)',\n        tag: 2897,\n        type: 'String',\n        codeSet: 'CurrencyCodeSourceCodeSet',\n    },\n    {\n        id: '2963001',\n        name: 'NotMultiJrsdctnEligible',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '277',\n        description: 'Trade not eligible for multi-jurisdiction reporting',\n        tag: 2963,\n        type: 'int',\n        codeSet: 'MultiJurisdictionReportingIndicatorCodeSet',\n    },\n    {\n        id: '2963002',\n        name: 'MultiJrsdctnEligible',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '277',\n        description: 'Trade eligible for multi-jurisdiction reporting',\n        tag: 2963,\n        type: 'int',\n        codeSet: 'MultiJurisdictionReportingIndicatorCodeSet',\n    },\n    {\n        id: '2964001',\n        name: 'CancelAggressive',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '280',\n        description: 'Cancel aggressive\\n\\n\\n                        Cancel incoming order.',\n        tag: 2964,\n        type: 'int',\n        codeSet: 'SelfMatchPreventionInstructionCodeSet',\n    },\n    {\n        id: '2964002',\n        name: 'CancelPassive',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '280',\n        description:\n            'Cancel passive\\n\\n\\n                        Cancel resting order with the same SelfMatchPreventionID(2362).',\n        tag: 2964,\n        type: 'int',\n        codeSet: 'SelfMatchPreventionInstructionCodeSet',\n    },\n    {\n        id: '2964003',\n        name: 'CancelAggressivePassive',\n        value: '3',\n        sort: 3,\n        added: 'FIX.Latest',\n        addedEP: '280',\n        description:\n            'Cancel aggressive and passive\\n\\n\\n                        Cancel both incoming and resting order with the same SelfMatchPreventionID(2362).',\n        tag: 2964,\n        type: 'int',\n        codeSet: 'SelfMatchPreventionInstructionCodeSet',\n    },\n    {\n        id: '2966001',\n        name: 'Received',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description: 'Received, not yet processed',\n        tag: 2966,\n        type: 'int',\n        codeSet: 'SettlStatusRequestStatusCodeSet',\n    },\n    {\n        id: '2966002',\n        name: 'Accepted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description: 'Accepted',\n        tag: 2966,\n        type: 'int',\n        codeSet: 'SettlStatusRequestStatusCodeSet',\n    },\n    {\n        id: '2966003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description: 'Rejected\\n\\n\\n                        Rejection reason provided in RejectText(1328).',\n        tag: 2966,\n        type: 'int',\n        codeSet: 'SettlStatusRequestStatusCodeSet',\n    },\n    {\n        id: '2973001',\n        name: 'Received',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description: 'Received, not yet processed',\n        tag: 2973,\n        type: 'int',\n        codeSet: 'SettlStatusReportStatusCodeSet',\n    },\n    {\n        id: '2973002',\n        name: 'Accepted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description: 'Accepted',\n        tag: 2973,\n        type: 'int',\n        codeSet: 'SettlStatusReportStatusCodeSet',\n    },\n    {\n        id: '2973003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description: 'Rejected\\n\\n\\n                        Rejection reason provided in RejectText(1328).',\n        tag: 2973,\n        type: 'int',\n        codeSet: 'SettlStatusReportStatusCodeSet',\n    },\n    {\n        id: '2980001',\n        name: 'TradeType',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '285',\n        description: 'Trade type',\n        tag: 2980,\n        type: 'int',\n        codeSet: 'AllocGroupSubQtyTypeCodeSet',\n    },\n    {\n        id: '2980002',\n        name: 'TradePublicationIndicator',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '285',\n        description: 'Trade publication indicator',\n        tag: 2980,\n        type: 'int',\n        codeSet: 'AllocGroupSubQtyTypeCodeSet',\n    },\n    {\n        id: '2980003',\n        name: 'OrderHandlingInstruction',\n        value: '3',\n        sort: 3,\n        added: 'FIX.Latest',\n        addedEP: '285',\n        description: 'Order handling instruction',\n        tag: 2980,\n        type: 'int',\n        codeSet: 'AllocGroupSubQtyTypeCodeSet',\n    },\n    {\n        id: '2993001',\n        name: 'Realtime',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description:\n            'Real-time\\n\\n\\n                        Real-time market prices used as the data source in metrics/analytics calculation.',\n        tag: 2993,\n        type: 'int',\n        codeSet: 'MetricsCalculationPriceSourceCodeSet',\n    },\n    {\n        id: '2993002',\n        name: 'EndOfDay',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description:\n            'End of day\\n\\n\\n                        Official end of day price (marking) used as the data source in metrics/analytics calculation.',\n        tag: 2993,\n        type: 'int',\n        codeSet: 'MetricsCalculationPriceSourceCodeSet',\n    },\n    {\n        id: '2994001',\n        name: 'BlackScholes',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Black-Scholes',\n        tag: 2994,\n        type: 'int',\n        codeSet: 'AssetValuationModelCodeSet',\n    },\n    {\n        id: '2994002',\n        name: 'Whaley',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Whaley',\n        tag: 2994,\n        type: 'int',\n        codeSet: 'AssetValuationModelCodeSet',\n    },\n    {\n        id: '2994003',\n        name: 'Bachelier',\n        value: '3',\n        sort: 3,\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Bachelier',\n        tag: 2994,\n        type: 'int',\n        codeSet: 'AssetValuationModelCodeSet',\n    },\n    {\n        id: '2994004',\n        name: 'Kirk',\n        value: '4',\n        sort: 4,\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Kirk',\n        tag: 2994,\n        type: 'int',\n        codeSet: 'AssetValuationModelCodeSet',\n    },\n    {\n        id: '2994005',\n        name: 'Curran',\n        value: '5',\n        sort: 5,\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Curran',\n        tag: 2994,\n        type: 'int',\n        codeSet: 'AssetValuationModelCodeSet',\n    },\n    {\n        id: '2994006',\n        name: 'Black76',\n        value: '6',\n        sort: 6,\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Black-76',\n        tag: 2994,\n        type: 'int',\n        codeSet: 'AssetValuationModelCodeSet',\n    },\n    {\n        id: '2994007',\n        name: 'Binomial',\n        value: '7',\n        sort: 7,\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Binomial',\n        tag: 2994,\n        type: 'int',\n        codeSet: 'AssetValuationModelCodeSet',\n    },\n    {\n        id: '2994008',\n        name: 'OtherModel',\n        value: '99',\n        sort: 99,\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Other model',\n        tag: 2994,\n        type: 'int',\n        codeSet: 'AssetValuationModelCodeSet',\n    },\n    {\n        id: '3016001',\n        name: 'New',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'New',\n        tag: 3016,\n        type: 'int',\n        codeSet: 'AlgoCertificateRequestTransTypeCodeSet',\n    },\n    {\n        id: '3016002',\n        name: 'Cancel',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Cancel',\n        tag: 3016,\n        type: 'int',\n        codeSet: 'AlgoCertificateRequestTransTypeCodeSet',\n    },\n    {\n        id: '3016003',\n        name: 'Replace',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Replace',\n        tag: 3016,\n        type: 'int',\n        codeSet: 'AlgoCertificateRequestTransTypeCodeSet',\n    },\n    {\n        id: '3017001',\n        name: 'Received',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Received, not yet processed',\n        tag: 3017,\n        type: 'int',\n        codeSet: 'AlgoCertificateRequestStatusCodeSet',\n    },\n    {\n        id: '3017002',\n        name: 'Accepted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Accepted',\n        tag: 3017,\n        type: 'int',\n        codeSet: 'AlgoCertificateRequestStatusCodeSet',\n    },\n    {\n        id: '3017003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Rejected\\n\\nRejection reason provided in RejectText(1328).',\n        tag: 3017,\n        type: 'int',\n        codeSet: 'AlgoCertificateRequestStatusCodeSet',\n    },\n    {\n        id: '3020001',\n        name: 'New',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'New',\n        tag: 3020,\n        type: 'int',\n        codeSet: 'AlgoCertificateReportTransTypeCodeSet',\n    },\n    {\n        id: '3020002',\n        name: 'Cancel',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Cancel',\n        tag: 3020,\n        type: 'int',\n        codeSet: 'AlgoCertificateReportTransTypeCodeSet',\n    },\n    {\n        id: '3020003',\n        name: 'Replace',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Replace',\n        tag: 3020,\n        type: 'int',\n        codeSet: 'AlgoCertificateReportTransTypeCodeSet',\n    },\n    {\n        id: '3021001',\n        name: 'Received',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Received, not yet processed',\n        tag: 3021,\n        type: 'int',\n        codeSet: 'AlgoCertificateReportStatusCodeSet',\n    },\n    {\n        id: '3021002',\n        name: 'Accepted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Accepted',\n        tag: 3021,\n        type: 'int',\n        codeSet: 'AlgoCertificateReportStatusCodeSet',\n    },\n    {\n        id: '3021003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Rejected\\n\\nRejection reason provided in RejectText(1328).',\n        tag: 3021,\n        type: 'int',\n        codeSet: 'AlgoCertificateReportStatusCodeSet',\n    },\n    {\n        id: '3022001',\n        name: 'Draft',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        updated: 'FIX.Latest',\n        updatedEP: '295',\n        description: 'Draft\\n\\nAlgo certificate created.',\n        tag: 3022,\n        type: 'int',\n        codeSet: 'AlgoCertificateStatusCodeSet',\n    },\n    {\n        id: '3022002',\n        name: 'Approved',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        updated: 'FIX.Latest',\n        updatedEP: '295',\n        description: 'Approved\\n\\nAlgo certificate approved by authorized person.',\n        tag: 3022,\n        type: 'int',\n        codeSet: 'AlgoCertificateStatusCodeSet',\n    },\n    {\n        id: '3022003',\n        name: 'Submitted',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        updated: 'FIX.Latest',\n        updatedEP: '303',\n        description: 'Submitted\\n\\nAlgo certificate received by at least one venue included in the certificate.',\n        tag: 3022,\n        type: 'int',\n        codeSet: 'AlgoCertificateStatusCodeSet',\n    },\n    {\n        id: '3022004',\n        name: 'Registered',\n        value: '3',\n        sort: 3,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        updated: 'FIX.Latest',\n        updatedEP: '303',\n        description:\n            'Registered\\n\\nAlgo certificate accepted and registered by at least one venue included in the certificate.',\n        tag: 3022,\n        type: 'int',\n        codeSet: 'AlgoCertificateStatusCodeSet',\n    },\n    {\n        id: '3022005',\n        name: 'Cancelled',\n        value: '4',\n        sort: 4,\n        added: 'FIX.Latest',\n        addedEP: '303',\n        description:\n            'Cancelled\\n\\nAlgo certificate terminated by the issuer prior to the submission to any venue or after revoking from the venue(s).',\n        tag: 3022,\n        type: 'int',\n        codeSet: 'AlgoCertificateStatusCodeSet',\n    },\n    {\n        id: '3058001',\n        name: 'Under',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Under',\n        tag: 3058,\n        type: 'int',\n        codeSet: 'TestThresholdTypeCodeSet',\n    },\n    {\n        id: '3058002',\n        name: 'Over',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Over',\n        tag: 3058,\n        type: 'int',\n        codeSet: 'TestThresholdTypeCodeSet',\n    },\n    {\n        id: '3064001',\n        name: 'New',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'New',\n        tag: 3064,\n        type: 'int',\n        codeSet: 'TestSuiteRequestTransTypeCodeSet',\n    },\n    {\n        id: '3064002',\n        name: 'Cancel',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Cancel',\n        tag: 3064,\n        type: 'int',\n        codeSet: 'TestSuiteRequestTransTypeCodeSet',\n    },\n    {\n        id: '3065001',\n        name: 'Received',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Received, not yet processed',\n        tag: 3065,\n        type: 'int',\n        codeSet: 'TestSuiteRequestStatusCodeSet',\n    },\n    {\n        id: '3065002',\n        name: 'Accepted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Accepted',\n        tag: 3065,\n        type: 'int',\n        codeSet: 'TestSuiteRequestStatusCodeSet',\n    },\n    {\n        id: '3065003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Rejected\\n\\nRejection reason provided in RejectText(1328).',\n        tag: 3065,\n        type: 'int',\n        codeSet: 'TestSuiteRequestStatusCodeSet',\n    },\n    {\n        id: '3067001',\n        name: 'Start',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Start',\n        tag: 3067,\n        type: 'int',\n        codeSet: 'TestActionTypeCodeSet',\n    },\n    {\n        id: '3067002',\n        name: 'Stop',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Stop',\n        tag: 3067,\n        type: 'int',\n        codeSet: 'TestActionTypeCodeSet',\n    },\n    {\n        id: '3067003',\n        name: 'State',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'State',\n        tag: 3067,\n        type: 'int',\n        codeSet: 'TestActionTypeCodeSet',\n    },\n    {\n        id: '3068001',\n        name: 'Received',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Received, not yet processed',\n        tag: 3068,\n        type: 'int',\n        codeSet: 'TestActionRequestStatusCodeSet',\n    },\n    {\n        id: '3068002',\n        name: 'Accepted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Accepted',\n        tag: 3068,\n        type: 'int',\n        codeSet: 'TestActionRequestStatusCodeSet',\n    },\n    {\n        id: '3068003',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Rejected\\n\\nRejection reason provided in RejectText(1328).',\n        tag: 3068,\n        type: 'int',\n        codeSet: 'TestActionRequestStatusCodeSet',\n    },\n    {\n        id: '3069001',\n        name: 'Scheduled',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Scheduled\\n\\nTest suite is planned for execution but has not started yet.',\n        tag: 3069,\n        type: 'int',\n        codeSet: 'TestSuiteActivityStateCodeSet',\n    },\n    {\n        id: '3069002',\n        name: 'Running',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Running\\n\\nTest suite is currently being executed.',\n        tag: 3069,\n        type: 'int',\n        codeSet: 'TestSuiteActivityStateCodeSet',\n    },\n    {\n        id: '3069003',\n        name: 'Completed',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Completed\\n\\nTest suite has run to completion and test status information is available.',\n        tag: 3069,\n        type: 'int',\n        codeSet: 'TestSuiteActivityStateCodeSet',\n    },\n    {\n        id: '3069004',\n        name: 'Cancelled',\n        value: '3',\n        sort: 3,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description:\n            'Cancelled\\n\\nTest suite has not run to completion due to a cancellation by the user or an abnormal termination by the test system. Test suite status information is undefined.',\n        tag: 3069,\n        type: 'int',\n        codeSet: 'TestSuiteActivityStateCodeSet',\n    },\n    {\n        id: '3070001',\n        name: 'Undefined',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Undefined',\n        tag: 3070,\n        type: 'int',\n        codeSet: 'TestSuiteStatusCodeSet',\n    },\n    {\n        id: '3070002',\n        name: 'Pass',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Pass',\n        tag: 3070,\n        type: 'int',\n        codeSet: 'TestSuiteStatusCodeSet',\n    },\n    {\n        id: '3070003',\n        name: 'Fail',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Fail',\n        tag: 3070,\n        type: 'int',\n        codeSet: 'TestSuiteStatusCodeSet',\n    },\n    {\n        id: '3070004',\n        name: 'Warning',\n        value: '3',\n        sort: 3,\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Warning',\n        tag: 3070,\n        type: 'int',\n        codeSet: 'TestSuiteStatusCodeSet',\n    },\n    {\n        id: '3073001',\n        name: 'Bloomberg',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '293',\n        description: 'Bloomberg\\n\\nAlso referred to as BFIX.',\n        tag: 3073,\n        type: 'int',\n        codeSet: 'FXBenchmarkCodeSet',\n    },\n    {\n        id: '3073002',\n        name: 'CentralBank',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '293',\n        description: 'Central Bank',\n        tag: 3073,\n        type: 'int',\n        codeSet: 'FXBenchmarkCodeSet',\n    },\n    {\n        id: '3073003',\n        name: 'WMR',\n        value: '3',\n        sort: 3,\n        added: 'FIX.Latest',\n        addedEP: '293',\n        description: 'WMR',\n        tag: 3073,\n        type: 'int',\n        codeSet: 'FXBenchmarkCodeSet',\n    },\n    {\n        id: '3073004',\n        name: 'MitsubishiUFJ',\n        value: '4',\n        sort: 4,\n        added: 'FIX.Latest',\n        addedEP: '293',\n        description: 'Mitsubishi-UFJ\\n\\nAlso referred to as the Tokyo Fix.',\n        tag: 3073,\n        type: 'int',\n        codeSet: 'FXBenchmarkCodeSet',\n    },\n    {\n        id: '3073005',\n        name: 'LondonBullionMarketAssociation',\n        value: '5',\n        sort: 5,\n        added: 'FIX.Latest',\n        addedEP: '293',\n        description:\n            'London Bullion Market Association\\n\\nGold and Silver fixes are LBMA rates generated by ICE; Platinum and palladium fixes are LBMA rates generated by LME.',\n        tag: 3073,\n        type: 'int',\n        codeSet: 'FXBenchmarkCodeSet',\n    },\n    {\n        id: '3073006',\n        name: 'LondonMetalExchange',\n        value: '6',\n        sort: 6,\n        added: 'FIX.Latest',\n        addedEP: '293',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'London Metal Exchange\\n\\nBase metal prices come from the LME. LBMA should be used for platinum and palladium even though these are LME rates.',\n        tag: 3073,\n        type: 'int',\n        codeSet: 'FXBenchmarkCodeSet',\n    },\n    {\n        id: '3073007',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.Latest',\n        addedEP: '293',\n        description:\n            'Other\\n\\nAn appropriate reference page, ReferencePage(1448), at the specified RateSource(1446) needs to be specified.',\n        tag: 3073,\n        type: 'int',\n        codeSet: 'FXBenchmarkCodeSet',\n    },\n    {\n        id: '3077001',\n        name: 'CertificateInformation',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description:\n            'Certificate information\\n\\nThe recipient of the request is asked to provide certificates based on the criteria defined as part of the request.',\n        tag: 3077,\n        type: 'int',\n        codeSet: 'AlgoCertificateRequestTypeCodeSet',\n    },\n    {\n        id: '3077002',\n        name: 'GenerateCertificate',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description:\n            'Generate certificate\\n\\nThe recipient of the request is asked to generate a new certificate based on the information defined or referenced in the request.',\n        tag: 3077,\n        type: 'int',\n        codeSet: 'AlgoCertificateRequestTypeCodeSet',\n    },\n    {\n        id: '3077003',\n        name: 'ChangeCertificateStatus',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description:\n            'Change certificate status\\n\\nThe recipient of the request is asked to update the status of the certificate referenced in the request. The requested status is provided with AlgoCertificateStatus(3022).',\n        tag: 3077,\n        type: 'int',\n        codeSet: 'AlgoCertificateRequestTypeCodeSet',\n    },\n    {\n        id: '3077004',\n        name: 'ForwardCertificate',\n        value: '3',\n        sort: 3,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description:\n            'Forward certificate\\n\\nThe recipient of the request is asked to submit the certificate referenced in the request to the venue identified in the TargetParties component.',\n        tag: 3077,\n        type: 'int',\n        codeSet: 'AlgoCertificateRequestTypeCodeSet',\n    },\n    {\n        id: '3078001',\n        name: 'CertificateInformation',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        updated: 'FIX.Latest',\n        updatedEP: '303',\n        description:\n            'Certificate information\\n\\nThe recipient of the report is informed about a certificate. This can be used when sending an approved certificate to a venue for registration.',\n        tag: 3078,\n        type: 'int',\n        codeSet: 'AlgoCertificateReportTypeCodeSet',\n    },\n    {\n        id: '3078002',\n        name: 'CertificateStateChanged',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description:\n            'Certificate state changed\\n\\nThe recipient of the report is informed that the status of a certificate has changed. The new state is provided with AlgoCertificateStatus(3022).',\n        tag: 3078,\n        type: 'int',\n        codeSet: 'AlgoCertificateReportTypeCodeSet',\n    },\n    {\n        id: '3078003',\n        name: 'CertificateRevoked',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '303',\n        description:\n            'Certificate revoked\\n\\nThe recipient of the report is informed that the certificate has been revoked. This can be used when revoking a registered certificate from a venue.',\n        tag: 3078,\n        type: 'int',\n        codeSet: 'AlgoCertificateReportTypeCodeSet',\n    },\n    {\n        id: '3094001',\n        name: 'MarketDataGatewayIPAddress',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Market data gateway IP address\\n\\nIP address of the market data gateway of a venue.',\n        tag: 3094,\n        type: 'int',\n        codeSet: 'TestGatewayDetailTypeCodeSet',\n    },\n    {\n        id: '3094002',\n        name: 'MarketDataGatewayPortNumber',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description:\n            'Market data gateway port number\\n\\nPort for the IP address of the market data gateway of a venue.',\n        tag: 3094,\n        type: 'int',\n        codeSet: 'TestGatewayDetailTypeCodeSet',\n    },\n    {\n        id: '3094003',\n        name: 'MarketDataGatewayDataFormat',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Market data gateway data format\\n\\nData format for market data.',\n        tag: 3094,\n        type: 'int',\n        codeSet: 'TestGatewayDetailTypeCodeSet',\n    },\n    {\n        id: '3094004',\n        name: 'MarketDataGatewayFormatVersion',\n        value: '3',\n        sort: 3,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Market data gateway format version\\n\\nVersion of the data format for market data.',\n        tag: 3094,\n        type: 'int',\n        codeSet: 'TestGatewayDetailTypeCodeSet',\n    },\n    {\n        id: '3094005',\n        name: 'MarketDataGatewayRoutingIPAddress',\n        value: '4',\n        sort: 4,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description:\n            'Market data gateway routing IP address\\n\\nIntermediate gateway that is needed to setup the IP route to the actual market data gateway.',\n        tag: 3094,\n        type: 'int',\n        codeSet: 'TestGatewayDetailTypeCodeSet',\n    },\n    {\n        id: '3094006',\n        name: 'OrderEntryGatewayIPAddress',\n        value: '5',\n        sort: 5,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Order entry gateway IP address\\n\\nIP address of the order entry gateway of a venue.',\n        tag: 3094,\n        type: 'int',\n        codeSet: 'TestGatewayDetailTypeCodeSet',\n    },\n    {\n        id: '3094007',\n        name: 'OrderEntryGatewayPortNumber',\n        value: '6',\n        sort: 6,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description:\n            'Order entry gateway port number\\n\\nPort for the IP address of the order entry gateway of a venue.',\n        tag: 3094,\n        type: 'int',\n        codeSet: 'TestGatewayDetailTypeCodeSet',\n    },\n    {\n        id: '3094008',\n        name: 'OrderEntryGatewayDataFormat',\n        value: '7',\n        sort: 7,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description: 'Order entry gateway data format\\n\\nData format for order entry.',\n        tag: 3094,\n        type: 'int',\n        codeSet: 'TestGatewayDetailTypeCodeSet',\n    },\n    {\n        id: '3094009',\n        name: 'OrderEntryGatewayFormatVersion',\n        value: '8',\n        sort: 8,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Order entry gateway format version\\n\\nVersion of the data format for order entry.',\n        tag: 3094,\n        type: 'int',\n        codeSet: 'TestGatewayDetailTypeCodeSet',\n    },\n    {\n        id: '3094010',\n        name: 'OrderEntryGatewayRoutingIPAddress',\n        value: '9',\n        sort: 9,\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description:\n            'Order entry gateway routing IP address\\n\\nIntermediate gateway that is needed to setup the IP route to the actual order entry gateway.',\n        tag: 3094,\n        type: 'int',\n        codeSet: 'TestGatewayDetailTypeCodeSet',\n    },\n    {\n        id: '3105001',\n        name: 'NoQualityIssue',\n        value: '0',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'No data quality issue',\n        tag: 3105,\n        type: 'int',\n        codeSet: 'MDQualityIndicatorCodeSet',\n    },\n    {\n        id: '3105002',\n        name: 'QualityIssue',\n        value: '1',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Data quality issue',\n        tag: 3105,\n        type: 'int',\n        codeSet: 'MDQualityIndicatorCodeSet',\n    },\n    {\n        id: '3106000',\n        name: 'Accepted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Accepted',\n        tag: 3106,\n        type: 'int',\n        codeSet: 'MDEntryStatusCodeSet',\n    },\n    {\n        id: '3106001',\n        name: 'AcceptedWithErrors',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Accepted with errors\\n\\nIn the context of the EU Consolidated Tape, this is used to identify suspicious data that may be flagged as such with MDQualityIndicator(3105) when forwarded from the CTP to the data user.',\n        tag: 3106,\n        type: 'int',\n        codeSet: 'MDEntryStatusCodeSet',\n    },\n    {\n        id: '3106002',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Rejected',\n        tag: 3106,\n        type: 'int',\n        codeSet: 'MDEntryStatusCodeSet',\n    },\n    {\n        id: '3113000',\n        name: 'ReceivedNotYetProcessed',\n        value: '0',\n        sort: 0,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Received, not yet processed',\n        tag: 3113,\n        type: 'int',\n        codeSet: 'ReportStatusCodeSet',\n    },\n    {\n        id: '3113001',\n        name: 'Accepted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Accepted',\n        tag: 3113,\n        type: 'int',\n        codeSet: 'ReportStatusCodeSet',\n    },\n    {\n        id: '3113002',\n        name: 'Rejected',\n        value: '2',\n        sort: 2,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Rejected',\n        tag: 3113,\n        type: 'int',\n        codeSet: 'ReportStatusCodeSet',\n    },\n    {\n        id: '3113003',\n        name: 'AcceptedWithErrors',\n        value: '3',\n        sort: 3,\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Accepted with errors\\n\\nThis value applies to report responses containing a list of entries having an individual status that may or may not lead to a rejection of the entire report, e.g. MarketDataAck(35=EQ).',\n        tag: 3113,\n        type: 'int',\n        codeSet: 'ReportStatusCodeSet',\n    },\n    {\n        id: '40027001',\n        name: 'Bid',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Bid',\n        tag: 40027,\n        type: 'int',\n        codeSet: 'CashSettlQuoteMethodCodeSet',\n    },\n    {\n        id: '40027002',\n        name: 'Mid',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Mid',\n        tag: 40027,\n        type: 'int',\n        codeSet: 'CashSettlQuoteMethodCodeSet',\n    },\n    {\n        id: '40027003',\n        name: 'Offer',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Offer',\n        tag: 40027,\n        type: 'int',\n        codeSet: 'CashSettlQuoteMethodCodeSet',\n    },\n    {\n        id: '40038001',\n        name: 'Market',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Market',\n        tag: 40038,\n        type: 'int',\n        codeSet: 'CashSettlValuationMethodCodeSet',\n    },\n    {\n        id: '40038002',\n        name: 'Highest',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Highest',\n        tag: 40038,\n        type: 'int',\n        codeSet: 'CashSettlValuationMethodCodeSet',\n    },\n    {\n        id: '40038003',\n        name: 'AverageMarket',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Average market',\n        tag: 40038,\n        type: 'int',\n        codeSet: 'CashSettlValuationMethodCodeSet',\n    },\n    {\n        id: '40038004',\n        name: 'AverageHighest',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Average highest',\n        tag: 40038,\n        type: 'int',\n        codeSet: 'CashSettlValuationMethodCodeSet',\n    },\n    {\n        id: '40038005',\n        name: 'BlendedMarket',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Blended market',\n        tag: 40038,\n        type: 'int',\n        codeSet: 'CashSettlValuationMethodCodeSet',\n    },\n    {\n        id: '40038006',\n        name: 'BlendedHighest',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Blended highest',\n        tag: 40038,\n        type: 'int',\n        codeSet: 'CashSettlValuationMethodCodeSet',\n    },\n    {\n        id: '40038007',\n        name: 'AverageBlendedMarket',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Average blended market',\n        tag: 40038,\n        type: 'int',\n        codeSet: 'CashSettlValuationMethodCodeSet',\n    },\n    {\n        id: '40038008',\n        name: 'AverageBlendedHighest',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Average blended highest',\n        tag: 40038,\n        type: 'int',\n        codeSet: 'CashSettlValuationMethodCodeSet',\n    },\n    {\n        id: '40050001',\n        name: 'PaymentCashSettlement',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Payment / cash settlement',\n        tag: 40050,\n        type: 'int',\n        codeSet: 'StreamTypeCodeSet',\n    },\n    {\n        id: '40050002',\n        name: 'PhysicalDelivery',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Physical delivery',\n        tag: 40050,\n        type: 'int',\n        codeSet: 'StreamTypeCodeSet',\n    },\n    {\n        id: '40091001',\n        name: 'MandatoryEarlyTermination',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Mandatory early termination',\n        tag: 40091,\n        type: 'int',\n        codeSet: 'ProvisionTypeCodeSet',\n    },\n    {\n        id: '40091002',\n        name: 'OptionalEarlyTermination',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Optional early termination',\n        tag: 40091,\n        type: 'int',\n        codeSet: 'ProvisionTypeCodeSet',\n    },\n    {\n        id: '40091003',\n        name: 'Cancelable',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Cancelable',\n        tag: 40091,\n        type: 'int',\n        codeSet: 'ProvisionTypeCodeSet',\n    },\n    {\n        id: '40091004',\n        name: 'Extendable',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description:\n            'Extendable\\n\\n\\n                        The contract can be extended by either party usually with a specific time notice prior to the expiry date. In the context of EU SFTR reporting this corresponds to \"termination optionality\" code \"ETSB\".',\n        tag: 40091,\n        type: 'int',\n        codeSet: 'ProvisionTypeCodeSet',\n    },\n    {\n        id: '40091005',\n        name: 'MutualEarlyTermination',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Mutual early termination',\n        tag: 40091,\n        type: 'int',\n        codeSet: 'ProvisionTypeCodeSet',\n    },\n    {\n        id: '40091006',\n        name: 'Evergreen',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Evergreen\\n\\n\\n                        The contract automatically renews after the expiry date until one party gives the other notice to terminate. In the context of EU SFTR reporting this corresponds to \"termination optionality\" code \"EGRN\".',\n        tag: 40091,\n        type: 'int',\n        codeSet: 'ProvisionTypeCodeSet',\n    },\n    {\n        id: '40091007',\n        name: 'Callable',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Callable\\n\\n\\n                        Contract is callable.',\n        tag: 40091,\n        type: 'int',\n        codeSet: 'ProvisionTypeCodeSet',\n    },\n    {\n        id: '40091008',\n        name: 'Puttable',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Puttable\\n\\n\\n                        Contract is puttable.',\n        tag: 40091,\n        type: 'int',\n        codeSet: 'ProvisionTypeCodeSet',\n    },\n    {\n        id: '40097001',\n        name: 'Day',\n        value: 'D',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Day',\n        tag: 40097,\n        type: 'String',\n        codeSet: 'ProvisionDateTenorUnitCodeSet',\n    },\n    {\n        id: '40097002',\n        name: 'Week',\n        value: 'Wk',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Week',\n        tag: 40097,\n        type: 'String',\n        codeSet: 'ProvisionDateTenorUnitCodeSet',\n    },\n    {\n        id: '40097003',\n        name: 'Month',\n        value: 'Mo',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Month',\n        tag: 40097,\n        type: 'String',\n        codeSet: 'ProvisionDateTenorUnitCodeSet',\n    },\n    {\n        id: '40097004',\n        name: 'Year',\n        value: 'Yr',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Year',\n        tag: 40097,\n        type: 'String',\n        codeSet: 'ProvisionDateTenorUnitCodeSet',\n    },\n    {\n        id: '40098001',\n        name: 'ExercisingParty',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Exercising party',\n        tag: 40098,\n        type: 'int',\n        codeSet: 'ProvisionCalculationAgentCodeSet',\n    },\n    {\n        id: '40098002',\n        name: 'NonExercisingParty',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Non-exercising party',\n        tag: 40098,\n        type: 'int',\n        codeSet: 'ProvisionCalculationAgentCodeSet',\n    },\n    {\n        id: '40098003',\n        name: 'MasterAgreeent',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'As specified in the master agreement',\n        tag: 40098,\n        type: 'int',\n        codeSet: 'ProvisionCalculationAgentCodeSet',\n    },\n    {\n        id: '40098004',\n        name: 'Supplement',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'As specified in the standard terms supplement',\n        tag: 40098,\n        type: 'int',\n        codeSet: 'ProvisionCalculationAgentCodeSet',\n    },\n    {\n        id: '40099001',\n        name: 'Buy',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Buy',\n        tag: 40099,\n        type: 'int',\n        codeSet: 'ProvisionOptionSinglePartyBuyerSideCodeSet',\n    },\n    {\n        id: '40099002',\n        name: 'Sell',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Sell',\n        tag: 40099,\n        type: 'int',\n        codeSet: 'ProvisionOptionSinglePartyBuyerSideCodeSet',\n    },\n    {\n        id: '40108001',\n        name: 'CashPrice',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Cash price',\n        tag: 40108,\n        type: 'int',\n        codeSet: 'ProvisionCashSettlMethodCodeSet',\n    },\n    {\n        id: '40108002',\n        name: 'CashPriceAlternate',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Cash price alternate',\n        tag: 40108,\n        type: 'int',\n        codeSet: 'ProvisionCashSettlMethodCodeSet',\n    },\n    {\n        id: '40108003',\n        name: 'ParYieldCurveAdjusted',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Par yield curve adjusted',\n        tag: 40108,\n        type: 'int',\n        codeSet: 'ProvisionCashSettlMethodCodeSet',\n    },\n    {\n        id: '40108004',\n        name: 'ZeroCouponYieldCurveAdjusted',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Zero coupon yield curve adjusted',\n        tag: 40108,\n        type: 'int',\n        codeSet: 'ProvisionCashSettlMethodCodeSet',\n    },\n    {\n        id: '40108005',\n        name: 'ParYieldCurveUnadjusted',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Par yield curve unadjusted',\n        tag: 40108,\n        type: 'int',\n        codeSet: 'ProvisionCashSettlMethodCodeSet',\n    },\n    {\n        id: '40108006',\n        name: 'CrossCurrency',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Cross currency',\n        tag: 40108,\n        type: 'int',\n        codeSet: 'ProvisionCashSettlMethodCodeSet',\n    },\n    {\n        id: '40108007',\n        name: 'CollateralizedPrice',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Collateralized price',\n        tag: 40108,\n        type: 'int',\n        codeSet: 'ProvisionCashSettlMethodCodeSet',\n    },\n    {\n        id: '40111001',\n        name: 'Bid',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Bid',\n        tag: 40111,\n        type: 'int',\n        codeSet: 'ProvisionCashSettlQuoteTypeCodeSet',\n    },\n    {\n        id: '40111002',\n        name: 'Mid',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Mid',\n        tag: 40111,\n        type: 'int',\n        codeSet: 'ProvisionCashSettlQuoteTypeCodeSet',\n    },\n    {\n        id: '40111003',\n        name: 'Offer',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Offer',\n        tag: 40111,\n        type: 'int',\n        codeSet: 'ProvisionCashSettlQuoteTypeCodeSet',\n    },\n    {\n        id: '40111004',\n        name: 'ExercisingPartyPays',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Exercising party pays\\n\\n\\n                        See 2000 ISDA Definitions, Section 17.2, Certain Definitions Relating to Cash Settlement, paragraph (j) for definition of \"exercising party pays\".',\n        tag: 40111,\n        type: 'int',\n        codeSet: 'ProvisionCashSettlQuoteTypeCodeSet',\n    },\n    {\n        id: '40126001',\n        name: 'Day',\n        value: 'D',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Day',\n        tag: 40126,\n        type: 'String',\n        codeSet: 'ProvisionOptionExerciseEarliestDateOffsetUnitCodeSet',\n    },\n    {\n        id: '40126002',\n        name: 'Week',\n        value: 'Wk',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Week',\n        tag: 40126,\n        type: 'String',\n        codeSet: 'ProvisionOptionExerciseEarliestDateOffsetUnitCodeSet',\n    },\n    {\n        id: '40126003',\n        name: 'Month',\n        value: 'Mo',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Month',\n        tag: 40126,\n        type: 'String',\n        codeSet: 'ProvisionOptionExerciseEarliestDateOffsetUnitCodeSet',\n    },\n    {\n        id: '40126004',\n        name: 'Year',\n        value: 'Yr',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Year',\n        tag: 40126,\n        type: 'String',\n        codeSet: 'ProvisionOptionExerciseEarliestDateOffsetUnitCodeSet',\n    },\n    {\n        id: '40144001',\n        name: 'Unadjusted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Unadjusted',\n        tag: 40144,\n        type: 'int',\n        codeSet: 'ProvisionOptionExerciseFixedDateTypeCodeSet',\n    },\n    {\n        id: '40144002',\n        name: 'Adjusted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Adjusted',\n        tag: 40144,\n        type: 'int',\n        codeSet: 'ProvisionOptionExerciseFixedDateTypeCodeSet',\n    },\n    {\n        id: '40173001',\n        name: 'Unadjusted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Unadjusted',\n        tag: 40173,\n        type: 'int',\n        codeSet: 'ProvisionCashSettlPaymentDateTypeCodeSet',\n    },\n    {\n        id: '40173002',\n        name: 'Adjusted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Adjusted',\n        tag: 40173,\n        type: 'int',\n        codeSet: 'ProvisionCashSettlPaymentDateTypeCodeSet',\n    },\n    {\n        id: '40196001',\n        name: 'Day',\n        value: 'D',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Day',\n        tag: 40196,\n        type: 'String',\n        codeSet: 'ProtectionTermEventUnitCodeSet',\n    },\n    {\n        id: '40196002',\n        name: 'Week',\n        value: 'Wk',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Week',\n        tag: 40196,\n        type: 'String',\n        codeSet: 'ProtectionTermEventUnitCodeSet',\n    },\n    {\n        id: '40196003',\n        name: 'Month',\n        value: 'Mo',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Month',\n        tag: 40196,\n        type: 'String',\n        codeSet: 'ProtectionTermEventUnitCodeSet',\n    },\n    {\n        id: '40196004',\n        name: 'Year',\n        value: 'Yr',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Year',\n        tag: 40196,\n        type: 'String',\n        codeSet: 'ProtectionTermEventUnitCodeSet',\n    },\n    {\n        id: '40197001',\n        name: 'Business',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Business',\n        tag: 40197,\n        type: 'int',\n        codeSet: 'ProtectionTermEventDayTypeCodeSet',\n    },\n    {\n        id: '40197002',\n        name: 'Calendar',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Calendar',\n        tag: 40197,\n        type: 'int',\n        codeSet: 'ProtectionTermEventDayTypeCodeSet',\n    },\n    {\n        id: '40197003',\n        name: 'CommodityBusiness',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Commodity business',\n        tag: 40197,\n        type: 'int',\n        codeSet: 'ProtectionTermEventDayTypeCodeSet',\n    },\n    {\n        id: '40197004',\n        name: 'CurrencyBusiness',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Currency business',\n        tag: 40197,\n        type: 'int',\n        codeSet: 'ProtectionTermEventDayTypeCodeSet',\n    },\n    {\n        id: '40197005',\n        name: 'ExchangeBusiness',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Exchange business',\n        tag: 40197,\n        type: 'int',\n        codeSet: 'ProtectionTermEventDayTypeCodeSet',\n    },\n    {\n        id: '40197006',\n        name: 'ScheduledTradingDay',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Scheduled trading day',\n        tag: 40197,\n        type: 'int',\n        codeSet: 'ProtectionTermEventDayTypeCodeSet',\n    },\n    {\n        id: '40200001',\n        name: 'RestructuringMultipleHoldingObligations',\n        value: 'H',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Retructuring - multiple holding obligations\\n\\n\\n                        In relation to a restructuring credit event, unless multiple holder obligation is not specified restructurings are limited to multiple holder obligations. A multiple holder obligation means an obligation that is held by more than three holders that are not affiliates of each other and where at least two thirds of the holders must agree to the event that constitutes the restructuring credit event. ISDA 2003 Term: Multiple Holder Obligation.',\n        tag: 40200,\n        type: 'char',\n        codeSet: 'ProtectionTermEventQualifierCodeSet',\n    },\n    {\n        id: '40200002',\n        name: 'RestructuringMultipleCreditEventNotices',\n        value: 'E',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Restructuring - multiple credit event notices\\n\\n\\n                        Presence of this element and value set to 'true' indicates that Section 3.9 of the 2003 Credit Derivatives Definitions shall apply. Absence of this element indicates that Section 3.9 shall not apply. NOTE: Not allowed under ISDA Credit 1999.\",\n        tag: 40200,\n        type: 'char',\n        codeSet: 'ProtectionTermEventQualifierCodeSet',\n    },\n    {\n        id: '40200003',\n        name: 'FloatingRateInterestShortfall',\n        value: 'C',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Floating rate interest shortfall\\n\\n\\n                        Indicates compounding.',\n        tag: 40200,\n        type: 'char',\n        codeSet: 'ProtectionTermEventQualifierCodeSet',\n    },\n    {\n        id: '40213001',\n        name: 'Brokerage',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Brokerage',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213002',\n        name: 'UpfrontFee',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Upfront fee',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213003',\n        name: 'IndependentAmountCollateral',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Independent amount / collateral',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213004',\n        name: 'PrincipalExchange',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Principal exchange',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213005',\n        name: 'NovationTermination',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Novation / termination',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213006',\n        name: 'EarlyTerminationProvision',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Early termination provision',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213007',\n        name: 'CancelableProvision',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '203',\n        description: 'Cancelable provision',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213008',\n        name: 'ExtendibleProvision',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Extendible provision',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213009',\n        name: 'CapRateProvision',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Cap rate provision',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213010',\n        name: 'FloorRateProvision',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Floor rate provision',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213011',\n        name: 'OptionPremium',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Option premium',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213012',\n        name: 'SettlementPayment',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Settlement payment',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213013',\n        name: 'CashSettl',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Cash settlement',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213014',\n        name: 'SecurityLending',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Security lending\\n\\n\\n                        Fee that the borrower of the security or commodity pays to the lender. The basis rate is specified in PaymentFixedRate(43097). A security lending fee payment may be periodic, in which case specify PaymentFrequencyPeriod(43102) and PaymentFrequencyUnit(43103).',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213015',\n        name: 'Rebate',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Rebate\\n\\n\\n                        For contracts calling for rebate payment(s), e.g. Securities Lending, normally specified as a fixed or floating rate rather than a fixed amount. A rebate payment may be periodic, in which case specify PaymentFrequencyPeriod(43102) and PaymentFrequencyUnit(43103).',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40213016',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Other',\n        tag: 40213,\n        type: 'int',\n        codeSet: 'PaymentTypeCodeSet',\n    },\n    {\n        id: '40214001',\n        name: 'Buy',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Buy',\n        tag: 40214,\n        type: 'int',\n        codeSet: 'PaymentPaySideCodeSet',\n    },\n    {\n        id: '40214002',\n        name: 'Sell',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Sell',\n        tag: 40214,\n        type: 'int',\n        codeSet: 'PaymentPaySideCodeSet',\n    },\n    {\n        id: '40227001',\n        name: 'Standard',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Standard',\n        tag: 40227,\n        type: 'int',\n        codeSet: 'PaymentSettlStyleCodeSet',\n    },\n    {\n        id: '40227002',\n        name: 'Net',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Net',\n        tag: 40227,\n        type: 'int',\n        codeSet: 'PaymentSettlStyleCodeSet',\n    },\n    {\n        id: '40227003',\n        name: 'StandardfNet',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Standard and net',\n        tag: 40227,\n        type: 'int',\n        codeSet: 'PaymentSettlStyleCodeSet',\n    },\n    {\n        id: '40738001',\n        name: 'Periodic',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Periodic (default)',\n        tag: 40738,\n        type: 'int',\n        codeSet: 'PaymentStreamTypeCodeSet',\n    },\n    {\n        id: '40738002',\n        name: 'Initial',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Initial',\n        tag: 40738,\n        type: 'int',\n        codeSet: 'PaymentStreamTypeCodeSet',\n    },\n    {\n        id: '40738003',\n        name: 'Single',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Single',\n        tag: 40738,\n        type: 'int',\n        codeSet: 'PaymentStreamTypeCodeSet',\n    },\n    {\n        id: '40738004',\n        name: 'Dividend',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Dividend',\n        tag: 40738,\n        type: 'int',\n        codeSet: 'PaymentStreamTypeCodeSet',\n    },\n    {\n        id: '40738005',\n        name: 'Interest',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Interest',\n        tag: 40738,\n        type: 'int',\n        codeSet: 'PaymentStreamTypeCodeSet',\n    },\n    {\n        id: '40738006',\n        name: 'DividendReturn',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Dividend return',\n        tag: 40738,\n        type: 'int',\n        codeSet: 'PaymentStreamTypeCodeSet',\n    },\n    {\n        id: '40738007',\n        name: 'PriceReturn',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Price return',\n        tag: 40738,\n        type: 'int',\n        codeSet: 'PaymentStreamTypeCodeSet',\n    },\n    {\n        id: '40738008',\n        name: 'TotalReturn',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Total return',\n        tag: 40738,\n        type: 'int',\n        codeSet: 'PaymentStreamTypeCodeSet',\n    },\n    {\n        id: '40738009',\n        name: 'Variance',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Variance',\n        tag: 40738,\n        type: 'int',\n        codeSet: 'PaymentStreamTypeCodeSet',\n    },\n    {\n        id: '40738010',\n        name: 'Correlation',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Correlation',\n        tag: 40738,\n        type: 'int',\n        codeSet: 'PaymentStreamTypeCodeSet',\n    },\n    {\n        id: '40744001',\n        name: 'Standard',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Standard',\n        tag: 40744,\n        type: 'int',\n        codeSet: 'PaymentStreamDiscountTypeCodeSet',\n    },\n    {\n        id: '40744002',\n        name: 'FRA',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Forward Rate Agreement (FRA)',\n        tag: 40744,\n        type: 'int',\n        codeSet: 'PaymentStreamDiscountTypeCodeSet',\n    },\n    {\n        id: '40747001',\n        name: 'None',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'None',\n        tag: 40747,\n        type: 'int',\n        codeSet: 'PaymentStreamCompoundingMethodCodeSet',\n    },\n    {\n        id: '40747002',\n        name: 'Flat',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Flat',\n        tag: 40747,\n        type: 'int',\n        codeSet: 'PaymentStreamCompoundingMethodCodeSet',\n    },\n    {\n        id: '40747003',\n        name: 'Straight',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Straight',\n        tag: 40747,\n        type: 'int',\n        codeSet: 'PaymentStreamCompoundingMethodCodeSet',\n    },\n    {\n        id: '40747004',\n        name: 'SpreadExclusive',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Spread exclusive',\n        tag: 40747,\n        type: 'int',\n        codeSet: 'PaymentStreamCompoundingMethodCodeSet',\n    },\n    {\n        id: '40754001',\n        name: 'Day',\n        value: 'D',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Day',\n        tag: 40754,\n        type: 'String',\n        codeSet: 'PaymentStreamPaymentFrequencyUnitCodeSet',\n    },\n    {\n        id: '40754002',\n        name: 'Week',\n        value: 'Wk',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Week',\n        tag: 40754,\n        type: 'String',\n        codeSet: 'PaymentStreamPaymentFrequencyUnitCodeSet',\n    },\n    {\n        id: '40754003',\n        name: 'Month',\n        value: 'Mo',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Month',\n        tag: 40754,\n        type: 'String',\n        codeSet: 'PaymentStreamPaymentFrequencyUnitCodeSet',\n    },\n    {\n        id: '40754004',\n        name: 'Year',\n        value: 'Yr',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Year',\n        tag: 40754,\n        type: 'String',\n        codeSet: 'PaymentStreamPaymentFrequencyUnitCodeSet',\n    },\n    {\n        id: '40754005',\n        name: 'Term',\n        value: 'T',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Term',\n        tag: 40754,\n        type: 'String',\n        codeSet: 'PaymentStreamPaymentFrequencyUnitCodeSet',\n    },\n    {\n        id: '40760001',\n        name: 'Day',\n        value: 'D',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Day',\n        tag: 40760,\n        type: 'String',\n        codeSet: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n    },\n    {\n        id: '40760002',\n        name: 'Week',\n        value: 'Wk',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Week',\n        tag: 40760,\n        type: 'String',\n        codeSet: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n    },\n    {\n        id: '40760003',\n        name: 'Month',\n        value: 'Mo',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Month',\n        tag: 40760,\n        type: 'String',\n        codeSet: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n    },\n    {\n        id: '40760004',\n        name: 'Year',\n        value: 'Yr',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Year',\n        tag: 40760,\n        type: 'String',\n        codeSet: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n    },\n    {\n        id: '40766001',\n        name: 'Monday',\n        value: 'MON',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Monday',\n        tag: 40766,\n        type: 'String',\n        codeSet: 'PaymentStreamResetWeeklyRollConventionCodeSet',\n    },\n    {\n        id: '40766002',\n        name: 'Tuesday',\n        value: 'TUE',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Tuesday',\n        tag: 40766,\n        type: 'String',\n        codeSet: 'PaymentStreamResetWeeklyRollConventionCodeSet',\n    },\n    {\n        id: '40766003',\n        name: 'Wednesday',\n        value: 'WED',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Wednesday',\n        tag: 40766,\n        type: 'String',\n        codeSet: 'PaymentStreamResetWeeklyRollConventionCodeSet',\n    },\n    {\n        id: '40766004',\n        name: 'Thursday',\n        value: 'THU',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Thursday',\n        tag: 40766,\n        type: 'String',\n        codeSet: 'PaymentStreamResetWeeklyRollConventionCodeSet',\n    },\n    {\n        id: '40766005',\n        name: 'Friday',\n        value: 'FRI',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Friday',\n        tag: 40766,\n        type: 'String',\n        codeSet: 'PaymentStreamResetWeeklyRollConventionCodeSet',\n    },\n    {\n        id: '40766006',\n        name: 'Saturday',\n        value: 'SAT',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Saturday',\n        tag: 40766,\n        type: 'String',\n        codeSet: 'PaymentStreamResetWeeklyRollConventionCodeSet',\n    },\n    {\n        id: '40766007',\n        name: 'Sunday',\n        value: 'SUN',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Sunday',\n        tag: 40766,\n        type: 'String',\n        codeSet: 'PaymentStreamResetWeeklyRollConventionCodeSet',\n    },\n    {\n        id: '40790001',\n        name: 'Bloomberg',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Bloomberg',\n        tag: 40790,\n        type: 'int',\n        codeSet: 'PaymentStreamRateIndexSourceCodeSet',\n    },\n    {\n        id: '40790002',\n        name: 'Reuters',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reuters',\n        tag: 40790,\n        type: 'int',\n        codeSet: 'PaymentStreamRateIndexSourceCodeSet',\n    },\n    {\n        id: '40790003',\n        name: 'Telerate',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Telerate',\n        tag: 40790,\n        type: 'int',\n        codeSet: 'PaymentStreamRateIndexSourceCodeSet',\n    },\n    {\n        id: '40790004',\n        name: 'Other',\n        value: '99',\n        sort: 99,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Other',\n        tag: 40790,\n        type: 'int',\n        codeSet: 'PaymentStreamRateIndexSourceCodeSet',\n    },\n    {\n        id: '40791001',\n        name: 'Day',\n        value: 'D',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Day',\n        tag: 40791,\n        type: 'String',\n        codeSet: 'PaymentStreamRateIndexCurveUnitCodeSet',\n    },\n    {\n        id: '40791002',\n        name: 'Week',\n        value: 'Wk',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Week',\n        tag: 40791,\n        type: 'String',\n        codeSet: 'PaymentStreamRateIndexCurveUnitCodeSet',\n    },\n    {\n        id: '40791003',\n        name: 'Month',\n        value: 'Mo',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Month',\n        tag: 40791,\n        type: 'String',\n        codeSet: 'PaymentStreamRateIndexCurveUnitCodeSet',\n    },\n    {\n        id: '40791004',\n        name: 'Year',\n        value: 'Yr',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Year',\n        tag: 40791,\n        type: 'String',\n        codeSet: 'PaymentStreamRateIndexCurveUnitCodeSet',\n    },\n    {\n        id: '40795001',\n        name: 'Short',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Short',\n        tag: 40795,\n        type: 'int',\n        codeSet: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n    },\n    {\n        id: '40795002',\n        name: 'Long',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Long',\n        tag: 40795,\n        type: 'int',\n        codeSet: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n    },\n    {\n        id: '40796001',\n        name: 'BondEquivalentYield',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Bond equivalent yield',\n        tag: 40796,\n        type: 'int',\n        codeSet: 'PaymentStreamRateTreatmentCodeSet',\n    },\n    {\n        id: '40796002',\n        name: 'MoneyMarketYield',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Money market yield',\n        tag: 40796,\n        type: 'int',\n        codeSet: 'PaymentStreamRateTreatmentCodeSet',\n    },\n    {\n        id: '40798001',\n        name: 'Buyer',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Buyer of the trade',\n        tag: 40798,\n        type: 'int',\n        codeSet: 'PaymentStreamCapRateBuySideCodeSet',\n    },\n    {\n        id: '40798002',\n        name: 'Seller',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Seller of the trade',\n        tag: 40798,\n        type: 'int',\n        codeSet: 'PaymentStreamCapRateBuySideCodeSet',\n    },\n    {\n        id: '40801001',\n        name: 'Buyer',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Buyer of the trade',\n        tag: 40801,\n        type: 'int',\n        codeSet: 'PaymentStreamFloorRateBuySideCodeSet',\n    },\n    {\n        id: '40801002',\n        name: 'Seller',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Seller of the trade',\n        tag: 40801,\n        type: 'int',\n        codeSet: 'PaymentStreamFloorRateBuySideCodeSet',\n    },\n    {\n        id: '40806001',\n        name: 'Unweighted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Unweighted',\n        tag: 40806,\n        type: 'int',\n        codeSet: 'PaymentStreamAveragingMethodCodeSet',\n    },\n    {\n        id: '40806002',\n        name: 'Weighted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Weighted',\n        tag: 40806,\n        type: 'int',\n        codeSet: 'PaymentStreamAveragingMethodCodeSet',\n    },\n    {\n        id: '40807001',\n        name: 'ZeroInterestRateMethod',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Zero interest rate method',\n        tag: 40807,\n        type: 'int',\n        codeSet: 'PaymentStreamNegativeRateTreatmentCodeSet',\n    },\n    {\n        id: '40807002',\n        name: 'NegativeInterestRateMethod',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Negative interest rate method',\n        tag: 40807,\n        type: 'int',\n        codeSet: 'PaymentStreamNegativeRateTreatmentCodeSet',\n    },\n    {\n        id: '40809001',\n        name: 'Day',\n        value: 'D',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Day',\n        tag: 40809,\n        type: 'String',\n        codeSet: 'PaymentStreamInflationLagUnitCodeSet',\n    },\n    {\n        id: '40809002',\n        name: 'Week',\n        value: 'Wk',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Week',\n        tag: 40809,\n        type: 'String',\n        codeSet: 'PaymentStreamInflationLagUnitCodeSet',\n    },\n    {\n        id: '40809003',\n        name: 'Month',\n        value: 'Mo',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Month',\n        tag: 40809,\n        type: 'String',\n        codeSet: 'PaymentStreamInflationLagUnitCodeSet',\n    },\n    {\n        id: '40809004',\n        name: 'Year',\n        value: 'Yr',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Year',\n        tag: 40809,\n        type: 'String',\n        codeSet: 'PaymentStreamInflationLagUnitCodeSet',\n    },\n    {\n        id: '40810001',\n        name: 'Business',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Business',\n        tag: 40810,\n        type: 'int',\n        codeSet: 'PaymentStreamInflationLagDayTypeCodeSet',\n    },\n    {\n        id: '40810002',\n        name: 'Calendar',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Calendar',\n        tag: 40810,\n        type: 'int',\n        codeSet: 'PaymentStreamInflationLagDayTypeCodeSet',\n    },\n    {\n        id: '40810003',\n        name: 'CommodityBusiness',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Commodity business',\n        tag: 40810,\n        type: 'int',\n        codeSet: 'PaymentStreamInflationLagDayTypeCodeSet',\n    },\n    {\n        id: '40810004',\n        name: 'CurrencyBusiness',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Currency business',\n        tag: 40810,\n        type: 'int',\n        codeSet: 'PaymentStreamInflationLagDayTypeCodeSet',\n    },\n    {\n        id: '40810005',\n        name: 'ExchangeBusiness',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Exchange business',\n        tag: 40810,\n        type: 'int',\n        codeSet: 'PaymentStreamInflationLagDayTypeCodeSet',\n    },\n    {\n        id: '40810006',\n        name: 'ScheduledTradingDay',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Scheduled trading day',\n        tag: 40810,\n        type: 'int',\n        codeSet: 'PaymentStreamInflationLagDayTypeCodeSet',\n    },\n    {\n        id: '40811001',\n        name: 'None',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'None',\n        tag: 40811,\n        type: 'int',\n        codeSet: 'PaymentStreamInflationInterpolationMethodCodeSet',\n    },\n    {\n        id: '40811002',\n        name: 'LinearZeroYield',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Linear zero yield',\n        tag: 40811,\n        type: 'int',\n        codeSet: 'PaymentStreamInflationInterpolationMethodCodeSet',\n    },\n    {\n        id: '40816001',\n        name: 'None',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'None',\n        tag: 40816,\n        type: 'int',\n        codeSet: 'PaymentStreamFRADiscountingCodeSet',\n    },\n    {\n        id: '40816002',\n        name: 'ISDA',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'International Swaps and Derivatives Association (ISDA)',\n        tag: 40816,\n        type: 'int',\n        codeSet: 'PaymentStreamFRADiscountingCodeSet',\n    },\n    {\n        id: '40816003',\n        name: 'AFMA',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Australian Financial Markets Association (AFMA)',\n        tag: 40816,\n        type: 'int',\n        codeSet: 'PaymentStreamFRADiscountingCodeSet',\n    },\n    {\n        id: '40827001',\n        name: 'Unadjusted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Unadjusted',\n        tag: 40827,\n        type: 'int',\n        codeSet: 'NonDeliverableFixingDateTypeCodeSet',\n    },\n    {\n        id: '40827002',\n        name: 'Adjusted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Adjusted',\n        tag: 40827,\n        type: 'int',\n        codeSet: 'NonDeliverableFixingDateTypeCodeSet',\n    },\n    {\n        id: '40829001',\n        name: 'Notional',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Notional',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829002',\n        name: 'CashFlow',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Cash flow',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829003',\n        name: 'FXLinkedNotional',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'FX linked notional',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829004',\n        name: 'FixedRate',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Fixed rate',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829005',\n        name: 'FutureValueNotional',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Future value notional',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829006',\n        name: 'KnownAmount',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Known amount',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829007',\n        name: 'FloatingRateMultiplier',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Floating rate multiplier',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829008',\n        name: 'Spread',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Spread',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829009',\n        name: 'CapRate',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Cap rate',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829010',\n        name: 'FloorRate',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Floor rate',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829011',\n        name: 'NonDeliverableSettlPaymentDates',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Non-deliverable settlement payment dates',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829012',\n        name: 'NonDeliverableSettlCalculationDates',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Non-deliverable settlement calculation dates',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829013',\n        name: 'NonDeliverableFXFixingDates',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Non-deliverable fixing dates.',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829014',\n        name: 'SettlPeriodNotnl',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Settlement period notional',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829015',\n        name: 'SettlPeriodPx',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Settlement period price',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829016',\n        name: 'CalcPeriod',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Calculation period',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829017',\n        name: 'DividendAccrualRateMultiplier',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Dividend accrual rate multiplier',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829018',\n        name: 'DividendAccrualRateSpread',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Dividend accrual rate spread',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829019',\n        name: 'DividendAccrualCapRate',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Dividend accrual cap rate',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829020',\n        name: 'DividendAccrualFloorRate',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Dividend accrual floor rate',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829021',\n        name: 'CompoundingRateMultiplier',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Compounding rate multiplier',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829022',\n        name: 'CompoundingRateSpread',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Compounding rate spread',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829023',\n        name: 'CompoundingCapRate',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Compounding cap rate',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40829024',\n        name: 'CompoundingFloorRate',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Compounding floor rate',\n        tag: 40829,\n        type: 'int',\n        codeSet: 'PaymentScheduleTypeCodeSet',\n    },\n    {\n        id: '40849001',\n        name: 'Initial',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Initial',\n        tag: 40849,\n        type: 'int',\n        codeSet: 'PaymentScheduleStepRelativeToCodeSet',\n    },\n    {\n        id: '40849002',\n        name: 'Previous',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Previous',\n        tag: 40849,\n        type: 'int',\n        codeSet: 'PaymentScheduleStepRelativeToCodeSet',\n    },\n    {\n        id: '40873001',\n        name: 'Initial',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Initial',\n        tag: 40873,\n        type: 'int',\n        codeSet: 'PaymentStubTypeCodeSet',\n    },\n    {\n        id: '40873002',\n        name: 'Final',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Final',\n        tag: 40873,\n        type: 'int',\n        codeSet: 'PaymentStubTypeCodeSet',\n    },\n    {\n        id: '40873003',\n        name: 'CompoundingInitial',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Compounding initial',\n        tag: 40873,\n        type: 'int',\n        codeSet: 'PaymentStubTypeCodeSet',\n    },\n    {\n        id: '40873004',\n        name: 'CompoundingFinal',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Compounding final',\n        tag: 40873,\n        type: 'int',\n        codeSet: 'PaymentStubTypeCodeSet',\n    },\n    {\n        id: '40874001',\n        name: 'Short',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Short',\n        tag: 40874,\n        type: 'int',\n        codeSet: 'PaymentStubLengthCodeSet',\n    },\n    {\n        id: '40874002',\n        name: 'Long',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Long',\n        tag: 40874,\n        type: 'int',\n        codeSet: 'PaymentStubLengthCodeSet',\n    },\n    {\n        id: '40920001',\n        name: 'Business',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Business',\n        tag: 40920,\n        type: 'int',\n        codeSet: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '40920002',\n        name: 'Calendar',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Calendar',\n        tag: 40920,\n        type: 'int',\n        codeSet: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '40920003',\n        name: 'CommodityBusiness',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Commodity business',\n        tag: 40920,\n        type: 'int',\n        codeSet: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '40920004',\n        name: 'CurrencyBusiness',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Currency business',\n        tag: 40920,\n        type: 'int',\n        codeSet: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '40920005',\n        name: 'ExchangeBusiness',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Exchange business',\n        tag: 40920,\n        type: 'int',\n        codeSet: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '40920006',\n        name: 'ScheduledTradingDay',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Scheduled trading day',\n        tag: 40920,\n        type: 'int',\n        codeSet: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '40921001',\n        name: 'NotApplicable',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Not applicable\\n\\n\\n                        Business day convention is not applicable.',\n        tag: 40921,\n        type: 'int',\n        codeSet: 'BusinessDayConventionCodeSet',\n    },\n    {\n        id: '40921002',\n        name: 'None',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description: 'None (current day)',\n        tag: 40921,\n        type: 'int',\n        codeSet: 'BusinessDayConventionCodeSet',\n    },\n    {\n        id: '40921003',\n        name: 'FollowingDay',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Following day\\n\\n\\n                        The following business day.',\n        tag: 40921,\n        type: 'int',\n        codeSet: 'BusinessDayConventionCodeSet',\n    },\n    {\n        id: '40921004',\n        name: 'FloatingRateNote',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Floating rate note\\n\\n\\n                        The FRN business day convention.',\n        tag: 40921,\n        type: 'int',\n        codeSet: 'BusinessDayConventionCodeSet',\n    },\n    {\n        id: '40921005',\n        name: 'ModifiedFollowingDay',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Modified following day\\n\\n\\n                        The modified following business day.',\n        tag: 40921,\n        type: 'int',\n        codeSet: 'BusinessDayConventionCodeSet',\n    },\n    {\n        id: '40921006',\n        name: 'PrecedingDay',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Preceding day\\n\\n\\n                        The preceding business day.',\n        tag: 40921,\n        type: 'int',\n        codeSet: 'BusinessDayConventionCodeSet',\n    },\n    {\n        id: '40921007',\n        name: 'ModifiedPrecedingDay',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Modified preceding day\\n\\n\\n                        The modified preceding business day.',\n        tag: 40921,\n        type: 'int',\n        codeSet: 'BusinessDayConventionCodeSet',\n    },\n    {\n        id: '40921008',\n        name: 'NearestDay',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'Nearest day\\n\\n\\n                        The nearest applicable business day.',\n        tag: 40921,\n        type: 'int',\n        codeSet: 'BusinessDayConventionCodeSet',\n    },\n    {\n        id: '40922001',\n        name: 'FirstDay',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '1st day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922002',\n        name: 'SecondDay',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '2nd day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922003',\n        name: 'ThirdDay',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '3rd day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922004',\n        name: 'FourthDay',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '4th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922005',\n        name: 'FifthDay',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '5th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922006',\n        name: 'SixthDay',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '6thd day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922007',\n        name: 'SeventhDay',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '7th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922008',\n        name: 'EighthDay',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '8th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922009',\n        name: 'NinthDay',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '9th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922010',\n        name: 'TenthDay',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '10th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922011',\n        name: 'EleventhDay',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '11th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922012',\n        name: 'TwelvthDay',\n        value: '12',\n        sort: 12,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '12th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922013',\n        name: 'ThirteenthDay',\n        value: '13',\n        sort: 13,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '13th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922014',\n        name: 'ForteenthDay',\n        value: '14',\n        sort: 14,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '14th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922015',\n        name: 'FifteenthDay',\n        value: '15',\n        sort: 15,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '15th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922016',\n        name: 'SixteenthDay',\n        value: '16',\n        sort: 16,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '16th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922017',\n        name: 'SeventeenthDay',\n        value: '17',\n        sort: 17,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '17th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922018',\n        name: 'EighteenthDay',\n        value: '18',\n        sort: 18,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '18th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922019',\n        name: 'NineteenthDay',\n        value: '19',\n        sort: 19,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '19th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922020',\n        name: 'TwentiethDay',\n        value: '20',\n        sort: 20,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '20th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922021',\n        name: 'TwentyFirstDay',\n        value: '21',\n        sort: 21,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '21st day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922022',\n        name: 'TwentySecondDay',\n        value: '22',\n        sort: 22,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '22nd day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922023',\n        name: 'TwentyThirdDay',\n        value: '23',\n        sort: 23,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '23rd day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922024',\n        name: 'TwentyFourthDay',\n        value: '24',\n        sort: 24,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '24th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922025',\n        name: 'TwentyFifthDay',\n        value: '25',\n        sort: 25,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '25th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922026',\n        name: 'TwentySixthDay',\n        value: '26',\n        sort: 26,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '26th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922027',\n        name: 'TwentySeventhDay',\n        value: '27',\n        sort: 27,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '27th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922028',\n        name: 'TwentyEigthDa28y',\n        value: '28',\n        sort: 28,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '28th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922029',\n        name: 'TwentyNinthDay',\n        value: '29',\n        sort: 29,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '29th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922030',\n        name: 'ThirtiethDay',\n        value: '30',\n        sort: 30,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: '30th day of the month',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922031',\n        name: 'EOM',\n        value: 'EOM',\n        sort: 31,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The end of the month.\\n\\n\\n                        Use EOM for 31st day of the month.',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922032',\n        name: 'FRN',\n        value: 'FRN',\n        sort: 32,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The floating rate note convention or Eurodollar convention.',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922033',\n        name: 'IMM',\n        value: 'IMM',\n        sort: 33,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The International Money Market settlement date, i.e. the 3rd Wednesday of the month.',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922034',\n        name: 'IMMCAD',\n        value: 'IMMCAD',\n        sort: 34,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The last trading day/expiration day of the Canadian Derivatives Exchange.',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922035',\n        name: 'IMMAUD',\n        value: 'IMMAUD',\n        sort: 35,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The last trading day of the Sydney Futures Exchange Australian 90-day bank accepted bill futures contract.',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922036',\n        name: 'IMMNZD',\n        value: 'IMMNZD',\n        sort: 36,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The last trading day of the Sydney Futures Exchange New Zealand 90-day bank bill futures contract.',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922037',\n        name: 'SFE',\n        value: 'SFE',\n        sort: 37,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The Sydney Futures Exchange 90-day bank accepted bill futures settlement dates.',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922038',\n        name: 'NONE',\n        value: 'NONE',\n        sort: 38,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'No adjustment',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922039',\n        name: 'TBILL',\n        value: 'TBILL',\n        sort: 39,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The 13-week and 26-week U.S. Treasury Bill auction dates.',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922040',\n        name: 'MON',\n        value: 'MON',\n        sort: 40,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Monday',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922041',\n        name: 'TUE',\n        value: 'TUE',\n        sort: 41,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Tuesday',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922042',\n        name: 'WED',\n        value: 'WED',\n        sort: 42,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Wednesday',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922043',\n        name: 'THU',\n        value: 'THU',\n        sort: 43,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Thursday',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922044',\n        name: 'FRI',\n        value: 'FRI',\n        sort: 44,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Friday',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922045',\n        name: 'SAT',\n        value: 'SAT',\n        sort: 45,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Saturday',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40922046',\n        name: 'SUN',\n        value: 'SUN',\n        sort: 46,\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Sunday',\n        tag: 40922,\n        type: 'String',\n        codeSet: 'DateRollConventionCodeSet',\n    },\n    {\n        id: '40993001',\n        name: 'Initial',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Initial (principal exchange)',\n        tag: 40993,\n        type: 'int',\n        codeSet: 'PaymentSubTypeCodeSet',\n    },\n    {\n        id: '40993002',\n        name: 'Intermediate',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Intermediate (principal exchange)',\n        tag: 40993,\n        type: 'int',\n        codeSet: 'PaymentSubTypeCodeSet',\n    },\n    {\n        id: '40993003',\n        name: 'Final',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Final (principal exchange)',\n        tag: 40993,\n        type: 'int',\n        codeSet: 'PaymentSubTypeCodeSet',\n    },\n    {\n        id: '40993004',\n        name: 'Prepaid',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Prepaid (premium forward)',\n        tag: 40993,\n        type: 'int',\n        codeSet: 'PaymentSubTypeCodeSet',\n    },\n    {\n        id: '40993005',\n        name: 'Postpaid',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Postpaid (premium forward)',\n        tag: 40993,\n        type: 'int',\n        codeSet: 'PaymentSubTypeCodeSet',\n    },\n    {\n        id: '40993006',\n        name: 'Variable',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Variable (premium forward)',\n        tag: 40993,\n        type: 'int',\n        codeSet: 'PaymentSubTypeCodeSet',\n    },\n    {\n        id: '40993007',\n        name: 'Fixed',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Fixed (premium forward)',\n        tag: 40993,\n        type: 'int',\n        codeSet: 'PaymentSubTypeCodeSet',\n    },\n    {\n        id: '40993008',\n        name: 'Swap',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Swap (premium)\\n\\n\\n                        Indicates that the premium is to be paid in the style of payments under an IRS contract.',\n        tag: 40993,\n        type: 'int',\n        codeSet: 'PaymentSubTypeCodeSet',\n    },\n    {\n        id: '40993009',\n        name: 'Conditional',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Conditional (principal exchange on exercise)',\n        tag: 40993,\n        type: 'int',\n        codeSet: 'PaymentSubTypeCodeSet',\n    },\n    {\n        id: '40993010',\n        name: 'FixedRate',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Fixed rate\\n\\n\\n                        Applicable to PaymentType(40213)=14 (Rebate) for which PaymentFixedRate(43097) and its qualifiers supersede PaymentAmount(40217).',\n        tag: 40993,\n        type: 'int',\n        codeSet: 'PaymentSubTypeCodeSet',\n    },\n    {\n        id: '40993011',\n        name: 'FloatingRate',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Floating rate\\n\\n\\n                        Applicable to PaymentType(40213)=14 (Rebate) for which PaymentFloatingRateIndex(43098) and its qualifiers supersede PaymentAmount(40217).',\n        tag: 40993,\n        type: 'int',\n        codeSet: 'PaymentSubTypeCodeSet',\n    },\n    {\n        id: '41011001',\n        name: 'AsianOut',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Asian Out',\n        tag: 41011,\n        type: 'int',\n        codeSet: 'ComplexEventPeriodTypeCodeSet',\n    },\n    {\n        id: '41011002',\n        name: 'AsianIn',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Asian In',\n        tag: 41011,\n        type: 'int',\n        codeSet: 'ComplexEventPeriodTypeCodeSet',\n    },\n    {\n        id: '41011003',\n        name: 'BarrierCap',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Barrier Cap',\n        tag: 41011,\n        type: 'int',\n        codeSet: 'ComplexEventPeriodTypeCodeSet',\n    },\n    {\n        id: '41011004',\n        name: 'BarrierFloor',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Barrier Floor',\n        tag: 41011,\n        type: 'int',\n        codeSet: 'ComplexEventPeriodTypeCodeSet',\n    },\n    {\n        id: '41011005',\n        name: 'KnockOut',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Knock Out',\n        tag: 41011,\n        type: 'int',\n        codeSet: 'ComplexEventPeriodTypeCodeSet',\n    },\n    {\n        id: '41011006',\n        name: 'KnockIn',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Knock In',\n        tag: 41011,\n        type: 'int',\n        codeSet: 'ComplexEventPeriodTypeCodeSet',\n    },\n    {\n        id: '41024001',\n        name: 'Business',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Business',\n        tag: 41024,\n        type: 'int',\n        codeSet: 'ComplexEventDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '41024002',\n        name: 'Calendar',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Calendar',\n        tag: 41024,\n        type: 'int',\n        codeSet: 'ComplexEventDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '41024003',\n        name: 'CommodityBusiness',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Commodity business',\n        tag: 41024,\n        type: 'int',\n        codeSet: 'ComplexEventDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '41024004',\n        name: 'CurrencyBusiness',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Currency business',\n        tag: 41024,\n        type: 'int',\n        codeSet: 'ComplexEventDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '41024005',\n        name: 'ExchangeBusiness',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Exchange business',\n        tag: 41024,\n        type: 'int',\n        codeSet: 'ComplexEventDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '41024006',\n        name: 'ScheduledTradingDay',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Scheduled trading day',\n        tag: 41024,\n        type: 'int',\n        codeSet: 'ComplexEventDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '41038001',\n        name: 'Notional',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Notional',\n        tag: 41038,\n        type: 'int',\n        codeSet: 'DeliveryScheduleTypeCodeSet',\n    },\n    {\n        id: '41038002',\n        name: 'Delivery',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Delivery',\n        tag: 41038,\n        type: 'int',\n        codeSet: 'DeliveryScheduleTypeCodeSet',\n    },\n    {\n        id: '41038003',\n        name: 'PhysicalSettlPeriods',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Physical settlement period',\n        tag: 41038,\n        type: 'int',\n        codeSet: 'DeliveryScheduleTypeCodeSet',\n    },\n    {\n        id: '41046001',\n        name: 'Absolute',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Absolute',\n        tag: 41046,\n        type: 'int',\n        codeSet: 'DeliveryScheduleToleranceTypeCodeSet',\n    },\n    {\n        id: '41046002',\n        name: 'Percentage',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Percentage',\n        tag: 41046,\n        type: 'int',\n        codeSet: 'DeliveryScheduleToleranceTypeCodeSet',\n    },\n    {\n        id: '41049001',\n        name: 'AllTimes',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'All times',\n        tag: 41049,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlFlowTypeCodeSet',\n    },\n    {\n        id: '41049002',\n        name: 'OnPeak',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'On peak',\n        tag: 41049,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlFlowTypeCodeSet',\n    },\n    {\n        id: '41049003',\n        name: 'OffPeak',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Off peak',\n        tag: 41049,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlFlowTypeCodeSet',\n    },\n    {\n        id: '41049004',\n        name: 'Base',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Base',\n        tag: 41049,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlFlowTypeCodeSet',\n    },\n    {\n        id: '41049005',\n        name: 'BlockHours',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Block hours',\n        tag: 41049,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlFlowTypeCodeSet',\n    },\n    {\n        id: '41049006',\n        name: 'Other',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Other',\n        tag: 41049,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlFlowTypeCodeSet',\n    },\n    {\n        id: '41050001',\n        name: 'DoNotIncludeHolidays',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Do not include holidays',\n        tag: 41050,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlHolidaysProcessingInstructionCodeSet',\n    },\n    {\n        id: '41050002',\n        name: 'IncludeHolidays',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Include holidays',\n        tag: 41050,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlHolidaysProcessingInstructionCodeSet',\n    },\n    {\n        id: '41052001',\n        name: 'Monday',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Monday',\n        tag: 41052,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlDayCodeSet',\n    },\n    {\n        id: '41052002',\n        name: 'Tuesday',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Tuesday',\n        tag: 41052,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlDayCodeSet',\n    },\n    {\n        id: '41052003',\n        name: 'Wednesday',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Wednesday',\n        tag: 41052,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlDayCodeSet',\n    },\n    {\n        id: '41052004',\n        name: 'Thursday',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Thursday',\n        tag: 41052,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlDayCodeSet',\n    },\n    {\n        id: '41052005',\n        name: 'Friday',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Friday',\n        tag: 41052,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlDayCodeSet',\n    },\n    {\n        id: '41052006',\n        name: 'Saturday',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Saturday',\n        tag: 41052,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlDayCodeSet',\n    },\n    {\n        id: '41052007',\n        name: 'Sunday',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Sunday',\n        tag: 41052,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlDayCodeSet',\n    },\n    {\n        id: '41052008',\n        name: 'AllWeekdays',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'All weekdays',\n        tag: 41052,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlDayCodeSet',\n    },\n    {\n        id: '41052009',\n        name: 'AllDays',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'All days',\n        tag: 41052,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlDayCodeSet',\n    },\n    {\n        id: '41052010',\n        name: 'AllWeekends',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'All weekends',\n        tag: 41052,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlDayCodeSet',\n    },\n    {\n        id: '41057001',\n        name: 'Hour',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Hour of the day\\n\\n\\n                        Applicable for electricity contracts. Time value is expressed as an integer hour of the day (1-24). The delivery start/end hour is specified as the end of the included hour. For example, a start hour of \"4\" begins at 3 a.m.; an end hour of \"20\" ends at 8 p.m.; a start hour of \"1\" and end hour of \"24\" indicates midnight to midnight delivery.',\n        tag: 41057,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlTimeTypeCodeSet',\n    },\n    {\n        id: '41057002',\n        name: 'Timestamp',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'HH:MM time format\\n\\n\\n                        Applicable for gas contracts. Time value is expressed using a 24-hour time format. For example, a time value of \"13:30\" is 1:30 p.m.',\n        tag: 41057,\n        type: 'int',\n        codeSet: 'DeliveryScheduleSettlTimeTypeCodeSet',\n    },\n    {\n        id: '41058001',\n        name: 'Periodic',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Periodic (default if not specified)',\n        tag: 41058,\n        type: 'int',\n        codeSet: 'DeliveryStreamTypeCodeSet',\n    },\n    {\n        id: '41058002',\n        name: 'Initial',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Initial',\n        tag: 41058,\n        type: 'int',\n        codeSet: 'DeliveryStreamTypeCodeSet',\n    },\n    {\n        id: '41058003',\n        name: 'Single',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Single',\n        tag: 41058,\n        type: 'int',\n        codeSet: 'DeliveryStreamTypeCodeSet',\n    },\n    {\n        id: '41063001',\n        name: 'Firm',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Firm\\n\\n\\n                        Never excused of delivery obligations.',\n        tag: 41063,\n        type: 'int',\n        codeSet: 'DeliveryStreamDeliveryRestrictionCodeSet',\n    },\n    {\n        id: '41063002',\n        name: 'NonFirm',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Interruptable or non-firm\\n\\n\\n                        Excused when interrupted for any reason or for no reason without liability.',\n        tag: 41063,\n        type: 'int',\n        codeSet: 'DeliveryStreamDeliveryRestrictionCodeSet',\n    },\n    {\n        id: '41063003',\n        name: 'ForceMajeure',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Force majeure\\n\\n\\n                        Excused when prevented by force majeure.',\n        tag: 41063,\n        type: 'int',\n        codeSet: 'DeliveryStreamDeliveryRestrictionCodeSet',\n    },\n    {\n        id: '41063004',\n        name: 'SystemFirm',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'System firm\\n\\n\\n                        Must be supplied from the owned or controlled generation of pre-existing purchased power assets of the system specified.',\n        tag: 41063,\n        type: 'int',\n        codeSet: 'DeliveryStreamDeliveryRestrictionCodeSet',\n    },\n    {\n        id: '41063005',\n        name: 'UnitFirm',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Unit firm\\n\\n\\n                        Must be supplied from the generation assset specified.',\n        tag: 41063,\n        type: 'int',\n        codeSet: 'DeliveryStreamDeliveryRestrictionCodeSet',\n    },\n    {\n        id: '41069001',\n        name: 'Transfers',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Transfers with risk of loss',\n        tag: 41069,\n        type: 'int',\n        codeSet: 'DeliveryStreamTitleTransferConditionCodeSet',\n    },\n    {\n        id: '41069002',\n        name: 'DoesNotTransfer',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Does not transfer with risk of loss',\n        tag: 41069,\n        type: 'int',\n        codeSet: 'DeliveryStreamTitleTransferConditionCodeSet',\n    },\n    {\n        id: '41075001',\n        name: 'Buyer',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Buyer',\n        tag: 41075,\n        type: 'int',\n        codeSet: 'DeliveryStreamToleranceOptionSideCodeSet',\n    },\n    {\n        id: '41075002',\n        name: 'Seller',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Seller',\n        tag: 41075,\n        type: 'int',\n        codeSet: 'DeliveryStreamToleranceOptionSideCodeSet',\n    },\n    {\n        id: '41080001',\n        name: 'Buyer',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Buyer',\n        tag: 41080,\n        type: 'int',\n        codeSet: 'DeliveryStreamElectingPartySideCodeSet',\n    },\n    {\n        id: '41080002',\n        name: 'Seller',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Seller',\n        tag: 41080,\n        type: 'int',\n        codeSet: 'DeliveryStreamElectingPartySideCodeSet',\n    },\n    {\n        id: '41087001',\n        name: 'NotApplicable',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Not applicable',\n        tag: 41087,\n        type: 'int',\n        codeSet: 'MarketDisruptionProvisionCodeSet',\n    },\n    {\n        id: '41087002',\n        name: 'Applicable',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Applicable',\n        tag: 41087,\n        type: 'int',\n        codeSet: 'MarketDisruptionProvisionCodeSet',\n    },\n    {\n        id: '41087003',\n        name: 'AsInMasterAgreement',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'As specified in master agreement',\n        tag: 41087,\n        type: 'int',\n        codeSet: 'MarketDisruptionProvisionCodeSet',\n    },\n    {\n        id: '41087004',\n        name: 'AsInConfirmation',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'As specified in confirmation',\n        tag: 41087,\n        type: 'int',\n        codeSet: 'MarketDisruptionProvisionCodeSet',\n    },\n    {\n        id: '41088001',\n        name: 'MasterAgreement',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'As specified in master agreement',\n        tag: 41088,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackProvisionCodeSet',\n    },\n    {\n        id: '41088002',\n        name: 'Confirmation',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'As specified in confirmation',\n        tag: 41088,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackProvisionCodeSet',\n    },\n    {\n        id: '41097001',\n        name: 'Basket',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Basket',\n        tag: 41097,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n    },\n    {\n        id: '41097002',\n        name: 'Bond',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Bond',\n        tag: 41097,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n    },\n    {\n        id: '41097003',\n        name: 'Cash',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Cash',\n        tag: 41097,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n    },\n    {\n        id: '41097004',\n        name: 'Commodity',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Commodity',\n        tag: 41097,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n    },\n    {\n        id: '41097005',\n        name: 'ConvertibleBond',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Convertible bond',\n        tag: 41097,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n    },\n    {\n        id: '41097006',\n        name: 'Equity',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Equity',\n        tag: 41097,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n    },\n    {\n        id: '41097007',\n        name: 'ExchangeTradedFund',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Exchange traded fund',\n        tag: 41097,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n    },\n    {\n        id: '41097008',\n        name: 'Future',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Future',\n        tag: 41097,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n    },\n    {\n        id: '41097009',\n        name: 'Index',\n        value: '8',\n        sort: 8,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Index',\n        tag: 41097,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n    },\n    {\n        id: '41097010',\n        name: 'Loan',\n        value: '9',\n        sort: 9,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Loan',\n        tag: 41097,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n    },\n    {\n        id: '41097011',\n        name: 'Mortgage',\n        value: '10',\n        sort: 10,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Mortgage',\n        tag: 41097,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n    },\n    {\n        id: '41097012',\n        name: 'MutualFund',\n        value: '11',\n        sort: 11,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Mutual fund',\n        tag: 41097,\n        type: 'int',\n        codeSet: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n    },\n    {\n        id: '41111001',\n        name: 'NotRequired',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Not required',\n        tag: 41111,\n        type: 'int',\n        codeSet: 'ExerciseConfirmationMethodCodeSet',\n    },\n    {\n        id: '41111002',\n        name: 'NonElectronic',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Non-electronic',\n        tag: 41111,\n        type: 'int',\n        codeSet: 'ExerciseConfirmationMethodCodeSet',\n    },\n    {\n        id: '41111003',\n        name: 'Electronic',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Electronic',\n        tag: 41111,\n        type: 'int',\n        codeSet: 'ExerciseConfirmationMethodCodeSet',\n    },\n    {\n        id: '41111004',\n        name: 'Unknown',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Unknown at time of report',\n        tag: 41111,\n        type: 'int',\n        codeSet: 'ExerciseConfirmationMethodCodeSet',\n    },\n    {\n        id: '41139001',\n        name: 'Unadjusted',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Unadjusted',\n        tag: 41139,\n        type: 'int',\n        codeSet: 'OptionExerciseDateTypeCodeSet',\n    },\n    {\n        id: '41139002',\n        name: 'Adjusted',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Adjusted',\n        tag: 41139,\n        type: 'int',\n        codeSet: 'OptionExerciseDateTypeCodeSet',\n    },\n    {\n        id: '41159001',\n        name: 'Business',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Business',\n        tag: 41159,\n        type: 'int',\n        codeSet: 'PaymentDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '41159002',\n        name: 'Calendar',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Calendar',\n        tag: 41159,\n        type: 'int',\n        codeSet: 'PaymentDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '41159003',\n        name: 'Commodity',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Commodity business',\n        tag: 41159,\n        type: 'int',\n        codeSet: 'PaymentDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '41159004',\n        name: 'Currency',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Currency business',\n        tag: 41159,\n        type: 'int',\n        codeSet: 'PaymentDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '41159005',\n        name: 'Exchange',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Exchange business',\n        tag: 41159,\n        type: 'int',\n        codeSet: 'PaymentDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '41159006',\n        name: 'Scheduled',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Scheduled trading day',\n        tag: 41159,\n        type: 'int',\n        codeSet: 'PaymentDateOffsetDayTypeCodeSet',\n    },\n    {\n        id: '41160001',\n        name: 'Prepaid',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Prepaid',\n        tag: 41160,\n        type: 'int',\n        codeSet: 'PaymentForwardStartTypeCodeSet',\n    },\n    {\n        id: '41160002',\n        name: 'Postpaid',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Post-paid',\n        tag: 41160,\n        type: 'int',\n        codeSet: 'PaymentForwardStartTypeCodeSet',\n    },\n    {\n        id: '41160003',\n        name: 'Variable',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Variable',\n        tag: 41160,\n        type: 'int',\n        codeSet: 'PaymentForwardStartTypeCodeSet',\n    },\n    {\n        id: '41160004',\n        name: 'Fixed',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Fixed',\n        tag: 41160,\n        type: 'int',\n        codeSet: 'PaymentForwardStartTypeCodeSet',\n    },\n    {\n        id: '41199001',\n        name: 'Average',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Average\\n\\n\\n                        The cumulative number of weather index units for each day in the calculation period divided by the number of days in the calculation period.',\n        tag: 41199,\n        type: 'int',\n        codeSet: 'PaymentStreamSettlLevelCodeSet',\n    },\n    {\n        id: '41199002',\n        name: 'Maximum',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Maximum\\n\\n\\n                        The maximum number of weather index units for any day in the calculaiton period.',\n        tag: 41199,\n        type: 'int',\n        codeSet: 'PaymentStreamSettlLevelCodeSet',\n    },\n    {\n        id: '41199003',\n        name: 'Minimum',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Minimum\\n\\n\\n                        The minimum number of weather index units for any day in the calculaiton period.',\n        tag: 41199,\n        type: 'int',\n        codeSet: 'PaymentStreamSettlLevelCodeSet',\n    },\n    {\n        id: '41199004',\n        name: 'Cumulative',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Cumulative\\n\\n\\n                        The cumulative number of weather index units for each day in the calculaiton period.',\n        tag: 41199,\n        type: 'int',\n        codeSet: 'PaymentStreamSettlLevelCodeSet',\n    },\n    {\n        id: '41206001',\n        name: 'Absolute',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Absolute',\n        tag: 41206,\n        type: 'int',\n        codeSet: 'PaymentStreamRateSpreadTypeCodeSet',\n    },\n    {\n        id: '41206002',\n        name: 'Percentage',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Percentage',\n        tag: 41206,\n        type: 'int',\n        codeSet: 'PaymentStreamRateSpreadTypeCodeSet',\n    },\n    {\n        id: '41214001',\n        name: 'All',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'All',\n        tag: 41214,\n        type: 'int',\n        codeSet: 'PaymentStreamPricingDayDistributionCodeSet',\n    },\n    {\n        id: '41214002',\n        name: 'First',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'First',\n        tag: 41214,\n        type: 'int',\n        codeSet: 'PaymentStreamPricingDayDistributionCodeSet',\n    },\n    {\n        id: '41214003',\n        name: 'Last',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Last',\n        tag: 41214,\n        type: 'int',\n        codeSet: 'PaymentStreamPricingDayDistributionCodeSet',\n    },\n    {\n        id: '41214004',\n        name: 'Penultimate',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Penultimate',\n        tag: 41214,\n        type: 'int',\n        codeSet: 'PaymentStreamPricingDayDistributionCodeSet',\n    },\n    {\n        id: '41228001',\n        name: 'EveryDay',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Every day (the default if not specified)',\n        tag: 41228,\n        type: 'int',\n        codeSet: 'PaymentStreamPricingDayOfWeekCodeSet',\n    },\n    {\n        id: '41228002',\n        name: 'Monday',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Monday',\n        tag: 41228,\n        type: 'int',\n        codeSet: 'PaymentStreamPricingDayOfWeekCodeSet',\n    },\n    {\n        id: '41228003',\n        name: 'Tuesday',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Tuesday',\n        tag: 41228,\n        type: 'int',\n        codeSet: 'PaymentStreamPricingDayOfWeekCodeSet',\n    },\n    {\n        id: '41228004',\n        name: 'Wednesday',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Wednesday',\n        tag: 41228,\n        type: 'int',\n        codeSet: 'PaymentStreamPricingDayOfWeekCodeSet',\n    },\n    {\n        id: '41228005',\n        name: 'Thursday',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Thursday',\n        tag: 41228,\n        type: 'int',\n        codeSet: 'PaymentStreamPricingDayOfWeekCodeSet',\n    },\n    {\n        id: '41228006',\n        name: 'Friday',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Friday',\n        tag: 41228,\n        type: 'int',\n        codeSet: 'PaymentStreamPricingDayOfWeekCodeSet',\n    },\n    {\n        id: '41228007',\n        name: 'Saturday',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Saturday',\n        tag: 41228,\n        type: 'int',\n        codeSet: 'PaymentStreamPricingDayOfWeekCodeSet',\n    },\n    {\n        id: '41228008',\n        name: 'Sunday',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Sunday',\n        tag: 41228,\n        type: 'int',\n        codeSet: 'PaymentStreamPricingDayOfWeekCodeSet',\n    },\n    {\n        id: '41267001',\n        name: 'Week',\n        value: 'Wk',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Week',\n        tag: 41267,\n        type: 'String',\n        codeSet: 'StreamCommodityNearbySettlDayUnitCodeSet',\n    },\n    {\n        id: '41267002',\n        name: 'Month',\n        value: 'Mo',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Month',\n        tag: 41267,\n        type: 'String',\n        codeSet: 'StreamCommodityNearbySettlDayUnitCodeSet',\n    },\n    {\n        id: '41273001',\n        name: 'Day',\n        value: 'D',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Day',\n        tag: 41273,\n        type: 'String',\n        codeSet: 'StreamCommoditySettlDateRollUnitCodeSet',\n    },\n    {\n        id: '41282001',\n        name: 'City',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'City (4 character business center code)',\n        tag: 41282,\n        type: 'int',\n        codeSet: 'StreamCommodityDataSourceIDTypeCodeSet',\n    },\n    {\n        id: '41282002',\n        name: 'Airport',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Airport (IATA standard)',\n        tag: 41282,\n        type: 'int',\n        codeSet: 'StreamCommodityDataSourceIDTypeCodeSet',\n    },\n    {\n        id: '41282003',\n        name: 'WeatherStation',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Weather station WBAN (Weather Bureau Army Navy)',\n        tag: 41282,\n        type: 'int',\n        codeSet: 'StreamCommodityDataSourceIDTypeCodeSet',\n    },\n    {\n        id: '41282004',\n        name: 'WeatherIndex',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Weather index WMO (World Meteorological Organization)',\n        tag: 41282,\n        type: 'int',\n        codeSet: 'StreamCommodityDataSourceIDTypeCodeSet',\n    },\n    {\n        id: '41308001',\n        name: 'Term',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Term',\n        tag: 41308,\n        type: 'int',\n        codeSet: 'StreamNotionalCommodityFrequencyCodeSet',\n    },\n    {\n        id: '41308002',\n        name: 'PerBusinessDay',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Per business day',\n        tag: 41308,\n        type: 'int',\n        codeSet: 'StreamNotionalCommodityFrequencyCodeSet',\n    },\n    {\n        id: '41308003',\n        name: 'PerCalculationPeriod',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Per calculation period',\n        tag: 41308,\n        type: 'int',\n        codeSet: 'StreamNotionalCommodityFrequencyCodeSet',\n    },\n    {\n        id: '41308004',\n        name: 'PerSettlPeriod',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Per settlement period',\n        tag: 41308,\n        type: 'int',\n        codeSet: 'StreamNotionalCommodityFrequencyCodeSet',\n    },\n    {\n        id: '41308005',\n        name: 'PerCalendarDay',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Per calendar day',\n        tag: 41308,\n        type: 'int',\n        codeSet: 'StreamNotionalCommodityFrequencyCodeSet',\n    },\n    {\n        id: '41308006',\n        name: 'PerHour',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Per hour',\n        tag: 41308,\n        type: 'int',\n        codeSet: 'StreamNotionalCommodityFrequencyCodeSet',\n    },\n    {\n        id: '41308007',\n        name: 'PerMonth',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Per month',\n        tag: 41308,\n        type: 'int',\n        codeSet: 'StreamNotionalCommodityFrequencyCodeSet',\n    },\n    {\n        id: '42192001',\n        name: 'Proprietary',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Proprietary',\n        tag: 42192,\n        type: 'int',\n        codeSet: 'DeliveryStreamDeliveryPointSourceCodeSet',\n    },\n    {\n        id: '42192002',\n        name: 'EIC',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Energy Identification Code (EIC)\\n\\n\\n                        Energy Identification Code specifies the location or connection point codes of energy delivery. See http://www.entsog.eu/eic-codes/eic-location-codes-v or http://www.eiccodes.eu for more information and allocated values to use in DeliveryStreamDeliveryPoint(41062).',\n        tag: 42192,\n        type: 'int',\n        codeSet: 'DeliveryStreamDeliveryPointSourceCodeSet',\n    },\n    {\n        id: '42217001',\n        name: 'Close',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Close\\n\\n\\n                        Official closing price.',\n        tag: 42217,\n        type: 'int',\n        codeSet: 'CashSettlPriceDefaultCodeSet',\n    },\n    {\n        id: '42217002',\n        name: 'Hedge',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Hedge\\n\\n\\n                        Determined by the hedging party.',\n        tag: 42217,\n        type: 'int',\n        codeSet: 'CashSettlPriceDefaultCodeSet',\n    },\n    {\n        id: '42246001',\n        name: 'ExDate',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Ex-date\\n\\n\\n                        Dividend entitlement is on the dividend ex-date.',\n        tag: 42246,\n        type: 'int',\n        codeSet: 'DividendEntitlementEventCodeSet',\n    },\n    {\n        id: '42246002',\n        name: 'RecordDate',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Record date\\n\\n\\n                        Dividend entitlement is on the dividend record date.',\n        tag: 42246,\n        type: 'int',\n        codeSet: 'DividendEntitlementEventCodeSet',\n    },\n    {\n        id: '42247001',\n        name: 'RecordAmount',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Record amount\\n\\n\\n                        100% of the gross cash dividend per share paid over record date during relevant dividend period.',\n        tag: 42247,\n        type: 'int',\n        codeSet: 'DividendAmountTypeCodeSet',\n    },\n    {\n        id: '42247002',\n        name: 'ExAmount',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Ex amount\\n\\n\\n                        100% of gross cash dividend per share paid after the ex-dividend date during relevant dividend period.',\n        tag: 42247,\n        type: 'int',\n        codeSet: 'DividendAmountTypeCodeSet',\n    },\n    {\n        id: '42247003',\n        name: 'PaidAmount',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Paid amount\\n\\n\\n                        100% of gross cash dividend per share paid during relevant dividend period.',\n        tag: 42247,\n        type: 'int',\n        codeSet: 'DividendAmountTypeCodeSet',\n    },\n    {\n        id: '42247004',\n        name: 'PerMasterConfirm',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'As specified in master confirmation\\n\\n\\n                        The amount is determined as provided in the relevant master confirmation.',\n        tag: 42247,\n        type: 'int',\n        codeSet: 'DividendAmountTypeCodeSet',\n    },\n    {\n        id: '42258001',\n        name: 'PotentialAdjustment',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Potential adjustment event\\n\\n\\n                        The treatment of any non-cash dividend shall be determined in accordance with the potential adjustment event provisions.',\n        tag: 42258,\n        type: 'int',\n        codeSet: 'NonCashDividendTreatmentCodeSet',\n    },\n    {\n        id: '42258002',\n        name: 'CashEquivalent',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Cash equivalent\\n\\n\\n                        Any non-cash dividend shall be treated as a declared cash equivalent dividend.',\n        tag: 42258,\n        type: 'int',\n        codeSet: 'NonCashDividendTreatmentCodeSet',\n    },\n    {\n        id: '42259001',\n        name: 'EquityAmountReceiver',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Equity amount receiver election\\n\\n\\n                        The equity amount receiver determines the composition of dividends (subject to conditions).',\n        tag: 42259,\n        type: 'int',\n        codeSet: 'DividendCompositionCodeSet',\n    },\n    {\n        id: '42259002',\n        name: 'CalculationAgent',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Calculation agent election\\n\\n\\n                        The calculation agent determines the composition of dividends (subject to conditions).',\n        tag: 42259,\n        type: 'int',\n        codeSet: 'DividendCompositionCodeSet',\n    },\n    {\n        id: '42604001',\n        name: 'Initial',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Initial\\n\\n\\n                        Interpolation is applicable to the initial period only.',\n        tag: 42604,\n        type: 'int',\n        codeSet: 'PaymentStreamInterpolationPeriodCodeSet',\n    },\n    {\n        id: '42604002',\n        name: 'InitialAndFinal',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Initial and final\\n\\n\\n                        Interpolation is applicable to the initial and final periods only.',\n        tag: 42604,\n        type: 'int',\n        codeSet: 'PaymentStreamInterpolationPeriodCodeSet',\n    },\n    {\n        id: '42604003',\n        name: 'Final',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Final\\n\\n\\n                        Interpolation is applicable to the final period only.',\n        tag: 42604,\n        type: 'int',\n        codeSet: 'PaymentStreamInterpolationPeriodCodeSet',\n    },\n    {\n        id: '42604004',\n        name: 'AnyPeriod',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Any period\\n\\n\\n                        Interpolation is applicable to any non-standard period.',\n        tag: 42604,\n        type: 'int',\n        codeSet: 'PaymentStreamInterpolationPeriodCodeSet',\n    },\n    {\n        id: '42674001',\n        name: 'Volatility',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Volatility',\n        tag: 42674,\n        type: 'int',\n        codeSet: 'PaymentStreamLinkStrikePriceTypeCodeSet',\n    },\n    {\n        id: '42674002',\n        name: 'Variance',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Variance',\n        tag: 42674,\n        type: 'int',\n        codeSet: 'PaymentStreamLinkStrikePriceTypeCodeSet',\n    },\n    {\n        id: '42679001',\n        name: 'Previous',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Previous\\n\\n\\n                        For a return on day T, the observed price on T-1 must be in range.',\n        tag: 42679,\n        type: 'int',\n        codeSet: 'PaymentStreamRealizedVarianceMethodCodeSet',\n    },\n    {\n        id: '42679002',\n        name: 'Last',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Last\\n\\n\\n                        For a return on day T, the observed price on T must be in range.',\n        tag: 42679,\n        type: 'int',\n        codeSet: 'PaymentStreamRealizedVarianceMethodCodeSet',\n    },\n    {\n        id: '42679003',\n        name: 'Both',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Both\\n\\n\\n                        For a return on day T, the observed prices on both T and T-1 must be in range.',\n        tag: 42679,\n        type: 'int',\n        codeSet: 'PaymentStreamRealizedVarianceMethodCodeSet',\n    },\n    {\n        id: '42707001',\n        name: 'FlatFee',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Flat fee',\n        tag: 42707,\n        type: 'int',\n        codeSet: 'ProvisionBreakFeeElectionCodeSet',\n    },\n    {\n        id: '42707002',\n        name: 'AmortizedFee',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Amortized fee',\n        tag: 42707,\n        type: 'int',\n        codeSet: 'ProvisionBreakFeeElectionCodeSet',\n    },\n    {\n        id: '42707003',\n        name: 'FundingFee',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Funding fee',\n        tag: 42707,\n        type: 'int',\n        codeSet: 'ProvisionBreakFeeElectionCodeSet',\n    },\n    {\n        id: '42707004',\n        name: 'FlatAndFundingFee',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Flat fee and funding fee',\n        tag: 42707,\n        type: 'int',\n        codeSet: 'ProvisionBreakFeeElectionCodeSet',\n    },\n    {\n        id: '42707005',\n        name: 'AmortizedAndFundingFee',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Amortized fee and funding fee',\n        tag: 42707,\n        type: 'int',\n        codeSet: 'ProvisionBreakFeeElectionCodeSet',\n    },\n    {\n        id: '42710001',\n        name: 'PriceValuation',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Price valuation',\n        tag: 42710,\n        type: 'int',\n        codeSet: 'ReturnRateDateModeCodeSet',\n    },\n    {\n        id: '42710002',\n        name: 'DividendValuation',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Dividend valuation',\n        tag: 42710,\n        type: 'int',\n        codeSet: 'ReturnRateDateModeCodeSet',\n    },\n    {\n        id: '42736001',\n        name: 'Initial',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Initial',\n        tag: 42736,\n        type: 'int',\n        codeSet: 'ReturnRatePriceSequenceCodeSet',\n    },\n    {\n        id: '42736002',\n        name: 'Interim',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Interim',\n        tag: 42736,\n        type: 'int',\n        codeSet: 'ReturnRatePriceSequenceCodeSet',\n    },\n    {\n        id: '42736003',\n        name: 'Final',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Final',\n        tag: 42736,\n        type: 'int',\n        codeSet: 'ReturnRatePriceSequenceCodeSet',\n    },\n    {\n        id: '42748001',\n        name: 'Open',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Open\\n\\n\\n                        The official opening time of the exchange on valuation date.',\n        tag: 42748,\n        type: 'int',\n        codeSet: 'ReturnRateQuoteTimeTypeCodeSet',\n    },\n    {\n        id: '42748002',\n        name: 'OfficialSettlPx',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Official settlement price time\\n\\n\\n                        The time at which the official settlement price is determined.',\n        tag: 42748,\n        type: 'int',\n        codeSet: 'ReturnRateQuoteTimeTypeCodeSet',\n    },\n    {\n        id: '42748003',\n        name: 'Xetra',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'XETRA\\n\\n\\n                        The time at which the official settlement price (following the auction by the exchange) is determined by the exchange.',\n        tag: 42748,\n        type: 'int',\n        codeSet: 'ReturnRateQuoteTimeTypeCodeSet',\n    },\n    {\n        id: '42748004',\n        name: 'Close',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Close\\n\\n\\n                        The official closing time of the exchange on valuation date.',\n        tag: 42748,\n        type: 'int',\n        codeSet: 'ReturnRateQuoteTimeTypeCodeSet',\n    },\n    {\n        id: '42748005',\n        name: 'DerivativesClose',\n        value: '4',\n        sort: 4,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Derivatives close\\n\\n\\n                        The official closing time for derivative trading of the exchange on valuation date.',\n        tag: 42748,\n        type: 'int',\n        codeSet: 'ReturnRateQuoteTimeTypeCodeSet',\n    },\n    {\n        id: '42748006',\n        name: 'High',\n        value: '5',\n        sort: 5,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'High\\n\\n\\n                        The high price for the day.',\n        tag: 42748,\n        type: 'int',\n        codeSet: 'ReturnRateQuoteTimeTypeCodeSet',\n    },\n    {\n        id: '42748007',\n        name: 'Low',\n        value: '6',\n        sort: 6,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Low\\n\\n\\n                        The low price for the day.',\n        tag: 42748,\n        type: 'int',\n        codeSet: 'ReturnRateQuoteTimeTypeCodeSet',\n    },\n    {\n        id: '42748008',\n        name: 'AsSpecifiedInMasterConfirmation',\n        value: '7',\n        sort: 7,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'As specified in the master confirmation',\n        tag: 42748,\n        type: 'int',\n        codeSet: 'ReturnRateQuoteTimeTypeCodeSet',\n    },\n    {\n        id: '42759001',\n        name: 'None',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'None (the default)',\n        tag: 42759,\n        type: 'int',\n        codeSet: 'ReturnRateValuationPriceOptionCodeSet',\n    },\n    {\n        id: '42759002',\n        name: 'FuturesPrice',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Futures price\\n\\n\\n                        The official settlement price as announced by the related futures exchange is applicable.',\n        tag: 42759,\n        type: 'int',\n        codeSet: 'ReturnRateValuationPriceOptionCodeSet',\n    },\n    {\n        id: '42759003',\n        name: 'OptionsPrice',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Options price\\n\\n\\n                        The official settlement price as announced by the related options exchange is applicable.',\n        tag: 42759,\n        type: 'int',\n        codeSet: 'ReturnRateValuationPriceOptionCodeSet',\n    },\n    {\n        id: '42766001',\n        name: 'Gross',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Gross',\n        tag: 42766,\n        type: 'int',\n        codeSet: 'ReturnRatePriceBasisCodeSet',\n    },\n    {\n        id: '42766002',\n        name: 'Net',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Net',\n        tag: 42766,\n        type: 'int',\n        codeSet: 'ReturnRatePriceBasisCodeSet',\n    },\n    {\n        id: '42766003',\n        name: 'Accrued',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Accrued',\n        tag: 42766,\n        type: 'int',\n        codeSet: 'ReturnRatePriceBasisCodeSet',\n    },\n    {\n        id: '42766004',\n        name: 'CleanNet',\n        value: '3',\n        sort: 3,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Clean net',\n        tag: 42766,\n        type: 'int',\n        codeSet: 'ReturnRatePriceBasisCodeSet',\n    },\n    {\n        id: '42769001',\n        name: 'AbsoluteTerms',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Absolute terms',\n        tag: 42769,\n        type: 'int',\n        codeSet: 'ReturnRatePriceTypeCodeSet',\n    },\n    {\n        id: '42769002',\n        name: 'PercentageOfNotional',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Percentage of notional',\n        tag: 42769,\n        type: 'int',\n        codeSet: 'ReturnRatePriceTypeCodeSet',\n    },\n    {\n        id: '42787001',\n        name: 'Execution',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Execution\\n\\n\\n                        The adjustments to the number of units are governed by an execution clause.',\n        tag: 42787,\n        type: 'int',\n        codeSet: 'StreamNotionalAdjustmentsCodeSet',\n    },\n    {\n        id: '42787002',\n        name: 'PortfolioRebalancing',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Portfolio rebalancing\\n\\n\\n                        The adjustments to the number of units are governed by a portfolio rebalancing clause.',\n        tag: 42787,\n        type: 'int',\n        codeSet: 'StreamNotionalAdjustmentsCodeSet',\n    },\n    {\n        id: '42787003',\n        name: 'Standard',\n        value: '2',\n        sort: 2,\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Standard\\n\\n\\n                        The adjustments to the number of units are not governed by any specific clause.',\n        tag: 42787,\n        type: 'int',\n        codeSet: 'StreamNotionalAdjustmentsCodeSet',\n    },\n    {\n        id: '50002001',\n        name: 'Update',\n        value: '0',\n        sort: 0,\n        added: 'FIX.5.0SP2',\n        addedEP: '178',\n        description: 'Update/incremental (default if not specified)',\n        tag: 50002,\n        type: 'int',\n        codeSet: 'BatchProcessModeCodeSet',\n    },\n    {\n        id: '50002002',\n        name: 'Snapshot',\n        value: '1',\n        sort: 1,\n        added: 'FIX.5.0SP2',\n        addedEP: '178',\n        description:\n            \"Snapshot\\n\\n\\n                        Indicates that messages within the batch should be considered complete, and should replace all prior information. The recipient can take action, to be decided out of band, on previously received data omitted from the batch (e.g. an account not referenced has zero collateral value, a security not referenced is no longer tradable). The scope of completeness (e.g. a complete list of collateral values for all of a given firm's accounts, a complete list of options trading on a given exchange) will be decided out of band.\",\n        tag: 50002,\n        type: 'int',\n        codeSet: 'BatchProcessModeCodeSet',\n    },\n];\n\nconst batch3: ISpecEnums[] = [];\n\nconst batch4: ISpecEnums[] = [];\n\nexport const ENUMS: ISpecEnums[] = batch1.concat(batch2, batch3, batch4);\n", "import type { ISpecEnums } from '../spec/SpecEnums.ts';\n\n/**\n * Class representing a FIX enumeration type.\n * Stores and manages enumeration-specific information for FIX fields,\n * including version history and deprecation status.\n */\nexport class EnumType {\n    /** The name of the enumeration */\n    public name: string | undefined = undefined;\n    /** The unique identifier for the enumeration */\n    public id: string | undefined = undefined;\n    /** The tag number associated with this enumeration */\n    public tag: number | undefined = undefined;\n    /** The data type of the enumeration */\n    public type: string | undefined = undefined;\n    /** The code set this enumeration belongs to */\n    public codeSet: string | undefined = undefined;\n    /** The value of the enumeration */\n    public value: string | undefined = undefined;\n    /** The sort order of the enumeration */\n    public sort?: number = undefined;\n    /** The group this enumeration belongs to */\n    public group?: string = undefined;\n    /** The version when this enumeration was added */\n    public added?: string = undefined;\n    /** The EP version when this enumeration was added */\n    public addedEP?: string = undefined;\n    /** The version when this enumeration was last updated */\n    public updated?: string = undefined;\n    /** The EP version when this enumeration was last updated */\n    public updatedEP?: string = undefined;\n    /** The version when this enumeration was deprecated */\n    public deprecated?: string = undefined;\n    /** The EP version when this enumeration was deprecated */\n    public deprecatedEP?: string = undefined;\n    /** A description of the enumeration */\n    public description?: string = undefined;\n\n    /**\n     * Sets the enumeration properties based on the provided enumeration specification.\n     *\n     * @param {ISpecEnums} enumType - The enumeration specification to set\n     */\n    public setEnumeration(enumType: ISpecEnums): void {\n        this.name = enumType.name;\n        this.id = enumType.id;\n        this.tag = enumType.tag;\n        this.type = enumType.type;\n        this.codeSet = enumType.codeSet;\n        this.value = enumType.value;\n        this.sort = enumType.sort;\n        this.group = enumType.group;\n        this.added = enumType.added;\n        this.addedEP = enumType.addedEP;\n        this.updated = enumType.updated;\n        this.updatedEP = enumType.updatedEP;\n        this.deprecated = enumType.deprecated;\n        this.deprecatedEP = enumType.deprecatedEP;\n        this.description = enumType.description;\n    }\n}\n", "import type { Field } from '../fields/Field.ts';\nimport { ENUMS, type ISpecEnums } from '../spec/SpecEnums.ts';\nimport type { FIXValue } from '../util/util.ts';\nimport { EnumType } from './EnumType.ts';\n\n/**\n * Class for managing FIX enumerations.\n * Provides functionality to process and look up FIX field enumerations\n * using both tag-value pairs and tag-only lookups.\n */\nexport class Enums {\n    /** Array of all available enumeration specifications */\n    public enums: ISpecEnums[] = ENUMS;\n    /** Cache map for looking up enumerations by tag and value */\n    public cacheMap: Map<string, ISpecEnums> = new Map<string, ISpecEnums>();\n    /** Cache map for looking up enumerations by tag only */\n    public cacheMapTag: Map<string, ISpecEnums> = new Map<string, ISpecEnums>();\n\n    /**\n     * Creates a new Enums instance and initializes the cache maps\n     * with all available enumeration specifications.\n     */\n    constructor() {\n        this.enums.forEach((enumType: ISpecEnums) => {\n            this.cacheMap.set(`${enumType.tag}|${enumType.value}`, enumType);\n            this.cacheMapTag.set(`${enumType.tag}`, enumType);\n        });\n    }\n\n    /**\n     * Gets an enumeration by its tag and value.\n     *\n     * @param {string} tag - The tag number\n     * @param {FIXValue} value - The enumeration value\n     * @returns {ISpecEnums | undefined} The found enumeration, or undefined if not found\n     */\n    public getEnum(tag: string, value: FIXValue): ISpecEnums | undefined {\n        return this.cacheMap.get(`${tag}|${value}`);\n    }\n\n    /**\n     * Gets an enumeration by its tag only.\n     *\n     * @param {string} tag - The tag number\n     * @returns {ISpecEnums | undefined} The found enumeration, or undefined if not found\n     */\n    public getEnumByTag(tag: string): ISpecEnums | undefined {\n        return this.cacheMapTag.get(tag);\n    }\n\n    /**\n     * Processes a field's enumeration, setting the appropriate enumeration type\n     * if a matching enumeration is found.\n     *\n     * @param {Field} field - The field to process\n     */\n    public processEnum(field: Field): void {\n        const enumTypes: EnumType = new EnumType();\n        const foundEnum: ISpecEnums | undefined = this.cacheMap.get(`${field.tag}|${field.value}`);\n        if (foundEnum) {\n            enumTypes.setEnumeration(foundEnum);\n            field.setEnumeration(enumTypes);\n        }\n    }\n}\n", "import type { EnumType } from '../enums/EnumType.ts';\nimport type { ISpecDatatypes } from '../spec/SpecDatatypes.ts';\nimport type { FIXValue } from '../util/util.ts';\nimport type { CategoryType } from './categories/CategoryType.ts';\nimport type { SectionType } from './sections/SectionType.ts';\n\n/**\n * Field is a predefined data element, identified by a unique tag number,\n * that represents a specific piece of information within a message\n * (such as price, quantity, or order ID).\n *\n * @public\n */\nexport class Field {\n    /** The unique tag number identifying this field */\n    public tag: number;\n    /** The value of the field */\n    public value: FIXValue;\n    /** The name of the field */\n    public name: string | undefined = undefined;\n    /** A description of what the field represents */\n    public description: string | undefined = undefined;\n    /** The data type of the field */\n    public type: ISpecDatatypes | undefined = undefined;\n    /** The category this field belongs to */\n    public category: CategoryType | undefined = undefined;\n    /** The section this field belongs to */\n    public section: SectionType | undefined = undefined;\n    /** The enumeration type if this field is an enumerated value */\n    public enumeration: EnumType | undefined = undefined;\n\n    /**\n     * Creates a new Field instance with the specified tag and value.\n     *\n     * @param {number} tag - The unique tag number identifying this field\n     * @param {FIXValue} value - The value to be stored in this field\n     */\n    constructor(tag: number, value: FIXValue) {\n        this.tag = tag >> 0;\n        this.value = value;\n        this.name = undefined;\n        this.description = undefined;\n        this.type = undefined;\n        this.category = undefined;\n        this.section = undefined;\n        this.enumeration = undefined;\n    }\n\n    /**\n     * Sets the tag number for this field.\n     *\n     * @param {number} tag - The new tag number\n     */\n    public setTag(tag: number): void {\n        this.tag = tag >> 0;\n    }\n\n    /**\n     * Sets the value for this field.\n     *\n     * @param {FIXValue} value - The new value\n     */\n    public setValue(value: FIXValue): void {\n        this.value = value;\n    }\n\n    /**\n     * Sets the name for this field.\n     *\n     * @param {string} name - The new name\n     */\n    public setName(name: string): void {\n        this.name = name;\n    }\n\n    /**\n     * Sets the description for this field.\n     *\n     * @param {string} description - The new description\n     */\n    public setDescription(description: string): void {\n        this.description = description;\n    }\n\n    /**\n     * Sets the data type for this field.\n     *\n     * @param {ISpecDatatypes | undefined} type - The new data type\n     */\n    public setType(type: ISpecDatatypes | undefined): void {\n        this.type = type;\n    }\n\n    /**\n     * Sets the category for this field.\n     *\n     * @param {CategoryType} category - The new category\n     */\n    public setCategory(category: CategoryType): void {\n        this.category = category;\n    }\n\n    /**\n     * Sets the section for this field.\n     *\n     * @param {SectionType} section - The new section\n     */\n    public setSection(section: SectionType): void {\n        this.section = section;\n    }\n\n    /**\n     * Sets the enumeration type for this field.\n     *\n     * @param {EnumType} enumeration - The new enumeration type\n     */\n    public setEnumeration(enumeration: EnumType): void {\n        this.enumeration = enumeration;\n    }\n\n    /**\n     * Returns a string representation of the field in FIX format (tag=value).\n     *\n     * @returns {string} The string representation of the field\n     */\n    public toString(): string {\n        return `${this.tag}=${this.value}`;\n    }\n}\n", "/**\n * Field is a predefined data element, identified by a unique tag number,\n * that represents a specific piece of information within a message\n * (such as price, quantity, or order ID).\n *\n * @public\n */\nexport const Field = Object.freeze({\n    /** Account mnemonic as agreed between buy and sell sides, e.g. broker and institution or investor/intermediary and fund manager. */\n    Account: 1,\n    /** Unique identifier of advertisement message.\n        (Prior to FIX 4.1 this field was of type int) */\n    AdvId: 2,\n    /** Reference identifier used with CANCEL and REPLACE transaction types.\n        (Prior to FIX 4.1 this field was of type int) */\n    AdvRefID: 3,\n    /** Broker's side of advertised trade */\n    AdvSide: 4,\n    /** Identifies advertisement message transaction type */\n    AdvTransType: 5,\n    /** Calculated average price of all fills on this order.\n        For Fixed Income trades AvgPx is always expressed as percent-of-par, regardless of the PriceType (423) of LastPx (31). I.e., AvgPx will contain an average of percent-of-par values (see LastParPx (669)) for issues traded in Yield, Spread or Discount. */\n    AvgPx: 6,\n    /** Message sequence number of first message in range to be resent */\n    BeginSeqNo: 7,\n    /** Identifies beginning of new message and session protocol version by means of a session profile identifier (see FIX Session Layer for details). ALWAYS FIRST FIELD IN MESSAGE. (Always unencrypted). */\n    BeginString: 8,\n    /** Message length, in bytes, forward to the CheckSum field. ALWAYS SECOND FIELD IN MESSAGE. (Always unencrypted) */\n    BodyLength: 9,\n    /** Three byte, simple checksum (see Volume 2: \"Checksum Calculation\" for description). ALWAYS LAST FIELD IN MESSAGE; i.e. serves, with the trailing \\<SOH\\>, as the end-of-message delimiter. Always defined as three characters. (Always unencrypted) */\n    CheckSum: 10,\n    /** Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc.) (identified by SenderCompID(49) or OnBehalfOfCompID(115) as appropriate). Uniqueness must be guaranteed within a single trading day. Firms, particularly those which electronically submit multi-day orders, trade globally or throughout market close periods, should ensure uniqueness across days, for example by embedding a date within the ClOrdID(11) field. */\n    ClOrdID: 11,\n    /** Commission. Note if CommType (13) is percentage, Commission of 5% should be represented as .05. */\n    Commission: 12,\n    /** Specifies the basis or unit used to calculate the total commission based on the rate. */\n    CommType: 13,\n    /** Total quantity (e.g. number of shares) filled.\n        (Prior to FIX 4.2 this field was of type int) */\n    CumQty: 14,\n    /** Identifies currency used for price or quantity fields, depending on the asset class being traded. CurrencyCodeSource(2897) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\n        Absence of this field is interpreted as the default currency for the security as defined by the respective reference data. It is recommended that systems provide the currency value whenever possible.\n        For securities trading and digital assets traded securities-style, identifies the currency used to denote the price. Absence of this field is interpreted as the default for the security. For Foreign Exchange (FX) and digital assets traded FX-style, identifies the dealt currency used to denominate the quantity related field(s). */\n    Currency: 15,\n    /** Message sequence number of last message in range to be resent. If request is for a single message BeginSeqNo (7) = EndSeqNo. If request is for all messages subsequent to a particular message, EndSeqNo = \"0\" (representing infinity). */\n    EndSeqNo: 16,\n    /** Unique identifier of execution message as assigned by sell-side (broker, exchange, ECN) (will be 0 (zero) for ExecType (150)=I (Order Status)).\n        Uniqueness must be guaranteed within a single trading day or the life of a multi-day order. Firms which accept multi-day orders should consider embedding a date within the ExecID field to assure uniqueness across days.\n        (Prior to FIX 4.1 this field was of type int). */\n    ExecID: 17,\n    /** Instructions for order handling on exchange trading floor. If more than one instruction is applicable to an order, this field can contain multiple instructions separated by space. *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" *** (see Volume : \"Glossary\" for value definitions) */\n    ExecInst: 18,\n    /** Reference identifier used with Trade, Trade Cancel and Trade Correct execution types.\n        (Prior to FIX 4.1 this field was of type int) */\n    ExecRefID: 19,\n    /** Identifies transaction type */\n    ExecTransType: 20,\n    /** Instructions for order handling on Broker trading floor */\n    HandlInst: 21,\n    /** Identifies class or source of the SecurityID(48) value. */\n    SecurityIDSource: 22,\n    /** Identifies class of alternative SecurityID */\n    IDSource: 22,\n    /** Unique identifier of IOI message.\n        (Prior to FIX 4.1 this field was of type int) */\n    IOIID: 23,\n    /** Unique identifier of IOI message.\n        (Prior to FIX 4.1 this field was of type int) */\n    IOIid: 23,\n    IOIOthSvc: 24,\n    /** Relative quality of indication */\n    IOIQltyInd: 25,\n    /** Reference identifier used with CANCEL and REPLACE, transaction types.\n        (Prior to FIX 4.1 this field was of type int) */\n    IOIRefID: 26,\n    /** Quantity (e.g. number of shares) in numeric form or relative size. */\n    IOIQty: 27,\n    /** Number of shares in numeric or relative size. */\n    IOIShares: 27,\n    /** Identifies IOI message transaction type */\n    IOITransType: 28,\n    /** Broker capacity in order execution */\n    LastCapacity: 29,\n    /** Market of execution for last fill, or an indication of the market where an order was routed\n        Valid values:\n        See \"Appendix 6-C\"\n        In the context of ESMA RTS 1 Annex I, Table 3, Field 6 \"Venue of Execution\" it is required that the \"venue where the transaction was executed\" be identified using ISO 10383 (MIC). Additionally, ESMA requires the use of \"MIC code 'XOFF' for financial instruments admitted to trading or traded on a trading venue, where the transaction on that financial instrument is not executed on a trading venue, systematic internaliser or organized trading platform outside of the Union. Use 'SINT' for financial instruments admitted to trading or traded on a trading venue, where the transaction is executed on a systematic internaliser.\" */\n    LastMkt: 30,\n    /** Price of this (last) fill. */\n    LastPx: 31,\n    /** Quantity (e.g. shares) bought/sold on this (last) fill.\n        (Prior to FIX 4.2 this field was of type int) */\n    LastQty: 32,\n    /** Quantity of shares bought/sold on this (last) fill. Field not required for ExecTransType = 3 (Status)\n        (Prior to FIX 4.2 this field was of type int) */\n    LastShares: 32,\n    /** Identifies number of lines of text body */\n    NoLinesOfText: 33,\n    /** Identifies number of lines of text body */\n    LinesOfText: 33,\n    /** Integer message sequence number. */\n    MsgSeqNum: 34,\n    /** Defines message type ALWAYS THIRD FIELD IN MESSAGE. (Always unencrypted)\n        Note: A \"U\" as the first character in the MsgType field (i.e. U, U2, etc) indicates that the message format is privately defined between the sender and receiver.\n        *** Note the use of lower case letters *** */\n    MsgType: 35,\n    /** New sequence number */\n    NewSeqNo: 36,\n    /** Unique identifier for Order as assigned by sell-side (broker, exchange, ECN). Uniqueness must be guaranteed within a single trading day. Firms which accept multi-day orders should consider embedding a date within the OrderID field to assure uniqueness across days. */\n    OrderID: 37,\n    /** Quantity ordered. This represents the number of shares for equities or par, face or nominal value for FI instruments.\n        (Prior to FIX 4.2 this field was of type int) */\n    OrderQty: 38,\n    /** Identifies current status of order. *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" *** (see Volume : \"Glossary\" for value definitions) */\n    OrdStatus: 39,\n    /** Order type. *** SOME VALUES ARE NO LONGER USED - See \"Deprecated (Phased-out) Features and Supported Approach\" *** (see Volume : \"Glossary\" for value definitions) */\n    OrdType: 40,\n    /** ClOrdID (11) of the previous order (NOT the initial order of the day) as assigned by the institution, used to identify the previous order in cancel and cancel/replace requests. */\n    OrigClOrdID: 41,\n    /** Time of message origination (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")) */\n    OrigTime: 42,\n    /** Indicates possible retransmission of message with this sequence number */\n    PossDupFlag: 43,\n    /** Price per unit of quantity (e.g. per share) */\n    Price: 44,\n    /** Reference message sequence number */\n    RefSeqNum: 45,\n    /** Symbol of issue related to story. Can be repeated within message to identify multiple companies. */\n    RelatdSym: 46,\n    /** Note that the name of this field is changing to \"OrderCapacity\" as Rule80A is a very US market-specific term. Other world markets need to convey similar information, however, often a subset of the US values. . See the \"Rule80A (aka OrderCapacity) Usage by Market\" appendix for market-specific usage of this field. */\n    Rule80A: 47,\n    /** Security identifier value of SecurityIDSource (22) type (e.g. CUSIP, SEDOL, ISIN, etc). Requires SecurityIDSource. */\n    SecurityID: 48,\n    /** Assigned value used to identify firm sending message. */\n    SenderCompID: 49,\n    /** Assigned value used to identify specific message originator (desk, trader, etc.) */\n    SenderSubID: 50,\n    /** No longer used. Included here for reference to prior versions. */\n    SendingDate: 51,\n    /** Time of message transmission (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\") */\n    SendingTime: 52,\n    /** Overall/total quantity (e.g. number of shares)\n        (Prior to FIX 4.2 this field was of type int) */\n    Quantity: 53,\n    /** Number of shares\n        (Prior to FIX 4.2 this field was of type int) */\n    Shares: 53,\n    /** Side of order (see Volume : \"Glossary\" for value definitions) */\n    Side: 54,\n    /** Ticker symbol. Common, \"human understood\" representation of the security. SecurityID (48) value can be specified if no symbol exists (e.g. non-exchange traded Collective Investment Vehicles)\n        Use \"[N/A]\" for products which do not have a symbol. */\n    Symbol: 55,\n    /** Assigned value used to identify receiving firm. */\n    TargetCompID: 56,\n    /** Assigned value used to identify specific individual or unit intended to receive message. \"ADMIN\" reserved for administrative messages not intended for a specific user. */\n    TargetSubID: 57,\n    /** Free format text string\n        (Note: this field does not have a specified maximum length) */\n    Text: 58,\n    /** Specifies how long the order remains in effect. Absence of this field is interpreted as DAY. NOTE not applicable to CIV Orders. */\n    TimeInForce: 59,\n    /** Timestamp when the business transaction represented by the message occurred. */\n    TransactTime: 60,\n    /** Urgency flag */\n    Urgency: 61,\n    /** Indicates expiration time of indication message (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\") */\n    ValidUntilTime: 62,\n    /** Indicates order settlement period. If present, SettlDate (64) overrides this field. If both SettlType (63) and SettDate (64) are omitted, the default for SettlType (63) is 0 (Regular)\n        Regular is defined as the default settlement period for the particular security on the exchange of execution.\n        In Fixed Income the contents of this field may influence the instrument definition if the SecurityID (48) is ambiguous. In the US an active Treasury offering may be re-opened, and for a time one CUSIP will apply to both the current and \"when-issued\" securities. Supplying a value of \"7\" clarifies the instrument description; any other value or the absence of this field should cause the respondent to default to the active issue.\n        Additionally the following patterns may be uses as well as enum values\n        Dx = FX tenor expression for \"days\", e.g. \"D5\", where \"x\" is any integer \\> 0\n        Mx = FX tenor expression for \"months\", e.g. \"M3\", where \"x\" is any integer \\> 0\n        Wx = FX tenor expression for \"weeks\", e.g. \"W13\", where \"x\" is any integer \\> 0\n        Yx = FX tenor expression for \"years\", e.g. \"Y1\", where \"x\" is any integer \\> 0\n        Noted that for FX the tenors expressed using Dx, Mx, Wx, and Yx values do not denote business days, but calendar days. */\n    SettlType: 63,\n    /** Indicates order settlement period. Absence of this field is interpreted as Regular. Regular is defined as the default settlement period for the particular security on the exchange of execution. */\n    SettlmntTyp: 63,\n    /** Specific date of trade settlement (SettlementDate) in YYYYMMDD format.\n        If present, this field overrides SettlType (63). This field is required if the value of SettlType (63) is 6 (Future) or 8 (Sellers Option). This field must be omitted if the value of SettlType (63) is 7 (When and If Issued)\n        (expressed in local time at place of settlement) */\n    SettlDate: 64,\n    /** Specific date of trade settlement (SettlementDate) in YYYYMMDD format. Required when SettlmntTyp = 6 (Future) or SettlmntTyp = 8 (Sellers Option). (expressed in local time at place of settlement) */\n    FutSettDate: 64,\n    /** Additional information about the security (e.g. preferred, warrants, etc.). Note also see SecurityType (167).\n        As defined in the NYSE Stock and bond Symbol Directory and in the AMEX Fitch Directory. */\n    SymbolSfx: 65,\n    /** Unique identifier for list as assigned by institution, used to associate multiple individual orders. Uniqueness must be guaranteed within a single trading day. Firms which generate multi-day orders should consider embedding a date within the ListID field to assure uniqueness across days. */\n    ListID: 66,\n    /** Sequence of individual order within list (i.e. ListSeqNo of TotNoOrders (68), 2 of 25, 3 of 25, . . . ) */\n    ListSeqNo: 67,\n    /** Total number of list order entries across all messages. Should be the sum of all NoOrders (73) in each message that has repeating list order entries related to the same ListID (66). Used to support fragmentation.\n        (Prior to FIX 4.2 this field was named \"ListNoOrds\") */\n    TotNoOrders: 68,\n    /** Free format text message containing list handling and execution instructions. */\n    ListExecInst: 69,\n    /** Unique identifier for allocation message.\n        (Prior to FIX 4.1 this field was of type int) */\n    AllocID: 70,\n    /** Identifies allocation transaction type *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" *** */\n    AllocTransType: 71,\n    /** Reference identifier to be used with AllocTransType (71) = Replace or Cancel.\n        (Prior to FIX 4.1 this field was of type int) */\n    RefAllocID: 72,\n    /** Indicates number of orders to be combined for average pricing and allocation. */\n    NoOrders: 73,\n    /** Indicates number of decimal places to be used for average pricing. Absence of this field indicates that default precision arranged by the broker/institution is to be used. */\n    AvgPxPrecision: 74,\n    /** Indicates number of decimal places to be used for average pricing. Absence of this field indicates that default precision arranged by the broker/institution is to be used. */\n    AvgPrxPrecision: 74,\n    /** Indicates date of trading day. Absence of this field indicates current day (expressed in local time at place of trade). */\n    TradeDate: 75,\n    /** Identifies executing / give-up broker. Standard NASD market-maker mnemonic is preferred. */\n    ExecBroker: 76,\n    /** Indicates whether the resulting position after a trade should be an opening position or closing position. Used for omnibus accounting - where accounts are held on a gross basis instead of being netted together. */\n    PositionEffect: 77,\n    /** Indicates whether the resulting position after a trade should be an opening position or closing position. Used for omnibus accounting - where accounts are held on a gross basis instead of being netted together. */\n    OpenClose: 77,\n    /** Number of repeating AllocAccount (79)/AllocPrice (366) entries. */\n    NoAllocs: 78,\n    /** Sub-account mnemonic */\n    AllocAccount: 79,\n    /** Quantity to be allocated to specific sub-account\n        (Prior to FIX 4.2 this field was of type int) */\n    AllocQty: 80,\n    /** Number of shares to be allocated to specific sub-account\n        (Prior to FIX 4.2 this field was of type int) */\n    AllocShares: 80,\n    /** Processing code for sub-account. Absence of this field in AllocAccount (79) / AllocPrice (366) /AllocQty (80) / ProcessCode instance indicates regular trade. */\n    ProcessCode: 81,\n    /** Total number of reports within series. */\n    NoRpts: 82,\n    /** Sequence number of message within report series. Used to carry reporting sequence number of the fill as represented on the Trade Report Side. */\n    RptSeq: 83,\n    /** Total quantity canceled for this order.\n        (Prior to FIX 4.2 this field was of type int) */\n    CxlQty: 84,\n    /** Number of delivery instruction fields in repeating group.\n        Note this field was removed in FIX 4.1 and reinstated in FIX 4.4. */\n    NoDlvyInst: 85,\n    /** Free format text field to indicate delivery instructions\n        No longer used. Included here for reference to prior versions. */\n    DlvyInst: 86,\n    /** Identifies status of allocation. */\n    AllocStatus: 87,\n    /** Identifies reason for rejection. */\n    AllocRejCode: 88,\n    /** Electronic signature */\n    Signature: 89,\n    /** Length of encrypted message */\n    SecureDataLen: 90,\n    /** Actual encrypted data stream */\n    SecureData: 91,\n    /** Broker to receive trade credit. */\n    BrokerOfCredit: 92,\n    /** Number of bytes in signature field */\n    SignatureLength: 93,\n    /** Email message type. */\n    EmailType: 94,\n    /** Number of bytes in raw data field. */\n    RawDataLength: 95,\n    /** Unformatted raw data, can include bitmaps, word processor documents, etc. */\n    RawData: 96,\n    /** Indicates that message may contain information that has been sent under another sequence number. */\n    PossResend: 97,\n    /** Method of encryption. */\n    EncryptMethod: 98,\n    /** Price per unit of quantity (e.g. per share) */\n    StopPx: 99,\n    /** Execution destination as defined by institution when order is entered.\n        Valid values:\n        See \"Appendix 6-C\" */\n    ExDestination: 100,\n    /** Code to identify reason for cancel rejection. */\n    CxlRejReason: 102,\n    /** Code to identify reason for order rejection. Note: Values 3, 4, and 5 will be used when rejecting an order due to pre-allocation information errors. */\n    OrdRejReason: 103,\n    /** Code to qualify IOI use. (see Volume : \"Glossary\" for value definitions) */\n    IOIQualifier: 104,\n    /** Identifier to aid in the management of multiple lists derived from a single, master list. */\n    WaveNo: 105,\n    /** Name of security issuer (e.g. International Business Machines, GNMA).\n        see also Volume 7: \"PRODUCT: FIXED INCOME - Euro Issuer Values\" */\n    Issuer: 106,\n    /** Can be used by the venue or one of the trading parties to provide a non-normative textual description for the financial instrument. */\n    SecurityDesc: 107,\n    /** Heartbeat interval (seconds) */\n    HeartBtInt: 108,\n    /** Firm identifier used in third party-transactions (should not be a substitute for OnBehalfOfCompID/DeliverToCompID). */\n    ClientID: 109,\n    /** Minimum quantity of an order to be executed.\n        (Prior to FIX 4.2 this field was of type int) */\n    MinQty: 110,\n    /** The quantity to be displayed . Required for reserve orders. On orders specifies the qty to be displayed, on execution reports the currently displayed quantity. */\n    MaxFloor: 111,\n    /** Identifier included in Test Request message to be returned in resulting Heartbeat */\n    TestReqID: 112,\n    /** Identifies party of trade responsible for exchange reporting. */\n    ReportToExch: 113,\n    /** Indicates whether the broker is to locate the stock in conjunction with a short sell order. */\n    LocateReqd: 114,\n    /** Assigned value used to identify firm originating message if the message was delivered by a third party i.e. the third party firm identifier would be delivered in the SenderCompID field and the firm originating the message in this field. */\n    OnBehalfOfCompID: 115,\n    /** Assigned value used to identify specific message originator (i.e. trader) if the message was delivered by a third party */\n    OnBehalfOfSubID: 116,\n    /** Unique identifier for quote */\n    QuoteID: 117,\n    /** Total amount due as the result of the transaction (e.g. for Buy order - principal + commission + fees) reported in currency of execution. */\n    NetMoney: 118,\n    /** Total amount due expressed in settlement currency (includes the effect of the forex transaction) */\n    SettlCurrAmt: 119,\n    /** Currency code of settlement denomination. */\n    SettlCurrency: 120,\n    /** Indicates request for forex accommodation trade to be executed along with security transaction. */\n    ForexReq: 121,\n    /** Original time of message transmission (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\") when transmitting orders as the result of a resend request. */\n    OrigSendingTime: 122,\n    /** Indicates that the Sequence Reset message is replacing administrative or application messages which will not be resent. */\n    GapFillFlag: 123,\n    /** Number of executions or trades. */\n    NoExecs: 124,\n    /** No longer used. Included here for reference to prior versions. */\n    CxlType: 125,\n    /** Time/Date of order expiration (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")\n        The meaning of expiration is specific to the context where the field is used.\n        For orders, this is the expiration time of a Good Til Date TimeInForce.\n        For Quotes - this is the expiration of the quote.\n        Expiration time is provided across the quote message dialog to control the length of time of the overall quoting process.\n        For collateral requests, this is the time by which collateral must be assigned.\n        For collateral assignments, this is the time by which a response to the assignment is expected.\n        For credit/risk limit checks, this is the time when the reserved credit limit will expire for the requested transaction. */\n    ExpireTime: 126,\n    /** Reason for execution rejection. */\n    DKReason: 127,\n    /** Assigned value used to identify the firm targeted to receive the message if the message is delivered by a third party i.e. the third party firm identifier would be delivered in the TargetCompID (56) field and the ultimate receiver firm ID in this field. */\n    DeliverToCompID: 128,\n    /** Assigned value used to identify specific message recipient (i.e. trader) if the message is delivered by a third party */\n    DeliverToSubID: 129,\n    /** Indicates that IOI is the result of an existing agency order or a facilitation position resulting from an agency order, not from principal trading or order solicitation activity. */\n    IOINaturalFlag: 130,\n    /** Unique identifier for a QuoteRequest(35=R). */\n    QuoteReqID: 131,\n    /** Bid price/rate */\n    BidPx: 132,\n    /** Offer price/rate */\n    OfferPx: 133,\n    /** Quantity of bid\n        (Prior to FIX 4.2 this field was of type int) */\n    BidSize: 134,\n    /** Quantity of offer\n        (Prior to FIX 4.2 this field was of type int) */\n    OfferSize: 135,\n    /** Number of repeating groups of miscellaneous fees */\n    NoMiscFees: 136,\n    /** Miscellaneous fee value */\n    MiscFeeAmt: 137,\n    /** Currency of miscellaneous fee */\n    MiscFeeCurr: 138,\n    /** Indicates type of miscellaneous fee. */\n    MiscFeeType: 139,\n    /** Previous closing price of security. */\n    PrevClosePx: 140,\n    /** Indicates that both sides of the FIX session should reset sequence numbers. */\n    ResetSeqNumFlag: 141,\n    /** Assigned value used to identify specific message originator's location (i.e. geographic location and/or desk, trader) */\n    SenderLocationID: 142,\n    /** Assigned value used to identify specific message destination's location (i.e. geographic location and/or desk, trader) */\n    TargetLocationID: 143,\n    /** Assigned value used to identify specific message originator's location (i.e. geographic location and/or desk, trader) if the message was delivered by a third party */\n    OnBehalfOfLocationID: 144,\n    /** Assigned value used to identify specific message recipient's location (i.e. geographic location and/or desk, trader) if the message was delivered by a third party */\n    DeliverToLocationID: 145,\n    /** Specifies the number of repeating symbols specified. */\n    NoRelatedSym: 146,\n    /** The subject of an Email message */\n    Subject: 147,\n    /** The headline of a News message */\n    Headline: 148,\n    /** A URI (Uniform Resource Identifier) or URL (Uniform Resource Locator) link to additional information (i.e. http://www.XYZ.com/research.html)\n        See \"Appendix 6-B FIX Fields Based Upon Other Standards\" */\n    URLLink: 149,\n    /** Describes the specific ExecutionRpt (e.g. Pending Cancel) while OrdStatus(39) will always identify the current order status (e.g. Partially Filled). */\n    ExecType: 150,\n    /** Quantity open for further execution. If the OrdStatus (39) is Canceled, DoneForTheDay, Expired, Calculated, or Rejected (in which case the order is no longer active) then LeavesQty could be 0, otherwise LeavesQty = OrderQty (38) - CumQty (14).\n        (Prior to FIX 4.2 this field was of type int) */\n    LeavesQty: 151,\n    /** Specifies the approximate order quantity desired in total monetary units vs. as tradeable units (e.g. number of shares). The broker or fund manager (for CIV orders) would be responsible for converting and calculating a tradeable unit (e.g. share) quantity (OrderQty (38)) based upon this amount to be used for the actual order and subsequent messages. */\n    CashOrderQty: 152,\n    /** AvgPx (6) for a specific AllocAccount (79)\n        For Fixed Income this is always expressed as \"percent of par\" price type. */\n    AllocAvgPx: 153,\n    /** NetMoney(118) for a specific AllocAccount(79). */\n    AllocNetMoney: 154,\n    /** Foreign exchange rate used to compute SettlCurrAmt(119) from Currency(15) to SettlCurrency(120). */\n    SettlCurrFxRate: 155,\n    /** Specifies whether or not SettlCurrFxRate (155) should be multiplied or divided. */\n    SettlCurrFxRateCalc: 156,\n    /** Number of Days of Interest for convertible bonds and fixed income. Note value may be negative. */\n    NumDaysInterest: 157,\n    /** The amount the buyer compensates the seller for the portion of the next coupon interest payment the seller has earned but will not receive from the issuer because the issuer will send the next coupon payment to the buyer. Accrued Interest Rate is the annualized Accrued Interest amount divided by the purchase price of the bond. */\n    AccruedInterestRate: 158,\n    /** Amount of Accrued Interest for convertible bonds and fixed income */\n    AccruedInterestAmt: 159,\n    /** Indicates mode used for Settlement Instructions message. *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" *** */\n    SettlInstMode: 160,\n    /** Free format text related to a specific AllocAccount (79). */\n    AllocText: 161,\n    /** Unique identifier for Settlement Instruction. */\n    SettlInstID: 162,\n    /** Settlement Instructions message transaction type */\n    SettlInstTransType: 163,\n    /** Unique identifier for an email thread (new and chain of replies) */\n    EmailThreadID: 164,\n    /** Indicates source of Settlement Instructions */\n    SettlInstSource: 165,\n    /** Identifies Settlement Depository or Country Code (ISITC spec) using ISO 3166 (2 character) representing the country of settlement. */\n    SettlLocation: 166,\n    /** Indicates type of security. Security type enumerations are grouped by Product(460) field value. NOTE: Additional values may be used by mutual agreement of the counterparties. */\n    SecurityType: 167,\n    /** Time the details within the message should take effect (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\") */\n    EffectiveTime: 168,\n    /** Identifies the Standing Instruction database used */\n    StandInstDbType: 169,\n    /** Name of the Standing Instruction database represented with StandInstDbType (169) (i.e. the Global Custodian's name). */\n    StandInstDbName: 170,\n    /** Unique identifier used on the Standing Instructions database for the Standing Instructions to be referenced. */\n    StandInstDbID: 171,\n    /** Identifies type of settlement */\n    SettlDeliveryType: 172,\n    /** Broker\u2019s account code at the depository (i.e. CEDEL ID for CEDEL, FINS for DTC, or Euroclear ID for Euroclear) if SettlLocation is a depository */\n    SettlDepositoryCode: 173,\n    /** BIC (Bank Identification Code\u2014Swift managed) code of the broker involved (i.e. for multi-company brokerage firms) */\n    SettlBrkrCode: 174,\n    /** BIC (Bank Identification Code\u2014Swift managed) code of the institution involved (i.e. for multi-company institution firms) */\n    SettlInstCode: 175,\n    /** Name of SettlInstSource's local agent bank if SettlLocation is not a depository */\n    SecuritySettlAgentName: 176,\n    /** BIC (Bank Identification Code--Swift managed) code of the SettlInstSource's local agent bank if SettlLocation is not a depository */\n    SecuritySettlAgentCode: 177,\n    /** SettlInstSource's account number at local agent bank if SettlLocation is not a depository */\n    SecuritySettlAgentAcctNum: 178,\n    /** Name of SettlInstSource's account at local agent bank if SettlLocation is not a depository */\n    SecuritySettlAgentAcctName: 179,\n    /** Name of contact at local agent bank for SettlInstSource's account if SettlLocation is not a depository */\n    SecuritySettlAgentContactName: 180,\n    /** Phone number for contact at local agent bank if SettlLocation is not a depository */\n    SecuritySettlAgentContactPhone: 181,\n    /** Name of SettlInstSource's local agent bank if SettlDeliveryType=Free */\n    CashSettlAgentName: 182,\n    /** BIC (Bank Identification Code--Swift managed) code of the SettlInstSource's local agent bank if SettlDeliveryType=Free */\n    CashSettlAgentCode: 183,\n    /** SettlInstSource's account number at local agent bank if SettlDeliveryType=Free */\n    CashSettlAgentAcctNum: 184,\n    /** Name of SettlInstSource's account at local agent bank if SettlDeliveryType=Free */\n    CashSettlAgentAcctName: 185,\n    /** Name of contact at local agent bank for SettlInstSource's account if SettlDeliveryType=Free */\n    CashSettlAgentContactName: 186,\n    /** Phone number for contact at local agent bank for SettlInstSource's account if SettlDeliveryType=Free */\n    CashSettlAgentContactPhone: 187,\n    /** Bid F/X spot rate. */\n    BidSpotRate: 188,\n    /** Bid F/X forward points added to spot rate. May be a negative value. */\n    BidForwardPoints: 189,\n    /** Offer F/X spot rate. */\n    OfferSpotRate: 190,\n    /** Offer F/X forward points added to spot rate. May be a negative value. */\n    OfferForwardPoints: 191,\n    /** OrderQty (38) of the future part of a F/X swap order. */\n    OrderQty2: 192,\n    /** SettDate (64) of the future part of a F/X swap order. */\n    SettlDate2: 193,\n    /** FutSettDate of the future part of an F/X swap order. */\n    FutSettDate2: 193,\n    /** F/X spot rate. */\n    LastSpotRate: 194,\n    /** F/X forward points added to LastSpotRate(194). May be a negative value. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199. */\n    LastForwardPoints: 195,\n    /** Can be used to link two different Allocation messages (each with unique AllocID (70)) together, i.e. for F/X \"Netting\" or \"Swaps\". Should be unique. */\n    AllocLinkID: 196,\n    /** Identifies the type of Allocation linkage when AllocLinkID(196) is used. */\n    AllocLinkType: 197,\n    /** Assigned by the party which accepts the order. Can be used to provide the OrderID (37) used by an exchange or executing system. */\n    SecondaryOrderID: 198,\n    /** Number of repeating groups of IOIQualifiers (04). */\n    NoIOIQualifiers: 199,\n    /** Can be used with standardized derivatives vs. the MaturityDate (541) field. Month and Year of the maturity (used for standardized futures and options).\n        Format:\n        YYYYMM (e.g. 199903)\n        YYYYMMDD (e.g. 20030323)\n        YYYYMMwN (e.g. 200303w) for week\n        A specific date or can be appended to the MaturityMonthYear. For instance, if multiple standard products exist that mature in the same Year and Month, but actually mature at a different time, a value can be appended, such as \"w\" or \"w2\" to indicate week as opposed to week 2 expiration. Likewise, the date (0-3) can be appended to indicate a specific expiration (maturity date). */\n    MaturityMonthYear: 200,\n    /** Indicates whether an option contract is a put, call, chooser or undetermined. */\n    PutOrCall: 201,\n    /** Strike Price for an Option. */\n    StrikePrice: 202,\n    /** Used for derivative products, such as options */\n    CoveredOrUncovered: 203,\n    /** Used for options when delivering the order to an execution system/exchange to specify if the order is for a customer or the firm placing the order itself. */\n    CustomerOrFirm: 204,\n    /** Day of month used in conjunction with MaturityMonthYear to specify the maturity date for SecurityType=FUT or SecurityType=OPT. */\n    MaturityDay: 205,\n    /** Provided to support versioning of option contracts as a result of corporate actions or events. Use of this field is defined by counterparty agreement or market conventions. */\n    OptAttribute: 206,\n    /** Market used to help identify a security.\n        Provides the place of listing in the context of order placement or market data to uniquely identify the given instrument. Identifies the primary listing (\u201Cofficial place of listing\u201D) when using the Instrument component as part of reference data messages. */\n    SecurityExchange: 207,\n    /** Indicates whether or not details should be communicated to BrokerOfCredit (i.e. step-in broker). */\n    NotifyBrokerOfCredit: 208,\n    /** Indicates how the receiver (i.e. third party) of allocation information should handle/process the account details. */\n    AllocHandlInst: 209,\n    /** Maximum quantity (e.g. number of shares) within an order to be shown to other customers (i.e. sent via an IOI).\n        (Prior to FIX 4.2 this field was of type int) */\n    MaxShow: 210,\n    /** Amount (signed) added to the peg for a pegged order in the context of the PegOffsetType (836)\n        (Prior to FIX 4.4 this field was of type PriceOffset) */\n    PegOffsetValue: 211,\n    /** Amount (signed) added to the price of the peg for a pegged order. */\n    PegDifference: 211,\n    /** Length of the XmlData data block. */\n    XmlDataLen: 212,\n    /** Actual XML data stream (e.g. FIXML). See appropriate XML reference (e.g. FIXML). Note: may contain embedded SOH characters. */\n    XmlData: 213,\n    /** Reference identifier for the SettlInstID (162) with Cancel and Replace SettlInstTransType (163) transaction types. */\n    SettlInstRefID: 214,\n    /** Number of repeating groups of RoutingID (217) and RoutingType (216) values.\n        See Volume 3: \"Pre-Trade Message Targeting/Routing\" */\n    NoRoutingIDs: 215,\n    /** Indicates the type of RoutingID (217) specified. */\n    RoutingType: 216,\n    /** Assigned value used to identify a specific routing destination. */\n    RoutingID: 217,\n    /** For Fixed Income. Either Swap Spread or Spread to Benchmark depending upon the order type.\n        Spread to Benchmark: Basis points relative to a benchmark. To be expressed as count of basis points (vs. an absolute value). E.g. High Grade Corporate Bonds may express price as basis points relative to benchmark (the BenchmarkCurveName(221) field). Note: Basis points can be negative.\n        Swap Spread: Target spread for a swap. */\n    Spread: 218,\n    /** For Fixed Income. Basis points relative to a benchmark. To be expressed as \"count of basis points\" (vs. an absolute value). E.g. High Grade Corporate Bonds may express price as basis points relative to benchmark (the Benchmark field). Note: Basis points can be negative. */\n    SpreadToBenchmark: 218,\n    /** For Fixed Income. Identifies the benchmark (e.g. used in conjunction with the SpreadToBenchmark field). */\n    Benchmark: 219,\n    /** Specifies currency used for benchmark curve.\n        BenchmarkCurveCurrencyCodeSource(2950) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent. */\n    BenchmarkCurveCurrency: 220,\n    /** Name of benchmark curve.\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    BenchmarkCurveName: 221,\n    /** Point on benchmark curve. Free form values: e.g. \"Y\", \"7Y\", \"INTERPOLATED\".\n        Sample values:\n        M = combination of a number between 1-12 and a \"M\" for month\n        Y = combination of number between 1-100 and a \"Y\" for year}\n        10Y-OLD = see above, then add \"-OLD\" when appropriate\n        INTERPOLATED = the point is mathematically derived\n        2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon\n        See Fixed Income-specific documentation at http://www.fixtradingcommunity.org for additional values.\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    BenchmarkCurvePoint: 222,\n    /** The rate of interest that, when multiplied by the principal, par value, or face value of a bond, provides the currency amount of the periodic interest payment. The coupon is always cited, along with maturity, in any quotation of a bond's price. */\n    CouponRate: 223,\n    /** Date interest is to be paid. Used in identifying Corporate Bond issues.\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\n        (prior to FIX 4.4 field was of type UTCDate) */\n    CouponPaymentDate: 224,\n    /** The date on which a bond or stock offering is issued. It may or may not be the same as the effective date (\"Dated Date\") or the date on which interest begins to accrue (\"Interest Accrual Date\")\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\n        (prior to FIX 4.4 field was of type UTCDate) */\n    IssueDate: 225,\n    /** Number of business days before repurchase of a repo. (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    RepurchaseTerm: 226,\n    /** Percent of par at which a Repo will be repaid. Represented as a percent, e.g. .9525 represents 95-/4 percent of par. (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    RepurchaseRate: 227,\n    /** For Fixed Income: Amorization Factor for deriving Current face from Original face for ABS or MBS securities, note the fraction may be greater than, equal to or less than . In TIPS securities this is the Inflation index.\n        Qty * Factor * Price = Gross Trade Amount\n        For Derivatives: Contract Value Factor by which price must be adjusted to determine the true nominal value of one futures/options contract.\n        (Qty * Price) * Factor = Nominal Value\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    Factor: 228,\n    /** Used with Fixed Income for Muncipal New Issue Market. Agreement in principal between counter-parties prior to actual trade date.\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\n        (prior to FIX 4.4 field was of type UTCDate) */\n    TradeOriginationDate: 229,\n    /** The date when a distribution of interest is deducted from a securities assets or set aside for payment to bondholders. On the ex-date, the securities price drops by the amount of the distribution (plus or minus any market activity).\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\n        (prior to FIX 4.4 field was of type UTCDate) */\n    ExDate: 230,\n    /** Specifies the ratio or multiply factor to convert from \"nominal\" units (e.g. contracts) to total units (e.g. shares) (e.g. 1.0, 100, 1000, etc). Applicable For Fixed Income, Convertible Bonds, Derivatives, etc.\n        In general quantities for all classes should be expressed in the basic unit of the instrument, e.g. shares for equities, nominal or par amount for bonds, currency for foreign exchange. When quantity is expressed in contracts, e.g. financing transactions and bond trade reporting, ContractMultiplier(231) should contain the number of units in one contract and can be omitted if the multiplier is the default amount for the instrument, i.e. 1,000 par of bonds, 1,000,000 par for financing transactions. */\n    ContractMultiplier: 231,\n    /** Number of stipulation entries\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3). */\n    NoStipulations: 232,\n    /** For Fixed Income.\n        Type of Stipulation.\n        Other types may be used by mutual agreement of the counterparties.\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    StipulationType: 233,\n    /** For Fixed Income. Value of stipulation.\n        The expression can be an absolute single value or a combination of values and logical operators:\n        \\< value\n        \\> value\n        \\<= value\n        \\>= value\n        value\n        value - value2\n        value OR value2\n        value AND value2\n        YES\n        NO\n        Bargain conditions recognized by the London Stock Exchange - to be used when StipulationType is \"BGNCON\".\n        CD = Special cum Dividend\n        XD = Special ex Dividend\n        CC = Special cum Coupon\n        XC = Special ex Coupon\n        CB = Special cum Bonus\n        XB = Special ex Bonus\n        CR = Special cum Rights\n        XR = Special ex Rights\n        CP = Special cum Capital Repayments\n        XP = Special ex Capital Repayments\n        CS = Cash Settlement\n        SP = Special Price\n        TR = Report for European Equity Market Securities in accordance with Chapter 8 of the Rules.\n        GD = Guaranteed Delivery\n        Values for StipulationType = \"PXSOURCE\":\n        BB GENERIC\n        BB FAIRVALUE\n        BROKERTEC\n        ESPEED\n        GOVPX\n        HILLIARD FARBER\n        ICAP\n        TRADEWEB\n        TULLETT LIBERTY\n        If a particular side of the market is wanted append /BID /OFFER or /MID.\n        plus appropriate combinations of the above and other expressions by mutual agreement of the counterparties.\n        Examples: \"\\>=60\", \".25\", \"ORANGE OR CONTRACOSTA\", etc.\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    StipulationValue: 234,\n    /** Type of yield. (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    YieldType: 235,\n    /** Yield percentage.\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    Yield: 236,\n    /** The price at which the securities are distributed to the different members of an underwriting group for the primary market in Municipals, total gross underwriter's spread.\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    TotalTakedown: 237,\n    /** Provides the reduction in price for the secondary market in Muncipals.\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    Concession: 238,\n    /** Identifies the collateral used in the transaction.\n        Valid values: see SecurityType (167) field (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    RepoCollateralSecurityType: 239,\n    /** Return of investor's principal in a security. Bond redemption can occur before maturity date.(Note tag # was reserved in FIX 4.1, added in FIX 4.3) (prior to FIX 4.4 field was of type UTCDate) */\n    RedemptionDate: 240,\n    /** Underlying security's CouponPaymentDate.\n        See CouponPaymentDate (224) field for description\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\n        (prior to FIX 4.4 field was of type UTCDate) */\n    UnderlyingCouponPaymentDate: 241,\n    /** Underlying security's IssueDate.\n        See IssueDate (225) field for description\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\n        (prior to FIX 4.4 field was of type UTCDate) */\n    UnderlyingIssueDate: 242,\n    /** Underlying security's RepoCollateralSecurityType. See RepoCollateralSecurityType (239) field for description.(Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    UnderlyingRepoCollateralSecurityType: 243,\n    /** Underlying security's RepurchaseTerm. See RepurchaseTerm (226) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    UnderlyingRepurchaseTerm: 244,\n    /** Underlying security's RepurchaseRate. See RepurchaseRate (227) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    UnderlyingRepurchaseRate: 245,\n    /** Underlying security's Factor.\n        See Factor (228) field for description\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    UnderlyingFactor: 246,\n    /** Underlying security's RedemptionDate. See RedemptionDate (240) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3) (prior to FIX 4.4 field was of type UTCDate) */\n    UnderlyingRedemptionDate: 247,\n    /** Multileg instrument's individual leg security's CouponPaymentDate.\n        See CouponPaymentDate (224) field for description\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\n        (prior to FIX 4.4 field was of type UTCDate) */\n    LegCouponPaymentDate: 248,\n    /** Multileg instrument's individual leg security's IssueDate.\n        See IssueDate (225) field for description\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\n        (prior to FIX 4.4 field was of type UTCDate) */\n    LegIssueDate: 249,\n    /** Multileg instrument's individual leg security's RepoCollateralSecurityType. See RepoCollateralSecurityType (239) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    LegRepoCollateralSecurityType: 250,\n    /** Multileg instrument's individual leg security's RepurchaseTerm. See RepurchaseTerm (226) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    LegRepurchaseTerm: 251,\n    /** Multileg instrument's individual leg security's RepurchaseRate. See RepurchaseRate (227) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    LegRepurchaseRate: 252,\n    /** Multileg instrument's individual leg security's Factor.\n        See Factor (228) field for description\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    LegFactor: 253,\n    /** Multileg instrument's individual leg security's RedemptionDate. See RedemptionDate (240) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3) (prior to FIX 4.4 field was of type UTCDate) */\n    LegRedemptionDate: 254,\n    /** An evaluation of a company's ability to repay obligations or its likelihood of not defaulting. These evaluation are provided by Credit Rating Agencies, i.e. S&P, Moody's.\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    CreditRating: 255,\n    /** Underlying security's CreditRating.\n        See CreditRating (255) field for description\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    UnderlyingCreditRating: 256,\n    /** Multileg instrument's individual leg security's CreditRating.\n        See CreditRating (255) field for description\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    LegCreditRating: 257,\n    /** Driver and part of trade in the event that the Security Master file was wrong at the point of entry(Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    TradedFlatSwitch: 258,\n    /** BasisFeatureDate allows requesting firms within fixed income the ability to request an alternative yield-to-worst, -maturity, -extended or other call. This flows through the confirm process.\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\n        (prior to FIX 4.4 field was of type UTCDate) */\n    BasisFeatureDate: 259,\n    /** Price for BasisFeatureDate.\n        See BasisFeatureDate (259)\n        (Note tag # was reserved in FIX 4.1, added in FIX 4.3) */\n    BasisFeaturePrice: 260,\n    /** Unique identifier for Market Data Request */\n    MDReqID: 262,\n    /** Subscription Request Type */\n    SubscriptionRequestType: 263,\n    /** Depth of market for Book Snapshot / Incremental updates\n        0 - full book depth\n        1 - top of book\n        2 and above - book depth (number of levels) */\n    MarketDepth: 264,\n    /** Specifies the type of Market Data update. */\n    MDUpdateType: 265,\n    /** Specifies whether or not book entries should be aggregated. (Not specified) = broker option */\n    AggregatedBook: 266,\n    /** Number of MDEntryType (269) fields requested. */\n    NoMDEntryTypes: 267,\n    /** Number of entries in Market Data message. */\n    NoMDEntries: 268,\n    /** Type of market data entry. */\n    MDEntryType: 269,\n    /** Price of the Market Data Entry. */\n    MDEntryPx: 270,\n    /** Quantity or volume represented by the Market Data Entry. */\n    MDEntrySize: 271,\n    /** Date of Market Data Entry.\n        (prior to FIX 4.4 field was of type UTCDate) */\n    MDEntryDate: 272,\n    /** Time of Market Data Entry. */\n    MDEntryTime: 273,\n    /** Direction of the \"tick\". */\n    TickDirection: 274,\n    /** Market posting quote / trade.\n        Valid values:\n        See \"Appendix 6-C\" */\n    MDMkt: 275,\n    /** Space-delimited list of conditions describing a quote. */\n    QuoteCondition: 276,\n    /** Type of market data entry. */\n    TradeCondition: 277,\n    /** Unique Market Data Entry identifier. */\n    MDEntryID: 278,\n    /** Type of Market Data update action. */\n    MDUpdateAction: 279,\n    /** Refers to a previous MDEntryID (278). */\n    MDEntryRefID: 280,\n    /** Reason for the rejection of a Market Data request. */\n    MDReqRejReason: 281,\n    /** Originator of a Market Data Entry */\n    MDEntryOriginator: 282,\n    /** Identification of a Market Maker's location */\n    LocationID: 283,\n    /** Identification of a Market Maker's desk */\n    DeskID: 284,\n    /** Reason for deletion. */\n    DeleteReason: 285,\n    /** Flag that identifies a market data entry. (Prior to FIX 4.3 this field was of type char) */\n    OpenCloseSettlFlag: 286,\n    /** Flag that identifies a price. */\n    OpenCloseSettleFlag: 286,\n    /** Specifies the number of days that may elapse before delivery of the security */\n    SellerDays: 287,\n    /** Buying party in a trade */\n    MDEntryBuyer: 288,\n    /** Selling party in a trade */\n    MDEntrySeller: 289,\n    /** Display position of a bid or offer, numbered from most competitive to least competitive, per market side, beginning with 1. */\n    MDEntryPositionNo: 290,\n    /** Identifies a firm's or a security's financial status */\n    FinancialStatus: 291,\n    /** Identifies the type of Corporate Action. */\n    CorporateAction: 292,\n    /** Default Bid Size. */\n    DefBidSize: 293,\n    /** Default Offer Size. */\n    DefOfferSize: 294,\n    /** The number of quote entries for a QuoteSet. */\n    NoQuoteEntries: 295,\n    /** The number of sets of quotes in the message. */\n    NoQuoteSets: 296,\n    /** Identifies the status of the quote acknowledgement. */\n    QuoteStatus: 297,\n    /** Identifies the type of quote cancel. */\n    QuoteCancelType: 298,\n    /** Unique identifier for a quote. The QuoteEntryID stays with the quote as a static identifier even if the quote is updated. */\n    QuoteEntryID: 299,\n    /** Reason quote was rejected. */\n    QuoteRejectReason: 300,\n    /** Level of Response requested from receiver of quote messages. A default value should be bilaterally agreed. */\n    QuoteResponseLevel: 301,\n    /** Unique id for the Quote Set. */\n    QuoteSetID: 302,\n    /** Indicates the type of Quote Request being generated */\n    QuoteRequestType: 303,\n    /** Total number of quotes for the quote set. */\n    TotNoQuoteEntries: 304,\n    /** Total number of quotes for the quote set across all messages. Should be the sum of all NoQuoteEntries in each message that has repeating quotes that are part of the same quote set. */\n    TotQuoteEntries: 304,\n    /** Identifies class or source of the UnderlyingSecurityID(309) value. */\n    UnderlyingSecurityIDSource: 305,\n    /** Underlying security\u2019s IDSource. */\n    UnderlyingIDSource: 305,\n    /** Underlying security's Issuer.\n        See Issuer(106) field for description. */\n    UnderlyingIssuer: 306,\n    /** Description of the underlying security.\n        Can be used by the venue or one of the trading parties to provide an optional non-normative textual description of the financial instrument. */\n    UnderlyingSecurityDesc: 307,\n    /** Underlying security's SecurityExchange. Can be used to identify the underlying security.\n        Valid values: see SecurityExchange (207) */\n    UnderlyingSecurityExchange: 308,\n    /** Underlying security's SecurityID.\n        See SecurityID (48) field for description */\n    UnderlyingSecurityID: 309,\n    /** Underlying security's SecurityType.\n        Valid values: see SecurityType (167) field\n        (see below for details concerning this fields use in conjunction with SecurityType=REPO)\n        The following applies when used in conjunction with SecurityType=REPO\n        Represents the general or specific type of security that underlies a financing agreement\n        Valid values for SecurityType=REPO:\n        If bonds of a particular issuer or country are wanted in an Order or are in the basket of an Execution and the SecurityType is not granular enough, include the UnderlyingIssuer (306), UnderlyingCountryOfIssue (592), UnderlyingProgram, UnderlyingRegType and/or \\< UnderlyingStipulations \\> block e.g.: */\n    UnderlyingSecurityType: 310,\n    /** Underlying security's Symbol.\n        See Symbol (55) field for description */\n    UnderlyingSymbol: 311,\n    /** Underlying security's SymbolSfx.\n        See SymbolSfx (65) field for description */\n    UnderlyingSymbolSfx: 312,\n    /** Underlying security's MaturityMonthYear. Can be used with standardized derivatives vs. the UnderlyingMaturityDate (542) field.\n        See MaturityMonthYear (200) field for description */\n    UnderlyingMaturityMonthYear: 313,\n    /** Underlying security\u2019s MaturityDay.\n        See MaturityDay field for description */\n    UnderlyingMaturityDay: 314,\n    /** Indicates whether an underlying option contract is a put, call, chooser or undetermined. */\n    UnderlyingPutOrCall: 315,\n    /** Underlying security's StrikePrice.\n        See StrikePrice (202) field for description */\n    UnderlyingStrikePrice: 316,\n    /** Underlying security's OptAttribute.\n        See OptAttribute (206) field for description */\n    UnderlyingOptAttribute: 317,\n    /** Underlying security's currency. */\n    UnderlyingCurrency: 318,\n    /** Quantity of a particular leg in the security. */\n    RatioQty: 319,\n    /** Unique ID of a Security Definition Request. */\n    SecurityReqID: 320,\n    /** Type of Security Definition Request. */\n    SecurityRequestType: 321,\n    /** Unique ID of a Security Definition message. */\n    SecurityResponseID: 322,\n    /** Type of Security Definition message response. */\n    SecurityResponseType: 323,\n    /** Unique ID of a Security Status Request or a Security Mass Status Request message. */\n    SecurityStatusReqID: 324,\n    /** Indicates whether or not message is being sent as a result of a subscription request or not. */\n    UnsolicitedIndicator: 325,\n    /** Identifies the trading status applicable to the transaction. */\n    SecurityTradingStatus: 326,\n    /** Denotes the reason for the Opening Delay or Trading Halt. */\n    HaltReason: 327,\n    /** Indicates whether or not the halt was due to Common Stock trading being halted. */\n    InViewOfCommon: 328,\n    /** Indicates whether or not the halt was due to the Related Security being halted. */\n    DueToRelated: 329,\n    /** Quantity bought. */\n    BuyVolume: 330,\n    /** Quantity sold. */\n    SellVolume: 331,\n    /** Represents an indication of the high end of the price range for a security prior to the open or reopen */\n    HighPx: 332,\n    /** Represents an indication of the low end of the price range for a security prior to the open or reopen */\n    LowPx: 333,\n    /** Identifies the type of adjustment. */\n    Adjustment: 334,\n    /** Unique ID of a Trading Session Status message. */\n    TradSesReqID: 335,\n    /** Identifier for a trading session.\n        A trading session spans an extended period of time that can also be expressed informally in terms of the trading day. Usage is determined by market or counterparties.\n        To specify good for session where session spans more than one calendar day, use TimeInForce = 0 (Day) in conjunction with TradingSessionID(336).\n        Bilaterally agreed values of data type \"String\" that start with a character can be used for backward compatibility. */\n    TradingSessionID: 336,\n    /** Identifies the trader (e.g. \"badge number\") of the ContraBroker. */\n    ContraTrader: 337,\n    /** Method of trading */\n    TradSesMethod: 338,\n    /** Trading Session Mode */\n    TradSesMode: 339,\n    /** State of the trading session. */\n    TradSesStatus: 340,\n    /** Starting time of the trading session */\n    TradSesStartTime: 341,\n    /** Time of the opening of the trading session */\n    TradSesOpenTime: 342,\n    /** Time of the pre-closed of the trading session */\n    TradSesPreCloseTime: 343,\n    /** Closing time of the trading session */\n    TradSesCloseTime: 344,\n    /** End time of the trading session */\n    TradSesEndTime: 345,\n    /** Number of orders in the market. */\n    NumberOfOrders: 346,\n    /** Type of message encoding (non-ASCII (non-English) characters) used in a message's \"Encoded\" fields. */\n    MessageEncoding: 347,\n    /** Byte length of encoded (non-ASCII characters) EncodedIssuer (349) field. */\n    EncodedIssuerLen: 348,\n    /** Encoded (non-ASCII characters) representation of the Issuer field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the Issuer field. */\n    EncodedIssuer: 349,\n    /** Byte length of encoded (non-ASCII characters) EncodedSecurityDesc (351) field. */\n    EncodedSecurityDescLen: 350,\n    /** Encoded (non-ASCII characters) representation of the SecurityDesc (107) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the SecurityDesc field. */\n    EncodedSecurityDesc: 351,\n    /** Byte length of encoded (non-ASCII characters) EncodedListExecInst (353) field. */\n    EncodedListExecInstLen: 352,\n    /** Encoded (non-ASCII characters) representation of the ListExecInst (69) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the ListExecInst field. */\n    EncodedListExecInst: 353,\n    /** Byte length of encoded (non-ASCII characters) EncodedText (355) field. */\n    EncodedTextLen: 354,\n    /** Encoded (non-ASCII characters) representation of the Text (58) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the Text(58) field. */\n    EncodedText: 355,\n    /** Byte length of encoded (non-ASCII characters) EncodedSubject (357) field. */\n    EncodedSubjectLen: 356,\n    /** Encoded (non-ASCII characters) representation of the Subject (147) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the Subject field. */\n    EncodedSubject: 357,\n    /** Byte length of encoded (non-ASCII characters) EncodedHeadline (359) field. */\n    EncodedHeadlineLen: 358,\n    /** Encoded (non-ASCII characters) representation of the Headline (148) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the Headline field. */\n    EncodedHeadline: 359,\n    /** Byte length of encoded (non-ASCII characters) EncodedAllocText (361) field. */\n    EncodedAllocTextLen: 360,\n    /** Encoded (non-ASCII characters) representation of the AllocText (161) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the AllocText field. */\n    EncodedAllocText: 361,\n    /** Byte length of encoded (non-ASCII characters) EncodedUnderlyingIssuer (363) field. */\n    EncodedUnderlyingIssuerLen: 362,\n    /** Encoded (non-ASCII characters) representation of the UnderlyingIssuer (306) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingIssuer field. */\n    EncodedUnderlyingIssuer: 363,\n    /** Byte length of encoded (non-ASCII characters) EncodedUnderlyingSecurityDesc (365) field. */\n    EncodedUnderlyingSecurityDescLen: 364,\n    /** Encoded (non-ASCII characters) representation of the UnderlyingSecurityDesc (307) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingSecurityeDesc field. */\n    EncodedUnderlyingSecurityDesc: 365,\n    /** Executed price for an AllocAccount (79) entry used when using \"executed price\" vs. \"average price\" allocations (e.g. Japan). */\n    AllocPrice: 366,\n    /** Indicates expiration time of this particular QuoteSet (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\") */\n    QuoteSetValidUntilTime: 367,\n    /** Reason Quote Entry was rejected: */\n    QuoteEntryRejectReason: 368,\n    /** The last MsgSeqNum (34) value received by the FIX engine and processed by downstream application, such as trading engine or order routing system. Can be specified on every message sent. Useful for detecting a backlog with a counterparty. */\n    LastMsgSeqNumProcessed: 369,\n    /** Used when a message is sent via a \"hub\" or \"service bureau\". If A sends to Q (the hub) who then sends to B via a separate FIX session, then when Q sends to B the value of this field should represent the SendingTime on the message A sent to Q. (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\") */\n    OnBehalfOfSendingTime: 370,\n    /** The tag number of the FIX field being referenced. */\n    RefTagID: 371,\n    /** The MsgType (35) of the FIX message being referenced. */\n    RefMsgType: 372,\n    /** Code to identify reason for a session-level Reject message. */\n    SessionRejectReason: 373,\n    /** Identifies the Bid Request message type. */\n    BidRequestTransType: 374,\n    /** Identifies contra broker. Standard NASD market-maker mnemonic is preferred. */\n    ContraBroker: 375,\n    /** ID used to represent this transaction for compliance purposes (e.g. OATS reporting). */\n    ComplianceID: 376,\n    /** Indicates whether or not the order was solicited. */\n    SolicitedFlag: 377,\n    /** The reason for restatement when an ExecutionReport(35=8) or TradeCaptureReport(35=AE) message is sent with ExecType(150) = D (Restated) or used when communicating an unsolicited cancel. */\n    ExecRestatementReason: 378,\n    /** The value of the business-level \"ID\" field on the message being referenced. */\n    BusinessRejectRefID: 379,\n    /** Code to identify reason for a Business Message Reject message. */\n    BusinessRejectReason: 380,\n    /** Total amount traded expressed in units of currency - usually quantity * price. For FX Futures this is used to express the notional value of a fill when quantity fields are expressed in terms of contract size (i.e. quantity * price * contract size). */\n    GrossTradeAmt: 381,\n    /** The number of ContraBroker (375) entries. */\n    NoContraBrokers: 382,\n    /** Maximum number of bytes supported for a single message. */\n    MaxMessageSize: 383,\n    /** Number of MsgTypes (35) in repeating group. */\n    NoMsgTypes: 384,\n    /** Specifies the direction of the message. */\n    MsgDirection: 385,\n    /** Number of TradingSessionIDs (336) in repeating group. */\n    NoTradingSessions: 386,\n    /** Total volume (quantity) traded. */\n    TotalVolumeTraded: 387,\n    /** Code to identify the price a DiscretionOffsetValue (389) is related to and should be mathematically added to. */\n    DiscretionInst: 388,\n    /** Amount (signed) added to the \"related to\" price specified via DiscretionInst (388), in the context of DiscretionOffsetType (842)\n        (Prior to FIX 4.4 this field was of type PriceOffset) */\n    DiscretionOffsetValue: 389,\n    /** Amount (signed) added to the \"related to\" price specified via DiscretionInst. */\n    DiscretionOffset: 389,\n    /** For bid lists, unique identifier for BidResponse(35=I) as assigned by sell-side (broker, exchange, ECN). Uniqueness must be guaranteed within a single trading day.\n        For quotes, unique identifier for the bid side of the quote assigned by the quote issuer. */\n    BidID: 390,\n    /** Unique identifier for a Bid Request as assigned by institution. Uniqueness must be guaranteed within a single trading day. */\n    ClientBidID: 391,\n    /** Descriptive name for list order. */\n    ListName: 392,\n    /** Total number of securities.\n        (Prior to FIX 4.4 this field was named TotalNumSecurities) */\n    TotNoRelatedSym: 393,\n    /** Total number of securities. */\n    TotalNumSecurities: 393,\n    /** Code to identify the type of Bid Request. */\n    BidType: 394,\n    /** Total number of tickets. */\n    NumTickets: 395,\n    /** Amounts in currency */\n    SideValue1: 396,\n    /** Amounts in currency */\n    SideValue2: 397,\n    /** Number of BidDescriptor (400) entries. */\n    NoBidDescriptors: 398,\n    /** Code to identify the type of BidDescriptor (400). */\n    BidDescriptorType: 399,\n    /** BidDescriptor value. Usage depends upon BidDescriptorTyp (399).\n        If BidDescriptorType = 1\n        Industrials etc - Free text\n        If BidDescriptorType = 2\n        \"FR\" etc - ISO Country Codes\n        If BidDescriptorType = 3\n        FT00, FT250, STOX - Free text */\n    BidDescriptor: 400,\n    /** Code to identify which \"SideValue\" the value refers to. SideValue1 and SideValue2 are used as opposed to Buy or Sell so that the basket can be quoted either way as Buy or Sell. */\n    SideValueInd: 401,\n    /** Liquidity indicator or lower limit if TotalNumSecurities (393) \\> 1. Represented as a percentage. */\n    LiquidityPctLow: 402,\n    /** Upper liquidity indicator if TotalNumSecurities (393) \\> 1. Represented as a percentage. */\n    LiquidityPctHigh: 403,\n    /** Value between LiquidityPctLow (402) and LiquidityPctHigh (403) in Currency */\n    LiquidityValue: 404,\n    /** Eg Used in EFP trades 2% (EFP - Exchange for Physical ). Represented as a percentage. */\n    EFPTrackingError: 405,\n    /** Used in EFP trades */\n    FairValue: 406,\n    /** Used in EFP trades. Represented as a percentage. */\n    OutsideIndexPct: 407,\n    /** Used in EFP trades */\n    ValueOfFutures: 408,\n    /** Code to identify the type of liquidity indicator. */\n    LiquidityIndType: 409,\n    /** Overall weighted average liquidity expressed as a % of average daily volume. Represented as a percentage. */\n    WtAverageLiquidity: 410,\n    /** Indicates whether or not to exchange for phsyical. */\n    ExchangeForPhysical: 411,\n    /** Value of stocks in Currency */\n    OutMainCntryUIndex: 412,\n    /** Percentage of program that crosses in Currency. Represented as a percentage. */\n    CrossPercent: 413,\n    /** Code to identify the desired frequency of progress reports. */\n    ProgRptReqs: 414,\n    /** Time in minutes between each ListStatus report sent by SellSide. Zero means don't send status. */\n    ProgPeriodInterval: 415,\n    /** Code to represent whether value is net (inclusive of tax) or gross. */\n    IncTaxInd: 416,\n    /** Indicates the total number of bidders on the list */\n    NumBidders: 417,\n    /** Code to represent the type of trade.\n        (Prior to FIX 4.4 this field was named \"TradeType\") */\n    BidTradeType: 418,\n    /** Code to represent the basis price type. */\n    BasisPxType: 419,\n    /** Indicates the number of list entries. */\n    NoBidComponents: 420,\n    /** ISO Country Code in field */\n    Country: 421,\n    /** Total number of strike price entries across all messages. Should be the sum of all NoStrikes (428) in each message that has repeating strike price entries related to the same ListID (66). Used to support fragmentation. */\n    TotNoStrikes: 422,\n    /** Code to represent the price type. */\n    PriceType: 423,\n    /** For GT orders, the OrderQty (38) less all quantity (adjusted for stock splits) that traded on previous days. DayOrderQty (424) = OrderQty - (CumQty (14) - DayCumQty (425)) */\n    DayOrderQty: 424,\n    /** Quantity on a GT order that has traded today. */\n    DayCumQty: 425,\n    /** The average price for quantity on a GT order that has traded today. */\n    DayAvgPx: 426,\n    /** Code to identify whether to book out executions on a part-filled GT order on the day of execution or to accumulate. */\n    GTBookingInst: 427,\n    /** Number of list strike price entries. */\n    NoStrikes: 428,\n    /** Code to represent the status type. */\n    ListStatusType: 429,\n    /** Code to represent whether value is net (inclusive of tax) or gross. */\n    NetGrossInd: 430,\n    /** Code to represent the status of a list order. */\n    ListOrderStatus: 431,\n    /** Date of order expiration (last day the order can trade), always expressed in terms of the local market date. The time at which the order expires is determined by the local market's business practices */\n    ExpireDate: 432,\n    /** Identifies the type of ListExecInst (69). */\n    ListExecInstType: 433,\n    /** Identifies the type of request that a Cancel Reject is in response to. */\n    CxlRejResponseTo: 434,\n    /** Underlying security's CouponRate.\n        See CouponRate (223) field for description */\n    UnderlyingCouponRate: 435,\n    /** Underlying security's ContractMultiplier.\n        See ContractMultiplier (231) field for description */\n    UnderlyingContractMultiplier: 436,\n    /** Quantity traded with the ContraBroker (375). */\n    ContraTradeQty: 437,\n    /** Identifes the time of the trade with the ContraBroker (375). (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\") */\n    ContraTradeTime: 438,\n    /** Firm that will clear the trade. Used if different from the executing firm. */\n    ClearingFirm: 439,\n    /** Supplemental accounting information forwarded to clearing house/firm. */\n    ClearingAccount: 440,\n    /** Number of Securites between LiquidityPctLow (402) and LiquidityPctHigh (403) in Currency. */\n    LiquidityNumSecurities: 441,\n    /** Used to indicate how the multi-legged security (e.g. option strategies, spreads, etc.) is being reported. */\n    MultiLegReportingType: 442,\n    /** The time at which current market prices are used to determine the value of a basket.\n        In negotiation workflows where a spread-to-benchmark price is negotiated, this is the pre-determined time at which the benchmark is to be spotted. */\n    StrikeTime: 443,\n    /** Free format text string related to List Status. */\n    ListStatusText: 444,\n    /** Byte length of encoded (non-ASCII characters) EncodedListStatusText (446) field. */\n    EncodedListStatusTextLen: 445,\n    /** Encoded (non-ASCII characters) representation of the ListStatusText (444) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the ListStatusText field. */\n    EncodedListStatusText: 446,\n    /** Identifies class or source of the PartyID (448) value. Required if PartyID is specified. Note: applicable values depend upon PartyRole (452) specified.\n        See \"Appendix 6-G - Use of \\<Parties\\> Component Block\" */\n    PartyIDSource: 447,\n    /** Party identifier/code. See PartyIDSource (447) and PartyRole (452).\n        See \"Appendix 6-G - Use of \\<Parties\\> Component Block\" */\n    PartyID: 448,\n    /** Net change from previous day's closing price vs. last traded price. */\n    NetChgPrevDay: 451,\n    /** Identifies the type or role of the PartyID (448) specified. */\n    PartyRole: 452,\n    /** Number of PartyID (448), PartyIDSource (447), and PartyRole (452) entries */\n    NoPartyIDs: 453,\n    /** Number of SecurityAltID (455) entries. */\n    NoSecurityAltID: 454,\n    /** Alternate Security identifier value for this security of SecurityAltIDSource (456) type (e.g. CUSIP, SEDOL, ISIN, etc). Requires SecurityAltIDSource. */\n    SecurityAltID: 455,\n    /** Identifies class or source of the SecurityAltID(455) value. */\n    SecurityAltIDSource: 456,\n    /** Number of UnderlyingSecurityAltID (458) entries. */\n    NoUnderlyingSecurityAltID: 457,\n    /** Alternate Security identifier value for this underlying security of UnderlyingSecurityAltIDSource (459) type (e.g. CUSIP, SEDOL, ISIN, etc). Requires UnderlyingSecurityAltIDSource. */\n    UnderlyingSecurityAltID: 458,\n    /** Identifies class or source of the UnderlyingSecurityAltID(458) value.\n        Required if UnderlyingSecurityAltID is specified. */\n    UnderlyingSecurityAltIDSource: 459,\n    /** Indicates the type of product the security is associated with. See also the CFICode (461) and SecurityType (167) fields. */\n    Product: 460,\n    /** Indicates the type of security using ISO 10962 standard, Classification of Financial Instruments (CFI code) values. ISO 10962 is maintained by ANNA (Association of National Numbering Agencies) acting as Registration Authority. See \"Appendix 6-B FIX Fields Based Upon Other Standards\". See also the Product (460) and SecurityType (167) fields. It is recommended that CFICode be used instead of SecurityType (167) for non-Fixed Income instruments.\n        A subset of possible values applicable to FIX usage are identified in \"Appendix 6-D CFICode Usage - ISO 10962 Classification of Financial Instruments (CFI code)\" */\n    CFICode: 461,\n    /** Underlying security's Product.\n        Valid values: see Product(460) field */\n    UnderlyingProduct: 462,\n    /** Underlying security's CFICode.\n        Valid values: see CFICode (461) field */\n    UnderlyingCFICode: 463,\n    /** Indicates whether or not this FIX Session is a \"test\" vs. \"production\" connection. Useful for preventing \"accidents\". */\n    TestMessageIndicator: 464,\n    /** Common reference passed to a post-trade booking process (e.g. industry matching utility). */\n    BookingRefID: 466,\n    /** Unique identifier for a specific NoAllocs (78) repeating group instance (e.g. for an AllocAccount). */\n    IndividualAllocID: 467,\n    /** Specifies which direction to round For CIV - indicates whether or not the quantity of shares/units is to be rounded and in which direction where CashOrdQty (152) or (for CIV only) OrderPercent (516) are specified on an order.\n        The default is for rounding to be at the discretion of the executing broker or fund manager.\n        e.g. for an order specifying CashOrdQty or OrderPercent if the calculated number of shares/units was 325.76 and RoundingModulus (469) was 0 - \"round down\" would give 320 units, 1 - \"round up\" would give 330 units and \"round to nearest\" would give 320 units. */\n    RoundingDirection: 468,\n    /** For CIV - a float value indicating the value to which rounding is required.\n        i.e. 0 means round to a multiple of 0 units/shares; 0.5 means round to a multiple of 0.5 units/shares.\n        The default, if RoundingDirection (468) is specified without RoundingModulus, is to round to a whole unit/share. */\n    RoundingModulus: 469,\n    /** ISO Country code of instrument issue (e.g. the country portion typically used in ISIN). Can be used in conjunction with non-ISIN SecurityID (48) (e.g. CUSIP for Municipal Bonds without ISIN) to provide uniqueness. */\n    CountryOfIssue: 470,\n    /** A two-character state or province abbreviation. */\n    StateOrProvinceOfIssue: 471,\n    /** Identifies the locale or region of issue.\n        For Municipal Security Issuers other than state or province. Refer to http://www.atmos.albany.edu/cgi/stagrep-cgi. Reference the IATA city codes for values. Note IATA (International Air Transport Association) maintains the codes at www.iata.org. For other securities the value may be a region of the issuer, e.g. North America. */\n    LocaleOfIssue: 472,\n    /** The number of registration details on a Registration Instructions message */\n    NoRegistDtls: 473,\n    /** Set of Correspondence address details, possibly including phone, fax, etc. */\n    MailingDtls: 474,\n    /** The ISO 3166 Country code (2 character) identifying which country the beneficial investor is resident for tax purposes. */\n    InvestorCountryOfResidence: 475,\n    /** \"Settlement Payment Reference\" - A free format Payment reference to assist with reconciliation, e.g. a Client and/or Order ID number. */\n    PaymentRef: 476,\n    /** Identifies the payment method for a (fractional) distribution. Used for CIV. */\n    DistribPaymentMethod: 477,\n    /** Specifies currency to be used for Cash Distributions see \"Appendix 6-A Valid Currency Codes\". */\n    CashDistribCurr: 478,\n    /** Specifies currency to be used for Commission(12) if the commission currency is different from the deal currency.\n        CommCurrencyCodeSource(2922) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent. */\n    CommCurrency: 479,\n    /** For CIV - A one character code identifying whether Cancellation rights/Cooling off period applies. */\n    CancellationRights: 480,\n    /** A one character code identifying Money laundering status. */\n    MoneyLaunderingStatus: 481,\n    /** Free format text to specify mailing instruction requirements, e.g. \"no third party mailings\". */\n    MailingInst: 482,\n    /** For CIV A date and time stamp to indicate the time a CIV order was booked by the fund manager.\n        For derivatives a date and time stamp to indicate when this order was booked with the agent prior to submission to the VMU. Indicates the time at which the order was finalized between the buyer and seller prior to submission. */\n    TransBkdTime: 483,\n    /** For CIV - Identifies how the execution price LastPx (31) was calculated from the fund unit/share price(s) calculated at the fund valuation point. */\n    ExecPriceType: 484,\n    /** For CIV the amount or percentage by which the fund unit/share price was adjusted, as indicated by ExecPriceType (484) */\n    ExecPriceAdjustment: 485,\n    /** The date of birth applicable to the individual, e.g. required to open some types of tax-exempt account. */\n    DateOfBirth: 486,\n    /** Identifies Trade Report message transaction type\n        (Prior to FIX 4.4 this field was of type char) */\n    TradeReportTransType: 487,\n    /** The name of the payment card holder as specified on the card being used for payment. */\n    CardHolderName: 488,\n    /** The number of the payment card as specified on the card being used for payment. */\n    CardNumber: 489,\n    /** The expiry date of the payment card as specified on the card being used for payment. */\n    CardExpDate: 490,\n    /** The issue number of the payment card as specified on the card being used for payment. This is only applicable to certain types of card. */\n    CardIssNum: 491,\n    /** Identifies the settlement payment method. */\n    PaymentMethod: 492,\n    /** For CIV - a fund manager-defined code identifying which of the fund manager's account types is required. */\n    RegistAcctType: 493,\n    /** Free format text defining the designation to be associated with a holding on the register. Used to identify assets of a specific underlying investor using a common registration, e.g. a broker's nominee or street name. */\n    Designation: 494,\n    /** Identifies the type of tax exempt account in which purchases shares/units are to be held. Used for CIV. */\n    TaxAdvantageType: 495,\n    /** Text indicating reason(s) why a Registration Instruction has been rejected. */\n    RegistRejReasonText: 496,\n    /** A one character code identifying whether the Fund based renewal commission is to be waived. */\n    FundRenewWaiv: 497,\n    /** Name of local agent bank if for cash distributions */\n    CashDistribAgentName: 498,\n    /** BIC (Bank Identification Code--Swift managed) code of agent bank for cash distributions */\n    CashDistribAgentCode: 499,\n    /** Account number at agent bank for distributions. */\n    CashDistribAgentAcctNumber: 500,\n    /** Free format Payment reference to assist with reconciliation of distributions. */\n    CashDistribPayRef: 501,\n    /** Name of account at agent bank for distributions. */\n    CashDistribAgentAcctName: 502,\n    /** The start date of the card as specified on the card being used for payment. */\n    CardStartDate: 503,\n    /** The date written on a cheque or date payment should be submitted to the relevant clearing system. */\n    PaymentDate: 504,\n    /** Identifies sender of a payment, e.g. the payment remitter or a customer reference number. */\n    PaymentRemitterID: 505,\n    /** Registration status as returned by the broker or (for CIV) the fund manager: */\n    RegistStatus: 506,\n    /** Reason(s) why Registration Instructions has been rejected.\n        The reason may be further amplified in the RegistRejReasonCode field.\n        Possible values of reason code include: */\n    RegistRejReasonCode: 507,\n    /** Reference identifier for the RegistID(513) with Cancel and Replace RegistTransType(514) transaction types. */\n    RegistRefID: 508,\n    /** Set of Registration name and address details, possibly including phone, fax etc. */\n    RegistDtls: 509,\n    /** The number of Distribution Instructions on a Registration Instructions message */\n    NoDistribInsts: 510,\n    /** Email address relating to Registration name and address details */\n    RegistEmail: 511,\n    /** The amount of each distribution to go to this beneficiary, expressed as a percentage */\n    DistribPercentage: 512,\n    /** Unique identifier of the registration details as assigned by institution or intermediary. */\n    RegistID: 513,\n    /** Identifies Registration Instructions transaction type */\n    RegistTransType: 514,\n    /** For CIV - a date and time stamp to indicate the fund valuation point with respect to which a order was priced by the fund manager. */\n    ExecValuationPoint: 515,\n    /** For CIV specifies the approximate order quantity desired. For a CIV Sale it specifies percentage of investor's total holding to be sold. For a CIV switch/exchange it specifies percentage of investor's cash realised from sales to be re-invested. The executing broker, intermediary or fund manager is responsible for converting and calculating OrderQty (38) in shares/units for subsequent messages. */\n    OrderPercent: 516,\n    /** The relationship between Registration parties. */\n    OwnershipType: 517,\n    /** The number of Contract Amount details on an Execution Report message */\n    NoContAmts: 518,\n    /** Type of ContAmtValue (520).\n        NOTE That Commission Amount / % in Contract Amounts is the commission actually charged, rather than the commission instructions given in Fields 2/3. */\n    ContAmtType: 519,\n    /** Value of Contract Amount, e.g. a financial amount or percentage as indicated by ContAmtType (519). */\n    ContAmtValue: 520,\n    /** Specifies currency for the Contract amount if different from the Deal Currency - see \"Appendix 6-A; Valid Currency Codes\". */\n    ContAmtCurr: 521,\n    /** Identifies the type of owner. */\n    OwnerType: 522,\n    /** Sub-identifier (e.g. Clearing Account for PartyRole (452)=Clearing Firm, Locate ID # for PartyRole=Locate/Lending Firm, etc). Not required when using PartyID (448), PartyIDSource (447), and PartyRole. */\n    PartySubID: 523,\n    /** PartyID value within a nested repeating group.\n        Same values as PartyID (448) */\n    NestedPartyID: 524,\n    /** PartyIDSource value within a nested repeating group.\n        Same values as PartyIDSource (447) */\n    NestedPartyIDSource: 525,\n    /** Assigned by the party which originates the order. Can be used to provide the ClOrdID (11) used by an exchange or executing system. */\n    SecondaryClOrdID: 526,\n    /** Assigned by the party which accepts the order. Can be used to provide the ExecID (17) used by an exchange or executing system. */\n    SecondaryExecID: 527,\n    /** Designates the capacity of the firm placing the order.\n        (as of FIX 4.3, this field replaced Rule80A (tag 47) --used in conjunction with OrderRestrictions (529) field)\n        (see Volume : \"Glossary\" for value definitions) */\n    OrderCapacity: 528,\n    /** Restrictions associated with an order. If more than one restriction is applicable to an order, this field can contain multiple instructions separated by space. */\n    OrderRestrictions: 529,\n    /** Specifies scope of Order Mass Cancel Request. */\n    MassCancelRequestType: 530,\n    /** Specifies the action taken by counterparty order handling system as a result of the Order Mass Cancel Request */\n    MassCancelResponse: 531,\n    /** Reason Order Mass Cancel Request was rejected */\n    MassCancelRejectReason: 532,\n    /** Total number of orders affected by either the OrderMassActionRequest(MsgType=CA) or OrderMassCancelRequest(MsgType=Q). */\n    TotalAffectedOrders: 533,\n    /** Number of affected orders in the repeating group of order ids. */\n    NoAffectedOrders: 534,\n    /** OrderID(37) of an order affected by a mass cancel or mass action request. */\n    AffectedOrderID: 535,\n    /** SecondaryOrderID(198) of an order affected by a mass cancel or mass action request. */\n    AffectedSecondaryOrderID: 536,\n    /** Identifies the type of quote.\n        An indicative quote is used to inform a counterparty of a market. An indicative quote does not result directly in a trade.\n        A tradeable quote is submitted to a market and will result directly in a trade against other orders and quotes in a market.\n        A restricted tradeable quote is submitted to a market and within a certain restriction (possibly based upon price or quantity) will automatically trade against orders. Order that do not comply with restrictions are sent to the quote issuer who can choose to accept or decline the order.\n        A counter quote is used in the negotiation model. See Volume 7 - Product: Fixed Income for example usage. */\n    QuoteType: 537,\n    /** PartyRole value within a nested repeating group.\n        Same values as PartyRole (452) */\n    NestedPartyRole: 538,\n    /** Number of NestedPartyID (524), NestedPartyIDSource (525), and NestedPartyRole (538) entries */\n    NoNestedPartyIDs: 539,\n    /** Total Amount of Accrued Interest for convertible bonds and fixed income */\n    TotalAccruedInterestAmt: 540,\n    /** Date of maturity. */\n    MaturityDate: 541,\n    /** Underlying security's maturity date.\n        See MaturityDate (541) field for description */\n    UnderlyingMaturityDate: 542,\n    /** Values may include BIC for the depository or custodian who maintain ownership records, the ISO country code for the location of the record, or the value \"ZZ\" to specify physical ownership of the security (e.g. stock certificate). */\n    InstrRegistry: 543,\n    /** Identifies whether an order is a margin order or a non-margin order. This is primarily used when sending orders to Japanese exchanges to indicate sell margin or buy to cover. The same tag could be assigned also by buy-side to indicate the intent to sell or buy margin and the sell-side to accept or reject (base on some validation criteria) the margin request. */\n    CashMargin: 544,\n    /** PartySubID value within a nested repeating group.\n        Same values as PartySubID (523) */\n    NestedPartySubID: 545,\n    /** Specifies the market scope of the market data. */\n    Scope: 546,\n    /** Defines how a server handles distribution of a truncated book. Defaults to broker option. */\n    MDImplicitDelete: 547,\n    /** Identifier for a cross order. Must be unique during a given trading day. Recommend that firms use the order date as part of the CrossID for Good Till Cancel (GT) orders. */\n    CrossID: 548,\n    /** Type of cross being submitted to a market */\n    CrossType: 549,\n    /** Indicates if one side or the other of a cross order should be prioritized.\n        The definition of prioritization is left to the market. In some markets prioritization means which side of the cross order is applied to the market first. In other markets - prioritization may mean that the prioritized side is fully executed (sometimes referred to as the side being protected). */\n    CrossPrioritization: 550,\n    /** CrossID of the previous cross order (NOT the initial cross order of the day) as assigned by the institution, used to identify the previous cross order in Cross Cancel and Cross Cancel/Replace Requests. */\n    OrigCrossID: 551,\n    /** Number of Side repeating group instances. */\n    NoSides: 552,\n    /** Userid or username. */\n    Username: 553,\n    /** Password or passphrase. */\n    Password: 554,\n    /** Number of InstrumentLeg repeating group instances. */\n    NoLegs: 555,\n    /** Currency associated with a particular Leg's quantity */\n    LegCurrency: 556,\n    /** Used to support fragmentation. Indicates total number of security types when multiple Security Type messages are used to return results. */\n    TotNoSecurityTypes: 557,\n    /** Number of Security Type repeating group instances. */\n    NoSecurityTypes: 558,\n    /** Identifies the type/criteria of Security List Request */\n    SecurityListRequestType: 559,\n    /** The results returned to a Security Request message */\n    SecurityRequestResult: 560,\n    /** The trading lot size of a security */\n    RoundLot: 561,\n    /** The minimum order quantity (as expressed by TradeVolType(1786)) that can be submitted for a security. */\n    MinTradeVol: 562,\n    /** Indicates the method of execution reporting requested by issuer of the order. */\n    MultiLegRptTypeReq: 563,\n    /** PositionEffect for leg of a multileg\n        See PositionEffect (77) field for description */\n    LegPositionEffect: 564,\n    /** CoveredOrUncovered for leg of a multileg\n        See CoveredOrUncovered (203) field for description */\n    LegCoveredOrUncovered: 565,\n    /** Price for leg of a multileg\n        See Price (44) field for description */\n    LegPrice: 566,\n    /** Indicates the reason a Trading Session Status Request was rejected. */\n    TradSesStatusRejReason: 567,\n    /** Trade Capture Report Request ID */\n    TradeRequestID: 568,\n    /** Type of Trade Capture Report. */\n    TradeRequestType: 569,\n    /** Indicates if the transaction was previously reported to the counterparty or market. */\n    PreviouslyReported: 570,\n    /** Unique identifier of trade capture report */\n    TradeReportID: 571,\n    /** Reference identifier used with CANCEL and REPLACE transaction types. */\n    TradeReportRefID: 572,\n    /** The status of this trade with respect to matching or comparison. */\n    MatchStatus: 573,\n    /** The point in the matching process at which this trade was matched. */\n    MatchType: 574,\n    /** This trade is to be treated as an odd lot\n        If this field is not specified, the default will be \"N\" */\n    OddLot: 575,\n    /** Number of clearing instructions */\n    NoClearingInstructions: 576,\n    /** Eligibility of this trade for clearing and central counterparty processing. */\n    ClearingInstruction: 577,\n    /** Type of input device or system from which the trade was entered. */\n    TradeInputSource: 578,\n    /** Specific device number, terminal number or station where trade was entered */\n    TradeInputDevice: 579,\n    /** Number of Date fields provided in date range */\n    NoDates: 580,\n    /** Type of account associated with an order */\n    AccountType: 581,\n    /** Capacity of customer placing the order.\n        Used by futures exchanges to indicate the CTICode (customer type indicator) as required by the US CFTC (Commodity Futures Trading Commission). May be used as required by other regulatory commissions for similar purposes. */\n    CustOrderCapacity: 582,\n    /** Permits order originators to tie together groups of orders in which trades resulting from orders are associated for a specific purpose, for example the calculation of average execution price for a customer or to associate lists submitted to a broker as waves of a larger program trade. */\n    ClOrdLinkID: 583,\n    /** Value assigned by issuer of Mass Status Request to uniquely identify the request */\n    MassStatusReqID: 584,\n    /** Specifies the type or scope of the mass order status request. */\n    MassStatusReqType: 585,\n    /** The most recent (or current) modification TransactTime (tag 60) reported on an Execution Report for the order. The OrigOrdModTime is provided as an optional field on Order Cancel Request and Order Cancel Replace Requests to identify that the state of the order has not changed since the request was issued. The use of this approach is not recommended. */\n    OrigOrdModTime: 586,\n    /** Indicates order settlement period. If present, LegSettlDate (588) overrides this field. If both LegSettlType (587) and LegSettDate (588) are omitted, the default for LegSettlType (587) is 0 (Regular)\n        Regular is defined as the default settlement period for the particular security on the exchange of execution.\n        In Fixed Income the contents of this field may influence the instrument definition if the LegSecurityID (602) is ambiguous. In the US an active Treasury offering may be re-opened, and for a time one CUSIP will apply to both the current and \"when-issued\" securities. Supplying a value of \"7\" clarifies the instrument description; any other value or the absence of this field should cause the respondent to default to the active issue.\n        Additionally the following patterns may be uses as well as enum values\n        Dx = FX tenor expression for \"days\", e.g. \"D5\", where \"x\" is any integer \\> 0\n        Mx = FX tenor expression for \"months\", e.g. \"M3\", where \"x\" is any integer \\> 0\n        Wx = FX tenor expression for \"weeks\", e.g. \"W13\", where \"x\" is any integer \\> 0\n        Yx = FX tenor expression for \"years\", e.g. \"Y1\", where \"x\" is any integer \\> 0.\n        Note that for FX the tenors expressed using Dx, Mx, Wx, and Yx values do not denote business days, but calendar days. */\n    LegSettlType: 587,\n    /** Refer to description for SettlDate[64] */\n    LegSettlDate: 588,\n    /** Indicates whether or not automatic booking can occur. */\n    DayBookingInst: 589,\n    /** Indicates what constitutes a bookable unit. */\n    BookingUnit: 590,\n    /** Indicates the method of preallocation. */\n    PreallocMethod: 591,\n    /** Underlying security's CountryOfIssue.\n        See CountryOfIssue (470) field for description */\n    UnderlyingCountryOfIssue: 592,\n    /** Underlying security's StateOrProvinceOfIssue.\n        See StateOrProvinceOfIssue (471) field for description */\n    UnderlyingStateOrProvinceOfIssue: 593,\n    /** Underlying security's LocaleOfIssue.\n        See LocaleOfIssue (472) field for description */\n    UnderlyingLocaleOfIssue: 594,\n    /** Underlying security's InstrRegistry.\n        See InstrRegistry (543) field for description */\n    UnderlyingInstrRegistry: 595,\n    /** Multileg instrument's individual leg security's CountryOfIssue.\n        See CountryOfIssue (470) field for description */\n    LegCountryOfIssue: 596,\n    /** Multileg instrument's individual leg security's StateOrProvinceOfIssue.\n        See StateOrProvinceOfIssue (471) field for description */\n    LegStateOrProvinceOfIssue: 597,\n    /** Multileg instrument's individual leg security's LocaleOfIssue.\n        See LocaleOfIssue (472) field for description */\n    LegLocaleOfIssue: 598,\n    /** Multileg instrument's individual leg security's InstrRegistry.\n        See InstrRegistry (543) field for description */\n    LegInstrRegistry: 599,\n    /** Multileg instrument's individual security's Symbol.\n        See Symbol (55) field for description */\n    LegSymbol: 600,\n    /** Multileg instrument's individual security's SymbolSfx.\n        See SymbolSfx (65) field for description */\n    LegSymbolSfx: 601,\n    /** Multileg instrument's individual security's SecurityID.\n        See SecurityID (48) field for description */\n    LegSecurityID: 602,\n    /** Multileg instrument's individual security's SecurityIDSource.\n        See SecurityIDSource (22) field for description */\n    LegSecurityIDSource: 603,\n    /** Multileg instrument's individual security's NoSecurityAltID.\n        See NoSecurityAltID (454) field for description */\n    NoLegSecurityAltID: 604,\n    /** Multileg instrument's individual security's SecurityAltID.\n        See SecurityAltID (455) field for description */\n    LegSecurityAltID: 605,\n    /** Alternate identifier for individual leg security of a multileg instrument.\n        See SecurityAltIDSource(456) field for complete definition. */\n    LegSecurityAltIDSource: 606,\n    /** Multileg instrument's individual security's Product.\n        See Product (460) field for description */\n    LegProduct: 607,\n    /** Multileg instrument's individual security's CFICode.\n        See CFICode (461) field for description */\n    LegCFICode: 608,\n    /** Refer to definition of SecurityType(167) */\n    LegSecurityType: 609,\n    /** Multileg instrument's individual security's MaturityMonthYear.\n        See MaturityMonthYear (200) field for description */\n    LegMaturityMonthYear: 610,\n    /** Multileg instrument's individual security's MaturityDate.\n        See MaturityDate(541) field for description. */\n    LegMaturityDate: 611,\n    /** Multileg instrument's individual security's StrikePrice.\n        See StrikePrice (202) field for description */\n    LegStrikePrice: 612,\n    /** Multileg instrument's individual security's OptAttribute.\n        See OptAttribute (206) field for description */\n    LegOptAttribute: 613,\n    /** Multileg instrument's individual security's ContractMultiplier.\n        See ContractMultiplier (23) field for description */\n    LegContractMultiplier: 614,\n    /** Multileg instrument's individual security's CouponRate.\n        See CouponRate (223) field for description */\n    LegCouponRate: 615,\n    /** Multileg instrument's individual security's SecurityExchange.\n        See SecurityExchange (207) field for description */\n    LegSecurityExchange: 616,\n    /** Multileg instrument's individual security's Issuer.\n        See Issuer (106) field for description */\n    LegIssuer: 617,\n    /** Multileg instrument's individual security's EncodedIssuerLen.\n        See EncodedIssuerLen (348) field for description */\n    EncodedLegIssuerLen: 618,\n    /** Multileg instrument's individual security's EncodedIssuer.\n        See EncodedIssuer (349) field for description */\n    EncodedLegIssuer: 619,\n    /** Description of a multileg instrument.\n        Can be used by the venue or one of the trading parties to provide an optional non-normative textual description of the financial instrument. */\n    LegSecurityDesc: 620,\n    /** Multileg instrument's individual security's EncodedSecurityDescLen.\n        See EncodedSecurityDescLen (350) field for description */\n    EncodedLegSecurityDescLen: 621,\n    /** Multileg instrument's individual security's EncodedSecurityDesc.\n        See EncodedSecurityDesc (35) field for description */\n    EncodedLegSecurityDesc: 622,\n    /** The ratio of quantity for this individual leg relative to the entire multileg security. */\n    LegRatioQty: 623,\n    /** The side of this individual leg (multileg security).\n        See Side (54) field for description and values */\n    LegSide: 624,\n    /** Optional market assigned sub identifier for a trading phase within a trading session. Usage is determined by market or counterparties. Used by US based futures markets to identify exchange specific execution time bracket codes as required by US market regulations. Bilaterally agreed values of data type \"String\" that start with a character can be used for backward compatibility */\n    TradingSessionSubID: 625,\n    /** Describes the specific type or purpose of an Allocation message (i.e. \"Buyside Calculated\")\n        (see Volume : \"Glossary\" for value definitions)\n        *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" *** */\n    AllocType: 626,\n    /** Number of HopCompID entries in repeating group. */\n    NoHops: 627,\n    /** Assigned value used to identify the third party firm which delivered a specific message either from the firm which originated the message or from another third party (if multiple \"hops\" are performed). It is recommended that this value be the SenderCompID (49) of the third party.\n        Applicable when messages are communicated/re-distributed via third parties which function as service bureaus or \"hubs\". Only applicable if OnBehalfOfCompID (115) is being used. */\n    HopCompID: 628,\n    /** Time that HopCompID (628) sent the message. It is recommended that this value be the SendingTime (52) of the message sent by the third party.\n        Applicable when messages are communicated/re-distributed via third parties which function as service bureaus or \"hubs\". Only applicable if OnBehalfOfCompID (115) is being used. */\n    HopSendingTime: 629,\n    /** Reference identifier assigned by HopCompID (628) associated with the message sent. It is recommended that this value be the MsgSeqNum (34) of the message sent by the third party.\n        Applicable when messages are communicated/re-distributed via third parties which function as service bureaus or \"hubs\". Only applicable if OnBehalfOfCompID (115) is being used. */\n    HopRefID: 630,\n    /** Mid price/rate.\n        For OTC swaps this is the mid-market mark (for example, as defined by CFTC).\n        For uncleared OTC swaps, LegMidPx(2346) and the MidPx(631) fields are mutually exclusive. */\n    MidPx: 631,\n    /** Bid yield */\n    BidYield: 632,\n    /** Mid yield */\n    MidYield: 633,\n    /** Offer yield */\n    OfferYield: 634,\n    /** Indicates type of fee being assessed of the customer for trade executions at an exchange. Applicable for futures markets only at this time.\n        (Values source CBOT, CME, NYBOT, and NYMEX): */\n    ClearingFeeIndicator: 635,\n    /** Indicates if the order is currently being worked. Applicable only for OrdStatus = \"New\". For open outcry markets this indicates that the order is being worked in the crowd. For electronic markets it indicates that the order has transitioned from a contingent order to a market order. */\n    WorkingIndicator: 636,\n    /** Execution price assigned to a leg of a multileg instrument.\n        See LastPx (31) field for description and values */\n    LegLastPx: 637,\n    /** Indicates if a Cancel/Replace has caused an order to lose book priority. */\n    PriorityIndicator: 638,\n    /** Amount of price improvement. */\n    PriceImprovement: 639,\n    /** Price of the future part of a F/X swap order.\n        See Price (44) for description. */\n    Price2: 640,\n    /** F/X forward points of the future part of a F/X swap order added to LastSpotRate(194). May be a negative value. */\n    LastForwardPoints2: 641,\n    /** Bid F/X forward points of the future portion of a F/X swap quote added to spot rate. May be a negative value. */\n    BidForwardPoints2: 642,\n    /** Offer F/X forward points of the future portion of a F/X swap quote added to spot rate. May be a negative value. */\n    OfferForwardPoints2: 643,\n    /** RFQ Request ID - used to identify an RFQ Request. */\n    RFQReqID: 644,\n    /** Used to indicate the best bid in a market */\n    MktBidPx: 645,\n    /** Used to indicate the best offer in a market */\n    MktOfferPx: 646,\n    /** Used to indicate a minimum quantity for a bid. */\n    MinBidSize: 647,\n    /** Used to indicate a minimum quantity for an offer. If this field is used the OfferSize (135) field is interpreted as the maximum offer size. */\n    MinOfferSize: 648,\n    /** Unique identifier for Quote Status Request. */\n    QuoteStatusReqID: 649,\n    /** Indicates that this message is to serve as the final and legal confirmation. */\n    LegalConfirm: 650,\n    /** The calculated or traded price for the underlying instrument that corresponds to a derivative. Used for transactions that include the cash instrument and the derivative. */\n    UnderlyingLastPx: 651,\n    /** The calculated or traded quantity for the underlying instrument that corresponds to a derivative. Used for transactions that include the cash instrument and the derivative. */\n    UnderlyingLastQty: 652,\n    /** Unique identifier for a specific leg (uniqueness not defined as part of the FIX specification). LegRefID(654) be used to reference the value from LegID(1788). */\n    LegRefID: 654,\n    /** Unique indicator for a specific leg for the ContraBroker (375). */\n    ContraLegRefID: 655,\n    /** Foreign exchange rate used to compute the bid \"SettlCurrAmt\" (119) from Currency (15) to SettlCurrency (120) */\n    SettlCurrBidFxRate: 656,\n    /** Foreign exchange rate used to compute the offer \"SettlCurrAmt\" (119) from Currency (15) to SettlCurrency (120) */\n    SettlCurrOfferFxRate: 657,\n    /** Reason quote request was rejected. */\n    QuoteRequestRejectReason: 658,\n    /** ID within repeating group of sides which is used to represent this transaction for compliance purposes (e.g. OATS reporting). */\n    SideComplianceID: 659,\n    /** Used to identify the source of the Account (1) code. This is especially useful if the account is a new account that the Respondent may not have setup yet in their system. */\n    AcctIDSource: 660,\n    /** Used to identify the source of the AllocAccount (79) code.\n        See AcctIDSource (660) for valid values. */\n    AllocAcctIDSource: 661,\n    /** Specifies the price of the benchmark. */\n    BenchmarkPrice: 662,\n    /** Identifies type of BenchmarkPrice (662).\n        See PriceType (423) for valid values. */\n    BenchmarkPriceType: 663,\n    /** Message reference for Confirmation */\n    ConfirmID: 664,\n    /** Identifies the status of the Confirmation. */\n    ConfirmStatus: 665,\n    /** Identifies the Confirmation transaction type. */\n    ConfirmTransType: 666,\n    /** Specifies when the contract (i.e. MBS/TBA) will settle. */\n    ContractSettlMonth: 667,\n    /** Identifies the form of delivery. */\n    DeliveryForm: 668,\n    /** Last price expressed in percent-of-par. Conditionally required for Fixed Income trades when LastPx (31) is expressed in Yield, Spread, Discount or any other type.\n        Usage: Execution Report and Allocation Report repeating executions block (from sellside). */\n    LastParPx: 669,\n    /** Number of Allocations for the leg */\n    NoLegAllocs: 670,\n    /** Allocation Account for the leg\n        See AllocAccount (79) for description and valid values. */\n    LegAllocAccount: 671,\n    /** Reference for the individual allocation ticket\n        See IndividualAllocID (467) for description and valid values. */\n    LegIndividualAllocID: 672,\n    /** Leg allocation quantity.\n        See AllocQty (80) for description and valid values. */\n    LegAllocQty: 673,\n    /** Identifies the source of the LegAllocAccount(671). */\n    LegAllocAcctIDSource: 674,\n    /** Identifies settlement currency for the Leg.\n        See SettlCurrency (20) for description and valid values */\n    LegSettlCurrency: 675,\n    /** LegBenchmarkPrice (679) currency\n        See BenchmarkCurveCurrency (220) for description and valid values. */\n    LegBenchmarkCurveCurrency: 676,\n    /** Name of the Leg Benchmark Curve.\n        See BenchmarkCurveName (22) for description and valid values. */\n    LegBenchmarkCurveName: 677,\n    /** Identifies the point on the Leg Benchmark Curve.\n        See BenchmarkCurvePoint (222) for description and valid values. */\n    LegBenchmarkCurvePoint: 678,\n    /** Used to identify the price of the benchmark security.\n        See BenchmarkPrice (662) for description and valid values. */\n    LegBenchmarkPrice: 679,\n    /** The price type of the LegBenchmarkPrice(679). */\n    LegBenchmarkPriceType: 680,\n    /** Bid price of this leg.\n        See BidPx (32) for description and valid values. */\n    LegBidPx: 681,\n    /** Leg-specific IOI quantity.\n        See IOIQty (27) for description and valid values */\n    LegIOIQty: 682,\n    /** Number of leg stipulation entries */\n    NoLegStipulations: 683,\n    /** Offer price of this leg.\n        See OfferPx (133) for description and valid values */\n    LegOfferPx: 684,\n    /** Quantity ordered of this leg.\n        See OrderQty (38) for description and valid values */\n    LegOrderQty: 685,\n    /** The price type of the LegBidPx (681) and/or LegOfferPx (684).\n        See PriceType (423) for description and valid values */\n    LegPriceType: 686,\n    /** This field is deprecated and has been replaced by LegOrderQty(685). This field will likely be removed from the FIX standard in a future version. */\n    LegQty: 687,\n    /** For Fixed Income, type of Stipulation for this leg.\n        See StipulationType (233) for description and valid values */\n    LegStipulationType: 688,\n    /** For Fixed Income, value of stipulation.\n        See StipulationValue (234) for description and valid values */\n    LegStipulationValue: 689,\n    /** For Fixed Income, used instead of LegOrderQty(685) to requests the respondent to calculate the quantity based on the quantity on the opposite side of the swap. */\n    LegSwapType: 690,\n    /** For Fixed Income, identifies MBS / ABS pool. */\n    Pool: 691,\n    /** Code to represent price type requested in Quote.\n        If the Quote Request is for a Swap, values 1-8 apply to all legs. */\n    QuotePriceType: 692,\n    /** Message reference for Quote Response */\n    QuoteRespID: 693,\n    /** Identifies the type of Quote Response. */\n    QuoteRespType: 694,\n    /** Code to qualify Quote use and other aspects of price negotiation. */\n    QuoteQualifier: 695,\n    /** Date to which the yield has been calculated (i.e. maturity, par call or current call, pre-refunded date). */\n    YieldRedemptionDate: 696,\n    /** Price to which the yield has been calculated. */\n    YieldRedemptionPrice: 697,\n    /** The price type of the YieldRedemptionPrice (697)\n        See PriceType (423) for description and valid values. */\n    YieldRedemptionPriceType: 698,\n    /** The identifier of the benchmark security, e.g. Treasury against Corporate bond.\n        See SecurityID (tag 48) for description and valid values. */\n    BenchmarkSecurityID: 699,\n    /** Indicates a trade that reverses a previous trade. */\n    ReversalIndicator: 700,\n    /** Include as needed to clarify yield irregularities associated with date, e.g. when it falls on a non-business day. */\n    YieldCalcDate: 701,\n    /** Number of position entries. */\n    NoPositions: 702,\n    /** Used to identify the type of quantity that is being returned. */\n    PosType: 703,\n    /** Long quantity. */\n    LongQty: 704,\n    /** Short quantity. */\n    ShortQty: 705,\n    /** Status of this position. */\n    PosQtyStatus: 706,\n    /** Type of Position amount */\n    PosAmtType: 707,\n    /** Position amount */\n    PosAmt: 708,\n    /** Identifies the type of position transaction. */\n    PosTransType: 709,\n    /** Unique identifier for the position maintenance request as assigned by the submitter */\n    PosReqID: 710,\n    /** Number of underlying legs that make up the security. */\n    NoUnderlyings: 711,\n    /** Maintenance Action to be performed. */\n    PosMaintAction: 712,\n    /** Reference to the PosReqID (710) of a previous maintenance request that is being replaced or canceled. */\n    OrigPosReqRefID: 713,\n    /** Reference to a PosMaintRptID (721) from a previous Position Maintenance Report that is being replaced or canceled. */\n    PosMaintRptRefID: 714,\n    /** The business date for which the trade is expected to be cleared. */\n    ClearingBusinessDate: 715,\n    /** Identifies a specific settlement session */\n    SettlSessID: 716,\n    /** SubID value associated with SettlSessID(716) */\n    SettlSessSubID: 717,\n    /** Type of adjustment to be applied. Used for Position Change Submission (PCS), Position Adjustment (PAJ), and Customer Gross Margin (CGM). */\n    AdjustmentType: 718,\n    /** Used to indicate when a contrary instruction for exercise or abandonment is being submitted */\n    ContraryInstructionIndicator: 719,\n    /** Indicates if requesting a rollover of prior day's spread submissions. */\n    PriorSpreadIndicator: 720,\n    /** Unique identifier for this position report */\n    PosMaintRptID: 721,\n    /** Status of Position Maintenance Request */\n    PosMaintStatus: 722,\n    /** Result of Position Maintenance Request. */\n    PosMaintResult: 723,\n    /** Used to specify the type of position request being made. */\n    PosReqType: 724,\n    /** Identifies how the response to the request should be transmitted. */\n    ResponseTransportType: 725,\n    /** URI (Uniform Resource Identifier) for details or other pre-arranged value. Used in conjunction with ResponseTransportType (725) value of Out-of-Band to identify the out-of-band destination.\n        See Appendix 6-B FIX Fields Based Upon Other Standards */\n    ResponseDestination: 726,\n    /** Total number of Position Reports being returned. */\n    TotalNumPosReports: 727,\n    /** Result of Request for Positions. */\n    PosReqResult: 728,\n    /** Status of Request for Positions */\n    PosReqStatus: 729,\n    /** Settlement price */\n    SettlPrice: 730,\n    /** Type of settlement price */\n    SettlPriceType: 731,\n    /** Underlying security's SettlPrice.\n        See SettlPrice (730) field for description */\n    UnderlyingSettlPrice: 732,\n    /** Underlying security's SettlPriceType.\n        See SettlPriceType (731) field for description */\n    UnderlyingSettlPriceType: 733,\n    /** Previous settlement price */\n    PriorSettlPrice: 734,\n    /** Number of repeating groups of QuoteQualifiers (695). */\n    NoQuoteQualifiers: 735,\n    /** Currency code of settlement denomination for a specific AllocAccount (79). */\n    AllocSettlCurrency: 736,\n    /** Total amount due expressed in settlement currency (includes the effect of the forex transaction) for a specific AllocAccount (79). */\n    AllocSettlCurrAmt: 737,\n    /** Amount of interest (i.e. lump-sum) at maturity. */\n    InterestAtMaturity: 738,\n    /** The effective date of a new securities issue determined by its underwriters. Often but not always the same as the Issue Date and the Interest Accrual Date */\n    LegDatedDate: 739,\n    /** For Fixed Income, identifies MBS / ABS pool for a specific leg of a multi-leg instrument.\n        See Pool (691) for description and valid values. */\n    LegPool: 740,\n    /** Amount of interest (i.e. lump-sum) at maturity at the account-level. */\n    AllocInterestAtMaturity: 741,\n    /** Amount of Accrued Interest for convertible bonds and fixed income at the allocation-level. */\n    AllocAccruedInterestAmt: 742,\n    /** Date of delivery. */\n    DeliveryDate: 743,\n    /** Method by which short positions are assigned to an exercise notice during exercise and assignment processing */\n    AssignmentMethod: 744,\n    /** Quantity Increment used in performing assignment. */\n    AssignmentUnit: 745,\n    /** Open interest that was eligible for assignment. */\n    OpenInterest: 746,\n    /** Exercise Method used to in performing assignment. */\n    ExerciseMethod: 747,\n    /** Total number of trade reports returned. */\n    TotNumTradeReports: 748,\n    /** Result of Trade Request */\n    TradeRequestResult: 749,\n    /** Status of Trade Request. */\n    TradeRequestStatus: 750,\n    /** Reason Trade Capture Request was rejected.\n        100+ Reserved and available for bi-laterally agreed upon user-defined values. */\n    TradeReportRejectReason: 751,\n    /** Used to indicate if the side being reported on Trade Capture Report represents a leg of a multileg instrument or a single security. */\n    SideMultiLegReportingType: 752,\n    /** Number of position amount entries. */\n    NoPosAmt: 753,\n    /** Identifies whether or not an allocation has been automatically accepted on behalf of the Carry Firm by the Clearing House. */\n    AutoAcceptIndicator: 754,\n    /** Unique identifier for Allocation Report message. */\n    AllocReportID: 755,\n    /** Number of Nested2PartyID (757), Nested2PartyIDSource (758), and Nested2PartyRole (759) entries */\n    NoNested2PartyIDs: 756,\n    /** PartyID value within a \"second instance\" Nested repeating group.\n        Same values as PartyID (448) */\n    Nested2PartyID: 757,\n    /** PartyIDSource value within a \"second instance\" Nested repeating group.\n        Same values as PartyIDSource (447) */\n    Nested2PartyIDSource: 758,\n    /** PartyRole value within a \"second instance\" Nested repeating group.\n        Same values as PartyRole (452) */\n    Nested2PartyRole: 759,\n    /** PartySubID value within a \"second instance\" Nested repeating group.\n        Same values as PartySubID (523) */\n    Nested2PartySubID: 760,\n    /** Identifies class or source of the BenchmarkSecurityID(699) value.\n        Required if BenchmarkSecurityID is specified. */\n    BenchmarkSecurityIDSource: 761,\n    /** Sub-type qualification/identification of the SecurityType. As an example for SecurityType(167)=\"REPO\", the SecuritySubType=\"General Collateral\" can be used to further specify the type of REPO.\n        If SecuritySubType is used, then SecurityType is required.\n        For SecurityType=\"MLEG\" a name of the option or futures strategy name can be specified, such as \"Calendar\", \"Vertical\", \"Butterfly\".\n        For SecurityType(167)=\"OPT\" the subclassification can be specified, such as \"Asian\".\n        For SecurityType(167)=\"SWAPTION\" a value of \"Straddle\" is used to identify a straddle swaption.\n        In the context of EU SFTR reporting use the appropriate 4-character code noted in the regulations - \"GENE\" for general collateral or \"SPEC\" for specific collateral (without quote marks). */\n    SecuritySubType: 762,\n    /** Underlying security's SecuritySubType.\n        See SecuritySubType (762) field for description */\n    UnderlyingSecuritySubType: 763,\n    /** SecuritySubType of the leg instrument.\n        See SecuritySubType (762) field for description */\n    LegSecuritySubType: 764,\n    /** The maximum percentage that execution of one side of a program trade can exceed execution of the other. */\n    AllowableOneSidednessPct: 765,\n    /** The maximum amount that execution of one side of a program trade can exceed execution of the other. */\n    AllowableOneSidednessValue: 766,\n    /** The currency that AllowableOneSidednessValue (766) is expressed in if AllowableOneSidednessValue is used. */\n    AllowableOneSidednessCurr: 767,\n    /** Number of timestamp entries. */\n    NoTrdRegTimestamps: 768,\n    /** Traded / Regulatory timestamp value.\n        Use to store time information required by government regulators or self-regulatory organizations (such as an exchange or clearing house). */\n    TrdRegTimestamp: 769,\n    /** Trading / Regulatory timestamp type.\n        Note of applicability: Values are required in various regulatory environments: required for US futures markets to support computerized trade reconstruction, required by MiFID II / MiFIR for transaction reporting and publication, required by FINRA for reporting to the Consolidated Audit Trail (CAT), and required by SEC for recordkeeping requirements in the context of T+1. */\n    TrdRegTimestampType: 770,\n    /** Text which identifies the \"origin\" (i.e. system which was used to generate the timestamp) for the Traded / Regulatory timestamp value. */\n    TrdRegTimestampOrigin: 771,\n    /** Reference identifier to be used with ConfirmTransType (666) = Replace or Cancel */\n    ConfirmRefID: 772,\n    /** Identifies the type of Confirmation message being sent. */\n    ConfirmType: 773,\n    /** Identifies the reason for rejecting a Confirmation. */\n    ConfirmRejReason: 774,\n    /** Method for booking out this order. Used when notifying a broker that an order to be settled by that broker is to be booked out as an OTC derivative (e.g. CFD or similar). */\n    BookingType: 775,\n    /** Identified reason for rejecting an individual AllocAccount (79) detail.\n        Same values as AllocRejCode (88) */\n    IndividualAllocRejCode: 776,\n    /** Unique identifier for Settlement Instruction message. */\n    SettlInstMsgID: 777,\n    /** Number of settlement instructions within repeating group. */\n    NoSettlInst: 778,\n    /** Timestamp of last update to data item (or creation if no updates made since creation). */\n    LastUpdateTime: 779,\n    /** Used to indicate whether settlement instructions are provided on an allocation instruction message, and if not, how they are to be derived. */\n    AllocSettlInstType: 780,\n    /** Number of SettlPartyID (782), SettlPartyIDSource (783), and SettlPartyRole (784) entries */\n    NoSettlPartyIDs: 781,\n    /** PartyID value within a settlement parties component. Nested repeating group.\n        Same values as PartyID (448) */\n    SettlPartyID: 782,\n    /** PartyIDSource value within a settlement parties component.\n        Same values as PartyIDSource (447) */\n    SettlPartyIDSource: 783,\n    /** PartyRole value within a settlement parties component.\n        Same values as PartyRole (452) */\n    SettlPartyRole: 784,\n    /** PartySubID value within a settlement parties component.\n        Same values as PartySubID (523) */\n    SettlPartySubID: 785,\n    /** Type of SettlPartySubID (785) value.\n        Same values as PartySubIDType (803) */\n    SettlPartySubIDType: 786,\n    /** Used to indicate whether a delivery instruction is used for securities or cash settlement. */\n    DlvyInstType: 787,\n    /** Type of financing termination. */\n    TerminationType: 788,\n    /** Next expected MsgSeqNum value to be received. */\n    NextExpectedMsgSeqNum: 789,\n    /** Can be used to uniquely identify a specific Order Status Request message. */\n    OrdStatusReqID: 790,\n    /** Unique ID of settlement instruction request message */\n    SettlInstReqID: 791,\n    /** Identifies reason for rejection (of a settlement instruction request message). */\n    SettlInstReqRejCode: 792,\n    /** Secondary allocation identifier. Unlike the AllocID (70), this can be shared across a number of allocation instruction or allocation report messages, thereby making it possible to pass an identifier for an original allocation message on multiple messages (e.g. from one party to a second to a third, across cancel and replace messages etc.). */\n    SecondaryAllocID: 793,\n    /** Describes the specific type or purpose of an Allocation Report message */\n    AllocReportType: 794,\n    /** Reference identifier to be used with AllocTransType (7) = Replace or Cancel */\n    AllocReportRefID: 795,\n    /** Reason for cancelling or replacing an Allocation Instruction or Allocation Report message */\n    AllocCancReplaceReason: 796,\n    /** Indicates whether or not this message is a drop copy of another message. */\n    CopyMsgIndicator: 797,\n    /** Type of account associated with a confirmation or other trade-level message */\n    AllocAccountType: 798,\n    /** Average price for a specific order */\n    OrderAvgPx: 799,\n    /** Quantity of the order that is being booked out as part of an Allocation Instruction or Allocation Report message */\n    OrderBookingQty: 800,\n    /** Number of SettlPartySubID (785) and SettlPartySubIDType (786) entries */\n    NoSettlPartySubIDs: 801,\n    /** Number of PartySubID (523)and PartySubIDType (803) entries */\n    NoPartySubIDs: 802,\n    /** Type of PartySubID(523) value. */\n    PartySubIDType: 803,\n    /** Number of NestedPartySubID (545) and NestedPartySubIDType (805) entries */\n    NoNestedPartySubIDs: 804,\n    /** Type of NestedPartySubID (545) value.\n        Same values as PartySubIDType (803) */\n    NestedPartySubIDType: 805,\n    /** Number of Nested2PartySubID (760) and Nested2PartySubIDType (807) entries. Second instance of \\<NestedParties\\>. */\n    NoNested2PartySubIDs: 806,\n    /** Type of Nested2PartySubID (760) value. Second instance of \\<NestedParties\\>.\n        Same values as PartySubIDType (803) */\n    Nested2PartySubIDType: 807,\n    /** Response to allocation to be communicated to a counterparty through an intermediary, i.e. clearing house. Used in conjunction with AllocType = \"Request to Intermediary\" and AllocReportType = \"Request to Intermediary\" */\n    AllocIntermedReqType: 808,\n    /** Number of Usernames to which this this response is directed */\n    NoUsernames: 809,\n    /** Underlying price associate with a derivative instrument. */\n    UnderlyingPx: 810,\n    /** The rate of change in the price of a derivative with respect to the movement in the price of the underlying instrument(s) upon which the derivative instrument price is based.\n        This value is normally between -1.0 and 1.0. */\n    PriceDelta: 811,\n    /** Used to specify the maximum number of application messages that can be queued bedore a corrective action needs to take place to resolve the queuing issue. */\n    ApplQueueMax: 812,\n    /** Current number of application messages that were queued at the time that the message was created by the counterparty. */\n    ApplQueueDepth: 813,\n    /** Resolution taken when ApplQueueDepth (813) exceeds ApplQueueMax (812) or system specified maximum queue size. */\n    ApplQueueResolution: 814,\n    /** Action to take to resolve an application message queue (backlog). */\n    ApplQueueAction: 815,\n    /** Number of alternative market data sources */\n    NoAltMDSource: 816,\n    /** Session layer source for market data\n        (For the standard FIX session layer, this would be the TargetCompID (56) where market data can be obtained). */\n    AltMDSourceID: 817,\n    /** Secondary trade report identifier - can be used to associate an additional identifier with a trade. */\n    SecondaryTradeReportID: 818,\n    /** Average pricing indicator. */\n    AvgPxIndicator: 819,\n    /** Used to link a group of trades together. */\n    TradeLinkID: 820,\n    /** Specific device number, terminal number or station where order was entered */\n    OrderInputDevice: 821,\n    /** Trading Session in which the underlying instrument trades */\n    UnderlyingTradingSessionID: 822,\n    /** Trading Session sub identifier in which the underlying instrument trades */\n    UnderlyingTradingSessionSubID: 823,\n    /** Reference to the leg of a multileg instrument to which this trade refers */\n    TradeLegRefID: 824,\n    /** Used to report any exchange rules that apply to this trade.\n        Primarily intended for US futures markets. Certain trading practices are permitted by the CFTC, such as large lot trading, block trading, all or none trades. If the rules are used, the exchanges are required to indicate these rules on the trade. */\n    ExchangeRule: 825,\n    /** Identifies if, and how, the trade is to be allocated or split. */\n    TradeAllocIndicator: 826,\n    /** Part of trading cycle when an instrument expires. Field is applicable for derivatives. */\n    ExpirationCycle: 827,\n    /** Type of trade assigned to a trade. SecondaryTrdType(855) and TertiaryTrdType(2896) may be used in addition to TrdType(828) to assign up to three different trade types to a single trade.\n        Note: several enumerations of this field duplicate the enumerations in TradePriceCondition(1839) field. These may be deprecated from TrdType(828) in the future. TradePriceCondition(1839) is preferred in messages that support it. */\n    TrdType: 828,\n    /** Further qualification to the trade type defined in TrdType(828). */\n    TrdSubType: 829,\n    /** Reason trade is being transferred */\n    TransferReason: 830,\n    /** Total Number of Assignment Reports being returned to a firm */\n    TotNumAssignmentReports: 832,\n    /** Unique identifier for the Assignment Report */\n    AsgnRptID: 833,\n    /** Amount that a position has to be in the money before it is exercised. */\n    ThresholdAmount: 834,\n    /** Describes whether peg is static or floats */\n    PegMoveType: 835,\n    /** Type of Peg Offset value */\n    PegOffsetType: 836,\n    /** Type of Peg Limit */\n    PegLimitType: 837,\n    /** If the calculated peg price is not a valid tick price, specifies whether to round the price to be more or less aggressive */\n    PegRoundDirection: 838,\n    /** The price the order is currently pegged at */\n    PeggedPrice: 839,\n    /** The scope of the peg */\n    PegScope: 840,\n    /** Describes whether discretionay price is static or floats */\n    DiscretionMoveType: 841,\n    /** Type of Discretion Offset value */\n    DiscretionOffsetType: 842,\n    /** Type of Discretion Limit */\n    DiscretionLimitType: 843,\n    /** If the calculated discretionary price is not a valid tick price, specifies whether to round the price to be more or less aggressive */\n    DiscretionRoundDirection: 844,\n    /** The current discretionary price of the order */\n    DiscretionPrice: 845,\n    /** The scope of the discretion */\n    DiscretionScope: 846,\n    /** The target strategy of the order\n        1000+ = Reserved and available for bi-laterally agreed upon user defined values */\n    TargetStrategy: 847,\n    /** Field to allow further specification of the TargetStrategy - usage to be agreed between counterparties\n        The StrategyParametersGrp repeating group is used instead to convey target strategy parameters and values. */\n    TargetStrategyParameters: 848,\n    /** For a TargetStrategy=Participate order specifies the target particpation rate. For other order types this is a volume limit (i.e. do not be more than this percent of the market volume)\n        The StrategyParametersGrp repeating group is used instead to convey target strategy parameters and values. */\n    ParticipationRate: 849,\n    /** For communication of the performance of the order versus the target strategy */\n    TargetStrategyPerformance: 850,\n    /** Indicator to identify whether this fill was a result of a liquidity provider providing or liquidity taker taking the liquidity. */\n    LastLiquidityInd: 851,\n    /** Indicates if a trade should be reported via a market reporting service. */\n    PublishTrdIndicator: 852,\n    /** Reason for short sale. */\n    ShortSaleReason: 853,\n    /** Type of quantity specified in quantity field. ContractMultiplier (tag 231) is required when QtyType = 1 (Contracts). UnitOfMeasure (tag 996) and TimeUnit (tag 997) are required when QtyType = 2 (Units of Measure per Time Unit). */\n    QtyType: 854,\n    /** Type of trade assigned to a trade. Used in addition to TrdType(828). Must not be used when only one trade type needs to be assigned. */\n    SecondaryTrdType: 855,\n    /** Type of Trade Report */\n    TradeReportType: 856,\n    /** Indicates how the orders being booked and allocated by an AllocationInstruction or AllocationReport message are identified, e.g. by explicit definition in the OrdAllocGrp or ExecAllocGrp components, or not identified explicitly. */\n    AllocNoOrdersType: 857,\n    /** Commission to be shared with a third party, e.g. as part of a directed brokerage commission sharing arrangement. */\n    SharedCommission: 858,\n    /** Unique identifier for a Confirmation Request message */\n    ConfirmReqID: 859,\n    /** Used to express average price as percent of par (used where AvgPx field is expressed in some other way) */\n    AvgParPx: 860,\n    /** Reported price (used to differentiate from AvgPx on a confirmation of a marked-up or marked-down principal trade) */\n    ReportedPx: 861,\n    /** Number of repeating OrderCapacity entries. */\n    NoCapacities: 862,\n    /** Quantity executed under a specific OrderCapacity (e.g. quantity executed as agent, quantity executed as principal) */\n    OrderCapacityQty: 863,\n    /** Number of repeating EventType entries. */\n    NoEvents: 864,\n    /** Code to represent the type of event */\n    EventType: 865,\n    /** Date of event */\n    EventDate: 866,\n    /** Predetermined price of issue at event, if applicable */\n    EventPx: 867,\n    /** Comments related to the event. */\n    EventText: 868,\n    /** Percent at risk due to lowest possible call. */\n    PctAtRisk: 869,\n    /** Number of repeating InstrAttribType entries. */\n    NoInstrAttrib: 870,\n    /** Code to represent the type of instrument attribute */\n    InstrAttribType: 871,\n    /** Attribute value appropriate to the InstrAttribType (871) field. */\n    InstrAttribValue: 872,\n    /** The effective date of a new securities issue determined by its underwriters. Often but not always the same as the Issue Date and the Interest Accrual Date */\n    DatedDate: 873,\n    /** The start date used for calculating accrued interest on debt instruments which are being sold between interest payment dates. Often but not always the same as the Issue Date and the Dated Date */\n    InterestAccrualDate: 874,\n    /** The program under which a commercial paper offering is exempt from SEC registration identified by the paragraph number(s) within the US Securities Act of 1933 or as identified below. */\n    CPProgram: 875,\n    /** The description of commercial paper registration or rule under which exempt commercial paper is offered. For example \"144a\", \"Tax Exempt\" or \"REG. S\". */\n    CPRegType: 876,\n    /** The program under which the underlying commercial paper is issued */\n    UnderlyingCPProgram: 877,\n    /** The registration type of the underlying commercial paper issuance */\n    UnderlyingCPRegType: 878,\n    /** Unit amount of the underlying security (par, shares, currency, etc.) */\n    UnderlyingQty: 879,\n    /** Identifier assigned by a matching system to a match event that results in multiple executions or trades. */\n    TrdMatchID: 880,\n    /** Used to refer to a previous SecondaryTradeReportRefID when amending the transaction (cancel, replace, release, or reversal). */\n    SecondaryTradeReportRefID: 881,\n    /** Price (percent-of-par or per unit) of the underlying security or basket. \"Dirty\" means it includes accrued interest */\n    UnderlyingDirtyPrice: 882,\n    /** Price (percent-of-par or per unit) of the underlying security or basket at the end of the agreement. */\n    UnderlyingEndPrice: 883,\n    /** Currency value attributed to this collateral at the start of the agreement */\n    UnderlyingStartValue: 884,\n    /** Currency value currently attributed to this collateral */\n    UnderlyingCurrentValue: 885,\n    /** Currency value attributed to this collateral at the end of the agreement */\n    UnderlyingEndValue: 886,\n    /** Number of underlying stipulation entries */\n    NoUnderlyingStips: 887,\n    /** Type of stipulation.\n        Same values as StipulationType (233) */\n    UnderlyingStipType: 888,\n    /** Value of stipulation.\n        Same values as StipulationValue (234) */\n    UnderlyingStipValue: 889,\n    /** Net Money at maturity if Zero Coupon and maturity value is different from par value */\n    MaturityNetMoney: 890,\n    /** Defines the unit for a miscellaneous fee. */\n    MiscFeeBasis: 891,\n    /** Total number of NoAlloc entries across all messages. Should be the sum of all NoAllocs in each message that has repeating NoAlloc entries related to the same AllocID or AllocReportID. Used to support fragmentation. */\n    TotNoAllocs: 892,\n    /** Indicates whether this message is the last in a sequence of messages for those messages that support fragmentation, such as Allocation Instruction, Mass Quote, Security List, Derivative Security List */\n    LastFragment: 893,\n    /** Collateral Request Identifier */\n    CollReqID: 894,\n    /** Reason for Collateral Assignment */\n    CollAsgnReason: 895,\n    /** Collateral inquiry qualifiers: */\n    CollInquiryQualifier: 896,\n    /** Number of trades in repeating group. */\n    NoTrades: 897,\n    /** The fraction of the cash consideration that must be collateralized, expressed as a percent. A MarginRatio of 02% indicates that the value of the collateral (after deducting for \"haircut\") must exceed the cash consideration by 2%. */\n    MarginRatio: 898,\n    /** Excess margin amount (deficit if value is negative) */\n    MarginExcess: 899,\n    /** TotalNetValue is determined as follows:\n        At the initial collateral assignment TotalNetValue is the sum of (UnderlyingStartValue * (1-haircut)).\n        In a collateral substitution TotalNetValue is the sum of (UnderlyingCurrentValue * (1-haircut)).\n        For listed derivatives clearing margin management, this is the collateral value which equals (Market value * haircut) */\n    TotalNetValue: 900,\n    /** Starting consideration less repayments */\n    CashOutstanding: 901,\n    /** Collateral Assignment Identifier */\n    CollAsgnID: 902,\n    /** Collateral Assignment Transaction Type */\n    CollAsgnTransType: 903,\n    /** Collateral Response Identifier */\n    CollRespID: 904,\n    /** Type of collateral assignment response. */\n    CollAsgnRespType: 905,\n    /** Collateral Assignment Reject Reason */\n    CollAsgnRejectReason: 906,\n    /** Collateral Assignment Identifier to which a transaction refers */\n    CollAsgnRefID: 907,\n    /** Collateral Report Identifier */\n    CollRptID: 908,\n    /** Collateral Inquiry Identifier */\n    CollInquiryID: 909,\n    /** Collateral Status */\n    CollStatus: 910,\n    /** Total number of reports returned in response to a request. */\n    TotNumReports: 911,\n    /** Indicates whether this message is the last report message in response to a request message, e.g. OrderMassStatusRequest(35=AF), TradeCaptureReportRequest(35=AD). */\n    LastRptRequested: 912,\n    /** The full name of the base standard agreement, annexes and amendments in place between the principals applicable to a financing transaction. See http://www.fpml.org/coding-scheme/master-agreement-type for derivative values.\n        For EU SFTR reporting use the appropriate 4-character code noted in the regulations. See SFTR ITS \"Commission Implementing Regulation (EU) 2019/363\" Annexes 1 to 2 for values. For other agreement type use OTHR and the name of the agreement concatenated with a hyphen, e.g. OTHR-\\<IndexName\\>. */\n    AgreementDesc: 913,\n    /** A common reference to the applicable standing agreement between the counterparties to a financing transaction. */\n    AgreementID: 914,\n    /** A reference to the date the underlying agreement specified by AgreementID and AgreementDesc was executed. */\n    AgreementDate: 915,\n    /** Start date of a financing deal, i.e. the date the buyer pays the seller cash and takes control of the collateral */\n    StartDate: 916,\n    /** End date of a financing deal, i.e. the date the seller reimburses the buyer and takes back control of the collateral */\n    EndDate: 917,\n    /** Contractual currency forming the basis of a financing agreement and associated transactions. Usually, but not always, the same as the trade currency. */\n    AgreementCurrency: 918,\n    /** Identifies type of settlement */\n    DeliveryType: 919,\n    /** Accrued Interest Amount applicable to a financing transaction on the End Date. */\n    EndAccruedInterestAmt: 920,\n    /** Starting dirty cash consideration of a financing deal, i.e. paid to the seller on the Start Date. */\n    StartCash: 921,\n    /** Ending dirty cash consideration of a financing deal. i.e. reimbursed to the buyer on the End Date. */\n    EndCash: 922,\n    /** Unique identifier for a User Request. */\n    UserRequestID: 923,\n    /** Indicates the action required by a User Request Message */\n    UserRequestType: 924,\n    /** New Password or passphrase */\n    NewPassword: 925,\n    /** Indicates the status of a user */\n    UserStatus: 926,\n    /** A text description associated with a user status. */\n    UserStatusText: 927,\n    /** Indicates the status of a network connection */\n    StatusValue: 928,\n    /** A text description associated with a network status. */\n    StatusText: 929,\n    /** Assigned value used to identify a firm. */\n    RefCompID: 930,\n    /** Assigned value used to identify specific elements within a firm. */\n    RefSubID: 931,\n    /** Unique identifier for a network response. */\n    NetworkResponseID: 932,\n    /** Unique identifier for a network resquest. */\n    NetworkRequestID: 933,\n    /** Identifier of the previous Network Response message sent to a counterparty, used to allow incremental updates. */\n    LastNetworkResponseID: 934,\n    /** Indicates the type and level of details required for a Network Status Request Message\n        Boolean logic applies EG If you want to subscribe for changes to certain id's then UserRequestType =0 (8+2), Snapshot for certain ID's = 9 (8+1) */\n    NetworkRequestType: 935,\n    /** Number of CompID entries in a repeating group. */\n    NoCompIDs: 936,\n    /** Indicates the type of Network Response Message. */\n    NetworkStatusResponseType: 937,\n    /** Number of CollInquiryQualifier entries in a repeating group. */\n    NoCollInquiryQualifier: 938,\n    /** Trade Report Status */\n    TrdRptStatus: 939,\n    /** Specifies the affirmation status of the confirmation. */\n    AffirmStatus: 940,\n    /** Currency in which the strike price of an underlying instrument is denominated */\n    UnderlyingStrikeCurrency: 941,\n    /** Currency in which the strike price of a instrument leg of a multileg instrument is denominated */\n    LegStrikeCurrency: 942,\n    /** A code that represents a time interval in which a fill or trade occurred.\n        Required for US futures markets. */\n    TimeBracket: 943,\n    /** Action proposed for an Underlying Instrument instance. */\n    CollAction: 944,\n    /** Status of Collateral Inquiry */\n    CollInquiryStatus: 945,\n    /** Result returned in response to Collateral Inquiry\n        4000+ Reserved and available for bi-laterally agreed upon user-defined values */\n    CollInquiryResult: 946,\n    /** Currency in which the StrikePrice is denominated. */\n    StrikeCurrency: 947,\n    /** Number of Nested3PartyID (949), Nested3PartyIDSource (950), and Nested3PartyRole (95) entries */\n    NoNested3PartyIDs: 948,\n    /** PartyID value within a \"third instance\" Nested repeating group.\n        Same values as PartyID (448) */\n    Nested3PartyID: 949,\n    /** PartyIDSource value within a \"third instance\" Nested repeating group.\n        Same values as PartyIDSource (447) */\n    Nested3PartyIDSource: 950,\n    /** PartyRole value within a \"third instance\" Nested repeating group.\n        Same values as PartyRole (452) */\n    Nested3PartyRole: 951,\n    /** Number of Nested3PartySubIDs (953) entries */\n    NoNested3PartySubIDs: 952,\n    /** PartySubID value within a \"third instance\" Nested repeating group.\n        Same values as PartySubID (523) */\n    Nested3PartySubID: 953,\n    /** PartySubIDType value within a \"third instance\" Nested repeating group.\n        Same values as PartySubIDType (803) */\n    Nested3PartySubIDType: 954,\n    /** Specifies when the contract (i.e. MBS/TBA) will settle. */\n    LegContractSettlMonth: 955,\n    /** The start date used for calculating accrued interest on debt instruments which are being sold between interest payment dates. Often but not always the same as the Issue Date and the Dated Date */\n    LegInterestAccrualDate: 956,\n    /** Indicates number of strategy parameters */\n    NoStrategyParameters: 957,\n    /** Name of parameter */\n    StrategyParameterName: 958,\n    /** Datatype of the parameter */\n    StrategyParameterType: 959,\n    /** Value of the parameter */\n    StrategyParameterValue: 960,\n    /** Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + legs. Used as the primary key with which to refer to the Cross Order for cancellation and replace. The HostCrossID will also be used to link together components of the Cross Order. For example, each individual Execution Report associated with the order will carry HostCrossID in order to tie back to the original cross order. */\n    HostCrossID: 961,\n    /** Indicates how long the order as specified in the side stays in effect. SideTimeInForce allows a two-sided cross order to specify order behavior separately for each side. Absence of this field indicates that TimeInForce should be referenced. SideTimeInForce will override TimeInForce if both are provided. */\n    SideTimeInForce: 962,\n    /** Unique identifier for the Market Data Report. */\n    MDReportID: 963,\n    /** Identifies a Security List message. */\n    SecurityReportID: 964,\n    /** Indicates the current state of the instrument. */\n    SecurityStatus: 965,\n    /** Indicator to determine if instrument is settle on open */\n    SettleOnOpenFlag: 966,\n    /** Used for derivatives. Multiplier applied to the strike price for the purpose of calculating the settlement value. */\n    StrikeMultiplier: 967,\n    /** Used for derivatives. The number of shares/units for the financial instrument involved in the option trade. */\n    StrikeValue: 968,\n    /** Minimum price increase for a given exchange-traded Instrument */\n    MinPriceIncrement: 969,\n    /** Position Limit for a given exchange-traded product. */\n    PositionLimit: 970,\n    /** Position Limit in the near-term contract for a given exchange-traded product. */\n    NTPositionLimit: 971,\n    /** Percent of the Strike Price that this underlying represents. */\n    UnderlyingAllocationPercent: 972,\n    /** Cash amount associated with the underlying component. */\n    UnderlyingCashAmount: 973,\n    /** Used for derivatives that deliver into cash underlying. */\n    UnderlyingCashType: 974,\n    /** Indicates order settlement period for the underlying instrument. */\n    UnderlyingSettlementType: 975,\n    /** Date associated to the quantity that is being reported for the position. */\n    QuantityDate: 976,\n    /** Unique identifier for the Contrary Intention report */\n    ContIntRptID: 977,\n    /** Indicates if the contrary intention was received after the exchange imposed cutoff time */\n    LateIndicator: 978,\n    /** Originating source of the request. */\n    InputSource: 979,\n    /** Specifies the action taken or to be taken for the specified instrument or list of instruments. */\n    SecurityUpdateAction: 980,\n    /** Number of Expiration Qty entries */\n    NoExpiration: 981,\n    /** Expiration Quantity type */\n    ExpirationQtyType: 982,\n    /** Expiration Quantity associated with the Expiration Type */\n    ExpQty: 983,\n    /** Total number of occurrences of Amount to pay in order to receive the underlying instrument */\n    NoUnderlyingAmounts: 984,\n    /** Amount to pay in order to receive the underlying instrument */\n    UnderlyingPayAmount: 985,\n    /** Amount to collect in order to deliver the underlying instrument */\n    UnderlyingCollectAmount: 986,\n    /** Date the underlying instrument will settle. Used for derivatives that deliver into more than one underlying instrument. Settlement dates can vary across underlying instruments. */\n    UnderlyingSettlementDate: 987,\n    /** Settlement status of the underlying instrument. Used for derivatives that deliver into more than one underlying instrument. Settlement can be delayed for an underlying instrument. */\n    UnderlyingSettlementStatus: 988,\n    /** Will allow the intermediary to specify an allocation ID generated by their system. */\n    SecondaryIndividualAllocID: 989,\n    /** Additional attribute to store the Trade ID of the Leg. */\n    LegReportID: 990,\n    /** Specifies average price rounded to quoted precision. */\n    RndPx: 991,\n    /** Identifies whether the allocation is to be sub-allocated or allocated to a third party */\n    IndividualAllocType: 992,\n    /** Capacity of customer in the allocation block. */\n    AllocCustomerCapacity: 993,\n    /** The Tier the trade was matched by the clearing system. */\n    TierCode: 994,\n    /** The unit of measure of the underlying commodity upon which the contract is based. Two groups of units of measure enumerations are supported.\n        Fixed Magnitude UOMs are primarily used in energy derivatives and specify a magnitude (such as, MM, Kilo, M, etc.) and the dimension (such as, watt hours, BTU's) to produce standard fixed measures (such as MWh - Megawatt-hours, MMBtu - One million BTUs).\n        The second group, Variable Quantity UOMs, specifies the dimension as a single unit without a magnitude (or more accurately a magnitude of one) and uses the UnitOfMeasureQty(1147) field to define the quantity of units per contract. Variable Quantity UOMs are used for both commodities (such as lbs of lean cattle, bushels of corn, ounces of gold) and financial futures.\n        Examples:\n        For lean cattle futures contracts, a UnitOfMeasure of 'lbs' with a UnitOfMeasureQty(1147) of 40,000, means each lean cattle futures contract represents 40,000 lbs of lean cattle.\n        For Eurodollars futures contracts, a UnitOfMeasure of Ccy with a UnitOfMeasureCurrency(1716) of USD and a UnitOfMeasureQty(1147) of 1,000,000, means a Eurodollar futures contract represents 1,000,000 USD.\n        For gold futures contracts, a UnitOfMeasure is oz_tr (Troy ounce) with a UnitOfMeasureQty(1147) of 1,000, means each gold futures contract represents 1,000 troy ounces of gold. */\n    UnitOfMeasure: 996,\n    /** Unit of time associated with the contract.\n        NOTE: Additional values may be used by mutual agreement of the counterparties. */\n    TimeUnit: 997,\n    /** Underlying unit of measure.\n        See UnitOfMeasure(996) for complete definition. */\n    UnderlyingUnitOfMeasure: 998,\n    /** Multileg instrument unit of measure.\n        See UnitOfMeasure(996) for complete definition. */\n    LegUnitOfMeasure: 999,\n    /** See TimeUnit(997) for complete definition. */\n    UnderlyingTimeUnit: 1000,\n    /** See TimeUnit(997) for complete definition. */\n    LegTimeUnit: 1001,\n    /** Specifies the method under which a trade quantity was allocated. */\n    AllocMethod: 1002,\n    /** The unique ID assigned to the trade entity once it is received or matched by the exchange or central counterparty. */\n    TradeID: 1003,\n    /** Used on a multi-sided trade to designate the ReportID */\n    SideTradeReportID: 1005,\n    /** Used on a multi-sided trade to convey order routing information */\n    SideFillStationCd: 1006,\n    /** Used on a multi-sided trade to convey reason for execution */\n    SideReasonCd: 1007,\n    /** Used on a multi-sided trade to specify the type of trade for a given side. Same values as TrdSubType (829). */\n    SideTrdSubType: 1008,\n    /** Used to indicate the quantity on one side of a multi-sided trade. */\n    SideLastQty: 1009,\n    /** Used to identify the event or source which gave rise to a message.\n        Valid values will be based on an exchange's implementation.\n        Example values are:\n        \"MQM\" (originated at Firm Back Office)\n        \"Clear\" (originated in Clearing System)\n        \"Reg\" (static data generated via Register request) */\n    MessageEventSource: 1011,\n    /** Same as TrdRegTimestamp(769). Used in a multi-sided message to indicate relevant trade-side timestamp. */\n    SideTrdRegTimestamp: 1012,\n    /** Same as TrdRegTimeStampType(770). Used in a multi-sided message to indicate relevant trade-side timestamp type. */\n    SideTrdRegTimestampType: 1013,\n    /** Same as TrdRegTimestampOrigin(771). Used in a multi-sided message to indicate relevant trade-side origin or source of timestamp. */\n    SideTrdRegTimestampSrc: 1014,\n    /** A trade that is being submitted for a trade date prior to the current trade or clearing date, e.g. in an open outcry market an out trade being submitted for the previous trading session or trading day. */\n    AsOfIndicator: 1015,\n    /** Number of timestamp entries. */\n    NoSideTrdRegTS: 1016,\n    /** Expresses the risk of an option leg\n        Value must be between -1 and 1.\n        A Call Option will require a ratio value between 0 and 1\n        A Put Option will require a ratio value between -1 and 0 */\n    LegOptionRatio: 1017,\n    /** Identifies the number of parties identified with an instrument */\n    NoInstrumentParties: 1018,\n    /** PartyID value within an instrument party repeating group. Same values as PartyID (448) */\n    InstrumentPartyID: 1019,\n    /** Used to report volume with a trade */\n    TradeVolume: 1020,\n    /** Describes the type of book for which the feed is intended. Used when multiple feeds are provided over the same connection */\n    MDBookType: 1021,\n    /** Describes a class of service for a given data feed, ie Regular and Market Maker, Bandwidth Intensive or Bandwidth Conservative */\n    MDFeedType: 1022,\n    /** Integer to convey the level of a bid or offer at a given price level. This is in contrast to MDEntryPositionNo(290) which is used to convey the position of an order within a price level. */\n    MDPriceLevel: 1023,\n    /** Used to describe the origin of the market data entry. */\n    MDOriginType: 1024,\n    /** Indicates the first trade price of the day/session */\n    FirstPx: 1025,\n    /** The spot rate for an FX entry */\n    MDEntrySpotRate: 1026,\n    /** Used for an F/X entry. The forward points to be added to or subtracted from the spot rate to get the \"all-in\" rate in MDEntryPx. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199 */\n    MDEntryForwardPoints: 1027,\n    /** Indicates if an order, quote or trade was initially received manually (as opposed to electronically) or if it was entered manually (as opposed to entered by automated trading software). */\n    ManualOrderIndicator: 1028,\n    /** Indicates if the customer directed this order to a specific execution venue \"Y\" or not \"N\".\n        A default of \"N\" customer did not direct this order should be used in the case where the information is both missing and essential. */\n    CustDirectedOrder: 1029,\n    /** Identifies the broker-dealer department that first took the order. */\n    ReceivedDeptID: 1030,\n    /** Codes that apply special information that the Broker / Dealer needs to report, as specified by the customer.\n        NOTE: This field and its values have no bearing on the ExecInst and TimeInForce fields. These values should not be used instead of ExecInst or TimeInForce. This field and its values are intended for compliance reporting and/or billing purposes only.\n        For OrderHandlingInstSrc(1032) = 1 (FINRA OATS), valid values are (as of OATS Phase 3 as provided by FINRA. See also http://www.finra.org/Industry/Compliance/MarketTransparency/OATS/PhaseIII/index.htm for a complete list.\n        For OrderHandlingInstSrc(1032) = 2 (FIA Execution Source Code), only one enumeration value may be specified. */\n    CustOrderHandlingInst: 1031,\n    /** Identifies the class or source of the order handling instruction values. \u00A0Scope of this will apply to both CustOrderHandlingInst(1031) and DeskOrderHandlingInst(1035).\n        Conditionally required when CustOrderHandlingInst(1031) or DeskOrderHandlingInst(1035) is specified. */\n    OrderHandlingInstSource: 1032,\n    /** Identifies the type of Trading Desk.\n        Conditionally required when InformationBarrierID(1727) is specified for OATS. */\n    DeskType: 1033,\n    /** Identifies the class or source of DeskType(1033) values. Conditionally required when DeskType(1033) is specified. */\n    DeskTypeSource: 1034,\n    /** Codes that apply special information that the broker-dealer needs to report. */\n    DeskOrderHandlingInst: 1035,\n    /** The status of this execution acknowledgement message. */\n    ExecAckStatus: 1036,\n    /** Indicates the underlying position amount to be delivered */\n    UnderlyingDeliveryAmount: 1037,\n    /** Maximum notional value for a capped financial instrument */\n    UnderlyingCapValue: 1038,\n    /** Settlement method for a contract or instrument. Additional values may be used with bilateral agreement. */\n    UnderlyingSettlMethod: 1039,\n    /** Used to carry an internal trade entity ID which may or may not be reported to the firm */\n    SecondaryTradeID: 1040,\n    /** The ID assigned to a trade by the Firm to track a trade within the Firm system. This ID can be assigned either before or after submission to the exchange or central counterpary */\n    FirmTradeID: 1041,\n    /** Used to carry an internal firm assigned ID which may or may not be reported to the exchange or central counterpary */\n    SecondaryFirmTradeID: 1042,\n    /** conveys how the collateral should be/has been applied */\n    CollApplType: 1043,\n    /** Unit amount of the underlying security (shares) adjusted for pending corporate action not yet allocated. */\n    UnderlyingAdjustedQuantity: 1044,\n    /** Foreign exchange rate used to compute UnderlyingCurrentValue(885) (or market value) from UnderlyingCurrency(318) to Currency(15). */\n    UnderlyingFXRate: 1045,\n    /** Specifies whether the UnderlyingFxRate(1045) should be multiplied or divided. */\n    UnderlyingFXRateCalc: 1046,\n    /** Indicates whether the resulting position after a trade should be an opening position or closing position. Used for omnibus accounting - where accounts are held on a gross basis instead of being netted together. */\n    AllocPositionEffect: 1047,\n    /** Identifies role of dealer in the trade. */\n    DealingCapacity: 1048,\n    /** Method under which assignment was conducted */\n    InstrmtAssignmentMethod: 1049,\n    /** PartyIDSource value within an instrument partyrepeating group.\n        Same values as PartyIDSource (447) */\n    InstrumentPartyIDSource: 1050,\n    /** PartyRole value within an instrument partyepeating group.\n        Same values as PartyRole (452) */\n    InstrumentPartyRole: 1051,\n    /** Number of InstrumentPartySubID (1053) and InstrumentPartySubIDType (1054) entries */\n    NoInstrumentPartySubIDs: 1052,\n    /** PartySubID value within an instrument party repeating group.\n        Same values as PartySubID (523) */\n    InstrumentPartySubID: 1053,\n    /** Type of InstrumentPartySubID (1053) value.\n        Same values as PartySubIDType (803) */\n    InstrumentPartySubIDType: 1054,\n    /** The Currency in which the position Amount is denominated */\n    PositionCurrency: 1055,\n    /** Used for the calculated quantity of the other side of the currency trade. Can be derived from LastQty and LastPx. */\n    CalculatedCcyLastQty: 1056,\n    /** Used to identify whether the order initiator is an aggressor or not in the trade. */\n    AggressorIndicator: 1057,\n    /** Identifies the number of parties identified with an underlying instrument */\n    NoUndlyInstrumentParties: 1058,\n    /** PartyID value within an underlying instrument party repeating group.\n        Same values as PartyID (448) */\n    UnderlyingInstrumentPartyID: 1059,\n    /** PartyIDSource value within an underlying instrument partyrepeating group.\n        Same values as PartyIDSource (447) */\n    UnderlyingInstrumentPartyIDSource: 1060,\n    /** PartyRole value within an underlying instrument partyepeating group.\n        Same values as PartyRole (452) */\n    UnderlyingInstrumentPartyRole: 1061,\n    /** Number of Underlying InstrumentPartySubID (1053) and InstrumentPartySubIDType (1054) entries */\n    NoUndlyInstrumentPartySubIDs: 1062,\n    /** PartySubID value within an underlying instrument party repeating group.\n        Same values as PartySubID (523) */\n    UnderlyingInstrumentPartySubID: 1063,\n    /** Type of underlying InstrumentPartySubID (1053) value.\n        Same values as PartySubIDType (803) */\n    UnderlyingInstrumentPartySubIDType: 1064,\n    /** The bid FX Swap points for an FX Swap. It is the \"far bid forward points - near offer forward point\". Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199 */\n    BidSwapPoints: 1065,\n    /** The offer FX Swap points for an FX Swap. It is the \"far offer forward points - near bid forward points\". Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199 */\n    OfferSwapPoints: 1066,\n    /** The bid FX forward points for the leg of an FX Swap. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199 */\n    LegBidForwardPoints: 1067,\n    /** The offer FX forward points for the leg of an FX Swap. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199 */\n    LegOfferForwardPoints: 1068,\n    /** For FX Swap, this is used to express the differential between the far leg's bid/offer and the near leg's bid/offer. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199 */\n    SwapPoints: 1069,\n    /** Identifies market data quote type. */\n    MDQuoteType: 1070,\n    /** For FX Swap, this is used to express the last market event for the differential between the far leg's bid/offer and the near leg's bid/offer in a fill or partial fill. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199 */\n    LastSwapPoints: 1071,\n    /** The gross trade amount for this side of the trade. See also GrossTradeAmt (381) for additional definition. */\n    SideGrossTradeAmt: 1072,\n    /** The forward points for this leg's fill event. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199 */\n    LegLastForwardPoints: 1073,\n    /** Used for the calculated quantity of the other side of the currency for this leg. Can be derived from LegQty and LegLastPx. */\n    LegCalculatedCcyLastQty: 1074,\n    /** The gross trade amount of the leg. For FX Futures this is used to express the notional value of a fill when LegLastQty and other quantity fields are express in terms of contract size. */\n    LegGrossTradeAmt: 1075,\n    /** Time of security's maturity expressed in local time with offset to UTC specified */\n    MaturityTime: 1079,\n    /** The ID reference to the order being hit or taken.\n        For pre-trade credit/risk limit check process, this is the reference to the placed order, quote request or quote for the credit/risk limit check. */\n    RefOrderID: 1080,\n    /** Used to specify the source for the identifier in RefOrderID(1080). This can be an identifier provided in order depth market data when hitting (taking) a specific order or to identify what type of order or quote reference is being provided when seeking credit limit check. In the context of US CAT this can be used to identify related orders and quotes which are parent, previous, or manual orders or quotes. Previous relates to orders changing their unique system assigned order identifier. */\n    RefOrderIDSource: 1081,\n    /** Used for reserve orders when DisplayQty applies to the primary execution market (e.g.an ECN) and another quantity is to be shown at other markets (e.g. the exchange). On orders specifies the qty to be displayed, on execution reports the currently displayed quantity. */\n    SecondaryDisplayQty: 1082,\n    /** Instructs when to refresh DisplayQty (1138). */\n    DisplayWhen: 1083,\n    /** Defines what value to use in DisplayQty (1138). If not specified the default DisplayMethod is \"1\" */\n    DisplayMethod: 1084,\n    /** Defines the lower quantity limit to a randomized refresh of DisplayQty. */\n    DisplayLowQty: 1085,\n    /** Defines the upper quantity limit to a randomized refresh of DisplayQty. */\n    DisplayHighQty: 1086,\n    /** Defines the minimum increment to be used when calculating a random refresh of DisplayQty. A user specifies this when he wants a larger increment than the standard provided by the market (e.g. the round lot size). */\n    DisplayMinIncr: 1087,\n    /** Defines the quantity used to refresh DisplayQty. */\n    RefreshQty: 1088,\n    /** Allows orders to specify a minimum quantity that applies to every execution (one execution could be for multiple counter-orders). The order may still fill against smaller orders, but the cumulative quantity of the execution must be in multiples of the MatchIncrement. */\n    MatchIncrement: 1089,\n    /** Allows an order to specify a maximum number of price levels to trade through. Only valid for aggressive orders and during continuous (autoexecution) trading sessions. Property lost when order is put on book. A partially filled order is assigned last trade price as limit price. Non-filled order behaves as ordinary Market or Limit. */\n    MaxPriceLevels: 1090,\n    /** Allows trader to explicitly request anonymity or disclosure in pre-trade market data feeds. Anonymity is relevant in markets where counterparties are regularly disclosed in order depth feeds. Disclosure is relevant when counterparties are not normally visible. */\n    PreTradeAnonymity: 1091,\n    /** Defines the type of price protection the customer requires on their order. */\n    PriceProtectionScope: 1092,\n    /** Defines the lot type assigned to the order. */\n    LotType: 1093,\n    /** Defines the type of peg. */\n    PegPriceType: 1094,\n    /** The value of the reference price that the order is pegged to. PeggedRefPrice + PegOffsetValue (211) = PeggedPrice (839) unless the limit price (44, Price) is breached. The values may not be exact due to rounding. */\n    PeggedRefPrice: 1095,\n    /** Defines the identity of the security off whose prices the order will peg. Same values as SecurityIDSource (22) */\n    PegSecurityIDSource: 1096,\n    /** Defines the identity of the security off whose prices the order will peg. */\n    PegSecurityID: 1097,\n    /** Defines the common, 'human understood' representation of the security off whose prices the order will Peg. */\n    PegSymbol: 1098,\n    /** Security description of the security off whose prices the order will Peg. */\n    PegSecurityDesc: 1099,\n    /** Defines when the trigger will hit, i.e. the action specified by the trigger instructions will come into effect. */\n    TriggerType: 1100,\n    /** Defines the type of action to take when the trigger hits. */\n    TriggerAction: 1101,\n    /** The price at which the trigger should hit. */\n    TriggerPrice: 1102,\n    /** Defines the common, 'human understood' representation of the security whose prices will be tracked by the trigger logic. */\n    TriggerSymbol: 1103,\n    /** Defines the identity of the security whose prices will be tracked by the trigger logic. */\n    TriggerSecurityID: 1104,\n    /** Defines the identity of the security whose prices will be tracked by the trigger logic. Same values as SecurityIDSource (22). */\n    TriggerSecurityIDSource: 1105,\n    /** Defines the security description of the security whose prices will be tracked by the trigger logic. */\n    TriggerSecurityDesc: 1106,\n    /** The type of price that the trigger is compared to. */\n    TriggerPriceType: 1107,\n    /** Defines the type of price protection the customer requires on their order. */\n    TriggerPriceTypeScope: 1108,\n    /** The side from which the trigger price is reached. */\n    TriggerPriceDirection: 1109,\n    /** The Price that the order should have after the trigger has hit. Could be applicable for any trigger type, but must be specified for Trigger Type 1. */\n    TriggerNewPrice: 1110,\n    /** The OrdType the order should have after the trigger has hit. Required to express orders that change from Limit to Market. Other values from OrdType (40) may be used if appropriate and bilaterally agreed upon. */\n    TriggerOrderType: 1111,\n    /** The Quantity the order should have after the trigger has hit. */\n    TriggerNewQty: 1112,\n    /** Defines the trading session at which the order will be activated. */\n    TriggerTradingSessionID: 1113,\n    /** Defines the subordinate trading session at which the order will be activated. */\n    TriggerTradingSessionSubID: 1114,\n    /** Defines the type of interest behind a trade (fill or partial fill). */\n    OrderCategory: 1115,\n    /** Number of RootPartyID (1117), RootPartyIDSource (1118), and RootPartyRole (1119) entries */\n    NoRootPartyIDs: 1116,\n    /** PartyID value within a root parties component. Same values as PartyID (448) */\n    RootPartyID: 1117,\n    /** PartyIDSource value within a root parties component. Same values as PartyIDSource (447) */\n    RootPartyIDSource: 1118,\n    /** PartyRole value within a root parties component. Same values as PartyRole (452) */\n    RootPartyRole: 1119,\n    /** Number of RootPartySubID (1121) and RootPartySubIDType (1122) entries */\n    NoRootPartySubIDs: 1120,\n    /** PartySubID value within a root parties component. Same values as PartySubID (523) */\n    RootPartySubID: 1121,\n    /** Type of RootPartySubID (1121) value. Same values as PartySubIDType (803) */\n    RootPartySubIDType: 1122,\n    /** Specified how the TradeCaptureReport(35=AE) should be handled by the respondent. */\n    TradeHandlingInstr: 1123,\n    /** Optionally used with TradeHandlingInstr = 0 to relay the trade handling instruction used when reporting the trade to the marketplace. Same values as TradeHandlingInstr (1123) */\n    OrigTradeHandlingInstr: 1124,\n    /** Used to preserve original trade date when original trade is being referenced in a subsequent trade transaction such as a transfer */\n    OrigTradeDate: 1125,\n    /** Used to preserve original trade id when original trade is being referenced in a subsequent trade transaction such as a transfer */\n    OrigTradeID: 1126,\n    /** Used to preserve original secondary trade id when original trade is being referenced in a subsequent trade transaction such as a transfer */\n    OrigSecondaryTradeID: 1127,\n    /** Specifies the application layer version being applied at the message level. */\n    ApplVerID: 1128,\n    /** Specifies a custom extension to a message being applied at the message level. Enumerated field */\n    CstmApplVerID: 1129,\n    /** Specifies the service pack release being applied to a message at the session level. Enumerated field with values assigned at time of service pack release. Uses same values as ApplVerID */\n    RefApplVerID: 1130,\n    /** Specifies a custom extension to a message being applied at the session level. */\n    RefCstmApplVerID: 1131,\n    /** Transact time in the local date-time stamp with a TZ offset to UTC identified */\n    TZTransactTime: 1132,\n    /** The ID source of ExDestination */\n    ExDestinationIDSource: 1133,\n    /** Indicates that the reported price that is different from the market price. The price difference should be stated by using field 828 TrdType and, if required, field 829 TrdSubType */\n    ReportedPxDiff: 1134,\n    /** Indicates the system or medium on which the report has been published */\n    RptSys: 1135,\n    /** ClearingFeeIndicator(635) for Allocation, see ClearingFeeIndicator(635) for permitted values. */\n    AllocClearingFeeIndicator: 1136,\n    /** Specifies the service pack release being applied, by default, to message at the session level. Enumerated field with values assigned at time of service pack release. Uses same values as ApplVerID */\n    DefaultApplVerID: 1137,\n    /** The quantity to be displayed . Required for reserve orders. On orders specifies the qty to be displayed, on execution reports the currently displayed quantity. */\n    DisplayQty: 1138,\n    /** Free format text string related to exchange. */\n    ExchangeSpecialInstructions: 1139,\n    /** The maximum order quantity (as expressed by TradeVolType(1786)) that can be submitted for a security. */\n    MaxTradeVol: 1140,\n    /** The number of feed types and corresponding book depths associated with a security */\n    NoMDFeedTypes: 1141,\n    /** The types of algorithm used to match orders in a specific security. Possilbe value types are FIFO, Allocation, Pro-rata, Lead Market Maker, Currency Calender. */\n    MatchAlgorithm: 1142,\n    /** The maximum price variation of an execution from one event to the next for a given security. Expressed in absolute price terms. */\n    MaxPriceVariation: 1143,\n    /** Indicates that an implied market should be created for either the legs of a multi-leg instrument (Implied-in) or for the multi-leg instrument based on the existence of the legs (Implied-out). Determination as to whether implied markets should be created is generally done at the level of the multi-leg instrument. Commonly used in listed derivatives. */\n    ImpliedMarketIndicator: 1144,\n    /** Specific time of event. To be used in combination with EventDate [866] */\n    EventTime: 1145,\n    /** Minimum price increment amount associated with MinPriceIncrement(969). For listed derivatives, the value can be calculated by multiplying MinPriceIncrement(969) with ContractMultiplier(231). */\n    MinPriceIncrementAmount: 1146,\n    /** Used to indicate the quantity of the underlying commodity unit of measure on which the contract is based, such as, 2500 lbs of lean cattle, 1000 barrels of crude oil, 1000 bushels of corn, etc. UnitOfMeasureQty is required for UnitOfMeasure(996) Variable Quantity UOMs enumerations. Refer to the definition of UnitOfMeasure(996) for more information on the use of UnitOfMeasureQty. */\n    UnitOfMeasureQty: 1147,\n    /** Allowable low limit price for the trading day. A key parameter in validating order price. Used as the lower band for validating order prices. Orders submitted with prices below the lower limit will be rejected */\n    LowLimitPrice: 1148,\n    /** Allowable high limit price for the trading day. A key parameter in validating order price. Used as the upper band for validating order prices. Orders submitted with prices above the upper limit will be rejected */\n    HighLimitPrice: 1149,\n    /** Reference price for the current trading price range usually representing the mid price between the HighLimitPrice and LowLimitPrice. The value may be the settlement price or closing price of the prior trading day. */\n    TradingReferencePrice: 1150,\n    /** An exchange specific name assigned to a group of related securities which may be concurrently affected by market events and actions. */\n    SecurityGroup: 1151,\n    /** Allow sequencing of Legs for a Strategy to be captured */\n    LegNumber: 1152,\n    /** Settlement cycle in which the settlement obligation was generated */\n    SettlementCycleNo: 1153,\n    /** Used to identify the trading currency on the Trade Capture Report Side */\n    SideCurrency: 1154,\n    /** Used to identify the settlement currency on the Trade Capture Report Side */\n    SideSettlCurrency: 1155,\n    /** The extension pack number associated with an application message. */\n    ApplExtID: 1156,\n    /** Net flow of Currency 1 */\n    CcyAmt: 1157,\n    /** Used to group Each Settlement Party */\n    NoSettlDetails: 1158,\n    /** Used to identify the reporting mode of the settlement obligation which is either preliminary or final */\n    SettlObligMode: 1159,\n    /** Message identifier for Settlement Obligation Report */\n    SettlObligMsgID: 1160,\n    /** Unique ID for this settlement instruction. */\n    SettlObligID: 1161,\n    /** Transaction Type - required except where SettlInstMode is 5=Reject SSI request */\n    SettlObligTransType: 1162,\n    /** Required where SettlInstTransType is Cancel or Replace */\n    SettlObligRefID: 1163,\n    /** Used to identify whether these delivery instructions are for the buyside or the sellside. */\n    SettlObligSource: 1164,\n    /** Number of settlement obligations */\n    NoSettlOblig: 1165,\n    /** Unique identifier for a quote message. */\n    QuoteMsgID: 1166,\n    /** Identifies the status of an individual quote. See also QuoteStatus(297) which is used for single Quotes. */\n    QuoteEntryStatus: 1167,\n    /** Specifies the number of canceled quotes */\n    TotNoCxldQuotes: 1168,\n    /** Specifies the number of accepted quotes */\n    TotNoAccQuotes: 1169,\n    /** Specifies the number of rejected quotes */\n    TotNoRejQuotes: 1170,\n    /** Specifies whether a quote is public, i.e. available to the market, or private, i.e. available to a specified counterparty only. */\n    PrivateQuote: 1171,\n    /** Specifies the type of respondents requested. */\n    RespondentType: 1172,\n    /** Describes a class of sub book, e.g. for the separation of various lot types. The Sub Book Type indicates that the following Market Data Entries belong to a non-integrated Sub Book. Whenever provided the Sub Book must be used together with MDPriceLevel and MDEntryPositionNo in order to sort the order properly.\n        Values are bilaterally agreed. */\n    MDSubBookType: 1173,\n    /** Identifies an event related to a SecurityTradingStatus(326). An event occurs and is gone, it is not a state that applies for a period of time. */\n    SecurityTradingEvent: 1174,\n    /** Number of statistics indicator repeating group entries */\n    NoStatsIndicators: 1175,\n    /** Type of statistics */\n    StatsType: 1176,\n    /** The number of secondary sizes specifies in this entry */\n    NoOfSecSizes: 1177,\n    /** Specifies the type of secondary size. */\n    MDSecSizeType: 1178,\n    /** A part of the MDEntrySize(271) that represents secondary interest as specified by MDSecSizeType(1178). */\n    MDSecSize: 1179,\n    /** Identifies the application with which a message is associated. Used only if application sequencing is in effect. */\n    ApplID: 1180,\n    /** Data sequence number to be used when FIX session is not in effect */\n    ApplSeqNum: 1181,\n    /** Beginning range of application sequence numbers */\n    ApplBegSeqNum: 1182,\n    /** Ending range of application sequence numbers */\n    ApplEndSeqNum: 1183,\n    /** The length of the SecurityXML(1185) data block. */\n    SecurityXMLLen: 1184,\n    /** XML definition for the security. */\n    SecurityXML: 1185,\n    /** The schema used to validate the contents of SecurityXML(1185). */\n    SecurityXMLSchema: 1186,\n    /** Set by the sender to tell the receiver to perform an immediate refresh of the book due to disruptions in the accompanying real-time feed\n        'Y' - Mandatory refresh by all participants\n        'N' - Process as required */\n    RefreshIndicator: 1187,\n    /** Annualized volatility for option model calculations */\n    Volatility: 1188,\n    /** Time to expiration in years calculated as the number of days remaining to expiration divided by 365 days per year. */\n    TimeToExpiration: 1189,\n    /** Interest rate. Usually some form of short term rate. */\n    RiskFreeRate: 1190,\n    /** Used to express the UOM of the price if different from the contract. In futures, this can be different for cross-rate products in which the price is quoted in units differently from the contract */\n    PriceUnitOfMeasure: 1191,\n    /** Used to express the UOM Quantity of the price if different from the contract. In futures, this can be different for physically delivered products in which price is quoted in a unit size different from the contract, i.e. a Cattle Future contract has a UOMQty of 40,000 and a PriceUOMQty of 100. */\n    PriceUnitOfMeasureQty: 1192,\n    /** Settlement method for a contract or instrument. Additional values may be used with bilateral agreement. */\n    SettlMethod: 1193,\n    /** Type of exercise of a derivatives security */\n    ExerciseStyle: 1194,\n    /** Cash amount indicating the pay out associated with an option. For binary options this is a fixed amount. */\n    OptPayoutAmount: 1195,\n    /** Method for price quotation */\n    PriceQuoteMethod: 1196,\n    /** Specifies the type of valuation method applied. */\n    ValuationMethod: 1197,\n    /** Indicates whether instruments are pre-listed only or can also be defined via user request */\n    ListMethod: 1198,\n    /** Used to express the ceiling price of a capped call */\n    CapPrice: 1199,\n    /** Used to express the floor price of a capped put */\n    FloorPrice: 1200,\n    /** Number of strike rule entries. This block specifies the rules for determining how new strikes should be listed within the stated price range of the underlying instrument */\n    NoStrikeRules: 1201,\n    /** Starting price for the range to which the StrikeIncrement applies. Price refers to the price of the underlying */\n    StartStrikePxRange: 1202,\n    /** Ending price of the range to which the StrikeIncrement applies. Price refers to the price of the underlying */\n    EndStrikePxRange: 1203,\n    /** Value by which strike price should be incremented within the specified price range. */\n    StrikeIncrement: 1204,\n    /** Number of tick rules. This block specifies the rules for determining how a security ticks, i.e. the price increments at which it can be quoted and traded, depending on the current price of the security */\n    NoTickRules: 1205,\n    /** Starting price range for specified tick increment */\n    StartTickPriceRange: 1206,\n    /** Ending price range for the specified tick increment */\n    EndTickPriceRange: 1207,\n    /** Tick increment for stated price range. Specifies the valid price increments at which a security can be quoted and traded */\n    TickIncrement: 1208,\n    /** Specifies the type of tick rule which is being described */\n    TickRuleType: 1209,\n    /** Code to represent the type of instrument attribute */\n    NestedInstrAttribType: 1210,\n    /** Attribute value appropriate to the NestedInstrAttribType field */\n    NestedInstrAttribValue: 1211,\n    /** Time of security's maturity expressed in local time with offset to UTC specified */\n    LegMaturityTime: 1212,\n    /** Time of security's maturity expressed in local time with offset to UTC specified */\n    UnderlyingMaturityTime: 1213,\n    /** Ticker symbol. Common, human understood representation of the security.\n        See Symbol(55) for complete definition. */\n    DerivativeSymbol: 1214,\n    /** Additional information about the security (e.g. preferred, warrants, etc.).\n        See SymbolSfx(65) for complete definition. */\n    DerivativeSymbolSfx: 1215,\n    /** Security identifier value (e.g. CUSIP, SEDOL, ISIN, etc).\n        Requires DerivativeSecurityIDSource(1217).\n        See SecurityID(48) for complete definition. */\n    DerivativeSecurityID: 1216,\n    /** Identifies class or source of the DerivativeSecurityID(1217) value.\n        See SecurityIDSource(22) for complete definition. */\n    DerivativeSecurityIDSource: 1217,\n    /** Number of alternate derivative security IDs. */\n    NoDerivativeSecurityAltID: 1218,\n    /** Alternate derivative security identifier value of DerivativeSecurityAltIDSource(1220) type.\n        Requires DerivativeSecurityAltIDSource(1220). */\n    DerivativeSecurityAltID: 1219,\n    /** Identifies class or source of the DerivativeSecurityAltID(1219) value. */\n    DerivativeSecurityAltIDSource: 1220,\n    /** Refer to definition of LowLimitPrice(1148) */\n    SecondaryLowLimitPrice: 1221,\n    /** Allows maturity rule to be referenced via an identifier so that rules do not need to be explicitly enumerated */\n    MaturityRuleID: 1222,\n    /** Allows strike rule to be referenced via an identifier so that rules do not need to be explicitly enumerated */\n    StrikeRuleID: 1223,\n    /** Refer to definition of UnitOfMeasureQty(1147) */\n    LegUnitOfMeasureQty: 1224,\n    /** Cash amount indicating the pay out associated with an option. For binary options this is a fixed amount.\n        See OptPayoutAmount(1195) for complete definition. */\n    DerivativeOptPayoutAmount: 1225,\n    /** Ending maturity month year for an option class */\n    EndMaturityMonthYear: 1226,\n    /** Identifies an entire suite of products for a given market. In Futures this may be \"interest rates\", \"agricultural\", \"equity indexes\", etc. */\n    ProductComplex: 1227,\n    /** Identifies an entire suite of products for a given market.\n        See ProductComplex(1227) for complete definition. */\n    DerivativeProductComplex: 1228,\n    /** Increment between successive maturities for an option class */\n    MaturityMonthYearIncrement: 1229,\n    /** Refer to definition of HighLimitPrice(1149) */\n    SecondaryHighLimitPrice: 1230,\n    /** Minimum lot size allowed based on lot type specified in LotType(1093) */\n    MinLotSize: 1231,\n    /** Number of execution instructions */\n    NoExecInstRules: 1232,\n    /** The commission rate when Commission(12) is based on a percentage of quantity, amount per unit or a factor of \"unit of measure\". If the rate is a percentage, use the decimalized form, e.g. \"0.05\" for a 5% commission or \"0.005\" for 50 basis points. */\n    CommRate: 1233,\n    /** Number of Lot Type Rules */\n    NoLotTypeRules: 1234,\n    /** Number of Match Rules */\n    NoMatchRules: 1235,\n    /** Number of maturity rules in MarurityRules component block */\n    NoMaturityRules: 1236,\n    /** Number of order types */\n    NoOrdTypeRules: 1237,\n    /** The commission rate unit of measure. */\n    CommUnitOfMeasure: 1238,\n    /** Number of time in force techniques */\n    NoTimeInForceRules: 1239,\n    /** Refer to definition for TradingReferencePrice(1150) */\n    SecondaryTradingReferencePrice: 1240,\n    /** Starting maturity month year for an option class */\n    StartMaturityMonthYear: 1241,\n    /** Used to indicate if a product or group of product supports the creation of flexible securities */\n    FlexProductEligibilityIndicator: 1242,\n    /** Used to indicate if a product or group of product supports the creation of flexible securities.\n        See FlexProductEligibilityIndicator(1242) for complete definition. */\n    DerivFlexProductEligibilityIndicator: 1243,\n    /** Used to indicate a derivatives security that can be defined using flexible terms. The terms commonly permitted to be defined by market participants are expiration date and strike price. FlexibleIndicator is an alternative CFICode(461) Standard/Non-standard attribute. */\n    FlexibleIndicator: 1244,\n    /** Used when the trading currency can differ from the price currency */\n    TradingCurrency: 1245,\n    /** The type of product the security is associated with.\n        See Product(460) for complete definition. */\n    DerivativeProduct: 1246,\n    /** An exchange specific name assigned to a group of related securities which may be concurrently affected by market events and actions.\n        See SecurityGroup(1151) for complete definition. */\n    DerivativeSecurityGroup: 1247,\n    /** The type of security using ISO 10962 standard, Classification of Financial Instruments (CFI code) values.\n        See CFICode(461) for complete definition. */\n    DerivativeCFICode: 1248,\n    /** The type of security.\n        See SecurityType(167) for complete definition. */\n    DerivativeSecurityType: 1249,\n    /** Sub-type qualification/identification of the security type.\n        See SecuritySubType(762) for complete definition. */\n    DerivativeSecuritySubType: 1250,\n    /** Month and Year of the maturity (used for standardized futures and options).\n        See MaturityMonthYear(200) for complete definition. */\n    DerivativeMaturityMonthYear: 1251,\n    /** Date of maturity.\n        See MaturityDate(541) for complete definition. */\n    DerivativeMaturityDate: 1252,\n    /** Time of security's maturity expressed in local time with offset to UTC specified.\n        See MaturityTime(1079) for complete definition. */\n    DerivativeMaturityTime: 1253,\n    /** Indicator to determine if instrument is settle on open.\n        See SettleOnOpenFlag(966) for complete definition. */\n    DerivativeSettleOnOpenFlag: 1254,\n    /** Method under which assignment was conducted.\n        See InstrmtAssignmentMethod(1049) for complete definition. */\n    DerivativeInstrmtAssignmentMethod: 1255,\n    /** Indicates the current state of the derivative instrument.\n        See SecurityStatus(965) for complete definition. */\n    DerivativeSecurityStatus: 1256,\n    /** Values may include BIC for the depository or custodian who maintain ownership records, the ISO country code for the location of the record, or the value ZZ to specify physical ownership of the security (e.g. stock certificate).\n        See InstrRegistry(543) for complete definition. */\n    DerivativeInstrRegistry: 1257,\n    /** ISO Country code of instrument issue (e.g. the country portion typically used in ISIN).\n        See CountryOfIssue(470) for complete definition. */\n    DerivativeCountryOfIssue: 1258,\n    /** A two-character state or province abbreviation.\n        See StateOrProvinceOfIssue(471) for complete definition. */\n    DerivativeStateOrProvinceOfIssue: 1259,\n    /** Identifies the locale or region of issue.\n        See LocaleOfIssue(472) for complete definition. */\n    DerivativeLocaleOfIssue: 1260,\n    /** Strike price for an option.\n        See StrikePrice(202) for complete definition. */\n    DerivativeStrikePrice: 1261,\n    /** Currency in which the strike price is denominated.\n        See StrikeCurrency(947) for complete definition. */\n    DerivativeStrikeCurrency: 1262,\n    /** Multiplier applied to the strike price for the purpose of calculating the settlement value.\n        See StrikeMultiplier(967) for complete definition. */\n    DerivativeStrikeMultiplier: 1263,\n    /** The number of shares/units for the financial instrument involved in the option trade.\n        See StrikeValue(968) for complete definition. */\n    DerivativeStrikeValue: 1264,\n    /** Provided to support versioning of option contracts as a result of corporate actions or events. Use of this field is defined by counterparty agreement or market conventions.\n        See OptAttribute(206) for complete definition. */\n    DerivativeOptAttribute: 1265,\n    /** Specifies the ratio or multiply factor to convert from nominal units (e.g. contracts) to total units (e.g. shares) (e.g. 1.0, 100, 1000, etc.).\n        See ContractMultiplier(231) for complete definition. */\n    DerivativeContractMultiplier: 1266,\n    /** Minimum price increase for a given exchange-traded Instrument.\n        See MinPriceIncrement(969) for complete definition. */\n    DerivativeMinPriceIncrement: 1267,\n    /** Minimum price increment amount associated with the minimum price increment.\n        See MinPriceIncrementAmount(1146) for complete definition. */\n    DerivativeMinPriceIncrementAmount: 1268,\n    /** The unit of measure of the underlying commodity upon which the contract is based.\n        See UnitOfMeasure(996) for complete definition. */\n    DerivativeUnitOfMeasure: 1269,\n    /** Used to indicate the quantity of the underlying commodity unit of measure on which the contract is based.\n        See UnitOfMeasureQty(1147) for complete definition. */\n    DerivativeUnitOfMeasureQty: 1270,\n    /** Unit of time associated with the contract.\n        NOTE: Additional values may be used by mutual agreement of the counterparties.\n        See TimeUnit(997) for complete definition. */\n    DerivativeTimeUnit: 1271,\n    /** Market used to help identify a security.\n        See SecurityExchange(207) for complete definition. */\n    DerivativeSecurityExchange: 1272,\n    /** Position limit for a given exchange-traded product.\n        See PositionLimit(970) for complete definition. */\n    DerivativePositionLimit: 1273,\n    /** Position limit in the near-term contract for a given exchange-traded product.\n        See NTPositionLimit(971) for complete definition. */\n    DerivativeNTPositionLimit: 1274,\n    /** Name of security issuer.\n        See Issuer(106) for complete definition. */\n    DerivativeIssuer: 1275,\n    /** The date on which the security is issued.\n        See IssueDate(225) for complete definition. */\n    DerivativeIssueDate: 1276,\n    /** Byte length of encoded (non-ASCII characters) DerivativeEncodedSecurityDesc (1281) field.\n        See EncodedIssuerLen(348) for complete definition. */\n    DerivativeEncodedIssuerLen: 1277,\n    /** Encoded (non-ASCII characters) representation of the DerivativeIssuer(1275) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the DerivativeIssuer(1275) field.\n        See EncodedIssuer(349) for complete definition. */\n    DerivativeEncodedIssuer: 1278,\n    /** Can be used by the venue or one of the trading parties to provide a non-normative textual description for the financial instrument.\n        See SecurityDesc(107) for complete definition. */\n    DerivativeSecurityDesc: 1279,\n    /** Byte length of encoded (non-ASCII characters) DerivativeEncodedSecurityDesc (1281) field.\n        See EncodedSecurityDescLen(350) for complete definition. */\n    DerivativeEncodedSecurityDescLen: 1280,\n    /** Encoded (non-ASCII characters) representation of the DerivativeSecurityDesc(1279) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the DerivativeSecurityDesc(1279) field.\n        See EncodedSecurityDesc(351) for complete definition. */\n    DerivativeEncodedSecurityDesc: 1281,\n    /** The length of the DerivativeSecurityXML(1283) data block.\n        See SecurityXMLLen(1184) for complete definition. */\n    DerivativeSecurityXMLLen: 1282,\n    /** XML definition for the security.\n        See SecurityXML(1185) for complete definition. */\n    DerivativeSecurityXML: 1283,\n    /** The schema used to validate the contents of DerivativeSecurityXML(1283).\n        See SecurityXMLSchema(1186) for complete definition. */\n    DerivativeSecurityXMLSchema: 1284,\n    /** Specifies when the contract (i.e. MBS/TBA) will settle.\n        See ContractSettlMonth(667) for complete definition. */\n    DerivativeContractSettlMonth: 1285,\n    /** Number of repeating DerivativeEventType entries. */\n    NoDerivativeEvents: 1286,\n    /** Code to represent the type of event.\n        See EventType(865) for complete definition. */\n    DerivativeEventType: 1287,\n    /** Date of event.\n        See EventDate(866) for complete definition. */\n    DerivativeEventDate: 1288,\n    /** Specific time of event. To be used in combination with DerivativeEventDate(1288).\n        See EventTime(1145) for complete definition. */\n    DerivativeEventTime: 1289,\n    /** Predetermined price of issue at event.\n        See EventPx(867) for complete definition. */\n    DerivativeEventPx: 1290,\n    /** Comments related to the event.\n        See EventText(868) for complete definition. */\n    DerivativeEventText: 1291,\n    /** Number of repeating derivative instrument party entries. */\n    NoDerivativeInstrumentParties: 1292,\n    /** Party identifier/code.\n        See PartyID(448) for complete definition. */\n    DerivativeInstrumentPartyID: 1293,\n    /** Identifies class or source of the DerivativeInstrumentPartyID (1293) value.\n        Required if DerivativeInstrumentPartyID(1293) is specified.\n        See PartyIDSource(447) for complete definition. */\n    DerivativeInstrumentPartyIDSource: 1294,\n    /** Identifies the type or role of the DerivativeInstrumentPartyID (1293) specified.\n        See PartyRole(452) for complete definition. */\n    DerivativeInstrumentPartyRole: 1295,\n    /** Number of derivative instrument party sub IDs. */\n    NoDerivativeInstrumentPartySubIDs: 1296,\n    /** Party sub-identifier.\n        See PartySubID(523) for complete definition. */\n    DerivativeInstrumentPartySubID: 1297,\n    /** Type of party sub-identifier.\n        See PartySubIDType(803) for complete definition. */\n    DerivativeInstrumentPartySubIDType: 1298,\n    /** Type of exercise.\n        See ExerciseStyle(1194) for complete definition. */\n    DerivativeExerciseStyle: 1299,\n    /** Identifies the market segment */\n    MarketSegmentID: 1300,\n    /** Identifies the market */\n    MarketID: 1301,\n    /** Unit of measure for the Maturity Month Year Increment */\n    MaturityMonthYearIncrementUnits: 1302,\n    /** Format used to generate the MaturityMonthYear for each option */\n    MaturityMonthYearFormat: 1303,\n    /** Expiration Style for an option class: */\n    StrikeExerciseStyle: 1304,\n    /** Describes the how the price limits are expressed */\n    SecondaryPriceLimitType: 1305,\n    /** Describes the how the price limits are expressed. */\n    PriceLimitType: 1306,\n    /** Indicates execution instructions that are valid for the specified market segment */\n    ExecInstValue: 1308,\n    /** Allows trading rules to be expressed by trading session */\n    NoTradingSessionRules: 1309,\n    /** Number of Market Segments on which a security may trade. */\n    NoMarketSegments: 1310,\n    /** Number of instrument attributes. */\n    NoDerivativeInstrAttrib: 1311,\n    NoNestedInstrAttrib: 1312,\n    /** Type of instrument attribute.\n        See InstrAttribType(871) for complete definition. */\n    DerivativeInstrAttribType: 1313,\n    /** Attribute value appropriate to the DerivativeInstrAttribValue(1313) field.\n        See InstrAttribValue(872) for complete definition. */\n    DerivativeInstrAttribValue: 1314,\n    /** Used to express the UOM of the price if different from the contract.\n        See PriceUnitOfMeasureQty(1191) for complete definition. */\n    DerivativePriceUnitOfMeasure: 1315,\n    /** Used to express the UOM Quantity of the price if different from the contract.\n        See PriceUnitOfMeasureQty(1192) for complete definition. */\n    DerivativePriceUnitOfMeasureQty: 1316,\n    /** Settlement method for a contract or instrument.\n        See SettlMethod(1193) for complete definition. */\n    DerivativeSettlMethod: 1317,\n    /** Specifies the method for price quotation.\n        See PriceQuoteMethod(1196) for complete definition. */\n    DerivativePriceQuoteMethod: 1318,\n    /** Specifies the method for price quotation.\n        See ValuationMethod(1197) for complete definition. */\n    DerivativeValuationMethod: 1319,\n    /** Indicates whether instruments are pre-listed only or can also be defined via user request.\n        See ListMethod(1198) for complete definition. */\n    DerivativeListMethod: 1320,\n    /** Used to express the ceiling price of a capped call.\n        See CapPrice(1199) for complete definition. */\n    DerivativeCapPrice: 1321,\n    /** Used to express the floor price of a capped put.\n        See FloorPrice(1200) for complete definition. */\n    DerivativeFloorPrice: 1322,\n    /** Indicates whether an option contract is a put, call, chooser or undetermined.\n        See PutOrCall(201) for complete definition. */\n    DerivativePutOrCall: 1323,\n    /** If provided, then Instrument occurrence has explicitly changed */\n    ListUpdateAction: 1324,\n    /** Reference to a parent Market Segment. See MarketSegmentID(1300) */\n    ParentMktSegmID: 1325,\n    /** Trading Session description */\n    TradingSessionDesc: 1326,\n    /** Specifies the action taken for the specified trading sessions. */\n    TradSesUpdateAction: 1327,\n    /** Identifies the reason for rejection. */\n    RejectText: 1328,\n    /** This is a multiplier that Clearing (Fee system) will use to calculate fees and will be sent to the firms on their confirms. */\n    FeeMultiplier: 1329,\n    /** Refer to definition for Symbol(55) */\n    UnderlyingLegSymbol: 1330,\n    /** Refer to definition for SymbolSfx(65) */\n    UnderlyingLegSymbolSfx: 1331,\n    /** Refer to definition for SecurityID(48) */\n    UnderlyingLegSecurityID: 1332,\n    /** Refer to definition for SecurityIDSource(22) */\n    UnderlyingLegSecurityIDSource: 1333,\n    /** Refer to definition for NoSecurityAltID(454) */\n    NoUnderlyingLegSecurityAltID: 1334,\n    /** Refer to definition for SecurityAltID(455) */\n    UnderlyingLegSecurityAltID: 1335,\n    /** Refer to definition for SecurityAltIDSource(456) */\n    UnderlyingLegSecurityAltIDSource: 1336,\n    /** Refer to definition for SecurityType(167) */\n    UnderlyingLegSecurityType: 1337,\n    /** Refer to definition for SecuritySubType(762) */\n    UnderlyingLegSecuritySubType: 1338,\n    /** Refer to definition for MaturityMonthYear(200) */\n    UnderlyingLegMaturityMonthYear: 1339,\n    /** Refer to definition for StrikePrice(202) */\n    UnderlyingLegStrikePrice: 1340,\n    /** Refer to definition for SecurityExchange(207) */\n    UnderlyingLegSecurityExchange: 1341,\n    /** Number of Underlyings, Identifies the Underlying of the Leg */\n    NoOfLegUnderlyings: 1342,\n    /** Refer to definition for PutOrCall(201) */\n    UnderlyingLegPutOrCall: 1343,\n    /** Refer to definition for CFICode(461) */\n    UnderlyingLegCFICode: 1344,\n    /** Date of maturity. */\n    UnderlyingLegMaturityDate: 1345,\n    /** Unique identifier for request */\n    ApplReqID: 1346,\n    /** Type of Application Message Request being made. */\n    ApplReqType: 1347,\n    /** Used to indicate the type of acknowledgement being sent. */\n    ApplResponseType: 1348,\n    /** Total number of messages included in transmission. */\n    ApplTotalMessageCount: 1349,\n    /** Application sequence number of last message in transmission */\n    ApplLastSeqNum: 1350,\n    /** Specifies number of application id occurrences */\n    NoApplIDs: 1351,\n    /** Used to indicate that a message is being sent in response to an Application Message Request. It is possible for both ApplResendFlag and PossDupFlag to be set on the same message if the Sender's cache size is greater than zero and the message is being resent due to a session level resend request */\n    ApplResendFlag: 1352,\n    /** Identifier for the Applicaton Message Request Ack */\n    ApplResponseID: 1353,\n    /** Used to return an error code or text associated with a response to an Application Request. */\n    ApplResponseError: 1354,\n    /** Reference to the unique application identifier which corresponds to ApplID(1180) from the Application Sequence Group component */\n    RefApplID: 1355,\n    /** Identifier for the Application Sequence Reset */\n    ApplReportID: 1356,\n    /** Application sequence number of last message in transmission. */\n    RefApplLastSeqNum: 1357,\n    /** Indicates whether a leg option contract is a put, call, chooser or undetermined. */\n    LegPutOrCall: 1358,\n    /** Total number of fill entries across all messages. Should be the sum of all NoFills(1362) in each message that has repeating list of fill entries related to the same ExecID(17). Used to support fragmentation. */\n    TotNoFills: 1361,\n    NoFills: 1362,\n    /** Refer to ExecID(17). Used when multiple partial fills are reported in single Execution Report. ExecID and FillExecID should not overlap, */\n    FillExecID: 1363,\n    /** Price of Fill. Refer to LastPx(31). */\n    FillPx: 1364,\n    /** Quantity of Fill. Refer to LastQty(32). */\n    FillQty: 1365,\n    /** The AllocID(70) of an individual leg of a multileg order. */\n    LegAllocID: 1366,\n    /** Identifies settlement currency for the leg level allocation. */\n    LegAllocSettlCurrency: 1367,\n    /** Identifies an event related to a TradSesStatus(340). An event occurs and is gone, it is not a state that applies for a period of time. */\n    TradSesEvent: 1368,\n    /** Unique identifier of Order Mass Cancel Report or Order Mass Action Report message as assigned by sell-side (broker, exchange, ECN) */\n    MassActionReportID: 1369,\n    /** Number of not affected orders in the repeating group of order ids. */\n    NoNotAffectedOrders: 1370,\n    /** OrderID(37) of an order not affected by a mass cancel or mass action request. */\n    NotAffectedOrderID: 1371,\n    /** ClOrdID(11) of an order not affected by a mass cancel or mass action request. */\n    NotAffOrigClOrdID: 1372,\n    /** Specifies the type of action requested */\n    MassActionType: 1373,\n    /** Specifies scope of Order Mass Action Request. */\n    MassActionScope: 1374,\n    /** Specifies the action taken by counterparty order handling system as a result of the action type indicated in MassActionType of the Order Mass Action Request. */\n    MassActionResponse: 1375,\n    /** Reason Order Mass Action Request was rejected */\n    MassActionRejectReason: 1376,\n    /** Specifies the type of multileg order. Defines whether the security is pre-defined or user-defined. Note that MultilegModel(1377)=2(User-defined, Non-Securitized, Multileg) does not apply for Securities. */\n    MultilegModel: 1377,\n    /** Code to represent how the multileg price is to be interpreted when applied to the legs.\n        (See Volume : \"Glossary\" for further value definitions) */\n    MultilegPriceMethod: 1378,\n    /** Specifies the volatility of an instrument leg. */\n    LegVolatility: 1379,\n    /** The continuously-compounded annualized dividend yield of the underlying(s) of an option. Used as a parameter to theoretical option pricing models. */\n    DividendYield: 1380,\n    /** Refer to definition for DividendYield(1380). */\n    LegDividendYield: 1381,\n    /** Specifies the currency ratio between the currency used for a multileg price and the currency used by the outright book defined by the leg. Example: Multileg quoted in EUR, outright leg in USD and 1 EUR = 0,7 USD then CurrencyRatio = 0.7 */\n    CurrencyRatio: 1382,\n    /** Specifies the currency ratio between the currency used for a multileg price and the currency used by the outright book defined by the leg. Example: Multileg quoted in EUR, outright leg in USD and 1 EUR = 0,7 USD then LegCurrencyRatio = 0.7 */\n    LegCurrencyRatio: 1383,\n    /** Refer to ExecInst(18)\n        Same values as ExecInst(18) */\n    LegExecInst: 1384,\n    /** Defines the type of contingency. */\n    ContingencyType: 1385,\n    /** Identifies the reason for rejection of a New Order List message. Note that OrdRejReason(103) is used if the rejection is based on properties of an individual order part of the List. */\n    ListRejectReason: 1386,\n    /** Number of trade reporting indicators */\n    NoTrdRepIndicators: 1387,\n    /** Identifies the type of party for trade reporting. Same values as PartyRole(452). */\n    TrdRepPartyRole: 1388,\n    /** Specifies whether the trade should be reported (or not) to parties of the provided TrdRepPartyRole(1388). Used to override standard reporting behavior by the receiver of the trade report and thereby complements the PublTrdIndicator( tag1390). */\n    TrdRepIndicator: 1389,\n    /** Indicates if a trade should be or has been published via a market publication service. The indicator governs all publication services of the recipient. Replaces PublishTrdIndicator(852). */\n    TradePublishIndicator: 1390,\n    /** Refer to definition of OptAttribute(206) */\n    UnderlyingLegOptAttribute: 1391,\n    /** Refer to definition of SecurityDesc(107) */\n    UnderlyingLegSecurityDesc: 1392,\n    /** Unique ID of a Market Definition Request message. */\n    MarketReqID: 1393,\n    /** Market Definition message identifier. */\n    MarketReportID: 1394,\n    /** Specifies the action taken for the specified MarketID(1301) + MarketSegmentID(1300). */\n    MarketUpdateAction: 1395,\n    /** Description or name of Market Segment */\n    MarketSegmentDesc: 1396,\n    /** Byte length of encoded (non-ASCII characters) EncodedMktSegmDesc(1324) field. */\n    EncodedMktSegmDescLen: 1397,\n    /** Encoded (non-ASCII characters) representation of the MarketSegmDesc(1396) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the MarketSegmDesc field. */\n    EncodedMktSegmDesc: 1398,\n    /** Used to specify a new application sequence number. */\n    ApplNewSeqNum: 1399,\n    /** Enumeration defining the encryption method used to encrypt password fields.\n        At this time there are no encryption methods defined by FPL. */\n    EncryptedPasswordMethod: 1400,\n    /** Length of the EncryptedPassword(1402) field */\n    EncryptedPasswordLen: 1401,\n    /** Encrypted password - encrypted via the method specified in the field EncryptedPasswordMethod(1400) */\n    EncryptedPassword: 1402,\n    /** Length of the EncryptedNewPassword(1404) field */\n    EncryptedNewPasswordLen: 1403,\n    /** Encrypted new password - encrypted via the method specified in the field EncryptedPasswordMethod(1400) */\n    EncryptedNewPassword: 1404,\n    /** Time of security's maturity expressed in local time with offset to UTC specified */\n    UnderlyingLegMaturityTime: 1405,\n    /** The extension pack number associated with an application message. */\n    RefApplExtID: 1406,\n    /** The extension pack number that is the default for a FIX session. */\n    DefaultApplExtID: 1407,\n    /** The default custom application version ID that is the default for a session. */\n    DefaultCstmApplVerID: 1408,\n    /** Status of a FIX session */\n    SessionStatus: 1409,\n    /** Indicates that the application version identified in the fields RefApplVerID(1130), RefApplExtID(1406), and RefCstmApplVerID(1131) is the default for the message type identified in RefMsgType(372) field. */\n    DefaultVerIndicator: 1410,\n    /** Refer to definition of PartySubIDType(803) */\n    Nested4PartySubIDType: 1411,\n    /** Refer to definition of PartySubID(523) */\n    Nested4PartySubID: 1412,\n    /** Refer to definition of NoPartySubIDs(802) */\n    NoNested4PartySubIDs: 1413,\n    /** Refer to definition of NoPartyIDs(453) */\n    NoNested4PartyIDs: 1414,\n    /** Refer to definition of PartyID(448) */\n    Nested4PartyID: 1415,\n    /** Refer to definition of PartyIDSource(447) */\n    Nested4PartyIDSource: 1416,\n    /** Refer to definition of PartyRole(452) */\n    Nested4PartyRole: 1417,\n    /** Fill quantity for the leg instrument */\n    LegLastQty: 1418,\n    /** Type of exercise of a derivatives security */\n    UnderlyingExerciseStyle: 1419,\n    /** Type of exercise of a derivatives security */\n    LegExerciseStyle: 1420,\n    /** Refer to definition for PriceUnitOfMeasure(1191) */\n    LegPriceUnitOfMeasure: 1421,\n    /** Refer to definition of PriceUnitOfMeasureQty(1192) */\n    LegPriceUnitOfMeasureQty: 1422,\n    /** Refer to definition of UnitOfMeasureQty(1147) */\n    UnderlyingUnitOfMeasureQty: 1423,\n    /** Refer to definition for PriceUnitOfMeasure(1191) */\n    UnderlyingPriceUnitOfMeasure: 1424,\n    /** Refer to definition of PriceUnitOfMeasureQty(1192) */\n    UnderlyingPriceUnitOfMeasureQty: 1425,\n    /** Type of report */\n    ApplReportType: 1426,\n    /** When reporting trades, used to reference the identifier of the execution (ExecID) being reported if different ExecIDs were assigned to each side of the trade. */\n    SideExecID: 1427,\n    /** Time lapsed from order entry until match, based on the unit of time specified in OrderDelayUnit. Default is seconds if OrderDelayUnit is not specified. Value = 0, indicates the aggressor (the initiating side of the trade). */\n    OrderDelay: 1428,\n    /** Time unit in which the OrderDelay(1428) is expressed */\n    OrderDelayUnit: 1429,\n    /** Identifies the type of venue where a trade was executed. */\n    VenueType: 1430,\n    /** The reason for updating the RefOrdID */\n    RefOrdIDReason: 1431,\n    /** The customer capacity for this trade at the time of the order/execution.\n        Primarily used by futures exchanges to indicate the CTICode (customer type indicator) as required by the US CFTC (Commodity Futures Trading Commission). */\n    OrigCustOrderCapacity: 1432,\n    /** Used to reference a previously submitted ApplReqID (1346) from within a subsequent ApplicationMessageRequest(MsgType=BW) */\n    RefApplReqID: 1433,\n    /** Type of pricing model used */\n    ModelType: 1434,\n    /** Indicates the type of multiplier being applied to the contract. Can be optionally used to further define what unit ContractMultiplier(tag 231) is expressed in. */\n    ContractMultiplierUnit: 1435,\n    /** Indicates the type of multiplier being applied to the contract. Can be optionally used to further define what unit LegContractMultiplier(614) is expressed in. */\n    LegContractMultiplierUnit: 1436,\n    /** Indicates the type of multiplier being applied to the contract.\n        Can be optionally used to further define what unit UnderlyingContractMultiplier(436) is expressed in. */\n    UnderlyingContractMultiplierUnit: 1437,\n    /** Indicates the type of multiplier being applied to the contract. Can be optionally used to further define what unit DerivativeContractMultiplier(1266)is expressed in.\n        See ContractMultiplierUnit(1435) for complete definition. */\n    DerivativeContractMultiplierUnit: 1438,\n    /** The industry standard flow schedule by which electricity or natural gas is traded. Schedules may exist by regions and on-peak and off-peak status, such as \"Western Peak\". */\n    FlowScheduleType: 1439,\n    /** The industry standard flow schedule by which electricity or natural gas is traded. Schedules exist by regions and on-peak and off-peak status, such as \"Western Peak\". */\n    LegFlowScheduleType: 1440,\n    /** The industry standard flow schedule by which electricity or natural gas is traded. Schedules exist by regions and on-peak and off-peak status, such as \"Western Peak\". */\n    UnderlyingFlowScheduleType: 1441,\n    /** The industry standard flow schedule by which electricity or natural gas is traded. Schedules exist by regions and on-peak and off-peak status, such as \"Western Peak\".\n        See FlowScheduleType(1439) for complete definition. */\n    DerivativeFlowScheduleType: 1442,\n    /** Indicator to identify whether this fill was a result of a liquidity provider providing or liquidity taker taking the liquidity. Applicable only for OrdStatus of Partial or Filled */\n    FillLiquidityInd: 1443,\n    /** Indicator to identify whether this fill was a result of a liquidity provider providing or liquidity taker taking the liquidity. Applicable only for OrdStatus of Partial or Filled. */\n    SideLiquidityInd: 1444,\n    /** Number of rate sources being specified. */\n    NoRateSources: 1445,\n    /** Identifies the source of rate information.\n        For FX, the reference source to be used for the FX spot rate.\n        This is where to look up the rate information and is not necessarily the entity that sets the rate. */\n    RateSource: 1446,\n    /** Indicates whether the rate source specified is a primary or secondary source. */\n    RateSourceType: 1447,\n    /** Identifies the reference \"page\" from the rate source.\n        For FX, the reference page to the spot rate to be used for the reference FX spot rate.\n        When RateSource(1446) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option */\n    ReferencePage: 1448,\n    /** A category of CDS credit event in which the underlying bond experiences a restructuring.\n        Used to define a CDS instrument. */\n    RestructuringType: 1449,\n    /** Specifies which issue (underlying bond) will receive payment priority in the event of a default.\n        Used to define a CDS instrument.\n        The payment priority is this: Senior Secured (SD), Senior (SR), Senior Non-Preferred (SN), Subordinated (SB), Mezzanine (MZ), Junior (JR). */\n    Seniority: 1450,\n    /** Indicates the notional percentage of the deal that is still outstanding based on the remaining components of the index.\n        Used to calculate the true value of a CDS trade or position. */\n    NotionalPercentageOutstanding: 1451,\n    /** Used to reflect the Original value prior to the application of a credit event. See NotionalPercentageOutstanding(1451). */\n    OriginalNotionalPercentageOutstanding: 1452,\n    /** See RestructuringType(1449) */\n    UnderlyingRestructuringType: 1453,\n    /** See Seniority(1450) */\n    UnderlyingSeniority: 1454,\n    /** See NotionalPercentageOutstanding(1451) */\n    UnderlyingNotionalPercentageOutstanding: 1455,\n    /** See OriginalNotionalPercentageOutstanding(1452) */\n    UnderlyingOriginalNotionalPercentageOutstanding: 1456,\n    /** Lower bound percentage of the loss that the tranche can endure. */\n    AttachmentPoint: 1457,\n    /** Upper bound percentage of the loss the tranche can endure. */\n    DetachmentPoint: 1458,\n    /** See AttachmentPoint(1457). */\n    UnderlyingAttachmentPoint: 1459,\n    /** See DetachmentPoint(1458). */\n    UnderlyingDetachmentPoint: 1460,\n    /** Identifies the number of target parties identified in a mass action. */\n    NoTargetPartyIDs: 1461,\n    /** PartyID value within an target party repeating group. */\n    TargetPartyID: 1462,\n    /** PartyIDSource value within an target party repeating group.\n        Same values as PartyIDSource (447) */\n    TargetPartyIDSource: 1463,\n    /** PartyRole value within an target party repeating group.\n        Same values as PartyRole (452) */\n    TargetPartyRole: 1464,\n    /** Specifies an identifier for a Security List */\n    SecurityListID: 1465,\n    /** Specifies a reference from one Security List to another. Used to support a hierarchy of Security Lists. */\n    SecurityListRefID: 1466,\n    /** Specifies a description or name of a Security List. */\n    SecurityListDesc: 1467,\n    /** Byte length of encoded (non-ASCII characters) EncodedSecurityListDesc(1469) field. */\n    EncodedSecurityListDescLen: 1468,\n    /** Encoded (non-ASCII characters) representation of the SecurityListDesc(1467) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the SecurityListDesc(1467) field. */\n    EncodedSecurityListDesc: 1469,\n    /** Specifies a type of Security List. */\n    SecurityListType: 1470,\n    /** Specifies a specific source for a SecurityListType. Relevant when a certain type can be provided from various sources. */\n    SecurityListTypeSource: 1471,\n    /** Unique identifier for a News message */\n    NewsID: 1472,\n    /** Category of news message. */\n    NewsCategory: 1473,\n    /** The national language in which the news item is provided. */\n    LanguageCode: 1474,\n    /** Number of News reference items */\n    NoNewsRefIDs: 1475,\n    /** Reference to another News message identified by NewsID(1474). */\n    NewsRefID: 1476,\n    /** Type of reference to another News(35=B) message item. */\n    NewsRefType: 1477,\n    /** Specifies how the strike price is determined at the point of option exercise. The strike may be fixed throughout the life of the option, set at expiration to the value of the underlying, set to the average value of the underlying , or set to the optimal value of the underlying. */\n    StrikePriceDeterminationMethod: 1478,\n    /** Specifies the boundary condition to be used for the strike price relative to the underlying price at the point of option exercise. */\n    StrikePriceBoundaryMethod: 1479,\n    /** Used in combination with StrikePriceBoundaryMethod to specify the percentage of the strike price in relation to the underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls. */\n    StrikePriceBoundaryPrecision: 1480,\n    /** Specifies how the underlying price is determined at the point of option exercise. The underlying price may be set to the current settlement price, set to a special reference, set to the optimal value of the underlying during the defined period (\"Look-back\") or set to the average value of the underlying during the defined period (\"Asian option\"). */\n    UnderlyingPriceDeterminationMethod: 1481,\n    /** Indicates the type of valuation method or payout trigger for an in-the-money option. */\n    OptPayoutType: 1482,\n    /** Number of complex event occurrences. */\n    NoComplexEvents: 1483,\n    /** Identifies the type of complex event. */\n    ComplexEventType: 1484,\n    /** Cash amount indicating the pay out associated with an event. For binary options this is a fixed amount. */\n    ComplexOptPayoutAmount: 1485,\n    /** Specifies the price at which the complex event takes effect. Impact of the event price is determined by the ComplexEventType(1484). */\n    ComplexEventPrice: 1486,\n    /** Specifies the boundary condition to be used for the event price relative to the underlying price at the point the complex event outcome takes effect as determined by the ComplexEventPriceTimeType. */\n    ComplexEventPriceBoundaryMethod: 1487,\n    /** Used in combination with ComplexEventPriceBoundaryMethod to specify the percentage of the strike price in relation to the underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls. */\n    ComplexEventPriceBoundaryPrecision: 1488,\n    /** Specifies when the complex event outcome takes effect. The outcome of a complex event is a payout or barrier action as specified by the ComplexEventType(1484). */\n    ComplexEventPriceTimeType: 1489,\n    /** Specifies the condition between complex events when more than one event is specified.\n        Multiple barrier events would use an \"or\" condition since only one can be effective at a given time. A set of digital range events would use an \"and\" condition since both conditions must be in effect for a payout to result. */\n    ComplexEventCondition: 1490,\n    /** Number of complex event date occurrences for a given complex event. */\n    NoComplexEventDates: 1491,\n    /** Specifies the start date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options\n        ComplexEventStartDate must always be less than or equal to ComplexEventEndDate. */\n    ComplexEventStartDate: 1492,\n    /** Specifies the end date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options\n        ComplexEventEndDate must always be greater than or equal to ComplexEventStartDate. */\n    ComplexEventEndDate: 1493,\n    /** Number of complex event time occurrences for a given complex event date\n        The default in case of an absence of time fields is 00:00:00-23:59:59. */\n    NoComplexEventTimes: 1494,\n    /** Specifies the start time of the time range on which a complex event date is effective.\n        ComplexEventStartTime must always be less than or equal to ComplexEventEndTime. */\n    ComplexEventStartTime: 1495,\n    /** Specifies the end time of the time range on which a complex event date is effective.\n        ComplexEventEndTime must always be greater than or equal to ComplexEventStartTime. */\n    ComplexEventEndTime: 1496,\n    /** Unique identifier for the stream assignment request provided by the requester. */\n    StreamAsgnReqID: 1497,\n    /** Type of stream assignment request. */\n    StreamAsgnReqType: 1498,\n    /** Number of assignment requests. */\n    NoAsgnReqs: 1499,\n    /** The identifier or name of the price stream. */\n    MDStreamID: 1500,\n    /** Unique identifier of the stream assignment report provided by the respondent. */\n    StreamAsgnRptID: 1501,\n    /** Reason code for stream assignment request reject. */\n    StreamAsgnRejReason: 1502,\n    /** Type of acknowledgement. */\n    StreamAsgnAckType: 1503,\n    /** See TransactTime(60) */\n    RelSymTransactTime: 1504,\n    /** Unique identifier for PartyDetailsListRequest. */\n    PartyDetailsListRequestID: 1505,\n    /** Used to represent the trade ID for each side of the trade assigned by an intermediary. */\n    SideTradeID: 1506,\n    /** Used to capture the original trade id for each side of a trade undergoing novation to a standardized model. */\n    SideOrigTradeID: 1507,\n    /** Number of requested party roles. */\n    NoRequestedPartyRoles: 1508,\n    /** Identifies the type or role of party that has been requested. */\n    RequestedPartyRole: 1509,\n    /** Identifier for the PartyDetailsListReport and the PartyDetailsListUpdateReport. */\n    PartyDetailsListReportID: 1510,\n    /** Result of a request as identified by the appropriate request ID field */\n    RequestResult: 1511,\n    /** Total number of PartyListGrp returned. */\n    TotNoParties: 1512,\n    /** A sentence or phrase pertenant to the trade, not a reference to an external document. E.g. \"To be registered with the U.S. Environmental Protection Agency, Acid Rain Division, SO2 Allowance Tracking System\" */\n    DocumentationText: 1513,\n    /** Number of party relationships. */\n    NoPartyRelationships: 1514,\n    /** Used to specify the type of the party relationship. */\n    PartyRelationship: 1515,\n    /** Number of party alternative identifiers. */\n    NoPartyDetailAltID: 1516,\n    /** An alternate party identifier for the party specified in PartyDetailID(1691) */\n    PartyDetailAltID: 1517,\n    /** Identifies the source of the PartyDetailAltID(1517) value. */\n    PartyDetailAltIDSource: 1518,\n    /** Number of party detail alternate sub-identifiers. */\n    NoPartyDetailAltSubIDs: 1519,\n    /** Sub-identifier for the party specified in PartyDetailAltID(1517). */\n    PartyDetailAltSubID: 1520,\n    /** Type of PartyDetailAltSubID(1520) value. */\n    PartyDetailAltSubIDType: 1521,\n    /** Used to specify the differential price when reporting the individual leg of a spread trade. Both leg price and differential price may be provided on such a report. Note that MultiLegReportingType(442) will be set to 2 (Individual leg of a multi-leg security) in this case.\n        Also used in pricing Trade at Settlement (TAS) and Trade At Marker (TAM) contracts for which the value is the negotiated currency offset either at settlement (TAS) or at time specified in the product definition (TAM). The final contract price is specified in LastPx(31). */\n    DifferentialPrice: 1522,\n    /** Used to indicate the status of the trade submission (not the trade report) */\n    TrdAckStatus: 1523,\n    /** Default currency in which the price is quoted. Defined at the instrument level. Used in place of Currency (tag 15) to express the currency of a product when the former is implemented as the FX dealt currency. */\n    PriceQuoteCurrency: 1524,\n    /** Byte length of encoded (non-ASCII characters) EncodedDocumentationText(1527) field. */\n    EncodedDocumentationTextLen: 1525,\n    /** Default currency in which the price is quoted. Defined at the instrument level. Used in place of Currency (tag 15) to express the currency of a product when the former is implemented as the FX dealt currency. */\n    UnderlyingPriceQuoteCurrency: 1526,\n    /** Encoded (non-ASCII characters) representation of the DocumentationText(1513) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the DocumentationText(1513) field. */\n    EncodedDocumentationText: 1527,\n    /** Default currency in which the price is quoted. Defined at the instrument level. Used in place of Currency (tag 15) to express the currency of a product when the former is implemented as the FX dealt currency. */\n    LegPriceQuoteCurrency: 1528,\n    /** Number of risk limits with associated warning levels. */\n    NoRiskLimitTypes: 1529,\n    /** Used to specify the type of risk limit amount or position limit quantity or margin requirement amounts. */\n    RiskLimitType: 1530,\n    /** Specifies the risk limit amount. */\n    RiskLimitAmount: 1531,\n    /** Used to specify the currency of the risk limit amount. */\n    RiskLimitCurrency: 1532,\n    /** The area to which risk limit is applicable. This can be a trading platform or an offering. */\n    RiskLimitPlatform: 1533,\n    /** Number of risk instrument scopes. */\n    NoRiskInstrumentScopes: 1534,\n    /** Operator to perform on the instrument(s) specified */\n    InstrumentScopeOperator: 1535,\n    /** Used to limit instrument scope to specified symbol.\n        See Symbol(55) field for description. */\n    InstrumentScopeSymbol: 1536,\n    /** Used to limit instrument scope to specified symbol suffix.\n        See SymbolSfx(65) field for description. */\n    InstrumentScopeSymbolSfx: 1537,\n    /** Used to limit instrument scope to specified security identifier.\n        See SecurityID(48) field for description. */\n    InstrumentScopeSecurityID: 1538,\n    /** Used to limit instrument scope to specified security identifier source.\n        See SecurityIDSource(22) field for description. */\n    InstrumentScopeSecurityIDSource: 1539,\n    /** Number of alternate security identifier for the specified InstrumentScopeSecurityID(1538). */\n    NoInstrumentScopeSecurityAltID: 1540,\n    /** Used to limit instrument scope to specified security alternate identifier.\n        See SecurityAltID(455) field for description. */\n    InstrumentScopeSecurityAltID: 1541,\n    /** Used to limit instrument scope to specified security alternate identifier source.\n        See SecurityAltIDSource(456) field for complete definition. */\n    InstrumentScopeSecurityAltIDSource: 1542,\n    /** Used to limit instrument scope to specified instrument product category.\n        See Product (460) field for description. */\n    InstrumentScopeProduct: 1543,\n    /** Used to limit instrument scope to specified product complex.\n        See ProductComplex(1227) field for description. */\n    InstrumentScopeProductComplex: 1544,\n    /** Used to limit instrument scope to specified security group.\n        See SecurityGroup(1151) field for description. */\n    InstrumentScopeSecurityGroup: 1545,\n    /** Used to limit instrument scope to specified CFICode.\n        See CFICode(461) field for description. */\n    InstrumentScopeCFICode: 1546,\n    /** Used to limit instrument scope to specified security type.\n        See SecurityType(167) field for description). */\n    InstrumentScopeSecurityType: 1547,\n    /** Used to limit instrument scope to specified security sub-type.\n        See SecuritySubType(762) field for description. */\n    InstrumentScopeSecuritySubType: 1548,\n    /** Used to limit instrument scope to specified maturity month and year.\n        See MaturityMonthYear(200) field for description. */\n    InstrumentScopeMaturityMonthYear: 1549,\n    /** Used to limit instrument scope to specified maturity time.\n        See MaturityTime(1079) field for description. */\n    InstrumentScopeMaturityTime: 1550,\n    /** Used to limit instrument scope to specified restructuring type.\n        See RestructuringType(1449) field for description. */\n    InstrumentScopeRestructuringType: 1551,\n    /** Used to limit instrument scope to specified seniority type.\n        See Seniority(1450) field for description. */\n    InstrumentScopeSeniority: 1552,\n    /** Used to limit instrument scope to puts or calls.\n        See PutOrCall(201) field for description. */\n    InstrumentScopePutOrCall: 1553,\n    /** Used to limit instrument scope to securities that can be defined using flexible terms or not.\n        See FlexibleIndicator(1244) field for description. */\n    InstrumentScopeFlexibleIndicator: 1554,\n    /** Used to limit instrument scope to specified coupon rate.\n        See CouponRate(223) field for description. */\n    InstrumentScopeCouponRate: 1555,\n    /** Used to limit instrument scope to specified security description.\n        See SecurityDesc(107) field for description. */\n    InstrumentScopeSecurityDesc: 1556,\n    /** Used to limit instrument scope to specified settlement type.\n        See SettlType(63) field for description. */\n    InstrumentScopeSettlType: 1557,\n    /** Multiplier applied to the transaction amount for comparison with risk limits. Default if not specified is 1.0. */\n    RiskInstrumentMultiplier: 1558,\n    /** Number of risk warning levels. */\n    NoRiskWarningLevels: 1559,\n    /** Percent of risk limit at which a warning is issued. */\n    RiskWarningLevelPercent: 1560,\n    /** Name or error message associated with the risk warning level. */\n    RiskWarningLevelName: 1561,\n    /** Number of related party detail identifiers. */\n    NoRelatedPartyDetailID: 1562,\n    /** Party identifier for the party related to the party specified in PartyDetailID(1691). */\n    RelatedPartyDetailID: 1563,\n    /** Identifies the source of the RelatedPartyDetailID(1563). */\n    RelatedPartyDetailIDSource: 1564,\n    /** Identifies the type or role of the RelatedPartyDetailID(1563) specified. */\n    RelatedPartyDetailRole: 1565,\n    /** Number of related party detail sub-identifiers. */\n    NoRelatedPartyDetailSubIDs: 1566,\n    /** Sub-identifier for the party specified in RelatedPartyID(1563). */\n    RelatedPartyDetailSubID: 1567,\n    /** Type of RelatedPartyDetailSubID(1567) value. */\n    RelatedPartyDetailSubIDType: 1568,\n    /** Number of related party detail alternate identifiers. */\n    NoRelatedPartyDetailAltID: 1569,\n    /** An alternate party identifier for the party specified in RelatedPartyID(1563). */\n    RelatedPartyDetailAltID: 1570,\n    /** Identifies the source of the RelatedPartyDetailAltID(1570) value. */\n    RelatedPartyDetailAltIDSource: 1571,\n    /** Number of related party detail alternate sub-identifiers. */\n    NoRelatedPartyDetailAltSubIDs: 1572,\n    /** Sub-identifier for the party specified in RelatedPartyDetailAltID(1570). */\n    RelatedPartyDetailAltSubID: 1573,\n    /** Type of RelatedPartyDetailAltSubID(1573) value. */\n    RelatedPartyDetailAltSubIDType: 1574,\n    /** The sub-classification or notional schedule type of the swap. */\n    SwapSubClass: 1575,\n    /** Default currency in which the price is quoted. Defined at the instrument level. Used in place of Currency(tag 15) to express the currency of a product when the former is implemented as the FX dealt currency.\n        See PriceQuoteCurrency(1524) for complete definition. */\n    DerivativePriceQuoteCurrency: 1576,\n    /** In an outright or forward commodity trade that is cash settled this is the index used to determine the cash payment. */\n    SettlRateIndex: 1577,\n    /** Byte length of encoded (non-ASCII characters) EncodedEventText(868) fied. */\n    EncodedEventTextLen: 1578,\n    /** Encoded (non-ASCII characters) representation of the EventText(868) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the EventText(868) field. */\n    EncodedEventText: 1579,\n    /** This is an optional qualifying attribute of SettlRateIndex(1577) such as the delivery zone for an electricity contract. */\n    SettlRateIndexLocation: 1580,\n    /** Description of the option expiration. */\n    OptionExpirationDesc: 1581,\n    /** Number of Security Classifications. */\n    NoSecurityClassifications: 1582,\n    /** Allows classification of instruments according to a set of high level reasons. Classification reasons describe the classes in which the instrument participates. */\n    SecurityClassificationReason: 1583,\n    /** Specifies the product classification value which further details the manner in which the instrument participates in the class. */\n    SecurityClassificationValue: 1584,\n    /** Specifies the reason for an amount type when reported on a position. Useful when multiple instances of the same amount type are reported. */\n    PosAmtReason: 1585,\n    /** Number of TrdInstrmtLegPosAmt values. */\n    NoLegPosAmt: 1586,\n    /** Leg position amount. */\n    LegPosAmt: 1587,\n    /** Type of leg position amount. */\n    LegPosAmtType: 1588,\n    /** Leg position currency. */\n    LegPosCurrency: 1589,\n    /** Specifies the reason for an amount type when reported on a position. Useful when multiple instances of the same amount type are reported. */\n    LegPosAmtReason: 1590,\n    /** Type of quantity specified in LegQty field. LegContractMultiplier (614) is required when LegQtyType = 1 (Contracts). LegUnitOfMeasure (tag 999) and LegTimeUnit (tag 1001) are required when LegQtyType = 2 (Units of Measure per Time Unit). LegQtyType can be different for each leg. */\n    LegQtyType: 1591,\n    /** Used to calculate the present value of an amount to be paid in the future. */\n    DiscountFactor: 1592,\n    /** Contains the IndividualAllocId (tag 467) value of the allocation that is being offset as a result of a new allocation. This would be an optional field that would only be populated in the case of an allocation of an allocation (as well as any subsequent allocations). This wouldn\u2019t be populated for an initial allocation since an allocation id is not supplied on default (initial) allocations. */\n    ParentAllocID: 1593,\n    /** Represents the product group of a leg.This is useful in conveying multi-leg instruments where the legs may participate in separate security groups. */\n    LegSecurityGroup: 1594,\n    /** Risk adjusted price used to calculate variation margin on a position. */\n    PositionContingentPrice: 1595,\n    /** Alternate clearing price */\n    ClearingTradePrice: 1596,\n    /** Alternate clearing price for the side being reported. */\n    SideClearingTradePrice: 1597,\n    /** Indicates to recipient whether trade is clearing at execution prices LastPx(tag 31) or alternate clearing prices SideClearingTradePrice(tag 1597). */\n    SideClearingTradePriceType: 1598,\n    /** Price Differential between the front and back leg of a spread or complex instrument. */\n    SidePriceDifferential: 1599,\n    /** Provides the name of the infrastructure component being used for session level communication. Normally this would be the FIX Engine or FIX Gateway product name. */\n    FIXEngineName: 1600,\n    /** Provides the version of the infrastructure component. */\n    FIXEngineVersion: 1601,\n    /** Provides the name of the vendor providing the infrastructure component. */\n    FIXEngineVendor: 1602,\n    /** Provides the name of the application system being used to generate FIX application messages. This will normally be a trading system, OMS, or EMS. */\n    ApplicationSystemName: 1603,\n    /** Provides the version of the application system being used to initiate FIX application messages. */\n    ApplicationSystemVersion: 1604,\n    /** Provides the vendor of the application system. */\n    ApplicationSystemVendor: 1605,\n    /** Represents the total number of simple instruments that make up a multi-legged security. Complex spread instruments may be constructed of legs which themselves are multi-leg instruments. */\n    NumOfSimpleInstruments: 1606,\n    /** Identifies the reason a security definition request is being rejected. */\n    SecurityRejectReason: 1607,\n    /** Used to convey the initially requested display quantity specified in DisplayQty(1138) on order entry and modification messages in ExecutionReport message. Applicable only in ExecutionReport message where DisplayQty(1138) is the currently displayed quantity and the requested display quantity of the order also needs to be conveyed. The values of the two fields are different as soon as the order is partially filled and also after a refresh of the order whenever DisplayMethod(1084) is not 1=Initial. */\n    InitialDisplayQty: 1608,\n    /** Indicates whether a message was queued as a result of throttling. */\n    ThrottleStatus: 1609,\n    /** Indicates number of repeating groups to follow. */\n    NoThrottles: 1610,\n    /** Action to take should throttle limit be exceeded. */\n    ThrottleAction: 1611,\n    /** Type of throttle. */\n    ThrottleType: 1612,\n    /** Maximum number of messages allowed by the throttle. May be a rate limit or a limit on the number of outstanding requests. */\n    ThrottleNoMsgs: 1613,\n    /** Value of the time interval in which the rate throttle is applied. */\n    ThrottleTimeInterval: 1614,\n    /** Units in which ThrottleTimeInterval is expressed. Uses same enumerations as OrderDelayUnit(1429). */\n    ThrottleTimeUnit: 1615,\n    /** Used to limit instrument scope to specified security exchange.\n        See SecurityExchange(207) field for description. */\n    InstrumentScopeSecurityExchange: 1616,\n    /** The type of assignment being affected in the Stream Assignment Report. */\n    StreamAsgnType: 1617,\n    /** Number of ThrottleMsgType fields. */\n    NoThrottleMsgType: 1618,\n    /** The MsgType (35) of the FIX message being referenced. */\n    ThrottleMsgType: 1619,\n    /** Byte length of encoded (non-ASCII characters) InstrumentScopeEncodedSecurityDesc (1621) field */\n    InstrumentScopeEncodedSecurityDescLen: 1620,\n    /** Encoded (non-ASCII characters) representation of the InstrumentScopeSecurityDesc(1556) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the InstrumentScopeSecurityDesc(1556) field. */\n    InstrumentScopeEncodedSecurityDesc: 1621,\n    /** Yield Type, using same values as YieldType (235) */\n    FillYieldType: 1622,\n    /** Yield Percentage, using same values as Yield (236) */\n    FillYield: 1623,\n    /** Number of Instructions in the \\<MatchingInstructions\\> repeating group. */\n    NoMatchInst: 1624,\n    /** Matching Instruction for the order. */\n    MatchInst: 1625,\n    /** Existing FIX field to be applied as a matching criteria to the instruction, bilaterally agreed between parties. */\n    MatchAttribTagID: 1626,\n    /** Value of MatchAttribTagID(1626) on which to apply the matching instruction. */\n    MatchAttribValue: 1627,\n    /** Defines the scope of TriggerAction(1101) when it is set to \"cancel\" (3). */\n    TriggerScope: 1628,\n    /** This is the time in seconds of a \"Good for Time\" (GFT) TimeInForce.\n        Positive integer value which represents the time is seconds in which the new order remains active in the market before it is automatically cancelled (e.g. expired).\n        Bi-lateral agreements will dictate the maximum value of this field. It is assumed that most systems will impose a max limit of 86,400 seconds (i.e. 24 hours).\n        For Quotes: The period of time a quoted price is tradable(i.e. on-the-wire) before it becomes indicative (i.e. off-the-wire). */\n    ExposureDuration: 1629,\n    /** The number of limit amount entries. */\n    NoLimitAmts: 1630,\n    /** Identifies the type of limit amount expressed in LastLimitAmt(1632) and LimitAmtRemaining(1633). */\n    LimitAmtType: 1631,\n    /** The amount that has been drawn down against the counterparty for a given trade. The type of limit is specified in LimitAmtType(1631).\n        Bilateral agreements dictate the units and maximum value of this field. */\n    LastLimitAmt: 1632,\n    /** The remaining limit amount available between the counterparties. The type of limit is specified in LimitAmtType(1631).\n        Bilateral agreements dictate the units and maximum value of this field. */\n    LimitAmtRemaining: 1633,\n    /** Indicates the currency that the limit amount is specified in. */\n    LimitAmtCurrency: 1634,\n    /** Unique identifier of the MarginRequirementInquiry. */\n    MarginReqmtInqID: 1635,\n    /** Number of margin requirement inquiry qualifiers. */\n    NoMarginReqmtInqQualifier: 1636,\n    /** Qualifier for MarginRequirementInquiry to identify a specific report. */\n    MarginReqmtInqQualifier: 1637,\n    /** Type of MarginRequirementReport. */\n    MarginReqmtRptType: 1638,\n    /** Identifier for group of instruments with similar risk profile. */\n    MarginClass: 1639,\n    /** Status of MarginRequirementInquiry. */\n    MarginReqmtInqStatus: 1640,\n    /** Result returned in response to MarginRequirementInquiry. */\n    MarginReqmtInqResult: 1641,\n    /** Identifier for the MarginRequirementReport message. */\n    MarginReqmtRptID: 1642,\n    /** Number of margin requirement amounts. */\n    NoMarginAmt: 1643,\n    /** Type of margin requirement amount being specified. */\n    MarginAmtType: 1644,\n    /** Amount of margin requirement. */\n    MarginAmt: 1645,\n    /** Currency of the MarginAmt(1645). */\n    MarginAmtCcy: 1646,\n    /** Number of related instruments */\n    NoRelatedInstruments: 1647,\n    /** The type of instrument relationship */\n    RelatedInstrumentType: 1648,\n    /** Ticker symbol of the related security. Common \"human understood\" representation of the security. */\n    RelatedSymbol: 1649,\n    /** Related security identifier value of RelatedSecurityIDSource(1651) type. */\n    RelatedSecurityID: 1650,\n    /** Identifies class or source of the RelatedSecurityID (1650) value. */\n    RelatedSecurityIDSource: 1651,\n    /** Security type of the related instrument. */\n    RelatedSecurityType: 1652,\n    /** Expiration date for the related instrument contract. */\n    RelatedMaturityMonthYear: 1653,\n    /** Used to specify the portion of the short contract quantity that is considered covered (e.g. used for short option position). */\n    CoveredQty: 1654,\n    /** Indicates market maker participation in security. */\n    MarketMakerActivity: 1655,\n    /** Number of instrument scopes. */\n    NoInstrumentScopes: 1656,\n    /** Number of requesting party identifiers. */\n    NoRequestingPartyIDs: 1657,\n    /** Party identifier for the requesting party. */\n    RequestingPartyID: 1658,\n    /** Identifies the source of the RequestingPartyID(1658) value. */\n    RequestingPartyIDSource: 1659,\n    /** Identifies the type or role of the RequestingPartyID(1658) specified. */\n    RequestingPartyRole: 1660,\n    /** Number of requesting party sub-identifiers. */\n    NoRequestingPartySubIDs: 1661,\n    /** Sub-identifier for the party specified in RequestingPartyID(1658). */\n    RequestingPartySubID: 1662,\n    /** Type of RequestingPartySubID(1662) value. */\n    RequestingPartySubIDType: 1663,\n    /** Byte length of encoded (non-ASCII characters) EncodedRejectText(1665) field. */\n    EncodedRejectTextLen: 1664,\n    /** Encoded (non-ASCII characters) representation of the RejectText(1328) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the RejectText(1328) field. */\n    EncodedRejectText: 1665,\n    /** Unique identifier for the PartyRiskLimitsRequest */\n    RiskLimitRequestID: 1666,\n    /** Identifier for the PartyRiskLimitsReport */\n    RiskLimitReportID: 1667,\n    /** Number of risk limit types requested. */\n    NoRequestedRiskLimitType: 1668,\n    /** Number of risk limits for different instrument scopes. */\n    NoRiskLimits: 1669,\n    /** Unique reference identifier for a specific risk limit defined for the specified party. */\n    RiskLimitID: 1670,\n    /** Number of party details. */\n    NoPartyDetails: 1671,\n    /** Indicates the status of the party identified with PartyDetailID(1691). */\n    PartyDetailStatus: 1672,\n    /** Identifies the market to which the matching instruction applies. */\n    MatchInstMarketID: 1673,\n    /** Qualifies the value of PartyDetailRole(1693). */\n    PartyDetailRoleQualifier: 1674,\n    /** Qualifies the value of RelatedPartyRole(1565) */\n    RelatedPartyDetailRoleQualifier: 1675,\n    /** Number of party updates. */\n    NoPartyUpdates: 1676,\n    /** Number of party risk limits. */\n    NoPartyRiskLimits: 1677,\n    /** Byte length of encoded (non-ASCII characters) EncodedOptionExpirationDesc(1697) field. */\n    EncodedOptionExpirationDescLen: 1678,\n    /** Identifies the trading status applicable to a group of instruments. */\n    SecurityMassTradingStatus: 1679,\n    /** Identifies an event related to the mass trading status. */\n    SecurityMassTradingEvent: 1680,\n    /** Denotes the reason for the Opening Delay or Trading halt of a group of securities. */\n    MassHaltReason: 1681,\n    /** Identifies the trading status applicable to the instrument in the market data message. */\n    MDSecurityTradingStatus: 1682,\n    /** Describes a sub-class for a given class of service defined by MDFeedType (1022) */\n    MDSubFeedType: 1683,\n    /** Denotes the reason for the Opening Delay or Trading Halt. */\n    MDHaltReason: 1684,\n    /** Describes action recipient should take if a throttle limit were exceeded. */\n    ThrottleInst: 1685,\n    /** Indicates whether a message decrements the number of outstanding requests, e.g. one where ThrottleType = Outstanding Requests. */\n    ThrottleCountIndicator: 1686,\n    /** Indicates whether a restriction applies to short selling a security. */\n    ShortSaleRestriction: 1687,\n    /** Indicates the reason a short sale order is exempted from applicable regulation (e.g. Reg SHO addendum (b)(1) in the U.S.). */\n    ShortSaleExemptionReason: 1688,\n    /** Indicates the reason a short sale is exempted from applicable regulation (e.g. Reg SHO addendum (b)(1) in the U.S.) */\n    LegShortSaleExemptionReason: 1689,\n    /** Indicates the reason a short sale is exempted from applicable regulation (e.g. Reg SHO addendum (b)(1) in the U.S.) */\n    SideShortSaleExemptionReason: 1690,\n    /** Party identifier within Parties Reference Data messages. */\n    PartyDetailID: 1691,\n    /** Source of the identifier of the PartyDetailID(1691) specified. */\n    PartyDetailIDSource: 1692,\n    /** Identifies the type or role of PartyDetailID(1691) specified. */\n    PartyDetailRole: 1693,\n    /** Number of party detail sub-identifiers. */\n    NoPartyDetailSubIDs: 1694,\n    /** Sub-identifier for the party specified in PartyDetailID(1691). */\n    PartyDetailSubID: 1695,\n    /** Type of PartyDetailSubID(1695) value. */\n    PartyDetailSubIDType: 1696,\n    /** Encoded (non-ASCII characters) representation of the OptionExpirationDesc(1581) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the OptionExpirationDesc(1581). */\n    EncodedOptionExpirationDesc: 1697,\n    /** Used to express the unit of measure (UOM) of the price if different from the contract. */\n    StrikeUnitOfMeasure: 1698,\n    /** Unique identifier for the AccountSummaryReport(35=CQ). */\n    AccountSummaryReportID: 1699,\n    /** Number of settlement amount entries. */\n    NoSettlementAmounts: 1700,\n    /** The amount of settlement. */\n    SettlementAmount: 1701,\n    /** The currency of the reported settlement amount. */\n    SettlementAmountCurrency: 1702,\n    /** Number of collateral amount entries. */\n    NoCollateralAmounts: 1703,\n    /** Currency value currently attributed to the collateral. */\n    CurrentCollateralAmount: 1704,\n    /** Currency of the collateral; optional, defaults to the Settlement Currency if not specified. */\n    CollateralCurrency: 1705,\n    /** Type of collateral on deposit being reported. */\n    CollateralType: 1706,\n    /** Number of pay collect entries. */\n    NoPayCollects: 1707,\n    /** Category describing the reason for funds paid to, or the funds collected from the clearing firm. */\n    PayCollectType: 1708,\n    /** Currency denomination of value in PayAmount(1710) and CollectAmount(1711). If not specified, default to currency specified in SettlementAmountCurrency(1702). */\n    PayCollectCurrency: 1709,\n    /** Amount to be paid by the clearinghouse to the clearing firm. */\n    PayAmount: 1710,\n    /** Amount to be collected by the clearinghouse from the clearing firm. */\n    CollectAmount: 1711,\n    /** Market segment associated with the pay collect amount. */\n    PayCollectMarketSegmentID: 1712,\n    /** Market associated with the pay collect amount. */\n    PayCollectMarketID: 1713,\n    /** Market segment associated with the margin amount. */\n    MarginAmountMarketSegmentID: 1714,\n    /** Market associated with the margin amount */\n    MarginAmountMarketID: 1715,\n    /** Indicates the currency of the unit of measure. Conditionally required when UnitOfMeasure(996) = Ccy */\n    UnitOfMeasureCurrency: 1716,\n    /** Indicates the currency of the price unit of measure. Conditionally required when PriceUnitOfMeasure(1191) = Ccy */\n    PriceUnitOfMeasureCurrency: 1717,\n    /** Indicates the currency of the underlying unit of measure. Conditionally required when UnderlyingUnitOfMeasure(998) = Ccy */\n    UnderlyingUnitOfMeasureCurrency: 1718,\n    /** Indicates the currency of the underlying price unit of measure. Conditionally required when UnderlyingPriceUnitOfMeasure(1424) = Ccy */\n    UnderlyingPriceUnitOfMeasureCurrency: 1719,\n    /** Indicates the currency of the unit of measure. Conditionally required when LegUnitOfMeasure(999) = Ccy */\n    LegUnitOfMeasureCurrency: 1720,\n    /** Indicates the currency of the price unit of measure. Conditionally required when LegPriceUnitOfMeasure(1421) = Ccy */\n    LegPriceUnitOfMeasureCurrency: 1721,\n    /** Indicates the currency of the unit of measure.\n        Conditionally required when DerivativeUnitOfMeasure(1269) = Ccy.\n        See UnitOfMeasureCurrency(1716) for complete definition. */\n    DerivativeUnitOfMeasureCurrency: 1722,\n    /** Indicates the currency of the price unit of measure.\n        Conditionally required when DerivativePriceUnitOfMeasure(1315) = Ccy.\n        See PriceUnitOfMeasureCurrency(1717) for complete definition. */\n    DerivativePriceUnitOfMeasureCurrency: 1723,\n    /** Identifies the origin of the order. */\n    OrderOrigination: 1724,\n    /** An identifier representing the department or desk within the firm that originated the order. */\n    OriginatingDeptID: 1725,\n    /** An identifier representing the department or desk within the firm that received the order. */\n    ReceivingDeptID: 1726,\n    /** The identifier of the information barrier in place for a trading unit that will meet the criteria of the \"no-knowledge\" exception in FINRA Rule 5320.02. */\n    InformationBarrierID: 1727,\n    /** Firm assigned group allocation entity identifier. */\n    FirmGroupID: 1728,\n    /** Allocation identifier assigned by the Firm submitting the allocation for an individual allocation instruction (as opposed to the overall message level identifier). */\n    FirmMnemonic: 1729,\n    /** Intended to be used by a central counterparty to assign an identifier to allocations of trades for the same instrument traded at the same price. */\n    AllocGroupID: 1730,\n    /** Used by submitting firm to group trades being allocated into an average price group. The trades in average price group will be used to calculate an average price for the group. */\n    AvgPxGroupID: 1731,\n    /** Firm reference information, usually internal information, that is part of the initial message. The information would not be carried forward (e.g to Take-up Firm) and preserved with the transaction. */\n    FirmAllocText: 1732,\n    /** Byte length of encoded (non-ASCII characters) EncodedFirmAllocText(1734) field. */\n    EncodedFirmAllocTextLen: 1733,\n    /** Encoded (non-ASCII characters) representation of the FirmAllocText(1732) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) represention should also be specified in FirmAllocText(1732) field. */\n    EncodedFirmAllocText: 1734,\n    /** An indicator to override the normal procedure to roll up allocations for the same take-up firm. */\n    AllocationRollupInstruction: 1735,\n    /** Indicates the total quantity of an allocation group. Includes any allocated quantity. */\n    AllocGroupQuantity: 1736,\n    /** Indicates the remaining quantity of an allocation group that has not yet been allocated. */\n    AllocGroupRemainingQuantity: 1737,\n    /** Identifies the status of a reversal transaction. */\n    AllocReversalStatus: 1738,\n    /** Type of reference obligation for credit derivatives contracts. */\n    ObligationType: 1739,\n    /** Method used for negotiation of contract price. */\n    TradePriceNegotiationMethod: 1740,\n    /** Type of price used to determine upfront payment for swaps contracts. */\n    UpfrontPriceType: 1741,\n    /** Price used to determine upfront payment for swaps contracts. */\n    UpfrontPrice: 1742,\n    /** Price used to determine upfront payment for swaps contracts reported for a deal (trade). */\n    LastUpfrontPrice: 1743,\n    /** Indicates whether application level recovery is needed. */\n    ApplLevelRecoveryIndicator: 1744,\n    /** The market data entry identifier of the bid side of a quote */\n    BidMDEntryID: 1745,\n    /** The market data entry identifier of the offer side of a quote. */\n    OfferMDEntryID: 1746,\n    /** Marketplace assigned quote identifier for the bid side. Can be used to indicate priority. */\n    BidQuoteID: 1747,\n    /** Marketplace assigned quote identifier for the offer side. Can be used to indicate priority. */\n    OfferQuoteID: 1748,\n    /** Specifies the total bid size. */\n    TotalBidSize: 1749,\n    /** Specifies the total offer size. */\n    TotalOfferSize: 1750,\n    /** Assigned by the party which accepts the quote. Can be used to provide the quote identifier assigned by an exchange, marketplace or executing system. */\n    SecondaryQuoteID: 1751,\n    /** An opaque identifier used to communicate the custodian\u2019s identifier for the lot. It is expected that this information would be provided by the custodian as part of a reconciliation process that occurs before trading. */\n    CustodialLotID: 1752,\n    /** The effective acquisition date of the lot that would be used for gain-loss trade lot reporting. The versus purchase date used to identify the lot in situations where a custodial lot identifier is not available. */\n    VersusPurchaseDate: 1753,\n    /** The versus purchase price used to identify the lot in situations where a custodial lot identifier is not available. The value should be calculated based on current cost basis / quantity held. */\n    VersusPurchasePrice: 1754,\n    /** The amount that the current shares are worth. If this lot was liquidated, the total gain/loss for a trade is equal to the trade amount minus the current cost basis. */\n    CurrentCostBasis: 1755,\n    /** An opaque identifier used to communicate the custodian\u2019s identifier for the lot. It is expected that this information would be provided by the custodian as part of a reconciliation process that occurs before trading. */\n    LegCustodialLotID: 1756,\n    /** The effective acquisition date of the lot that would be used for gain-loss trade lot reporting. The versus purchase date used to identify the lot in situations where a custodial lot identifier is not available. */\n    LegVersusPurchaseDate: 1757,\n    /** The versus purchase price used to identify the lot in situations where a custodial lot identifier is not available.The value should be calculated based on current cost basis / quantity held. */\n    LegVersusPurchasePrice: 1758,\n    /** The amount that the current shares are worth. If this lot was liquidated, the total gain/loss for a trade is equal to the trade amount minus the current cost basis. */\n    LegCurrentCostBasis: 1759,\n    /** Type of risk limit information. */\n    RiskLimitRequestType: 1760,\n    /** Result of risk limit definition request. */\n    RiskLimitRequestResult: 1761,\n    /** Status of risk limit definition request. */\n    RiskLimitRequestStatus: 1762,\n    /** Status of risk limit definition for one party. */\n    RiskLimitStatus: 1763,\n    /** Result of risk limit definition for one party. */\n    RiskLimitResult: 1764,\n    /** Percentage of utilization of a party's set risk limit. */\n    RiskLimitUtilizationPercent: 1765,\n    /** Absolute amount of utilization of a party's set risk limit. */\n    RiskLimitUtilizationAmount: 1766,\n    /** Identifies the action to take or risk model to assume should risk limit be exceeded or breached for the specified party. */\n    RiskLimitAction: 1767,\n    /** Amount at which a warning is issued. */\n    RiskWarningLevelAmount: 1768,\n    /** Action to take should warning level be exceeded. */\n    RiskWarningLevelAction: 1769,\n    /** Unique identifier for PartyEntitlementsRequest(35=CU). */\n    EntitlementRequestID: 1770,\n    /** Identifier for the PartyEntitlementsReport(35=CV). */\n    EntitlementReportID: 1771,\n    /** Number of party entitlement values. */\n    NoPartyEntitlements: 1772,\n    /** Number of entitlement values. */\n    NoEntitlements: 1773,\n    /** Used to indicate if a party is entitled to an entitlement type specified in the EntitlementType(1775) field. */\n    EntitlementIndicator: 1774,\n    /** Type of entitlement. */\n    EntitlementType: 1775,\n    /** Unique identifier for a specific NoEntitlements(1773) repeating group instance. */\n    EntitlementID: 1776,\n    /** Number of entitlement attributes. */\n    NoEntitlementAttrib: 1777,\n    /** Name of the entitlement attribute type. A code list of allowed values will be maintained on the FIX Protocol website.\n        Values \"4000\" and above are reserved for bilaterally agreed upon user defined enumerations. */\n    EntitlementAttribType: 1778,\n    /** Datatype of the entitlement attribute. */\n    EntitlementAttribDatatype: 1779,\n    /** Value of the entitlement attribute. */\n    EntitlementAttribValue: 1780,\n    /** Currency for EntitlementAttribValue(1780). Can be used if these fields represent a price, price offset, or amount. */\n    EntitlementAttribCurrency: 1781,\n    /** Indicates the starting date of the entitlement. */\n    EntitlementStartDate: 1782,\n    /** Indicates the ending date of the entitlement. */\n    EntitlementEndDate: 1783,\n    /** The area to which the entitlement is applicable. This can be a trading platform or an offering. */\n    EntitlementPlatform: 1784,\n    /** Indicates how control of trading session and subsession transitions are performed. */\n    TradSesControl: 1785,\n    /** Define the type of trade volume applicable for the MinTradeVol(562) and MaxTradeVol(1140) */\n    TradeVolType: 1786,\n    /** Spread table code referred by the security or symbol. */\n    RefTickTableID: 1787,\n    /** Unique identifier for the leg within the context of a message (the scope of uniqueness to be defined by counterparty agreement). The LegID(1788) can be referenced using LegRefID(654). */\n    LegID: 1788,\n    /** Number of market segments upon which a mass action is to be taken. */\n    NoTargetMarketSegments: 1789,\n    /** Market segment within a target market segment repeating group. */\n    TargetMarketSegmentID: 1790,\n    /** Number of market segments affected by a mass action. */\n    NoAffectedMarketSegments: 1791,\n    /** Market segment within an affected market repeating segment group. */\n    AffectedMarketSegmentID: 1792,\n    /** Number of market segments left unaffected by a mass action. */\n    NoNotAffectedMarketSegments: 1793,\n    /** Market segment within an unaffected market repeating segment group. */\n    NotAffectedMarketSegmentID: 1794,\n    /** Number of order events. */\n    NoOrderEvents: 1795,\n    /** The type of event affecting an order. The last event type within the OrderEventGrp component indicates the ExecType(150) value resulting from the series of events (ExecType(150) values are shown in brackets). */\n    OrderEventType: 1796,\n    /** Refer to ExecID(17). Used when multiple different events are reported in single Execution Report. ExecID(17) and OrderEventExecID(1797) values should not overlap. */\n    OrderEventExecID: 1797,\n    /** Action that caused the event to occur. */\n    OrderEventReason: 1798,\n    /** Price associated with the event. */\n    OrderEventPx: 1799,\n    /** Quantity associated with the event. */\n    OrderEventQty: 1800,\n    /** Indicator to identify whether this fill was a result of a liquidity provider providing or liquidity taker taking the liquidity. Applicable only for OrderEventType(1796) values of 4(Partially Filled) or 5(Filled). */\n    OrderEventLiquidityIndicator: 1801,\n    /** Additional information about the event. */\n    OrderEventText: 1802,\n    /** Type of auction order. */\n    AuctionType: 1803,\n    /** Percentage of matched quantity to be allocated to the submitter of the response to an auction order. */\n    AuctionAllocationPct: 1804,\n    /** Instruction related to system generated auctions, e.g. flash order auctions. */\n    AuctionInstruction: 1805,\n    /** Used to reference an order via ClOrdID(11). */\n    RefClOrdID: 1806,\n    /** Indicates whether an order is locked and for what reason. */\n    LockType: 1807,\n    /** Locked order quantity. */\n    LockedQty: 1808,\n    /** Locked order quantity in addition to LockedQty (1808), e.g. to distinguish total locked quantity from currently locked quantity. */\n    SecondaryLockedQty: 1809,\n    /** Instruction to define conditions under which to release a locked order or parts of it. */\n    ReleaseInstruction: 1810,\n    /** Quantity to be made available, i.e. released from a lock. */\n    ReleaseQty: 1811,\n    /** Number of disclosure instructions. */\n    NoDisclosureInstructions: 1812,\n    /** Information subject to disclosure. */\n    DisclosureType: 1813,\n    /** Instruction to disclose information or to use default value of the receiver. */\n    DisclosureInstruction: 1814,\n    /** Designates the capacity in which the order is submitted for trading by the market participant. */\n    TradingCapacity: 1815,\n    /** Designates the account type to be used for the order when submitted to clearing. */\n    ClearingAccountType: 1816,\n    /** Designates the capacity in which the order will be submitted to clearing. */\n    LegClearingAccountType: 1817,\n    /** Qualifies the value of TargetPartyRole (1464). */\n    TargetPartyRoleQualifier: 1818,\n    /** Upper boundary for the price of a related entity, e.g. price of the underlying instrument in an Underlying Price Contingency (UPC) order. */\n    RelatedHighPrice: 1819,\n    /** Lower boundary for the price of a related entity, e.g. price of the underlying instrument in an Underlying Price Contingency (UPC) order. */\n    RelatedLowPrice: 1820,\n    /** Source for the price of a related entity, e.g. price of the underlying instrument in an Underlying Price Contingency (UPC) order. Can be used together with RelatedHighPrice (1819) and/or RelatedLowPrice (1820). */\n    RelatedPriceSource: 1821,\n    /** Indicates how the minimum quantity should be applied when executing the order. */\n    MinQtyMethod: 1822,\n    /** Indicates whether order has been triggered during its lifetime. Applies to cases where original information, e.g. OrdType(40), is modified when the order is triggered. */\n    Triggered: 1823,\n    /** OrigClOrdID(41) of an order affected by a mass cancel or mass action request. */\n    AffectedOrigClOrdID: 1824,\n    /** SecondaryOrderID (198) of an order not affected by a mass cancel or mass action request. */\n    NotAffSecondaryOrderID: 1825,\n    /** Time unit multiplier for the event. */\n    EventTimePeriod: 1826,\n    /** Time unit associated with the event. */\n    EventTimeUnit: 1827,\n    /** When LastQty is an estimated value, e.g. for a Repo \u201Ccircled\u201D trade, LastQtyVariance specifies the absolute amount that the size may vary up or down when finalized. Omitted when LastQty(32) is already final. */\n    LastQtyVariance: 1828,\n    /** Number of legs in the side of a cross order. */\n    NoCrossLegs: 1829,\n    /** Settlement price increment for stated price range. */\n    SettlPriceIncrement: 1830,\n    /** Secondary settlement price increment for stated price range. The meaning of secondary is left to bilateral agreement, e.g. it may refer to final settlement for a contract. */\n    SettlPriceSecondaryIncrement: 1831,\n    /** Indicates whether the trade or position being reported was cleared through a clearing organization. */\n    ClearedIndicator: 1832,\n    /** Additional information related to the pricing of a commodity swaps position, specifically an indicator referring to the position type. */\n    ContractRefPosType: 1833,\n    /** Used to describe the ownership of the position. */\n    PositionCapacity: 1834,\n    /** Indicates the currency of the unit of measure if position quantity is expressed in valuation rather than contracts. Conditionally required when PosQtyUnitOfMeasure(1836)=Ccy. */\n    PosQtyUnitOfMeasureCurrency: 1835,\n    /** Indicates the unit of measure of the position quantity when not expressed in contracts. */\n    PosQtyUnitOfMeasure: 1836,\n    /** Reference month if there is no applicable UnderlyingMaturityMonth(313) value for the contract or security. */\n    UnderlyingContractPriceRefMonth: 1837,\n    /** Number of trade price conditions. */\n    NoTradePriceConditions: 1838,\n    /** Price conditions in effect at the time of the trade. Multiple price conditions can be in effect at the same time. Price conditions are usually required to be reported in markets that have regulations on price execution at a market or national best bid or offer, and the trade price differs from the best bid or offer. */\n    TradePriceCondition: 1839,\n    /** Identifies the status of an allocation when using a pre-clear workflow.\n        Note: This is different from the give-up process where a trade is cleared and then given up and goes through the allocation flow. */\n    TradeAllocStatus: 1840,\n    /** Number of trade quantities. */\n    NoTradeQtys: 1841,\n    /** Indicates the type of trade quantity in TradeQty(1843). */\n    TradeQtyType: 1842,\n    /** Trade quantity. */\n    TradeQty: 1843,\n    /** Number of trade allocation amount entries. */\n    NoTradeAllocAmts: 1844,\n    /** Type of the amount associated with a trade allocation. */\n    TradeAllocAmtType: 1845,\n    /** The amount associated with a trade allocation. */\n    TradeAllocAmt: 1846,\n    /** Currency denomination of the trade allocation amount. */\n    TradeAllocCurrency: 1847,\n    /** Instruction on how to add a trade to an allocation group when it is being given-up. */\n    TradeAllocGroupInstruction: 1848,\n    /** Indicates the trade is a result of an offset or onset. */\n    OffsetInstruction: 1849,\n    /** Specifies the reason for an amount type when reported on an allocation. Useful when multiple instances of the same amount type are reported. */\n    TradeAllocAmtReason: 1850,\n    /** Identifies the multileg strategy (e.g. spread) to which the trade belongs. This links together trade legs executed as part of a strategy during a single match event. */\n    StrategyLinkID: 1851,\n    /** Calculated average price for this side of the trade. */\n    SideAvgPx: 1852,\n    /** Used to indicate whether a trade or a sub-allocation should be allocated at the trade price (e.g. no average pricing), or whether it should be grouped with other trades/sub-allocations and allocated at the average price of the group. */\n    SideAvgPxIndicator: 1853,\n    /** The identifier for the average price group for the trade side. See also AvgPxGroupID(1731). */\n    SideAvgPxGroupID: 1854,\n    /** Number of related trades. */\n    NoRelatedTrades: 1855,\n    /** Identifier of a related trade. */\n    RelatedTradeID: 1856,\n    /** Describes the source of the identifier that RelatedTradeID(1856) represents. */\n    RelatedTradeIDSource: 1857,\n    /** Date of a related trade. */\n    RelatedTradeDate: 1858,\n    /** Market of execution of related trade. */\n    RelatedTradeMarketID: 1859,\n    /** Quantity of the related trade which can be less than or equal to the actual quantity of the related trade. For example, when one trade offsets another across asset classes. */\n    RelatedTradeQuantity: 1860,\n    /** Number of related positions. */\n    NoRelatedPositions: 1861,\n    /** Identifier of a related position. */\n    RelatedPositionID: 1862,\n    /** Describes the source of the identifier that RelatedPositionID(1862) represents. */\n    RelatedPositionIDSource: 1863,\n    /** Used to help identify the position when RelatedPositionID(1862) is not unique across multiple days. This date is generally the creation date of the identifier. */\n    RelatedPositionDate: 1864,\n    /** Acknowledgement status of a Quote(35=S) or QuoteCancel(35=Z) message submission. */\n    QuoteAckStatus: 1865,\n    /** Specifies the index used to calculate the strike price. */\n    StrikeIndex: 1866,\n    /** Unique identifier for the ask side of the quote assigned by the quote issuer. */\n    OfferID: 1867,\n    /** Number of value check entries. */\n    NoValueChecks: 1868,\n    /** Type of value to be checked. */\n    ValueCheckType: 1869,\n    /** Action to be taken for the ValueCheckType(1869). */\n    ValueCheckAction: 1870,\n    /** The length of the LegSecurityXML(1872) data block. */\n    LegSecurityXMLLen: 1871,\n    /** XML definition for the leg security. */\n    LegSecurityXML: 1872,\n    /** The schema used to validate the contents of LegSecurityXML(1872). */\n    LegSecurityXMLSchema: 1873,\n    /** The length of the UnderlyingSecurityXML(1875) data block. */\n    UnderlyingSecurityXMLLen: 1874,\n    /** XML definition for the underlying security. */\n    UnderlyingSecurityXML: 1875,\n    /** The schema used to validate the contents of UnderlyingSecurityXML(1875). */\n    UnderlyingSecurityXMLSchema: 1876,\n    /** Result party detail definition request. */\n    PartyDetailRequestResult: 1877,\n    /** Status of party details definition request. */\n    PartyDetailRequestStatus: 1878,\n    /** Status of party detail definition for one party. */\n    PartyDetailDefinitionStatus: 1879,\n    /** Result of party detail definition for one party. */\n    PartyDetailDefinitionResult: 1880,\n    /** Result of risk limit definition request. */\n    EntitlementRequestResult: 1881,\n    /** Status of party entitlements definition request. */\n    EntitlementRequestStatus: 1882,\n    /** Status of entitlement definition for one party. */\n    EntitlementStatus: 1883,\n    /** Result of entitlement definition for one party. */\n    EntitlementResult: 1884,\n    /** Reference to an EntitlementID(1776). Used for modification or deletion of an entitlement. */\n    EntitlementRefID: 1885,\n    /** Used to express the unit of measure of the settlement price if different from the contract. */\n    SettlPriceUnitOfMeasure: 1886,\n    /** Indicates the currency of the settlement price unit of measure if expressed in another currency than the base currency.\n        Conditionally required when SettlPriceUnitOfMeasure(1886)=Ccy. */\n    SettlPriceUnitOfMeasureCurrency: 1887,\n    /** Timestamp of the match event. For off-exchange trades the time at which the deal was matched by the exchange.\n        This timestamp will be the same on all the trades and will not change when a trade is modified. */\n    TradeMatchTimestamp: 1888,\n    /** Number of instrument match sides. */\n    NoInstrmtMatchSides: 1889,\n    /** Number of trade match sides. */\n    NoTrdMatchSides: 1890,\n    /** Used to identify each price level, step or clip within a match event.\n        The identifier may represent a grouping of matched resting orders at a given price level that was matched by an aggressor order. For example, an aggressive order sweeping through 2 price levels that included 3 resting orders would have two different TrdMatchSubID(1891) values. */\n    TrdMatchSubID: 1891,\n    /** Number of instrument leg executions. */\n    NoLegExecs: 1892,\n    /** The ExecID(17) value corresponding to a trade leg. */\n    LegExecID: 1893,\n    /** The TradeID(1003) value corresponding to a trade leg. */\n    LegTradeID: 1894,\n    /** The TradeReportID(571) value corresponding to a trade leg. */\n    LegTradeReportID: 1895,\n    /** Used to indicate the status of the trade match report submission. */\n    TradeMatchAckStatus: 1896,\n    /** Reason the trade match report submission was rejected. */\n    TradeMatchRejectReason: 1897,\n    /** Identifies the market segment of the side. */\n    SideMarketSegmentID: 1898,\n    /** Identifies the type of venue where the trade was executed for the side. */\n    SideVenueType: 1899,\n    /** Used to reference the value from SideExecID(1427). */\n    SideExecRefID: 1900,\n    /** Used to reference the value from LegExecID(1893). */\n    LegExecRefID: 1901,\n    /** Indicates, if \"Y\", that a stated valuation includes a haircut, e.g. that the stated value reflects the subtraction of the haircut. Note that a value of \"N\" does not imply a haircut is not applicable, only that the haircut (if any) is not reflected in the stated valuation. */\n    HaircutIndicator: 1902,\n    /** Trade identifier required by government regulators or other regulatory organizations for regulatory reporting purposes. For example, unique swap identifer (USI) as required by the U.S. Commodity Futures Trading Commission. */\n    RegulatoryTradeID: 1903,\n    /** Identifies the event which caused origination of the identifier in RegulatoryTradeID(1903). When more than one event is the cause, use the higher enumeration value. For example, if the identifier is originated due to an allocated trade which was cleared and reported, use the enumeration value 2 (Clearing). */\n    RegulatoryTradeIDEvent: 1904,\n    /** Identifies the reporting entity that originated the value in RegulatoryTradeID(1903). The reporting entity identifier may be assigned by a regulator or from a supported standard identifier source scheme.\n        In the context of CFTC usage for Unique Swap Identifier (USI), this field is required to convey the namespace of the entity creating the USI, in accordance to the USI Data Standard (https://www.cftc.gov/sites/default/files/idc/groups/public/@swaps/documents/dfsubmission/usidatastandards100112.pdf). For standardized identifier source schemes, such as the Unique Transaction Identifier (UTI), the source scheme is identified using supported code values. */\n    RegulatoryTradeIDSource: 1905,\n    /** Specifies the type of trade identifier provided in RegulatoryTradeID(1903).\n        Contextual hierarchy of events for the same trade or transaction maybe captured through use of the different RegulatoryTradeIDType(1906) values using multiple instances of the repeating group as needed for regulatory reporting. */\n    RegulatoryTradeIDType: 1906,\n    /** Number of regulatory IDs in the repeating group. */\n    NoRegulatoryTradeIDs: 1907,\n    /** Number of regulatory IDs in the repeating group. */\n    NoAllocRegulatoryTradeIDs: 1908,\n    /** Trade identifier required by government regulators or other regulatory organizations for regulatory reporting purposes. For example, unique swap identifer (USI) as required by the U.S. Commodity Futures Trading Commission. */\n    AllocRegulatoryTradeID: 1909,\n    /** Identifies the reporting entity that originated the value in RegulatoryTradeID(1903). The reporting entity identifier may be assigned by a regulator or from a supported standard identifier source scheme.\n        In the context of CFTC usage for Unique Swap Identifier (USI), this field is required to convey the namespace of the entity creating the USI, in accordance to the USI Data Standard (https://www.cftc.gov/sites/default/files/idc/groups/public/@swaps/documents/dfsubmission/usidatastandards100112.pdf). For standardized identifier source schemes, such as the Unique Transaction Identifier (UTI), the source scheme is identified using supported code values. */\n    AllocRegulatoryTradeIDSource: 1910,\n    /** Identifies the event which caused the origination of the identifier in AllocRegulatoryTradeID(1909). When more than one event is the cause, use the higher enumeration value. For example, if the identifier is originated due to an allocated trade which was cleared and reported, use the enumeration value 2(Clearing). */\n    AllocRegulatoryTradeIDEvent: 1911,\n    /** Specifies the type of trade identifier provided in AllocRegulatoryTradeID(1909), within the context of the hierarchy of trade events. */\n    AllocRegulatoryTradeIDType: 1912,\n    /** The number of competing Respondents (e.g. dealers) to receive a quote request (either via the QuoteRequest(35=R) or via other means). */\n    NumOfCompetitors: 1913,\n    /** The time by which a meaningful response should arrive back (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\").\n        The meaning of the response time is specific to the context where the field is used.\n        For a QuoteRequest(35=R) message, this is the time by which the Quote(35=S) message should arrive to the initiator of the QuoteRequest(35=R) message. */\n    ResponseTime: 1914,\n    /** Time by which the quote will be displayed.\n        For example, the time the execution venue will display dealer(s) submitted quotes to market participant(s). */\n    QuoteDisplayTime: 1915,\n    /** Time unit in which the ExposureDuration(1629) is expressed. */\n    ExposureDurationUnit: 1916,\n    /** The best quoted price received among those not traded. */\n    CoverPrice: 1917,\n    /** Number of clearing account type entries. */\n    NoClearingAccountTypes: 1918,\n    /** Number of price movement entries. */\n    NoPriceMovements: 1919,\n    /** Number of price movement value entries. */\n    NoPriceMovementValues: 1920,\n    /** Value at specific price movement point. */\n    PriceMovementValue: 1921,\n    /** Price movement point up (positive integer) or down (negative integer) relative to the underlying price of the instrument. */\n    PriceMovementPoint: 1922,\n    /** Describes the format of the PriceMovementValue(1921). */\n    PriceMovementType: 1923,\n    /** Specifies the party's or parties' intention to clear the trade. */\n    ClearingIntention: 1924,\n    /** Specifies the eligibility of this trade for clearing and central counterparty processing. */\n    TradeClearingInstruction: 1925,\n    /** Indicates that the trade being reported occurred in the past and is still in effect or active. */\n    BackloadedTradeIndicator: 1926,\n    /** Specifies how a trade was confirmed. */\n    ConfirmationMethod: 1927,\n    /** An indication that the trade is flagged for mandatory clearing. */\n    MandatoryClearingIndicator: 1928,\n    /** An indication that the trade is a mixed swap.\n        In the context of CFTC , a \"Mixed swap\" is defined in the Commodity Exchange Act (CEA) section 1a(47)(D) as an instrument that is in part a swap subject to the jurisdiction of the CFTC, and in part a security-based swap subject to the jurisdiction of the SEC. When reporting the additional Swap Data Repositories must be identified in the appropriate Parties component with PartyRole(452) = 102 (Data repository), PartyRoleQualifier(2376) = 12 (Additional domestic trade repository) and PartySub-IDType(803) = 70 (Location or jurisdiction). */\n    MixedSwapIndicator: 1929,\n    /** An indication that the price is off-market. */\n    OffMarketPriceIndicator: 1930,\n    /** Indication of how a trade was verified. */\n    VerificationMethod: 1931,\n    /** Specifies whether a party to a swap is using an exception to a clearing requirement. In the US, one such clearing requirement is CFTC's rule pursuant to CEA Section 2(h)(1). */\n    ClearingRequirementException: 1932,\n    /** Used to specify whether the principal is paying or receiving the fixed rate in an interest rate swap. */\n    IRSDirection: 1933,\n    /** Type of regulatory report. */\n    RegulatoryReportType: 1934,\n    /** Used in conjunction with RegulatoryReportType(1934) to indicate whether the trade report is a voluntary regulatory report. If not specified, the default for a regulatory report is \"N\".\n        When VoluntaryRegulatoryReport(1935)=Y it is recommended that one of the parties to the trade be identified as the voluntary reporting party through PartySubIDType(803) = 63 (Voluntary reporting entity). */\n    VoluntaryRegulatoryReport: 1935,\n    /** Specifies how the trade is collateralized.\n        In the context of Dodd-Frank, all values shown except for 4 (Net exposure) apply.\n        In the context of ESMA EU SFTR reporting only the values 1 (Uncollateralized), 3 (Fully collateralized) and 4 (Net exposure) apply. */\n    TradeCollateralization: 1936,\n    /** Specifies the post-execution trade continuation or lifecycle event. Additional values may be used by mutual agreement of the counterparties. */\n    TradeContinuation: 1937,\n    /** The broad asset category for assessing risk exposure. */\n    AssetClass: 1938,\n    /** The subcategory description of the asset class. */\n    AssetSubClass: 1939,\n    /** Used to provide more specific description of the asset specified in AssetSubClass(1939).\n        See https://www.fixtrading.org/codelists/AssetType for code list of applicable values. ISO 4721 Currency Code values are to be used when specific currency as an asset type is to be expressed.\n        Other values may be used by mutual agreement of the counterparties.\n        In the context of MiFID II's this may indicate the value needed in ESMA RTS 2 Annex IV Table 2 Field 16, or ESMA RTS 23 Annex I Table 2 'Sub product' field. */\n    AssetType: 1940,\n    /** The classification or type of swap. Additional values may be used by mutual agreement of the counterparties. */\n    SwapClass: 1941,\n    /** The Nth reference obligation to default in a CDS reference basket. If specified without MthToDefault(1943) the default will trigger a CDS payout. If MthToDefault(1943) is also present then payout occurs between the Nth and Mth obligations to default. */\n    NthToDefault: 1942,\n    /** The Mth reference obligation to default in a CDS reference basket. When NthToDefault(1942) and MthToDefault(1943) are represented then the CDS payout occurs between the Nth and Mth obligations to default. */\n    MthToDefault: 1943,\n    /** Relevant settled entity matrix source. */\n    SettledEntityMatrixSource: 1944,\n    /** The publication date of the applicable version of the matrix. If not specified, the Standard Terms Supplement defines rules for which version of the matrix is applicable. */\n    SettledEntityMatrixPublicationDate: 1945,\n    /** Coupon type of the bond. */\n    CouponType: 1946,\n    /** Specifies the total amount of the issue. Corresponds to the par value multiplied by the number of issued securities. */\n    TotalIssuedAmount: 1947,\n    /** Time unit multiplier for the frequency of the bond's coupon payment. */\n    CouponFrequencyPeriod: 1948,\n    /** Time unit associated with the frequency of the bond's coupon payment. */\n    CouponFrequencyUnit: 1949,\n    /** The day count convention used in interest calculations for a bond or an interest bearing security. Absence of this field for a bond or an interest bearing security transaction implies a \"flat\" trade, i.e. no accrued interest determined at time of the transaction. */\n    CouponDayCount: 1950,\n    /** Identifies the equity in which a convertible bond can be converted to. */\n    ConvertibleBondEquityID: 1951,\n    /** Identifies class or source of the ConvertibleBondEquityID(1951) value.\n        100+ are reserved for private security. */\n    ConvertibleBondEquityIDSource: 1952,\n    /** Reference month if there is no applicable MaturityMonthYear(200) value for the contract or security. */\n    ContractPriceRefMonth: 1953,\n    /** Indicates the seniority level of the lien in a loan. */\n    LienSeniority: 1954,\n    /** Specifies the type of loan when the credit default swap's reference obligation is a loan. */\n    LoanFacility: 1955,\n    /** Specifies the type of reference entity for first-to-default CDS basket contracts. */\n    ReferenceEntityType: 1956,\n    /** The series identifier of a credit default swap index. */\n    IndexSeries: 1957,\n    /** The version of a credit default swap index annex. */\n    IndexAnnexVersion: 1958,\n    /** The date of a credit default swap index series annex. */\n    IndexAnnexDate: 1959,\n    /** The source of a credit default swap series annex. */\n    IndexAnnexSource: 1960,\n    /** The version of the master agreement */\n    AgreementVersion: 1961,\n    /** The type of master confirmation executed between the parties.\n        See http://www.fpml.org/coding-scheme/master-confirmation-type for values. */\n    MasterConfirmationDesc: 1962,\n    /** Alternative to broker confirmation. The date of the confirmation executed between the parties and intended to govern all relevant transactions between those parties. */\n    MasterConfirmationDate: 1963,\n    /** The type of master confirmation annex executed between the parties.\n        See http://www.fpml.org/coding-scheme/master-confirmation-annex-type for values. */\n    MasterConfirmationAnnexDesc: 1964,\n    /** The date that an annex to the master confirmation was executed between the parties. */\n    MasterConfirmationAnnexDate: 1965,\n    /** Describes the type of broker confirmation executed between the parites. Can be used as an alterative to MasterConfirmationDesc(1962). See http://www.fpml.org/coding-scheme/broker-confirmation-type for values. */\n    BrokerConfirmationDesc: 1966,\n    /** The type of ISDA Credit Support Agreement. See http://www.fpml.org/coding-scheme/credit-support-agreement-type for values. */\n    CreditSupportAgreementDesc: 1967,\n    /** The date of the ISDA Credit Support Agreement executed between the parties and intended to govern collateral arrangements for all OTC derivatives transactions between those parties. */\n    CreditSupportAgreementDate: 1968,\n    /** A common reference or unique identifier to identify the ISDA Credit Support Agreement executed between the parties. */\n    CreditSupportAgreementID: 1969,\n    /** Identification of the law governing the transaction. See http://www.fpml.org/coding-scheme/governing-law for values. */\n    GoverningLaw: 1970,\n    /** Number of regulatory IDs in the repeating group. */\n    NoSideRegulatoryTradeIDs: 1971,\n    /** Trade identifier required by government regulators or other regulatory organziations for regulatory reporting purposes. For example, unique swap identifier (USI) as required by the U.S. Commodity Futures Trading Commission. */\n    SideRegulatoryTradeID: 1972,\n    /** Identifies the reporting entity that originated the value in RegulatoryTradeID(1903). The reporting entity identifier may be assigned by a regulator or from a supported standard identifier source scheme.\n        In the context of CFTC usage for Unique Swap Identifier (USI), this field is required to convey the namespace of the entity creating the USI, in accordance to the USI Data Standard (https://www.cftc.gov/sites/default/files/idc/groups/public/@swaps/documents/dfsubmission/usidatastandards100112.pdf). For standardized identifier source schemes, such as the Unique Transaction Identifier (UTI), the source scheme is identified using supported code values. */\n    SideRegulatoryTradeIDSource: 1973,\n    /** Identifies the event which caused origination of the identifier in SideRegulatoryTradeID(1972). When more than one event is the cause, use the higher enumeration value. For example, if the identifier is originated due to an allocated trade which was cleared and reported, use the enumeration value 2 (Clearing). */\n    SideRegulatoryTradeIDEvent: 1974,\n    /** Specifies the type of trade identifier provided in SideRegulatoryTradeID(1972), within the context of the hierarchy of trade events. */\n    SideRegulatoryTradeIDType: 1975,\n    /** Number of secondary asset classes in the repeating group. */\n    NoSecondaryAssetClasses: 1976,\n    /** The broad asset category for assessing risk exposure for a multi-asset trade. */\n    SecondaryAssetClass: 1977,\n    /** An indication of the general description of the asset class. */\n    SecondaryAssetSubClass: 1978,\n    /** Used to provide more specific description of the asset specified in SecondaryAssetSubClass(1978).\n        See https://www.fixtrading.org/codelists/AssetType for code list of applicable values. ISO 4721 Currency Code values are to be used when specific currency as an asset type is to be expressed.\n        Other values may be used by mutual agreement of the counterparties.\n        In the context of MiFID II's this may indicate the value needed in ESMA RTS 2 Annex IV Table 2 Field 16, or ESMA RTS 23 Annex I Table 2 'Sub product' field. */\n    SecondaryAssetType: 1979,\n    /** Indication that a block trade will be allocated. */\n    BlockTrdAllocIndicator: 1980,\n    /** Number of events in the repeating group. */\n    NoUnderlyingEvents: 1981,\n    /** Code to represent the type of event. */\n    UnderlyingEventType: 1982,\n    /** The date of the event. */\n    UnderlyingEventDate: 1983,\n    /** The time of the event. To be used in combination with UnderlyingEventDate(1983). */\n    UnderlyingEventTime: 1984,\n    /** Time unit associated with the event. */\n    UnderlyingEventTimeUnit: 1985,\n    /** Time unit multiplier for the event. */\n    UnderlyingEventTimePeriod: 1986,\n    /** Predetermined price of issue at event, if applicable. */\n    UnderlyingEventPx: 1987,\n    /** For a basket, or pool, describes the weight of each of the constituents within the basket. If not provided, it is assumed to be equal weighted. */\n    UnderlyingConstituentWeight: 1988,\n    /** Specifies the coupon type of the underlying bond. */\n    UnderlyingCouponType: 1989,\n    /** Specifies the total amount of the issue. Corresponds to the par value multiplied by the number of issued security. */\n    UnderlyingTotalIssuedAmount: 1990,\n    /** Time unit multiplier for the frequency of the bond's coupon payment. */\n    UnderlyingCouponFrequencyPeriod: 1991,\n    /** Time unit associated with the frequency of the bond's coupon payment. */\n    UnderlyingCouponFrequencyUnit: 1992,\n    /** The day count convention used in interest calculations for a bond or an interest bearing security. */\n    UnderlyingCouponDayCount: 1993,\n    /** For a CDS basket or pool identifies the reference obligation.\n        UnderlyingObligationID(1994) is reserved for the reference entity for baskets or pools. In a CDS single name the reference entity is identified in instrument ID and the obligations are identified in UnderlyingObligationID(1994). */\n    UnderlyingObligationID: 1994,\n    /** Identifies the source scheme of the UnderlyingObligationID(1994). */\n    UnderlyingObligationIDSource: 1995,\n    /** Specifies the equity in which a convertible bond can be converted. */\n    UnderlyingEquityID: 1996,\n    /** Identifies the source of the UnderlyingEquityID(1996). */\n    UnderlyingEquityIDSource: 1997,\n    /** Indicates the seniority level of the lien in a loan. */\n    UnderlyingLienSeniority: 1998,\n    /** Specifies the type of loan when the credit default swap's reference obligation is a loan. */\n    UnderlyingLoanFacility: 1999,\n    /** Specifies the type of reference entity for first-to-default CDS basket contracts. */\n    UnderlyingReferenceEntityType: 2000,\n    /** Specifies the strike price offset from the named index. */\n    StrikeIndexSpread: 2001,\n    /** Specifies the source of trade valuation data. */\n    ValuationSource: 2002,\n    /** The series identifier of a credit default swap index. */\n    UnderlyingIndexSeries: 2003,\n    /** The version identifier of a credit default swap index annex. */\n    UnderlyingIndexAnnexVersion: 2004,\n    /** The date of a credit default swap index series annex. */\n    UnderlyingIndexAnnexDate: 2005,\n    /** The source of a credit default swap index series annex. */\n    UnderlyingIndexAnnexSource: 2006,\n    /** Identifies an entire suite of products for a given market. In Futures this may be \"interest rates\", \"agricultural\", \"equity indexes\", etc */\n    UnderlyingProductComplex: 2007,\n    /** An exchange specific name assigned to a group of related securities which may be concurrently affected by market events and actions. */\n    UnderlyingSecurityGroup: 2008,\n    /** Indicator to determine if Instrument is Settle on Open. */\n    UnderlyingSettleOnOpenFlag: 2009,\n    /** Method under which assignment was conducted */\n    UnderlyingAssignmentMethod: 2010,\n    /** Indicates the current state of the underlying instrument. */\n    UnderlyingSecurityStatus: 2011,\n    /** Type of reference obligation for credit derivatives contracts. */\n    UnderlyingObligationType: 2012,\n    /** The broad asset category for assessing risk exposure. */\n    UnderlyingAssetClass: 2013,\n    /** An indication of the general description of the asset class. */\n    UnderlyingAssetSubClass: 2014,\n    /** Used to provide more specific description of the asset specified in UnderlyingAssetSubClass(2082).\n        See https://www.fixtrading.org/codelists/AssetType for code list of applicable values. ISO 4721 Currency Code values are to be used when specific currency as an asset type is to be expressed.\n        Other values may be used by mutual agreement of the counterparties.\n        In the context of MiFID II's this may indicate the value needed in ESMA RTS 2 Annex IV Table 2 Field 16, or ESMA RTS 23 Annex I Table 2 'Sub product' field. */\n    UnderlyingAssetType: 2015,\n    /** The type or classification of swap. Additional values may be used by mutual agreement of the counterparties. */\n    UnderlyingSwapClass: 2016,\n    /** The Nth reference obligation to default in a CDS reference basket. If specified without UnderlyingMthToDefault(2018) the default will trigger a CDS payout. If UnderlyingMthToDefault(2018) is also present then payout occurs between the Nth and Mth obligations to default. */\n    UnderlyingNthToDefault: 2017,\n    /** The Mth reference obligation to default in a CDS reference basket. When UnderlyingNthToDefault(2017) and UnderlyingMthToDefault(2018) are represented then the CDS payout occurs between the Nth and Mth obligations to default. */\n    UnderlyingMthToDefault: 2018,\n    /** Relevant settled entity matrix source. */\n    UnderlyingSettledEntityMatrixSource: 2019,\n    /** Specifies the publication date of the applicable version of the matrix. If not specified, the Standard Terms Supplement defines rules for which version of the matrix is applicable. */\n    UnderlyingSettledEntityMatrixPublicationDate: 2020,\n    /** Used for derivatives. Multiplier applied to the strike price for the purpose of calculating the settlement value. */\n    UnderlyingStrikeMultiplier: 2021,\n    /** Used for derivatives. The number of shares/units for the financial instrument involved in the option trade. */\n    UnderlyingStrikeValue: 2022,\n    /** Specifies how the strike price is determined at the point of option exercise. The strike may be fixed throughout the life of the option, set at expiration to the value of the underlying, set to the average value of the underlying , or set to the optimal value of the underlying. */\n    UnderlyingStrikePriceDeterminationMethod: 2023,\n    /** Specifies the boundary condition to be used for the strike price relative to the underlying price at the point of option exercise. */\n    UnderlyingStrikePriceBoundaryMethod: 2024,\n    /** Used in combination with StrikePriceBoundaryMethod(1479) to specify the percentage of the strike price in relation to the underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls. */\n    UnderlyingStrikePriceBoundaryPrecision: 2025,\n    /** Minimum price increment for the instrument. Could also be used to represent tick value. */\n    UnderlyingMinPriceIncrement: 2026,\n    /** Minimum price increment amount associated with the UnderlyingMinPriceIncrement(2026). For listed derivatives, the value can be calculated by multiplying UnderlyingMinPriceIncrement(2026) by UnderlyingContractMultiplier(436). */\n    UnderlyingMinPriceIncrementAmount: 2027,\n    /** Indicates the type of valuation method or payout trigger for an in-the-money option. */\n    UnderlyingOptPayoutType: 2028,\n    /** Cash amount indicating the pay out associated with an option. For binary options this is a fixed amount. */\n    UnderlyingOptPayoutAmount: 2029,\n    /** Method for price quotation. */\n    UnderlyingPriceQuoteMethod: 2030,\n    /** Indicates type of valuation method used. */\n    UnderlyingValuationMethod: 2031,\n    /** Indicates whether the instruments are pre-listed only or can also be defined via user request. */\n    UnderlyingListMethod: 2032,\n    /** Used to express the ceiling price of a capped call. */\n    UnderlyingCapPrice: 2033,\n    /** Used to express the floor price of a capped put. */\n    UnderlyingFloorPrice: 2034,\n    /** Used to indicate if a security has been defined as flexible according to \"non-standard\" means. Analog to CFICode Standard/Non-standard indicator. */\n    UnderlyingFlexibleIndicator: 2035,\n    /** Used to indicate if a product or group of product supports the creation of flexible securities. */\n    UnderlyingFlexProductEligibilityIndicator: 2036,\n    /** Position limit for the instrument. */\n    UnderlyingPositionLimit: 2037,\n    /** Position Limit in the near-term contract for a given exchange-traded product. */\n    UnderlyingNTPositionLimit: 2038,\n    /** Identifies the mortgage backed security (MBS) / asset backed security (ABS) pool. */\n    UnderlyingPool: 2039,\n    /** Specifies when the contract (i.e. MBS/TBA) will settle. Must be present for MBS/TBA. */\n    UnderlyingContractSettlMonth: 2040,\n    /** If different from IssueDate() */\n    UnderlyingDatedDate: 2041,\n    /** If different from IssueDate and DatedDate */\n    UnderlyingInterestAccrualDate: 2042,\n    /** Indicates whether a restriction applies to short selling a security. */\n    UnderlyingShortSaleRestriction: 2043,\n    /** Spread table code referred by the security or symbol. */\n    UnderlyingRefTickTableID: 2044,\n    /** Number of complex events in the repeating group. */\n    NoUnderlyingComplexEvents: 2045,\n    /** Identifies the type of complex event. */\n    UnderlyingComplexEventType: 2046,\n    /** Cash amount indicating the pay out associated with an event. For binary options this is a fixed amount. */\n    UnderlyingComplexOptPayoutAmount: 2047,\n    /** Specifies the price at which the complex event takes effect. Impact of the event price is determined by the UnderlyingComplexEventType(2046). */\n    UnderlyingComplexEventPrice: 2048,\n    /** Specifies the boundary condition to be used for the event price relative to the UnderlyingComplexEventPrice(2048) at the point the complex event outcome takes effect as determined by the UnderlyingComplexEventPriceTimeType(2051). */\n    UnderlyingComplexEventPriceBoundaryMethod: 2049,\n    /** Used in combination with UnderlyingComplexEventPriceBoundaryMethod(2049) to specify the percentage of the strike price in relation to the underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls. */\n    UnderlyingComplexEventPriceBoundaryPrecision: 2050,\n    /** Specifies when the complex event outcome takes effect. The outcome of a complex event is a payout or barrier action as specified by the UnderlyingComplexEventType(2046). */\n    UnderlyingComplexEventPriceTimeType: 2051,\n    /** Specifies the condition between complex events when more than one event is specified.\n        Multiple barrier events would use an \"or\" condition since only one can be effective at a given time. A set of digital range events would use an \"and\" condition since both conditions must be in effect for a payout to result. */\n    UnderlyingComplexEventCondition: 2052,\n    /** Number of underlying complex event dates in the repeating group. */\n    NoUnderlyingComplexEventDates: 2053,\n    /** The start date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options.\n        The start date must always be less than or equal to end date. */\n    UnderlyingComplexEventStartDate: 2054,\n    /** The end date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options.\n        UnderlyingComplexEventEndDate(2056) must always be greater than or equal to UnderlyingComplexEventStartDate(2055). */\n    UnderlyingComplexEventEndDate: 2055,\n    /** Number of complex event times in the repeating group. */\n    NoUnderlyingComplexEventTimes: 2056,\n    /** The start time of the time range on which a complex event date is effective.\n        UnderlyingComplexEventStartTime(2057) must always be less than or equal to UndelryingComplexEventEndTime(2058). */\n    UnderlyingComplexEventStartTime: 2057,\n    /** The end time of the time range on which a complex event date is effective.\n        UnderlyingComplexEventEndTime(2058) must always be greater than or equal to UnderlyingComplexEventStartTime(2057). */\n    UnderlyingComplexEventEndTime: 2058,\n    /** Number of events in the repeating group */\n    NoLegEvents: 2059,\n    /** Code to represent the type of event. */\n    LegEventType: 2060,\n    /** The date of the event. */\n    LegEventDate: 2061,\n    /** Specific time of event. To be used in combination with LegEventDate(2061). */\n    LegEventTime: 2062,\n    /** Time unit associated with the event. */\n    LegEventTimeUnit: 2063,\n    /** Time unit multiplier for the event. */\n    LegEventTimePeriod: 2064,\n    /** Predetermined price of issue at event, if applicable. */\n    LegEventPx: 2065,\n    /** Free form text to specify additional information or enumeration description when a standard value does not apply. */\n    LegEventText: 2066,\n    /** The broad asset category for assessing risk exposure. */\n    LegAssetClass: 2067,\n    /** The general subcategory description of the asset class. */\n    LegAssetSubClass: 2068,\n    /** Used to provide more specific description of the asset specified in LegAssetSubClass(2068).\n        See https://www.fixtrading.org/codelists/AssetType for code list of applicable values. ISO 4721 Currency Code values are to be used when specific currency as an asset type is to be expressed.\n        Other values may be used by mutual agreement of the counterparties.\n        In the context of MiFID II's this may indicate the value needed in ESMA RTS 2 Annex IV Table 2 Field 16, or ESMA RTS 23 Annex I Table 2 'Sub product' field. */\n    LegAssetType: 2069,\n    /** Swap type. */\n    LegSwapClass: 2070,\n    /** Free form text to specify comments related to the event. */\n    UnderlyingEventText: 2071,\n    /** Byte length of encoded (non-ASCII characters) EncodedUnderlyingEventText(2073) field. */\n    EncodedUnderlyingEventTextLen: 2072,\n    /** Encoded (non-ASCII characters) representation of the UnderlyingEventText(2071) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingEventText(2071) field. */\n    EncodedUnderlyingEventText: 2073,\n    /** Byte length of encoded (non-ASCII characters) EncodedLegEventText(2075) field. */\n    EncodedLegEventTextLen: 2074,\n    /** Encoded (non-ASCII characters) representation of the LegEventText(2066) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegEventText(2066) field. */\n    EncodedLegEventText: 2075,\n    /** Number of secondary asset classes in the repeating group. */\n    NoLegSecondaryAssetClasses: 2076,\n    /** The broad asset category for assessing risk exposure for a multi-asset trade. */\n    LegSecondaryAssetClass: 2077,\n    /** An indication of the general description of the asset class. */\n    LegSecondaryAssetSubClass: 2078,\n    /** Used to provide more specific description of the asset specified in LegSecondaryAssetSubClass(2078).\n        See https://www.fixtrading.org/codelists/AssetType for code list of applicable values. ISO 4721 Currency Code values are to be used when specific currency as an asset type is to be expressed.\n        Other values may be used by mutual agreement of the counterparties.\n        In the context of MiFID II's this may indicate the value needed in ESMA RTS 2 Annex IV Table 2 Field 16, or ESMA RTS 23 Annex I Table 2 'Sub product' field. */\n    LegSecondaryAssetType: 2079,\n    /** Number of secondary asset classes in the repeating group. */\n    NoUnderlyingSecondaryAssetClasses: 2080,\n    /** The broad asset category for assessing risk exposure for a multi-asset trade. */\n    UnderlyingSecondaryAssetClass: 2081,\n    /** An indication of the general description of the asset class. */\n    UnderlyingSecondaryAssetSubClass: 2082,\n    /** Used to provide more specific description of the asset specified in UnderlyingSecondaryAssetSubClass(2082).\n        See https://www.fixtrading.org/codelists/AssetType for code list of applicable values. ISO 4721 Currency Code values are to be used when specific currency as an asset type is to be expressed.\n        Other values may be used by mutual agreement of the counterparties.\n        In the context of MiFID II's this may indicate the value needed in ESMA RTS 2 Annex IV Table 2 Field 16, or ESMA RTS 23 Annex I Table 2 'Sub product' field. */\n    UnderlyingSecondaryAssetType: 2083,\n    /** The date of the previous clearing business day. */\n    PreviousClearingBusinessDate: 2084,\n    /** The valuation date of the trade. */\n    ValuationDate: 2085,\n    /** The valuation time of the trade. */\n    ValuationTime: 2086,\n    /** Identifies the business center whose calendar is used for valuation, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ValuationBusinessCenter: 2087,\n    /** Foreign exchange rate used to compute the MarginAmt(1645) from the MarginAmtCcy(1646) and the Currency(15). */\n    MarginAmtFXRate: 2088,\n    /** Specifies whether or not MarginAmtFXRate(2088) should be multipled or divided. */\n    MarginAmtFXRateCalc: 2089,\n    /** Foreign exchange rate used to compute the CurrentCollateralAmount(1704) from the CollateralCurrency(1646) and the Currency(15). */\n    CollateralFXRate: 2090,\n    /** Specifies whether or not CollateralFXRate(2090) should be multipled or divided. */\n    CollateralFXRateCalc: 2091,\n    /** Market segment associated with the collateral amount. */\n    CollateralAmountMarketSegmentID: 2092,\n    /** Market associated with the collateral amount. */\n    CollateralAmountMarketID: 2093,\n    /** Foreign exchange rate used to compute the PayAmount(1710) or CollectAmount(1711) from the PayCollectCurrency(1709) and the Currency(15). */\n    PayCollectFXRate: 2094,\n    /** Specifies whether or not PayCollectFXRate(2094) should be multipled or divided. */\n    PayCollectFXRateCalc: 2095,\n    /** Corresponds to the value in StreamDesc(40051) in the StreamGrp component. */\n    PosAmtStreamDesc: 2096,\n    /** Foreign exchange rate used to compute the PosAmt(708) from the PositionCurrency(1055) and the Currency (15). */\n    PositionFXRate: 2097,\n    /** Specifies whether or not PositionFXRate(2097) should be multipled or divided. */\n    PositionFXRateCalc: 2098,\n    /** Market segment associated with the position amount. */\n    PosAmtMarketSegmentID: 2099,\n    /** Market associated with the position amount. */\n    PosAmtMarketID: 2100,\n    /** Indicates if the position has been terminated. */\n    TerminatedIndicator: 2101,\n    /** Indicates whether the originating account is exempt (Y) from marking orders as short or not (N). This designation may be used on both buy and sell orders. */\n    ShortMarkingExemptIndicator: 2102,\n    /** Specifies the identifier of the reporting entity as assigned by regulatory agency. */\n    RelatedRegulatoryTradeIDSource: 2103,\n    /** The number of attached files. */\n    NoAttachments: 2104,\n    /** Specifies the file name of the attachment. */\n    AttachmentName: 2105,\n    /** The MIME media type (and optional subtype) of the attachment. The values used are those assigned, listed and maintained by IANA (www.iana.org) [RFC2046]. See http://www.iana.org/assignments/media-types/index.html for available types.\n        Examples values (RFC number provided for reference here only):\n        \"application/pdf\" (see [RFC3778])\n        \"application/msword\" (for .doc files)\n        \"multipart/signed\" (see [RFC1847])\n        \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" (for .docx files) */\n    AttachmentMediaType: 2106,\n    /** Specifies semantically the type of the attached document from a business perspective. The default classification scheme reuses the FIX standard classification scheme of a high level section (pretrade, trade, posttrade, etc.) and a category, then a specific application or document type. The expression follows {\"section/category/application type\"}.\n        The goal here is to map the attachment into the sections and categories of the FIX business messages if possible. The classification scheme can be expanded or replaced by counterparty agreement. This approach permits the introduction and reference to other business ontologies.\n        Example:\n        posttrade/confirmation/confirm\n        pretrade//termsheet */\n    AttachmentClassification: 2107,\n    /** Used to specify an external URL where the attachment can be obtained. */\n    AttachmentExternalURL: 2108,\n    /** The encoding type of the content provided in EncodedAttachment(2112).\n        The AttachmentEncodingType(2109) is a distinct and separate concept from MessageEncoding(347) that defines how FIX fields of type data are encoded. The MessageEncoding(347) is used to embed text in another character set (e.g. Unicode or Shift-JIS) within FIX. */\n    AttachmentEncodingType: 2109,\n    /** Unencoded content length in bytes. Can be used to validate successful unencoding. */\n    UnencodedAttachmentLen: 2110,\n    /** Byte length of encoded the EncodedAttachment(2112) field. */\n    EncodedAttachmentLen: 2111,\n    /** The content of the attachment in the encoding format specified in the AttachmentEncodingType(2109) field. */\n    EncodedAttachment: 2112,\n    /** The number of attachment keywords. */\n    NoAttachmentKeywords: 2113,\n    /** Can be used to provide data or keyword tagging of the content of the attachment. */\n    AttachmentKeyword: 2114,\n    /** Specifies the negotiation method to be used. */\n    NegotiationMethod: 2115,\n    /** The time of the next auction. */\n    NextAuctionTime: 2116,\n    /** Trade side of payout payer. */\n    ComplexOptPayoutPaySide: 2117,\n    /** Trade side of payout receiver. */\n    ComplexOptPayoutReceiveSide: 2118,\n    /** Reference to the underlier whose payments are being passed through. */\n    ComplexOptPayoutUnderlier: 2119,\n    /** Percentage of observed price for calculating the payout associated with the event. */\n    ComplexOptPayoutPercentage: 2120,\n    /** Specifies when the payout is to occur. */\n    ComplexOptPayoutTime: 2121,\n    /** Specifies the currency of the payout amount.\n        ComplexOptPayoutCurrencyCodeSource(2941) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent. */\n    ComplexOptPayoutCurrency: 2122,\n    /** Specifies the price percentage at which the complex event takes effect. Impact of the event price is determined by the ComplexEventType(1484). */\n    ComplexEventPricePercentage: 2123,\n    /** Specifies the first or only reference currency of the trade.\n        ComplexEventCurrencyOneCodeSource(2942) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\n        Applicable for complex FX option strategies. */\n    ComplexEventCurrencyOne: 2124,\n    /** Specifies the second reference currency of the trade.\n        ComplexEventCurrencyTwoCodeSource(2943) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\n        Applicable for complex FX option strategies. */\n    ComplexEventCurrencyTwo: 2125,\n    /** For foreign exchange Quanto option feature. */\n    ComplexEventQuoteBasis: 2126,\n    /** Specifies the fixed FX rate alternative for FX Quantro options. */\n    ComplexEventFixedFXRate: 2127,\n    /** Specifies the method according to which an amount or a date is determined.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    ComplexEventDeterminationMethod: 2128,\n    /** Used to identify the calculation agent. */\n    ComplexEventCalculationAgent: 2129,\n    /** Upper strike price for Asian option feature. Strike percentage for a Strike Spread. */\n    ComplexEventStrikePrice: 2130,\n    /** Strike factor for Asian option feature. Upper strike percentage for a Strike Spread. */\n    ComplexEventStrikeFactor: 2131,\n    /** Upper string number of options for a Strike Spread. */\n    ComplexEventStrikeNumberOfOptions: 2132,\n    /** Reference to credit event table elsewhere in the message. */\n    ComplexEventCreditEventsXIDRef: 2133,\n    /** The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring. */\n    ComplexEventCreditEventNotifyingParty: 2134,\n    /** The local business center for which the credit event is to be determined. The inclusion of this business center implies that Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions is replaced by the local time of the specified business center.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ComplexEventCreditEventBusinessCenter: 2135,\n    /** When this element is specified and set to 'Y', indicates that ISDA defined Standard Public Sources are applicable. */\n    ComplexEventCreditEventStandardSources: 2136,\n    /** The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two.\n        ISDA 2003 Term: Specified Number. */\n    ComplexEventCreditEventMinimumSources: 2137,\n    /** Identifier of this complex event for cross referencing elsewhere in the message. */\n    ComplexEventXID: 2138,\n    /** Reference to a complex event elsewhere in the message. */\n    ComplexEventXIDRef: 2139,\n    /** Specifies the methodology and/or assumptions used to generate the trade value. */\n    ValuationReferenceModel: 2140,\n    /** Specifies the type of trade strategy. */\n    StrategyType: 2141,\n    /** When this element is specified and set to 'Y', it indicates that common pricing applies. Common pricing may be relevant for a transaction that references more than one commodity reference price. */\n    CommonPricingIndicator: 2142,\n    /** Specifies the consequences of bullion settlement disruption events. */\n    SettlDisruptionProvision: 2143,\n    /** Specifies the rounding direction if not overridden elsewhere. */\n    InstrumentRoundingDirection: 2144,\n    /** Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7. */\n    InstrumentRoundingPrecision: 2145,\n    /** Indicator to determine if the instrument is to settle on open. */\n    LegSettleOnOpenFlag: 2146,\n    /** Specifies the method under which assignment was conducted. */\n    LegInstrmtAssignmentMethod: 2147,\n    /** Indicates the current state of the leg instrument. */\n    LegSecurityStatus: 2148,\n    /** A category of CDS credit event in which the underlying bond experiences a restructuring.\n        Used to define a CDS instrument. */\n    LegRestructuringType: 2149,\n    /** Specifies which issue (underlying bond) will receive payment priority in the event of a default.\n        Used to define a CDS instrument. */\n    LegSeniority: 2150,\n    /** Indicates the notional percentage of the deal that is still outstanding based on the remaining components of the index.\n        Used to calculate the true value of a CDS trade or position. */\n    LegNotionalPercentageOutstanding: 2151,\n    /** Used to reflect the Original value prior to the application of a credit event. See LegNotionalPercentageOutstanding(2151). */\n    LegOriginalNotionalPercentageOutstanding: 2152,\n    /** Lower bound percentage of the loss that the tranche can endure. */\n    LegAttachmentPoint: 2153,\n    /** Upper bound percentage of the loss the tranche can endure. */\n    LegDetachmentPoint: 2154,\n    /** Type of reference obligation for credit derivatives contracts. */\n    LegObligationType: 2155,\n    /** The sub-classification or notional schedule type of the swap. */\n    LegSwapSubClass: 2156,\n    /** The Nth reference obligation in a CDS reference basket. If specified without LegMthToDefault(2158) the default will trigger a CDS payout. If LegMthToDefault(2158) is also present then payout occurs between the Nth and Mth obligations to default. */\n    LegNthToDefault: 2157,\n    /** The Mth reference obligation to default in a CDS reference basket. When an NthToDefault(2157) to MthToDefault(2158) are represented then the CDS payout occurs between the Nth and Mth obligations to default. */\n    LegMthToDefault: 2158,\n    /** Relevant settled entity matrix source. */\n    LegSettledEntityMatrixSource: 2159,\n    /** The publication date of the applicable version of the matrix. When this element is omitted, the Standard Terms Supplement defines rules for which version of the matrix is applicable. */\n    LegSettledEntityMatrixPublicationDate: 2160,\n    /** Specifies the coupon type of the bond. */\n    LegCouponType: 2161,\n    /** Specifies the total amount of the issue. Corresponds to the par value multiplied by the number of issued security. */\n    LegTotalIssuedAmount: 2162,\n    /** Time unit multiplier for the frequency of the bond's coupon payment. */\n    LegCouponFrequencyPeriod: 2163,\n    /** Time unit associated with the frequency of the bond's coupon payment. */\n    LegCouponFrequencyUnit: 2164,\n    /** The day count convention used in interest calculations for a bond or an interest bearing security. */\n    LegCouponDayCount: 2165,\n    /** Identifies the equity in which a convertible bond can be converted to. */\n    LegConvertibleBondEquityID: 2166,\n    /** Identifies class or source of the LegConvertibleBondEquitySecurityID(2166) value. */\n    LegConvertibleBondEquityIDSource: 2167,\n    /** Reference month if there is no applicable LegMaturityMonthYear(610) value for the contract or security. */\n    LegContractPriceRefMonth: 2168,\n    /** Indicates the seniority level of the lien in a loan. */\n    LegLienSeniority: 2169,\n    /** Specifies the type of loan when the credit default swap's reference obligation is a loan. */\n    LegLoanFacility: 2170,\n    /** Specifies the type of reference entity for first-to-default CDS basket contracts. */\n    LegReferenceEntityType: 2171,\n    /** The series identifier of a credit default swap index. */\n    LegIndexSeries: 2172,\n    /** The version of a credit default swap index annex. */\n    LegIndexAnnexVersion: 2173,\n    /** The date of a credit default swap index series annex. */\n    LegIndexAnnexDate: 2174,\n    /** The source of a credit default swap series annex. */\n    LegIndexAnnexSource: 2175,\n    /** In an outright or forward commodity trade that is cash settled this is the index used to determine the cash payment. */\n    LegSettlRateIndex: 2176,\n    /** This is an optional qualifying attribute of LegSettlementRateIndex(2176) such as the delivery zone for an electricity contract. */\n    LegSettlRateIndexLocation: 2177,\n    /** Description of the option expiration. */\n    LegOptionExpirationDesc: 2178,\n    /** Byte length of encoded (non-ASCII characters) EncodedLegOptionExpirationDesc(2180) field. */\n    EncodedLegOptionExpirationDescLen: 2179,\n    /** Encoded (non-ASCII characters) representation of the LegOptionExpirationDesc(2178) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegOptionExpirationDesc(2178). */\n    EncodedLegOptionExpirationDesc: 2180,\n    /** Used for derivatives. Multiplier applied to the strike price for the purpose of calculating the settlement value. */\n    LegStrikeMultiplier: 2181,\n    /** The number of shares/units for the financial instrument involved in the option trade. Used for derivatives. */\n    LegStrikeValue: 2182,\n    /** Used to express the unit of measure (UOM) of the price if different from the contract. */\n    LegStrikeUnitOfMeasure: 2183,\n    /** Specifies the index used to calculate the strike price. */\n    LegStrikeIndex: 2184,\n    /** Specifies the strike price offset from the named index. */\n    LegStrikeIndexSpread: 2185,\n    /** Specifies how the strike price is determined at the point of option exercise. The strike may be fixed throughout the life of the option, set at expiration to the value of the underlying, set to the average value of the underlying , or set to the optimal value of the underlying. */\n    LegStrikePriceDeterminationMethod: 2186,\n    /** Specifies the boundary condition to be used for the strike price relative to the underlying price at the point of option exercise. */\n    LegStrikePriceBoundaryMethod: 2187,\n    /** Used in combination with StrikePriceBoundaryMethod(2187) to specify the percentage of the strike price in relation to the underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls. */\n    LegStrikePriceBoundaryPrecision: 2188,\n    /** Specifies how the underlying price is determined at the point of option exercise. The underlying price may be set to the current settlement price, set to a special reference, set to the optimal value of the underlying during the defined period (\"Look-back\") or set to the average value of the underlying during the defined period (\"Asian option\"). */\n    LegUnderlyingPriceDeterminationMethod: 2189,\n    /** Minimum price increment for a given exchange-traded instrument. Could also be used to represent tick value. */\n    LegMinPriceIncrement: 2190,\n    /** Minimum price increment amount associated with the LegMinPriceIncrement(2190). For listed derivatives, the value can be calculated by multiplying LegMinPriceIncrement(2190) by LegContractMultiplier(614). */\n    LegMinPriceIncrementAmount: 2191,\n    /** Settlement method for a contract or instrument. Additional values may be used with bilateral agreement. */\n    LegSettlMethod: 2192,\n    /** Indicates the type of valuation method or trigger payout for an in-the-money option. */\n    LegOptPayoutType: 2193,\n    /** Cash amount indicating the pay out associated with an option. For binary options this is a fixed amount. */\n    LegOptPayoutAmount: 2194,\n    /** Specifies the method for price quotation. */\n    LegPriceQuoteMethod: 2195,\n    /** Specifies the type of valuation method applied. */\n    LegValuationMethod: 2196,\n    /** Specifies the source of trade valuation data. */\n    LegValuationSource: 2197,\n    /** Specifies the methodology and/or assumptions used to generate the trade value. */\n    LegValuationReferenceModel: 2198,\n    /** Indicates whether instruments are pre-listed only or can also be defined via user request. */\n    LegListMethod: 2199,\n    /** Used to express the ceiling price of a capped call. */\n    LegCapPrice: 2200,\n    /** Used to express the floor price of a capped put. */\n    LegFloorPrice: 2201,\n    /** Used to indicate a derivatives security that can be defined using flexible terms. The terms commonly permitted to be defined by market participants are expiration date and strike price. FlexibleIndicator is an alternative to LegCFICode(608) Standard/Non-standard attribute. */\n    LegFlexibleIndicator: 2202,\n    /** Used to indicate if a product or group of product supports the creation of flexible securities. */\n    LegFlexProductEligibilityIndicator: 2203,\n    /** The start time of the time range on which a complex event date is effective.\n        The start time must always be less than or equal to the end time. */\n    LegComplexEventStartTime: 2204,\n    /** Position Limit for a given exchange-traded product. */\n    LegPositionLimit: 2205,\n    /** Position limit in the near-term contract for a given exchange-traded product. */\n    LegNTPositionLimit: 2206,\n    /** The program under which a commercial paper is issued. */\n    LegCPProgram: 2207,\n    /** The registration type of a commercial paper issuance. */\n    LegCPRegType: 2208,\n    /** Indicates whether a restriction applies to short selling a security. */\n    LegShortSaleRestriction: 2209,\n    /** Indicates the broad product or asset classification. May be used to provide grouping for the product taxonomy (Product(460), SecurityType(167), etc.) and/or the risk taxonomy (AssetClass(1938), AssetSubClass(1939), AssetType(1940), etc.). */\n    AssetGroup: 2210,\n    /** Specifies the type of trade strategy. */\n    LegStrategyType: 2211,\n    /** When this element is specified and set to 'Y', it indicates that common pricing applies. Common pricing may be relevant for a transaction that references more than one commodity reference price. */\n    LegCommonPricingIndicator: 2212,\n    /** Specifies the consequences of bullion settlement disruption events. */\n    LegSettlDisruptionProvision: 2213,\n    /** Specifies the rounding direction if not overridden elsewhere.\n        Applicable for complex FX option strategies. */\n    LegInstrumentRoundingDirection: 2214,\n    /** Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7. */\n    LegInstrumentRoundingPrecision: 2215,\n    /** The fee rate when MiscFeeAmt(137) is a percentage of trade quantity. */\n    MiscFeeRate: 2216,\n    /** The fee amount due if different from MiscFeeAmt(137). */\n    MiscFeeAmountDue: 2217,\n    /** Number of complex events in the repeating group. */\n    NoLegComplexEvents: 2218,\n    /** Identifies the type of complex event. */\n    LegComplexEventType: 2219,\n    /** Trade side of payout payer. */\n    LegComplexOptPayoutPaySide: 2220,\n    /** Trade side of payout receiver. */\n    LegComplexOptPayoutReceiveSide: 2221,\n    /** Reference to the underlier whose payments are being passed through. */\n    LegComplexOptPayoutUnderlier: 2222,\n    /** Cash amount indicating the pay out associated with an event. For binary options this is a fixed amount. */\n    LegComplexOptPayoutAmount: 2223,\n    /** Percentage of observed price for calculating the payout associated with the event. */\n    LegComplexOptPayoutPercentage: 2224,\n    /** Specifies when the payout is to occur. */\n    LegComplexOptPayoutTime: 2225,\n    /** Specifies the currency of the payout amount.\n        LegComplexOptPayoutCurrencyCodeSource(2944) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent. */\n    LegComplexOptPayoutCurrency: 2226,\n    /** Specifies the price at which the complex event takes effect. Impact of the event price is determined by the LegComplexEventType(2219). */\n    LegComplexEventPrice: 2227,\n    /** Specifies the price percentage at which the complex event takes effect. Impact of the event price is determined by the LegComplexEventType(2219). */\n    LegComplexEventPricePercentage: 2228,\n    /** Specifies the boundary condition to be used for the event price relative to the complex event price at the point the complex event outcome takes effect as determined by the LegComplexEventPriceTimeType(2231). */\n    LegComplexEventPriceBoundaryMethod: 2229,\n    /** Used in combination with LegComplexEventPriceBoundaryMethod(2229) to specify the percentage of the strike price in relation to the underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls. */\n    LegComplexEventPriceBoundaryPrecision: 2230,\n    /** Specifies when the complex event outcome takes effect. The outcome of a complex event is a payout or barrier action as specified by the LegComplexEventType(2219). */\n    LegComplexEventPriceTimeType: 2231,\n    /** Specifies the condition between complex events when more than one event is specified.\n        Multiple barrier events would use an \"or\" condition since only one can be effective at a given time. A set of digital range events would use an \"and\" condition since both conditions must be in effect for a payout to result. */\n    LegComplexEventCondition: 2232,\n    /** Specifies the first or only reference currency of the trade.\n        LegComplexEventCurrencyOneCodeSource(2945) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\n        Applicable for complex FX option strategies. */\n    LegComplexEventCurrencyOne: 2233,\n    /** Specifies the second reference currency of the trade.\n        LegComplexEventCurrencyTwoCodeSource(2946) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\n        Applicable for complex FX option strategies. */\n    LegComplexEventCurrencyTwo: 2234,\n    /** For foreign exchange Quanto option feature. */\n    LegComplexEventQuoteBasis: 2235,\n    /** Specifies the fixed FX rate alternative for FX Quantro options. */\n    LegComplexEventFixedFXRate: 2236,\n    /** Specifies the method according to which an amount or a date is determined.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    LegComplexEventDeterminationMethod: 2237,\n    /** Used to identify the calculation agent. */\n    LegComplexEventCalculationAgent: 2238,\n    /** Upper strike price for Asian option feature. Strike percentage for a Strike Spread. */\n    LegComplexEventStrikePrice: 2239,\n    /** Strike factor for Asian option feature. Upper strike percentage for a Strike Spread. */\n    LegComplexEventStrikeFactor: 2240,\n    /** Upper string number of options for a Strike Spread. */\n    LegComplexEventStrikeNumberOfOptions: 2241,\n    /** Reference to credit event table elsewhere in the message. */\n    LegComplexEventCreditEventsXIDRef: 2242,\n    /** The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring. */\n    LegComplexEventCreditEventNotifyingParty: 2243,\n    /** Specifies the local business center for which the credit event is to be determined. The inclusion of this business center implies that Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions is replaced by the local time of the specified business center.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegComplexEventCreditEventBusinessCenter: 2244,\n    /** When this element is specified and set to 'Y', indicates that ISDA defined Standard Public Sources are applicable. */\n    LegComplexEventCreditEventStandardSources: 2245,\n    /** The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two.\n        ISDA 2003 Term: Specified Number. */\n    LegComplexEventCreditEventMinimumSources: 2246,\n    /** The end time of the time range on which a complex event date is effective.\n        The end time must always be greater than or equal to the start time. */\n    LegComplexEventEndTime: 2247,\n    /** Identifier of this complex event for cross referencing elsewhere in the message. */\n    LegComplexEventXID: 2248,\n    /** Reference to a complex event elsewhere in the message. */\n    LegComplexEventXIDRef: 2249,\n    /** Number of complex event dates in the repeating group. */\n    NoLegComplexEventDates: 2250,\n    /** The start date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options.\n        The start date must always be less than or equal to end date. */\n    LegComplexEventStartDate: 2251,\n    /** The end date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options.\n        The end date must always be greater than or equal to start date. */\n    LegComplexEventEndDate: 2252,\n    /** Number of complex event times in the repeating group. */\n    NoLegComplexEventTimes: 2253,\n    /** Number of parties in the repeating group. */\n    NoLegInstrumentParties: 2254,\n    /** Used to identify party id related to instrument. */\n    LegInstrumentPartyID: 2255,\n    /** Used to identify source of instrument party id. */\n    LegInstrumentPartyIDSource: 2256,\n    /** Used to identify the role of instrument party id. */\n    LegInstrumentPartyRole: 2257,\n    /** Number of parties sub-IDs in the repeating group. */\n    NoLegInstrumentPartySubIDs: 2258,\n    /** PartySubID value within an instrument party repeating group. */\n    LegInstrumentPartySubID: 2259,\n    /** Type of LegInstrumentPartySubID (2259) value. */\n    LegInstrumentPartySubIDType: 2260,\n    /** Trade side of payout payer. */\n    UnderlyingComplexOptPayoutPaySide: 2261,\n    /** Trade side of payout receiver. */\n    UnderlyingComplexOptPayoutReceiveSide: 2262,\n    /** Reference to the underlier whose payments are being passed through. */\n    UnderlyingComplexOptPayoutUnderlier: 2263,\n    /** Percentage of observed price for calculating the payout associated with the event. */\n    UnderlyingComplexOptPayoutPercentage: 2264,\n    /** The time when the payout is to occur. */\n    UnderlyingComplexOptPayoutTime: 2265,\n    /** Specifies the currency of the payout amount.\n        UnderlyingComplexOptPayoutCurrencyCodeSource(2947) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent. */\n    UnderlyingComplexOptPayoutCurrency: 2266,\n    /** Specifies the price percentage at which the complex event takes effect. Impact of the event price is determined by the UnderlyingComplexEventType(2046). */\n    UnderlyingComplexEventPricePercentage: 2267,\n    /** Specifies the first or only reference currency of the trade.\n        UnderlyingComplexEventCurrencyOneCodeSource(2948) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\n        Applicable for complex FX option strategies. */\n    UnderlyingComplexEventCurrencyOne: 2268,\n    /** Specifies the second reference currency of the trade.\n        UnderlyingComplexEventCurrencyTwoCodeSource(2949) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\n        Applicable for complex FX option strategies. */\n    UnderlyingComplexEventCurrencyTwo: 2269,\n    /** Specifies the currency pairing for the quote. */\n    UnderlyingComplexEventQuoteBasis: 2270,\n    /** Specifies the fixed FX rate alternative for FX Quantro options. */\n    UnderlyingComplexEventFixedFXRate: 2271,\n    /** Specifies the method according to which an amount or a date is determined.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    UnderlyingComplexEventDeterminationMethod: 2272,\n    /** Used to identify the calculation agent. */\n    UnderlyingComplexEventCalculationAgent: 2273,\n    /** Upper strike price for Asian option feature. Strike percentage for a Strike Spread. */\n    UnderlyingComplexEventStrikePrice: 2274,\n    /** Strike factor for Asian option feature. Upper strike percentage for a Strike Spread. */\n    UnderlyingComplexEventStrikeFactor: 2275,\n    /** Upper string number of options for a Strike Spread. */\n    UnderlyingComplexEventStrikeNumberOfOptions: 2276,\n    /** Reference to credit event table elsewhere in the message. */\n    UnderlyingComplexEventCreditEventsXIDRef: 2277,\n    /** The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring. */\n    UnderlyingComplexEventCreditEventNotifyingParty: 2278,\n    /** Specifies the local business center for which the credit event is to be determined. The inclusion of this business center implies that Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions is replaced by the local time of the specified business center.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingComplexEventCreditEventBusinessCenter: 2279,\n    /** When this element is specified and set to 'Y', indicates that ISDA defined Standard Public Sources are applicable. */\n    UnderlyingComplexEventCreditEventStandardSources: 2280,\n    /** The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two.\n        ISDA 2003 Term: Specified Number. */\n    UnderlyingComplexEventCreditEventMinimumSources: 2281,\n    /** Identifier of this complex event for cross referencing elsewhere in the message. */\n    UnderlyingComplexEventXID: 2282,\n    /** Reference to a complex event elsewhere in the message. */\n    UnderlyingComplexEventXIDRef: 2283,\n    /** In an outright or forward commodity trade that is cash settled this is the index used to determine the cash payment. */\n    UnderlyingSettlRateIndex: 2284,\n    /** This is an optional qualifying attribute of UnderlyingSettlementRateIndex(2284) such as the delivery zone for an electricity contract. */\n    UnderlyingSettlRateIndexLocation: 2285,\n    /** Description of the option expiration. */\n    UnderlyingOptionExpirationDesc: 2286,\n    /** Byte length of encoded (non-ASCII characters) EncodedUnderlyingOptionExpirationDesc(2288) field. */\n    EncodedUnderlyingOptionExpirationDescLen: 2287,\n    /** Encoded (non-ASCII characters) representation of the UnderlyingOptionExpirationDesc(2286) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingOptionExpirationDesc(2286). */\n    EncodedUnderlyingOptionExpirationDesc: 2288,\n    /** The sub-classification or notional schedule type of the swap. */\n    UnderlyingSwapSubClass: 2289,\n    /** Used to express the unit of measure (UOM) of the price if different from the contract. */\n    UnderlyingStrikeUnitOfMeasure: 2290,\n    /** Specifies the index used to calculate the strike price. */\n    UnderlyingStrikeIndex: 2291,\n    /** Specifies the strike price offset from the named index. */\n    UnderlyingStrikeIndexSpread: 2292,\n    /** Specifies the source of trade valuation data. */\n    UnderlyingValuationSource: 2293,\n    /** Specifies the methodology and/or assumptions used to generate the trade value. */\n    UnderlyingValuationReferenceModel: 2294,\n    /** Specifies the type of trade strategy. */\n    UnderlyingStrategyType: 2295,\n    /** When this element is specified and set to 'Y', it indicates that common pricing applies. Common pricing may be relevant for a transaction that references more than one commodity reference price. */\n    UnderlyingCommonPricingIndicator: 2296,\n    /** Specifies the consequences of settlement disruption events. */\n    UnderlyingSettlDisruptionProvision: 2297,\n    /** Specifies the rounding direction if not overridden elsewhere. */\n    UnderlyingInstrumentRoundingDirection: 2298,\n    /** Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7. */\n    UnderlyingInstrumentRoundingPrecision: 2299,\n    /** Total amount traded for this account (i.e. quantity * price) expressed in units of currency. */\n    AllocGrossTradeAmt: 2300,\n    /** The positive or negative change in quantity when this report is a trade correction or continuation. */\n    LastQtyChanged: 2301,\n    /** Specifies the version of a trade or contract. This is used by systems or trading platforms in conjunction with TradeID(1003) to uniquely identify the version of a trade or contract. If used the conditions for a change of version are subject to bilateral agreement. It is recommended to change the version only for significant updates to the business entity rather than for minor changes to trade details or systematic distribution of reports. Examples where the version would change are trade quantity modification, customer account assignment or trade novation. */\n    TradeVersion: 2302,\n    /** Indicates that the trade or event being reported occurred in the past and the trade is terminated or no longer active. */\n    HistoricalReportIndicator: 2303,\n    /** The number of asset attribute entries in the group. */\n    NoAssetAttributes: 2304,\n    /** Specifies the name of the attribute.\n        See http://www.fixtradingcommunity.org/codelists#Asset_Attribute_Types for code list of applicable asset attribute types. */\n    AssetAttributeType: 2305,\n    /** Specifies the value of the asset attribute. */\n    AssetAttributeValue: 2306,\n    /** Limit or lower acceptable value of the attribute. */\n    AssetAttributeLimit: 2307,\n    /** Number of asset attribute entries in the group. */\n    NoLegAssetAttributes: 2308,\n    /** Specifies the name of the attribute.\n        See http://www.fixtradingcommunity.org/codelists#Asset_Attribute_Types for code list of applicable asset attribute types. */\n    LegAssetAttributeType: 2309,\n    /** Specifies the value of the attribute. */\n    LegAssetAttributeValue: 2310,\n    /** Limit or lower acceptable value of the attribute. */\n    LegAssetAttributeLimit: 2311,\n    /** Number of asset attribute entries in the group. */\n    NoUnderlyingAssetAttributes: 2312,\n    /** Specifies the name of the attribute.\n        See http://www.fixtradingcommunity.org/codelists#Asset_Attribute_Types for code list of applicable asset attribute types. */\n    UnderlyingAssetAttributeType: 2313,\n    /** Specifies the value of the attribute. */\n    UnderlyingAssetAttributeValue: 2314,\n    /** Limit or lower acceptable value of the attribute. */\n    UnderlyingAssetAttributeLimit: 2315,\n    /** Status of risk limit report. */\n    RiskLimitReportStatus: 2316,\n    /** The reason for rejecting the PartyRiskLimitsReport(35=CM) or PartyRiskLimitsUpdateReport(35=CR). */\n    RiskLimitReportRejectReason: 2317,\n    /** The unique identifier of the PartyRiskLimitCheckRequest(35=DF) message. */\n    RiskLimitCheckRequestID: 2318,\n    /** The unique and static identifier, at the business entity level, of a risk limit check request. */\n    RiskLimitCheckID: 2319,\n    /** Specifies the transaction type of the risk limit check request. */\n    RiskLimitCheckTransType: 2320,\n    /** Specifies the type of limit check message. */\n    RiskLimitCheckType: 2321,\n    /** Specifies the message reference identifier of the risk limit check request message. */\n    RiskLimitCheckRequestRefID: 2322,\n    /** Specifies the type of limit amount check being requested. */\n    RiskLimitCheckRequestType: 2323,\n    /** Specifies the amount being requested for approval. */\n    RiskLimitCheckAmount: 2324,\n    /** Indicates the status of the risk limit check request. */\n    RiskLimitCheckRequestStatus: 2325,\n    /** Result of the credit limit check request. */\n    RiskLimitCheckRequestResult: 2326,\n    /** The credit/risk limit amount approved. */\n    RiskLimitApprovedAmount: 2327,\n    /** The unique identifier of the PartyActionRequest(35=DH) message. */\n    PartyActionRequestID: 2328,\n    /** Specifies the type of action to take or was taken for a given party. */\n    PartyActionType: 2329,\n    /** Used to indicate whether the message being sent is to test the receiving application's availability to process the message. When set to \"Y\" the message is a test message. If not specified, the message is by default not a test message. */\n    ApplTestMessageIndicator: 2330,\n    /** The unique identifier of the PartyActionReport(35=DI) message as assigned by the message sender. */\n    PartyActionReportID: 2331,\n    /** Specifies the action taken as a result of the PartyActionType(2239) of the PartyActionRequest(35=DH) message. */\n    PartyActionResponse: 2332,\n    /** Specifies the reason the PartyActionRequest(35=DH) was rejected. */\n    PartyActionRejectReason: 2333,\n    /** The reference identifier of the PartyRiskLimitCheckRequest(35=DF) message, or a similar out of band message, that contained the approval for the risk/credit limit check request. */\n    RefRiskLimitCheckID: 2334,\n    /** Specifies which type of identifier is specified in RefRiskLimitCheckID(2334) field. */\n    RefRiskLimitCheckIDType: 2335,\n    /** The time interval for which the clip size limit applies. The velocity time unit is expressed in RiskLimitVelocityUnit(2337). */\n    RiskLimitVelocityPeriod: 2336,\n    /** Unit of time in which RiskLimitVelocityPeriod(2336) is expressed. */\n    RiskLimitVelocityUnit: 2337,\n    /** Qualifies the value of RequestingPartyRole(1660). */\n    RequestingPartyRoleQualifier: 2338,\n    /** Specifies the type of credit limit check model workflow to apply for the specified party */\n    RiskLimitCheckModelType: 2339,\n    /** Used with derivatives when an event is express as a month-year with optional day or month or week of month.\n        Format:\n        YYYYMM (e.g. 199903)\n        YYYYMMDD (e.g. 20030323)\n        YYYYMMwN (e.g. 200303w2) for week\n        A specific date can be appended to the month-year. For instance, if multiple event types exist in the same Year and Month, but actually at a different time, a value can be appended, such as \"w\" or \"w2\" to indicate week. Likewise, the day of monty (0-31) can be appended to indicate a specific event date. */\n    EventMonthYear: 2340,\n    /** Used with derivatives when an event is express as a month-year with optional day or month or week of month.\n        Format:\n        YYYYMM (e.g. 199903)\n        YYYYMMDD (e.g. 20030323)\n        YYYYMMwN (e.g. 200303w2) for week\n        A specific date can be appended to the month-year. For instance, if multiple event types exist in the same Year and Month, but actually at a different time, a value can be appended, such as \"w\" or \"w2\" to indicate week. Likewise, the day of monty (0-31) can be appended to indicate a specific event date. */\n    LegEventMonthYear: 2341,\n    /** Used with derivatives when an event is express as a month-year with optional day or month or week of month.\n        Format:\n        YYYYMM (e.g. 199903)\n        YYYYMMDD (e.g. 20030323)\n        YYYYMMwN (e.g. 200303w2) for week\n        A specific date can be appended to the month-year. For instance, if multiple event types exist in the same Year and Month, but actually at a different time, a value can be appended, such as \"w\" or \"w2\" to indicate week. Likewise, the day of monty (0-31) can be appended to indicate a specific event date. */\n    UnderlyingEventMonthYear: 2342,\n    /** Indicates the status of the risk limit check performed on a trade. */\n    RiskLimitCheckStatus: 2343,\n    /** Indicates the status of the risk limit check performed on the side of a trade. */\n    SideRiskLimitCheckStatus: 2344,\n    /** Number of entitlement types in the repeating group. */\n    NoEntitlementTypes: 2345,\n    /** Leg Mid price/rate.\n        For OTC swaps, this is the mid-market mark (for example, as defined by CFTC).\n        For uncleared OTC swaps, LegMidPx(2346) and the MidPx(631) fields are mutually exclusive. */\n    LegMidPx: 2346,\n    /** Specifies the regulatory mandate or rule that the transaction complies with. */\n    RegulatoryTransactionType: 2347,\n    /** Indicates the broad product or asset classification. May be used to provide grouping for the product taxonomy (Product(460), SecurityType(167), etc.) and/or the risk taxonomy (AssetClass(1938), AssetSubClass(1939), AssetType(1940), etc.). */\n    LegAssetGroup: 2348,\n    /** Specifies the price decimal precision of the instrument.\n        For FX, this specifies the pip size in which forward points are calculated. Point (pip) size varies by currency pair. Major currencies are all traded in points of 0.0001, with the exception of JPY which has a point size of 0.01. */\n    PricePrecision: 2349,\n    /** Identifier of the collateral portfolio when reporting on a portfolio basis. */\n    CollateralPortfolioID: 2350,\n    /** Byte length of encoded (non-ASCII characters) EncodedComplianceText(2352) field. */\n    EncodedComplianceTextLen: 2351,\n    /** Encoded (non-ASCII characters) representation of the ComplianceText(2404) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the ComplianceText(2404) field. */\n    EncodedComplianceText: 2352,\n    /** Indicates the number of contract periods associated with the minimum trading unit for a given contract duration resulting in the number of total traded contracts.\n        As an example, 456 is the number of off-peak periods for a product with a minimum trading unit of 5 MWh resulting in 2280 total traded contracts. */\n    TradingUnitPeriodMultiplier: 2353,\n    /** Indicates the number of contract periods associated with the minimum trading unit for a given contract duration resulting in the number of total traded contracts.\n        As an example, 456 is the number of off-peak periods for a product with a minimum trading unit of 5 MWh resulting in 2280 total traded contracts. */\n    LegTradingUnitPeriodMultiplier: 2354,\n    /** The status of risk limits for a party. */\n    PartyRiskLimitStatus: 2355,\n    /** Indicates whether the trade price was adjusted for compensation (i.e. includes a mark-up, mark-down or commission) in the price paid.\n        In the context of MSRB and FINRA TRACE reporting requirements, this is used among firms to indicate trade remuneration. */\n    RemunerationIndicator: 2356,\n    /** Expresses the total quantity traded over the life of the contract when LegLastQty(1418) is to be repeated periodically over the term of the contract. The value is the product of LegLastQty(1418) and LegTradingUnitPeriodMultiplier(2353). */\n    LegTotalTradeQty: 2357,\n    /** Expresses the quantity bought/sold when LastQty is expressed in contracts. Used in addition to LegLastQty(1418), it is the product of LegLastQty(1418) and LegContractMultiplier(614). */\n    LegLastMultipliedQty: 2358,\n    /** Expresses the full total monetary value of the traded contract. The value is the product of LegLastPx(637) and LegTotalTradeQty(2357) or LegTotalTradeMultipliedQty(2360), if priced in units instead of contracts. */\n    LegTotalGrossTradeAmt: 2359,\n    /** Expresses the total trade quantity in units where LegContractMultiplier(614) is not 1. The value is the product of LegTotalTradeQty(2357) and LegContractMultiplier(614). */\n    LegTotalTradeMultipliedQty: 2360,\n    /** Use to identify a netting or compression group where trades in the group were netted or compressed. This includes both terminating trades and any remnant trades that result from the operation. */\n    CompressionGroupID: 2361,\n    /** Identifies an order or trade that should not be matched to an opposite order or trade if both buy and sell orders for the same asset contain the same SelfMatchPreventionID(2362) and submitted by the same firm. */\n    SelfMatchPreventionID: 2362,\n    /** Indicates the number of contract periods associated with the minimum trading unit for a given contract duration resulting in the number of total traded contracts.\n        As an example, 456 is the number of off-peak periods for a product with a minimum trading unit of 5 MWh resulting in 2280 total traded contracts. */\n    UnderlyingTradingUnitPeriodMultiplier: 2363,\n    /** Indicates action that triggered the Position Report. */\n    PosReportAction: 2364,\n    /** FX forward points added to SettlPrice(730). The value is expressed in decimal form and may be a negative.\n        As an example, 61.99 points is expressed as 0.006199. */\n    SettlForwardPoints: 2365,\n    /** Specifies whether LastPx(31) [TradeCaptureReport] or SettlPrice(730) [PositionReport] should be multiplied or divided. */\n    SettlPriceFxRateCalc: 2366,\n    /** Expresses the total quantity traded over the life of the contract when LastQty(32) is repeated periodically over the term of the contract. The value is the product of LastQty(32) and TradingUnitPeriodMultiplier(2353). */\n    TotalTradeQty: 2367,\n    /** Expresses the quantity bought or sold when LastQty(32) is expressed in number of contracts. Used in addition to LastQty(32). It is the product of LastQty(32) and ContractMultiplier(231). */\n    LastMultipliedQty: 2368,\n    /** Expresses the full total monetary value of the traded contract. The value is the product of LastPx(31) and TotalTradeQty(2367) or TotalTradeMultipliedQty(2370), if priced in units instead of contracts. */\n    TotalGrossTradeAmt: 2369,\n    /** Expresses the total trade quantity in units where ContractMultiplier(231) is not 1. The value is the product of TotalTradeQty(2367) and ContractMultiplier(231). */\n    TotalTradeMultipliedQty: 2370,\n    /** Encoded (non-ASCII characters) representation of the TradeContinuationText(2374) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the TradeContinuationText(2374) field. */\n    EncodedTradeContinuationText: 2371,\n    /** Byte length of encoded (non-ASCII characters) EncodedTradeContinuationText(2371) field. */\n    EncodedTradeContinuationTextLen: 2372,\n    /** Indicates whether the trade or position was entered into as an intra-group transaction, i.e. between two units of the same parent entity having majority ownership interest in both counterparties.\n        In the context of EMIR this refers to Regulation (EU) 648/2012 Article 3 \"intragroup transactions\" section 1 which states: \"In relation to a non-financial counterparty, an intragroup transaction is an OTC derivative contract entered into with another counterparty which is part of the same group provided that both counterparties are included in the same consolidation on a full basis and they are subject to an appropriate centralised risk evaluation, measurement and control procedures and that counterparty is established in the Union or, if it is established in a third country, the Commission has adopted an implementing act under Article 13(2) in respect of that third country. Canada's similar requirement is under Appendix A to OSC Rule 91-507.\" */\n    IntraFirmTradeIndicator: 2373,\n    /** Free form text to specify additional trade continuation information or data. */\n    TradeContinuationText: 2374,\n    /** The type of identification taxonomy used to identify the security. */\n    TaxonomyType: 2375,\n    /** Used to further qualify the value of PartyRole(452). */\n    PartyRoleQualifier: 2376,\n    /** Used to further qualify the value of DerivativeInstrumentPartyRole(1295). */\n    DerivativeInstrumentPartyRoleQualifier: 2377,\n    /** Used to further qualify the value of InstrumentPartyRole(1051). */\n    InstrumentPartyRoleQualifier: 2378,\n    /** Used to further qualify the value of LegInstrumentPartyRole(2257). */\n    LegInstrumentPartyRoleQualifier: 2379,\n    /** Used to further qualify the value of LegProvisionPartyRole(40536). */\n    LegProvisionPartyRoleQualifier: 2380,\n    /** Used to further qualify the value of Nested2PartyRole(759). */\n    Nested2PartyRoleQualifier: 2381,\n    /** Used to further qualify the value of Nested3PartyRole(951). */\n    Nested3PartyRoleQualifier: 2382,\n    /** Used to further qualify the value of Nested4PartyRole(1417). */\n    Nested4PartyRoleQualifier: 2383,\n    /** Used to further qualify the value of NestedPartyRole(538). */\n    NestedPartyRoleQualifier: 2384,\n    /** Used to further qualify the value of ProvisionPartyRole(40177). */\n    ProvisionPartyRoleQualifier: 2385,\n    /** Used to further qualify the value of RequestedPartyRole(1509). */\n    RequestedPartyRoleQualifier: 2386,\n    /** Indicates the contingency attribute for a trade in an asset class that may be contingent on the clearing of a corresponding paired trade (for example Exchange for Physical (EFP), Exchange for Swap (EFS), Exchange for Related (EFR) or Exchange for Option (EFO), collectively called EFRPs). Once the paired trade clears or fails to clear, the related trade (the trade which carries this attribute) ceases to exist. */\n    TradeContingency: 2387,\n    /** Used to further qualify the value of RootPartyRole(1119). */\n    RootPartyRoleQualifier: 2388,\n    /** Used to further qualify the value of SettlPartyRole(784). */\n    SettlPartyRoleQualifier: 2389,\n    /** A reference or control identifier or number used as a trade confirmation key.\n        An example of a control identifier is the DTC ID Control Number. */\n    TradeConfirmationReferenceID: 2390,\n    /** Used to further qualify the value of UnderlyingInstrumentPartyRole(1061). */\n    UnderlyingInstrumentPartyRoleQualifier: 2391,\n    /** The reference identifier to the PartyRiskLimitCheckRequest(35=DF), or a similar out of band message, message that contained the approval or rejection for risk/credit limit check for this allocation. */\n    AllocRefRiskLimitCheckID: 2392,\n    /** Specifies which type of identifier is specified in AllocRefRiskLimitCheckID(2392) field. */\n    AllocRefRiskLimitCheckIDType: 2393,\n    /** The total amount of the limit that has been drawn down against the counterparty. This includes the amount for prior trades. It may or may not include the amount for the given trade, specified in LastLimitAmt(1632), depending upon whether the given trade is considered pending. */\n    LimitUtilizationAmt: 2394,\n    /** The limit for the counterparty. This represents the total limit amount, independent of any amount already utilized. */\n    LimitAmt: 2395,\n    /** Indicates the scope of the limit by role.\n        Used to indicate whether this is a customer account limit, a clearing firm limit, etc. */\n    LimitRole: 2396,\n    /** Specifies the scope to which the RegulatoryTradeID(1903) applies. Used when a trade must be assigned more than one identifier, e.g. one for the clearing member and another for the client on a cleared trade as with the principal model in Europe. */\n    RegulatoryTradeIDScope: 2397,\n    /** Specifies the scope to which the SideRegulatoryTradeID(1972) applies. Used when a trade must be assigned more than one identifier, e.g. one for the clearing member and another for the client on a cleared trade as with the principal model in Europe. */\n    SideRegulatoryTradeIDScope: 2398,\n    /** Specifies the scope to which the AllocRegulatoryTradeID(1909) applies. Used when a trade must be assigned more than one identifier, e.g. one for the clearing member and another for the client on a cleared trade as with the principal model in Europe. */\n    AllocRegulatoryTradeIDScope: 2399,\n    /** Specifies an explicit business date for associated reference data or transaction. Used when an implicit date is not sufficiently specific. */\n    EffectiveBusinessDate: 2400,\n    /** Indicates if the list of orders was initially received manually (as opposed to electronically) or if it was entered manually (as opposed to entered by automated trading software). */\n    ListManualOrderIndicator: 2401,\n    /** Subtype of an entitlement specified in EntitlementType(1775). */\n    EntitlementSubType: 2402,\n    /** Quote model type */\n    QuoteModelType: 2403,\n    /** Free text for compliance information required for regulatory reporting. */\n    ComplianceText: 2404,\n    /** Specifies how the transaction was executed, e.g. via an automated execution platform or other method. */\n    ExecMethod: 2405,\n    /** Identifies the leg of the trade the entry applies to by referencing the leg's LegID(1788). */\n    AllocRegulatoryLegRefID: 2406,\n    /** FX spot rate. */\n    ComplexEventSpotRate: 2407,\n    /** FX forward points added to spot rate. May be a negative value. */\n    ComplexEventForwardPoints: 2408,\n    /** FX spot rate. */\n    LegComplexEventSpotRate: 2409,\n    /** FX forward points added to spot rate. May be a negative value. */\n    LegComplexEventForwardPoints: 2410,\n    /** Identifies the leg of the trade the entry applies to by referencing the leg's LegID(1788). */\n    RegulatoryLegRefID: 2411,\n    /** Identifies the page heading from the rate source. */\n    RateSourceReferencePageHeading: 2412,\n    /** The security identifier of the instrument, instrument leg or underlying instrument with which the related instrument has correlation. */\n    RelatedToSecurityID: 2413,\n    /** Identifies class or source of the RelatedToSecurityID(2413) value. */\n    RelatedToSecurityIDSource: 2414,\n    /** StreamXID(41303), LegStreamXID(41700) or UnderlyingStreamXID(42016) of the stream with which the related instrument has correlation. */\n    RelatedToStreamXIDRef: 2415,\n    /** Identifies the leg of the trade the entry applies to by referencing the leg's LegID(1788). */\n    SideRegulatoryLegRefID: 2416,\n    /** The DividendPeriodXID(42293) of the stream dividend period with which the related instrument has correlation. */\n    RelatedToDividendPeriodXIDRef: 2417,\n    /** An identifier created by the trading party for the life cycle event associated with this report. */\n    FirmTradeEventID: 2418,\n    /** FX spot rate. */\n    UnderlyingComplexEventSpotRate: 2419,\n    /** FX forward points added to spot rate. May be a negative value. */\n    UnderlyingComplexEventForwardPoints: 2420,\n    /** A reference to either the value of the FillExecID(1363) or an implicit position of a fills instance in the FillsGrp component. */\n    FillRefID: 2421,\n    /** Unique message identifier for an order request as assigned by the submitter of the request. */\n    OrderRequestID: 2422,\n    /** Unique message identifier for a mass order request as assigned by the submitter of the orders. */\n    MassOrderRequestID: 2423,\n    /** Unique message identifier for the response to a mass order request as assigned by the receiver of the orders. */\n    MassOrderReportID: 2424,\n    /** Status of mass order request. */\n    MassOrderRequestStatus: 2425,\n    /** Request result of mass order request. */\n    MassOrderRequestResult: 2426,\n    /** The level of response requested from receiver of mass order messages. A default value should be bilaterally agreed. */\n    OrderResponseLevel: 2427,\n    /** Number of order entries. */\n    NoOrderEntries: 2428,\n    /** Specifies the action to be taken for the given order. */\n    OrderEntryAction: 2429,\n    /** Unique identifier for an order within a single MassOrder(35=DJ) message that can be used as a reference in the MassOrderAck(35=DK) message. */\n    OrderEntryID: 2430,\n    /** The initiating event when an ExecutionReport(35=8) is sent. */\n    ExecTypeReason: 2431,\n    /** Totals number of orders for a mass order or its acknowledgment being fragmented across multiple messages. */\n    TotNoOrderEntries: 2432,\n    /** Number of target party sub IDs in the repeating group. */\n    NoTargetPartySubIDs: 2433,\n    /** Party sub-identifier value within a target party repeating group. */\n    TargetPartySubID: 2434,\n    /** Type of TargetPartySubID(2434) value. */\n    TargetPartySubIDType: 2435,\n    /** Unique identifier for the transfer instruction assigned by the submitter. */\n    TransferInstructionID: 2436,\n    /** The unique identifier assigned to the transfer entity once it is received, for example, by the CCP or the party governing the transfer process. Generally this same identifier for the transfer is used by all parties involved. */\n    TransferID: 2437,\n    /** Unique identifier for the transfer report message. */\n    TransferReportID: 2438,\n    /** Indicates the type of transfer transaction. */\n    TransferTransType: 2439,\n    /** Indicates the type of transfer request. */\n    TransferType: 2440,\n    /** Indicates the type of transfer. */\n    TransferScope: 2441,\n    /** Status of the transfer. */\n    TransferStatus: 2442,\n    /** Reason the transfer instruction was rejected. */\n    TransferRejectReason: 2443,\n    /** Indicates the type of transfer report. */\n    TransferReportType: 2444,\n    /** Timestamp of aggressive order or quote resulting in match event. */\n    AggressorTime: 2445,\n    /** Side of aggressive order or quote resulting in match event. */\n    AggressorSide: 2446,\n    /** Indicates if the instrument is in \"fast market\" state.\n        A \"fast market\" is a state in which market rules are applied to instrument(s) or entire trading session when market events causes significant price movements due to public information. */\n    FastMarketIndicator: 2447,\n    /** Indicate whether linkage handling is in effect for an instrument or not. */\n    LinkageHandlingIndicator: 2448,\n    /** Number of buy orders involved in a trade. */\n    NumberOfBuyOrders: 2449,\n    /** Number of sell orders involved in a trade. */\n    NumberOfSellOrders: 2450,\n    /** Calculation method used to determine settlement price. */\n    SettlPriceDeterminationMethod: 2451,\n    /** Message identifier for a statistics request. */\n    MDStatisticReqID: 2452,\n    /** Message identifier for a statistics report. */\n    MDStatisticRptID: 2453,\n    /** The short name or acronym for a set of statistic parameters. */\n    MDStatisticName: 2454,\n    /** Can be used to provide an optional textual description for a statistic. */\n    MDStatisticDesc: 2455,\n    /** Type of statistic value. */\n    MDStatisticType: 2456,\n    /** Entities used as basis for the statistics. */\n    MDStatisticScope: 2457,\n    /** Sub-scope of the statistics to further reduce the entities used as basis for the statistics. */\n    MDStatisticSubScope: 2458,\n    /** Scope details of the statistics to reduce the number of events being used as basis for the statistics. */\n    MDStatisticScopeType: 2459,\n    /** Dissemination frequency of statistics.\n        Special meaning for a value of zero which represents an event-driven dissemination in real time (e.g. as soon as a new trade occurs). */\n    MDStatisticFrequencyPeriod: 2460,\n    /** Time unit for MDStatisticFrequencyPeriod(2460). */\n    MDStatisticFrequencyUnit: 2461,\n    /** Number of time units between the calculation of the statistic and its dissemination. Can be used to defer or delay publication. */\n    MDStatisticDelayPeriod: 2462,\n    /** Time unit for MDStatisticDelayPeriod(2462). */\n    MDStatisticDelayUnit: 2463,\n    /** Type of interval over which statistic is calculated. */\n    MDStatisticIntervalType: 2464,\n    /** Time unit for MDStatisticIntervalType(2464). */\n    MDStatisticIntervalTypeUnit: 2465,\n    /** Length of time over which the statistic is calculated. Special meaning for a value of zero to express that there is no aggregation over time. Can be used with other interval types expressing relative date and time ranges to combine them with sliding window peaks, e.g. highest volume across 1 minute intervals of the previous day. */\n    MDStatisticIntervalPeriod: 2466,\n    /** Time unit for MDStatisticIntervalPeriod(2466). */\n    MDStatisticIntervalUnit: 2467,\n    /** First day of range for which statistical data is collected. */\n    MDStatisticStartDate: 2468,\n    /** Last day of range for which statistical data is collected. */\n    MDStatisticEndDate: 2469,\n    /** Start time of the time range for which statistical data is collected. */\n    MDStatisticStartTime: 2470,\n    /** End time of the time range for which statistical data is collected. */\n    MDStatisticEndTime: 2471,\n    /** Ratios between various entities. */\n    MDStatisticRatioType: 2472,\n    /** Result returned in response to MarketDataStatisticsRequest (35=DO). */\n    MDStatisticRequestResult: 2473,\n    /** Number of market data statistics. */\n    NoMDStatistics: 2474,\n    /** Unique identifier for a statistic. */\n    MDStatisticID: 2475,\n    /** Time of calculation of a statistic. */\n    MDStatisticTime: 2476,\n    /** Status for a statistic to indicate its availability. */\n    MDStatisticStatus: 2477,\n    /** Statistical value. */\n    MDStatisticValue: 2478,\n    /** Type of statistical value. */\n    MDStatisticValueType: 2479,\n    /** Unit of time for statistical value. */\n    MDStatisticValueUnit: 2480,\n    /** Byte length of encoded (non-ASCII characters) EncodedMDStatisticDesc(2482) field. */\n    EncodedMDStatisticDescLen: 2481,\n    /** Encoded (non-ASCII characters) representation of the MDStatisticDesc(2455) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the MDStatisticDesc(2455) field. */\n    EncodedMDStatisticDesc: 2482,\n    /** Indicates the status of the risk limit check performed on a trade for this allocation instance. */\n    AllocRiskLimitCheckStatus: 2483,\n    /** The unique transaction entity identifier assigned by the firm. */\n    FirmTransactionID: 2484,\n    /** The unique transaction entity identifier. */\n    TransactionID: 2485,\n    /** The reference to a wire transfer associated with the transaction. Wire references done via wire services such as Fedwire Output Message Accountabilitty Data \"OMAD\" or SWIFT Output Sequence Number \"OSN\". */\n    WireReference: 2486,\n    /** Reject reason code for rejecting the collateral report. */\n    CollRptRejectReason: 2487,\n    /** The status of the collateral report. */\n    CollRptStatus: 2488,\n    /** Identifier assigned to a collection of trades so that they can be analyzed as one atomic unit for risk assessment and clearing. */\n    PackageID: 2489,\n    /** Ordinal number of the trade within a series of related trades. */\n    TradeNumber: 2490,\n    /** Indicates the broad product or asset classification. May be used to provide grouping for the product taxonomy (Product(460), SecurityType(167), etc.) and/or the risk taxonomy (AssetClass(1938), AssetSubClass(1939), AssetType(1940), etc.). */\n    UnderlyingAssetGroup: 2491,\n    /** Used in pricing a group of individual Trade at Settlement (TAS) and Trade At Marker (TAM) contracts as an atomic unit. The value is the negotiated currency offset either at settlement (TAS) or at the time specified in the product definition (TAM). The final contract price is reported in LegLastPx(637). */\n    LegDifferentialPrice: 2492,\n    /** Encoded (non-ASCII characters) representation of the LegDocumentationText(2505) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the LegDocumentationText(2505) field. */\n    EncodedLegDocumentationText: 2493,\n    /** Byte length of encoded (non-ASCII characters) EncodedLegDocumentationText(2493) field. */\n    EncodedLegDocumentationTextLen: 2494,\n    /** Contractual currency forming the basis of a financing agreement and associated transactions. Usually, but not always, the same as the trade currency. */\n    LegAgreementCurrency: 2495,\n    /** A reference to the date the underlying agreement specified by LegAgreementID(2498) and LegAgreementDesc(2497) was executed. */\n    LegAgreementDate: 2496,\n    /** The full name of the base standard agreement, annexes and amendments in place between the principals applicable to a financing transaction. See http://www.fpml.org/coding-scheme/master-agreement-type for derivative values. */\n    LegAgreementDesc: 2497,\n    /** A common reference to the applicable standing agreement between the counterparties to a financing transaction. */\n    LegAgreementID: 2498,\n    /** The version of the master agreement. */\n    LegAgreementVersion: 2499,\n    /** Describes the type of broker confirmation executed between the parties. Can be used as an alternative to MasterConfirmationDesc(1962). See http://www.fpml.org/coding-scheme/broker-confirmation-type for values. */\n    LegBrokerConfirmationDesc: 2500,\n    /** The date of the ISDA Credit Support Agreement executed between the parties and intended to govern collateral arrangements for all OTC derivatives transactions between those parties. */\n    LegCreditSupportAgreementDate: 2501,\n    /** The type of ISDA Credit Support Agreement. See http://www.fpml.org/coding-scheme/credit-support-agreement-type for values. */\n    LegCreditSupportAgreementDesc: 2502,\n    /** A common reference or unique identifier to identify the ISDA Credit Support Agreement executed between the parties. */\n    LegCreditSupportAgreementID: 2503,\n    /** Identifies type of settlement. */\n    LegDeliveryType: 2504,\n    /** A sentence or phrase pertinent to the trade, not a reference to an external document. E.g. \"To be registered with the U.S. Environmental Protection Agency, Acid Rain Division, SO2 Allowance Tracking System\". */\n    LegDocumentationText: 2505,\n    /** End date of a financing deal, i.e. the date the seller reimburses the buyer and takes back control of the collateral. */\n    LegEndDate: 2506,\n    /** Identification of the law governing the transaction. See http://www.fpml.org/coding-scheme/governing-law for values. */\n    LegGoverningLaw: 2507,\n    /** The fraction of the cash consideration that must be collateralized, expressed as a percent. A MarginRatio of 2% indicates that the value of the collateral (after deducting for \"haircut\") must exceed the cash consideration by 2%. */\n    LegMarginRatio: 2508,\n    /** The date that an annexation to the master confirmation was executed between the parties. */\n    LegMasterConfirmationAnnexDate: 2509,\n    /** Alternative to broker confirmation. The date of the confirmation executed between the parties and intended to govern all relevant transactions between those parties. */\n    LegMasterConfirmationDate: 2510,\n    /** The type of master confirmation executed between the parties. See http://www.fpml.org/coding-scheme/master-confirmation-type for values. */\n    LegMasterConfirmationDesc: 2511,\n    /** The type of master confirmation annexation executed between the parties. See http://www.fpml.org/coding-scheme/master-confirmation-annex-type for values. */\n    LegMasterConfirmationAnnexDesc: 2512,\n    /** Start date of a financing deal, i.e. the date the buyer pays the seller cash and takes control of the collateral. */\n    LegStartDate: 2513,\n    /** Type of financing termination. */\n    LegTerminationType: 2514,\n    /** Used for the calculated quantity of the other side of the currency trade applicable to the allocation instance. */\n    AllocCalculatedCcyQty: 2515,\n    /** An encoded collateral request processing instruction to the receiver. */\n    CollateralRequestInstruction: 2516,\n    /** A unique identifier to link together a set or group of requests. */\n    CollateralRequestLinkID: 2517,\n    /** Ordinal number of the request within a set or group of requests. */\n    CollateralRequestNumber: 2518,\n    /** Total number of request messages within a set or group of requests. */\n    TotNumCollateralRequests: 2519,\n    /** Communicates the underlying condition when the request response indicates \"warning\". */\n    WarningText: 2520,\n    /** Encoded (non-ASCII characters) representation of the WarningText(2520) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the WarningText(2520) field. */\n    EncodedWarningText: 2521,\n    /** Byte length of encoded (non-ASCII characters) EncodedWarningtText(2521) field. */\n    EncodedWarningTextLen: 2522,\n    /** Indicates whether the order or quote was crossed with another order or quote having the same context, e.g. having accounts with a common ownership. */\n    CrossedIndicator: 2523,\n    /** Used between parties to convey trade reporting status.\n        In the context of regulatory reporting, this field may be used by the reporting party (e.g. party obligated to report to regulators) to inform their trading counterparty or other interested parties the trade reporting status.\n        The term \u201Cauthorised reporter\u201D represents the appropriate reporting firm under applicable regulation. In the context of ESMA reporting, this is the \"Systematic Internaliser\". In the context of FCA reporting, this is the \"Designated Reporter\". */\n    TradeReportingIndicator: 2524,\n    /** Indicates whether the transaction or position was entered into between two affiliated firms. I.e. one counterparty has an ownership interest in the other counterparty but less than the majority interest.\n        This trade attribute was identified under and applies to the Canadian CSA trade reporting regulations. */\n    AffiliatedFirmsTradeIndicator: 2525,\n    /** Identifies the swap trade as an \"international\" transaction.\n        In the context of CFTC Regulation 45.3(h), an international swap is required by U.S. law and the law of another jurisdiction to be reported both to a US Swaps Data Repository and to a different trade repository registered within the other jurisdiction. The additional SDRs must be identified in the appropriate Parties component with PartyRole(452) = 102 (Data repository), PartyRoleQualifier(2376) = 11 (Additional international trade repository) and PartySubIDType(803) = 70 (Location or jurisdiction). */\n    InternationalSwapIndicator: 2526,\n    /** Indicates a swap that does not have one easily identifiable primary underlying asset, but instead involves multiple underlying assets within one trade repository's jurisdiction that belong to different asset classes. */\n    MultiAssetSwapIndicator: 2527,\n    /** Clearing settlement price. */\n    ClearingSettlPrice: 2528,\n    /** Number of relative value metrics entries in the repeating group. */\n    NoRelativeValues: 2529,\n    /** Indicates the type of relative value measurement being specified. */\n    RelativeValueType: 2530,\n    /** The valuation of an instrument relative to a base measurement specified in RelativeValueType(2530). This value can be negative. */\n    RelativeValue: 2531,\n    /** Specifies the side of the relative value. */\n    RelativeValueSide: 2532,\n    /** Basis points relative to a benchmark curve on the bid side, such as LIBOR, or a known security, such as 10Y US Treasury bond. The benchmark security or curve name is specified in the SpreadOrBenchmarkCurveData component. */\n    BidSpread: 2533,\n    /** Basis points relative to a benchmark curve on the offer side, such as LIBOR, or a known security, such as 10Y US Treasury bond. The benchmark security or curve name is specified in the SpreadOrBenchmarkCurveData component. */\n    OfferSpread: 2534,\n    /** Technical event within market data feed. */\n    MDReportEvent: 2535,\n    /** Number of reference and market data messages in-between two MarketDataReport(35=DR) messages. */\n    MDReportCount: 2536,\n    /** Total number of reports related to market segments. */\n    TotNoMarketSegmentReports: 2537,\n    /** Total number of reports related to instruments. */\n    TotNoInstrumentReports: 2538,\n    /** Total number of reports related to party detail information. */\n    TotNoPartyDetailReports: 2539,\n    /** Total number of reports related to party entitlement information. */\n    TotNoEntitlementReports: 2540,\n    /** Total number of reports related to party risk limit information. */\n    TotNoRiskLimitReports: 2541,\n    /** Status of market segment. */\n    MarketSegmentStatus: 2542,\n    /** Used to classify the type of market segment. */\n    MarketSegmentType: 2543,\n    /** Used to further categorize market segments within a MarketSegmentType(2543). */\n    MarketSegmentSubType: 2544,\n    /** Number of related market segments. */\n    NoRelatedMarketSegments: 2545,\n    /** Identifies a related market segment. */\n    RelatedMarketSegmentID: 2546,\n    /** Type of relationship between two or more market segments. */\n    MarketSegmentRelationship: 2547,\n    /** Number of auction order types. */\n    NoAuctionTypeRules: 2548,\n    /** Identifies an entire suite of products for which the auction order type rule applies. */\n    AuctionTypeProductComplex: 2549,\n    /** Number of rules related to price ranges. */\n    NoPriceRangeRules: 2550,\n    /** Lower boundary for price range. */\n    StartPriceRange: 2551,\n    /** Upper boundary for price range. */\n    EndPriceRange: 2552,\n    /** Maximum range expressed as absolute value. */\n    PriceRangeValue: 2553,\n    /** Maximum range expressed as percentage. */\n    PriceRangePercentage: 2554,\n    /** Identifies an entire suite of products in the context of trading rules related to price ranges. */\n    PriceRangeProductComplex: 2555,\n    /** Identifier for a price range rule. */\n    PriceRangeRuleID: 2556,\n    /** The percentage factor to be applied to trading rule parameters (e.g. price ranges, size ranges, etc.) when fast market conditions are applicable. */\n    FastMarketPercentage: 2557,\n    /** Number of rules related to quote sizes. */\n    NoQuoteSizeRules: 2558,\n    /** Indicates whether single sided quotes are allowed. */\n    QuoteSideIndicator: 2559,\n    /** Number of eligibility indicators for the creation of flexible securities. */\n    NoFlexProductEligibilities: 2560,\n    /** Identifies an entire suite of products which are eligible for the creation of flexible securities. */\n    FlexProductEligibilityComplex: 2561,\n    /** Represents the total number of multileg securities or user defined securities that make up the security. */\n    NumOfComplexInstruments: 2562,\n    /** Specifies the time interval used for netting market data in a price depth feed. */\n    MarketDepthTimeInterval: 2563,\n    /** The time unit associated with the time interval of the netting of market data in a price depth feed. */\n    MarketDepthTimeIntervalUnit: 2564,\n    /** Specifies the time interval between two repetitions of the same market data for cyclic recovery feeds. */\n    MDRecoveryTimeInterval: 2565,\n    /** The time unit associated with the time interval between two cycles of the same market data in cyclic data recovery feeds. */\n    MDRecoveryTimeIntervalUnit: 2566,\n    /** Primary service location identifier. */\n    PrimaryServiceLocationID: 2567,\n    /** Secondary or alternate service location identifier. */\n    SecondaryServiceLocationID: 2568,\n    /** Identifies an entire suite of products for which the matching rule applies. */\n    MatchRuleProductComplex: 2569,\n    /** Specifies the kind of priority given to customers. */\n    CustomerPriority: 2570,\n    /** Identifies an entire suite of products for which the price tick rule applies. */\n    TickRuleProductComplex: 2571,\n    /** Previous day's adjusted open interest. */\n    PreviousAdjustedOpenInterest: 2572,\n    /** Previous day's unadjusted open interest. */\n    PreviousUnadjustedOpenInterest: 2573,\n    /** Indicates if a given option instrument permits low exercise prices (LEPO). */\n    LowExercisePriceOptionIndicator: 2574,\n    /** Indicates if a given instrument is eligible for block trading. */\n    BlockTradeEligibilityIndicator: 2575,\n    /** Specifies the number of decimal places for instrument prices. */\n    InstrumentPricePrecision: 2576,\n    /** Specifies the number of decimal places for exercise price. */\n    StrikePricePrecision: 2577,\n    /** Original exercise price, e.g. after corporate action requiring changes. */\n    OrigStrikePrice: 2578,\n    /** Specifies a suitable settlement sub-method for a given settlement method. */\n    SettlSubMethod: 2579,\n    /** Number of parameter sets for clearing prices. */\n    NoClearingPriceParameters: 2580,\n    /** Relative identification of a business day. */\n    BusinessDayType: 2581,\n    /** Constant value required for the calculation of the clearing price, e.g. for variance futures. */\n    ClearingPriceOffset: 2582,\n    /** Constant value required for the calculation of the clearing quantity, e.g. for variance futures. */\n    VegaMultiplier: 2583,\n    /** Number of trading business days in a year. */\n    AnnualTradingBusinessDays: 2584,\n    /** Number of trading business days over the lifetime of an instrument. */\n    TotalTradingBusinessDays: 2585,\n    /** Number of actual trading business days of an instrument. */\n    TradingBusinessDays: 2586,\n    /** Actual or realized variance of an instrument used to calculate settlement prices, e.g. for variance futures. */\n    RealizedVariance: 2587,\n    /** Standard variance (over the lifetime of an instrument) or initial variance used to calculate settlement prices, e.g. for variance futures. */\n    StandardVariance: 2588,\n    /** Closing price of the underlying required to calculate the RealizedVariance(2587). */\n    RelatedClosePrice: 2589,\n    /** Overnight interest rate. */\n    OvernightInterestRate: 2590,\n    /** The economic cost of the variation margin from one trading day to the next. */\n    AccumulatedReturnModifiedVariationMargin: 2591,\n    /** Specifies how the calculation will be made. */\n    CalculationMethod: 2592,\n    /** Number of order attribute entries. */\n    NoOrderAttributes: 2593,\n    /** The type of order attribute. */\n    OrderAttributeType: 2594,\n    /** The value associated with the order attribute type specified in OrderAttributeType(2594). */\n    OrderAttributeValue: 2595,\n    /** Indicates that the party has taken a position on both a put and a call on the same underlying asset. */\n    DeltaCrossed: 2596,\n    /** Indicates whether the official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions. Applicable only to futures contracts. */\n    ComplexEventFuturesPriceValuation: 2597,\n    /** Indicates whether the official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions. Applicable only to options contracts. */\n    ComplexEventOptionsPriceValuation: 2598,\n    /** Specifies the fallback provisions for the hedging party in the determination of the final settlement price. */\n    ComplexEventPVFinalPriceElectionFallback: 2599,\n    /** The point on the floating rate index curve. Sample values:\n        M = combination of a number between 1-12 and an \"M\" for month, e.g. 3M\n        Y = combination of number between 1-100 and a \"Y\" for year, e.g. 10Y\n        10Y-OLD = see above, then add \"-OLD\" when appropriate\n        INTERPOLATED = the point is mathematically derived\n        2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon. */\n    StrikeIndexCurvePoint: 2600,\n    /** The quote side from which the index price is to be determined. */\n    StrikeIndexQuote: 2601,\n    /** Defines how adjustments will be made to the contract should one or more of the extraordinary events occur. */\n    ExtraordinaryEventAdjustmentMethod: 2602,\n    /** For a share option trade, indicates whether the instrument is to be treated as an 'exchange look-alike'.\n        This designation has significance for how share adjustments (arising from corporate actions) will be determined for the instrument. For an 'exchange look-alike' instrument the relevant share adjustments will follow that for a corresponding designated contract listed on the related exchange (referred to as Options Exchange Adjustment (ISDA defined term)), otherwise the share adjustments will be determined by the calculation agent (referred to as Calculation Agent Adjustment (ISDA defined term)). */\n    ExchangeLookAlike: 2603,\n    /** The point on the floating rate index curve. Sample values:\n        M = combination of a number between 1-12 and an \"M\" for month, e.g. 3M\n        Y = combination of number between 1-100 and a \"Y\" for year, e.g. 10Y\n        10Y-OLD = see above, then add \"-OLD\" when appropriate\n        INTERPOLATED = the point is mathematically derived\n        2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon. */\n    LegStrikeIndexCurvePoint: 2604,\n    /** The quote side from which the index price is to be determined. */\n    LegStrikeIndexQuote: 2605,\n    /** Defines how adjustments will be made to the contract should one or more of the extraordinary events occur. */\n    LegExtraordinaryEventAdjustmentMethod: 2606,\n    /** For a share option trade, indicates whether the instrument is to be treated as an 'exchange look-alike'.\n        This designation has significance for how share adjustments (arising from corporate actions) will be determined for the instrument. For an 'exchange look-alike' instrument the relevant share adjustments will follow that for a corresponding designated contract listed on the related exchange (referred to as Options Exchange Adjustment (ISDA defined term)), otherwise the share adjustments will be determined by the calculation agent (referred to as Calculation Agent Adjustment (ISDA defined term)). */\n    LegExchangeLookAlike: 2607,\n    /** Indicates whether the official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions. Applicable only to futures contracts. */\n    LegComplexEventFuturesPriceValuation: 2608,\n    /** Indicates whether the official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions. Applicable only to options contracts. */\n    LegComplexEventOptionsPriceValuation: 2609,\n    /** Specifies the fallback provisions for the hedging party in the determination of the final settlement price */\n    LegComplexEventPVFinalPriceElectionFallback: 2610,\n    /** Indicates whether the official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions. Applicable only to futures contracts. */\n    UnderlyingComplexEventFuturesPriceValuation: 2611,\n    /** Indicates whether the official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions. Applicable only to options contracts. */\n    UnderlyingComplexEventOptionsPriceValuation: 2612,\n    /** Specifies the fallback provisions for the hedging party in the determination of the final settlement price */\n    UnderlyingComplexEventPVFinalPriceElectionFallback: 2613,\n    /** Notional value for the equity or bond underlier. */\n    UnderlyingNotional: 2614,\n    /** Specifies the currency denomination of the notional value.\n        UnderlyingNotionalCurrencyCodeSource(2921) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent. */\n    UnderlyingNotionalCurrency: 2615,\n    /** Specifies the method of determining the notional amount.\n        See: http://www.fpml.org/coding-scheme/determination-method for values. */\n    UnderlyingNotionalDeterminationMethod: 2616,\n    /** Specifies the conditions that govern the adjustment to the number of units of the return swap. */\n    UnderlyingNotionalAdjustments: 2617,\n    /** Unique identifier for a position entity. Refer to PosMaintRptID(721) for a unique identifier of a position report message. */\n    PositionID: 2618,\n    /** Cross reference to another notional amount for duplicating its properties. */\n    UnderlyingNotionalXIDRef: 2619,\n    /** In the case of an index underlier specifies the unique identifier for the referenced futures contract. */\n    UnderlyingFutureID: 2620,\n    /** Identifies the source of the UnderlyingFutureID(2620). */\n    UnderlyingFutureIDSource: 2621,\n    /** The point on the floating rate index curve. Sample values:\n        M = combination of a number between 1-12 and an \"M\" for month, e.g. 3M\n        Y = combination of number between 1-100 and a \"Y\" for year, e.g. 10Y\n        10Y-OLD = see above, then add \"-OLD\" when appropriate\n        INTERPOLATED = the point is mathematically derived\n        2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon. */\n    UnderlyingStrikeIndexCurvePoint: 2622,\n    /** The quote side from which the index price is to be determined. */\n    UnderlyingStrikeIndexQuote: 2623,\n    /** Defines how adjustments will be made to the contract should one or more of the extraordinary events occur. */\n    UnderlyingExtraordinaryEventAdjustmentMethod: 2624,\n    /** For a share option trade, indicates whether the instrument is to be treated as an 'exchange look-alike'.\n        This designation has significance for how share adjustments (arising from corporate actions) will be determined for the instrument. For an 'exchange look-alike' instrument the relevant share adjustments will follow that for a corresponding designated contract listed on the related exchange (referred to as Options Exchange Adjustment (ISDA defined term)), otherwise the share adjustments will be determined by the calculation agent (referred to as Calculation Agent Adjustment (ISDA defined term)). */\n    UnderlyingExchangeLookAlike: 2625,\n    /** The limit of average percentage of individual securities traded in a day or a number of days. */\n    UnderlyingAverageVolumeLimitationPercentage: 2626,\n    /** Specifies the limitation period for average daily trading volume in number of days. */\n    UnderlyingAverageVolumeLimitationPeriodDays: 2627,\n    /** Indicates whether the underlier is a depository receipt.\n        A depository receipt is a negotiable certificate issued by a trust company or security depository. */\n    UnderlyingDepositoryReceiptIndicator: 2628,\n    /** The number of units (units of the index or number of securities, par amount of a bond) that constitute the underlier. In the case of a basket swap, this is used to reference both the number of basket units, and the number of each asset components of the basket when these are expressed in absolute terms. */\n    UnderlyingOpenUnits: 2629,\n    /** Specifies the basket divisor amount. This value is normally used to adjust the constituent weight for pricing or to adjust for dividends, or other corporate actions. */\n    UnderlyingBasketDivisor: 2630,\n    /** Identifier for referencing this UnderlyingInstrument from a parent instrument or a convertible instrument. */\n    UnderlyingInstrumentXID: 2631,\n    /** The type of value in CurrentCollateralAmount(1704). */\n    CollateralAmountType: 2632,\n    /** Specifies the number of miscellaneous fee sub-types. */\n    NoMiscFeeSubTypes: 2633,\n    /** Used to provide more granular fee types related to a value of MiscFeeType(139).\n        See http://www.fixtradingcommunity.org/codelists#Misc_Fee_Sub_Types for code list of applicable fees. Other fee sub-types may be used by mutual agreement of the counterparties.\n        Fee sub-types may include market or country specific fee. */\n    MiscFeeSubType: 2634,\n    /** The amount of the specified MiscFeeSubType(2634). */\n    MiscFeeSubTypeAmt: 2635,\n    /** Can be used to provide an optional textual description of the fee sub-type. */\n    MiscFeeSubTypeDesc: 2636,\n    /** Byte length of encoded (non-ASCII characters) EncodedMiscFeeSubTypeDesc(2638) field. */\n    EncodedMiscFeeSubTypeDescLen: 2637,\n    /** Encoded (non-ASCII characters) representation of the MiscFeeSubTypeDesc(2636) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the MiscFeeSubTypeDesc(2636) field. */\n    EncodedMiscFeeSubTypeDesc: 2638,\n    /** Number of commissions in the repeating group. */\n    NoCommissions: 2639,\n    /** The commission amount. */\n    CommissionAmount: 2640,\n    /** Indicates what type of commission is being expressed in CommissionAmount(2640). */\n    CommissionAmountType: 2641,\n    /** Specifies the basis or unit used to calculate the commission. */\n    CommissionBasis: 2642,\n    /** Specifies the currency denomination of the commission amount if different from the trade's currency.\n        CommissionCurrencyCodeSource(2923) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent. */\n    CommissionCurrency: 2643,\n    /** The commission rate unit of measure. */\n    CommissionUnitOfMeasure: 2644,\n    /** Indicates the currency of the unit of measure. Conditionally required when CommissionUnitOfMeasure(2644) = Ccy (Amount of currency). */\n    CommissionUnitOfMeasureCurrency: 2645,\n    /** The commission rate when CommissionAmount(2640) is based on a percentage of quantity, amount per unit or a factor of \"unit of measure\". If the rate is a percentage or expressed in basis points, use the decimalized form, e.g. \"0.05\" for a 5% commission or \"0.005\" for 50 basis points. */\n    CommissionRate: 2646,\n    /** Indicates whether the amount in CommissionAmount(2640) is to be shared with a third party, e.g. as part of a directed brokerage commission sharing arrangement. */\n    CommissionSharedIndicator: 2647,\n    /** Commission amount to be shared with a third party, e.g. as part of a directed brokerage commission sharing arrangement. If specified, this amount should not exceed the amount in CommissionAmount(2640). */\n    CommissionAmountShared: 2648,\n    /** Identifies the leg of the trade the entry applies to by referencing the leg's LegID(1788). */\n    CommissionLegRefID: 2649,\n    /** Description of the commission. */\n    CommissionDesc: 2650,\n    /** Byte length of the encoded (non-ASCII characters) EncodedCommissionDesc(2652) field. */\n    EncodedCommissionDescLen: 2651,\n    /** Encoded (non-ASCII characters) representation of the CommissionDesc(2650) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the CommissionDesc(2650) field. */\n    EncodedCommissionDesc: 2652,\n    /** Number of commissions in the repeating group. */\n    NoAllocCommissions: 2653,\n    /** The commission amount. */\n    AllocCommissionAmount: 2654,\n    /** Indicates what type of commission is being expressed in AllocCommissionAmount(2654). */\n    AllocCommissionAmountType: 2655,\n    /** Specifies the basis or unit used to calculate the commission. */\n    AllocCommissionBasis: 2656,\n    /** Specifies the currency denomination of the commission amount if different from the trade's currency.\n        AllocCommissionCurrencyCodeSource(2925) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent. */\n    AllocCommissionCurrency: 2657,\n    /** The commission rate unit of measure. */\n    AllocCommissionUnitOfMeasure: 2658,\n    /** Indicates the currency of the unit of measure. Conditionally required when AllocCommissionUnitOfMeasure(2658) = Ccy (Currency). */\n    AllocCommissionUnitOfMeasureCurrency: 2659,\n    /** The commission rate when AllocCommissionAmount(2654) is based on a percentage of quantity, amount per unit or a factor of \"unit of measure\". If the rate is a percentage or expressed in basis points, use the decimalized form, e.g. \"0.05\" for a 5% commission or \"0.005\" for 50 basis points. */\n    AllocCommissionRate: 2660,\n    /** Indicates whether the amount in AllocCommissionAmount(2654) is to be shared with a third party, e.g. as part of a directed brokerage commission sharing arrangement. */\n    AllocCommissionSharedIndicator: 2661,\n    /** Commission amount to be shared with a third party, e.g. as part of a directed brokerage commission sharing arrangement. If specified, this amount should not exceed the amount in AllocCommissionAmount(2654). */\n    AllocCommissionAmountShared: 2662,\n    /** Identifies the leg of the trade the entry applies to by referencing the leg's LegID(1788). */\n    AllocCommissionLegRefID: 2663,\n    /** Description of the commission. */\n    AllocCommissionDesc: 2664,\n    /** Byte length of the encoded (non-ASCII characters) EncodedAllocCommissionDesc(2666) field. */\n    EncodedAllocCommissionDescLen: 2665,\n    /** Encoded (non-ASCII characters) representation of the AllocCommissionDesc(2664) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the AllocCommissionDesc(2664) field. */\n    EncodedAllocCommissionDesc: 2666,\n    /** Indicates that the order or trade originates from a computer program or algorithm requiring little-to-no human intervention. */\n    AlgorithmicTradeIndicator: 2667,\n    /** Number of regulatory publication rules in repeating group. */\n    NoTrdRegPublications: 2668,\n    /** Specifies the type of regulatory trade publication.\n        Additional reasons for the publication type may be specified in TrdRegPublicationReason(2670). */\n    TrdRegPublicationType: 2669,\n    /** Additional reason for trade publication type specified in TrdRegPublicationType(2669).\n        Reasons may be specific to regulatory trade publication rules. */\n    TrdRegPublicationReason: 2670,\n    /** Used between parties to convey trade reporting status.\n        In the context of regulatory reporting, this field may be used by the reporting party (e.g. party obligated to report to regulators) to inform their trading counterparty or other interested parties the trade reporting status. */\n    SideTradeReportingIndicator: 2671,\n    /** Unique message identifier for a cross request as assigned by the submitter of the request. */\n    CrossRequestID: 2672,\n    /** Identifier assigned by a matching system to a match event containing multiple executions. */\n    FillMatchID: 2673,\n    /** Identifier assigned by a matching system to a price level (e.g. match step, clip) within a match event containing multiple executions. */\n    FillMatchSubID: 2674,\n    /** Reason for submission of mass action. */\n    MassActionReason: 2675,\n    /** Maximum deviation, in percentage terms, of an execution price from a reference price, e.g. the initial price of a match event. */\n    MaximumPriceDeviation: 2676,\n    /** Reason for order being unaffected by mass action even though it belongs to the orders covered by MassActionScope(1374). */\n    NotAffectedReason: 2677,\n    /** Total number of orders unaffected by either the OrderMassActionRequest(35=CA) or OrderMassCancelRequest(35=Q). */\n    TotalNotAffectedOrders: 2678,\n    /** Change of ownership of an order to a specific party. */\n    OrderOwnershipIndicator: 2679,\n    /** Account mnemonic as agreed between buy and sell sides, e.g. broker and institution or investor/intermediary and fund manager. */\n    LegAccount: 2680,\n    /** Specifies an option instrument's \"in the money\" condition. */\n    InTheMoneyCondition: 2681,\n    /** Specifies an option instrument's \"in the money\" condition in general terms. */\n    LegInTheMoneyCondition: 2682,\n    /** Specifies an option instrument's \"in the money\" condition in general terms. */\n    UnderlyingInTheMoneyCondition: 2683,\n    /** Specifies an option instrument's \"in the money\" condition in general terms.\n        See InTheMoneyCondition(2681) for complete definition. */\n    DerivativeInTheMoneyCondition: 2684,\n    /** Identifies whether the option instrument is eligible for contrary instructions at the time of exercise. The contrariness of an instruction will be determined in the context of InTheMoneyCondition(2681). When not specified, the eligibility is undefined or not applicable. */\n    ContraryInstructionEligibilityIndicator: 2685,\n    /** Identifies whether the option instrument is eligible for contrary instructions at the time of exercise. The contrariness of an instruction will be determined in the context of LegInTheMoneyCondition(2682). When not specified, the eligibility is undefined or not applicable. */\n    LegContraryInstructionEligibilityIndicator: 2686,\n    /** Identifies whether the option instrument is eligible for contrary instructions at the time of exercise. The contrariness of an instruction will be determined in the context of UnderlyingInTheMoneyCondition(2683). When not specified, the eligibility is undefined or not applicable. */\n    UnderlyingContraryInstructionEligibilityIndicator: 2687,\n    /** Identifies whether the option instrument is eligible for contrary instructions at the time of exercise. The contrariness of an instruction will be determined in the context of DerivativeInTheMoneyCondition(2684). When not specified, the eligibility is undefined or not applicable.\n        See ContraryInstructionEligibilityIndicator(2685) for complete definition. */\n    DerivativeContraryInstructionEligibilityIndicator: 2688,\n    /** Market price of the collateral, either from market sources or pre-agreed by the counterparties. */\n    CollateralMarketPrice: 2689,\n    /** Percentage of over-collateralization particularly when CollateralAmountType(2632) = 4 (Additional collateral value) */\n    CollateralPercentOverage: 2690,\n    /** Number of side collateral amount entries. */\n    NoSideCollateralAmounts: 2691,\n    /** Market associated with the collateral amount. */\n    SideCollateralAmountMarketID: 2692,\n    /** Market segment associated with the collateral amount. */\n    SideCollateralAmountMarketSegmentID: 2693,\n    /** The type of value in CurrentCollateralAmount(1704). */\n    SideCollateralAmountType: 2694,\n    /** Specifies the currency of the collateral; optional, defaults to settlement currency if not specified.\n        SideCollateralCurrencyCodeSource(2930) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent. */\n    SideCollateralCurrency: 2695,\n    /** Foreign exchange rate used to compute the SideCurrentCollateralAmount(2702) from the SideCollateralCurrency(2695) and the Currency(15). */\n    SideCollateralFXRate: 2696,\n    /** Specifies whether or not SideCollateralFXRate(2696) should be multiplied or divided. */\n    SideCollateralFXRateCalc: 2697,\n    /** Market price of the collateral, either from market sources or pre-agreed by the counterparties. */\n    SideCollateralMarketPrice: 2698,\n    /** Percentage of over-collateralization particularly when SideCollateralAmountType(2694) = 4 (Additional collateral value). */\n    SideCollateralPercentOverage: 2699,\n    /** Identifier of the collateral portfolio when reporting on a portfolio basis. */\n    SideCollateralPortfolioID: 2700,\n    /** Type of collateral on deposit being reported. */\n    SideCollateralType: 2701,\n    /** Currency value currently attributed to the collateral. */\n    SideCurrentCollateralAmount: 2702,\n    /** Indicates, if \"Y\", that a stated valuation includes a haircut, e.g. that the stated value reflects the subtraction of the haircut. Note that a value of \"N\" does not imply a haircut is not applicable, only that the haircut (if any) is not reflected in the stated valuation. */\n    SideHaircutIndicator: 2703,\n    /** Identifies the type of execution destination for the order. */\n    ExDestinationType: 2704,\n    /** Market condition. In the context of ESMA RTS 8 it is important that trading venues communicate the condition of the market, particularly \"stressed\" and \"exceptional\", in order to provide incentives for firms contributing to liquidity. */\n    MarketCondition: 2705,\n    /** Number of quote attributes entries. */\n    NoQuoteAttributes: 2706,\n    /** The type of attribute for the quote. */\n    QuoteAttributeType: 2707,\n    /** The value associated with the quote attribute type specified in QuoteAttributeType(2707). */\n    QuoteAttributeValue: 2708,\n    /** Number of price qualifiers in the repeating group. */\n    NoPriceQualifiers: 2709,\n    /** Qualifier for price. May be used when the price needs to be explicitly qualified. */\n    PriceQualifier: 2710,\n    /** Describes the reporting ranges for executed transactions.\n        In context of ESMA RTS 27 Article 9, the execution venue is required to report on transactions within several size ranges (in terms of a value and currency). The thresholds for these ranges are dependent on the type of financial instrument. */\n    MDValueTier: 2711,\n    /** Identifies whether the current entry contributes to the trade or transaction economics, i.e. affects NetMoney(118). */\n    MiscFeeQualifier: 2712,\n    /** Can be used to provide a textual description of the fee type. */\n    MiscFeeDesc: 2713,\n    /** The full normative name of the financial instrument.\n        In the context of ESMA reference data, this is used to provide the full name of the instrument as defined by the Derivatives Service Bureau (DSB). */\n    FinancialInstrumentFullName: 2714,\n    /** Byte length of encoded (non-ASCII characters) EncodedFinancialInstrumentFullName(2716) field. */\n    EncodedFinancialInstrumentFullNameLen: 2715,\n    /** Encoded (non-ASCII characters) representation of the FinancialInstrumentFullName(2714) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the FinancialInstrumentFullName(2714) field. */\n    EncodedFinancialInstrumentFullName: 2716,\n    /** The full normative name of the multileg's financial instrument.\n        In the context of ESMA reference data, this is used to provide the full name of the instrument as defined by the Derivatives Service Bureau (DSB). */\n    LegFinancialInstrumentFullName: 2717,\n    /** Byte length of encoded (non-ASCII characters) individual multileg instrument's EncodedLegFinancialInstrumentFullName(2719). */\n    EncodedLegFinancialInstrumentFullNameLen: 2718,\n    /** Encoded (non-ASCII characters) representation of the LegFinancialInstrumentFullName(2717) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the LegFinancialInstrumentFullName(2717) field. */\n    EncodedLegFinancialInstrumentFullName: 2719,\n    /** The full normative name of the underlying financial instrument.\n        In the context of ESMA reference data, this is used to provide the full name of the instrument as defined by the Derivatives Service Bureau (DSB). */\n    UnderlyingFinancialInstrumentFullName: 2720,\n    /** Byte length of encoded (non-ASCII characters) underlying instrument's EncodedUnderlyingFinancialInstrumentFullName(2722). */\n    EncodedUnderlyingFinancialInstrumentFullNameLen: 2721,\n    /** Encoded (non-ASCII characters) representation of the UnderlyingFinancialInstrumentFullName(2720) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingFinancialInstrumentFullName(2720) field. */\n    EncodedUnderlyingFinancialInstrumentFullName: 2722,\n    /** Curve time unit associated with the underlying index. */\n    UnderlyingIndexCurveUnit: 2723,\n    /** Curve time multiplier for the underlying index. */\n    UnderlyingIndexCurvePeriod: 2724,\n    /** Further sub classification of the CommissionAmountType(2641). */\n    CommissionAmountSubType: 2725,\n    /** Further sub classification of the AllocCommissionAmountType(2655). */\n    AllocCommissionAmountSubType: 2726,\n    /** Unique identifier for a specific leg (uniqueness not defined as part of the FIX specification). AllocLegRefID(2727) references the value from LegID(1788) in the current multileg order or trade message specifying to which leg the allocation instance applies. */\n    AllocLegRefID: 2727,\n    /** Time unit multiplier for the floating rate index identified in FloatingRateIndexID(2731). */\n    FloatingRateIndexCurvePeriod: 2728,\n    /** Spread from the floating rate index. */\n    FloatingRateIndexCurveSpread: 2729,\n    /** Time unit associated with the floating rate index identified in FloatingRateIndexID(2731). */\n    FloatingRateIndexCurveUnit: 2730,\n    /** Security identifier of the floating rate index. */\n    FloatingRateIndexID: 2731,\n    /** Source for the floating rate index identified in FloatingRateIndexID(2731). */\n    FloatingRateIndexIDSource: 2732,\n    /** Month identified in the index roll.\n        Use \"1\" for January, \"2\" for February, etc. */\n    IndexRollMonth: 2733,\n    /** Number of instances of the index roll month. */\n    NoIndexRollMonths: 2734,\n    /** Used to provide a more specific description of the asset specified in AssetType(1940).\n        See https://www.fixtrading.org/codelists/AssetSubType for code list of applicable values.\n        In the context of MiFID II, ESMA RTS 23 Annex I Table 2, this may indicate the 'Further sub product' or equity 'Parameter' fields. */\n    AssetSubType: 2735,\n    /** Final price type of the commodity as specified by the trading venue. */\n    CommodityFinalPriceType: 2736,\n    /** Short name of the financial instrument. Uses ISO 18774 (FINS) values.\n        In the context of MiFID II this maps to ESMA RTS 23 Annex I Table 3 Field 7 and may be used in other RTS that requires a similar field. */\n    FinancialInstrumentShortName: 2737,\n    /** Next index roll date. */\n    NextIndexRollDate: 2738,\n    /** Used to provide a more specific description of the asset specified in LegAssetType(2069).\n        See https://www.fixtrading.org/codelists/AssetSubType for code list of applicable values.\n        In the context of MiFID II, ESMA RTS 23 Annex I Table 2, this may indicate the 'Further sub product' or equity 'Parameter' fields. */\n    LegAssetSubType: 2739,\n    /** Short name of the financial instrument. Uses ISO 18774 (FISN) values.\n        In the context of MiFID II this maps to ESMA RTS 23 Annex I Table 3 Field 7 and may be used in other RTS that requires a similar field. */\n    LegFinancialInstrumentShortName: 2740,\n    /** Used to provide a more specific description of the asset specified in SecondaryAssetType(1979).\n        See https://www.fixtrading.org/codelists/AssetSubType for code list of applicable values.\n        In the context of MiFID II, ESMA RTS 23 Annex I Table 2, this may indicate the 'Further sub product' or equity 'Parameter' fields. */\n    SecondaryAssetSubType: 2741,\n    /** Short name of the financial instrument. Uses ISO 18774 (FINS) values.\n        In the context of MiFID II this maps to ESMA RTS 23 Annex I Table 3 Field 7 and may be used in other RTS that requires a similar field. */\n    UnderlyingFinancialInstrumentShortName: 2742,\n    /** Used to provide a more specific description of the asset specified in LegSecondaryAssetType(2079).\n        See https://www.fixtrading.org/codelists/AssetSubType for code list of applicable values.\n        In the context of MiFID II RTS 23 Annex I Table 2, this may indicate the 'Further sub product' or equity 'Parameter' fields. */\n    LegSecondaryAssetSubType: 2743,\n    /** Used to provide a more specific description of the asset specified in UnderlyingAssetType(2015).\n        See https://www.fixtrading.org/codelists/AssetSubType for code list of applicable values.\n        In the context of MiFID II, ESMA RTS 23 Annex I Table 2, this may indicate the 'Further sub product' or equity 'Parameter' fields. */\n    UnderlyingAssetSubType: 2744,\n    /** May be used to provide a more specific description of the asset specified in UnderlyingSecondaryAssetType(2083).\n        See https://www.fixtrading.org/codelists/AssetSubType for code list of applicable values.\n        In the context of MiFID II, ESMA RTS 23 Annex I Table 2, this may indicate the 'Further sub product' or equity 'Parameter' fields. */\n    UnderlyingSecondaryAssetSubType: 2745,\n    /** Number of instances of reference data dates. */\n    NoReferenceDataDates: 2746,\n    /** Reference data entry's date-time of the type specified in ReferenceDataDateType(2748). */\n    ReferenceDataDate: 2747,\n    /** Reference data entry's date-time type. */\n    ReferenceDataDateType: 2748,\n    /** Time of the individual execution. */\n    ExecutionTimestamp: 2749,\n    /** Represents the reportable price on fill when an instance of the Parties component with PartyRole(452) = 73 (Execution Venue) is present to prevent having to compute running totals. */\n    ReportingPx: 2750,\n    /** Represents the reportable quantity on fill when an instance of the Parties component with PartyRole(452) = 73 (Execution Venue) is present to prevent having to compute running totals. */\n    ReportingQty: 2751,\n    /** Specific delivery route or time charter average. Applicable to commodity freight contracts. */\n    DeliveryRouteOrCharter: 2752,\n    /** Indicates the type of return or payout trigger for the swap or forward. */\n    ReturnTrigger: 2753,\n    /** Specific delivery route or time charter average. Applicable to commodity freight contracts. */\n    LegDeliveryRouteOrCharter: 2754,\n    /** Indicates the type of return or payout trigger for the swap or forward. */\n    LegReturnTrigger: 2755,\n    /** Specific delivery route or time charter average. Applicable to commodity freight contracts. */\n    UnderlyingDeliveryRouteOrCharter: 2756,\n    /** Indicates the type of return or payout trigger for the swap or forward. */\n    UnderlyingReturnTrigger: 2757,\n    /** Unique identifier for the request message. */\n    AllocRequestID: 2758,\n    /** Indicates the total notional units or amount of an allocation group. Includes any allocated units or amount.\n        Whether notional units or amount is used depends on the type of listed derivative contract and the clearinghouse. A notional unit is (price x quantity) without the derivative's contract value factor. */\n    GroupAmount: 2759,\n    /** Indicates the remaining notional units or amount of an allocation group that has not yet been allocated.\n        Whether notional units or amount is used depends on the type of listed derivative contract and the clearinghouse. A notional unit is (price x quantity) without the derivative's contract value factor. */\n    GroupRemainingAmount: 2760,\n    /** Indicates the notional units or amount being allocated.\n        Whether notional units or amount is used depends on the type of listed derivative contract and the clearinghouse. A notional unit is (price x quantity) without the derivative's contract value factor. */\n    AllocGroupAmount: 2761,\n    /** Price offset of the markup denominated in the price type of the trade.\n        The field is expressed in a value that can simply be added to or subtracted from the (clean) price to reach the marked- up price. E.g., a percent of par price of 98 marked up to 98.5 should be 0.5, an FX rate of 1.17936 marked up to 1.19 should be 0.01064, a stock price of 22.75 marked up to 22.9 should be 0.15, etc. */\n    PriceMarkup: 2762,\n    /** The average pricing model used for block trades. */\n    AveragePriceType: 2763,\n    /** Start of the time period during which price averaging occurred. */\n    AveragePriceStartTime: 2764,\n    /** End of the time period during which price averaging occurred. */\n    AveragePriceEndTime: 2765,\n    /** For Percent-of-volume (POV) average pricing this is the target percentage this order quantity represents of the total trading volume of an instrument during the specified time period. This provides the data needed to ensure that the average price is fair based on the total sum of grouped POV trades.\n        For example, if during the POV time period there are 5 trades including this one with a total volume of 5000 and this trade has a quantity of 1000 then the OrderPercentOfTotalVolume(2766) of this trade is 20 percent expressed as \"0.20\". */\n    OrderPercentOfTotalVolume: 2766,\n    /** Status of the trade give-up relative to the group identified in AllocGroupID(1730). */\n    AllocGroupStatus: 2767,\n    /** Status of the AllocationInstructionAlertRequest(35=DU). */\n    AllocRequestStatus: 2768,\n    /** Average pricing indicator at the allocation level. */\n    AllocAvgPxIndicator: 2769,\n    /** Used by submitting firm to group trades being sub-allocated into an average price group. The trades in the average price group will be used to calculate an average price for the group. */\n    AllocAvgPxGroupID: 2770,\n    /** When reporting a group change by the central counterparty to allocations of trades for the same instrument traded at the same price this identifies the previous group identifier. */\n    PreviousAllocGroupID: 2771,\n    /** Number of match exceptions in the repeating group. */\n    NoMatchExceptions: 2772,\n    /** Type of matching exception. */\n    MatchExceptionType: 2773,\n    /** Identifies the data point used in the matching operation which resulted in an exception. */\n    MatchExceptionElementType: 2774,\n    /** The matching exception data point name, for example: \"Trade currency\". This may be used for display purposes, providing a corresponding description for the value in MatchExceptionElementType(2774). */\n    MatchExceptionElementName: 2775,\n    /** The allocating party's data value used in the match operation. */\n    MatchExceptionAllocValue: 2776,\n    /** The confirming party's data value used in the match operation. */\n    MatchExceptionConfirmValue: 2777,\n    /** The data element's tolerance value. Omitted if no tolerance is allowed or not applicable. */\n    MatchExceptionToleranceValue: 2778,\n    /** The type of value in MatchExceptionToleranceValue(2778). Omitted if no tolerance is allowed or not applicable.\n        For example, if the tolerance for accrued interest is 0.01% of total accrued interest then MatchExceptionElementType(2774)=1 (Accrued interest), MatchExceptionToleranceValueType(2779)=2 (Percentage) and MatchExcecptionToleranceValue(2778)=0.0001. If tolerance for the exchange rate of an FX trade is \"0.001\" then MatchExceptionElementType(2774)=2 (Deal pPrice), MatchExceptionToleranceValueType(2779)=1 (Fixed amount) and MatchExcecptionToleranceValue(2778)=0.001. */\n    MatchExceptionToleranceValueType: 2779,\n    /** Description of the exception. */\n    MatchExceptionText: 2780,\n    /** Number of matching data points in the repeating group. */\n    NoMatchingDataPoints: 2781,\n    /** Data point's matching type. */\n    MatchingDataPointIndicator: 2782,\n    /** Value of the matching data point. */\n    MatchingDataPointValue: 2783,\n    /** Identifies the data point used in the matching operation.\n        Values may not have applicable tolerance values, in this case this means the data point was used for matching but did not match. */\n    MatchingDataPointType: 2784,\n    /** The matching data point name, for example: \"Trade currency\". This may be used for display purposes, providing a corresponding description for the value in MatchingDataPointType(2784). */\n    MatchingDataPointName: 2785,\n    /** The message identifier for the trade aggregation request. */\n    TradeAggregationRequestID: 2786,\n    /** Reference identifier to a previously sent trade aggregation message being cancelled or replaced. */\n    TradeAggregationRequestRefID: 2787,\n    /** Identifies the trade aggregation transaction type. */\n    TradeAggregationTransType: 2788,\n    /** Total quantity of orders or fills quantity aggregated. */\n    AggregatedQty: 2789,\n    /** Status of the trade aggregation request. */\n    TradeAggregationRequestStatus: 2790,\n    /** Reason for trade aggregation request being rejected. */\n    TradeAggregationRejectReason: 2791,\n    /** Unique identifier for the TradeAggregationReport(35=DX). */\n    TradeAggregationReportID: 2792,\n    /** The average FX spot rate. */\n    AvgSpotRate: 2793,\n    /** The average forward points. May be a negative value. */\n    AvgForwardPoints: 2794,\n    /** Indicates the type of the currency rate being used. This is relevant for currencies that have offshore rate that different from onshore rate. */\n    OffshoreIndicator: 2795,\n    /** Specifies the foreign exchange benchmark rate fixing to be used in valuing the transaction. For example \"London 4 p.m.\" or \"Tokyo 3 p.m.\" */\n    FXBenchmarkRateFix: 2796,\n    /** Byte length of encoded (non-ASCII characters) EncodedMatchExceptionText(2798) field. */\n    EncodedMatchExceptionTextLen: 2797,\n    /** Encoded (non-ASCII characters) representation of the MatchExceptionText(2780) field in the encoded format specified via the MessageEncoding(347) field.\n        If used, the ASCII (English) representation should also be specified in the MatchExceptionText(2780) field. */\n    EncodedMatchExceptionText: 2798,\n    /** Unique ID of the PayManagementReport(35=EA) message. */\n    PayReportID: 2799,\n    /** Used to provide the reason for disputing a request or report.\n        See https://www.fixtrading.org/packages/PayDisputeReason for the list of applicable values. */\n    PayDisputeReason: 2800,\n    /** Encoded (non-ASCII characters) representation of the ReplaceText(2805) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the ReplaceText(2805) field. */\n    EncodedReplaceText: 2801,\n    /** Byte length of encoded (non-ASCII characters) EncodedReplaceText(2801) field. */\n    EncodedReplaceTextLen: 2802,\n    /** Reference identifier of the PayManagementReport(35=EA). To be used with PayReportTransType(2804)=1 (Replace). */\n    PayReportRefID: 2803,\n    /** Identifies the message transaction type. */\n    PayReportTransType: 2804,\n    /** Identifies the reason for amendment. */\n    ReplaceText: 2805,\n    /** Identifies status of the payment report. */\n    PayReportStatus: 2806,\n    /** Identifies the reason for cancelation. */\n    CancelText: 2807,\n    /** Encoded (non-ASCII characters) representation of the CancelText(2807) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the CancelText(2807) field. */\n    EncodedCancelText: 2808,\n    /** Byte length of encoded (non-ASCII characters) EncodedCancelText(2808) field. */\n    EncodedCancelTextLen: 2809,\n    /** Reference identifier of the PayManagementRequest(35=DY). To be used with PayRequestTransType(2811)=1 (Cancel). */\n    PayRequestRefID: 2810,\n    /** Identifies the message transaction type. */\n    PayRequestTransType: 2811,\n    /** Unique ID of the PayManagementRequest(35=DY) message. */\n    PayRequestID: 2812,\n    /** Identifies status of the request being responded to. */\n    PayRequestStatus: 2813,\n    /** Encoded (non-ASCII characters) representation of the PostTradePaymentDesc(2820) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the PostTradePaymentDesc(2820) field. */\n    EncodedPostTradePaymentDesc: 2814,\n    /** Byte length of encoded (non-ASCII characters) EncodedPostTradePaymentDesc(2814) field. */\n    EncodedPostTradePaymentDescLen: 2815,\n    /** The cash account on the books of the receiver of the request or the sender of the report to be debited or credited. */\n    PostTradePaymentAccount: 2816,\n    /** The payment amount for the specified PostTradePaymentType(2824). */\n    PostTradePaymentAmount: 2817,\n    /** Specifies the currency in which PostTradePaymentAmount(2817) is denominated.\n        PostTradePaymentCurrencyCodeSource(2956) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent. */\n    PostTradePaymentCurrency: 2818,\n    /** Payment side of this individual payment from the requesting firm's perspective. */\n    PostTradePaymentDebitOrCredit: 2819,\n    /** A short descriptive name given to the payment, e.g. Premium, Upfront, etc. The description may be used as reference. */\n    PostTradePaymentDesc: 2820,\n    /** The identifier for the individual payment. */\n    PostTradePaymentID: 2821,\n    /** Used to link a group of payments together, e.g. cross-currency payments associated with a swap. */\n    PostTradePaymentLinkID: 2822,\n    /** Used to indicate the status of a post-trade payment. */\n    PostTradePaymentStatus: 2823,\n    /** Type of post-trade payment.\n        See ISITC \"Payments Cash Purpose Codes\" for list of payment type codes to use available at https://isitc.org/market-practices/reference-data-and-standards-market-practice and select \"ISITC Classification Code List\". */\n    PostTradePaymentType: 2824,\n    /** The (actual) date the periodic payments calculations are made. */\n    PostTradePaymentCalculationDate: 2825,\n    /** The adjusted (for holidays and other non-business days) payment date on which the payment is expected to settle. */\n    PostTradePaymentValueDate: 2826,\n    /** The actual or final payment date on which the payment was made. */\n    PostTradePaymentFinalValueDate: 2827,\n    /** Price at which the order is currently displayed to the market. Can be used on order messages, e.g. NewOrderSingle(35=D), to provide the current displayed price of a parent order when splitting it into smaller child orders.\n        In the context of US CAT this is used when reporting new child orders. */\n    CurrentDisplayPrice: 2828,\n    /** Used to indicate that a ClOrdID(11) value is an intentional duplicate of a previously sent value. Allows to avoid the rejection of an order with OrdRejReason(103) = 6 (Duplicate Order).\n        In the context of US CAT this can be used when the recipient of a previously routed order requires the same identifier to be re-used for a new route. */\n    DuplicateClOrdIDIndicator: 2829,\n    /** Indicates the type of entity who initiated an event, e.g. modification or cancellation of an order or quote. */\n    EventInitiatorType: 2830,\n    /** Type of NBBO information. */\n    NBBOEntryType: 2831,\n    /** Price related to NBBO. NBBOEntryType(2831) may be used to indicate entry type, e.g. bid or offer. */\n    NBBOPrice: 2832,\n    /** Quantity related to NBBO. NBBOEntryType(2831) may be used to indicte entry type, e.g. bid or offer. */\n    NBBOQty: 2833,\n    /** Source of NBBO information. */\n    NBBOSource: 2834,\n    /** Identifier for the original owner of an order as part of the RelatedOrderGrp component. Use the Parties component with PartyRole(452) = 13 (Order Origination Firm) to identify the original owner of an individual order. */\n    OrderOriginationFirmID: 2835,\n    /** Timestamp for the assignment of a (unique) identifier to an order. */\n    RelatedOrderTime: 2836,\n    /** Used to indicate whether the quoting system allows only one quote to be active at a time for the quote issuer or market maker. */\n    SingleQuoteIndicator: 2837,\n    /** Current working price of the order relative to the state of the order.\n        In the context of US CAT this can be used for the current price of the parent order when reporting a split into new (child) orders. */\n    CurrentWorkingPrice: 2838,\n    /** Indicates whether a given timestamp was manually captured. */\n    TrdRegTimestampManualIndicator: 2839,\n    /** Interest rate received for collateral reinvestment.\n        In the context of EU SFTR this is the reinvestment interest rate received from cash collateral made by the lender. If there are multiple reinvestment types, this is an average rate. */\n    CollateralReinvestmentRate: 2840,\n    /** Identifies the underlying instrument the entity applies to by referencing the underlying instrument's UnderlyingID(2874). */\n    UnderlyingRefID: 2841,\n    /** The cash amount of the specified re-investment type. */\n    CollateralReinvestmentAmount: 2842,\n    /** The currency denomination of the re-invested cash amount.\n        CollateralReinvestmentCurrencyCodeSource(2931) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent. */\n    CollateralReinvestmentCurrency: 2843,\n    /** Indicates the type of investment the cash collateral is re-invested in. */\n    CollateralReinvestmentType: 2844,\n    /** Number of instances of CollateralReinvestmentType(2844) in the repeating group. */\n    NoCollateralReinvestments: 2845,\n    /** Specifies the funding source used to finance margin or collateralized loan. */\n    FundingSource: 2846,\n    /** Currency denomination of the market value of the funding source.\n        FundingSourceCurrencyCodeSource(2954) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent. */\n    FundingSourceCurrency: 2847,\n    /** Market value of the funding source. */\n    FundingSourceMarketValue: 2848,\n    /** Number of instances of FundingSource(2846) in the repeating group. */\n    NoFundingSources: 2849,\n    /** Indicates whether the margin described is posted or received. */\n    MarginDirection: 2851,\n    /** Interest rate received for collateral reinvestment.\n        In the context of EU SFTR this is the reinvestment interest rate received from cash collateral made by the lender. If there are multiple reinvestment types, this is an average rate. */\n    SideCollateralReinvestmentRate: 2862,\n    /** Identifies the underlying instrument the entity applies to by referencing the underlying instrument's UnderlyingID(2874). */\n    SideUnderlyingRefID: 2863,\n    /** Number of instances of SideCollateralReinvestmentType(2867) in the repeating group. */\n    NoSideCollateralReinvestments: 2864,\n    /** The cash amount of the specified re-investment type. */\n    SideCollateralReinvestmentAmount: 2865,\n    /** The currency denomination of the re-invested cash amount.\n        SideCollateralReinvestmentCurrencyCodeSource(2932) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent. */\n    SideCollateralReinvestmentCurrency: 2866,\n    /** Indicates the type of investment the cash collateral is re-invested in. */\n    SideCollateralReinvestmentType: 2867,\n    /** Date when the collateral is to be assessed or assigned. */\n    CollateralizationValueDate: 2868,\n    /** The business date on which the event identified in RegulatoryReportType(1934) took place.\n        In the context of EU SFTR reports with a RegulatoryReportType(1934) value 7 (Post-trade valuation), 31 (Collateral update) or 32 (Margin update), the business date on which the business event took place, which results in the information contained in the report. */\n    RegulatoryReportTypeBusinessDate: 2869,\n    /** When the transaction is cleared and included in a portfolio of transactions this identifies the portfolio by its unique identifier.\n        In the context of EU SFTR reporting this applies to cleared transactions grouped in a portfolio for which margins are exchanged. */\n    ClearingPortfolioID: 2870,\n    /** Number of instances of TransactionAttributeType(2872) in the repeating group. */\n    NoTransactionAttributes: 2871,\n    /** Type of attribute(s) or characteristic(s) associated with the transaction. */\n    TransactionAttributeType: 2872,\n    /** Value associated with the specificed TransactionAttributeType(2872). */\n    TransactionAttributeValue: 2873,\n    /** Unique identifier for the underlying instrument within the context of a message.\n        The UnderlyingID(2874) can be referenced by other fields, for example UnderlyingRefID(tbd2841) and SideUnderlyingRefID(2863), from other components . The scope of uniqueness is agreed upon between counterparties. */\n    UnderlyingID: 2874,\n    /** The price used to calculate the PosAmt(708).\n        This may be used for certain PosAmtType(707) values where the PosAmt(708) is based on the current price of the position's security. In the context of EU SFTR reporting, this is the price used to calculate the loan value for securities loan and borrowing, and buy-sell back. The price may be expressed in units or percentage of the underlying security, yield or an absolute amount that ignores netting. For Buy/Sellback it expresses the initial spot price. */\n    PosAmtPrice: 2876,\n    /** Specifies the type of price for PosAmtPrice(2876). */\n    PosAmtPriceType: 2877,\n    /** The date of a contract's early termination or other post-trade event when the event is prior to the contract natural end or maturity not defined as part of the security's reference data or contractual terms/agreement. */\n    TerminationDate: 2878,\n    /** The industry name of the day count convention not listed in CouponDayCount(1950). */\n    CouponOtherDayCount: 2879,\n    /** The industry name of the day count convention not listed in LegCouponDayCount(2165). */\n    LegCouponOtherDayCount: 2880,\n    /** The industry name of the day count convention not listed in UnderlyingCouponDayCount(1993). */\n    UnderlyingCouponOtherDayCount: 2881,\n    /** Identifies the origin of the order from the counterparty of the execution or trade. */\n    ContraOrderOrigination: 2882,\n    /** Indicates whether a routing arrangement is in place, e.g. between two brokers. May be used together with OrderOrigination(1724) to further describe the origin of an order.\n        An arrangement under which a participant of a marketplace permits a broker to electronically transmit orders containing the identifier of the participant. This can be either through the systems of the participant for automatic onward transmission to a marketplace or directly to a marketplace without being electronically transmitted through the systems of the participant. */\n    RoutingArrangementIndicator: 2883,\n    /** Indicates whether a routing arrangement is in place, e.g. between two brokers. May be used together with ContraOrderOrigination(2882) to further describe the origin of an order. */\n    ContraRoutingArrangementIndicator: 2884,\n    /** Amount of accrued interest of underlying security. */\n    UnderlyingAccruedInterestAmt: 2885,\n    /** Number of days of interest for underlying security. */\n    UnderlyingNumDaysInterest: 2886,\n    /** Identifier of a related order. */\n    RelatedOrderID: 2887,\n    /** Describes the source of the identifier that RelatedOrderID(2887) represents. */\n    RelatedOrderIDSource: 2888,\n    /** Quantity of the related order which can be less than its total quantity. For example, when only parts of an order contribute to an aggregated order. */\n    RelatedOrderQty: 2889,\n    /** Describes the type of relationship between the order identified by RelatedOrderID(2887) and the order outside of the RelatedOrderGrp component. */\n    OrderRelationship: 2890,\n    /** Uniquely identifies the product of a security using ISO 4914 standard, Unique Product Identifier (UPI). The DSB (Derivative Service Bureau Ltd) is acting as designated service provider for UPI System. */\n    UPICode: 2891,\n    /** Uniquely identifies the product of a derivative instrument using ISO 4914. See UPICode(2891) for complete definition. */\n    DerivativeUPICode: 2892,\n    /** Uniquely identifies the product of a leg instrument using ISO 4914. See UPICode(2891) for further detail. */\n    LegUPICode: 2893,\n    /** Uniquely identifies the product of an underlying instrument using ISO 4914. See UPICode(2891) for further detail. */\n    UnderlyingUPICode: 2894,\n    /** Uniquely identifies the product of a security using ISO 4914 as filter criteria. See UPICode(2891) for further detail. */\n    InstrumentScopeUPICode: 2895,\n    /** Type of trade assigned to a trade. Used in addition to TrdType(828) and SecondaryTrdType(855). Must not be used when only one additional trade type needs to be assigned. */\n    TertiaryTrdType: 2896,\n    /** Identifies class or source of the Currency(15) value. */\n    CurrencyCodeSource: 2897,\n    /** Identifies class or source of the LegCurrency(556) value. */\n    LegCurrencyCodeSource: 2898,\n    /** Identifies class or source of the SettlCurrency(120) value. */\n    SettlCurrencyCodeSource: 2899,\n    /** Identifies class or source of the LegSettlCurrency(675) value. */\n    LegSettlCurrencyCodeSource: 2900,\n    /** Identifies class or source of the SideCurrency(1154) value. */\n    SideCurrencyCodeSource: 2901,\n    /** Identifies class or source of the SideSettlCurrency(1155) value. */\n    SideSettlCurrencyCodeSource: 2902,\n    /** Identifies class or source of the SettlementAmountCurrency(1702) value. */\n    SettlementAmountCurrencyCodeSource: 2903,\n    /** Identifies class or source of the StrikeCurrency(947) value. */\n    StrikeCurrencyCodeSource: 2904,\n    /** Identifies class or source of the UnitOfMeasureCurrency(1716) value. */\n    UnitOfMeasureCurrencyCodeSource: 2905,\n    /** Identifies class or source of the PriceUnitOfMeasureCurrency(1717) value. */\n    PriceUnitOfMeasureCurrencyCodeSource: 2906,\n    /** Identifies class or source of the PriceQuoteCurrency(1524) value. */\n    PriceQuoteCurrencyCodeSource: 2907,\n    /** Identifies class or source of the LegStrikeCurrency(942) value. */\n    LegStrikeCurrencyCodeSource: 2908,\n    /** Identifies class or source of the LegUnitOfMeasureCurrency(1720) value. */\n    LegUnitOfMeasureCurrencyCodeSource: 2909,\n    /** Identifies class or source of the LegPriceUnitOfMeasureCurrency(1721) value. */\n    LegPriceUnitOfMeasureCurrencyCodeSource: 2910,\n    /** Identifies class or source of the LegPriceQuoteCurrency(1528) value. */\n    LegPriceQuoteCurrencyCodeSource: 2911,\n    /** Identifies class or source of the DerivativeStrikeCurrency(1262) value. */\n    DerivativeStrikeCurrencyCodeSource: 2912,\n    /** Identifies class or source of the DerivativeUnitOfMeasureCurrency(1722) value. */\n    DerivativeUnitOfMeasureCurrencyCodeSource: 2913,\n    /** Identifies class or source of the DerivativePriceUnitOfMeasureCurrency(1723) value. */\n    DerivativePriceUnitOfMeasureCurrencyCodeSource: 2914,\n    /** Identifies class or source of the DerivativePriceQuoteCurrency(1576) value. */\n    DerivativePriceQuoteCurrencyCodeSource: 2915,\n    /** Identifies class or source of the UnderlyingCurrency(318) value. */\n    UnderlyingCurrencyCodeSource: 2916,\n    /** Identifies class or source of the UnderlyingStrikeCurrency(941) value. */\n    UnderlyingStrikeCurrencyCodeSource: 2917,\n    /** Identifies class or source of the UnderlyingUnitOfMeasureCurrency(1718) value. */\n    UnderlyingUnitOfMeasureCurrencyCodeSource: 2918,\n    /** Identifies class or source of the UnderlyingPriceUnitOfMeasureCurrency(1719) value. */\n    UnderlyingPriceUnitOfMeasureCurrencyCodeSource: 2919,\n    /** Identifies class or source of the UnderlyingPriceQuoteCurrency(1526) value. */\n    UnderlyingPriceQuoteCurrencyCodeSource: 2920,\n    /** Identifies class or source of the UnderlyingNotionalCurrency(2615) value. */\n    UnderlyingNotionalCurrencyCodeSource: 2921,\n    /** Identifies class or source of the CommCurrency(479) value. */\n    CommCurrencyCodeSource: 2922,\n    /** Identifies class or source of the CommissionCurrency(2643) value. */\n    CommissionCurrencyCodeSource: 2923,\n    /** Identifies class or source of the CommissionUnitOfMeasureCurrency(2645) value. */\n    CommissionUnitOfMeasureCurrencyCodeSource: 2924,\n    /** Identifies class or source of the AllocCommissionCurrency(2657) value. */\n    AllocCommissionCurrencyCodeSource: 2925,\n    /** Identifies class or source of the AllocCommissionUnitOfMeasureCurrency(2659) value. */\n    AllocCommissionUnitOfMeasureCurrencyCodeSource: 2926,\n    /** Identifies class or source of the AllocSettlCurrency(736) value. */\n    AllocSettlCurrencyCodeSource: 2927,\n    /** Identifies class or source of the LegAllocSettlCurrency(1367) value. */\n    LegAllocSettlCurrencyCodeSource: 2928,\n    /** Identifies class or source of the CollateralCurrency(1705) value. */\n    CollateralCurrencyCodeSource: 2929,\n    /** Identifies class or source of the SideCollateralCurrency(2695) value. */\n    SideCollateralCurrencyCodeSource: 2930,\n    /** Identifies class or source of the CollateralReinvestmentCurrency(2843) value. */\n    CollateralReinvestmentCurrencyCodeSource: 2931,\n    /** Identifies class or source of the SideCollateralReinvestmentCurrency(2866) value. */\n    SideCollateralReinvestmentCurrencyCodeSource: 2932,\n    /** Identifies class or source of the TradeAllocCurrency(1847) value. */\n    TradeAllocCurrencyCodeSource: 2933,\n    /** Identifies class or source of the TradingCurrency(1245) value. */\n    TradingCurrencyCodeSource: 2934,\n    /** Identifies class or source of the LimitAmtCurrency(1634) value. */\n    LimitAmtCurrencyCodeSource: 2935,\n    /** Identifies class or source of the PosQtyUnitOfMeasureCurrency(1835) value. */\n    PosQtyUnitOfMeasureCurrencyCodeSource: 2936,\n    /** Identifies class or source of the PositionCurrency(1055) value. */\n    PositionCurrencyCodeSource: 2937,\n    /** Identifies class or source of the LegPosCurrency(1589) value. */\n    LegPosCurrencyCodeSource: 2938,\n    /** Identifies class or source of the RiskLimitCurrency(1532) value. */\n    RiskLimitCurrencyCodeSource: 2939,\n    /** Identifies class or source of the EntitlementAttribCurrency(1781) value. */\n    EntitlementAttribCurrencyCodeSource: 2940,\n    /** Identifies class or source of the ComplexOptPayoutCurrency(2122) value. */\n    ComplexOptPayoutCurrencyCodeSource: 2941,\n    /** Identifies class or source of the ComplexEventCurrencyOne(2124) value. */\n    ComplexEventCurrencyOneCodeSource: 2942,\n    /** Identifies class or source of the ComplexEventCurrencyTwo(2125) value. */\n    ComplexEventCurrencyTwoCodeSource: 2943,\n    /** Identifies class or source of the LegComplexOptPayoutCurrency(2226) value. */\n    LegComplexOptPayoutCurrencyCodeSource: 2944,\n    /** Identifies class or source of the LegComplexEventCurrencyOne(2233) value. */\n    LegComplexEventCurrencyOneCodeSource: 2945,\n    /** Identifies class or source of the LegComplexEventCurrencyTwo(2234) value. */\n    LegComplexEventCurrencyTwoCodeSource: 2946,\n    /** Identifies class or source of the UnderlyingComplexOptPayoutCurrency(2266) value. */\n    UnderlyingComplexOptPayoutCurrencyCodeSource: 2947,\n    /** Identifies class or source of the UnderlyingComplexEventCurrencyOne(2268) value. */\n    UnderlyingComplexEventCurrencyOneCodeSource: 2948,\n    /** Identifies class or source of the UnderlyingComplexEventCurrencyTwo(2269) value. */\n    UnderlyingComplexEventCurrencyTwoCodeSource: 2949,\n    /** Identifies class or source of the BenchmarkCurveCurrency(220) value. */\n    BenchmarkCurveCurrencyCodeSource: 2950,\n    /** Identifies class or source of the LegBenchmarkCurveCurrency(676) value. */\n    LegBenchmarkCurveCurrencyCodeSource: 2951,\n    /** Identifies class or source of the AgreementCurrency(918) value. */\n    AgreementCurrencyCodeSource: 2952,\n    /** Identifies class or source of the LegAgreementCurrency(2495) value. */\n    LegAgreementCurrencyCodeSource: 2953,\n    /** Identifies class or source of the FundingSourceCurrency(2847) value. */\n    FundingSourceCurrencyCodeSource: 2954,\n    /** Identifies class or source of the PayCollectCurrency(1709) value. */\n    PayCollectCurrencyCodeSource: 2955,\n    /** Identifies class or source of the PostTradePaymentCurrency(2818) value. */\n    PostTradePaymentCurrencyCodeSource: 2956,\n    /** Reference to the first or second currency or digital asset in Symbol(55) for FX-style trading.\n        Conditionally required when one or both symbols in Symbol(55) represent a digital asset. */\n    SymbolPositionNumber: 2957,\n    /** Reference to the first or second currency or digital asset in LegSymbol(600) for FX-style trading.\n        Conditionally required when one or both symbols in LegSymbol(600) represent a digital asset. */\n    LegSymbolPositionNumber: 2958,\n    /** Reference to the first or second currency or digital asset in UnderlyingSymbol(311) for FX-style trading.\n        Conditionally required when one or both symbols in UnderlyingSymbol(311) represent a digital asset. */\n    UnderlyingSymbolPositionNumber: 2959,\n    /** Identifies the class or source of the SettlPriceUnitOfMeasureCurrency(1887) value. */\n    SettlPriceUnitOfMeasureCurrencyCodeSource: 2960,\n    /** Indicates whether the trade or transaction was executed anonymously. */\n    AnonymousTradeIndicator: 2961,\n    /** May be used to generically assist in disambiguating an instrument where the security identifier and core reference data attributes are not sufficient to uniquely identify the instrument. The values used are bilaterally agreed.\n        The data used for disambiguation can be of synthetic nature (e.g. 1, 2, 3,... or A, B, C,...) or based on other characteristic of the instrument. An example of the latter is an energy futures or options contract which may have the same expiration date with different delivery dates that fall on a non-business day; in such a use case the first day of delivery date may be used to disambiguate such contract (date expression used should be bilaterally agreed). */\n    SecurityReferenceDataSupplement: 2962,\n    /** Indicate whether a trade is eligible to be reported to more than one regulatory jurisdictions, e.g. due to overlapping reporting rules that require reporting to different jurisdictions. */\n    MultiJurisdictionReportingIndicator: 2963,\n    /** Indicate the instruction for self-match prevention when the incoming (aggressive) order has the same SelfMatchPreventionID(2362) as a resting (passive) order. */\n    SelfMatchPreventionInstruction: 2964,\n    /** Unique identifier of the SettlementStatusRequest(35=EC). */\n    SettlStatusRequestID: 2965,\n    /** Status of the SettlementStatusRequest(35=EC) message being responded to. */\n    SettlStatusRequestStatus: 2966,\n    /** Unique identifier of the SettlementStatusReport(35=EE). */\n    SettlStatusReportID: 2967,\n    /** The settlement status of the identified trade.\n        This field mirrors MT548 subsequence A2 field 25D Status Code. See https://www.iso20022.org/15022/uhb/mt548-10-field-25d.htm for MT548 code values. */\n    SettlStatus: 2968,\n    /** Used to provide additional reason or qualify the reason for the settlement status specified in SettlStatus(2968).\n        This field mirrors MT548 subsequence A2a field 24B Reason Code. See https://www.iso20022.org/15022/uhb/mt548-12-field-24b.htm for MT548 code values. */\n    SettlStatusReason: 2969,\n    /** Text description associated with SettlStatusReason(2969).\n        This field mirrors MT548 subsequence A2a field 70D Narrative. */\n    SettlStatusReasonText: 2970,\n    /** Byte length of encoded (non-ASCII characters) EncodedSettlStatusReasonText(2972) field. */\n    EncodedSettlStatusReasonTextLen: 2971,\n    /** Encoded (non-ASCII characters) representation of the SettlStatusReasonText(2970) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the SettlStatusReasonText(2970) field. */\n    EncodedSettlStatusReasonText: 2972,\n    /** Status of the report being responded to. */\n    SettlStatusReportStatus: 2973,\n    /** Identifier for quantity subgroup assigned by the clearinghouse. */\n    AllocGroupSubQtyID: 2974,\n    /** Indicates number of subgroups in an allocation group. */\n    NoAllocGroupSubQtys: 2975,\n    /** Total quantity in the subgroup of an allocation group. */\n    AllocGroupSubQty: 2976,\n    /** Change in quantity in the subgroup of an allocation group. */\n    AllocGroupSubQtyOffset: 2977,\n    /** Remaining quantity in the subgroup of an allocation group. */\n    AllocGroupRemainingSubQty: 2978,\n    /** Indicates number of trade attributes used to define a subgroup in an allocation group. */\n    NoAllocGroupSubQtyAttributes: 2979,\n    /** Type of trade attribute defining a subgroup in an allocation group. */\n    AllocGroupSubQtyType: 2980,\n    /** Value of the trade attribute defining a subgroup in an allocation group. */\n    AllocGroupSubQtyValue: 2981,\n    /** Time unit associated with the minimum frequency of the instrument maturity intervals.\n        Usage note: When FlexibleIndicator(1244)=Y and the maturity date is user-defined, set MaturityFrequencyUnit(2982)=F (Flexible). */\n    MaturityFrequencyUnit: 2982,\n    /** Time unit multiplier for the minimum frequency of the instrument maturity intervals. */\n    MaturityFrequencyPeriod: 2983,\n    /** Time unit associated with the minimum frequency of the instrument maturity intervals.\n        Usage note: When UnderlyingFlexibleIndicator(2035)=Y and the underlying maturity is user-defined, set UnderlyingMaturityFrequencyUnit(2984)=F (Flexible). */\n    UnderlyingMaturityFrequencyUnit: 2984,\n    /** Time unit multiplier for the minimum frequency of the instrument maturity intervals. */\n    UnderlyingMaturityFrequencyPeriod: 2985,\n    /** Time unit associated with the minimum frequency of the instrument maturity intervals.\n        Usage note: When LegFlexibleIndicator(2202)=Y and the leg maturity is user-defined, set LegMaturityFrequencyUnit(2986)=F (Flexible). */\n    LegMaturityFrequencyUnit: 2986,\n    /** Time unit multiplier for the minimum frequency of the instrument maturity intervals. */\n    LegMaturityFrequencyPeriod: 2987,\n    /** Unique identifier for the SecurityRiskMetricsReport(35=EG) message. */\n    SecurityRiskMetricsReportID: 2988,\n    /** Describes a group of related instruments for which risk metrics are provided. */\n    RiskMetricsSecurityGroup: 2989,\n    /** Describes a sub-group of a group identified by RiskMetricsSecurityGroup(2989). */\n    RiskMetricsSecuritySubGroup: 2990,\n    /** Bid price of the underlying instrument. */\n    UnderlyingBidPx: 2991,\n    /** Offer price of the underlying instrument. */\n    UnderlyingOfferPx: 2992,\n    /** Specifies the source of the price(s) of the security used in the calculation of the metrics or analytics data. */\n    MetricsCalculationPriceSource: 2993,\n    /** Identifies the model used for asset valuation or pricing calculations. */\n    AssetValuationModel: 2994,\n    /** Number of instruments with security risk metrics data. */\n    NoSecurityRiskMetrics: 2995,\n    /** The rate of change of Delta over time. */\n    Gamma: 2996,\n    /** The security's value rate of change in response to a 1% change in (risk-free) interest rate. Measures the security's sensitivity to interest rate change. */\n    Rho: 2997,\n    /** The security's price rate of change in relation to passage of time. Also known as \"time decay\". */\n    Theta: 2998,\n    /** The security's price sensitivity to change in volatility of the underlying asset price. */\n    Vega: 2999,\n    /** Time at which volatility was computed. */\n    VolatilityTime: 3000,\n    /** Volatility based on bid prices. */\n    BidVolatility: 3001,\n    /** Volatility based on offer prices. */\n    OfferVolatility: 3002,\n    /** Volatility based on mid prices. */\n    MidVolatility: 3003,\n    /** Timestamp at which the relative valuation metric or analytic is calculated or captured. */\n    RelativeValueTimestamp: 3004,\n    /** Number of trade types in repeating group. */\n    NoTradeTypes: 3005,\n    /** Type of trade assigned to a trade.\n        Note: several enumerations of this field duplicate the enumerations in TradePriceCondition(1839) field. These may be deprecated from TradeType(3006) in the future. TradePriceCondition(1839) is preferred in messages that support it. */\n    TradeType: 3006,\n    /** Further qualification to the trade type defined in TradeType(3006). */\n    TradeSubType: 3007,\n    /** Number of allocation timestamps. */\n    NoAllocTrdRegTimestamps: 3008,\n    /** Same as TrdRegTimestamp(769). Used to provide relevant timestamp for the allocation account. */\n    AllocTrdRegTimestamp: 3009,\n    /** Same as TrdRegTimestampType(770). Used to indicate the timestamp type relevant for the allocation account. */\n    AllocTrdRegTimestampType: 3010,\n    /** Same as TrdRegTimestampOrigin(771). Used to indicate the \"origin\" or source of the timestamp relevant for the allocation account. */\n    AllocTrdRegTimestampSrc: 3011,\n    /** Unique identifier for a certificate issued by an algorithmic trading firm. */\n    AlgoCertificateID: 3012,\n    /** Description of a certificate issued by an algorithmic trading firm. */\n    AlgoCertificateDesc: 3013,\n    /** Unique identifier of the AlgoCertificateRequest(35=EH). */\n    AlgoCertificateRequestID: 3014,\n    /** Reference identifier of the AlgoCertificateRequest(35=EH). */\n    AlgoCertificateRequestRefID: 3015,\n    /** Identifies the message transaction type. */\n    AlgoCertificateRequestTransType: 3016,\n    /** Status of the AlgoCertificateRequest(35=EH) message being responded to. */\n    AlgoCertificateRequestStatus: 3017,\n    /** Unique identifier of the AlgoCertificateReport(35=EJ). */\n    AlgoCertificateReportID: 3018,\n    /** Reference identifier of the AlgoCertificateReport(35=EJ). */\n    AlgoCertificateReportRefID: 3019,\n    /** Identifies the message transaction type. */\n    AlgoCertificateReportTransType: 3020,\n    /** Status of the report being responded to. */\n    AlgoCertificateReportStatus: 3021,\n    /** Identifies the current status of the certificate as established by the certificate issuer. */\n    AlgoCertificateStatus: 3022,\n    /** Date and time the details within the message have been approved. */\n    ApprovalTime: 3023,\n    /** Description of means of testing for an algorithm. */\n    AlgoTestDesc: 3024,\n    /** Number of components making up a system for algorithmic trading. */\n    NoAlgoSystemModules: 3025,\n    /** Name of the component of a system for algorithmic trading. */\n    AlgoSystemModuleName: 3026,\n    /** Version (e.g. build or commit number) of the component of a system for algorithmic trading. */\n    AlgoSystemModuleVersion: 3027,\n    /** Number of test scenarios for an algorithmic trading system. */\n    NoTestScenarios: 3028,\n    /** Unique identifier of a test scenario for a software system. */\n    TestScenarioID: 3029,\n    /** Identifies the overall result of a test scenario identified by TestScenarioID(3029). */\n    TestScenarioStatus: 3030,\n    /** Starting date and time of test scenario execution for a software system. */\n    TestScenarioStartTime: 3031,\n    /** Ending date and time of test scenario execution for a software system. */\n    TestScenarioEndTime: 3032,\n    /** Description of the origin of the market data. */\n    MDOriginDesc: 3033,\n    /** Date and time of the market data. */\n    MDOriginTime: 3034,\n    /** Unique identifier for the group of test steps constituting a test scenario. */\n    TestStepGroupID: 3035,\n    /** Number of test steps. */\n    NoTestSteps: 3036,\n    /** Unique identifier of a test step. */\n    TestStepID: 3037,\n    /** Description of a test step. */\n    TestStepDesc: 3038,\n    /** Starting time of a test step. */\n    TestStepStartTime: 3039,\n    /** Time unit multiplier for the starting time of a test step relative to the starting time of a test scenario. */\n    TestStepStartOffsetPeriod: 3040,\n    /** Time unit associated with the starting time of a test step relative to the starting time of a test scenario. */\n    TestStepStartOffsetUnit: 3041,\n    /** Ending time of a test step. */\n    TestStepEndTime: 3042,\n    /** Time unit multiplier for the ending time of a test step relative to the starting time of a test scenario. */\n    TestStepEndOffsetPeriod: 3043,\n    /** Time unit associated with the starting time of a test step relative to the ending time of a test scenario. */\n    TestStepEndOffsetUnit: 3044,\n    /** Number of test step parameters. */\n    NoTestStepParameters: 3045,\n    /** Name of the test step parameter. */\n    TestStepParameterName: 3046,\n    /** Datatype of the test step parameter. */\n    TestStepParameterType: 3047,\n    /** Value of the test step parameter. */\n    TestStepParameterValue: 3048,\n    /** Number of components making up a testing system. */\n    NoTestSystemModules: 3049,\n    /** Name of the component of a testing system. */\n    TestSystemModuleName: 3050,\n    /** Version (e.g. build or commit number) of the component of a testing system. */\n    TestSystemModuleVersion: 3051,\n    /** Number of results for a test scenario. */\n    NoTestMeasures: 3052,\n    /** Name of a test measure. */\n    TestMeasureName: 3053,\n    /** Description of a test measure. */\n    TestMeasureDesc: 3054,\n    /** Datatype of the metric being used for a test. */\n    TestMeasureType: 3055,\n    /** Number of decimal places for TestMeasureType(3055). */\n    TestMeasurePrecision: 3056,\n    /** Identifies the result of an individual test based on a measure. */\n    TestMeasureResult: 3057,\n    /** Identifies whether the value of a measure needs to be over or under a specific threshold to be successful. */\n    TestThresholdType: 3058,\n    /** Value of the measure upon which a warning is issued for the test. */\n    TestWarningLevelValue: 3059,\n    /** Value of the measure upon which the test is considered to have failed. */\n    TestFailLevelValue: 3060,\n    /** Peak value of the measure achieved in testing. */\n    TestPeakLevelValue: 3061,\n    /** Unique identifier of the TestSuiteDefinitionRequest(35=EL). */\n    TestSuiteRequestID: 3062,\n    /** Reference identifier of the TestSuiteDefinitionRequest(35=EL). */\n    TestSuiteRequestRefID: 3063,\n    /** Identifies the message transaction type. */\n    TestSuiteRequestTransType: 3064,\n    /** Status of the TestSuiteDefinitionRequest(35=EL) message being responded to. */\n    TestSuiteRequestStatus: 3065,\n    /** Unique identifier of the TestActionRequest(35=EN). */\n    TestActionRequestID: 3066,\n    /** Specifies the type of action to take or that was taken for a given test suite. */\n    TestActionType: 3067,\n    /** Status of the TestActionRequest(35=EN) message being responded to. */\n    TestActionRequestStatus: 3068,\n    /** Specifies the activity state the test suite is in. */\n    TestSuiteActivityState: 3069,\n    /** Identifies the overall test result of a group of individual test scenarios. */\n    TestSuiteStatus: 3070,\n    /** Identifier of the test action report. */\n    TestActionReportID: 3071,\n    /** Identifies the currency pair/symbol that the instance of the rate source information is applicable for the fixing. */\n    RateSourceSymbol: 3072,\n    /** The source of where to obtain the FX benchmark rate to use for fixing the rate.\n        The value in this field can be different from RateSource(1446). For example, \"Bloomberg\" can be the reference source identified in RateSource(1446), and FXBenchmark(3073) can be \"central bank\" - what this says is to use Bloomberg to look up/reference the published central bank rate. Likewise, the BFIX rate for fixing (FXBenchmark(3073)=1 (Bloomberg)) can be sourced from Reuters (RateSource(1446)=1 (Reuters)). If the source for benchmark fixing rate is the same as the reference source (RateSource(1446)), this field, FXBenchmark(3073), can be omitted. */\n    FXBenchmark: 3073,\n    /** The local date of the FX rate fixing. The time applicable on the fixing date is specified in FXBenchmarkTime(3075). */\n    FXBenchmarkDate: 3074,\n    /** The local time of the FX rate fixing. The date applicable for the fixing time is specified in FXBenchmarkDate(3074). */\n    FXBenchmarkTime: 3075,\n    /** A business center whose calendar is used for date/time adjustment. See https://www.fpml.org/coding-scheme/business-center to download the current (ISDA/FpML) standard 4-character code values for business center identification. */\n    FXBenchmarkBusinessCenter: 3076,\n    /** Specifies the type of business event related to an algo certification request. */\n    AlgoCertificateRequestType: 3077,\n    /** Specifies the type of business event related to an algo certification report. */\n    AlgoCertificateReportType: 3078,\n    /** Unique identifier for the group of test scenarios constituting a test suite. */\n    TestScenarioGroupID: 3079,\n    /** Support Timestamp of last update to Algo System Module. */\n    AlgoSystemModuleLastUpdateTime: 3080,\n    /** Support Timestamp of last update to Algo Test System Module. */\n    TestSystemModuleLastUpdateTime: 3081,\n    /** Number of orders for testing. */\n    NoTestOrders: 3082,\n    /** Identifier of a test order. */\n    TestOrderID: 3083,\n    /** Used for the security symbol of a test order.\n        See Symbol(55) field for description. */\n    TestOrderSymbol: 3084,\n    /** Used for the security identifier of a test order.\n        See Security(48) field for description. */\n    TestOrderSecurityID: 3085,\n    /** Used for the source of the security identifier of a test order.\n        See SecurityIDSource(22) field for description. */\n    TestOrderSecurityIDSource: 3086,\n    /** Used for the price of a test order.\n        See Price(44) field for description. */\n    TestOrderPrice: 3087,\n    /** Type of price of TestOrderPrice(3087). */\n    TestOrderPriceType: 3088,\n    /** Used for the quantity of a test order.\n        See OrderQty(80) field for description. */\n    TestOrderQty: 3089,\n    /** Time unit multiplier for the effective time of an order relative to the starting time of a test scenario. */\n    TestOrderOffsetPeriod: 3090,\n    /** Time unit associated with the effective time of an order relative to the starting time of a test scenario. */\n    TestOrderOffsetUnit: 3091,\n    /** Number of test gateway details. */\n    NoTestGatewayDetails: 3092,\n    /** Name of test gateway information. */\n    TestGatewayDetailName: 3093,\n    /** Type of test gateway information. */\n    TestGatewayDetailType: 3094,\n    /** Value of test gateway information. */\n    TestGatewayDetailValue: 3095,\n    /** Execution venue of test system. */\n    TestGatewayMarketID: 3096,\n    /** Identifies the behaviour or configuration that has been selected by the executing party for this order.\n        Absence of this field indicates that no trial is under way or that the executing party is unable to provide the information. */\n    AlgoTrialID: 3097,\n    /** Identifies the algorithm a broker has opted to use when executing an order. */\n    LastAlgoID: 3098,\n    /** Indicates number of trade attributes used to define a subgroup in an allocation group. */\n    NoIndividualAllocSubQtyAttributes: 3099,\n    /** Type of trade attribute defining a subgroup in an allocation group. */\n    IndividualAllocSubQtyType: 3100,\n    /** Value of the trade attribute defining a subgroup in an allocation group. */\n    IndividualAllocSubQtyValue: 3101,\n    /** Identifies the most liquid market for a given instrument.\n        In the context of the EU Consolidated Tape, this is used to identify the most relevant market in terms of liquidity (MRMTL). */\n    MostLiquidMarketID: 3102,\n    /** Identifies whether a given market is the most liquid for a given instrument.\n        In the context of the EU Consolidated Tape, this is used to indicate whether a given market is the most relevant market in terms of liquidity (MRMTL). */\n    MostLiquidMarketIndicator: 3103,\n    /** Number of trades or transactions included in an aggregated trade or transaction.\n        In the context of the EU Consolidated Tape, this is used for the deferred publication of multiple transactions as a single, aggregated transaction with a weighted average price and the total volume of its individual transactions. */\n    NumberOfTrades: 3104,\n    /** Indicates the quality of the market data being provided.\n        In the context of the EU Consolidated Tape, this is used by the CTP to identify suspicious data coming from the data contributor. */\n    MDQualityIndicator: 3105,\n    /** Indicates the acceptance status of a market data entry. */\n    MDEntryStatus: 3106,\n    /** Free form text to specify information related to the status provided with MDEntryStatus(3106). */\n    MDEntryStatusText: 3107,\n    /** Byte length of encoded (non-ASCII characters) EncodedMDEntryStatusText(3109) field. */\n    EncodedMDEntryStatusTextLen: 3108,\n    /** Encoded (non-ASCII characters) representation of the MDEntryStatusText(3107) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the MDEntryStatusText(3107) field.\n        Data length controlled by field EncodedMDEntryStatusTextLen(3108). */\n    EncodedMDEntryStatusText: 3109,\n    /** Unique message identifier for MarketDataSnapshotFullRefresh(35=W) or MarketDataIncrementalRefresh(35=X) message.\n        To be used in MarketDataAck(35=EQ) message as reference to market data message being acknowledged. */\n    MDMsgID: 3110,\n    /** Unique identifier for a SecurityStatus(35=f) message. */\n    SecurityStatusReportID: 3111,\n    /** Unique identifier for a TradingSessionStatus(35=h) message. */\n    TradingSessionStatusReportID: 3112,\n    /** Indicates the status of a report. */\n    ReportStatus: 3113,\n    /** Specifies margined price of a security. */\n    MarginPrice: 3114,\n    /** Specifies the dividend payout ratio associated with an equity or a bond security. */\n    DividendPayoutRatio: 3115,\n    /** Number of LegRateSource entries in the repeating group. */\n    NoLegRateSources: 3116,\n    /** Identifies the source of rate information.\n        For FX, the reference source to be used for the FX spot rate.\n        This is where to look up the rate information and is not necessarily the entity that sets the rate. */\n    LegRateSource: 3117,\n    /** Indicates whether the rate source specified is a primary or secondary source. */\n    LegRateSourceType: 3118,\n    /** Identifies the reference \"page\" from the rate source.\n        For FX, the reference page to the spot rate to be used for the reference FX spot rate.\n        When RateSource(1446) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: https://www.fpml.org/coding-scheme/settlement-rate-option. */\n    LegReferencePage: 3119,\n    /** Identifies the page heading from the rate source. */\n    LegRateSourceReferencePageHeading: 3120,\n    /** Identifies the currency pair/symbol that the instance of the rate source information is applicable for the fixing. */\n    LegRateSourceSymbol: 3121,\n    /** The source of where to obtain the FX benchmark rate to use for fixing the rate.\n        The value in this field can be different from LegRateSource(3117). For example, \"Bloomberg\" can be the reference source identified in LegRateSource(3117), and LegFXBenchmark(3122) can be \"central bank\" - what this says is to use Bloomberg to look up/reference the published central bank rate. Likewise, the BFIX rate for fixing (LegFXBenchmark(3122)=1 (Bloomberg)) can be sourced from Reuters (LegRateSource(3117)=1 (Reuters)). If the source for benchmark fixing rate is the same as the reference source (LegRateSource(3117)), this field, LegFXBenchmark(3122), can be omitted. */\n    LegFXBenchmark: 3122,\n    /** The local date of the FX rate fixing. The time applicable on the fixing date is specified in LegFXBenchmarkTime(3124). */\n    LegFXBenchmarkDate: 3123,\n    /** The local time of the FX rate fixing. The date applicable for the fixing time is specified in LegFXBenchmarkDate(3123). */\n    LegFXBenchmarkTime: 3124,\n    /** A business center whose calendar is used for date/time adjustment. See https://www.fpml.org/coding-scheme/business-center to download the current (ISDA/FpML) standard 4-character code values for business center identification. */\n    LegFXBenchmarkBusinessCenter: 3125,\n    /** Number of test suite parameters. */\n    NoTestSuiteParameters: 3126,\n    /** Name of the test suite parameter. */\n    TestSuiteParameterName: 3127,\n    /** Datatype of the test suite parameter. */\n    TestSuiteParameterType: 3128,\n    /** Value of the test scenario parameter. */\n    TestSuiteParameterValue: 3129,\n    /** Number of test scenario parameters. */\n    NoTestScenarioParameters: 3130,\n    /** Name of the test scenario parameter. */\n    TestScenarioParameterName: 3131,\n    /** Datatype of the test scenario parameter. */\n    TestScenarioParameterType: 3132,\n    /** Value of the test scenario parameter. */\n    TestScenarioParameterValue: 3133,\n    /** Number of bonds in the repeating group. */\n    NoAdditionalTermBondRefs: 40000,\n    /** Security identifier of the bond. */\n    AdditionalTermBondSecurityID: 40001,\n    /** Identifies the source scheme of the AdditionalTermBondSecurityID(40001) value. */\n    AdditionalTermBondSecurityIDSource: 40002,\n    /** Description of the bond. */\n    AdditionalTermBondDesc: 40003,\n    /** Byte length of encoded (non-ASCII characters) EncodedAdditionalTermBondDesc(40005) field. */\n    EncodedAdditionalTermBondDescLen: 40004,\n    /** Encoded (non-ASCII characters) representation of the AdditionalTermBondDesc(40003) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the AdditionalTermBondDesc(40003) field. */\n    EncodedAdditionalTermBondDesc: 40005,\n    /** Specifies the currency the bond value is denominated in. Uses ISO 4217 currency codes. */\n    AdditionalTermBondCurrency: 40006,\n    /** Issuer of the bond. */\n    AdditionalTermBondIssuer: 40007,\n    /** Byte length of encoded (non-ASCII characters) EncodedAdditionalTermBondIssuer(40009) field. */\n    EncodedAdditionalTermBondIssuerLen: 40008,\n    /** Encoded (non-ASCII characters) representation of the AdditionalTermBondIssuer(40007) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the AdditionalTermBondIssuer(40007) field. */\n    EncodedAdditionalTermBondIssuer: 40009,\n    /** Specifies the bond's payment priority in the event of a default. */\n    AdditionalTermBondSeniority: 40010,\n    /** Coupon type of the bond. */\n    AdditionalTermBondCouponType: 40011,\n    /** Coupon rate of the bond. See also CouponRate(223). */\n    AdditionalTermBondCouponRate: 40012,\n    /** The maturity date of the bond. */\n    AdditionalTermBondMaturityDate: 40013,\n    /** The par value of the bond. */\n    AdditionalTermBondParValue: 40014,\n    /** Total issued amount of the bond. */\n    AdditionalTermBondCurrentTotalIssuedAmount: 40015,\n    /** Time unit multiplier for the frequency of the bond's coupon payment. */\n    AdditionalTermBondCouponFrequencyPeriod: 40016,\n    /** Time unit associated with the frequency of the bond's coupon payment. */\n    AdditionalTermBondCouponFrequencyUnit: 40017,\n    /** The day count convention used in interest calculations for a bond or an interest bearing security. */\n    AdditionalTermBondDayCount: 40018,\n    /** Number of additional terms in the repeating group. */\n    NoAdditionalTerms: 40019,\n    /** Indicates whether the condition precedent bond is applicable. The swap contract is only valid if the bond is issued and if there is any dispute over the terms of fixed stream then the bond terms would be used. */\n    AdditionalTermConditionPrecedentBondIndicator: 40020,\n    /** Indicates whether the discrepancy clause is applicable. */\n    AdditionalTermDiscrepancyClauseIndicator: 40021,\n    /** Number of elements in the repeating group. */\n    NoCashSettlTerms: 40022,\n    /** Specifies the currency the CashSettlAmount(40034) is denominated in. Uses ISO 4217 currency codes. */\n    CashSettlCurrency: 40023,\n    /** The number of business days after settlement conditions have been satisfied, when the calculation agent is to obtain a price quotation on the reference obligation for the purpose of cash settlement.\n        Associated with ISDA 2003 Term: Valuation Date. */\n    CashSettlValuationFirstBusinessDayOffset: 40024,\n    /** The time of valuation. */\n    CashSettlValuationTime: 40025,\n    /** Identifies the business center calendar used at valuation time for cash settlement purposes e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    CashSettlBusinessCenter: 40026,\n    /** The type of quote used to determine the cash settlement price. */\n    CashSettlQuoteMethod: 40027,\n    /** When determining the cash settlement amount, if weighted average price quotes are to be obtained for the reference obligation, this is the upper limit to the outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount equal to floating rate payer calculation amount.\n        ISDA 2003 Term: Quotation Amount. */\n    CashSettlQuoteAmount: 40028,\n    /** Specifies the currency the CashSettlQuoteAmount(40028) is denominated in. Uses ISO 4217 Currency Code. */\n    CashSettlQuoteCurrency: 40029,\n    /** When determining the cash settlement amount, if weighted average price quotes are to be obtained for the reference obligation, this is the minimum intended threshold amount of outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount of the lower of either USD1,000,000 (or its equivalent in the relevant obligation currency) or the (minimum) quoted amount.\n        ISDA 2003 Term: Minimum Quotation Amount. */\n    CashSettlMinimumQuoteAmount: 40030,\n    /** Specifies the currency the CashSettlMinimumQuoteAmount(40030) is denominated in. Uses ISO 4217 Currency Code. */\n    CashSettlMinimumQuoteCurrency: 40031,\n    /** Identifies the dealer from whom price quotations for the reference obligation are obtained for the purpose of cash settlement valuation calculation.\n        ISDA 2003 Term: Dealer. */\n    CashSettlDealer: 40032,\n    /** The number of business days used in the determination of the cash settlement payment date.\n        If a cash settlement amount is specified, the cash settlement payment date will be this number of business days following the calculation of the final price. If a cash settlement amount is not specified, the cash settlement payment date will be this number of business days after all conditions to settlement are satisfied.\n        ISDA 2003 Term: Cash Settlement Date. */\n    CashSettlBusinessDays: 40033,\n    /** The amount paid between the trade parties, seller to the buyer, for cash settlement on the cash settlement date.\n        If not specified this is not to be included in the message and the parties to the trade are expected to calculate the value. The value is the greater of (a) floating rate payer calculation amount x (reference price - final price) or (b) zero. Price values are all expressed as a percentage. ISDA 2003 Term: Cash Settlement Amount */\n    CashSettlAmount: 40034,\n    /** Used for fixed recovery, this specifies the recovery level as determined at contract inception, to be applied in the event of a default. The factor is used to calculate the amount paid by the seller to the buyer for cash settlement on the cash settlement date. The amount calculated is (1 - CashSettlRecoveryFactor(40035)) x floating rate payer calculation amount. The currency is derived from the floating rate payer calculation amount. */\n    CashSettlRecoveryFactor: 40035,\n    /** Indicates whether fixed settlement is applicable or not applicable in a recovery lock. */\n    CashSettlFixedTermIndicator: 40036,\n    /** Indicates whether accrued interest is included or not in the value provided in CashSettlAmount(40034). For cash settlement this specifies whether quotations should be obtained inclusive or not of accrued interest.\n        For physical settlement this specifies whether the buyer should deliver the obligation with an outstanding principal balance that includes or excludes accrued interest.\n        ISDA 2003 Term: Include/Exclude Accrued Interest. */\n    CashSettlAccruedInterestIndicator: 40037,\n    /** The ISDA defined methodology for determining the final price of the reference obligation for purposes of cash settlement.\n        ISDA 2003 Term: Valuation Method */\n    CashSettlValuationMethod: 40038,\n    /** A named string value referenced by UnderlyingSettlTermXIDRef(41315). */\n    CashSettlTermXID: 40039,\n    /** Number of financing definitions in the repeating group. */\n    NoContractualDefinitions: 40040,\n    /** Specifies which contract definition, such as those published by ISDA, will apply for the terms of the trade. See http://www.fpml.org/coding-scheme/contractual-definitions for values. */\n    ContractualDefinition: 40041,\n    /** Number of contractual matrices in the repeating group. */\n    NoContractualMatrices: 40042,\n    /** Identifies the applicable contract matrix. See http://www.fpml.org/coding-scheme/matrix-type-1-0.xml for values. */\n    ContractualMatrixSource: 40043,\n    /** The publication date of the applicable version of the contract matrix. If not specified, the ISDA Standard Terms Supplement defines rules for which version of the matrix is applicable. */\n    ContractualMatrixDate: 40044,\n    /** Specifies the applicable key into the relevant contract matrix. In the case of 2000 ISDA Definitions Settlement Matrix for Early Termination and Swaptions, the ContractualMatrixTerm(40045) is not applicable and is to be omitted.\n        See http://www.fpml.org/coding-scheme/credit-matrix-transaction-type for values. */\n    ContractualMatrixTerm: 40045,\n    /** Number of financing terms supplements in the repeating group. */\n    NoFinancingTermSupplements: 40046,\n    /** Identifies the applicable contractual supplement. See http://www.fpml.org/coding-scheme/contractual-supplement for values. */\n    FinancingTermSupplementDesc: 40047,\n    /** The publication date of the applicable version of the contractual supplement. */\n    FinancingTermSupplementDate: 40048,\n    /** Number of swap streams in the repeating group. */\n    NoStreams: 40049,\n    /** Type of swap stream. */\n    StreamType: 40050,\n    /** A short descriptive name given to the payment stream. Eg. CDS, Fixed, Float, Float2, GBP. The description has no intrinsic meaning but should be arbitrarily chosen by the remitter as reference. */\n    StreamDesc: 40051,\n    /** The side of the party paying the stream. */\n    StreamPaySide: 40052,\n    /** The side of the party receiving the stream. */\n    StreamReceiveSide: 40053,\n    /** Notional, or initial notional value for the payment stream. Use the PaymentScheduleGrp component to specify the rate steps. */\n    StreamNotional: 40054,\n    /** Specifies the currency the StreamNotional(40054) is denominated in. Uses ISO 4217 currency codes. */\n    StreamCurrency: 40055,\n    /** Free form text to specify additional information or enumeration description when a standard value does not apply. */\n    StreamText: 40056,\n    /** The unadjusted effective date. */\n    UnderlyingStreamEffectiveDateUnadjusted: 40057,\n    /** The business day convention used to adjust the underlying instrument's stream's effective, or relative effective, date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingStreamEffectiveDateBusinessDayConvention: 40058,\n    /** The business center calendar used to adjust the underlying instrument's stream's effective, or relative effective, date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingStreamEffectiveDateBusinessCenter: 40059,\n    /** Specifies the anchor date when the effective date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingStreamEffectiveDateRelativeTo: 40060,\n    /** Time unit multiplier for the relative effective date offset. */\n    UnderlyingStreamEffectiveDateOffsetPeriod: 40061,\n    /** Time unit associated with the relative effective date offset. */\n    UnderlyingStreamEffectiveDateOffsetUnit: 40062,\n    /** Specifies the day type of the relative effective date offset. */\n    UnderlyingStreamEffectiveDateOffsetDayType: 40063,\n    /** The adjusted effective date. */\n    UnderlyingStreamEffectiveDateAdjusted: 40064,\n    /** The unadjusted termination date. */\n    StreamTerminationDateUnadjusted: 40065,\n    /** The business day convention used to adjust the instrument's stream's termination, or relative termination, date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    StreamTerminationDateBusinessDayConvention: 40066,\n    /** The business center calendar used to adjust the instrument's stream's termination, or relative termination, date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    StreamTerminationDateBusinessCenter: 40067,\n    /** Specifies the anchor date when the termination date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    StreamTerminationDateRelativeTo: 40068,\n    /** Time unit multiplier for the relative termination date offset. */\n    StreamTerminationDateOffsetPeriod: 40069,\n    /** Time unit associated with the relative termination date offset. */\n    StreamTerminationDateOffsetUnit: 40070,\n    /** Specifies the day type of the relative termination date offset. */\n    StreamTerminationDateOffsetDayType: 40071,\n    /** The adjusted termination date. */\n    StreamTerminationDateAdjusted: 40072,\n    /** The business day convention used to adjust calculation periods. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    StreamCalculationPeriodBusinessDayConvention: 40073,\n    /** The business center calendar used to adjust calculation periods, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    StreamCalculationPeriodBusinessCenter: 40074,\n    /** The unadjusted first calculation period start date if before the effective date. */\n    StreamFirstPeriodStartDateUnadjusted: 40075,\n    /** The business day convention used to adjust the instrument's stream's first calculation period start date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    StreamFirstPeriodStartDateBusinessDayConvention: 40076,\n    /** The business center calendar used to adjust the instrument's stream's first calculation period start date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    StreamFirstPeriodStartDateBusinessCenter: 40077,\n    /** The adjusted first calculation period start date, if it is before the effective date. */\n    StreamFirstPeriodStartDateAdjusted: 40078,\n    /** The unadjusted first start date of the regular calculation period, if there is an initial stub period. */\n    StreamFirstRegularPeriodStartDateUnadjusted: 40079,\n    /** The unadjusted end date of the initial compounding period. */\n    StreamFirstCompoundingPeriodEndDateUnadjusted: 40080,\n    /** The unadjusted last regular period end date if there is a final stub period. */\n    StreamLastRegularPeriodEndDateUnadjusted: 40081,\n    /** Time unit multiplier for the frequency at which calculation period end dates occur. */\n    StreamCalculationFrequencyPeriod: 40082,\n    /** Time unit associated with the frequency at which calculation period end dates occur. */\n    StreamCalculationFrequencyUnit: 40083,\n    /** The convention for determining the sequence of end dates. It is used in conjunction with a specified frequency. Used only to override the roll convention specified in the DateAdjustment component within the Instrument component. */\n    StreamCalculationRollConvention: 40084,\n    /** Number of settlement rate fallbacks in the repeating group */\n    NoSettlRateFallbacks: 40085,\n    /** The maximum number of days to wait for a quote from the disrupted settlement rate option before proceding to this method. */\n    SettlRatePostponementMaximumDays: 40086,\n    /** Identifies the source of the rate information. */\n    LegPaymentStreamNonDeliverableSettlRateSource: 40087,\n    /** Indicates whether to request a settlement rate quote from the market. */\n    SettlRatePostponementSurvey: 40088,\n    /** Used to identify the settlement rate postponement calculation agent. */\n    SettlRatePostponementCalculationAgent: 40089,\n    /** Number of provisions in the repeating group. */\n    NoProvisions: 40090,\n    /** Type of provisions. */\n    ProvisionType: 40091,\n    /** The unadjusted date of the provision. */\n    ProvisionDateUnadjusted: 40092,\n    /** The business day convention used to adjust the instrument's provision's dates. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    ProvisionDateBusinessDayConvention: 40093,\n    /** The business center calendar used to adjust the instrument's provision's dates, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ProvisionDateBusinessCenter: 40094,\n    /** The adjusted date of the provision. */\n    ProvisionDateAdjusted: 40095,\n    /** Time unit multiplier for the provision's tenor period. */\n    ProvisionDateTenorPeriod: 40096,\n    /** Time unit associated with the provision's tenor period. */\n    ProvisionDateTenorUnit: 40097,\n    /** Used to identify the calculation agent. The calculation agent may be identified in ProvisionCalculationAgent(40098) or in the ProvisionParties component. */\n    ProvisionCalculationAgent: 40098,\n    /** If optional early termination is not available to both parties then this component identifies the buyer of the option through its side of the trade. */\n    ProvisionOptionSinglePartyBuyerSide: 40099,\n    /** If optional early termination is not available to both parties then this component identifies the seller of the option through its side of the trade. */\n    ProvisionOptionSinglePartySellerSide: 40100,\n    /** The instrument provision option\u2019s exercise style. */\n    ProvisionOptionExerciseStyle: 40101,\n    /** A notional amount which restricts the amount of notional that can be exercised when partial exercise or multiple exercise is applicable. The integral multiple amount defines a lower limit of notional that can be exercised and also defines a unit multiple of notional that can be exercised, i.e. only integer multiples of this amount can be exercised. */\n    ProvisionOptionExerciseMultipleNotional: 40102,\n    /** The minimum notional amount that can be exercised on a given exercise date. */\n    ProvisionOptionExerciseMinimumNotional: 40103,\n    /** The maximum notional amount that can be exercised on a given exercise date. */\n    ProvisionOptionExerciseMaximumNotional: 40104,\n    /** The minimum number of options that can be exercised on a given exercise date. */\n    ProvisionOptionMinimumNumber: 40105,\n    /** The maximum number of options that can be exercised on a given exercise date. If the number is not specified, it means that the maximum number of options corresponds to the remaining unexercised options. */\n    ProvisionOptionMaximumNumber: 40106,\n    /** Used to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent. */\n    ProvisionOptionExerciseConfirmation: 40107,\n    /** An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (e). */\n    ProvisionCashSettlMethod: 40108,\n    /** Specifies the currency of settlement. Uses ISO 4217 currency codes. */\n    ProvisionCashSettlCurrency: 40109,\n    /** Specifies the currency of settlement for a cross-currency provision. Uses ISO 4217 currency codes. */\n    ProvisionCashSettlCurrency2: 40110,\n    /** Identifies the type of quote to be used. */\n    ProvisionCashSettlQuoteType: 40111,\n    /** Identifies the source of quote information. */\n    ProvisionCashSettlQuoteSource: 40112,\n    /** Free form text to specify additional information or enumeration description when a standard value does not apply. */\n    ProvisionText: 40113,\n    /** A time specified in 24-hour format, e.g. 11am would be represented as 11:00:00. The time of the cash settlement valuation date when the cash settlement amount will be determined according to the cash settlement method if the parties have not otherwise been able to agree to the cash settlement amount. */\n    ProvisionCashSettlValueTime: 40114,\n    /** Identifies the business center calendar used with the provision's cash settlement valuation time. See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ProvisionCashSettlValueTimeBusinessCenter: 40115,\n    /** The cash settlement valuation date adjustment business day convention. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    ProvisionCashSettlValueDateBusinessDayConvention: 40116,\n    /** The business center calendar used to adjust the provision's cash settlement valuation date, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ProvisionCashSettlValueDateBusinessCenter: 40117,\n    /** Specifies the anchor date when the cash settlement value date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values */\n    ProvisionCashSettlValueDateRelativeTo: 40118,\n    /** Time unit multiplier for the relative cash settlement value date offset. */\n    ProvisionCashSettlValueDateOffsetPeriod: 40119,\n    /** Time unit associated with the relative cash settlement value date offset. */\n    ProvisionCashSettlValueDateOffsetUnit: 40120,\n    /** Specifies the day type of the provision's relative cash settlement value date offset. */\n    ProvisionCashSettlValueDateOffsetDayType: 40121,\n    /** The adjusted cash settlement value date. */\n    ProvisionCashSettlValueDateAdjusted: 40122,\n    /** The business day convention used to adjust the instrument's provision's option exercise date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    ProvisionOptionExerciseBusinessDayConvention: 40123,\n    /** The business center calendar used to adjust the instrument's provision's option exercise date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ProvisionOptionExerciseBusinessCenter: 40124,\n    /** Time unit multiplier for the interval to the first (and possibly only) exercise date in the exercise period. */\n    ProvisionOptionExerciseEarliestDateOffsetPeriod: 40125,\n    /** Time unit associated with the interval to the first (and possibly only) exercise date in the exercise period. */\n    ProvisionOptionExerciseEarliestDateOffsetUnit: 40126,\n    /** Time unit multiplier for the frequency of subsequent exercise dates in the exercise period following the earliest exercise date. An interval of 1 day should be used to indicate an American style exercise period. */\n    ProvisionOptionExerciseFrequencyPeriod: 40127,\n    /** Time unit associated with the frequency of subsequent exercise dates in the exercise period following the earliest exercise date. */\n    ProvisionOptionExerciseFrequencyUnit: 40128,\n    /** The unadjusted first day of the exercise period for an American style option. */\n    ProvisionOptionExerciseStartDateUnadjusted: 40129,\n    /** Specifies the anchor date when the option exercise start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    ProvisionOptionExerciseStartDateRelativeTo: 40130,\n    /** Time unit multiplier for the relative option exercise start date offset. */\n    ProvisionOptionExerciseStartDateOffsetPeriod: 40131,\n    /** Time unit associated with the relative option exercise start date offset. */\n    ProvisionOptionExerciseStartDateOffsetUnit: 40132,\n    /** Specifies the day type of the provision's relative option exercise start date offset. */\n    ProvisionOptionExerciseStartDateOffsetDayType: 40133,\n    /** The adjusted first day of the exercise period for an American style option. */\n    ProvisionOptionExerciseStartDateAdjusted: 40134,\n    /** The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1. */\n    ProvisionOptionExercisePeriodSkip: 40135,\n    /** The unadjusted first date of a schedule. This can be used to restrict the range of exercise dates when they are relative. */\n    ProvisionOptionExerciseBoundsFirstDateUnadjusted: 40136,\n    /** The unadjusted last date of a schedule. This can be used to restrict the range of exercise dates when they are relative. */\n    ProvisionOptionExerciseBoundsLastDateUnadjusted: 40137,\n    /** The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) i) on the expriation date, in the case of a European style option, (ii) on each bermuda option exercise date and the expiration date, in the case of a Bermuda style option the commencement date to, and including, the expiration date, in the case of an American option. */\n    ProvisionOptionExerciseEarliestTime: 40138,\n    /** Identifies the business center calendar used with the provision's earliest time for notice of exercise.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ProvisionOptionExerciseEarliestTimeBusinessCenter: 40139,\n    /** For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day. */\n    ProvisionOptionExerciseLatestTime: 40140,\n    /** Identifies the business center calendar used with the provision's latest time for notice of exercise.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ProvisionOptionExerciseLatestTimeBusinessCenter: 40141,\n    /** Number of provision option exercise fixed dates in the repeating group. */\n    NoProvisionOptionExerciseFixedDates: 40142,\n    /** A predetermined option exercise date, unadjusted or adjusted depending on ProvisionOptionExerciseFixedDateType(40144). */\n    ProvisionOptionExerciseFixedDate: 40143,\n    /** Specifies the type of date (e.g. adjusted for holidays). */\n    ProvisionOptionExerciseFixedDateType: 40144,\n    /** The unadjusted last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period. */\n    ProvisionOptionExpirationDateUnadjusted: 40145,\n    /** The business day convention used to adjust the instrument's provision's option expiration date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    ProvisionOptionExpirationDateBusinessDayConvention: 40146,\n    /** The business center calendar used to adjust the instrument's provision's option expiration date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ProvisionOptionExpirationDateBusinessCenter: 40147,\n    /** Specifies the anchor date when the option expiration date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    ProvisionOptionExpirationDateRelativeTo: 40148,\n    /** Time unit multiplier for the relative option expiration date offset. */\n    ProvisionOptionExpirationDateOffsetPeriod: 40149,\n    /** Time unit associated with the relative option expiration date offset. */\n    ProvisionOptionExpirationDateOffsetUnit: 40150,\n    /** Specifies the day type of the provision's relative option expiration date offset. */\n    ProvisionOptionExpirationDateOffsetDayType: 40151,\n    /** The adjusted last date within an exercise period for an American style option. For a European style option it is the only date within the exercise period. */\n    ProvisionOptionExpirationDateAdjusted: 40152,\n    /** The latest time for exercise on the expiration date. */\n    ProvisionOptionExpirationTime: 40153,\n    /** Identifies the business center calendar used with the provision's latest exercise time on expiration date.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ProvisionOptionExpirationTimeBusinessCenter: 40154,\n    /** The unadjusted date on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the swap effective date, in an extendible/cancelable provision it is the swap termination date). */\n    ProvisionOptionRelevantUnderlyingDateUnadjusted: 40155,\n    /** The business day convention used to adjust the instrument's provision's option underlying date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    ProvisionOptionRelevantUnderlyingDateBusinessDayConvention: 40156,\n    /** The business center calendar used to adjust the instrument's provision's option underlying date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ProvisionOptionRelevantUnderlyingDateBusinessCenter: 40157,\n    /** Specifies the anchor date when the date relevant to the underlying trade on exercise is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    ProvisionOptionRelevantUnderlyingDateRelativeTo: 40158,\n    /** Time unit multiplier for the relative option relevant underlying date offset. */\n    ProvisionOptionRelevantUnderlyingDateOffsetPeriod: 40159,\n    /** Time unit associated with the relative option relevant underlying date offset. */\n    ProvisionOptionRelevantUnderlyingDateOffsetUnit: 40160,\n    /** Specifies the day type of the provision's relative option relevant underlying date offset. */\n    ProvisionOptionRelevantUnderlyingDateOffsetDayType: 40161,\n    /** The adjusted date on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the swap effective date, in an extendible/cancelable provision it is the swap termination date). */\n    ProvisionOptionRelevantUnderlyingDateAdjusted: 40162,\n    /** The business day convention used to adjust the provisional cash settlement payment's termination or relative termination date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    ProvisionCashSettlPaymentDateBusinessDayConvention: 40163,\n    /** The business center calendar used to adjust the provisional cash settlement payment's termination or relative termination date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ProvisionCashSettlPaymentDateBusinessCenter: 40164,\n    /** Specifies the anchor date when the cash settlement payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    ProvisionCashSettlPaymentDateRelativeTo: 40165,\n    /** Time unit multiplier for the relative cash settlement payment date offset. */\n    ProvisionCashSettlPaymentDateOffsetPeriod: 40166,\n    /** Time unit associated with the relative cash settlement payment date offset. */\n    ProvisionCashSettlPaymentDateOffsetUnit: 40167,\n    /** Specifies the day type of the provision's relative cash settlement payment date offset. */\n    ProvisionCashSettlPaymentDateOffsetDayType: 40168,\n    /** First date in range when a settlement date range is provided. */\n    ProvisionCashSettlPaymentDateRangeFirst: 40169,\n    /** The last date in range when a settlement date range is provided. */\n    ProvisionCashSettlPaymentDateRangeLast: 40170,\n    /** Number of provision cash settlement payment dates in the repeating group. */\n    NoProvisionCashSettlPaymentDates: 40171,\n    /** The cash settlement payment date, unadjusted or adjusted depending on ProvisionCashSettlPaymentDateType(40173). */\n    ProvisionCashSettlPaymentDate: 40172,\n    /** Specifies the type of date (e.g. adjusted for holidays). */\n    ProvisionCashSettlPaymentDateType: 40173,\n    /** Number of parties identified in the contract provision. */\n    NoProvisionPartyIDs: 40174,\n    /** The party identifier/code for the payment settlement party. */\n    ProvisionPartyID: 40175,\n    /** Identifies class or source of the ProvisionPartyID(40175) value. */\n    ProvisionPartyIDSource: 40176,\n    /** Identifies the type or role of ProvisionPartyID(40175) specified. */\n    ProvisionPartyRole: 40177,\n    /** Number of sub-party IDs to be reported for the party. */\n    NoProvisionPartySubIDs: 40178,\n    /** Party sub-identifier, if applicable, for ProvisionPartyID(40175). */\n    ProvisionPartySubID: 40179,\n    /** The type of ProvisionPartySubID(40179). */\n    ProvisionPartySubIDType: 40180,\n    /** Number of protection terms in the repeating group. */\n    NoProtectionTerms: 40181,\n    /** The notional amount of protection coverage.\n        ISDA 2003 Term: Floating Rate Payer Calculation Amount. */\n    ProtectionTermNotional: 40182,\n    /** The currency of ProtectionTermNotional(40182). Uses ISO 4217 currency codes. */\n    ProtectionTermCurrency: 40183,\n    /** The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring.\n        ProtectionTermSellerNotifies(40184)=Y indicates that the seller notifies.\n        ISDA 2003 Term: Notifying Party. */\n    ProtectionTermSellerNotifies: 40184,\n    /** The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring.\n        ProtectionTermBuyerNotifies(40185)=Y indicates that the buyer notifies.\n        ISDA 2003 Term: Notifying Party. */\n    ProtectionTermBuyerNotifies: 40185,\n    /** When used, the business center indicates the local time of the business center that replaces the Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions. See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ProtectionTermEventBusinessCenter: 40186,\n    /** Indicates whether ISDA defined Standard Public Sources are applicable (ProtectionTermStandardSources(40187)=Y) or not. */\n    ProtectionTermStandardSources: 40187,\n    /** The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two.\n        ISDA 2003 Term: Specified Number. */\n    ProtectionTermEventMinimumSources: 40188,\n    /** Newspaper or electronic news service or source that may publish relevant information used in the determination of whether or not a credit event has occurred. */\n    ProtectionTermEventNewsSource: 40189,\n    /** A named string value referenced by UnderlyingProtectionTermXIDRef(41314). */\n    ProtectionTermXID: 40190,\n    /** Number of protection term events in the repeating group. */\n    NoProtectionTermEvents: 40191,\n    /** Specifies the type of credit event applicable to the protection terms.\n        See http://www.fixtradingcommunity.org/codelists#Protection_Term_Event_Types for code list of applicable event types. */\n    ProtectionTermEventType: 40192,\n    /** Protection term event value appropriate to ProtectionTermEvenType(40192).\n        See http://www.fixtradingcommunity.org/codelists#Protection_Term_Event_Types for applicable event type values. */\n    ProtectionTermEventValue: 40193,\n    /** Applicable currency if ProtectionTermEventValue(40193) is an amount. Uses ISO 4217 currency codes. */\n    ProtectionTermEventCurrency: 40194,\n    /** Time unit multiplier for protection term events. */\n    ProtectionTermEventPeriod: 40195,\n    /** Time unit associated with protection term events. */\n    ProtectionTermEventUnit: 40196,\n    /** Day type for events that specify a period and unit. */\n    ProtectionTermEventDayType: 40197,\n    /** Rate source for events that specify a rate source, e.g. Floating rate interest shortfall. */\n    ProtectionTermEventRateSource: 40198,\n    /** Number of qualifiers in the repeating group. */\n    NoProtectionTermEventQualifiers: 40199,\n    /** Protection term event qualifier. Used to further qualify ProtectionTermEventType(40192). */\n    ProtectionTermEventQualifier: 40200,\n    /** Number of obligations in the repeating group. */\n    NoProtectionTermObligations: 40201,\n    /** Specifies the type of obligation applicable to the protection terms.\n        See http://www.fixtradingcommunity.org/codelists#Protection_Term_Obligation_Types for code list of applicable obligation types. */\n    ProtectionTermObligationType: 40202,\n    /** Protection term obligation value appropriate to ProtectionTermObligationType(40202).\n        See http://www.fixtradingcommunity.org/codelists#Protection_Term_Obligation_Types for applicable obligation type values. */\n    ProtectionTermObligationValue: 40203,\n    /** Number of entries in the repeating group. */\n    NoPhysicalSettlTerms: 40204,\n    /** Specifies the currency of physical settlement. Uses ISO 4217 currency codes. */\n    PhysicalSettlCurrency: 40205,\n    /** The number of business days used in the determination of physical settlement. Its precise meaning depends on the context in which this element is used.\n        ISDA 2003 Term: Business Day. */\n    PhysicalSettlBusinessDays: 40206,\n    /** A maximum number of business days. Its precise meaning depends on the context in which this element is used. Intended to be used to limit a particular ISDA fallback provision. */\n    PhysicalSettlMaximumBusinessDays: 40207,\n    /** A named string value referenced by UnderlyingSettlTermXIDRef(41315). */\n    PhysicalSettlTermXID: 40208,\n    /** Number of entries in the repeating group. */\n    NoPhysicalSettlDeliverableObligations: 40209,\n    /** Specifies the type of deliverable obligation applicable for physical settlement. See http://www.fixtradingcommunity.org/codelists#Deliverable_Obligation_Types for code list for applicable deliverable obligation types. */\n    PhysicalSettlDeliverableObligationType: 40210,\n    /** Physical settlement deliverable obligation value appropriate to PhysicalSettlDeliverableObligationType(40210). See http://www.fixtradingcommunity.org/codelists#Deliverable_Obligation_Types for applicable obligation type values. */\n    PhysicalSettlDeliverableObligationValue: 40211,\n    /** Number of additional settlement or bullet payments. */\n    NoPayments: 40212,\n    /** Type of payment. */\n    PaymentType: 40213,\n    /** The side of the party paying the payment. */\n    PaymentPaySide: 40214,\n    /** The side of the party receiving the payment. */\n    PaymentReceiveSide: 40215,\n    /** Specifies the currency in which PaymentAmount(40217) is denominated. Uses ISO 4271 currency codes. */\n    PaymentCurrency: 40216,\n    /** The total payment amount. */\n    PaymentAmount: 40217,\n    /** The price determining the payment amount expressed in terms specified in PaymentPriceType(40919) and expressed in market format. */\n    PaymentPrice: 40218,\n    /** The unadjusted payment date. */\n    PaymentDateUnadjusted: 40219,\n    /** The business day convention used to adjust the payment date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    PaymentBusinessDayConvention: 40220,\n    /** The business center calendar used to adjust the payment date, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PaymentBusinessCenter: 40221,\n    /** The adjusted payment date. */\n    PaymentDateAdjusted: 40222,\n    /** Applicable value for LegMarketDisruptionEvent(41468). */\n    LegMarketDisruptionValue: 40223,\n    /** The value representing the discount factor used to calculate the present value of the cash flow. */\n    PaymentDiscountFactor: 40224,\n    /** The amount representing the present value of the forecast payment. */\n    PaymentPresentValueAmount: 40225,\n    /** Specifies the currency the PaymentPresentValueAmount(40225) is denominated in. Uses ISO 4217 currency codes. */\n    PaymentPresentValueCurrency: 40226,\n    /** Payment settlement style. */\n    PaymentSettlStyle: 40227,\n    /** Identifies the reference \"page\" from the rate source.\n        When LegPaymentStreamNonDeliverableSettlRateSource(40087) = 3 (ISDA Settlement Rate Option) this contains a value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option */\n    LegPaymentStreamNonDeliverableSettlReferencePage: 40228,\n    /** Free form text to specify additional information or enumeration description when a sdtandard value does not apply. Identifies the payment type when PaymentType(40213) = 99 (Other). */\n    PaymentText: 40229,\n    /** Number of additional settlements or bullet payments. */\n    NoPaymentSettls: 40230,\n    /** The payment settlement amount. */\n    PaymentSettlAmount: 40231,\n    /** Specifies the currency the PaymentSettlAmount(40231) is denominated in. Uses ISO 4217 currency codes. */\n    PaymentSettlCurrency: 40232,\n    /** Number of parties identified in the additional settlement or bullet payment. */\n    NoPaymentSettlPartyIDs: 40233,\n    /** The payment settlement party identifier. */\n    PaymentSettlPartyID: 40234,\n    /** Identifies the class or source of PaymentSettlPartyID(40234) value (e.g. BIC). */\n    PaymentSettlPartyIDSource: 40235,\n    /** Identifies the role of PaymentSettlPartyID(40234) (e.g. the beneficiary's bank or depository institution). */\n    PaymentSettlPartyRole: 40236,\n    /** Qualifies the value of PaymentSettlPartyRole(40236). */\n    PaymentSettlPartyRoleQualifier: 40237,\n    /** Number of sub-party IDs to be reported for the party. */\n    NoPaymentSettlPartySubIDs: 40238,\n    /** Party sub-identifier, if applicable, for PaymentSettlPartyRole(40236). */\n    PaymentSettlPartySubID: 40239,\n    /** The type of PaymentSettlPartySubID(40239) value. */\n    PaymentSettlPartySubIDType: 40240,\n    /** Number of swap streams in the repeating group. */\n    NoLegStreams: 40241,\n    /** Type of swap stream. */\n    LegStreamType: 40242,\n    /** A short descriptive name given to the payment stream, e.g. CDS, Fixed, Float, Float2, GBP. The description has no intrinsic meaning but should be arbitrarily chosen by the remitter as a reference. */\n    LegStreamDesc: 40243,\n    /** The side of the party paying the stream. */\n    LegStreamPaySide: 40244,\n    /** The side of the party receiving the stream. */\n    LegStreamReceiveSide: 40245,\n    /** Notional, or initial notional value for the payment stream. The LegPaymentSchedule component should be used for specifying the steps. */\n    LegStreamNotional: 40246,\n    /** Specifies the currency the LegStreamNotional(40246) is denominated in. Uses ISO 4217 currency codes. */\n    LegStreamCurrency: 40247,\n    /** Free form text to specify additional information or enumeration description when a standard value does not apply. */\n    LegStreamText: 40248,\n    /** The unadjusted effective date. */\n    LegStreamEffectiveDateUnadjusted: 40249,\n    /** The business day convention used to adjust the instrument leg's stream's effective date or relative effective date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegStreamEffectiveDateBusinessDayConvention: 40250,\n    /** The business center calendar used to adjust the instrument leg's stream's effective date or relative effective date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegStreamEffectiveDateBusinessCenter: 40251,\n    /** Specifies the anchor date when the effective date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values */\n    LegStreamEffectiveDateRelativeTo: 40252,\n    /** Time unit multiplier for the relative effective date offset. */\n    LegStreamEffectiveDateOffsetPeriod: 40253,\n    /** Time unit associated with the relative effective date offset. */\n    LegStreamEffectiveDateOffsetUnit: 40254,\n    /** Specifies the day type of the relative effective date offset. */\n    LegStreamEffectiveDateOffsetDayType: 40255,\n    /** The adjusted effective date. */\n    LegStreamEffectiveDateAdjusted: 40256,\n    /** The unadjusted termination date. */\n    LegStreamTerminationDateUnadjusted: 40257,\n    /** The business day convention used to adjust the instrument leg's stream's termination, or relative termination, date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegStreamTerminationDateBusinessDayConvention: 40258,\n    /** The business center calendar used to adjust the instrument leg's stream's termination, or relative termination, date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegStreamTerminationDateBusinessCenter: 40259,\n    /** Specifies the anchor date when the termination date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegStreamTerminationDateRelativeTo: 40260,\n    /** Time unit multiplier for the relative termination date offset. */\n    LegStreamTerminationDateOffsetPeriod: 40261,\n    /** Time unit associated with the relative termination date offset. */\n    LegStreamTerminationDateOffsetUnit: 40262,\n    /** Specifies the day type of the relative termination date offset. */\n    LegStreamTerminationDateOffsetDayType: 40263,\n    /** The adjusted termination date. */\n    LegStreamTerminationDateAdjusted: 40264,\n    /** The business day convention used to adjust calculation periods. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegStreamCalculationPeriodBusinessDayConvention: 40265,\n    /** The business center calendar used to adjust calculation periods, e.g. \"GLBO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegStreamCalculationPeriodBusinessCenter: 40266,\n    /** The unadjusted first calculation period start date if before the effective date. */\n    LegStreamFirstPeriodStartDateUnadjusted: 40267,\n    /** The business day convention used to adjust the instrument leg's stream's first calculation period start date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegStreamFirstPeriodStartDateBusinessDayConvention: 40268,\n    /** The business center calendar used to adjust the instrument leg's stream's first calculation period start date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegStreamFirstPeriodStartDateBusinessCenter: 40269,\n    /** The adjusted first calculation period start date, if it is before the effective date. */\n    LegStreamFirstPeriodStartDateAdjusted: 40270,\n    /** The unadjusted first start date of the regular calculation period, if there is an initial stub period. */\n    LegStreamFirstRegularPeriodStartDateUnadjusted: 40271,\n    /** The unadjusted end date of the initial compounding period. */\n    LegStreamFirstCompoundingPeriodEndDateUnadjusted: 40272,\n    /** The unadjusted last regular period end date if there is a final stub period. */\n    LegStreamLastRegularPeriodEndDateUnadjusted: 40273,\n    /** Time unit multiplier for the frequency at which calculation period end dates occur. */\n    LegStreamCalculationFrequencyPeriod: 40274,\n    /** Time unit associated with the frequency at which calculation period end dates occur. */\n    LegStreamCalculationFrequencyUnit: 40275,\n    /** The convention for determining the sequence of end dates. It is used in conjunction with a specified frequency. Used only to override the roll convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegStreamCalculationRollConvention: 40276,\n    /** Number of dealers in the repeating group. */\n    NoCashSettlDealers: 40277,\n    /** Number of business centers in the repeating group. */\n    NoBusinessCenters: 40278,\n    /** Identifies the type of payment stream applicable to the swap stream associated with the instrument leg. */\n    LegPaymentStreamType: 40279,\n    /** Used only for credit index trade. This contains the credit spread (\"fair value\") at which the trade was executed. The market rate varies over the life of the index depending on market conditions. This is the price of the index as quoted by trading desks. */\n    LegPaymentStreamMarketRate: 40280,\n    /** Applicable to credit default swaps on mortgage backed securities to specify whether payment delays are applicable to the fixed amount.\n        Residential mortgage backed securities typically have a payment delay of 5 days between the coupon date of the reference obligation and the payment date of the synthetic swap.\n        Commercial mortage backed securities do not typically have a payment delay, with both payment dates (the coupon date of the reference obligation and the payment date of the synthetic swap) being on the 25th of each month. */\n    LegPaymentStreamDelayIndicator: 40281,\n    /** Specifies the currency that the stream settles in (to support swaps that settle in a currency different from the notional currency). Uses ISO 4217 currency codes. */\n    LegPaymentStreamSettlCurrency: 40282,\n    /** The day count convention used in the payment stream calculations. */\n    LegPaymentStreamDayCount: 40283,\n    /** The number of days from the adjusted calculation period start date to the adjusted value date, calculated in accordance with the applicable day count fraction. */\n    LegPaymentStreamAccrualDays: 40284,\n    /** The method of calculating discounted payment amounts. */\n    LegPaymentStreamDiscountType: 40285,\n    /** Discount rate. The rate is expressed in decimal, e.g. 5% is expressed as 0.05. */\n    LegPaymentStreamDiscountRate: 40286,\n    /** The day count convention applied to the LegPaymentStreamDiscountRate(40286). */\n    LegPaymentStreamDiscountRateDayCount: 40287,\n    /** Compounding method. */\n    LegPaymentStreamCompoundingMethod: 40288,\n    /** Indicates whether there is an initial exchange of principal on the effective date. */\n    LegPaymentStreamInitialPrincipalExchangeIndicator: 40289,\n    /** Indicates whether there are intermediate or interim exchanges of principal during the term of the swap. */\n    LegPaymentStreamInterimPrincipalExchangeIndicator: 40290,\n    /** Indicates whether there is a final exchange of principal on the termination date. */\n    LegPaymentStreamFinalPrincipalExchangeIndicator: 40291,\n    /** The business day convention used to adjust the payment stream's payment date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegPaymentStreamPaymentDateBusinessDayConvention: 40292,\n    /** The business center calendar used to adjust the payment stream's payment date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPaymentStreamPaymentDateBusinessCenter: 40293,\n    /** Time unit multiplier for the frequency of payments. */\n    LegPaymentStreamPaymentFrequencyPeriod: 40294,\n    /** Time unit associated with the frequency of payments. */\n    LegPaymentStreamPaymentFrequencyUnit: 40295,\n    /** The convention for determining the sequence of end dates. It is used in conjunction with a specified frequency. Used only to override the roll convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegPaymentStreamPaymentRollConvention: 40296,\n    /** The unadjusted first payment date. */\n    LegPaymentStreamFirstPaymentDateUnadjusted: 40297,\n    /** The unadjusted last regular payment date. */\n    LegPaymentStreamLastRegularPaymentDateUnadjusted: 40298,\n    /** Specifies the anchor date when payment dates are relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentStreamPaymentDateRelativeTo: 40299,\n    /** Time unit multiplier for the relative payment date offset. */\n    LegPaymentStreamPaymentDateOffsetPeriod: 40300,\n    /** Time unit associated with the relative payment date offset. */\n    LegPaymentStreamPaymentDateOffsetUnit: 40301,\n    /** Specifies the day type of the relative payment date offset. */\n    LegPaymentStreamPaymentDateOffsetDayType: 40302,\n    /** Specifies the anchor date when the reset dates are relative to an anchor date.\n        If the reset frequency is specified as daily this element must not be included.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentStreamResetDateRelativeTo: 40303,\n    /** The business day convention used to adjust the payment stream's reset date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegPaymentStreamResetDateBusinessDayConvention: 40304,\n    /** The business center calendar used to adjust the payment stream's reset date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPaymentStreamResetDateBusinessCenter: 40305,\n    /** Time unit multiplier for frequency of resets. */\n    LegPaymentStreamResetFrequencyPeriod: 40306,\n    /** Time unit associated with frequency of resets. */\n    LegPaymentStreamResetFrequencyUnit: 40307,\n    /** Used to specify the day of the week in which the reset occurs for payments that reset on a weekly basis. */\n    LegPaymentStreamResetWeeklyRollConvention: 40308,\n    /** Specifies the anchor date when the initial fixing date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentStreamInitialFixingDateRelativeTo: 40309,\n    /** The business day convention used to adjust the payment stream's initial fixing date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegPaymentStreamInitialFixingDateBusinessDayConvention: 40310,\n    /** The business center calendar used to adjust the payment stream's initial fixing date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPaymentStreamInitialFixingDateBusinessCenter: 40311,\n    /** Time unit multiplier for the relative initial fixing date offset. */\n    LegPaymentStreamInitialFixingDateOffsetPeriod: 40312,\n    /** Time unit associated with the relative initial fixing date offset. */\n    LegPaymentStreamInitialFixingDateOffsetUnit: 40313,\n    /** Specifies the day type of the relative initial fixing date offset. */\n    LegPaymentStreamInitialFixingDateOffsetDayType: 40314,\n    /** The adjusted initial fixing date. */\n    LegPaymentStreamInitialFixingDateAdjusted: 40315,\n    /** Specifies the anchor date when the fixing date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentStreamFixingDateRelativeTo: 40316,\n    /** The business day convention used to adjust the payment stream's fixing date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegPaymentStreamFixingDateBusinessDayConvention: 40317,\n    /** The business center calendar used to adjust the payment stream's fixing date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPaymentStreamFixingDateBusinessCenter: 40318,\n    /** Time unit multiplier for the relative fixing date offset. */\n    LegPaymentStreamFixingDateOffsetPeriod: 40319,\n    /** Time unit associated with the relative fixing date offset. */\n    LegPaymentStreamFixingDateOffsetUnit: 40320,\n    /** Specifies the day type of the relative fixing date offset. */\n    LegPaymentStreamFixingDateOffsetDayType: 40321,\n    /** The adjusted fixing date. */\n    LegPaymentStreamFixingDateAdjusted: 40322,\n    /** Time unit multiplier for the relative rate cut-off date offset.\n        This is generally the number of days preceding the period end date or termination date, as appropriate, for the specified floating rate index. */\n    LegPaymentStreamRateCutoffDateOffsetPeriod: 40323,\n    /** Time unit associated with the relative rate cut-off date offset. */\n    LegPaymentStreamRateCutoffDateOffsetUnit: 40324,\n    /** Specifies the day type of the relative rate cut-off date offset. */\n    LegPaymentStreamRateCutoffDateOffsetDayType: 40325,\n    /** The rate applicable to the fixed rate payment stream. */\n    LegPaymentStreamRate: 40326,\n    /** The leg instrument payment stream's fixed payment amount. In a CDS, this can be an alternative to LegPaymentStreamRate(40326). */\n    LegPaymentStreamFixedAmount: 40327,\n    /** Specifies the currency in which LegPaymentStreamFixedAmount(40327) or LegPaymentStreamRate(40326) is denominated. Uses ISO 4217 currency codes. */\n    LegPaymentStreamRateOrAmountCurrency: 40328,\n    /** The future value notional is normally only required for certain non-deliverable interest rate swaps (e.g. Brazillian Real (BRL) vs. CETIP Interbank Deposit Rate (CDI)). The value is calculated as follows: Future Value Notional = Notional Amount * (1 + Fixed Rate) ^ (Fixed Rate Day Count Fraction). The currency is the same as the stream notional. */\n    LegPaymentStreamFutureValueNotional: 40329,\n    /** The adjusted value date of the future value amount. */\n    LegPaymentStreamFutureValueDateAdjusted: 40330,\n    /** The payment stream floating rate index. */\n    LegPaymentStreamRateIndex: 40331,\n    /** The source of the payment stream floating rate index. */\n    LegPaymentStreamRateIndexSource: 40332,\n    /** Time unit associated with the payment stream's floating rate index curve period. */\n    LegPaymentStreamRateIndexCurveUnit: 40333,\n    /** Time unit multiplier for the payment stream's floating rate index curve period. */\n    LegPaymentStreamRateIndexCurvePeriod: 40334,\n    /** A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    LegPaymentStreamRateMultiplier: 40335,\n    /** The basis points spread from the index specified in LegPaymentStreamRateIndex(40331). */\n    LegPaymentStreamRateSpread: 40336,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    LegPaymentStreamRateSpreadPositionType: 40337,\n    /** Specifies the yield calculation treatment for the index. */\n    LegPaymentStreamRateTreatment: 40338,\n    /** The cap rate, if any, which applies to the floating rate. It is only required where the floating rate on a swap stream is capped at a certain level The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05. */\n    LegPaymentStreamCapRate: 40339,\n    /** Reference to the buyer of the cap rate option through its trade side. */\n    LegPaymentStreamCapRateBuySide: 40340,\n    /** Reference to the seller of the cap rate option through its trade side. */\n    LegPaymentStreamCapRateSellSide: 40341,\n    /** The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as 0.05. */\n    LegPaymentStreamFloorRate: 40342,\n    /** Reference to the buyer of the floor rate option through its trade side. */\n    LegPaymentStreamFloorRateBuySide: 40343,\n    /** Reference to the seller of the floor rate option through its trade side. */\n    LegPaymentStreamFloorRateSellSide: 40344,\n    /** The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as 0.05. */\n    LegPaymentStreamInitialRate: 40345,\n    /** Specifies the rounding direction. */\n    LegPaymentStreamFinalRateRoundingDirection: 40346,\n    /** Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7. */\n    LegPaymentStreamFinalRatePrecision: 40347,\n    /** When averaging is applicable, used to specify whether a weighted or unweighted average method of calculation is to be used. */\n    LegPaymentStreamAveragingMethod: 40348,\n    /** The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate). */\n    LegPaymentStreamNegativeRateTreatment: 40349,\n    /** Time unit multiplier for the inflation lag period. The lag period is the offsetting period from the payment date which determineds the reference period for which the inflation index is observed. */\n    LegPaymentStreamInflationLagPeriod: 40350,\n    /** Time unit associated with the inflation lag period. */\n    LegPaymentStreamInflationLagUnit: 40351,\n    /** The inflation lag period day type. */\n    LegPaymentStreamInflationLagDayType: 40352,\n    /** The method used when calculating the inflation index level from multiple points. The most common is linear method. */\n    LegPaymentStreamInflationInterpolationMethod: 40353,\n    /** The inflation index reference source. */\n    LegPaymentStreamInflationIndexSource: 40354,\n    /** The publication source, such as relevant web site, news publication or a government body, where inflation information is obtained. */\n    LegPaymentStreamInflationPublicationSource: 40355,\n    /** Initial known index level for the first calculation period. */\n    LegPaymentStreamInflationInitialIndexLevel: 40356,\n    /** Indicates whether a fallback bond as defined in the 2006 ISDA Inflation Derivatives Definitions, sections 1.3 and 1.8, is applicable or not. If not specified, the default value is \"Y\" (True/Yes). */\n    LegPaymentStreamInflationFallbackBondApplicable: 40357,\n    /** The method of Forward Rate Agreement (FRA) discounting, if any, that will apply. */\n    LegPaymentStreamFRADiscounting: 40358,\n    /** Non-deliverable settlement reference currency. Uses ISO 4217 currency codes. */\n    LegPaymentStreamNonDeliverableRefCurrency: 40359,\n    /** The business day convention used to adjust the payment stream's fixing date for the non-deliverable settlement terms. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegPaymentStreamNonDeliverableFixingDatesBusinessDayConvention: 40360,\n    /** The business center calendar used to adjust the payment stream's fixing date for the non-deliverable terms, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPaymentStreamNonDeliverableFixingDatesBusinessCenter: 40361,\n    /** Specifies the anchor date when the non-deliverable fixing dates are relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentStreamNonDeliverableFixingDatesRelativeTo: 40362,\n    /** Time unit multiplier for the relative non-deliverable fixing date offset. */\n    LegPaymentStreamNonDeliverableFixingDatesOffsetPeriod: 40363,\n    /** Time unit associated with the relative non-deliverable fixing date offset. */\n    LegPaymentStreamNonDeliverableFixingDatesOffsetUnit: 40364,\n    /** Specifies the day type of the relative non-deliverable fixing date offset. */\n    LegPaymentStreamNonDeliverableFixingDatesOffsetDayType: 40365,\n    /** Identifies the source of rate information. */\n    LegSettlRateFallbackRateSource: 40366,\n    /** Number of fixing dates in the repeating group. */\n    NoLegNonDeliverableFixingDates: 40367,\n    /** The non-deliverable fixing date. Type of date is specified in LegNonDeliverableFixingDateType(40369). */\n    LegNonDeliverableFixingDate: 40368,\n    /** Specifies the type of date (e.g. adjusted for holidays). */\n    LegNonDeliverableFixingDateType: 40369,\n    /** Identifies the reference \"page\" from the rate source.\n        When LegSettlRateFallbackRateSource(40366) = 3(ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option */\n    LegSettlRateFallbackReferencePage: 40370,\n    /** Identifies the source of rate information. */\n    PaymentStreamNonDeliverableSettlRateSource: 40371,\n    /** Identifies the reference \"page\" from the rate source.\n        When PaymentStreamNonDeliverableSettlRateSource(40371) = 3(ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option */\n    PaymentStreamNonDeliverableSettlReferencePage: 40372,\n    /** Identifies the source of rate information. */\n    SettlRateFallbackRateSource: 40373,\n    /** Number of swap schedules in the repeating group */\n    NoLegPaymentSchedules: 40374,\n    /** Specifies the type of schedule. */\n    LegPaymentScheduleType: 40375,\n    /** Indicates to which stub this schedule applies. */\n    LegPaymentScheduleStubType: 40376,\n    /** The unadjusted date on which the value is adjusted, or calculated if a future value notional for certain non-deliverable interest rate swaps (e.g. Brazillian Real (BRL) vs. CETIP Interbank Deposit Rate (CDI)), or the start date of a cashflow payment. */\n    LegPaymentScheduleStartDateUnadjusted: 40377,\n    /** The unadjusted end date of a cashflow payment. */\n    LegPaymentScheduleEndDateUnadjusted: 40378,\n    /** The side of the party paying the step schedule. */\n    LegPaymentSchedulePaySide: 40379,\n    /** The side of the party receiving the step schedule. */\n    LegPaymentScheduleReceiveSide: 40380,\n    /** The notional value for this step schedule, or amount of a cashflow payment. */\n    LegPaymentScheduleNotional: 40381,\n    /** The currency for this step schedule. Uses ISO 4217 currency codes. */\n    LegPaymentScheduleCurrency: 40382,\n    /** The rate value for this step schedule. */\n    LegPaymentScheduleRate: 40383,\n    /** A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    LegPaymentScheduleRateMultiplier: 40384,\n    /** The spread value for this step schedule. */\n    LegPaymentScheduleRateSpread: 40385,\n    /** Identifies whether the rate spread is applied to a long or a short position. */\n    LegPaymentScheduleRateSpreadPositionType: 40386,\n    /** Specifies the yield calculation treatment for the step schedule. */\n    LegPaymentScheduleRateTreatment: 40387,\n    /** The explicit payment amount for this step schedule. */\n    LegPaymentScheduleFixedAmount: 40388,\n    /** The currency of the fixed amount. Uses ISO 4217 currency codes. */\n    LegPaymentScheduleFixedCurrency: 40389,\n    /** Time unit multiplier for the step frequency. */\n    LegPaymentScheduleStepFrequencyPeriod: 40390,\n    /** Time unit associated with the step frequency. */\n    LegPaymentScheduleStepFrequencyUnit: 40391,\n    /** The explicit amount that the notional changes on each step date. This can be a positive or negative amount. */\n    LegPaymentScheduleStepOffsetValue: 40392,\n    /** The percentage by which the notional changes on each step date. The percentage is either a percentage applied to the initial notional amount or the previous outstanding notional, depending on the value specified in LegPaymentScheduleStepRelativeTo(40395). The percentage can be either positive or negative. */\n    LegPaymentScheduleStepRate: 40393,\n    /** The explicit amount that the rate changes on each step date. This can be a positive or negative value. */\n    LegPaymentScheduleStepOffsetRate: 40394,\n    /** Specifies whether the LegPaymentScheduleStepRate(40393) or LegPaymentScheduleStepOffsetValue(40392) should be applied to the initial notional or the previous notional in order to calculate the notional step change amount. */\n    LegPaymentScheduleStepRelativeTo: 40395,\n    /** The unadjusted fixing date. */\n    LegPaymentScheduleFixingDateUnadjusted: 40396,\n    /** Floating rate observation weight for cashflow payment. */\n    LegPaymentScheduleWeight: 40397,\n    /** Specifies the anchor date when the fixing date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentScheduleFixingDateRelativeTo: 40398,\n    /** The business day convention used to adjust the payment schedule's fixing date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegPaymentScheduleFixingDateBusinessDayConvention: 40399,\n    /** The business center calendar used to adjust the payment schedule's fixing date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPaymentScheduleFixingDateBusinessCenter: 40400,\n    /** Time unit multiplier for the relative fixing date offset. */\n    LegPaymentScheduleFixingDateOffsetPeriod: 40401,\n    /** Time unit associated with the relative fixing date offset. */\n    LegPaymentScheduleFixingDateOffsetUnit: 40402,\n    /** Specifies the day type of the relative fixing date offset. */\n    LegPaymentScheduleFixingDateOffsetDayType: 40403,\n    /** The adjusted fixing date. */\n    LegPaymentScheduleFixingDateAdjusted: 40404,\n    /** The fxing time associated with the step schedule. */\n    LegPaymentScheduleFixingTime: 40405,\n    /** Business center for determining fixing time.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPaymentScheduleFixingTimeBusinessCenter: 40406,\n    /** Specifies the anchor date when the interim exchange payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentScheduleInterimExchangePaymentDateRelativeTo: 40407,\n    /** The business day convention used to adjust the payment schedule's interim exchange date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegPaymentScheduleInterimExchangeDatesBusinessDayConvention: 40408,\n    /** The business center calendar used to adjust the payment schedule's interim exchange date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPaymentScheduleInterimExchangeDatesBusinessCenter: 40409,\n    /** Time unit multiplier for the relative interim exchange date offset. */\n    LegPaymentScheduleInterimExchangeDatesOffsetPeriod: 40410,\n    /** Time unit associated with the relative interim exchange date offset. */\n    LegPaymentScheduleInterimExchangeDatesOffsetUnit: 40411,\n    /** Specifies the day type of the relative interim exchange date offset. */\n    LegPaymentScheduleInterimExchangeDatesOffsetDayType: 40412,\n    /** The adjusted interim exchange date. */\n    LegPaymentScheduleInterimExchangeDateAdjusted: 40413,\n    /** Number of rate sources in the repeating group */\n    NoLegPaymentScheduleRateSources: 40414,\n    /** Identifies the source of rate information. */\n    LegPaymentScheduleRateSource: 40415,\n    /** Rate source type. */\n    LegPaymentScheduleRateSourceType: 40416,\n    /** Identifies the reference \"page\" from the rate source.\n        For FX, the reference page to the spot rate to be used for the reference FX spot rate.\n        When RateSource(1446) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option */\n    LegPaymentScheduleReferencePage: 40417,\n    /** Number of stubs in the repeating group */\n    NoLegPaymentStubs: 40418,\n    /** Stub type. */\n    LegPaymentStubType: 40419,\n    /** Optional indication whether stub is shorter or longer than the regular swap period. */\n    LegPaymentStubLength: 40420,\n    /** The agreed upon fixed rate for this stub. */\n    LegPaymentStubRate: 40421,\n    /** A fixed payment amount for the stub. */\n    LegPaymentStubFixedAmount: 40422,\n    /** The currency of the fixed payment amount. Uses ISO 4217 currency codes. */\n    LegPaymentStubFixedCurrency: 40423,\n    /** The stub floating rate index. */\n    LegPaymentStubIndex: 40424,\n    /** The source for the stub floating rate index. */\n    LegPaymentStubIndexSource: 40425,\n    /** Time unit multiplier for the floating rate index. */\n    LegPaymentStubIndexCurvePeriod: 40426,\n    /** Time unit associated with the floating rate index. */\n    LegPaymentStubIndexCurveUnit: 40427,\n    /** A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    LegPaymentStubIndexRateMultiplier: 40428,\n    /** Spread from floating rate index. */\n    LegPaymentStubIndexRateSpread: 40429,\n    /** Identifies whether the rate spread is applied to a long or a short position. */\n    LegPaymentStubIndexRateSpreadPositionType: 40430,\n    /** Specifies the yield calculation treatment for the stub index. */\n    LegPaymentStubIndexRateTreatment: 40431,\n    /** The cap rate, if any, which applies to the floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05. */\n    LegPaymentStubIndexCapRate: 40432,\n    /** Reference to the buyer of the cap rate option through its trade side. */\n    LegPaymentStubIndexCapRateBuySide: 40433,\n    /** Reference to the seller of the cap rate option through its trade side. */\n    LegPaymentStubIndexCapRateSellSide: 40434,\n    /** The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05. */\n    LegPaymentStubIndexFloorRate: 40435,\n    /** Reference to the buyer of the floor rate option through its trade side. */\n    LegPaymentStubIndexFloorRateBuySide: 40436,\n    /** Reference to the seller of the floor rate option through its trade side. */\n    LegPaymentStubIndexFloorRateSellSide: 40437,\n    /** The second stub floating rate index. */\n    LegPaymentStubIndex2: 40438,\n    /** The source for the second stub floating rate index. */\n    LegPaymentStubIndex2Source: 40439,\n    /** Secondary time unit multiplier for the stub floating rate index curve. */\n    LegPaymentStubIndex2CurvePeriod: 40440,\n    /** Secondary time unit associated with the stub floating rate index curve. */\n    LegPaymentStubIndex2CurveUnit: 40441,\n    /** A rate multiplier to apply to the second floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    LegPaymentStubIndex2RateMultiplier: 40442,\n    /** Spread from the second floating rate index. */\n    LegPaymentStubIndex2RateSpread: 40443,\n    /** Identifies whether the rate spread is applied to a long or a short position. */\n    LegPaymentStubIndex2RateSpreadPositionType: 40444,\n    /** Specifies the yield calculation treatment for the second stub index. */\n    LegPaymentStubIndex2RateTreatment: 40445,\n    /** The cap rate, if any, which applies to the second floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05. */\n    LegPaymentStubIndex2CapRate: 40446,\n    /** The floor rate, if any, which applies to the second floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05. */\n    LegPaymentStubIndex2FloorRate: 40447,\n    /** Number of provisions in the repeating group. */\n    NoLegProvisions: 40448,\n    /** Type of provisions. */\n    LegProvisionType: 40449,\n    /** The unadjusted date of the provision. */\n    LegProvisionDateUnadjusted: 40450,\n    /** The business day convention used to adjust the instrument leg's provision's date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegProvisionDateBusinessDayConvention: 40451,\n    /** The business center calendar used to adjust the instrument leg's provision's date, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegProvisionDateBusinessCenter: 40452,\n    /** The adjusted date of the provision. */\n    LegProvisionDateAdjusted: 40453,\n    /** Time unit multiplier for the leg provision's tenor period. */\n    LegProvisionDateTenorPeriod: 40454,\n    /** Time unit associated with the leg provision's tenor period. */\n    LegProvisionDateTenorUnit: 40455,\n    /** Used to identify the calculation agent. The calculation agent may be identified in LegProvisionCalculationAgent(40456) or in the ProvisionParties component. */\n    LegProvisionCalculationAgent: 40456,\n    /** If optional early termination is not available to both parties then this component identifies the buyer of the option through its side of the trade. */\n    LegProvisionOptionSinglePartyBuyerSide: 40457,\n    /** If optional early termination is not available to both parties then this component identifies the seller of the option through its side of the trade. */\n    LegProvisionOptionSinglePartySellerSide: 40458,\n    /** The instrument provision option exercise style. */\n    LegProvisionOptionExerciseStyle: 40459,\n    /** A notional amount which restricts the amount of notional that can be exercised when partial exercise or multiple exercise is applicable. The integral multiple amount defines a lower limit of notional that can be exercised and also defines a unit multiple of notional that can be exercised, i.e. only integer multiples of this amount can be exercised. */\n    LegProvisionOptionExerciseMultipleNotional: 40460,\n    /** The minimum notional amount that can be exercised on a given exercise date. */\n    LegProvisionOptionExerciseMinimumNotional: 40461,\n    /** The maximum notional amount that can be exercised on a given exercise date. */\n    LegProvisionOptionExerciseMaximumNotional: 40462,\n    /** The minimum number of options that can be exercised on a given exercise date. */\n    LegProvisionOptionMinimumNumber: 40463,\n    /** The maximum number of options that can be exercised on a given exercise date. If the number is not specified, it means that the maximum number of options corresponds to the remaining unexercised options. */\n    LegProvisionOptionMaximumNumber: 40464,\n    /** Used to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent. */\n    LegProvisionOptionExerciseConfirmation: 40465,\n    /** An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (e). */\n    LegProvisionCashSettlMethod: 40466,\n    /** Specifies the currency of settlement. Uses ISO 4217 currency codes. */\n    LegProvisionCashSettlCurrency: 40467,\n    /** Specifies the currency of settlement for a cross-currency provision. Uses ISO 4217 currency codes. */\n    LegProvisionCashSettlCurrency2: 40468,\n    /** Identifies the type of quote to be used. */\n    LegProvisionCashSettlQuoteType: 40469,\n    /** Identifies the source of quote information. */\n    LegProvisionCashSettlQuoteSource: 40470,\n    /** A business center whose calendar is used for date adjustment, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    BusinessCenter: 40471,\n    /** Free form text to specify additional information or enumeration description when a standard value does not apply. */\n    LegProvisionText: 40472,\n    /** Number of provision cash settlement payment dates in the repeating group. */\n    NoLegProvisionCashSettlPaymentDates: 40473,\n    /** The cash settlement payment date, unadjusted or adjusted depending on LegProvisionCashSettlPaymentDateType(40521). */\n    LegProvisionCashSettlPaymentDate: 40474,\n    /** Specifies the type of date (e.g. adjusted for holidays). */\n    LegProvisionCashSettlPaymentDateType: 40475,\n    /** The business day convention used to adjust the instrument leg's provision's option exercise date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegProvisionOptionExerciseBusinessDayConvention: 40476,\n    /** The business center calendar used to adjust the instrument leg's provision's option exercise date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegProvisionOptionExerciseBusinessCenter: 40477,\n    /** Time unit multiplier for the interval to the first (and possibly only) exercise date in the exercise period. */\n    LegProvisionOptionExerciseEarliestDateOffsetPeriod: 40478,\n    /** Time unit associated with the interval to the first (and possibly only) exercise date in the exercise period. */\n    LegProvisionOptionExerciseEarliestDateOffsetUnit: 40479,\n    /** Time unit multiplier for subsequent exercise dates in the exercise period following the earliest exercise date. An interval of 1 day should be used to indicate an American style exercise period. */\n    LegProvisionOptionExerciseFrequencyPeriod: 40480,\n    /** Time unit associated with subsequent exercise dates in the exercise period following the earliest exercise date. */\n    LegProvisionOptionExerciseFrequencyUnit: 40481,\n    /** The unadjusted first day of the exercise period for an American style option. */\n    LegProvisionOptionExerciseStartDateUnadjusted: 40482,\n    /** Specifies the anchor date when the option exercise start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegProvisionOptionExerciseStartDateRelativeTo: 40483,\n    /** Time unit multiplier for the relative option exercise start date offset. */\n    LegProvisionOptionExerciseStartDateOffsetPeriod: 40484,\n    /** Time unit associated with the relative option exercise start date offset. */\n    LegProvisionOptionExerciseStartDateOffsetUnit: 40485,\n    /** Specifies the day type of the provision's relative option exercise start date offset. */\n    LegProvisionOptionExerciseStartDateOffsetDayType: 40486,\n    /** The adjusted first day of the exercise period for an American style option. */\n    LegProvisionOptionExerciseStartDateAdjusted: 40487,\n    /** The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1. */\n    LegProvisionOptionExercisePeriodSkip: 40488,\n    /** The unadjusted first date of a schedule. This can be used to restrict the range of exercise dates when they are relative. */\n    LegProvisionOptionExerciseBoundsFirstDateUnadjusted: 40489,\n    /** The unadjusted last date of a schedule. This can be used to restrict the range of exercise dates when they are relative. */\n    LegProvisionOptionExerciseBoundsLastDateUnadjusted: 40490,\n    /** The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) (i) on the expriation date, in the case of a European style option, (ii) on each bermuda option exercise date and the expiration date, in the case of a Bermuda style option the commencement date to, and including, the expiration date, in the case of an American option. */\n    LegProvisionOptionExerciseEarliestTime: 40491,\n    /** Identifies the business center calendar used with the provision's earliest time for notice of exercise.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegProvisionOptionExerciseEarliestTimeBusinessCenter: 40492,\n    /** For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day. */\n    LegProvisionOptionExerciseLatestTime: 40493,\n    /** Identifies the business center calendar used with the provision's latest time for notice of exercise.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegProvisionOptionExerciseLatestTimeBusinessCenter: 40494,\n    /** Number of provision option exercise fixed dates in the repeating group. */\n    NoLegProvisionOptionExerciseFixedDates: 40495,\n    /** A predetermined option exercise date unadjusted or adjusted depending on LegProvisionOptionExerciseFixedDateType(40497). */\n    LegProvisionOptionExerciseFixedDate: 40496,\n    /** Specifies the type of date (e.g. adjusted for holidays). */\n    LegProvisionOptionExerciseFixedDateType: 40497,\n    /** The unadjusted last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period. */\n    LegProvisionOptionExpirationDateUnadjusted: 40498,\n    /** The business day convention used to adjust the instrument leg's provision's option expiration date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegProvisionOptionExpirationDateBusinessDayConvention: 40499,\n    /** The business center calendar used to adjust the instrument leg's provision's option expiration date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegProvisionOptionExpirationDateBusinessCenter: 40500,\n    /** Specifies the anchor date when the option expiration date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegProvisionOptionExpirationDateRelativeTo: 40501,\n    /** Time unit multiplier for the relative option expiration date offset. */\n    LegProvisionOptionExpirationDateOffsetPeriod: 40502,\n    /** Time unit associated with the relative option expiration date offset. */\n    LegProvisionOptionExpirationDateOffsetUnit: 40503,\n    /** Specifies the day type of the provision's relative option expiration date offset. */\n    LegProvisionOptionExpirationDateOffsetDayType: 40504,\n    /** The adjusted last date within an exercise period for an American style option. For a European style option it is the only date within the exercise period. */\n    LegProvisionOptionExpirationDateAdjusted: 40505,\n    /** The latest time for exercise on the expiration date. */\n    LegProvisionOptionExpirationTime: 40506,\n    /** Identifies the business center calendar used with the provision's latest exercise time on expiration date.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegProvisionOptionExpirationTimeBusinessCenter: 40507,\n    /** The unadjusted date on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the swap effective date, in an extendible/cancelable provision it is the swap termination date). */\n    LegProvisionOptionRelevantUnderlyingDateUnadjusted: 40508,\n    /** The business day convention used to adjust the instrument leg's provision's option relevant underlying date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegProvisionOptionRelevantUnderlyingDateBusinessDayConvention: 40509,\n    /** The business center calendar used to adjust the instrument leg's provision's option underlying date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegProvisionOptionRelevantUnderlyingDateBusinessCenter: 40510,\n    /** Specifies the anchor date when the date relevant to the underlying trade on exercise is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegProvisionOptionRelevantUnderlyingDateRelativeTo: 40511,\n    /** Time unit multiplier for the relative option relevant underlying date offset. */\n    LegProvisionOptionRelevantUnderlyingDateOffsetPeriod: 40512,\n    /** Time unit associated with the relative option relevant underlying date offset. */\n    LegProvisionOptionRelevantUnderlyingDateOffsetUnit: 40513,\n    /** Specifies the day type of the provision's relative option relevant underlying date offset. */\n    LegProvisionOptionRelevantUnderlyingDateOffsetDayType: 40514,\n    /** The adjusted date on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the swap effective date, in an extendible/cancelable provision it is the swap termination date). */\n    LegProvisionOptionRelevantUnderlyingDateAdjusted: 40515,\n    /** The business day convention used to adjust the provisional cash settlement payment's termination, or relative termination, date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegProvisionCashSettlPaymentDateBusinessDayConvention: 40516,\n    /** The business center calendar used to adjust the provisional cash settlement payment's termination, or relative termination, date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegProvisionCashSettlPaymentDateBusinessCenter: 40517,\n    /** Specifies the anchor date when the cash settlement payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegProvisionCashSettlPaymentDateRelativeTo: 40518,\n    /** Time unit multiplier for the relative cash settlement payment date offset. */\n    LegProvisionCashSettlPaymentDateOffsetPeriod: 40519,\n    /** Time unit associated with the relative cash settlement payment date offset. */\n    LegProvisionCashSettlPaymentDateOffsetUnit: 40520,\n    /** Specifies the day type of the provision's relative cash settlement payment date offset. */\n    LegProvisionCashSettlPaymentDateOffsetDayType: 40521,\n    /** The first date in range when a settlement date range is provided. */\n    LegProvisionCashSettlPaymentDateRangeFirst: 40522,\n    /** The last date in range when a settlement date range is provided. */\n    LegProvisionCashSettlPaymentDateRangeLast: 40523,\n    /** A time specified in 24-hour format, e.g. 11am would be represented as 11:00:00. The time of the cash settlement valuation date when the cash settlement amount will be determined according to the cash settlement method if the parties have not otherwise been able to agree to the cash settlement amount. */\n    LegProvisionCashSettlValueTime: 40524,\n    /** Identifies the business center calendar used with the provision's cash settlement valuation time.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegProvisionCashSettlValueTimeBusinessCenter: 40525,\n    /** The business day convention used to adjust the provision's cash settlement valuation date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegProvisionCashSettlValueDateBusinessDayConvention: 40526,\n    /** The business center calendar used to adjust the provision's cash settlement valuation date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegProvisionCashSettlValueDateBusinessCenter: 40527,\n    /** Specifies the anchor date when the cash settlement value date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegProvisionCashSettlValueDateRelativeTo: 40528,\n    /** Time unit multiplier for the relative cash settlement value date offset. */\n    LegProvisionCashSettlValueDateOffsetPeriod: 40529,\n    /** Time unit associated with the relative cash settlement value date offset. */\n    LegProvisionCashSettlValueDateOffsetUnit: 40530,\n    /** Specifies the day type of the provision's relative cash settlement value date offset. */\n    LegProvisionCashSettlValueDateOffsetDayType: 40531,\n    /** The adjusted cash settlement value date. */\n    LegProvisionCashSettlValueDateAdjusted: 40532,\n    /** Number of parties identified in the contract provision. */\n    NoLegProvisionPartyIDs: 40533,\n    /** The party identifier/code for the payment settlement party. */\n    LegProvisionPartyID: 40534,\n    /** Identifies the class or source of LegProvisionPartyID(40534). */\n    LegProvisionPartyIDSource: 40535,\n    /** Identifies the type or role of LegProvisionPartyID(40534) specified. */\n    LegProvisionPartyRole: 40536,\n    /** Number of sub-party IDs to be reported for the party. */\n    NoLegProvisionPartySubIDs: 40537,\n    /** Party sub-identifier, if applicable, for LegProvisionPartyRole(40536). */\n    LegProvisionPartySubID: 40538,\n    /** The type of LegProvisionPartySubID(40538) value. */\n    LegProvisionPartySubIDType: 40539,\n    /** Number of swap streams in the repeating group. */\n    NoUnderlyingStreams: 40540,\n    /** Type of swap stream. */\n    UnderlyingStreamType: 40541,\n    /** A short descriptive name given to payment stream. Eg. CDS, Fixed, Float, Float2, GBP. The description has no intrinsic meaning but should be arbitrarily chosen by the remitter as a reference. */\n    UnderlyingStreamDesc: 40542,\n    /** The side of the party paying the stream. */\n    UnderlyingStreamPaySide: 40543,\n    /** The side of the party receiving the stream. */\n    UnderlyingStreamReceiveSide: 40544,\n    /** Notional, or initial notional value for the payment stream. Use SwapSchedule for steps. */\n    UnderlyingStreamNotional: 40545,\n    /** Specifies the currency the UnderlyingStreamNotional(40545) is denominated in. Uses ISO 4217 currency codes. */\n    UnderlyingStreamCurrency: 40546,\n    /** Free form text to specify additional information or enumeration description when a standard value does not apply. */\n    UnderlyingStreamText: 40547,\n    /** The unadjusted termination date. */\n    UnderlyingStreamTerminationDateUnadjusted: 40548,\n    /** The business day convention used to adjust the underlying instrument's stream's termination, or relative termination, date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingStreamTerminationDateBusinessDayConvention: 40549,\n    /** The business center calendar used to adjust the underlying instrument's stream's termination, or relative termination, date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingStreamTerminationDateBusinessCenter: 40550,\n    /** Specifies the anchor date when the termination date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingStreamTerminationDateRelativeTo: 40551,\n    /** Time unit multiplier for the relative termination date offset. */\n    UnderlyingStreamTerminationDateOffsetPeriod: 40552,\n    /** Time unit associated with the relative termination date offset. */\n    UnderlyingStreamTerminationDateOffsetUnit: 40553,\n    /** Specifies the day type of the relative termination date offset. */\n    UnderlyingStreamTerminationDateOffsetDayType: 40554,\n    /** The adjusted termination date. */\n    UnderlyingStreamTerminationDateAdjusted: 40555,\n    /** The business day convention used to adjust the calculation periods. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingStreamCalculationPeriodBusinessDayConvention: 40556,\n    /** The business center calendar used to adjust the calculation periods, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingStreamCalculationPeriodBusinessCenter: 40557,\n    /** The unadjusted first calculation period start date if before the effective date. */\n    UnderlyingStreamFirstPeriodStartDateUnadjusted: 40558,\n    /** The business day convention used to adjust the underlying instrument's stream's first calculation period start date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingStreamFirstPeriodStartDateBusinessDayConvention: 40559,\n    /** The business center calendar used to adjust the underlying instrument's stream's first calculation period start date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingStreamFirstPeriodStartDateBusinessCenter: 40560,\n    /** The adjusted first calculation period start date, if it is before the effective date. */\n    UnderlyingStreamFirstPeriodStartDateAdjusted: 40561,\n    /** The unadjusted first start date of the regular calculation period, if there is an initial stub period. */\n    UnderlyingStreamFirstRegularPeriodStartDateUnadjusted: 40562,\n    /** The unadjusted end date of the initial compounding period. */\n    UnderlyingStreamFirstCompoundingPeriodEndDateUnadjusted: 40563,\n    /** The unadjusted last regular period end date if there is a final stub period. */\n    UnderlyingStreamLastRegularPeriodEndDateUnadjusted: 40564,\n    /** Time unit multiplier for the frequency at which calculation period end dates occur. */\n    UnderlyingStreamCalculationFrequencyPeriod: 40565,\n    /** Time unit associated with the frequency at which calculation period end dates occur. */\n    UnderlyingStreamCalculationFrequencyUnit: 40566,\n    /** The convention for determining the sequence of end dates. It is used in conjunction with a specified frequency. Used only to override the roll convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingStreamCalculationRollConvention: 40567,\n    /** Identifies the type of payment stream applicable to the swap stream associated with the underlying instrument. */\n    UnderlyingPaymentStreamType: 40568,\n    /** Used only for credit index trade. This contains the credit spread (\"fair value\") at which the trade was executed. The market rate varies over the life of the index depending on market conditions. This is the price of the index as quoted by trading desks. */\n    UnderlyingPaymentStreamMarketRate: 40569,\n    /** Applicable to credit default swaps on mortgage backed securities to specify whether payment delays are applicable to the fixed amount.\n        Residential mortgage backed securities typically have a payment delay of 5 days between the coupon date of the reference obligation and the payment date of the synthetic swap.\n        Commercial mortage backed securities do not typically have a payment delay, with both payment dates (the coupon date of the reference obligation and the payment date of the synthetic swap) being on the 25th of each month. */\n    UnderlyingPaymentStreamDelayIndicator: 40570,\n    /** Specifies the currency that the stream settles in (to support swaps that settle in a currency different from the notional currency). Uses ISO 4217 currency codes. */\n    UnderlyingPaymentStreamSettlCurrency: 40571,\n    /** The day count convention used in the payment stream calculations. */\n    UnderlyingPaymentStreamDayCount: 40572,\n    /** The number of days from the adjusted calculation period start date to the adjusted value date, calculated in accordance with the applicable day count fraction. */\n    UnderlyingPaymentStreamAccrualDays: 40573,\n    /** The method of calculating discounted payment amounts */\n    UnderlyingPaymentStreamDiscountType: 40574,\n    /** Discount rate. The rate is expressed in decimal, e.g. 5% is expressed as 0.05. */\n    UnderlyingPaymentStreamDiscountRate: 40575,\n    /** The day count convention applied to the UnderlyingPaymentStreamDiscountRate(40575). */\n    UnderlyingPaymentStreamDiscountRateDayCount: 40576,\n    /** Compounding Method. */\n    UnderlyingPaymentStreamCompoundingMethod: 40577,\n    /** Indicates whether there is an initial exchange of principal on the effective date. */\n    UnderlyingPaymentStreamInitialPrincipalExchangeIndicator: 40578,\n    /** Indicates whether there are intermediate or interim exchanges of principal during the term of the swap. */\n    UnderlyingPaymentStreamInterimPrincipalExchangeIndicator: 40579,\n    /** Indicates whether there is a final exchange of principal on the termination date. */\n    UnderlyingPaymentStreamFinalPrincipalExchangeIndicator: 40580,\n    /** The business day convention used to adjust the payment stream's payment date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingPaymentStreamPaymentDateBusinessDayConvention: 40581,\n    /** The business center calendar used to adjust the payment stream's payment date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPaymentStreamPaymentDateBusinessCenter: 40582,\n    /** Time unit multiplier for the frequency of payments. */\n    UnderlyingPaymentStreamPaymentFrequencyPeriod: 40583,\n    /** Time unit associated with the frequency of payments. */\n    UnderlyingPaymentStreamPaymentFrequencyUnit: 40584,\n    /** The convention for determining the sequence of end dates. It is used in conjunction with a specified frequency. Used only to override the roll convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingPaymentStreamPaymentRollConvention: 40585,\n    /** The unadjusted first payment date. */\n    UnderlyingPaymentStreamFirstPaymentDateUnadjusted: 40586,\n    /** The unadjusted last regular payment date. */\n    UnderlyingPaymentStreamLastRegularPaymentDateUnadjusted: 40587,\n    /** Specifies the anchor date when payment dates are relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentStreamPaymentDateRelativeTo: 40588,\n    /** Time unit multiplier for the relative payment date offset. */\n    UnderlyingPaymentStreamPaymentDateOffsetPeriod: 40589,\n    /** Time unit associated with the relative payment date offset. */\n    UnderlyingPaymentStreamPaymentDateOffsetUnit: 40590,\n    /** Specifies the day type of the relative payment date offset. */\n    UnderlyingPaymentStreamPaymentDateOffsetDayType: 40591,\n    /** Specifies the anchor date when the reset dates are relative to an anchor date.\n        If the reset frequency is specified as daily this element must not be included.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentStreamResetDateRelativeTo: 40592,\n    /** The business day convention used to adjust the payment stream's reset date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingPaymentStreamResetDateBusinessDayConvention: 40593,\n    /** The business center calendar used to adjust the payment stream's reset date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPaymentStreamResetDateBusinessCenter: 40594,\n    /** Time unit multiplier for frequency of resets. */\n    UnderlyingPaymentStreamResetFrequencyPeriod: 40595,\n    /** Time unit associated with frequency of resets. */\n    UnderlyingPaymentStreamResetFrequencyUnit: 40596,\n    /** Used to specify the day of the week in which the reset occurs for payments that reset on a weekly basis. */\n    UnderlyingPaymentStreamResetWeeklyRollConvention: 40597,\n    /** Specifies the anchor date when the initial fixing date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentStreamInitialFixingDateRelativeTo: 40598,\n    /** The business day convention used to adjust the payment stream's initial fixing date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingPaymentStreamInitialFixingDateBusinessDayConvention: 40599,\n    /** The business center calendar used to adjust the payment stream's initial fixing date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPaymentStreamInitialFixingDateBusinessCenter: 40600,\n    /** Time unit multiplier for the relative initial fixing date offset. */\n    UnderlyingPaymentStreamInitialFixingDateOffsetPeriod: 40601,\n    /** Time unit associated with the relative initial fixing date offset. */\n    UnderlyingPaymentStreamInitialFixingDateOffsetUnit: 40602,\n    /** Specifies the day type of the relative initial fixing date offset. */\n    UnderlyingPaymentStreamInitialFixingDateOffsetDayType: 40603,\n    /** The adjusted initial fixing date. */\n    UnderlyingPaymentStreamInitialFixingDateAdjusted: 40604,\n    /** Specifies the anchor date when the fixing date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentStreamFixingDateRelativeTo: 40605,\n    /** The business day convention used to adjust the payment stream's fixing date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingPaymentStreamFixingDateBusinessDayConvention: 40606,\n    /** The business center calendar used to adjust the payment stream's fixing date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPaymentStreamFixingDateBusinessCenter: 40607,\n    /** Time unit multiplier for the relative fixing date offset. */\n    UnderlyingPaymentStreamFixingDateOffsetPeriod: 40608,\n    /** Time unit associated with the relative fixing date offset. */\n    UnderlyingPaymentStreamFixingDateOffsetUnit: 40609,\n    /** Specifies the day type of the relative fixing date offset. */\n    UnderlyingPaymentStreamFixingDateOffsetDayType: 40610,\n    /** The adjusted fixing date. */\n    UnderlyingPaymentStreamFixingDateAdjusted: 40611,\n    /** Time unit multiplier for the relative rate cut-off date offset. */\n    UnderlyingPaymentStreamRateCutoffDateOffsetPeriod: 40612,\n    /** Time unit associated with the relative rate cut-off date offset. */\n    UnderlyingPaymentStreamRateCutoffDateOffsetUnit: 40613,\n    /** Specifies the day type of the relative rate cut-off date offset. */\n    UnderlyingPaymentStreamRateCutoffDateOffsetDayType: 40614,\n    /** The rate applicable to the fixed rate payment stream. */\n    UnderlyingPaymentStreamRate: 40615,\n    /** The underlying payment stream's fixed payment amount. In CDS an alternative to UnderlyingPaymentStreamRate(40615). */\n    UnderlyingPaymentStreamFixedAmount: 40616,\n    /** Specifies the currency in which UnderlyingPaymentStreamFixedAmount(40616) or UnderlyingPaymentStreamRate(40615) is denominated. Users ISO 4271 currency codes. */\n    UnderlyingPaymentStreamRateOrAmountCurrency: 40617,\n    /** The future value notional is normally only required for certain non-deliverable interest rate swaps (e.g. Brazillian Real (BRL) vs. CETIP Interbank Deposit Rate (CDI)). The value is calculated as follows: Future Value Notional = Notional Amount * (1 + Fixed Rate) ^ (Fixed Rate Day Count Fraction). The currency is the same as the stream notional. */\n    UnderlyingPaymentStreamFutureValueNotional: 40618,\n    /** The adjusted value date of the future value amount. */\n    UnderlyingPaymentStreamFutureValueDateAdjusted: 40619,\n    /** The payment stream's floating rate index. */\n    UnderlyingPaymentStreamRateIndex: 40620,\n    /** The source of the payment stream floating rate index. */\n    UnderlyingPaymentStreamRateIndexSource: 40621,\n    /** Time unit associated with the underlying instrument\u2019s floating rate index. */\n    UnderlyingPaymentStreamRateIndexCurveUnit: 40622,\n    /** Time unit multiplier for the underlying instrument\u2019s floating rate index. */\n    UnderlyingPaymentStreamRateIndexCurvePeriod: 40623,\n    /** A rate multiplier to apply to the floating rate. A multiplier schedule is expressed as explicit multipliers and dates. In the case of a schedule, the step dates may be subject to adjustment in accordance with any adjustments specified in the calculationPeriodDatesAdjustments. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    UnderlyingPaymentStreamRateMultiplier: 40624,\n    /** Spread from floating rate index. */\n    UnderlyingPaymentStreamRateSpread: 40625,\n    /** Identifies a short or long spread value. */\n    UnderlyingPaymentStreamRateSpreadPositionType: 40626,\n    /** Specifies the yield calculation treatment for the index. */\n    UnderlyingPaymentStreamRateTreatment: 40627,\n    /** The cap rate, if any, which applies to the floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05. */\n    UnderlyingPaymentStreamCapRate: 40628,\n    /** Reference to the buyer of the cap rate option through its trade side. */\n    UnderlyingPaymentStreamCapRateBuySide: 40629,\n    /** Reference to the seller of the cap rate option through its trade side. */\n    UnderlyingPaymentStreamCapRateSellSide: 40630,\n    /** The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05. */\n    UnderlyingPaymentStreamFloorRate: 40631,\n    /** Reference to the buyer of the floor rate option through its trade side. */\n    UnderlyingPaymentStreamFloorRateBuySide: 40632,\n    /** Reference to the seller of the floor rate option through its trade side. */\n    UnderlyingPaymentStreamFloorRateSellSide: 40633,\n    /** The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. An initial rate of 5% would be represented as 0.05. */\n    UnderlyingPaymentStreamInitialRate: 40634,\n    /** Specifies the rounding direction. */\n    UnderlyingPaymentStreamFinalRateRoundingDirection: 40635,\n    /** Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7. */\n    UnderlyingPaymentStreamFinalRatePrecision: 40636,\n    /** When rate averaging is applicable, used to specify whether a weighted or unweighted average calculation method is to be used. */\n    UnderlyingPaymentStreamAveragingMethod: 40637,\n    /** The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate). */\n    UnderlyingPaymentStreamNegativeRateTreatment: 40638,\n    /** Time unit multiplier for the inflation lag period. The lag period is the offsetting period from the payment date which determines the reference period for which the inflation index is observed. */\n    UnderlyingPaymentStreamInflationLagPeriod: 40639,\n    /** Time unit associated with the inflation lag period. */\n    UnderlyingPaymentStreamInflationLagUnit: 40640,\n    /** The inflation lag period day type. */\n    UnderlyingPaymentStreamInflationLagDayType: 40641,\n    /** The method used when calculating the Inflation Index Level from multiple points - the most common is Linear. */\n    UnderlyingPaymentStreamInflationInterpolationMethod: 40642,\n    /** The inflation index reference source. */\n    UnderlyingPaymentStreamInflationIndexSource: 40643,\n    /** The current main publication source such as relevant web site or a government body. */\n    UnderlyingPaymentStreamInflationPublicationSource: 40644,\n    /** Initial known index level for the first calculation period. */\n    UnderlyingPaymentStreamInflationInitialIndexLevel: 40645,\n    /** Indicates whether a fallback bond as defined in the 2006 ISDA Inflation Derivatives Definitions, sections 1.3 and 1.8, is applicable or not. If not specified, the default value is \"Y\" (True/Yes). */\n    UnderlyingPaymentStreamInflationFallbackBondApplicable: 40646,\n    /** The method of Forward Rate Agreement (FRA) discounting, if any, that will apply. */\n    UnderlyingPaymentStreamFRADiscounting: 40647,\n    /** The non-deliverable settlement reference currency. Uses ISO 4217 currency codes. */\n    UnderlyingPaymentStreamNonDeliverableRefCurrency: 40648,\n    /** The business day convention used to adjust the payment stream's fixing date for the non-deliverable terms. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingPaymentStreamNonDeliverableFixingDatesBizDayConvention: 40649,\n    /** The business center calendar used to adjust the payment stream's fixing date for the non-deliverable terms, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPaymentStreamNonDeliverableFixingDatesBusinessCenter: 40650,\n    /** Specifies the anchor date when the non-deliverable fixing dates are relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentStreamNonDeliverableFixingDatesRelativeTo: 40651,\n    /** Time unit multiplier for the relative non-deliverable fixing date offset. */\n    UnderlyingPaymentStreamNonDeliverableFixingDatesOffsetPeriod: 40652,\n    /** Time unit associated with the relative non-deliverable fixing date offset. */\n    UnderlyingPaymentStreamNonDeliverableFixingDatesOffsetUnit: 40653,\n    /** Specifies the day type of the relative non-deliverable fixing date offset. */\n    UnderlyingPaymentStreamNonDeliverableFixingDatesOffsetDayType: 40654,\n    /** Identifies the reference \"page\" from the rate source.\n        When SettlRateFallbackRateSource(40373) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option */\n    SettlRateFallbackReferencePage: 40655,\n    /** Number of Fixing dates in the repeating group */\n    NoUnderlyingNonDeliverableFixingDates: 40656,\n    /** The non-deliverable fixing date unadjusted or adjusted depending on UnderlyingNonDeliverableFixingDateType(40658). */\n    UnderlyingNonDeliverableFixingDate: 40657,\n    /** Specifies the type of date (e.g. adjusted for holidays). */\n    UnderlyingNonDeliverableFixingDateType: 40658,\n    /** Number of settlement rate fallbacks in the repeating group */\n    NoUnderlyingSettlRateFallbacks: 40659,\n    /** The maximum number of days to wait for a quote from the disrupted settlement rate option before proceding to this method. */\n    UnderlyingSettlRatePostponementMaximumDays: 40660,\n    /** Identifies the source of rate information. */\n    UnderlyingPaymentStreamNonDeliverableSettlRateSource: 40661,\n    /** Indicates whether to request a settlement rate quote from the market. */\n    UnderlyingSettlRatePostponementSurvey: 40662,\n    /** Used to identify the settlement rate postponement calculation agent. */\n    UnderlyingSettlRatePostponementCalculationAgent: 40663,\n    /** Number of swap schedules in the repeating group */\n    NoUnderlyingPaymentSchedules: 40664,\n    /** Type of schedule. */\n    UnderlyingPaymentScheduleType: 40665,\n    /** Indicates to which stub this schedule applies. */\n    UnderlyingPaymentScheduleStubType: 40666,\n    /** The unadjusted date on which the value is adjusted, or calculated if a future value notional for certain non-deliverable interest rate swaps (e.g. Brazillian Real (BRL) vs. CETIP Interbank Deposit Rate (CDI)), or the start date of a cashflow payment. */\n    UnderlyingPaymentScheduleStartDateUnadjusted: 40667,\n    /** The unadjusted end date of a cashflow payment. */\n    UnderlyingPaymentScheduleEndDateUnadjusted: 40668,\n    /** The side of the party paying the step schedule. */\n    UnderlyingPaymentSchedulePaySide: 40669,\n    /** The side of the party receiving the step schedule. */\n    UnderlyingPaymentScheduleReceiveSide: 40670,\n    /** The notional value for this step, or amount of a cashflow payment. */\n    UnderlyingPaymentScheduleNotional: 40671,\n    /** The currency for this step. Uses ISO 4217 currency codes. */\n    UnderlyingPaymentScheduleCurrency: 40672,\n    /** The rate value for this step. */\n    UnderlyingPaymentScheduleRate: 40673,\n    /** A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    UnderlyingPaymentScheduleRateMultiplier: 40674,\n    /** The spread value for this step. */\n    UnderlyingPaymentScheduleRateSpread: 40675,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    UnderlyingPaymentScheduleRateSpreadPositionType: 40676,\n    /** Specifies the yield calculation treatment for the step schedule. */\n    UnderlyingPaymentScheduleRateTreatment: 40677,\n    /** The explicit payment amount for this step. */\n    UnderlyingPaymentScheduleFixedAmount: 40678,\n    /** The currency of the fixed amount. Uses ISO 4217 currency codes. */\n    UnderlyingPaymentScheduleFixedCurrency: 40679,\n    /** Time unit multiplier for the step frequency. */\n    UnderlyingPaymentScheduleStepFrequencyPeriod: 40680,\n    /** Time unit associated with the step frequency. */\n    UnderlyingPaymentScheduleStepFrequencyUnit: 40681,\n    /** The explicit amount that the notional changes on each step date. This can be a positive or negative amount. */\n    UnderlyingPaymentScheduleStepOffsetValue: 40682,\n    /** The percentage by which the notional changes on each step date. The percentage is either a percentage applied to the initial notional amount or the previous outstanding notional, depending on the value specified in UnderlyingPaymentScheduleStepRelativeTo(40685). The percentage can be either positive or negative. */\n    UnderlyingPaymentScheduleStepRate: 40683,\n    /** The explicit amount that the rate changes on each step date. This can be a positive or negative value. */\n    UnderlyingPaymentScheduleStepOffsetRate: 40684,\n    /** Specifies whether the UnderlyingPaymentScheduleStepRate(40683) or UnderlyingPaymentScheduleStepOffsetValue(40682) should be applied to the initial notional or the previous notional in order to calculate the notional step change amount. */\n    UnderlyingPaymentScheduleStepRelativeTo: 40685,\n    /** The unadjusted fixing date. */\n    UnderlyingPaymentScheduleFixingDateUnadjusted: 40686,\n    /** Floating rate observation weight for cashflow payment. */\n    UnderlyingPaymentScheduleWeight: 40687,\n    /** Specifies the anchor date when the fixing date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentScheduleFixingDateRelativeTo: 40688,\n    /** The business day convention used to adjust the payment schedule's fixing date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingPaymentScheduleFixingDateBusinessDayCnvtn: 40689,\n    /** The business center calendar used to adjust the payment schedule's fixing date, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPaymentScheduleFixingDateBusinessCenter: 40690,\n    /** Time unit multiplier for the relative fixing date offset. */\n    UnderlyingPaymentScheduleFixingDateOffsetPeriod: 40691,\n    /** Time unit associated with the relative fixing date offset. */\n    UnderlyingPaymentScheduleFixingDateOffsetUnit: 40692,\n    /** Specifies the day type of the relative fixing date offset. */\n    UnderlyingPaymentScheduleFixingDateOffsetDayType: 40693,\n    /** The adjusted fixing date. */\n    UnderlyingPaymentScheduleFixingDateAdjusted: 40694,\n    /** The fixing time. */\n    UnderlyingPaymentScheduleFixingTime: 40695,\n    /** Business center for determining fixing time. See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPaymentScheduleFixingTimeBusinessCenter: 40696,\n    /** Specifies the anchor date when the interim exchange payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentScheduleInterimExchangePaymentDateRelativeTo: 40697,\n    /** The business day convention used to adjust the payment schedule's interim exchange date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingPaymentScheduleInterimExchangeDatesBizDayConvention: 40698,\n    /** The business center calendar used to adjust the payment schedule's interim exchange date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPaymentScheduleInterimExchangeDatesBusinessCenter: 40699,\n    /** Time unit multiplier for the relative interim exchange date offset. */\n    UnderlyingPaymentScheduleInterimExchangeDatesOffsetPeriod: 40700,\n    /** Time unit associated with the relative interim exchange date offset. */\n    UnderlyingPaymentScheduleInterimExchangeDatesOffsetUnit: 40701,\n    /** Specifies the day type of the relative interim exchange date offset. */\n    UnderlyingPaymentScheduleInterimExchangeDatesOffsetDayType: 40702,\n    /** The adjusted interim exchange date. */\n    UnderlyingPaymentScheduleInterimExchangeDateAdjusted: 40703,\n    /** Number of rate sources in the repeating group */\n    NoUnderlyingPaymentScheduleRateSources: 40704,\n    /** Identifies the source of rate information. */\n    UnderlyingPaymentScheduleRateSource: 40705,\n    /** Rate source type. */\n    UnderlyingPaymentScheduleRateSourceType: 40706,\n    /** Identifies the reference \u201Cpage\u201D from the rate source.\n        For FX, the reference page to the spot rate to be used for the reference FX spot rate.\n        When RateSource(1446) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option */\n    UnderlyingPaymentScheduleReferencePage: 40707,\n    /** Number of stubs in the repeating group */\n    NoUnderlyingPaymentStubs: 40708,\n    /** Stub type. */\n    UnderlyingPaymentStubType: 40709,\n    /** Optional indication whether stub is shorter or longer than the regular swap period. */\n    UnderlyingPaymentStubLength: 40710,\n    /** The agreed upon fixed rate for this stub. */\n    UnderlyingPaymentStubRate: 40711,\n    /** A fixed payment amount for the stub. */\n    UnderlyingPaymentStubFixedAmount: 40712,\n    /** The currency of the fixed payment amount. Uses ISO 4217 currency codes. */\n    UnderlyingPaymentStubFixedCurrency: 40713,\n    /** The stub floating rate index. */\n    UnderlyingPaymentStubIndex: 40714,\n    /** The source for the underlying payment stub floating rate index. */\n    UnderlyingPaymentStubIndexSource: 40715,\n    /** Time unit multiplier for the underlying payment stub floating rate index. */\n    UnderlyingPaymentStubIndexCurvePeriod: 40716,\n    /** Time unit associated with the underlying payment stub floating rate index. */\n    UnderlyingPaymentStubIndexCurveUnit: 40717,\n    /** A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    UnderlyingPaymentStubIndexRateMultiplier: 40718,\n    /** Spread from floating rate index. */\n    UnderlyingPaymentStubIndexRateSpread: 40719,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    UnderlyingPaymentStubIndexRateSpreadPositionType: 40720,\n    /** Specifies the yield calculation treatment for the stub index. */\n    UnderlyingPaymentStubIndexRateTreatment: 40721,\n    /** The cap rate, if any, which applies to the floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05. */\n    UnderlyingPaymentStubIndexCapRate: 40722,\n    /** Reference to the buyer of the cap rate option through its trade side. */\n    UnderlyingPaymentStubIndexCapRateBuySide: 40723,\n    /** Reference to the seller of the cap rate option through its trade side. */\n    UnderlyingPaymentStubIndexCapRateSellSide: 40724,\n    /** The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05. */\n    UnderlyingPaymentStubIndexFloorRate: 40725,\n    /** Reference to the buyer of the floor rate option through its trade side. */\n    UnderlyingPaymentStubIndexFloorRateBuySide: 40726,\n    /** Reference to the seller of the floor rate option through its trade side. */\n    UnderlyingPaymentStubIndexFloorRateSellSide: 40727,\n    /** The second stub floating rate index. */\n    UnderlyingPaymentStubIndex2: 40728,\n    /** The source of the second stub floating rate index. */\n    UnderlyingPaymentStubIndex2Source: 40729,\n    /** Secondary time unit multiplier for the stub floating rate index curve. */\n    UnderlyingPaymentStubIndex2CurvePeriod: 40730,\n    /** Secondary time unit associated with the stub floating rate index curve. */\n    UnderlyingPaymentStubIndex2CurveUnit: 40731,\n    /** A rate multiplier to apply to the second floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    UnderlyingPaymentStubIndex2RateMultiplier: 40732,\n    /** Spread from the second floating rate index. */\n    UnderlyingPaymentStubIndex2RateSpread: 40733,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    UnderlyingPaymentStubIndex2RateSpreadPositionType: 40734,\n    /** Specifies the yield calculation treatment for the second stub index. */\n    UnderlyingPaymentStubIndex2RateTreatment: 40735,\n    /** The cap rate, if any, which applies to the second floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05. */\n    UnderlyingPaymentStubIndex2CapRate: 40736,\n    /** The floor rate, if any, which applies to the second floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05. */\n    UnderlyingPaymentStubIndex2FloorRate: 40737,\n    /** Identifies the type of payment stream associated with the swap. */\n    PaymentStreamType: 40738,\n    /** Used only for credit index trade. This contains the credit spread (\"fair value\") at which the trade was executed. The market rate varies over the life of the index depending on market conditions. This is the price of the index as quoted by trading desks. */\n    PaymentStreamMarketRate: 40739,\n    /** Applicable to credit default swaps on mortgage backed securities to specify whether payment delays are applicable to the fixed amount.\n        Residential mortgage backed securities typically have a payment delay of 5 days between the coupon date of the reference obligation and the payment date of the synthetic swap.\n        Commercial mortgage backed securities do not typically have a payment delay, with both payment dates (the coupon date of the reference obligation and the payment date of the synthetic swap) being on the 25th of each month. */\n    PaymentStreamDelayIndicator: 40740,\n    /** Specifies the currency that the stream settles in (to support swaps that settle in a currency different from the notional currency). Uses ISO 4217 currency codes. */\n    PaymentStreamSettlCurrency: 40741,\n    /** The day count convention used in the payment stream calculations. */\n    PaymentStreamDayCount: 40742,\n    /** The number of days from the adjusted calculation period start date to the adjusted value date, calculated in accordance with the applicable day count fraction. */\n    PaymentStreamAccrualDays: 40743,\n    /** The method of calculating discounted payment amounts */\n    PaymentStreamDiscountType: 40744,\n    /** Discount rate. The rate is expressed in decimal, e.g. 5% is expressed as 0.05. */\n    PaymentStreamDiscountRate: 40745,\n    /** The day count convention applied to the PaymentStreamDiscountRate(40745). */\n    PaymentStreamDiscountRateDayCount: 40746,\n    /** Compounding method. */\n    PaymentStreamCompoundingMethod: 40747,\n    /** Indicates whether there is an initial exchange of principal on the effective date. */\n    PaymentStreamInitialPrincipalExchangeIndicator: 40748,\n    /** Indicates whether there are intermediate or interim exchanges of principal during the term of the swap. */\n    PaymentStreamInterimPrincipalExchangeIndicator: 40749,\n    /** Indicates whether there is a final exchange of principal on the termination date. */\n    PaymentStreamFinalPrincipalExchangeIndicator: 40750,\n    /** The business day convention used to adjust the payment stream's payment date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    PaymentStreamPaymentDateBusinessDayConvention: 40751,\n    /** The business center calendar used to adjust the payment stream's payment date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PaymentStreamPaymentDateBusinessCenter: 40752,\n    /** Time unit multiplier for the frequency of payments. */\n    PaymentStreamPaymentFrequencyPeriod: 40753,\n    /** Time unit associated with the frequency of payments. */\n    PaymentStreamPaymentFrequencyUnit: 40754,\n    /** The convention for determining the sequence of end dates. It is used in conjunction with a specified frequency. Used only to override the roll convention specified in the DateAdjustment component within the Instrument component. */\n    PaymentStreamPaymentRollConvention: 40755,\n    /** The unadjusted first payment date. */\n    PaymentStreamFirstPaymentDateUnadjusted: 40756,\n    /** The unadjusted last regular payment date. */\n    PaymentStreamLastRegularPaymentDateUnadjusted: 40757,\n    /** Specifies the anchor date when payment dates are relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentStreamPaymentDateRelativeTo: 40758,\n    /** Time unit multiplier for the relative payment date offset. */\n    PaymentStreamPaymentDateOffsetPeriod: 40759,\n    /** Time unit multiplier for the relative initial fixing date offset. */\n    PaymentStreamPaymentDateOffsetUnit: 40760,\n    /** Specifies the anchor date when the reset dates are relative to an anchor date.\n        If the reset frequency is specified as daily this element must not be included.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentStreamResetDateRelativeTo: 40761,\n    /** The business day convention used to adjust the payment stream's reset date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    PaymentStreamResetDateBusinessDayConvention: 40762,\n    /** The business center calendar used to adjust the payment stream's reset date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PaymentStreamResetDateBusinessCenter: 40763,\n    /** Time unit multiplier for the frequency of resets. */\n    PaymentStreamResetFrequencyPeriod: 40764,\n    /** Time unit associated with the frequency of resets. */\n    PaymentStreamResetFrequencyUnit: 40765,\n    /** Used to specify the day of the week in which the reset occurs for payments that reset on a weekly basis. */\n    PaymentStreamResetWeeklyRollConvention: 40766,\n    /** Specifies the anchor date when the initial fixing date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentStreamInitialFixingDateRelativeTo: 40767,\n    /** The business day convention used to adjust the payment stream's initial fixing date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    PaymentStreamInitialFixingDateBusinessDayConvention: 40768,\n    /** The business center calendar used to adjust the payment stream's initial fixing date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PaymentStreamInitialFixingDateBusinessCenter: 40769,\n    /** Time unit multiplier for the relative initial fixing date offset. */\n    PaymentStreamInitialFixingDateOffsetPeriod: 40770,\n    /** Time unit associated with the relative initial fixing date offset. */\n    PaymentStreamInitialFixingDateOffsetUnit: 40771,\n    /** Specifies the day type of the relative initial fixing date offset. */\n    PaymentStreamInitialFixingDateOffsetDayType: 40772,\n    /** The adjusted initial fixing date. */\n    PaymentStreamInitialFixingDateAdjusted: 40773,\n    /** Specifies the anchor date when the fixing date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentStreamFixingDateRelativeTo: 40774,\n    /** The business day convention used to adjust the payment stream's fixing date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    PaymentStreamFixingDateBusinessDayConvention: 40775,\n    /** The business center calendar used to adjust the payment stream's fixing date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PaymentStreamFixingDateBusinessCenter: 40776,\n    /** Time unit multiplier for the relative fixing date offset. */\n    PaymentStreamFixingDateOffsetPeriod: 40777,\n    /** Time unit associated with the relative fixing date offset. */\n    PaymentStreamFixingDateOffsetUnit: 40778,\n    /** Specifies the day type of the relative fixing date offset. */\n    PaymentStreamFixingDateOffsetDayType: 40779,\n    /** The adjusted fixing date. */\n    PaymentStreamFixingDateAdjusted: 40780,\n    /** Time unit multiplier for the relative rate cut-off date offset. */\n    PaymentStreamRateCutoffDateOffsetPeriod: 40781,\n    /** Time unit associated with the relative rate cut-off date offset. */\n    PaymentStreamRateCutoffDateOffsetUnit: 40782,\n    /** Specifies the day type of the relative rate cut-off date offset. */\n    PaymentStreamRateCutoffDateOffsetDayType: 40783,\n    /** The rate applicable to the fixed rate payment stream. */\n    PaymentStreamRate: 40784,\n    /** The payment stream's fixed payment amount. In CDS an alternative to PaymentStreamRate(40784). */\n    PaymentStreamFixedAmount: 40785,\n    /** Specifies the currency in which PaymentStreamFixedAmount(40785) or PaymentStreamRate(40784) is denominated. Uses ISO 4271 currency codes. */\n    PaymentStreamRateOrAmountCurrency: 40786,\n    /** The future value notional is normally only required for certain non-deliverable interest rate swaps (e.g. Brazillian Real (BRL) vs. CETIP Interbank Deposit Rate (CDI)). The value is calculated as follows: Future Value Notional = Notional Amount * (1 + Fixed Rate) ^ (Fixed Rate Day Count Fraction). The currency is the same as the stream notional. */\n    PaymentStreamFutureValueNotional: 40787,\n    /** The adjusted value date of the future value amount. */\n    PaymentStreamFutureValueDateAdjusted: 40788,\n    /** The payment stream floating rate index. */\n    PaymentStreamRateIndex: 40789,\n    /** The source of the payment stream floating rate index. */\n    PaymentStreamRateIndexSource: 40790,\n    /** Time unit associated with the floating rate index. */\n    PaymentStreamRateIndexCurveUnit: 40791,\n    /** Time unit multiplier for the floating rate index. */\n    PaymentStreamRateIndexCurvePeriod: 40792,\n    /** A rate multiplier to apply to the floating rate. A multiplier schedule is expressed as explicit multipliers and dates. In the case of a schedule, the step dates may be subject to adjustment in accordance with any adjustments specified in the calculationPeriodDatesAdjustments. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    PaymentStreamRateMultiplier: 40793,\n    /** Spread from floating rate index. */\n    PaymentStreamRateSpread: 40794,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    PaymentStreamRateSpreadPositionType: 40795,\n    /** Specifies the yield calculation treatment for the index. */\n    PaymentStreamRateTreatment: 40796,\n    /** The cap rate, if any, which applies to the floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05. */\n    PaymentStreamCapRate: 40797,\n    /** Reference to the buyer of the cap rate option through its trade side. */\n    PaymentStreamCapRateBuySide: 40798,\n    /** Reference to the seller of the cap rate option through its trade side. */\n    PaymentStreamCapRateSellSide: 40799,\n    /** The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05. */\n    PaymentStreamFloorRate: 40800,\n    /** Reference to the buyer of the floor rate option through its trade side. */\n    PaymentStreamFloorRateBuySide: 40801,\n    /** Reference to the seller of the floor rate option through its trade side. */\n    PaymentStreamFloorRateSellSide: 40802,\n    /** The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. An initial rate of 5% would be represented as 0.05. */\n    PaymentStreamInitialRate: 40803,\n    /** Specifies the rounding direction. */\n    PaymentStreamFinalRateRoundingDirection: 40804,\n    /** Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7. */\n    PaymentStreamFinalRatePrecision: 40805,\n    /** When rate averaging is applicable, used to specify whether a weighted or unweighted average calculation method is to be used. */\n    PaymentStreamAveragingMethod: 40806,\n    /** The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate). */\n    PaymentStreamNegativeRateTreatment: 40807,\n    /** Time unit multiplier for the inflation lag period. The lag period is the offsetting period from the payment date which determines the reference period for which the inflation index is observed. */\n    PaymentStreamInflationLagPeriod: 40808,\n    /** Time unit associated with the inflation lag period. */\n    PaymentStreamInflationLagUnit: 40809,\n    /** The inflation lag period day type. */\n    PaymentStreamInflationLagDayType: 40810,\n    /** The method used when calculating the Inflation Index Level from multiple points - the most common is Linear. */\n    PaymentStreamInflationInterpolationMethod: 40811,\n    /** The inflation index reference source. */\n    PaymentStreamInflationIndexSource: 40812,\n    /** The current main publication source such as relevant web site or a government body. */\n    PaymentStreamInflationPublicationSource: 40813,\n    /** Initial known index level for the first calculation period. */\n    PaymentStreamInflationInitialIndexLevel: 40814,\n    /** Indicates whether a fallback bond as defined in the 2006 ISDA Inflation Derivatives Definitions, sections 1.3 and 1.8, is applicable or not. If not specified, the default value is \"Y\" (True/Yes). */\n    PaymentStreamInflationFallbackBondApplicable: 40815,\n    /** The method of Forward Rate Agreement (FRA) discounting, if any, that will apply. */\n    PaymentStreamFRADiscounting: 40816,\n    /** The non-deliverable settlement reference currency. Uses ISO 4217 currency codes. */\n    PaymentStreamNonDeliverableRefCurrency: 40817,\n    /** The business day convention used to adjust the payment stream's fixing date for the non-deliverable settlement terms. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component */\n    PaymentStreamNonDeliverableFixingDatesBusinessDayConvention: 40818,\n    /** The business center calendar used to adjust the payment stream's fixing date for the non-deliverable terms, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PaymentStreamNonDeliverableFixingDatesBusinessCenter: 40819,\n    /** Specifies the anchor date when the non-deliverable fixing dates are relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentStreamNonDeliverableFixingDatesRelativeTo: 40820,\n    /** Time unit multiplier for the relative non-deliverable fixing date offset. */\n    PaymentStreamNonDeliverableFixingDatesOffsetPeriod: 40821,\n    /** Time unit associated with the relative non-deliverable fixing date offset. */\n    PaymentStreamNonDeliverableFixingDatesOffsetUnit: 40822,\n    /** Specifies the day type of the relative non-deliverable fixing date offset. */\n    PaymentStreamNonDeliverableFixingDatesOffsetDayType: 40823,\n    /** Identifies the reference \"page\" from the rate source.\n        When UnderlyingPaymentStreamNonDeliverableSettlRateSource(40661) = 3(ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option */\n    UnderlyingPaymentStreamNonDeliverableSettlReferencePage: 40824,\n    /** Number of Fixing dates in the repeating group */\n    NoNonDeliverableFixingDates: 40825,\n    /** Non-deliverable fixing date unadjusted or adjusted depending on NonDeliverableFixingDateType(40827). */\n    NonDeliverableFixingDate: 40826,\n    /** Specifies the type of date (e.g. adjusted for holidays). */\n    NonDeliverableFixingDateType: 40827,\n    /** Number of swap schedules in the repeating group */\n    NoPaymentSchedules: 40828,\n    /** Type of schedule. */\n    PaymentScheduleType: 40829,\n    /** Indicates to which stub this schedule applies. */\n    PaymentScheduleStubType: 40830,\n    /** The date on which the value is adjusted, or calculated if a future value notional for certain non-deliverable interest rate swaps (e.g. Brazillian Real (BRL) vs. CETIP Interbank Deposit Rate (CDI)), or the start date of a cashflow payment. */\n    PaymentScheduleStartDateUnadjusted: 40831,\n    /** The unadjusted end date of a cash flow payment. */\n    PaymentScheduleEndDateUnadjusted: 40832,\n    /** The side of the party paying the step schedule. */\n    PaymentSchedulePaySide: 40833,\n    /** The side of the party receiving the stepf schedule. */\n    PaymentScheduleReceiveSide: 40834,\n    /** The notional value for this step, or amount of a cashflow payment. */\n    PaymentScheduleNotional: 40835,\n    /** The currency for this step. Uses ISO 4217 currency codes. */\n    PaymentScheduleCurrency: 40836,\n    /** The rate value for this step schedule. */\n    PaymentScheduleRate: 40837,\n    /** A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    PaymentScheduleRateMultiplier: 40838,\n    /** The spread value for this step schedule. */\n    PaymentScheduleRateSpread: 40839,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    PaymentScheduleRateSpreadPositionType: 40840,\n    /** Specifies the yield calculation treatment for the step schedule. */\n    PaymentScheduleRateTreatment: 40841,\n    /** The explicit payment amount for this step schedule. */\n    PaymentScheduleFixedAmount: 40842,\n    /** The currency of the fixed amount. Uses ISO 4217 currency codes. */\n    PaymentScheduleFixedCurrency: 40843,\n    /** Time unit multiplier for the step frequency. */\n    PaymentScheduleStepFrequencyPeriod: 40844,\n    /** Time unit associated with the step frequency. */\n    PaymentScheduleStepFrequencyUnit: 40845,\n    /** The explicit amount that the notional changes on each step date. This can be a positive or negative amount. */\n    PaymentScheduleStepOffsetValue: 40846,\n    /** The percentage by which the notional changes on each step date. The percentage is either a percentage applied to the initial notional amount or the previous outstanding notional, depending on the value specified in PaymentScheduleStepRelativeTo(40849). The percentage can be either positive or negative. */\n    PaymentScheduleStepRate: 40847,\n    /** The explicit amount that the rate changes on each step date. This can be a positive or negative value. */\n    PaymentScheduleStepOffsetRate: 40848,\n    /** Specifies whether the PaymentScheduleStepRate(40847) or PaymentScheduleStepOffsetValue(40846) should be applied to the initial notional or the previous notional in order to calculate the notional step change amount. */\n    PaymentScheduleStepRelativeTo: 40849,\n    /** The unadjusted fixing date. */\n    PaymentScheduleFixingDateUnadjusted: 40850,\n    /** Floating rate observation weight for cashflow payment. */\n    PaymentScheduleWeight: 40851,\n    /** Specifies the anchor date when the fixing date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentScheduleFixingDateRelativeTo: 40852,\n    /** The business day convention used to adjust the payment schedule's fixing date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    PaymentScheduleFixingDateBusinessDayConvention: 40853,\n    /** The business center calendar used to adjust the payment schedule's fixing date, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PaymentScheduleFixingDateBusinessCenter: 40854,\n    /** Time unit multiplier for the relative fixing date offset. */\n    PaymentScheduleFixingDateOffsetPeriod: 40855,\n    /** Time unit associated with the relative fixing date offset. */\n    PaymentScheduleFixingDateOffsetUnit: 40856,\n    /** Specifies the day type of the relative fixing date offset. */\n    PaymentScheduleFixingDateOffsetDayType: 40857,\n    /** The adjusted fixing date. */\n    PaymentScheduleFixingDateAdjusted: 40858,\n    /** The fixing time associated with the step schedule. */\n    PaymentScheduleFixingTime: 40859,\n    /** Business center for determining fixing time.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PaymentScheduleFixingTimeBusinessCenter: 40860,\n    /** Specifies the anchor date when the interim exchange payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentScheduleInterimExchangePaymentDateRelativeTo: 40861,\n    /** The business day convention used to adjust the payment schedule's interim exchange date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    PaymentScheduleInterimExchangeDatesBusinessDayConvention: 40862,\n    /** The business center calendar used to adjust the payment schedule's interim exchange date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PaymentScheduleInterimExchangeDatesBusinessCenter: 40863,\n    /** Time unit multiplier for the relative interim exchange date offset. */\n    PaymentScheduleInterimExchangeDatesOffsetPeriod: 40864,\n    /** Time unit associated with the relative interim exchange date offset. */\n    PaymentScheduleInterimExchangeDatesOffsetUnit: 40865,\n    /** Specifies the day type of the relative interim exchange date offset. */\n    PaymentScheduleInterimExchangeDatesOffsetDayType: 40866,\n    /** The adjusted interim exchange date. */\n    PaymentScheduleInterimExchangeDateAdjusted: 40867,\n    /** Number of swap schedule rate sources. */\n    NoPaymentScheduleRateSources: 40868,\n    /** Identifies the source of rate information. */\n    PaymentScheduleRateSource: 40869,\n    /** Rate source type. */\n    PaymentScheduleRateSourceType: 40870,\n    /** Identifies the reference \u201Cpage\u201D from the rate source.\n        For FX, the reference page to the spot rate to be used for the reference FX spot rate.\n        When RateSource(1446) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option */\n    PaymentScheduleReferencePage: 40871,\n    /** Number of stubs in the repeating group */\n    NoPaymentStubs: 40872,\n    /** Stub type. */\n    PaymentStubType: 40873,\n    /** Optional indication whether stub is shorter or longer than the regular swap period. */\n    PaymentStubLength: 40874,\n    /** The agreed upon fixed rate for this stub. */\n    PaymentStubRate: 40875,\n    /** A fixed payment amount for the stub. */\n    PaymentStubFixedAmount: 40876,\n    /** The currency of the fixed payment amount. Uses ISO 4217 currency codes. */\n    PaymentStubFixedCurrency: 40877,\n    /** The stub floating rate index. */\n    PaymentStubIndex: 40878,\n    /** The source of the stub floating rate index. */\n    PaymentStubIndexSource: 40879,\n    /** Time unit multiplier for the stub floating rate index. */\n    PaymentStubIndexCurvePeriod: 40880,\n    /** Time unit associated with the stub floating rate index. */\n    PaymentStubIndexCurveUnit: 40881,\n    /** A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    PaymentStubIndexRateMultiplier: 40882,\n    /** Spread from floating rate index. */\n    PaymentStubIndexRateSpread: 40883,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    PaymentStubIndexRateSpreadPositionType: 40884,\n    /** Specifies the yield calculation treatment for the payment stub index. */\n    PaymentStubIndexRateTreatment: 40885,\n    /** The cap rate, if any, which applies to the floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05. */\n    PaymentStubIndexCapRate: 40886,\n    /** Reference to the buyer of the cap rate option through its trade side. */\n    PaymentStubIndexCapRateBuySide: 40887,\n    /** Reference to the seller of the cap rate option through its trade side. */\n    PaymentStubIndexCapRateSellSide: 40888,\n    /** The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05. */\n    PaymentStubIndexFloorRate: 40889,\n    /** Reference to the buyer of the floor rate option through its trade side. */\n    PaymentStubIndexFloorRateBuySide: 40890,\n    /** Reference to the seller of the floor rate option through its trade side. */\n    PaymentStubIndexFloorRateSellSide: 40891,\n    /** The second stub floating rate index. */\n    PaymentStubIndex2: 40892,\n    /** The source of the second stub floating rate index. */\n    PaymentStubIndex2Source: 40893,\n    /** Secondary time unit multiplier for the stub floating rate index curve. */\n    PaymentStubIndex2CurvePeriod: 40894,\n    /** Secondary time unit associated with the stub floating rate index curve. */\n    PaymentStubIndex2CurveUnit: 40895,\n    /** A rate multiplier to apply to the second floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    PaymentStubIndex2RateMultiplier: 40896,\n    /** Spread from the second floating rate index. */\n    PaymentStubIndex2RateSpread: 40897,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    PaymentStubIndex2RateSpreadPositionType: 40898,\n    /** Specifies the yield calculation treatment for the second stub index. */\n    PaymentStubIndex2RateTreatment: 40899,\n    /** The cap rate, if any, which applies to the second floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05. */\n    PaymentStubIndex2CapRate: 40900,\n    /** The floor rate, if any, which applies to the second floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05. */\n    PaymentStubIndex2FloorRate: 40901,\n    /** Number of settlement rate fallbacks in the repeating group */\n    NoLegSettlRateFallbacks: 40902,\n    /** The maximum number of days to wait for a quote from the disrupted settlement rate option before proceding to this method. */\n    LegSettlRatePostponementMaximumDays: 40903,\n    /** Identifies the source of rate information. */\n    UnderlyingSettlRateFallbackRateSource: 40904,\n    /** Indicates whether to request a settlement rate quote from the market. */\n    LegSettlRatePostponementSurvey: 40905,\n    /** Used to identify the settlement rate postponement calculation agent. */\n    LegSettlRatePostponementCalculationAgent: 40906,\n    /** The unadjusted effective date. */\n    StreamEffectiveDateUnadjusted: 40907,\n    /** The business day convention used to adjust the instrument's stream's effective, or relative effective, date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    StreamEffectiveDateBusinessDayConvention: 40908,\n    /** The business center calendar used to adjust the instrument's stream's effective, or relative effective, date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    StreamEffectiveDateBusinessCenter: 40909,\n    /** Specifies the anchor date when the effective date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    StreamEffectiveDateRelativeTo: 40910,\n    /** Time unit multiplier for the relative effective date offset. */\n    StreamEffectiveDateOffsetPeriod: 40911,\n    /** Time unit associated with the relative effective date offset. */\n    StreamEffectiveDateOffsetUnit: 40912,\n    /** Specifies the day type of the relative effective date offset. */\n    StreamEffectiveDateOffsetDayType: 40913,\n    /** The adjusted effective date. */\n    StreamEffectiveDateAdjusted: 40914,\n    /** Identifies the reference \"page\" from the rate source.\n        When UnderlyingSettlRateFallbackRateSource(40904) = 3(ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option */\n    UnderlyingSettlRateFallbackReferencePage: 40915,\n    /** The number of business days between successive valuation dates when multiple valuation dates are applicable for cash settlement.\n        Associated with ISDA 2003 Term: Valuation Date */\n    CashSettlValuationSubsequentBusinessDaysOffset: 40916,\n    /** Where multiple valuation dates are specified as being applicable for cash settlement, this specifies the number of applicable valuation dates.\n        Associated with ISDA 2003 Term: Valuation Date */\n    CashSettlNumOfValuationDates: 40917,\n    /** Used to further qualify the value of UnderlyingProvisionPartyRole(42176). */\n    UnderlyingProvisionPartyRoleQualifier: 40918,\n    /** Specifies the type of price for PaymentPrice(40218). */\n    PaymentPriceType: 40919,\n    /** Specifies the day type of the relative payment date offset. */\n    PaymentStreamPaymentDateOffsetDayType: 40920,\n    /** The business day convention used for adjusting dates. The value defined here applies to all adjustable dates in the instrument unless specifically overridden. */\n    BusinessDayConvention: 40921,\n    /** The convention for determining a sequence of dates. It is used in conjunction with a specified frequency. The value defined here applies to all adjustable dates in the instrument unless specifically overridden. Additional values may be used by mutual agreement of the counterparties. */\n    DateRollConvention: 40922,\n    /** Number of business centers in the repeating group. */\n    NoLegBusinessCenters: 40923,\n    /** A business center whose calendar is used for date adjustment, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegBusinessCenter: 40924,\n    /** The business day convention used for adjusting dates. The value defined here applies to all adjustable dates in the instrument leg unless specifically overridden. */\n    LegBusinessDayConvention: 40925,\n    /** The convention for determining a sequence of dates. It is used in conjunction with a specified frequency. The value defined here applies to all adjustable dates in the instrument leg unless specifically overridden. */\n    LegDateRollConvention: 40926,\n    /** Number of business centers in the repeating group. */\n    NoLegPaymentScheduleFixingDateBusinessCenters: 40927,\n    /** Number of business centers in the repeating group. */\n    NoLegPaymentScheduleInterimExchangeDateBusinessCenters: 40928,\n    /** Number of business centers in the repeating group. */\n    NoLegPaymentStreamNonDeliverableFixingDateBusinessCenters: 40929,\n    /** Number of business centers in the repeating group. */\n    NoLegPaymentStreamPaymentDateBusinessCenters: 40930,\n    /** Number of business centers in the repeating group. */\n    NoLegPaymentStreamResetDateBusinessCenters: 40931,\n    /** Number of business centers in the repeating group. */\n    NoLegPaymentStreamInitialFixingDateBusinessCenters: 40932,\n    /** Number of business centers in the repeating group. */\n    NoLegPaymentStreamFixingDateBusinessCenters: 40933,\n    /** Number of business centers in the repeating group. */\n    NoLegProvisionCashSettlPaymentDateBusinessCenters: 40934,\n    /** Number of business centers in the repeating group. */\n    NoLegProvisionCashSettlValueDateBusinessCenters: 40935,\n    /** Number of business centers in the repeating group. */\n    NoLegProvisionOptionExerciseBusinessCenters: 40936,\n    /** Number of business centers in the repeating group. */\n    NoLegProvisionOptionExpirationDateBusinessCenters: 40937,\n    /** Number of business centers in the repeating group. */\n    NoLegProvisionOptionRelevantUnderlyingDateBusinessCenters: 40938,\n    /** Number of business centers in the repeating group. */\n    NoLegProvisionDateBusinessCenters: 40939,\n    /** Number of business centers in the repeating group. */\n    NoLegStreamCalculationPeriodBusinessCenters: 40940,\n    /** Number of business centers in the repeating group. */\n    NoLegStreamFirstPeriodStartDateBusinessCenters: 40941,\n    /** Number of business centers in the repeating group. */\n    NoLegStreamEffectiveDateBusinessCenters: 40942,\n    /** Number of business centers in the repeating group. */\n    NoLegStreamTerminationDateBusinessCenters: 40943,\n    /** Number of business centers in the repeating group. */\n    NoPaymentBusinessCenters: 40944,\n    /** Number of business centers in the repeating group. */\n    NoPaymentScheduleInterimExchangeDateBusinessCenters: 40945,\n    /** Number of business centers in the repeating group. */\n    NoPaymentStreamNonDeliverableFixingDatesBusinessCenters: 40946,\n    /** Number of business centers in the repeating group. */\n    NoPaymentStreamPaymentDateBusinessCenters: 40947,\n    /** Number of business centers in the repeating group. */\n    NoPaymentStreamResetDateBusinessCenters: 40948,\n    /** Number of business centers in the repeating group. */\n    NoPaymentStreamInitialFixingDateBusinessCenters: 40949,\n    /** Number of business centers in the repeating group. */\n    NoPaymentStreamFixingDateBusinessCenters: 40950,\n    /** Number of event news sources in the repeating group. */\n    NoProtectionTermEventNewsSources: 40951,\n    /** Number of business centers in the repeating group. */\n    NoProvisionCashSettlPaymentDateBusinessCenters: 40952,\n    /** Number of business centers in the repeating group. */\n    NoProvisionCashSettlValueDateBusinessCenters: 40953,\n    /** Number of business centers in the repeating group. */\n    NoProvisionOptionExerciseBusinessCenters: 40954,\n    /** Number of business centers in the repeating group. */\n    NoProvisionOptionExpirationDateBusinessCenters: 40955,\n    /** Number of business centers in the repeating group. */\n    NoProvisionOptionRelevantUnderlyingDateBusinessCenters: 40956,\n    /** Number of business centers in the repeating group. */\n    NoProvisionDateBusinessCenters: 40957,\n    /** Number of business centers in the repeating group. */\n    NoStreamCalculationPeriodBusinessCenters: 40958,\n    /** Number of business centers in the repeating group. */\n    NoStreamFirstPeriodStartDateBusinessCenters: 40959,\n    /** Number of business centers in the repeating group. */\n    NoStreamEffectiveDateBusinessCenters: 40960,\n    /** Number of business centers in the repeating group. */\n    NoStreamTerminationDateBusinessCenters: 40961,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingBusinessCenters: 40962,\n    /** A business center whose calendar is used for date adjustment, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingBusinessCenter: 40963,\n    /** The business day convention used for adjusting dates. The value defined here applies to all adjustable dates in the underlying instrument unless specifically overridden. */\n    UnderlyingBusinessDayConvention: 40964,\n    /** The convention for determining a sequence of dates. It is used in conjunction with a specified frequency. The value defined here applies to all adjustable dates in the underlying instrument unless specifically overridden. */\n    UnderlyingDateRollConvention: 40965,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingPaymentScheduleFixingDateBusinessCenters: 40966,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingPaymentScheduleInterimExchangeDateBusinessCenters: 40967,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingPaymentStreamNonDeliverableFixingDatesBizCenters: 40968,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingPaymentStreamPaymentDateBusinessCenters: 40969,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingPaymentStreamResetDateBusinessCenters: 40970,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingPaymentStreamInitialFixingDateBusinessCenters: 40971,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingPaymentStreamFixingDateBusinessCenters: 40972,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingStreamCalculationPeriodBusinessCenters: 40973,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingStreamFirstPeriodStartDateBusinessCenters: 40974,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingStreamEffectiveDateBusinessCenters: 40975,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingStreamTerminationDateBusinessCenters: 40976,\n    /** Number of business centers in the repeating group. */\n    NoPaymentScheduleFixingDateBusinessCenters: 40977,\n    /** Byte length of encoded (non-ASCII characters) EncodedLegStreamText(40979) field. */\n    EncodedLegStreamTextLen: 40978,\n    /** Encoded (non-ASCII characters) representation of the LegStreamText(40248) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegStreamText(40248) field. */\n    EncodedLegStreamText: 40979,\n    /** Byte length of encoded (non-ASCII characters) EncodedLegProvisionText(40472) field. */\n    EncodedLegProvisionTextLen: 40980,\n    /** Encoded (non-ASCII characters) representation of the LegProvisionText(40472) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegProvisionText(40472) field. */\n    EncodedLegProvisionText: 40981,\n    /** Byte length of encoded (non-ASCII characters) EncodedStreamText(40983) field. */\n    EncodedStreamTextLen: 40982,\n    /** Encoded (non-ASCII characters) representation of the StreamText(40056) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the StreamText(40056) field. */\n    EncodedStreamText: 40983,\n    /** Byte length of encoded (non-ASCII characters) EncodedPaymentText(40985) field. */\n    EncodedPaymentTextLen: 40984,\n    /** Encoded (non-ASCII characters) representation of the PaymentText(40229) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the PaymentText(40229) field. */\n    EncodedPaymentText: 40985,\n    /** Byte length of encoded (non-ASCII characters) EncodedProvisionText(40987) field. */\n    EncodedProvisionTextLen: 40986,\n    /** Encoded (non-ASCII characters) representation of the ProvisionText(40113) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the ProvisionText(40113) field. */\n    EncodedProvisionText: 40987,\n    /** Byte length of encoded (non-ASCII characters) EncodedUnderlyingStreamText(40989) field. */\n    EncodedUnderlyingStreamTextLen: 40988,\n    /** Encoded (non-ASCII characters) representation of the UnderlyingStreamText(40547) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingStreamText(40547) field. */\n    EncodedUnderlyingStreamText: 40989,\n    /** Applicable value for LegMarketDisruptionFallbackType(41470). */\n    LegMarketDisruptionFallbackValue: 40990,\n    /** Applicable value for MarketDisruptionEvent(41093). */\n    MarketDisruptionValue: 40991,\n    /** Applicable value for MarketDisruptionFallbackType(41095). */\n    MarketDisruptionFallbackValue: 40992,\n    /** Used to further clarify the value of PaymentType(40213). */\n    PaymentSubType: 40993,\n    /** The number of averaging observations in the repeating group. */\n    NoComplexEventAveragingObservations: 40994,\n    /** Cross reference to the ordinal observation as specified either in the ComplexEventScheduleGrp or ComplexEventPeriodDateGrp components. */\n    ComplexEventAveragingObservationNumber: 40995,\n    /** The weight factor to be applied to the observation. */\n    ComplexEventAveragingWeight: 40996,\n    /** The number of credit events specified in the repeating group. */\n    NoComplexEventCreditEvents: 40997,\n    /** Specifies the type of credit event.\n        See http://www.fixtradingcommunity.org/codelists#Credit_Event_Types for code list of applicable event types. */\n    ComplexEventCreditEventType: 40998,\n    /** The credit event value appropriate to ComplexEventCreditEventType(40998).\n        See http://www.fixtradingcommunity.org/codelists#Credit_Event_Types for applicable event type values. */\n    ComplexEventCreditEventValue: 40999,\n    /** Specifies the applicable currency when ComplexEventCreditEventValue(40999) is an amount. Uses ISO 4217 currency codes. */\n    ComplexEventCreditEventCurrency: 41000,\n    /** Time unit multiplier for complex credit events. */\n    ComplexEventCreditEventPeriod: 41001,\n    /** Time unit associated with complex credit events. */\n    ComplexEventCreditEventUnit: 41002,\n    /** Specifies the day type for the complex credit events. */\n    ComplexEventCreditEventDayType: 41003,\n    /** Identifies the source of rate information used for credit events.\n        See http://www.fixtradingcommunity.org/codelists#Credit_Event_Rate_Source for code list of applicable sources. */\n    ComplexEventCreditEventRateSource: 41004,\n    /** The number of qualifiers in the repeating group. */\n    NoComplexEventCreditEventQualifiers: 41005,\n    /** Specifies a complex event qualifier. Used to further qualify ComplexEventCreditEventType(40998). */\n    ComplexEventCreditEventQualifier: 41006,\n    /** The number of entries in the date-time repeating group. */\n    NoComplexEventPeriodDateTimes: 41007,\n    /** The averaging date for an Asian option.\n        The trigger date for a Barrier or Knock option. */\n    ComplexEventPeriodDate: 41008,\n    /** The averaging time for an Asian option. */\n    ComplexEventPeriodTime: 41009,\n    /** The number of periods in the repeating group. */\n    NoComplexEventPeriods: 41010,\n    /** Specifies the period type. */\n    ComplexEventPeriodType: 41011,\n    /** The business center used to determine dates and times in the schedule or date-time group.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ComplexEventBusinessCenter: 41012,\n    /** The number of rate sources in the repeating group. */\n    NoComplexEventRateSources: 41013,\n    /** Identifies the source of rate information.\n        For FX, the reference source to be used for the FX spot rate. */\n    ComplexEventRateSource: 41014,\n    /** Indicates whether the rate source specified is a primary or secondary source. */\n    ComplexEventRateSourceType: 41015,\n    /** Identifies the reference page from the rate source.\n        For FX, the reference page to the spot rate is to be used for the reference FX spot rate.\n        When ComplexEventRateSource(41014) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option. */\n    ComplexEventReferencePage: 41016,\n    /** Identifies the reference page heading from the rate source. */\n    ComplexEventReferencePageHeading: 41017,\n    /** The number of business centers in the repeating group. */\n    NoComplexEventDateBusinessCenters: 41018,\n    /** The business center calendar used to adjust the complex event date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ComplexEventDateBusinessCenter: 41019,\n    /** The unadjusted complex event date.\n        For example the second expiration date for a calendar spread option strategy. */\n    ComplexEventDateUnadjusted: 41020,\n    /** Specifies the anchor date when the complex event date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    ComplexEventDateRelativeTo: 41021,\n    /** Time unit multiplier for the relative date offset. */\n    ComplexEventDateOffsetPeriod: 41022,\n    /** Time unit associated with the relative date offset. */\n    ComplexEventDateOffsetUnit: 41023,\n    /** Specifies the day type of the relative date offset. */\n    ComplexEventDateOffsetDayType: 41024,\n    /** The business day convention used to adjust the complex event date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    ComplexEventDateBusinessDayConvention: 41025,\n    /** The adjusted complex event date. */\n    ComplexEventDateAdjusted: 41026,\n    /** The local market fixing time. */\n    ComplexEventFixingTime: 41027,\n    /** The business center calendar used to determine the actual fixing times.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ComplexEventFixingTimeBusinessCenter: 41028,\n    /** Number of event sources in the repeating group. */\n    NoComplexEventCreditEventSources: 41029,\n    /** A newspaper or electronic news service that may publish relevant information used in the determination of whether or not a credit event has occurred. */\n    ComplexEventCreditEventSource: 41030,\n    /** Number of schedules in the repeating group. */\n    NoComplexEventSchedules: 41031,\n    /** The start date of the schedule. */\n    ComplexEventScheduleStartDate: 41032,\n    /** The end date of the schedule. */\n    ComplexEventScheduleEndDate: 41033,\n    /** Time unit multiplier for the schedule date frequency. */\n    ComplexEventScheduleFrequencyPeriod: 41034,\n    /** Time unit associated with the schedule date frequency. */\n    ComplexEventScheduleFrequencyUnit: 41035,\n    /** The convention for determining the sequence of dates. It is used in conjunction with a specified frequency. Used only to override the roll convention defined in the DateAdjustment component in Instrument. */\n    ComplexEventScheduleRollConvention: 41036,\n    /** Number of delivery schedules in the repeating group. */\n    NoDeliverySchedules: 41037,\n    /** Specifies the type of delivery schedule. */\n    DeliveryScheduleType: 41038,\n    /** Identifier for this instance of delivery schedule for cross referencing elsewhere in the message. */\n    DeliveryScheduleXID: 41039,\n    /** Physical delivery quantity. */\n    DeliveryScheduleNotional: 41040,\n    /** Specifies the delivery quantity unit of measure (UOM). */\n    DeliveryScheduleNotionalUnitOfMeasure: 41041,\n    /** The frequency of notional delivery. */\n    DeliveryScheduleNotionalCommodityFrequency: 41042,\n    /** Specifies the negative tolerance value. The value may be an absolute quantity or a percentage, as specified in DeliveryScheduleToleranceType(41046). Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%). */\n    DeliveryScheduleNegativeTolerance: 41043,\n    /** Specifies the positive tolerance value. The value may be an absolute quantity or a percentage, as specified in DeliveryScheduleToleranceType(41046). Value may exceed agreed upon value. Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%). */\n    DeliverySchedulePositiveTolerance: 41044,\n    /** Specifies the tolerance value's unit of measure (UOM). */\n    DeliveryScheduleToleranceUnitOfMeasure: 41045,\n    /** Specifies the tolerance value type. */\n    DeliveryScheduleToleranceType: 41046,\n    /** Specifies the country where delivery takes place. Uses ISO 3166 2-character country code. */\n    DeliveryScheduleSettlCountry: 41047,\n    /** Delivery timezone specified as \"prevailing\" rather than \"standard\" or \"daylight\".\n        See http://www.fixtradingcommunity.org/codelists#Prevailing_Timezones for code list of applicable prevailing timezones. */\n    DeliveryScheduleSettlTimeZone: 41048,\n    /** Specifies the commodity delivery flow type. */\n    DeliveryScheduleSettlFlowType: 41049,\n    /** Indicates whether holidays are included in the settlement periods. Required for electricity contracts. */\n    DeliveryScheduleSettlHolidaysProcessingInstruction: 41050,\n    /** Number of delivery schedules in the repeating group. */\n    NoDeliveryScheduleSettlDays: 41051,\n    /** Specifies the day or group of days for delivery. */\n    DeliveryScheduleSettlDay: 41052,\n    /** The sum of the total hours specified in the DeliveryScheduleSettlTimeGrp component. */\n    DeliveryScheduleSettlTotalHours: 41053,\n    /** Number of hour ranges in the repeating group. */\n    NoDeliveryScheduleSettlTimes: 41054,\n    /** The scheduled start time for the delivery of the commodity where delivery occurs over specified times. The format of the time value is specified in DeliveryScheduleSettlTimeType(41057). */\n    DeliveryScheduleSettlStart: 41055,\n    /** The scheduled end time for the delivery of the commodity where delivery occurs over specified times. The format of the time value is specified in DeliveryScheduleSettlTimeType(41057). */\n    DeliveryScheduleSettlEnd: 41056,\n    /** Specifies the format of the delivery start and end time values. */\n    DeliveryScheduleSettlTimeType: 41057,\n    /** Specifies the type of delivery stream. */\n    DeliveryStreamType: 41058,\n    /** The name of the oil delivery pipeline. */\n    DeliveryStreamPipeline: 41059,\n    /** The point at which the commodity will enter the delivery mechanism or pipeline. */\n    DeliveryStreamEntryPoint: 41060,\n    /** The point at which the commodity product will be withdrawn prior to delivery. */\n    DeliveryStreamWithdrawalPoint: 41061,\n    /** The point at which the commodity product will be delivered and received. Value specified should follow market convention appropriate for the commodity product.\n        For bullion, see http://www.fpml.org/coding-scheme/bullion-delivery-location for values. */\n    DeliveryStreamDeliveryPoint: 41062,\n    /** Specifies under what conditions the buyer and seller should be excused of their delivery obligations. */\n    DeliveryStreamDeliveryRestriction: 41063,\n    /** Specifies the electricity delivery contingency.\n        See http://www.fpml.org/coding-scheme/electricity-transmission-contingency for values. */\n    DeliveryStreamDeliveryContingency: 41064,\n    /** The trade side value of the party responsible for electricity delivery contingency. */\n    DeliveryStreamDeliveryContingentPartySide: 41065,\n    /** When this element is specified and set to 'Y', delivery of the coal product is to be at its source. */\n    DeliveryStreamDeliverAtSourceIndicator: 41066,\n    /** Specifies how the parties to the trade apportion responsibility for the delivery of the commodity product.\n        See http://www.fixtradingcommunity.org/codelists#Risk_Apportionment for the details of the external code list. */\n    DeliveryStreamRiskApportionment: 41067,\n    /** Specifies the title transfer location. */\n    DeliveryStreamTitleTransferLocation: 41068,\n    /** Specifies the condition of title transfer. */\n    DeliveryStreamTitleTransferCondition: 41069,\n    /** A party, not necessarily of the trade, who is the Importer of Record for the purposes of paying customs duties and applicable taxes or costs related to importation. */\n    DeliveryStreamImporterOfRecord: 41070,\n    /** Specifies the negative tolerance value. The value may be an absolute quantity or a percentage, as specified in DeliveryStreamToleranceType(41074). Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%). */\n    DeliveryStreamNegativeTolerance: 41071,\n    /** Specifies the positive tolerance value. The value may be an absolute quantity or a percentage, as specified in DeliveryStreamToleranceType(41074). Value may exceed agreed upon value. Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%). */\n    DeliveryStreamPositiveTolerance: 41072,\n    /** Specifies the tolerance value's unit of measure (UOM). */\n    DeliveryStreamToleranceUnitOfMeasure: 41073,\n    /** Specifies the tolerance value type. */\n    DeliveryStreamToleranceType: 41074,\n    /** Indicates whether the tolerance is at the seller's or buyer's option. */\n    DeliveryStreamToleranceOptionSide: 41075,\n    /** The positive percent tolerance which applies to the total quantity delivered over all shipment periods.\n        Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%.). */\n    DeliveryStreamTotalPositiveTolerance: 41076,\n    /** The negative percent tolerance which applies to the total quantity delivered over all shipment periods.\n        Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%.). */\n    DeliveryStreamTotalNegativeTolerance: 41077,\n    /** If the notional quantity is specified in a unit that does not match the unit in which the commodity reference price is quoted, the scaling or conversion factor used to convert the commodity reference price unit into the notional quantity unit should be stated here. If there is no conversion, this field is not intended to be used. */\n    DeliveryStreamNotionalConversionFactor: 41078,\n    /** The transportation equipment with which the commodity product will be delivered and received.\n        Examples of transportation equipment or mode are barge, truck, railcar, etc. */\n    DeliveryStreamTransportEquipment: 41079,\n    /** A reference to the party able to choose whether the gas is delivered for a particular period as found in a swing or interruptible contract. */\n    DeliveryStreamElectingPartySide: 41080,\n    /** Number of delivery cycles in the repeating group. */\n    NoDeliveryStreamCycles: 41081,\n    /** The delivery cycles during which the oil product will be transported in the pipeline. */\n    DeliveryStreamCycleDesc: 41082,\n    /** Byte length of encoded (non-ASCII characters) EncodedDeliveryStreamCycleDesc(41084) field. */\n    EncodedDeliveryStreamCycleDescLen: 41083,\n    /** Encoded (non-ASCII characters) representation of the DeliveryStreamCycleDesc(41082) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the DeliveryStreamCycleDesc(41082) field. */\n    EncodedDeliveryStreamCycleDesc: 41084,\n    /** Number of commodity sources in the repeating group. */\n    NoDeliveryStreamCommoditySources: 41085,\n    /** The SCoTA coal cargo origin, mining region, mine(s), mining complex(es), loadout(s) or river dock(s) or other point(s) of origin that seller and buyer agree are acceptable origins for the coal product. For international coal transactions, this is the origin of the coal product.\n        See http://www.fpml.org/coding-scheme/commodity-coal-product-source for values. */\n    DeliveryStreamCommoditySource: 41086,\n    /** The consequences of market disruption events. */\n    MarketDisruptionProvision: 41087,\n    /** Specifies the location of the fallback provision documentation. */\n    MarketDisruptionFallbackProvision: 41088,\n    /** Specifies the maximum number of market disruption days (commodity or bullion business days) in a contract or confirmation. If none are specified, the maximum number of market disruption days is five (5).\n        ISDA 2005 Commodity Definition. */\n    MarketDisruptionMaximumDays: 41089,\n    /** Used when a price materiality percentage applies to the price source disruption event and this event has been specified.\n        Applicable to 2005 Commodity Definitions only. */\n    MarketDisruptionMaterialityPercentage: 41090,\n    /** Specifies the minimum futures contracts level that dictates whether or not a 'De Minimis Trading' event has occurred.\n        Applicable to 1993 Commodity Definitions only. */\n    MarketDisruptionMinimumFuturesContracts: 41091,\n    /** Number of disruption events in the repeating group. */\n    NoMarketDisruptionEvents: 41092,\n    /** Specifies the market disruption event.\n        For commodities see http://www.fpml.org/coding-scheme/commodity-market-disruption for values.\n        For foreign exchange, see http://www.fixtradingcommunity.org/codelists#Market_Disruption_Event for code list of applicable event types. */\n    MarketDisruptionEvent: 41093,\n    /** Number of fallbacks in the repeating group. */\n    NoMarketDisruptionFallbacks: 41094,\n    /** Specifies the type of disruption fallback.\n        See http://www.fpml.org/coding-scheme/commodity-market-disruption-fallback for values. */\n    MarketDisruptionFallbackType: 41095,\n    /** Number of fallback reference securities in the repeating group. */\n    NoMarketDisruptionFallbackReferencePrices: 41096,\n    /** The type of reference price underlier. */\n    MarketDisruptionFallbackUnderlierType: 41097,\n    /** Specifies the identifier value of the security. */\n    MarketDisruptionFallbackUnderlierSecurityID: 41098,\n    /** Specifies the class or source scheme of the security identifier. */\n    MarketDisruptionFallbackUnderlierSecurityIDSource: 41099,\n    /** Specifies the description of the underlying security. */\n    MarketDisruptionFallbackUnderlierSecurityDesc: 41100,\n    /** Byte length of encoded (non-ASCII characters) EncodedMarketDisruptionFallbackUnderlierSecurityDesc(41102) field. */\n    EncodedMarketDisruptionFallbackUnderlierSecurityDescLen: 41101,\n    /** Encoded (non-ASCII characters) representation of the MarketDisruptionFallbackUnderlierSecurityDesc(41100) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the MarketDisruptionFallbackUnderlierSecurityDesc(41100) field. */\n    EncodedMarketDisruptionFallbackUnderlierSecurityDesc: 41102,\n    /** If there are multiple underlying assets, this specifies the number of units (index or securities) that constitute the underlier of the swap. In the case of a basket swap, this is used to reference both the number of basket units, and the number of each asset components of the basket when these are expressed in absolute terms. */\n    MarketDisruptionFallbackOpenUnits: 41103,\n    /** Specifies the currency if the underlier is a basket. Uses ISO 4217 currency codes. */\n    MarketDisruptionFallbackBasketCurrency: 41104,\n    /** Specifies the basket divisor amount. This value is normally used to adjust the constituent weight for pricing or to adjust for dividends, or other corporate actions. */\n    MarketDisruptionFallbackBasketDivisor: 41105,\n    /** A description of the option exercise. */\n    ExerciseDesc: 41106,\n    /** Byte length of encoded (non-ASCII characters) EncodedExerciseDesc(41102) field. */\n    EncodedExerciseDescLen: 41107,\n    /** Encoded (non-ASCII characters) representation of the ExerciseDesc(41106) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the ExerciseDesc(41106) field. */\n    EncodedExerciseDesc: 41108,\n    /** Indicates (when 'Y') that exercise is automatic when the strike price is crossed or the underlying trade is in the money. */\n    AutomaticExerciseIndicator: 41109,\n    /** The threshold rate for triggering automatic exercise. */\n    AutomaticExerciseThresholdRate: 41110,\n    /** Indicates whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent. */\n    ExerciseConfirmationMethod: 41111,\n    /** Identifies the business center used for adjusting the time for manual exercise notice.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ManualNoticeBusinessCenter: 41112,\n    /** Indicates whether the notional amount of the underlying swap, not previously exercised under the option, will be automatically exercised at the expiration time on the expiration date if at such time the buyer is in-the-money, provided that the difference between the settlement rate and the fixed rate under the relevant underlying swap is not less than one tenth of a percentage point (0.10% or 0.001). */\n    FallbackExerciseIndicator: 41113,\n    /** Indicates whether the Seller may request the Buyer to confirm its intent to exercise if not done on or before the expiration time on the expiration date. If true (\"Y\") specific rules will apply in relation to the settlement mode. */\n    LimitedRightToConfirmIndicator: 41114,\n    /** Indicates in physical settlement of bond and convertible bond options whether the party required to deliver the bonds will divide those to be delivered as notifying party desires to facilitate delivery obligations. */\n    ExerciseSplitTicketIndicator: 41115,\n    /** Number of business centers in the repeating group. */\n    NoOptionExerciseBusinessCenters: 41116,\n    /** The business center calendar used to adjust the option exercise dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    OptionExerciseBusinessCenter: 41117,\n    /** The business day convention used to adjust the option exercise dates. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    OptionExerciseBusinessDayConvention: 41118,\n    /** Specifies the day type of the relative earliest option exercise date offset. */\n    OptionExerciseEarliestDateOffsetDayType: 41119,\n    /** Time unit multiplier for the relative earliest exercise date offset. */\n    OptionExerciseEarliestDateOffsetPeriod: 41120,\n    /** Time unit associated with the relative earliest exercise date offset. */\n    OptionExerciseEarliestDateOffsetUnit: 41121,\n    /** Time unit multiplier for the frequency of exercise dates. */\n    OptionExerciseFrequencyPeriod: 41122,\n    /** Time unit associated with the frequency of exercise dates. */\n    OptionExerciseFrequencyUnit: 41123,\n    /** The unadjusted start date for calculating periodic exercise dates. */\n    OptionExerciseStartDateUnadjusted: 41124,\n    /** Specifies the anchor date when the option exercise start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    OptionExerciseStartDateRelativeTo: 41125,\n    /** Time unit multiplier for the relative exercise start date offset. */\n    OptionExerciseStartDateOffsetPeriod: 41126,\n    /** Time unit associated with the relative exercise start date offset. */\n    OptionExerciseStartDateOffsetUnit: 41127,\n    /** Specifies the day type of the relative option exercise start date offset. */\n    OptionExerciseStartDateOffsetDayType: 41128,\n    /** The adjusted start date for calculating periodic exercise dates. */\n    OptionExerciseStartDateAdjusted: 41129,\n    /** The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1. */\n    OptionExerciseSkip: 41130,\n    /** Last date (adjusted) for establishing the option exercise terms. */\n    OptionExerciseNominationDeadline: 41131,\n    /** The unadjusted first exercise date. */\n    OptionExerciseFirstDateUnadjusted: 41132,\n    /** The unadjusted last exercise date. */\n    OptionExerciseLastDateUnadjusted: 41133,\n    /** The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) (i) on the expriation date, in the case of a European style option, (ii) on each Bermuda option exercise date and the expiration date, in the case of a Bermuda style option, (iii) the commencement date to, and including, the expiration date, in the case of an American option. */\n    OptionExerciseEarliestTime: 41134,\n    /** The latest exercise time. See also OptionExerciseEarliestTime(41134). */\n    OptionExerciseLatestTime: 41135,\n    /** The business center used to determine the locale for option exercise time, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values */\n    OptionExerciseTimeBusinessCenter: 41136,\n    /** Number of dates in the repeating group. */\n    NoOptionExerciseDates: 41137,\n    /** The option exercise fixed date, unadjusted or adjusted depending on OptionExerciseDateType(41139). */\n    OptionExerciseDate: 41138,\n    /** Specifies the type of date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    OptionExerciseDateType: 41139,\n    /** Number of business centers in the repeating group. */\n    NoOptionExerciseExpirationDateBusinessCenters: 41140,\n    /** The business center calendar used to adjust the option exercise expiration dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    OptionExerciseExpirationDateBusinessCenter: 41141,\n    /** The business day convention used to adjust the option exercise expiration dates. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    OptionExerciseExpirationDateBusinessDayConvention: 41142,\n    /** Specifies the anchor date when the option exercise expiration date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    OptionExerciseExpirationDateRelativeTo: 41143,\n    /** Time unit multiplier for the relative exercise expiration date offset. */\n    OptionExerciseExpirationDateOffsetPeriod: 41144,\n    /** Time unit associated with the relative exercise expiration date offset. */\n    OptionExerciseExpirationDateOffsetUnit: 41145,\n    /** Time unit multiplier for the frequency of exercise expiration dates. */\n    OptionExerciseExpirationFrequencyPeriod: 41146,\n    /** Time unit associated with the frequency of exercise expiration dates. */\n    OptionExerciseExpirationFrequencyUnit: 41147,\n    /** The convention for determining the sequence of exercise expiration dates. It is used in conjunction with a specified frequency. Used only to override the roll convention defined in the DateAdjustment component in Instrument. */\n    OptionExerciseExpirationRollConvention: 41148,\n    /** Specifies the day type of the relative option exercise expiration date offset. */\n    OptionExerciseExpirationDateOffsetDayType: 41149,\n    /** The option exercise expiration time. */\n    OptionExerciseExpirationTime: 41150,\n    /** The business center used to determine the locale for option exercise expiration time, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    OptionExerciseExpirationTimeBusinessCenter: 41151,\n    /** Number of fixed exercise expiration dates in the repeating group. */\n    NoOptionExerciseExpirationDates: 41152,\n    /** An adjusted or unadjusted fixed option exercise expiration date. */\n    OptionExerciseExpirationDate: 41153,\n    /** Specifies the type of option exercise expiration date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    OptionExerciseExpirationDateType: 41154,\n    /** Used to express the unit of measure (UOM) of the payment amount if not in the currency of the trade. */\n    PaymentUnitOfMeasure: 41155,\n    /** Specifies the anchor date when the payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentDateRelativeTo: 41156,\n    /** Time unit multiplier for the relative payment date offset. */\n    PaymentDateOffsetPeriod: 41157,\n    /** Time unit associated with the relative payment date offset. */\n    PaymentDateOffsetUnit: 41158,\n    /** Specifies the day type of the relative payment date offset. */\n    PaymentDateOffsetDayType: 41159,\n    /** Forward start premium type. */\n    PaymentForwardStartType: 41160,\n    /** Number of fixing days in the repeating group. */\n    NoPaymentScheduleFixingDays: 41161,\n    /** The day of the week on which fixing will take place. */\n    PaymentScheduleFixingDayOfWeek: 41162,\n    /** The occurrence of the day of week on which fixing takes place.\n        For example, a fixing of the 3rd Friday would be DayOfWk=5 DayNum=3. If omitted every day of the week is a fixing day. */\n    PaymentScheduleFixingDayNumber: 41163,\n    /** Identifier of this PaymentSchedule for cross referencing elsewhere in the message. */\n    PaymentScheduleXID: 41164,\n    /** Reference to payment schedule elsewhere in the message. */\n    PaymentScheduleXIDRef: 41165,\n    /** The currency of the schedule rate. Uses ISO 4217 currency codes. */\n    PaymentScheduleRateCurrency: 41166,\n    /** The schedule rate unit of measure (UOM). */\n    PaymentScheduleRateUnitOfMeasure: 41167,\n    /** The number to be multiplied by the derived floating rate of the payment schedule in order to arrive at the payment rate. If omitted, the schedule rate conversion factor is 1. */\n    PaymentScheduleRateConversionFactor: 41168,\n    /** Identifies whether the rate spread is an absolute value to be added to the index rate or a percentage of the index rate. */\n    PaymentScheduleRateSpreadType: 41169,\n    /** The schedule settlement period price. */\n    PaymentScheduleSettlPeriodPrice: 41170,\n    /** Specifies the currency of the schedule settlement period price. Uses ISO 4217 currency codes. */\n    PaymentScheduleSettlPeriodPriceCurrency: 41171,\n    /** The settlement period price unit of measure (UOM). */\n    PaymentScheduleSettlPeriodPriceUnitOfMeasure: 41172,\n    /** The schedule step unit of measure (UOM). */\n    PaymentScheduleStepUnitOfMeasure: 41173,\n    /** The distribution of fixing days. */\n    PaymentScheduleFixingDayDistribution: 41174,\n    /** The number of days over which fixing should take place. */\n    PaymentScheduleFixingDayCount: 41175,\n    /** Time unit multiplier for the fixing lag duration. */\n    PaymentScheduleFixingLagPeriod: 41176,\n    /** Time unit associated with the fixing lag duration. */\n    PaymentScheduleFixingLagUnit: 41177,\n    /** Time unit multiplier for the relative first observation date offset.\n        If the first observation offset is specified, the observation period will start the specified interval prior to each calculation period - i.e. if the first observation offset is 4 months and the lag duration is 3 months, observations will be taken in months 4, 3 and 2 (but not 1) prior to each calculation period. If no first observation offset is specified, the observation period will end immediately preceding each calculation period. */\n    PaymentScheduleFixingFirstObservationDateOffsetPeriod: 41178,\n    /** Time unit associated with the relative first observation date offset. */\n    PaymentScheduleFixingFirstObservationDateOffsetUnit: 41179,\n    /** When this element is specified and set to 'Y', the Flat Rate is the New Worldwide Tanker Nominal Freight Scale for the Freight Index Route taken at the Trade Date of the transaction \u201CFixed\u201D. If 'N' it is taken on each Pricing Date \u201CFloating\u201D. */\n    PaymentStreamFlatRateIndicator: 41180,\n    /** Specifies the actual monetary value of the flat rate when PaymentStreamFlatRateIndicator(41180) = 'Y'. */\n    PaymentStreamFlatRateAmount: 41181,\n    /** Specifies the currency of the actual flat rate. Uses ISO 4217 currency codes. */\n    PaymentStreamFlatRateCurrency: 41182,\n    /** Specifies the limit on the total payment amount. */\n    PaymentStreamMaximumPaymentAmount: 41183,\n    /** Specifies the currency of total payment amount limit. Uses ISO 4217 currency codes. */\n    PaymentStreamMaximumPaymentCurrency: 41184,\n    /** Specifies the limit on the payment amount that goes out in any particular calculation period. */\n    PaymentStreamMaximumTransactionAmount: 41185,\n    /** Specifies the currency of the period payment amount limit. Uses ISO 4217 currency codes. */\n    PaymentStreamMaximumTransactionCurrency: 41186,\n    /** Specifies the fixed payment amount unit of measure (UOM). */\n    PaymentStreamFixedAmountUnitOfMeasure: 41187,\n    /** Specifies the total fixed payment amount. */\n    PaymentStreamTotalFixedAmount: 41188,\n    /** The number of Worldscale points for purposes of the calculation of a fixed amount for a wet voyage charter commodity swap. */\n    PaymentStreamWorldScaleRate: 41189,\n    /** The price per relevant unit for purposes of the calculation of a fixed amount for a dry voyage charter or time charter commodity swap. */\n    PaymentStreamContractPrice: 41190,\n    /** Specifies the currency of PaymentStreamContractPrice(41190). Uses ISO 4217 currency codes. */\n    PaymentStreamContractPriceCurrency: 41191,\n    /** Number of business centers in the repeating group. */\n    NoPaymentStreamPricingBusinessCenters: 41192,\n    /** The business center calendar used to adjust the payment stream's pricing dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PaymentStreamPricingBusinessCenter: 41193,\n    /** Secondary time unit multiplier for the payment stream's floating rate index curve.\n        May be used for a Forward Rate Agreement (FRA) with an average rate between two curve points. */\n    PaymentStreamRateIndex2CurvePeriod: 41194,\n    /** Secondary time unit associated with the payment stream's floating rate index curve. */\n    PaymentStreamRateIndex2CurveUnit: 41195,\n    /** Specifies the location of the floating rate index. */\n    PaymentStreamRateIndexLocation: 41196,\n    /** This is the weather Cooling Degree Days (CDD), Heating Degree Days (HDD) or HDD index level specified as the number of (amount of) weather index units specified by the parties in the related confirmation. */\n    PaymentStreamRateIndexLevel: 41197,\n    /** The unit of measure (UOM) of the rate index level. */\n    PaymentStreamRateIndexUnitOfMeasure: 41198,\n    /** Specifies how weather index units are to be calculated. */\n    PaymentStreamSettlLevel: 41199,\n    /** This is the weather Cooling Degree Days (CDD), Heating Degree Days (HDD) or HDD reference level specified as the number of (amount of) weather index units specified by the parties in the related confirmation. */\n    PaymentStreamReferenceLevel: 41200,\n    /** The unit of measure (UOM) of the rate reference level. */\n    PaymentStreamReferenceLevelUnitOfMeasure: 41201,\n    /** When set to 'Y', it indicates the weather reference level equals zero. */\n    PaymentStreamReferenceLevelEqualsZeroIndicator: 41202,\n    /** Specifies the currency of the floating rate spread. Uses ISO 4217 currency codes. */\n    PaymentStreamRateSpreadCurrency: 41203,\n    /** Species the unit of measure (UOM) of the floating rate spread. */\n    PaymentStreamRateSpreadUnitOfMeasure: 41204,\n    /** The number to be multiplied by the derived floating rate of the payment stream in order to arrive at the payment rate. If omitted, the floating rate conversion factor is 1. */\n    PaymentStreamRateConversionFactor: 41205,\n    /** Identifies whether the rate spread is an absolute value to be added to the index rate or a percentage of the index rate. */\n    PaymentStreamRateSpreadType: 41206,\n    /** The floating rate determined at the most recent reset. The rate is expressed in decimal form, e.g. 5% is represented as 0.05. */\n    PaymentStreamLastResetRate: 41207,\n    /** The floating rate determined at the final reset. The rate is expressed in decimal form, e.g. 5% is represented as 0.05. */\n    PaymentStreamFinalRate: 41208,\n    /** Time unit multiplier for the calculation lag duration. */\n    PaymentStreamCalculationLagPeriod: 41209,\n    /** Time unit associated with the calculation lag duration. */\n    PaymentStreamCalculationLagUnit: 41210,\n    /** Time unit multiplier for the relative first observation date offset.\n        If the first observation offset is specified, the observation period will start the specified interval prior to each calculation period - i.e. if the first observation offset is 4 months and the lag duration is 3 months, observations will be taken in months 4, 3 and 2 (but not 1) prior to each calculation period. If no first observation offset is specified, the observation period will end immediately preceding each calculation period. */\n    PaymentStreamFirstObservationDateOffsetPeriod: 41211,\n    /** Time unit associated with the relative first observation date offset. */\n    PaymentStreamFirstObservationDateOffsetUnit: 41212,\n    /** Specifies the commodity pricing day type. */\n    PaymentStreamPricingDayType: 41213,\n    /** The distribution of pricing days. */\n    PaymentStreamPricingDayDistribution: 41214,\n    /** The number of days over which pricing should take place. */\n    PaymentStreamPricingDayCount: 41215,\n    /** Specifies the business calendar to use for pricing.\n        See http://www.fpml.org/coding-scheme/commodity-business-calendar for values. */\n    PaymentStreamPricingBusinessCalendar: 41216,\n    /** The business day convention used to adjust the payent stream's pricing dates. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    PaymentStreamPricingBusinessDayConvention: 41217,\n    /** Specifies the source or legal framework for the risk apportionment.\n        See http://www.fixtradingcommunity.org/codelists#Risk_Apportionment_Source for the details of the external code list. */\n    DeliveryStreamRiskApportionmentSource: 41218,\n    /** Specifies the source or legal framework for the risk apportionment.\n        See http://www.fixtradingcommunity.org/codelists#Risk_Apportionment_Source for the details of the external code list. */\n    LegDeliveryStreamRiskApportionmentSource: 41219,\n    /** Number of payment dates in the repeating group. */\n    NoPaymentStreamPaymentDates: 41220,\n    /** The adjusted or unadjusted fixed stream payment date. */\n    PaymentStreamPaymentDate: 41221,\n    /** Specifies the type of payment date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    PaymentStreamPaymentDateType: 41222,\n    /** When set to 'Y', it indicates that payment dates are specified in the relevant master agreement. */\n    PaymentStreamMasterAgreementPaymentDatesIndicator: 41223,\n    /** Number of pricing dates in the repeating group. */\n    NoPaymentStreamPricingDates: 41224,\n    /** The adjusted or unadjusted fixed stream pricing date. */\n    PaymentStreamPricingDate: 41225,\n    /** Specifies the type of pricing date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    PaymentStreamPricingDateType: 41226,\n    /** Number of pricing days in the repeating group. */\n    NoPaymentStreamPricingDays: 41227,\n    /** The day of the week on which pricing takes place. */\n    PaymentStreamPricingDayOfWeek: 41228,\n    /** The occurrence of the day of week on which pricing takes place.\n        For example a pricing day of the 3rd Friday would be DayOfWk=5 DayNum=3. */\n    PaymentStreamPricingDayNumber: 41229,\n    /** Number of business centers in the repeating group. */\n    NoPricingDateBusinessCenters: 41230,\n    /** The business center calendar used to adjust pricing or fixing dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PricingDateBusinessCenter: 41231,\n    /** The unadjusted pricing or fixing date. */\n    PricingDateUnadjusted: 41232,\n    /** The business day convention used to adjust pricing or fixing dates. Used only to override the business day convention defined in the DateAdjustment component within the Instrument component. */\n    PricingDateBusinessDayConvention: 41233,\n    /** The adjusted pricing or fixing date. */\n    PricingDateAdjusted: 41234,\n    /** Specifies the local market time of the pricing or fixing. */\n    PricingTime: 41235,\n    /** Specifies the business center for determining the pricing or fixing time. See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PricingTimeBusinessCenter: 41236,\n    /** Number of asset attribute entries in the group. */\n    NoStreamAssetAttributes: 41237,\n    /** Specifies the name of the attribute.\n        See http://www.fixtradingcommunity.org/codelists#Asset_Attribute_Types for code list of applicable asset attribute types. */\n    StreamAssetAttributeType: 41238,\n    /** Specifies the value of the attribute. */\n    StreamAssetAttributeValue: 41239,\n    /** Limit or lower acceptable value of the attribute. */\n    StreamAssetAttributeLimit: 41240,\n    /** Number of calculation period dates in the repeating group. */\n    NoStreamCalculationPeriodDates: 41241,\n    /** The adjusted or unadjusted fixed calculation period date. */\n    StreamCalculationPeriodDate: 41242,\n    /** Specifies the type of fixed calculation period date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    StreamCalculationPeriodDateType: 41243,\n    /** Identifier of this calculation period for cross referencing elsewhere in the message. */\n    StreamCalculationPeriodDatesXID: 41244,\n    /** Cross reference to another calculation period for duplicating its properties. */\n    StreamCalculationPeriodDatesXIDRef: 41245,\n    /** When specified and set to 'Y', it indicates that the first calculation period should run from the effective date to the end of the calendar period in which the effective date falls (e.g. Jan 15 - Jan 31 if the calculation periods are one month long and effective date is Jan 15.). If 'N' or not specified, it indicates that the first calculation period should run from the effective date for one whole period (e.g. Jan 15 to Feb 14 if the calculation periods are one month long and the effective date is Jan 15.). */\n    StreamCalculationBalanceOfFirstPeriod: 41246,\n    /** Time unit multiplier for the length of time after the publication of the data when corrections can be made. */\n    StreamCalculationCorrectionPeriod: 41247,\n    /** Time unit associated with the length of time after the publication of the data when corrections can be made. */\n    StreamCalculationCorrectionUnit: 41248,\n    /** Number of business centers in the repeating group. */\n    NoStreamCommoditySettlBusinessCenters: 41249,\n    /** The business center calendar used to adjust the commodity delivery date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    StreamCommoditySettlBusinessCenter: 41250,\n    /** Specifies the general base type of the commodity traded. Where possible, this should follow the naming convention used in the 2005 ISDA Commodity Definitions.\n        Examples of general commodity base types include: Metal, Bullion, Oil, Natural Gas, Coal, Electricity, Inter-Energy, Grains, Oils Seeds, Dairy, Livestock, Forestry, Softs, Weather, Emissions. */\n    StreamCommodityBase: 41251,\n    /** Specifies the type of commodity product.\n        For coal see http://www.fpml.org/coding-scheme/commodity-coal-product-type for values.\n        For metals see http://www.fpml.org/coding-scheme/commodity-metal-product-type for values.\n        For bullion see http://www.fixtradingcommunity.org/codelists#Bullion_Types for the external code list of bullion types. */\n    StreamCommodityType: 41252,\n    /** Specifies the market identifier for the commodity. */\n    StreamCommoditySecurityID: 41253,\n    /** Identifies the class or source of the StreamCommoditySecurityIDSource(41253) value. */\n    StreamCommoditySecurityIDSource: 41254,\n    /** Description of the commodity asset. */\n    StreamCommodityDesc: 41255,\n    /** Byte length of encoded (non-ASCII characters) EncodedStreamCommodityDesc(41257) field. */\n    EncodedStreamCommodityDescLen: 41256,\n    /** Encoded (non-ASCII characters) representation of the StreamCommodityDesc(41255) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the StreamCommodityDesc(41255) field. */\n    EncodedStreamCommodityDesc: 41257,\n    /** The unit of measure (UOM) of the commodity asset. */\n    StreamCommodityUnitOfMeasure: 41258,\n    /** Identifies the currency of the commodity asset. Uses ISO 4217 currency codes. */\n    StreamCommodityCurrency: 41259,\n    /** Identifies the exchange where the commodity is traded. */\n    StreamCommodityExchange: 41260,\n    /** Identifies the source of rate information used for commodities.\n        See http://www.fixtradingcommunity.org/codelists#Commodity_Rate_Source for code list of applicable sources. */\n    StreamCommodityRateSource: 41261,\n    /** Identifies the reference \"page\" from the rate source. */\n    StreamCommodityRateReferencePage: 41262,\n    /** Identifies the page heading from the rate source. */\n    StreamCommodityRateReferencePageHeading: 41263,\n    /** Specifies the commodity data or information provider.\n        See http://www.fpml.org/coding-scheme/commodity-information-provider for values. */\n    StreamDataProvider: 41264,\n    /** Specifies how the pricing or rate setting of the trade is to be determined or based upon.\n        See http://www.fixtradingcommunity.org/codelists#Commodity_Rate_Pricing_Type for code list of applicable commodity pricing types. */\n    StreamCommodityPricingType: 41265,\n    /** Time unit multiplier for the nearby settlement day.\n        When the commodity transaction references a futures contract, the delivery or settlement dates are a nearby month or week. For example, for eighth nearby month use Period=8 and Unit=Mo. */\n    StreamCommodityNearbySettlDayPeriod: 41266,\n    /** Time unit associated with the nearby settlement day. */\n    StreamCommodityNearbySettlDayUnit: 41267,\n    /** The unadjusted commodity delivery date. */\n    StreamCommoditySettlDateUnadjusted: 41268,\n    /** The business day convention used to adjust the commodity delivery date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component. */\n    StreamCommoditySettlDateBusinessDayConvention: 41269,\n    /** The adjusted commodity delivery date. */\n    StreamCommoditySettlDateAdjusted: 41270,\n    /** Specifies a fixed single month for commodity delivery.\n        Use \"1\" for January, \"2\" for February, etc. */\n    StreamCommoditySettlMonth: 41271,\n    /** Time unit multiplier for the commodity delivery date roll.\n        For a commodity transaction that references a listed future via the delivery dates, this is the day offset on which the specified future will roll to the next nearby month when the referenced future expires. */\n    StreamCommoditySettlDateRollPeriod: 41272,\n    /** Time unit associated with the commodity delivery date roll. */\n    StreamCommoditySettlDateRollUnit: 41273,\n    /** Specifies the commodity delivery roll day type. */\n    StreamCommoditySettlDayType: 41274,\n    /** Identifier of this stream commodity for cross referencing elsewhere in the message. */\n    StreamCommodityXID: 41275,\n    /** Reference to a stream commodity elsewhere in the message. */\n    StreamCommodityXIDRef: 41276,\n    /** Number of alternate security identifers. */\n    NoStreamCommodityAltIDs: 41277,\n    /** Alternate security identifier value for the commodity. */\n    StreamCommodityAltID: 41278,\n    /** Identifies the class or source of the alternate commodity security identifier. */\n    StreamCommodityAltIDSource: 41279,\n    /** Number of data sources in the repeating group. The order of entry determines priority \u2013 first is the main source, second is fallback, third is second fallback. */\n    NoStreamCommodityDataSources: 41280,\n    /** Data source identifier. */\n    StreamCommodityDataSourceID: 41281,\n    /** Type of data source identifier. */\n    StreamCommodityDataSourceIDType: 41282,\n    /** Number of days in the repeating group. */\n    NoStreamCommoditySettlDays: 41283,\n    /** Specifies the day or group of days for delivery. */\n    StreamCommoditySettlDay: 41284,\n    /** Sum of the hours specified in StreamCommoditySettlTimeGrp. */\n    StreamCommoditySettlTotalHours: 41285,\n    /** Number of hour ranges in the repeating group. */\n    NoStreamCommoditySettlTimes: 41286,\n    /** The start time for commodities settlement where delivery occurs over time. The time format is specified by the settlement time type. */\n    StreamCommoditySettlStart: 41287,\n    /** The end time for commodities settlement where delivery occurs over time. The time format is specified by the settlement time type. */\n    StreamCommoditySettlEnd: 41288,\n    /** Number of commodity settlement periods in the repeating group. */\n    NoStreamCommoditySettlPeriods: 41289,\n    /** Specifies the country where delivery takes place. Uses ISO 3166 2-character country code. */\n    StreamCommoditySettlCountry: 41290,\n    /** Commodity delivery timezone specified as \"prevailing\" rather than \"standard\" or \"daylight\".\n        See http://www.fixtradingcommunity.org/codelists#Prevailing_Timezones for code list of applicable prevailing timezones. */\n    StreamCommoditySettlTimeZone: 41291,\n    /** Specifies the commodity delivery flow type. */\n    StreamCommoditySettlFlowType: 41292,\n    /** Specifies the delivery quantity associated with this settlement period. */\n    StreamCommoditySettlPeriodNotional: 41293,\n    /** Specifies the unit of measure (UOM) of the delivery quantity associated with this settlement period. */\n    StreamCommoditySettlPeriodNotionalUnitOfMeasure: 41294,\n    /** Time unit multiplier for the settlement period frequency. */\n    StreamCommoditySettlPeriodFrequencyPeriod: 41295,\n    /** Time unit associated with the settlement period frequency. */\n    StreamCommoditySettlPeriodFrequencyUnit: 41296,\n    /** The settlement period price. */\n    StreamCommoditySettlPeriodPrice: 41297,\n    /** Specifies the settlement period price unit of measure (UOM). */\n    StreamCommoditySettlPeriodPriceUnitOfMeasure: 41298,\n    /** The currency of the settlement period price. Uses ISO 4217 currency codes. */\n    StreamCommoditySettlPeriodPriceCurrency: 41299,\n    /** Indicates whether holidays are included in the settlement periods. Required for electricity contracts. */\n    StreamCommoditySettlHolidaysProcessingInstruction: 41300,\n    /** Identifier of this settlement period for cross referencing elsewhere in the message. */\n    StreamCommoditySettlPeriodXID: 41301,\n    /** Cross reference to another settlement period for duplicating its properties. */\n    StreamCommoditySettlPeriodXIDRef: 41302,\n    /** Identifier of this Stream for cross referencing elsewhere in the message. */\n    StreamXID: 41303,\n    /** Identifies the instrument leg in which this payment applies to by referencing the leg's LegID(1788). */\n    PaymentLegRefID: 41304,\n    /** Cross reference to another Stream notional for duplicating its properties. */\n    StreamNotionalXIDRef: 41305,\n    /** Time unit multiplier for the swap stream's notional frequency. */\n    StreamNotionalFrequencyPeriod: 41306,\n    /** Time unit associated with the swap stream's notional frequency. */\n    StreamNotionalFrequencyUnit: 41307,\n    /** The commodity's notional or quantity delivery frequency. */\n    StreamNotionalCommodityFrequency: 41308,\n    /** Specifies the delivery stream quantity unit of measure (UOM). */\n    StreamNotionalUnitOfMeasure: 41309,\n    /** Total notional or delivery quantity over the term of the contract. */\n    StreamTotalNotional: 41310,\n    /** Specifies the unit of measure (UOM) for the total notional or delivery quantity over the term of the contract. */\n    StreamTotalNotionalUnitOfMeasure: 41311,\n    /** Number of mandatory clearing jurisdictions. */\n    NoMandatoryClearingJurisdictions: 41312,\n    /** Identifier of the regulatory jurisdiction requiring the trade to be cleared. */\n    MandatoryClearingJurisdiction: 41313,\n    /** Reference to the protection terms applicable to this entity or obligation. Contains the same XID named string value of the instance in the ProtectionTerms repeating group that applies to this Underlying. */\n    UnderlyingProtectionTermXIDRef: 41314,\n    /** Reference to the cash or physical settlement terms applicable to this entity or obligation. Contains the same XID named string value of the instance in the appropriate repeating group that applies to this Underlying. */\n    UnderlyingSettlTermXIDRef: 41315,\n    /** Number of bonds in the repeating group. */\n    NoLegAdditionalTermBondRefs: 41316,\n    /** Security identifier of the bond. */\n    LegAdditionalTermBondSecurityID: 41317,\n    /** Identifies the source scheme of the LegAdditionalTermBondSecurityID(41317) value. */\n    LegAdditionalTermBondSecurityIDSource: 41318,\n    /** Description of the bond. */\n    LegAdditionalTermBondDesc: 41319,\n    /** Byte length of encoded (non-ASCII characters) EncodedLegAdditionalTermBondDesc(41321) field. */\n    EncodedLegAdditionalTermBondDescLen: 41320,\n    /** Encoded (non-ASCII characters) representation of the LegAdditionalTermBondDesc(41319) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegAdditionalTermBondDesc(41319) field. */\n    EncodedLegAdditionalTermBondDesc: 41321,\n    /** Specifies the currency the bond value is denominated in. Uses ISO 4217 currency codes. */\n    LegAdditionalTermBondCurrency: 41322,\n    /** Issuer of the bond. */\n    LegAdditionalTermBondIssuer: 41323,\n    /** Byte length of encoded (non-ASCII characters) EncodedLegAdditionalTermBondIssuer(41325) field. */\n    EncodedLegAdditionalTermBondIssuerLen: 41324,\n    /** Encoded (non-ASCII characters) representation of the LegAdditionalTermBondIssuer(41323) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegAdditionalTermBondIssuer(41323) field. */\n    EncodedLegAdditionalTermBondIssuer: 41325,\n    /** Specifies the bond's payment priority in the event of a default. */\n    LegAdditionalTermBondSeniority: 41326,\n    /** Specifies the coupon type of the bond. */\n    LegAdditionalTermBondCouponType: 41327,\n    /** Coupon rate of the bond. See also CouponRate(223). */\n    LegAdditionalTermBondCouponRate: 41328,\n    /** The maturity date of the bond. */\n    LegAdditionalTermBondMaturityDate: 41329,\n    /** The par value of the bond. */\n    LegAdditionalTermBondParValue: 41330,\n    /** Total issued amount of the bond. */\n    LegAdditionalTermBondCurrentTotalIssuedAmount: 41331,\n    /** Time unit multiplier for the frequency of the bond's coupon payment. */\n    LegAdditionalTermBondCouponFrequencyPeriod: 41332,\n    /** Time unit associated with the frequency of the bond's coupon payment. */\n    LegAdditionalTermBondCouponFrequencyUnit: 41333,\n    /** The day count convention used in interest calculations for a bond or an interest bearing security. */\n    LegAdditionalTermBondDayCount: 41334,\n    /** Number of additional terms in the repeating group. */\n    NoLegAdditionalTerms: 41335,\n    /** Indicates whether the condition precedent bond is applicable. The swap contract is only valid if the bond is issued and if there is any dispute over the terms of fixed stream then the bond terms would be used. */\n    LegAdditionalTermConditionPrecedentBondIndicator: 41336,\n    /** Indicates whether the discrepancy clause is applicable. */\n    LegAdditionalTermDiscrepancyClauseIndicator: 41337,\n    /** Applicable value for UnderlyingMarketDisruptionEvent(41865). */\n    UnderlyingMarketDisruptionValue: 41338,\n    /** Applicable value for UnderlyingMarketDisruptionFallbackType(41867). */\n    UnderlyingMarketDisruptionFallbackValue: 41339,\n    /** Number of bonds in the repeating group. */\n    NoUnderlyingAdditionalTermBondRefs: 41340,\n    /** Security identifier of the bond. */\n    UnderlyingAdditionalTermBondSecurityID: 41341,\n    /** Number of dealers in the repeating group. */\n    NoLegCashSettlDealers: 41342,\n    /** Identifies the dealer from whom price quotations for the reference obligation are obtained for the purpose of cash settlement valuation calculation.\n        ISDA 2003 Term: Dealer */\n    LegCashSettlDealer: 41343,\n    /** Number of elements in the repeating group. */\n    NoLegCashSettlTerms: 41344,\n    /** Specifies the currency the LegCashSettlAmount(41357) is denominated in. Uses ISO 4217 currency codes. */\n    LegCashSettlCurrency: 41345,\n    /** The number of business days after settlement conditions have been satisfied, when the calculation agent is to obtain a price quotation on the reference obligation for purposes of cash settlement.\n        Associated with ISDA 2003 Term: Valuation Date. */\n    LegCasSettlValuationFirstBusinessDayOffset: 41346,\n    /** The number of business days between successive valuation dates when multiple valuation dates are applicable for cash settlement. */\n    LegCashSettlValuationSubsequentBusinessDaysOffset: 41347,\n    /** Where multiple valuation dates are specified as being applicable for cash settlement, this element specifies the number of applicable valuation dates.\n        Associated with ISDA 2003 Term: Valuation Date */\n    LegCashSettlNumOfValuationDates: 41348,\n    /** Time of valuation. */\n    LegCashSettlValuationTime: 41349,\n    /** Identifies the business center calendar used at valuation time for cash settlement purposes e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegCashSettlBusinessCenter: 41350,\n    /** The type of quote used to determine the cash settlement price. */\n    LegCashSettlQuoteMethod: 41351,\n    /** When determining the cash settlement amount, if weighted average price quotes are to be obtained for the reference obligation, this is the upper limit to the outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount equal to floating rate payer calculation amount.\n        ISDA 2003 Term: Quotation Amount. */\n    LegCashSettlQuoteAmount: 41352,\n    /** Specifies the currency the LegCashSettlQuoteAmount(41352) is denominated in. Uses ISO 4217 Currency Code. */\n    LegCashSettlQuoteCurrency: 41353,\n    /** When determining the cash settlement amount, if weighted average price quotes are to be obtained for the reference obligation, this is the minimum intended threshold amount of outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount of the lower of either USD1,000,000 (or its equivalent in the relevant obligation currency) or the (minimum) quoted amount.\n        ISDA 2003 Term: Minimum Quotation Amount. */\n    LegCashSettlMinimumQuoteAmount: 41354,\n    /** Specifies the currency the LegCashSettlQuoteMinimumAmount(41354) is denominated in. Uses ISO 4217 Currency Code. */\n    LegCashSettlMinimumQuoteCurrency: 41355,\n    /** The number of business days used in the determination of the cash settlement payment date.\n        If a cash settlement amount is specified, the cash settlement payment date will be this number of business days following the calculation of the final price. If a cash settlement amount is not specified, the cash settlement payment date will be this number of business days after all conditions to settlement are satisfied. ISDA 2003 Term: Cash Settlement Date. */\n    LegCashSettlBusinessDays: 41356,\n    /** The amount paid between the trade parties, seller to the buyer, for cash settlement on the cash settlement date.\n        If not specified this would typically be calculated as ((100 or the reference price) - reference obligation price) x floating rate payer calculation amount. Price values are all expressed as a percentage. ISDA 2003 Term: Cash Settlement Amount. */\n    LegCashSettlAmount: 41357,\n    /** Used for fixed recovery, this specifies the recovery level as determined at contract inception, to be applied in the event of a default. The factor is used to calculate the amount paid by the seller to the buyer for cash settlement on the cash settlement date. The amount calculated is (1 - LegCashSettlRecoveryFactor(41358)) x floating rate payer calculation amount. The currency is derived from the floating rate payer calculation amount. */\n    LegCashSettlRecoveryFactor: 41358,\n    /** Indicates whether fixed settlement is applicable or not applicable in a recovery lock. */\n    LegCashSettlFixedTermIndicator: 41359,\n    /** Indicates whether accrued interest is included or not in the value provided in LegCashSettlAmount(41357).\n        For cash settlement this specifies whether quotations should be obtained inclusive or not of accrued interest.\n        For physical settlement this specifies whether the buyer should deliver the obligation with an outstanding principal balance that includes or excludes accrued interest.\n        ISDA 2003 Term: Include/Exclude Accrued Interest. */\n    LegCashSettlAccruedInterestIndicator: 41360,\n    /** The ISDA defined methodology for determining the final price of the reference obligation for purposes of cash settlement.\n        ISDA 2003 Term: Valuation Method. */\n    LegCashSettlValuationMethod: 41361,\n    /** A named string value referenced by UnderlyingSettlTermXIDRef(41315). */\n    LegCashSettlTermXID: 41362,\n    /** The number of averaging observations in the repeating group. */\n    NoLegComplexEventAveragingObservations: 41363,\n    /** Cross reference to the ordinal observation as specified either in the LegComplexEventScheduleGrp or LegComplexEventPeriodDateGrp components. */\n    LegComplexEventAveragingObservationNumber: 41364,\n    /** The weight factor to be applied to the observation. */\n    LegComplexEventAveragingWeight: 41365,\n    /** The number of credit events specified in the repeating group. */\n    NoLegComplexEventCreditEvents: 41366,\n    /** Specifies the type of credit event.\n        See http://www.fixtradingcommunity.org/codelists#Credit_Event_Types for code list of applicable event types. */\n    LegComplexEventCreditEventType: 41367,\n    /** The credit event value appropriate to LegComplexEventCreditEventType(41367).\n        See http://www.fixtradingcommunity.org/codelists#Credit_Event_Types for applicable event type values. */\n    LegComplexEventCreditEventValue: 41368,\n    /** Specifies the applicable currency when LegComplexEventCreditEventCurrency(41368) is an amount. Uses ISO 4217 currency codes. */\n    LegComplexEventCreditEventCurrency: 41369,\n    /** Time unit multiplier for complex credit events. */\n    LegComplexEventCreditEventPeriod: 41370,\n    /** Time unit associated with complex credit events. */\n    LegComplexEventCreditEventUnit: 41371,\n    /** Specifies the day type for the complex credit events. */\n    LegComplexEventCreditEventDayType: 41372,\n    /** Identifies the source of rate information used for credit events.\n        See http://www.fixtradingcommunity.org/codelists#Credit_Event_Rate_Source for code list of applicable sources. */\n    LegComplexEventCreditEventRateSource: 41373,\n    /** Number of qualifiers in the repeating group. */\n    NoLegComplexEventCreditEventQualifiers: 41374,\n    /** Specifies a complex event qualifier. Used to further qualify LegComplexEventCreditEventType(41367). */\n    LegComplexEventCreditEventQualifier: 41375,\n    /** Number of entries in the date-time repeating group. */\n    NoLegComplexEventPeriodDateTimes: 41376,\n    /** Averaging date for an Asian option.\n        Trigger date for a Barrier or Knock option. */\n    LegComplexEventPeriodDate: 41377,\n    /** Averaging time for an Asian option. */\n    LegComplexEventPeriodTime: 41378,\n    /** Number of periods in the repeating group. */\n    NoLegComplexEventPeriods: 41379,\n    /** Specifies the period type. */\n    LegComplexEventPeriodType: 41380,\n    /** The business center for adjusting dates and times in the schedule or date-time group.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegComplexEventBusinessCenter: 41381,\n    /** Number of rate sources in the repeating group. */\n    NoLegComplexEventRateSources: 41382,\n    /** Identifies the source of rate information.\n        For FX, the reference source to be used for the FX spot rate. */\n    LegComplexEventRateSource: 41383,\n    /** Indicates whether the rate source specified is a primary or secondary source. */\n    LegComplexEventRateSourceType: 41384,\n    /** Identifies the reference page from the rate source.\n        For FX, the reference page to the spot rate is to be used for the reference FX spot rate.\n        When LegComplexEventRateSource(41383) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option. */\n    LegComplexEventReferencePage: 41385,\n    /** Identifies the reference page heading from the rate source. */\n    LegComplexEvenReferencePageHeading: 41386,\n    /** Number of business centers in the repeating group. */\n    NoLegComplexEventDateBusinessCenters: 41387,\n    /** The business center calendar used to adjust the event date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegComplexEventDateBusinessCenter: 41388,\n    /** The unadjusted complex event date.\n        For example the second expiration date for a calendar spread option strategy. */\n    LegComplexEventDateUnadjusted: 41389,\n    /** Specifies the anchor date when the complex event date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegComplexEventDateRelativeTo: 41390,\n    /** Time unit multiplier for the relative date offset. */\n    LegComplexEventDateOffsetPeriod: 41391,\n    /** Time unit associated with the relative date offset. */\n    LegComplexEventDateOffsetUnit: 41392,\n    /** Specifies the day type of the relative date offset. */\n    LegComplexEventDateOffsetDayType: 41393,\n    /** The business day convention used to adjust the event date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegComplexEventDateBusinessDayConvention: 41394,\n    /** The adjusted complex event date. */\n    LegComplexEventDateAdjusted: 41395,\n    /** The local market fixing time. */\n    LegComplexEventFixingTime: 41396,\n    /** The business center for determining the actual fixing times.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegComplexEventFixingTimeBusinessCenter: 41397,\n    /** Number of event sources in the repeating group. */\n    NoLegComplexEventCreditEventSources: 41398,\n    /** A newspaper or electronic news service that may publish relevant information used in the determination of whether or not a credit event has occurred. */\n    LegComplexEventCreditEventSource: 41399,\n    /** Number of schedules in the repeating group. */\n    NoLegComplexEventSchedules: 41400,\n    /** The start date of the schedule. */\n    LegComplexEventScheduleStartDate: 41401,\n    /** The end date of the schedule. */\n    LegComplexEventScheduleEndDate: 41402,\n    /** Time unit multiplier for the schedule date frequency. */\n    LegComplexEventScheduleFrequencyPeriod: 41403,\n    /** Time unit associated with the schedule date frequency. */\n    LegComplexEventScheduleFrequencyUnit: 41404,\n    /** The convention for determining the sequence of dates. It is used in conjunction with a specified frequency. Used only to override the roll convention defined in the LegDateAdjustment component in InstrumentLeg. */\n    LegComplexEventScheduleRollConvention: 41405,\n    /** Identifies the reference \"page\" from the quote source. */\n    ProvisionCashSettlQuoteReferencePage: 41406,\n    /** Identifies the reference \"page\" from the quote source. */\n    LegProvisionCashSettlQuoteReferencePage: 41407,\n    /** Number of delivery schedules in the repeating group. */\n    NoLegDeliverySchedules: 41408,\n    /** Specifies the type of delivery schedule. */\n    LegDeliveryScheduleType: 41409,\n    /** Identifier for this instance of delivery schedule for cross referencing elsewhere in the message. */\n    LegDeliveryScheduleXID: 41410,\n    /** Physical delivery quantity. */\n    LegDeliveryScheduleNotional: 41411,\n    /** Specifies the delivery quantity unit of measure (UOM). */\n    LegDeliveryScheduleNotionalUnitOfMeasure: 41412,\n    /** The frequency of notional delivery. */\n    LegDeliveryScheduleNotionalCommodityFrequency: 41413,\n    /** Specifies the negative tolerance value. The value may be an absolute quantity or a percentage, as specified in LegDeliveryScheduleToleranceType(41417). Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%). */\n    LegDeliveryScheduleNegativeTolerance: 41414,\n    /** Specifies the positive tolerance value. The value may be an absolute quantity or a percentage, as specified in LegDeliveryScheduleToleranceType(41417). Value may exceed agreed upon value. Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%). */\n    LegDeliverySchedulePositiveTolerance: 41415,\n    /** Specifies the tolerance value's unit of measure (UOM). */\n    LegDeliveryScheduleToleranceUnitOfMeasure: 41416,\n    /** Specifies the tolerance value type. */\n    LegDeliveryScheduleToleranceType: 41417,\n    /** Specifies the country where delivery takes place. Uses ISO 3166 2-character country code. */\n    LegDeliveryScheduleSettlCountry: 41418,\n    /** Delivery timezone specified as \"prevailing\" rather than \"standard\" or \"daylight\".\n        See http://www.fixtradingcommunity.org/codelists#Prevailing_Timezones for code list of applicable prevailing timezones. */\n    LegDeliveryScheduleSettlTimeZone: 41419,\n    /** Specifies the delivery flow type. */\n    LegDeliveryScheduleSettlFlowType: 41420,\n    /** Indicates whether holidays are included in the settlement periods. Required for electricity contracts. */\n    LegDeliveryScheduleSettlHolidaysProcessingInstruction: 41421,\n    /** Number of delivery schedules in the repeating group. */\n    NoLegDeliveryScheduleSettlDays: 41422,\n    /** Specifies the day or group of days for delivery. */\n    LegDeliveryScheduleSettlDay: 41423,\n    /** The sum of the total hours specified in the LegDeliveryScheduleSettlTimeGrp component. */\n    LegDeliveryScheduleSettlTotalHours: 41424,\n    /** Number of hour ranges in the repeating group. */\n    NoLegDeliveryScheduleSettlTimes: 41425,\n    /** The scheduled start time for the delivery of the commodity where delivery occurs over specified times. The format of the time value is specified in LegDeliveryScheduleSettlTimeType(41428). */\n    LegDeliveryScheduleSettlStart: 41426,\n    /** The scheduled end time for the delivery of the commodity where delivery occurs over specified times. The format of the time value is specified in LegDeliveryScheduleSettlTimeType(41428). */\n    LegDeliveryScheduleSettlEnd: 41427,\n    /** Specifies the format of the delivery start and end time values. */\n    LegDeliveryScheduleSettlTimeType: 41428,\n    /** Specifies the type of delivery stream. */\n    LegDeliveryStreamType: 41429,\n    /** The name of the oil delivery pipeline. */\n    LegDeliveryStreamPipeline: 41430,\n    /** The point at which the commodity will enter the delivery mechanism or pipeline. */\n    LegDeliveryStreamEntryPoint: 41431,\n    /** The point at which the commodity product will be withdrawn prior to delivery. */\n    LegDeliveryStreamWithdrawalPoint: 41432,\n    /** The point at which the commodity product will be delivered and received. Value specified should follow market convention appropriate for the commodity product.\n        For bullion, see http://www.fpml.org/coding-scheme/bullion-delivery-location for values. */\n    LegDeliveryStreamDeliveryPoint: 41433,\n    /** Specifies under what conditions the buyer and seller should be excused of their delivery obligations. */\n    LegDeliveryStreamDeliveryRestriction: 41434,\n    /** Specifies the electricity delivery contingency. See\n        http://www.fpml.org/coding-scheme/electricity-transmission-contingency for values. */\n    LegDeliveryStreamDeliveryContingency: 41435,\n    /** The trade side value of the party responsible for electricity delivery contingency. */\n    LegDeliveryStreamDeliveryContingentPartySide: 41436,\n    /** When this element is specified and set to 'Y', delivery of the coal product is to be at its source. */\n    LegDeliveryStreamDeliverAtSourceIndicator: 41437,\n    /** Specifies how the parties to the trade apportion responsibility for the delivery of the commodity product.\n        See http://www.fixtradingcommunity.org/codelists#Risk_Apportionment for the details of the external code list. */\n    LegDeliveryStreamRiskApportionment: 41438,\n    /** Specifies the title transfer location. */\n    LegDeliveryStreamTitleTransferLocation: 41439,\n    /** Specifies the condition of title transfer. */\n    LegDeliveryStreamTitleTransferCondition: 41440,\n    /** A party, not necessarily of the trade, who is the Importer of Record for the purposes of paying customs duties and applicable taxes or costs related to importation. */\n    LegDeliveryStreamImporterOfRecord: 41441,\n    /** Specifies the negative tolerance value. The value may be an absolute quantity or a percentage, as specified in LegDeliveryStreamToleranceType(41445). Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%). */\n    LegDeliveryStreamNegativeTolerance: 41442,\n    /** Specifies the positive tolerance value. The value may be an absolute quantity or a percentage, as specified in LegDeliveryStreamToleranceType(41445). Value may exceed agreed upon value. Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%). */\n    LegDeliveryStreamPositiveTolerance: 41443,\n    /** Specifies the tolerance value's unit of measure (UOM). */\n    LegDeliveryStreamToleranceUnitOfMeasure: 41444,\n    /** Specifies the tolerance value type. */\n    LegDeliveryStreamToleranceType: 41445,\n    /** Indicates whether the tolerance is at the seller's or buyer's option. */\n    LegDeliveryStreamToleranceOptionSide: 41446,\n    /** The positive percent tolerance which applies to the total quantity delivered over all shipment periods.\n        Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%.). */\n    LegDeliveryStreamTotalPositiveTolerance: 41447,\n    /** The negative percent tolerance which applies to the total quantity delivered over all shipment periods.\n        Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%.). */\n    LegDeliveryStreamTotalNegativeTolerance: 41448,\n    /** If the notional quantity is specified in a unit that does not match the unit in which the commodity reference price is quoted, the scaling or conversion factor used to convert the commodity reference price unit into the notional quantity unit should be stated here. If there is no conversion, this field is not intended to be used. */\n    LegDeliveryStreamNotionalConversionFactor: 41449,\n    /** The transportation equipment with which the commodity product will be delivered and received.\n        Examples of transportation equipment or mode are barge, truck, railcar, etc. */\n    LegDeliveryStreamTransportEquipment: 41450,\n    /** A reference to the party able to choose whether the gas is delivered for a particular period e.g. a swing or interruptible contract. */\n    LegDeliveryStreamElectingPartySide: 41451,\n    /** Number of asset attribute entries in the group. */\n    NoLegStreamAssetAttributes: 41452,\n    /** Specifies the name of the attribute.\n        See http://www.fixtradingcommunity.org/codelists#Asset_Attribute_Types for code list of applicable asset attribute types. */\n    LegStreamAssetAttributeType: 41453,\n    /** Specifies the value of the attribute. */\n    LegStreamAssetAttributeValue: 41454,\n    /** Limit or lower acceptable value of the attribute. */\n    LegStreamAssetAttributeLimit: 41455,\n    /** Number of commodity sources in the repeating group. */\n    NoLegDeliveryStreamCycles: 41456,\n    /** The delivery cycles during which the oil product will be transported in the pipeline. */\n    LegDeliveryStreamCycleDesc: 41457,\n    /** Byte length of encoded (non-ASCII characters) EncodedLegDeliveryStreamCycleDesc(41459) field. */\n    EncodedLegDeliveryStreamCycleDescLen: 41458,\n    /** Encoded (non-ASCII characters) representation of the LegDeliveryStreamCycleDesc(41457) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegLeg DeliveryStream(41457) field. */\n    EncodedLegDeliveryStreamCycleDesc: 41459,\n    /** Number of commodity sources in the repeating group. */\n    NoLegDeliveryStreamCommoditySources: 41460,\n    /** The SCoTA coal cargo origin, mining region, mine(s), mining complex(es), loadout(s) or river dock(s) or other point(s) of origin that seller and buyer agree are acceptable origins for the coal product. For international coal transactions, this is the origin of the coal product.\n        See http://www.fpml.org/coding-scheme/commodity-coal-product-source for values. */\n    LegDeliveryStreamCommoditySource: 41461,\n    /** The consequences of market disruption events. */\n    LegMarketDisruptionProvision: 41462,\n    /** Specifies the location of the fallback provision documentation. */\n    LegMarketDisruptionFallbackProvision: 41463,\n    /** Specifies the maximum number of market disruption days (commodity or bullion business days) in a contract or confirmation. If none are specified, the maximum number of market disruption days is five (5).\n        ISDA 2005 Commodity Definition. */\n    LegMarketDisruptionMaximumDays: 41464,\n    /** Used when a price materiality percentage applies to the price source disruption event and this event has been specified.\n        Applicable to 2005 Commodity Definitions only. */\n    LegMarketDisruptionMaterialityPercentage: 41465,\n    /** Specifies the minimum futures contracts level that dictates whether or not a 'De Minimis Trading' event has occurred.\n        Applicable to 1993 Commodity Definitions only. */\n    LegMarketDisruptionMinimumFuturesContracts: 41466,\n    /** Number of disruption events in the repeating group. */\n    NoLegMarketDisruptionEvents: 41467,\n    /** Specifies the market disruption event.\n        For commodities see http://www.fpml.org/coding-scheme/commodity-market-disruption for values.\n        For foreign exchange, see http://www.fixtradingcommunity.org/codelists#Market_Disruption_Event for code list of applicable event types. */\n    LegMarketDisruptionEvent: 41468,\n    /** Number of fallbacks in the repeating group. */\n    NoLegMarketDisruptionFallbacks: 41469,\n    /** Specifies the type of disruption fallback.\n        See http://www.fpml.org/coding-scheme/commodity-market-disruption-fallback for values. */\n    LegMarketDisruptionFallbackType: 41470,\n    /** Number of fallback reference securities in the repeating group. */\n    NoLegMarketDisruptionFallbackReferencePrices: 41471,\n    /** The type of reference price underlier. */\n    LegMarketDisruptionFallbackUnderlierType: 41472,\n    /** Specifies the identifier value of the security. */\n    LegMarketDisruptionFallbackUnderlierSecurityID: 41473,\n    /** Specifies the class or source scheme of the security identifier. */\n    LegMarketDisruptionFallbackUnderlierSecurityIDSource: 41474,\n    /** Specifies the description of the underlying security. */\n    LegMarketDisruptionFallbackUnderlierSecurityDesc: 41475,\n    /** Byte length of encoded (non-ASCII characters) EncodedLegMarketDisruptionFallbackUnderlierSecurityDesc (41477) field. */\n    EncodedLegMarketDisruptionFallbackUnderlierSecurityDescLen: 41476,\n    /** Encoded (non-ASCII characters) representation of the LegMarketDisruptionFallbackUnderlierSecurityDesc(41475) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegMarketDisruptionFallbackUnderlierSecurityDesc(41475) field. */\n    EncodedLegMarketDisruptionFallbackUnderlierSecurityDesc: 41477,\n    /** If there are multiple underlying assets, this specifies the number of units (index or securities) that constitute the underlier of the swap. In the case of a basket swap, this is used to reference both the number of basket units, and the number of each asset components of the basket when these are expressed in absolute terms. */\n    LegMarketDisruptionFallbackOpenUnits: 41478,\n    /** Specifies the currency if the underlier is a basket. Uses ISO 4217 currency codes. */\n    LegMarketDisruptionFallbackBasketCurrency: 41479,\n    /** Specifies the basket divisor amount. This value is normally used to adjust the constituent weight for pricing or to adjust for dividends, or other corporate actions. */\n    LegMarketDisruptionFallbackBasketDivisor: 41480,\n    /** A description of the option exercise. */\n    LegExerciseDesc: 41481,\n    /** Byte length of encoded (non-ASCII characters) EncodedLegExerciseDesc(41483) field. */\n    EncodedLegExerciseDescLen: 41482,\n    /** Encoded (non-ASCII characters) representation of the LegExerciseDesc(41481) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegExerciseDesc(41481) field. */\n    EncodedLegExerciseDesc: 41483,\n    /** Indicates (when 'Y') that exercise is automatic when the strike price is crossed or the underlying trade is in the money. */\n    LegAutomaticExerciseIndicator: 41484,\n    /** The threshold rate for triggering automatic exercise. */\n    LegAutomaticExerciseThresholdRate: 41485,\n    /** Indicates whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent. */\n    LegExerciseConfirmationMethod: 41486,\n    /** Identifies the business center used for adjusting the time for manual exercise notice.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegManualNoticeBusinessCenter: 41487,\n    /** Indicates whether the notional amount of the underlying swap, not previously exercised under the option, will be automatically exercised at the expiration time on the expiration date if at such time the buyer is in-the-money, provided that the difference between the settlement rate and the fixed rate under the relevant underlying swap is not less than one tenth of a percentage point (0.10% or 0.001). */\n    LegFallbackExerciseIndicator: 41488,\n    /** Indicates whether the Seller may request the Buyer to confirm its intent to exercise if not done on or before the expiration time on the expiration date. If true (\"Y\") specific rules will apply in relation to the settlement mode. */\n    LegLimitRightToConfirmIndicator: 41489,\n    /** Indicates in physical settlement of bond and convertible bond options whether the party required to deliver the bonds will divide those to be delivered as notifying party desires to facilitate delivery obligations. */\n    LegExerciseSplitTicketIndicator: 41490,\n    /** Number of business centers in the repeating group. */\n    NoLegOptionExerciseBusinessCenters: 41491,\n    /** The business center calendar used to adjust the option exercise dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegOptionExerciseBusinessCenter: 41492,\n    /** The business day convention used to adjust the option exercise dates. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegOptionExerciseBusinessDayConvention: 41493,\n    /** Specifies the day type of the relative earliest exercise date offset. */\n    LegOptionExerciseEarliestDateOffsetDayType: 41494,\n    /** Time unit multiplier for the relative earliest exercise date offset. */\n    LegOptionExerciseEarliestDateOffsetPeriod: 41495,\n    /** Time unit associated with the relative earliest exercise date offset. */\n    LegOptionExerciseEarliestDateOffsetUnit: 41496,\n    /** Time unit multiplier for the frequency of exercise dates. */\n    LegOptionExerciseFrequencyPeriod: 41497,\n    /** Time unit associated with the frequency of exercise dates. */\n    LegOptionExerciseFrequencyUnit: 41498,\n    /** The unadjusted start date for calculating periodic exercise dates. */\n    LegOptionExerciseStartDateUnadjusted: 41499,\n    /** Specifies the anchor date when the option exercise start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegOptionExerciseStartDateRelativeTo: 41500,\n    /** Time unit multiplier for the relative exercise start date offset. */\n    LegOptionExerciseStartDateOffsetPeriod: 41501,\n    /** Time unit associated with the relative exercise start date offset. */\n    LegOptionExerciseStartDateOffsetUnit: 41502,\n    /** Specifies the day type of the relative option exercise start date offset. */\n    LegOptionExerciseStartDateOffsetDayType: 41503,\n    /** The adjusted start date for calculating periodic exercise dates. */\n    LegOptionExerciseStartDateAdjusted: 41504,\n    /** The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1. */\n    LegOptionExerciseSkip: 41505,\n    /** The last date (adjusted) for establishing the option exercise terms. */\n    LegOptionExerciseNominationDeadline: 41506,\n    /** The unadjusted first exercise date. */\n    LegOptionExerciseFirstDateUnadjusted: 41507,\n    /** The unadjusted last exercise date. */\n    LegOptionExerciseLastDateUnadjusted: 41508,\n    /** The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) (i) on the expriation date, in the case of a European style option, (ii) on each Bermuda option exercise date and the expiration date, in the case of a Bermuda style option, (iii) the commencement date to, and including, the expiration date, in the case of an American option. */\n    LegOptionExerciseEarliestTime: 41509,\n    /** The latest exercise time. See also LegOptionExerciseEarliestTime(41509). */\n    LegOptionExerciseLatestTime: 41510,\n    /** The business center used to determine the locale for option exercise time, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegOptionExerciseTimeBusinessCenter: 41511,\n    /** Number of dates in the repeating group. */\n    NoLegOptionExerciseDates: 41512,\n    /** The adjusted or unadjusted option exercise fixed date. */\n    LegOptionExerciseDate: 41513,\n    /** Specifies the type of option exercise date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    LegOptionExerciseDateType: 41514,\n    /** Number of business centers in the repeating group. */\n    NoLegOptionExerciseExpirationDateBusinessCenters: 41515,\n    /** The business center calendar used to adjust the option exercise expiration dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegOptionExerciseExpirationDateBusinessCenter: 41516,\n    /** The business day convention used to adjust the option exercise expiration dates. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegOptionExerciseExpirationDateBusinessDayConvention: 41517,\n    /** Specifies the anchor date when the option exercise expiration date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegOptionExerciseExpirationDateRelativeTo: 41518,\n    /** Time unit multiplier for the relative exercise expiration date offset. */\n    LegOptionExerciseExpirationDateOffsetPeriod: 41519,\n    /** Time unit associated with the relative exercise expiration date offset. */\n    LegOptionExerciseExpirationDateOffsetUnit: 41520,\n    /** Time unit multiplier for the frequency of exercise expiration dates. */\n    LegOptionExerciseExpirationFrequencyPeriod: 41521,\n    /** Time unit associated with the frequency of exercise expiration dates. */\n    LegOptionExerciseExpirationFrequencyUnit: 41522,\n    /** The convention for determining the sequence of exercise expiration dates. It is used in conjunction with a specified frequency. Used only to override the roll convention defined in the LegDateAdjustment component in InstrumentLeg. */\n    LegOptionExerciseExpirationRollConvention: 41523,\n    /** Specifies the day type of the relative option exercise expiration date offset. */\n    LegOptionExerciseExpirationDateOffsetDayType: 41524,\n    /** The option exercise expiration time. */\n    LegOptionExerciseExpirationTime: 41525,\n    /** The business center used to determine the locale for option exercise expiration time, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegOptionExerciseExpirationTimeBusinessCenter: 41526,\n    /** Number of fixed exercise expiration dates in the repeating group. */\n    NoLegOptionExerciseExpirationDates: 41527,\n    /** The adjusted or unadjusted option exercise expiration fixed date. */\n    LegOptionExerciseExpirationDate: 41528,\n    /** Specifies the type of option exercise expiration date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    LegOptionExerciseExpirationDateType: 41529,\n    /** Number of fixing days in the repeating group. */\n    NoLegPaymentScheduleFixingDays: 41530,\n    /** The day of the week on which fixing takes place. */\n    LegPaymentScheduleFixingDayOfWeek: 41531,\n    /** The occurrence of the day of week on which fixing takes place.\n        For example, a fixing of the 3rd Friday would be DayOfWk=5 DayNum=3. If omitted every day of the week is a fixing day. */\n    LegPaymentScheduleFixingDayNumber: 41532,\n    /** Identifier of this LegPaymentSchedule for cross referencing elsewhere in the message. */\n    LegPaymentScheduleXID: 41533,\n    /** Reference to payment schedule elsewhere in the message. */\n    LegPaymentScheduleXIDRef: 41534,\n    /** The currency of the schedule rate. Uses ISO 4217 currency codes. */\n    LegPaymentScheduleRateCurrency: 41535,\n    /** The schedule rate unit of measure (UOM). */\n    LegPaymentScheduleRateUnitOfMeasure: 41536,\n    /** The number multipled by the derived floating rate of the leg's payment schedule in order to arrive at the payment rate. If omitted, the schedule rate conversion factor is 1. */\n    LegPaymentScheduleRateConversionFactor: 41537,\n    /** Identifies whether the rate spread is an absolute value to be added to the index rate or a percentage of the index rate. */\n    LegPaymentScheduleRateSpreadType: 41538,\n    /** The schedule settlement period price. */\n    LegPaymentScheduleSettlPeriodPrice: 41539,\n    /** The currency of the schedule settlement period price. Uses ISO 4217 currency codes. */\n    LegPaymentScheduleSettlPeriodPriceCurrency: 41540,\n    /** The settlement period price unit of measure (UOM). */\n    LegPaymentScheduleSettlPeriodPriceUnitOfMeasure: 41541,\n    /** The schedule step unit of measure (UOM). */\n    LegPaymentScheduleStepUnitOfMeasure: 41542,\n    /** The distribution of fixing days. */\n    LegPaymentScheduleFixingDayDistribution: 41543,\n    /** The number of days over which fixing should take place. */\n    LegPaymentScheduleFixingDayCount: 41544,\n    /** Time unit multiplier for the fixing lag duration. */\n    LegPaymentScheduleFixingLagPeriod: 41545,\n    /** Time unit associated with the fixing lag duration. */\n    LegPaymentScheduleFixingLagUnit: 41546,\n    /** Time unit multiplier for the relative first observation date offset.\n        If the first observation offset is specified, the observation period will start the specified interval prior to each calculation period - i.e. if the first observation offset is 4 months and the lag duration is 3 months, observations will be taken in months 4, 3 and 2 (but not 1) prior to each calculation period. If no first observation offset is specified, the observation period will end immediately preceding each calculation period. */\n    LegPaymentScheduleFixingFirstObservationDateOffsetPeriod: 41547,\n    /** Time unit associated with the relative first observation date offset. */\n    LegPaymentScheduleFixingFirstObservationDateOffsetUnit: 41548,\n    /** When this element is specified and set to 'Y', the Flat Rate is the New Worldwide Tanker Nominal Freight Scale for the Freight Index Route taken at the trade date of the transaction \"Fixed\". If 'N' it is taken on each pricing date \"Floating\". */\n    LegPaymentStreamFlatRateIndicator: 41549,\n    /** Specifies the actual monetary value of the flat rate when LegPaymentStreamFlatRateIndicator(41549) = 'Y'. */\n    LegPaymentStreamFlatRateAmount: 41550,\n    /** Specifies the currency of the actual flat rate. Uses ISO 4217 currency codes. */\n    LegPaymentStreamFlatRateCurrency: 41551,\n    /** Specifies the limit on the total payment amount. */\n    LegStreamMaximumPaymentAmount: 41552,\n    /** Specifies the currency of total payment amount limit. Uses ISO 4217 currency codes. */\n    LegStreamMaximumPaymentCurrency: 41553,\n    /** Specifies the limit on the payment amount that goes out in any particular calculation period. */\n    LegStreamMaximumTransactionAmount: 41554,\n    /** Specifies the currency of the period payment amount limit. Uses ISO 4217 currency codes. */\n    LegStreamMaximumTransactionCurrency: 41555,\n    /** The fixed payment amount unit of measure (UOM). */\n    LegPaymentStreamFixedAmountUnitOfMeasure: 41556,\n    /** Specifies the total fixed payment amount. */\n    LegPaymentStreamTotalFixedAmount: 41557,\n    /** The number of Worldscale points for purposes of the calculation of a fixed amount for a wet voyage charter commodity swap. */\n    LegPaymentStreamWorldScaleRate: 41558,\n    /** The price per relevant unit for purposes of the calculation of a fixed amount for a dry voyage charter or time charter commodity swap. */\n    LegPaymentStreamContractPrice: 41559,\n    /** Specifies the currency of LegPaymentStreamContractPrice(41559). Uses ISO 4217 currency codes. */\n    LegPaymentStreamContractPriceCurrency: 41560,\n    /** Number of business centers in the repeating group. */\n    NoLegPaymentStreamPricingBusinessCenters: 41561,\n    /** The business center calendar used to adjust the pricing dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPaymentStreamPricingBusinessCenter: 41562,\n    /** Secondary time unit associated with the payment stream's floating rate index curve. */\n    LegPaymentStreamRateIndex2CurveUnit: 41563,\n    /** Secondary time unit multiplier for the payment stream's floating rate index curve.\n        May be used for a Forward Rate Agreement (FRA) with an average rate between two curve points. */\n    LegPaymentStreamRateIndex2CurvePeriod: 41564,\n    /** Specifies the location of the floating rate index. */\n    LegPaymentStreamRateIndexLocation: 41565,\n    /** This is the weather Cooling Degree Days (CDD), Heating Degree Days (HDD) or HDD index level specified as the number of (amount of) weather index units specified by the parties in the related confirmation. */\n    LegPaymentStreamRateIndexLevel: 41566,\n    /** The unit of measure (UOM) of the rate index level. */\n    LegPaymentStreamRateIndexUnitOfMeasure: 41567,\n    /** Specifies how weather index units are to be calculated. */\n    LegPaymentStreamSettlLevel: 41568,\n    /** This is the weather Cooling Degree Days (CDD), Heating Degree Days (HDD) or HDD reference level specified as the number of (amount of) weather index units specified by the parties in the related confirmation. */\n    LegPaymentStreamReferenceLevel: 41569,\n    /** The unit of measure (UOM) of the rate reference level. */\n    LegPaymentStreamReferenceLevelUnitOfMeasure: 41570,\n    /** When set to 'Y', it indicates that the weather reference level equals zero. */\n    LegPaymentStreamReferenceLevelEqualsZeroIndicator: 41571,\n    /** Specifies the currency of the floating rate spread. Uses ISO 4217 currency codes. */\n    LegPaymentStreamRateSpreadCurrency: 41572,\n    /** Specifies the unit of measure (UOM) of the floating rate spread. */\n    LegPaymentStreamRateSpreadUnitOfMeasure: 41573,\n    /** The number to be multiplied by the derived floating rate of the leg's payment stream in order to arrive at the payment rate. If omitted, the floating rate conversion factor is 1. */\n    LegPaymentStreamRateConversionFactor: 41574,\n    /** Identifies whether the rate spread is an absolute value to be added to the index rate or a percentage of the index rate. */\n    LegPaymentStreamRateSpreadType: 41575,\n    /** The floating rate determined at the most recent reset. The rate is expressed in decimal form, e.g. 5% is represented as 0.05. */\n    LegPaymentStreamLastResetRate: 41576,\n    /** The floating rate determined at the final reset. The rate is expressed in decimal form, e.g. 5% is represented as 0.05. */\n    LegPaymentStreamFinalRate: 41577,\n    /** Time unit multiplier for the calculation lag duration. */\n    LegPaymentStreamCalculationLagPeriod: 41578,\n    /** Time unit associated with the calculation lag duration. */\n    LegPaymentStreamCalculationLagUnit: 41579,\n    /** Time unit multiplier for the relative first observation date offset.\n        If the first observation offset is specified, the observation period will start the specified interval prior to each calculation period - i.e. if the first observation offset is 4 months and the lag duration is 3 months, observations will be taken in months 4, 3 and 2 (but not 1) prior to each calculation period. If no first observation offset is specified, the observation period will end immediately preceding each calculation period. */\n    LegPaymentStreamFirstObservationDateOffsetPeriod: 41580,\n    /** Time unit associated with the relative first observation date offset. */\n    LegPaymentStreamFirstObservationDateOffsetUnit: 41581,\n    /** Specifies the commodity pricing day type. */\n    LegPaymentStreamPricingDayType: 41582,\n    /** The distribution of pricing days. */\n    LegPaymentStreamPricingDayDistribution: 41583,\n    /** The number of days over which pricing should take place. */\n    LegPaymentStreamPricingDayCount: 41584,\n    /** Specifies the business calendar to use for pricing.\n        See http://www.fpml.org/coding-scheme/commodity-business-calendar for values. */\n    LegPaymentStreamPricingBusinessCalendar: 41585,\n    /** The business day convention used to adjust the payment stream's pricing dates. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegPaymentStreamPricingBusinessDayConvention: 41586,\n    /** Specifies the source or legal framework for the risk apportionment.\n        See http://www.fixtradingcommunity.org/codelists#Risk_Apportionment_Source for the details of the external code list. */\n    UnderlyingDeliveryStreamRiskApportionmentSource: 41587,\n    /** Specifies the format of the commodities settlement start and end times. */\n    StreamCommoditySettlTimeType: 41588,\n    /** Number of payment dates in the repeating group. */\n    NoLegPaymentStreamPaymentDates: 41589,\n    /** The adjusted or unadjusted fixed stream payment date. */\n    LegPaymentStreamPaymentDate: 41590,\n    /** Specifies the type of payment date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    LegPaymentStreamPaymentDateType: 41591,\n    /** When set to 'Y', it indicates that payment dates are specified in the relevant master agreement. */\n    LegPaymentStreamMasterAgreementPaymentDatesIndicator: 41592,\n    /** Number of pricing dates in the repeating group. */\n    NoLegPaymentStreamPricingDates: 41593,\n    /** The adjusted or unadusted fixed stream pricing date. */\n    LegPaymentStreamPricingDate: 41594,\n    /** Specifies the type of pricing date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    LegPaymentStreamPricingDateType: 41595,\n    /** Number of pricing days in the repeating group. */\n    NoLegPaymentStreamPricingDays: 41596,\n    /** The day of the week on which pricing takes place. */\n    LegPaymentStreamPricingDayOfWeek: 41597,\n    /** The occurrence of the day of week on which pricing takes place.\n        For example a pricing day of the 3rd Friday would be DayOfWk=5 DayNum=3. */\n    LegPaymentStreamPricingDayNumber: 41598,\n    /** Number of entries in the repeating group. */\n    NoLegPhysicalSettlTerms: 41599,\n    /** A named string value referenced by UnderlyingSettlTermXIDRef(41315). */\n    LegPhysicalSettlTermXID: 41600,\n    /** Specifies the currency of physical settlement. Uses ISO 4217 currency codes. */\n    LegPhysicalSettlCurency: 41601,\n    /** The number of business days used in the determination of physical settlement. Its precise meaning depends on the context in which this is used.\n        ISDA 2003 Term: Business Day. */\n    LegPhysicalSettlBusinessDays: 41602,\n    /** A maximum number of business days. Its precise meaning depends on the context in which this element is used. Intended to be used to limit a particular ISDA fallback provision. */\n    LegPhysicalSettlMaximumBusinessDays: 41603,\n    /** Number of entries in the repeating group. */\n    NoLegPhysicalSettlDeliverableObligations: 41604,\n    /** Specifies the type of delivery obligation applicable for physical settlement.\n        See http://www.fixptradingcommunity.org/codelists#Deliverable_Obligation_Types for code list for applicable deliverable obligation types. */\n    LegPhysicalSettlDeliverableObligationType: 41605,\n    /** Physical settlement delivery obligation value appropriate to LegPhysicalSettlDeliverableObligationType(41605).\n        See http://www.fixtradingcommunity.org/codelists#Deliverable_Obligation_Types for code list for applicable deliverable obligation types. */\n    LegPhysicalSettlDeliverableObligationValue: 41606,\n    /** Number of business centers in the repeating group. */\n    NoLegPricingDateBusinessCenters: 41607,\n    /** The business center calendar used to adjust the pricing or fixing date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPricingDateBusinessCenter: 41608,\n    /** The unadjusted pricing or fixing date. */\n    LegPricingDateUnadjusted: 41609,\n    /** The business day convention used to adjust the pricing or fixing date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegPricingDateBusinessDayConvention: 41610,\n    /** The adjusted pricing or fixing date. */\n    LegPricingDateAdjusted: 41611,\n    /** The local market pricing or fixing time. */\n    LegPricingTime: 41612,\n    /** Specifies the business center for determining the pricing or fixing time. See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPricingTimeBusinessCenter: 41613,\n    /** Number of event sources in the repeating group. */\n    NoLegProtectionTermEventNewsSources: 41614,\n    /** A newspaper or electronic news service that may publish relevant information used in the determination of whether or not a credit event has occurred. */\n    LegProtectionTermEventNewsSource: 41615,\n    /** Number of protection terms in the repeating group. */\n    NoLegProtectionTerms: 41616,\n    /** A named string value referenced from UnderlyingProtectionTermXIDRef(41314). */\n    LegProtectionTermXID: 41617,\n    /** The notional amount of protection coverage.\n        ISDA 2003 Term: Floating Rate Payer Calculation Amount. */\n    LegProtectionTermNotional: 41618,\n    /** The currency of LegProtectionTermNotional(41618). Uses ISO 4217 currency codes. */\n    LegProtectionTermCurrency: 41619,\n    /** The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring. LegProtectionTermSellerNotifies(41620)=Y indicates that the seller notifies.\n        ISDA 2003 Term: Notifying Party. */\n    LegProtectionTermSellerNotifies: 41620,\n    /** The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring. LegProtectionTermBuyerNotifies(41621)=Y indicates that the buyer notifies.\n        ISDA 2003 Term: Notifying Party. */\n    LegProtectionTermBuyerNotifies: 41621,\n    /** When used, the business center indicates the local time of the business center that replaces the Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegProtectionTermEventBusinessCenter: 41622,\n    /** Indicates whether ISDA defined Standard Public Sources are applicable (LegProtectionTermStandardSources(41623)=Y) or not. */\n    LegProtectionTermStandardSources: 41623,\n    /** The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two.\n        ISDA 2003 Term: Specified Number. */\n    LegProtectionTermEventMinimumSources: 41624,\n    /** Number of protection term events in the repeating group. */\n    NoLegProtectionTermEvents: 41625,\n    /** Specifies the type of credit event applicable to the protection terms.\n        See http://www.fixtradingcommunity.org/codelists#Protection_Term_Event_Types for code list of applicable event types. */\n    LegProtectionTermEventType: 41626,\n    /** Specifies the protection term event value appropriate to LegProtectionTermEventType(41626). See http:///www.fixtradingcommunity.org/codelists#Protection_Term_Event_Types for applicable event type values. */\n    LegProtectionTermEventValue: 41627,\n    /** Applicable currency if the event value is an amount. Uses ISO 4217 currency codes. */\n    LegProtectionTermEventCurrency: 41628,\n    /** Time unit multiplier for protection term events. */\n    LegProtectionTermEventPeriod: 41629,\n    /** Time unit associated with protection term events. */\n    LegProtectionTermEventUnit: 41630,\n    /** Day type for events that specify a period and unit. */\n    LegProtectionTermEventDayType: 41631,\n    /** Rate source for events that specify a rate source, e.g. floating rate interest shortfall. */\n    LegProtectionTermEventRateSource: 41632,\n    /** Number of qualifiers in the repeating group. */\n    NoLegProtectionTermEventQualifiers: 41633,\n    /** Specifies the protection term event qualifier. Used to further qualify LegProtectionTermEventType(41626). */\n    LegProtectionTermEventQualifier: 41634,\n    /** Number of obligations in the repeating group. */\n    NoLegProtectionTermObligations: 41635,\n    /** Specifies the type of obligation applicable to the protection terms.\n        See http://www.fixtradingcommunity.org/codelists#Protection_Term_Obligation_Types for code list of applicable obligation types. */\n    LegProtectionTermObligationType: 41636,\n    /** The value associated with the protection term obligation specified in LegProtectionTermObligationType(41636). See http://www.fixtradingcommunity.org/codelists#Protection_Term_Obligation_Types for applicable obligation type values. */\n    LegProtectionTermObligationValue: 41637,\n    /** Number of calculation period dates in the repeating group. */\n    NoLegStreamCalculationPeriodDates: 41638,\n    /** The adjusted or unadjusted fixed calculation period date. */\n    LegStreamCalculationPeriodDate: 41639,\n    /** Specifies the type of fixed calculation period date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    LegStreamCalculationPeriodDateType: 41640,\n    /** Identifier of this calculation period for cross referencing elsewhere in the message. */\n    LegStreamCalculationPeriodDatesXID: 41641,\n    /** Cross reference to another calculation period for duplicating its properties. */\n    LegStreamCalculationPeriodDatesXIDRef: 41642,\n    /** When specified and set to 'Y', it indicates that the first calculation period should run from the effective date to the end of the calendar period in which the effective date falls (e.g. Jan 15 - Jan 31 if the calculation periods are one month long and effective date is Jan 15.). If 'N' or not specified, it indicates that the first calculation period should run from the effective date for one whole period (e.g. Jan 15 to Feb 14 if the calculation periods are one month long and the effective date is Jan 15.). */\n    LegStreamCalculationBalanceOfFirstPeriod: 41643,\n    /** Time unit multiplier for the length of time after the publication of the data when corrections can be made. */\n    LegStreamCalculationCorrectionPeriod: 41644,\n    /** Time unit associated with the length of time after the publication of the data when corrections can be made. */\n    LegStreamCalculationCorrectionUnit: 41645,\n    /** Number of business centers in the repeating group. */\n    NoLegStreamCommoditySettlBusinessCenters: 41646,\n    /** The business center calendar used to adjust the commodity delivery date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegStreamCommoditySettlBusinessCenter: 41647,\n    /** Specifies the general base type of the commodity traded. Where possible, this should follow the naming convention used in the 2005 ISDA Commodity Definitions.\n        Examples of general commodity base types include: Metal, Bullion, Oil, Natural Gas, Coal, Electricity, Inter-Energy, Grains, Oils Seeds, Dairy, Livestock, Forestry, Softs, Weather, Emissions. */\n    LegStreamCommodityBase: 41648,\n    /** Specifies the type of commodity product.\n        For coal see http://www.fpml.org/coding-scheme/commodity-coal-product-type for values.\n        For metals see http://www.fpml.org/coding-scheme/commodity-metal-product-type for values.\n        For bullion see http://www.fixtradingcommunity.org/codelists#Bullion_Types for the external code list of bullion types. */\n    LegStreamCommodityType: 41649,\n    /** Specifies the market identifier for the commodity. */\n    LegStreamCommoditySecurityID: 41650,\n    /** Identifies the class or source of the LegStreamCommoditySecurityIDSource(41650) value. */\n    LegStreamCommoditySecurityIDSource: 41651,\n    /** Description of the commodity asset. */\n    LegStreamCommodityDesc: 41652,\n    /** Byte length of encoded (non-ASCII characters) EncodedLegStreamCommodityDesc(41654) field. */\n    EncodedLegStreamCommodityDescLen: 41653,\n    /** Encoded (non-ASCII characters) representation of the LegStreamCommodityDesc(41652) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegStreamCommodityDesc(41652) field. */\n    EncodedLegStreamCommodityDesc: 41654,\n    /** The unit of measure (UOM) of the commodity asset. */\n    LegStreamCommodityUnitOfMeasure: 41655,\n    /** Identifies the currency of the commodity asset. Uses ISO 4217 currency codes. */\n    LegStreamCommodityCurrency: 41656,\n    /** Identifies the exchange where the commodity is traded. */\n    LegStreamCommodityExchange: 41657,\n    /** Identifies the source of rate information used for commodities.\n        See http://www.fixtradingcommunity.org/codelists#Commodity_Rate_Source for code list of applicable sources. */\n    LegStreamCommodityRateSource: 41658,\n    /** Identifies the reference \"page\" from the rate source. */\n    LegStreamCommodityRateReferencePage: 41659,\n    /** Identifies the page heading from the rate source. */\n    LegStreamCommodityRateReferencePageHeading: 41660,\n    /** Specifies the commodity data or information provider.\n        See http://www.fpml.org/coding-scheme/commodity-information-provider for values. */\n    LegStreamDataProvider: 41661,\n    /** Specifies how the pricing or rate setting of the trade is to be determined or based upon.\n        See http://www.fixtradingcommunity.org/codelists#Commodity_Rate_Pricing_Type for code list of applicable commodity pricing types. */\n    LegStreamCommodityPricingType: 41662,\n    /** Time unit multiplier for the nearby settlement day.\n        When the commodity transaction references a futures contract, the delivery or settlement dates are a nearby month or week. For example, for eighth nearby month use Period=8 and Unit=Mo. */\n    LegStreamCommodityNearbySettlDayPeriod: 41663,\n    /** Time unit associated with the nearby settlement day. */\n    LegStreamCommodityNearbySettlDayUnit: 41664,\n    /** The unadjusted commodity delivery date. */\n    LegStreamCommoditySettlDateUnadjusted: 41665,\n    /** The business day convention used to adjust the commodity delivery date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component. */\n    LegStreamCommoditySettlDateBusinessDayConvention: 41666,\n    /** The adjusted commodity delivery date. */\n    LegStreamCommoditySettlDateAdjusted: 41667,\n    /** Specifies a fixed single month for commodity delivery.\n        Use \"1\" for January, \"2\" for February, etc. */\n    LegStreamCommoditySettlMonth: 41668,\n    /** Time unit multiplier for the commodity delivery date roll.\n        For a commodity transaction that references a listed future via the delivery dates, this is the day offset on which the specified future will roll to the next nearby month when the referenced future expires. */\n    LegStreamCommoditySettlDateRollPeriod: 41669,\n    /** Time unit associated with the commodity delivery date roll. */\n    LegStreamCommoditySettlDateRollUnit: 41670,\n    /** Specifies the commodity delivery roll day type. */\n    LegStreamCommoditySettlDayType: 41671,\n    /** Identifier of this stream commodity for cross referencing elsewhere in the message. */\n    LegStreamCommodityXID: 41672,\n    /** Reference to a stream commodity elsewhere in the message. */\n    LegStreamCommodityXIDRef: 41673,\n    /** Number of alternate security identifers. */\n    NoLegStreamCommodityAltIDs: 41674,\n    /** Alternate security identifier value for the commodity. */\n    LegStreamCommodityAltID: 41675,\n    /** Identifies the class or source of the alternate commodity security identifier. */\n    LegStreamCommodityAltIDSource: 41676,\n    /** Number of data sources in the repeating group. The order of entry determines priority \u2013 first is the main source, second is fallback, third is second fallback. */\n    NoLegStreamCommodityDataSources: 41677,\n    /** Specifies the data source identifier. */\n    LegStreamCommodityDataSourceID: 41678,\n    /** Specifies the type of data source identifier. */\n    LegStreamCommodityDataSourceIDType: 41679,\n    /** Number of days in the repeating group. */\n    NoLegStreamCommoditySettlDays: 41680,\n    /** Specifies the day or group of days for delivery. */\n    LegStreamCommoditySettlDay: 41681,\n    /** Sum of the hours specified in LegStreamCommoditySettlTimeGrp. */\n    LegStreamCommoditySettlTotalHours: 41682,\n    /** Number of hour ranges in the repeating group. */\n    NoLegStreamCommoditySettlTimes: 41683,\n    /** The start time for commodity settlement where delivery occurs over time. The time format is specified by the settlement time type. */\n    LegStreamCommoditySettlStart: 41684,\n    /** The end time for commodity settlement where delivery occurs over time. The time format is specified by the settlement time type. */\n    LegStreamCommoditySettlEnd: 41685,\n    /** Number of commodity settlement periods in the repeating group. */\n    NoLegStreamCommoditySettlPeriods: 41686,\n    /** Specifies the country where delivery takes place. Uses ISO 3166 2-character country code. */\n    LegStreamCommoditySettlCountry: 41687,\n    /** Commodity delivery timezone specified as \"prevailing\" rather than \"standard\" or \"daylight\".\n        See http://www.fixtradingcommunity.org/codelists#Prevailing_Timezones for code list of applicable prevailing timezones. */\n    LegStreamCommoditySettlTimeZone: 41688,\n    /** Specifies the commodity delivery flow type. */\n    LegStreamCommoditySettlFlowType: 41689,\n    /** Delivery quantity associated with this settlement period. */\n    LegStreamCommoditySettlPeriodNotional: 41690,\n    /** Specifies the unit of measure (UOM) of the delivery quantity associated with this settlement period. */\n    LegStreamCommoditySettlPeriodNotionalUnitOfMeasure: 41691,\n    /** Time unit multiplier for the settlement period frequency. */\n    LegStreamCommoditySettlPeriodFrequencyPeriod: 41692,\n    /** Time unit associated with the settlement period frequency. */\n    LegStreamCommoditySettlPeriodFrequencyUnit: 41693,\n    /** The settlement period price. */\n    LegStreamCommoditySettlPeriodPrice: 41694,\n    /** The settlement period price unit of measure (UOM). */\n    LegStreamCommoditySettlPeriodPriceUnitOfMeasure: 41695,\n    /** The currency of the settlement period price. Uses ISO 4217 currency codes. */\n    LegStreamCommoditySettlPeriodPriceCurrency: 41696,\n    /** Indicates whether holidays are included in the settlement periods. Required for electricity contracts. */\n    LegStreamCommoditySettlHolidaysProcessingInstruction: 41697,\n    /** Identifier of this settlement period for cross referencing elsewhere in the message. */\n    LegStreamCommoditySettlPeriodXID: 41698,\n    /** Cross reference to another settlement period for duplicating its properties. */\n    LegStreamCommoditySettlPeriodXIDRef: 41699,\n    /** Identifier of this LegStream for cross referencing elsewhere in the message. */\n    LegStreamXID: 41700,\n    /** Identifies the source scheme of the UnderlyingAdditionalTermBondSecurityID(41341) value. */\n    UnderlyingAdditionalTermBondSecurityIDSource: 41701,\n    /** Cross reference to another LegStream notional for duplicating its properties. */\n    LegStreamNotionalXIDRef: 41702,\n    /** Time unit multiplier for the swap stream's notional frequency. */\n    LegStreamNotionalFrequencyPeriod: 41703,\n    /** Time unit associated with the swap stream's notional frequency. */\n    LegStreamNotionalFrequencyUnit: 41704,\n    /** The commodity's notional or quantity delivery frequency. */\n    LegStreamNotionalCommodityFrequency: 41705,\n    /** Specifies the delivery quantity unit of measure (UOM). */\n    LegStreamNotionalUnitOfMeasure: 41706,\n    /** Specifies the total notional or delivery quantity over the term of the contract. */\n    LegStreamTotalNotional: 41707,\n    /** Specifies the unit of measure (UOM) for the total notional or delivery quantity over the term of the contract. */\n    LegStreamTotalNotionalUnitOfMeasure: 41708,\n    /** Description of the bond. */\n    UnderlyingAdditionalTermBondDesc: 41709,\n    /** Byte length of encoded (non-ASCII characters) EncodedUnderlyingAdditionalTermBondDesc(41711) field. */\n    EncodedUnderlyingAdditionalTermBondDescLen: 41710,\n    /** Encoded (non-ASCII characters) representation of the UnderlyingAdditionalTermBondDesc(41709) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingAdditionalTermBondDesc(41709) field. */\n    EncodedUnderlyingAdditionalTermBondDesc: 41711,\n    /** Specifies the currency the bond value is denominated in. Uses ISO 4217 currency codes. */\n    UnderlyingAdditionalTermBondCurrency: 41712,\n    /** The number of averaging observations in the repeating group. */\n    NoUnderlyingComplexEventAveragingObservations: 41713,\n    /** Cross reference to the ordinal observation as specified either in the UnderlyingComplexEventScheduleGrp or UnderlyingComplexEventPeriodDateGrp components. */\n    UnderlyingComplexEventAveragingObservationNumber: 41714,\n    /** The weight factor to be applied to the observation. */\n    UnderlyingComplexEventAveragingWeight: 41715,\n    /** The number of credit events specified in the repeating group. */\n    NoUnderlyingComplexEventCreditEvents: 41716,\n    /** Specifies the type of credit event.\n        See http://www.fixtradingcommunity.org/codelists#Credit_Event_Types for code list of applicable event types. */\n    UnderlyingComplexEventCreditEventType: 41717,\n    /** The credit event value appropriate to UnderlyingComplexEventCreditEventType(41717).\n        See http://www.fixtradingcommunity.org/codelists#Credit_Event_Types for applicable event type values. */\n    UnderlyingComplexEventCreditEventValue: 41718,\n    /** Specifies the applicable currency when UnderlyingComplexEventCreditEventValue(41718) is an amount. Uses ISO 4217 currency codes. */\n    UnderlyingComplexEventCreditEventCurrency: 41719,\n    /** Time unit multiplier for complex credit events. */\n    UnderlyingComplexEventCreditEventPeriod: 41720,\n    /** Time unit associated with complex credit events. */\n    UnderlyingComplexEventCreditEventUnit: 41721,\n    /** Specifies the day type for the complex credit events. */\n    UnderlyingComplexEventCreditEventDayType: 41722,\n    /** Identifies the source of rate information used for credit events.\n        See http://www.fixtradingcommunity.org/codelists#Credit_Event_Rate_Source for code list of applicable sources. */\n    UnderlyingComplexEventCreditEventRateSource: 41723,\n    /** Number of qualifiers in the repeating group. */\n    NoUnderlyingComplexEventCreditEventQualifiers: 41724,\n    /** Specifies a complex event qualifier. Used to further qualify UnderlyingComplexEventCreditEventType(41717). */\n    UnderlyingComplexEventCreditEventQualifier: 41725,\n    /** Number of entries in the date-time repeating group. */\n    NoUnderlyingComplexEventPeriodDateTimes: 41726,\n    /** The averaging date for an Asian option.\n        The trigger date for a Barrier or Knock option. */\n    UnderlyingComplexEventPeriodDate: 41727,\n    /** The averaging time for an Asian option. */\n    UnderlyingComplexEventPeriodTime: 41728,\n    /** Number of periods in the repeating group. */\n    NoUnderlyingComplexEventPeriods: 41729,\n    /** Specifies the period type. */\n    UnderlyingComplexEventPeriodType: 41730,\n    /** The business center for adjusting dates and times in the schedule or date-time group.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingComplexEventBusinessCenter: 41731,\n    /** Number of rate sources in the repeating group. */\n    NoUnderlyingComplexEventRateSources: 41732,\n    /** Identifies the source of rate information.\n        For FX, the reference source to be used for the FX spot rate. */\n    UnderlyingComplexEventRateSource: 41733,\n    /** Indicates whether the rate source specified is a primary or secondary source. */\n    UnderlyingComplexEventRateSourceType: 41734,\n    /** Identifies the reference page from the rate source.\n        For FX, the reference page to the spot rate is to be used for the reference FX spot rate.\n        When UnderlyingComplexEventRateSource(41733) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option. */\n    UnderlyingComplexEventReferencePage: 41735,\n    /** Identifies the reference page heading from the rate source. */\n    UnderlyingComplexEventReferencePageHeading: 41736,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingComplexEventDateBusinessCenters: 41737,\n    /** The business center calendar is used to adjust the event date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingComplexEventDateBusinessCenter: 41738,\n    /** The unadjusted complex event date.\n        For example the second expiration date for a calendar spread option strategy. */\n    UnderlyingComplexEventDateUnadjusted: 41739,\n    /** Specifies the anchor date when the complex event date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingComplexEventDateRelativeTo: 41740,\n    /** Time unit multiplier for the relative date offset. */\n    UnderlyingComplexEventDateOffsetPeriod: 41741,\n    /** Time unit associated with the relative date offset. */\n    UnderlyingComplexEventDateOffsetUnit: 41742,\n    /** Specifies the day type of the relative date offset. */\n    UnderlyingComplexEventDateOffsetDayType: 41743,\n    /** The business day convention used to adjust the event date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingComplexEventDateBusinessDayConvention: 41744,\n    /** The adjusted complex event date. */\n    UnderlyingComplexEventDateAdjusted: 41745,\n    /** The local market fixing time. */\n    UnderlyingComplexEventFixingTime: 41746,\n    /** The business center for determining the actual fixing times.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingComplexEventFixingTimeBusinessCenter: 41747,\n    /** Number of event sources in the repeating group. */\n    NoUnderlyingComplexEventCreditEventSources: 41748,\n    /** A newspaper or electronic news service that may publish relevant information used in the determination of whether or not a credit event has occurred. */\n    UnderlyingComplexEventCreditEventSource: 41749,\n    /** Number of schedules in the repeating group. */\n    NoUnderlyingComplexEventSchedules: 41750,\n    /** The start date of the schedule. */\n    UnderlyingComplexEventScheduleStartDate: 41751,\n    /** The end date of the schedule. */\n    UnderlyingComplexEventScheduleEndDate: 41752,\n    /** Time unit multiplier for the schedule date frequency. */\n    UnderlyingComplexEventScheduleFrequencyPeriod: 41753,\n    /** Time unit associated with the schedule date frequency. */\n    UnderlyingComplexEventScheduleFrequencyUnit: 41754,\n    /** The convention for determining the sequence of dates. It is used in conjunction with a specified frequency. Used only to override the roll convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. */\n    UnderlyingComplexEventScheduleRollConvention: 41755,\n    /** Number of delivery schedules in the repeating group. */\n    NoUnderlyingDeliverySchedules: 41756,\n    /** Specifies the type of delivery schedule. */\n    UnderlyingDeliveryScheduleType: 41757,\n    /** Identifier for this instance of delivery schedule for cross referencing elsewhere in the message. */\n    UnderlyingDeliveryScheduleXID: 41758,\n    /** Physical delivery quantity. */\n    UnderlyingDeliveryScheduleNotional: 41759,\n    /** Specifies the delivery quantity unit of measure (UOM). */\n    UnderlyingDeliveryScheduleNotionalUnitOfMeasure: 41760,\n    /** The frequency of notional delivery. */\n    UnderlyingDeliveryScheduleNotionalCommodityFrequency: 41761,\n    /** Specifies the negative tolerance value. The value may be an absolute quantity or a percentage, as specified in UnderlyingDeliveryScheduleToleranceType(41765). Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%). */\n    UnderlyingDeliveryScheduleNegativeTolerance: 41762,\n    /** Specifies the positive tolerance value. The value may be an absolute quantity or a percentage, as specified in UnderlyingDeliveryScheduleToleranceType(41765). Value may exceed agreed upon value. Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%). */\n    UnderlyingDeliverySchedulePositiveTolerance: 41763,\n    /** Specifies the tolerance value's unit of measure (UOM). */\n    UnderlyingDeliveryScheduleToleranceUnitOfMeasure: 41764,\n    /** Specifies the tolerance value type. */\n    UnderlyingDeliveryScheduleToleranceType: 41765,\n    /** Specifies the country where delivery takes place. Uses ISO 3166 2-character country code. */\n    UnderlyingDeliveryScheduleSettlCountry: 41766,\n    /** Delivery timezone specified as \"prevailing\" rather than \"standard\" or \"daylight\".\n        See http://www.fixtradingcommunity.org/codelists#Prevailing_Timezones for code list of applicable prevailing timezones. */\n    UnderlyingDeliveryScheduleSettlTimeZone: 41767,\n    /** Specifies the delivery flow type. */\n    UnderlyingDeliveryScheduleSettlFlowType: 41768,\n    /** Indicates whether holidays are included in the settlement periods. Required for electricity contracts. */\n    UnderlyingDeliveryScheduleSettlHolidaysProcessingInstruction: 41769,\n    /** Number of delivery schedules in the repeating group. */\n    NoUnderlyingDeliveryScheduleSettlDays: 41770,\n    /** Specifies the day or group of days for delivery. */\n    UnderlyingDeliveryScheduleSettlDay: 41771,\n    /** The sum of the total hours specified in the UnderlyingDeliveryScheduleSettlTimeGrp component. */\n    UnderlyingDeliveryScheduleSettlTotalHours: 41772,\n    /** Number of hour ranges in the repeating group. */\n    NoUnderlyingDeliveryScheduleSettlTimes: 41773,\n    /** The scheduled start time for the delivery of the commodity where delivery occurs over specified times. The format of the time value is specified in UnderlyingDeliveryScheduleSettlTimeType(41776). */\n    UnderlyingDeliveryScheduleSettlStart: 41774,\n    /** The scheduled end time for the delivery of the commodity where delivery occurs over specified times. The format of the time value is specified in UnderlyingDeliveryScheduleSettlTimeType(41776). */\n    UnderlyingDeliveryScheduleSettlEnd: 41775,\n    /** Specifies the format of the delivery start and end time values. */\n    UnderlyingDeliveryScheduleSettlTimeType: 41776,\n    /** Specifies the type of delivery stream. */\n    UnderlyingDeliveryStreamType: 41777,\n    /** The name of the oil delivery pipeline. */\n    UnderlyingDeliveryStreamPipeline: 41778,\n    /** The point at which the commodity will enter the delivery mechanism or pipeline. */\n    UnderlyingDeliveryStreamEntryPoint: 41779,\n    /** The point at which the commodity product will be withdrawn prior to delivery. */\n    UnderlyingDeliveryStreamWithdrawalPoint: 41780,\n    /** The point at which the commodity product will be delivered and received. Value specified should follow market convention appropriate for the commodity product.\n        For bullion see http://www.fpml.org/coding-scheme/bullion-delivery-location for values. */\n    UnderlyingDeliveryStreamDeliveryPoint: 41781,\n    /** Specifies under what conditions the buyer and seller should be excused of their delivery obligations. */\n    UnderlyingDeliveryStreamDeliveryRestriction: 41782,\n    /** Specifies the electricity delivery contingency.\n        See http://www.fpml.org/coding-scheme/electricity-transmission-contingency for values. */\n    UnderlyingDeliveryStreamDeliveryContingency: 41783,\n    /** The trade side value of the party responsible for electricity delivery contingency. */\n    UnderlyingDeliveryStreamDeliveryContingentPartySide: 41784,\n    /** When this element is specified and set to 'Y', delivery of the coal product is to be at its source. */\n    UnderlyingDeliveryStreamDeliverAtSourceIndicator: 41785,\n    /** Specifies how the parties to the trade apportion responsibility for the delivery of the commodity product.\n        See http://www.fixtradingcommunity.org/codelists#Risk_Apportionment for the details of the external code list. */\n    UnderlyingDeliveryStreamRiskApportionment: 41786,\n    /** Specifies the title transfer location. */\n    UnderlyingDeliveryStreamTitleTransferLocation: 41787,\n    /** Specifies the title transfer condition. */\n    UnderlyingDeliveryStreamTitleTransferCondition: 41788,\n    /** A party, not necessarily of the trade, who is the Importer of Record for the purposes of paying customs duties and applicable taxes or costs related to importation. */\n    UnderlyingDeliveryStreamImporterOfRecord: 41789,\n    /** Specifies the negative tolerance value. The value may be an absolute quantity or a percentage, as specified in UnderlyingDeliveryStreamToleranceType(41793). Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%). */\n    UnderlyingDeliveryStreamNegativeTolerance: 41790,\n    /** Specifies the positive tolerance value. The value may be an absolute quantity or a percentage, as specified in UnderlyingDeliveryStreamToleranceType(41793). Value may exceed agreed upon value. Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%). */\n    UnderlyingDeliveryStreamPositiveTolerance: 41791,\n    /** Specifies the tolerance value's unit of measure (UOM). */\n    UnderlyingDeliveryStreamToleranceUnitOfMeasure: 41792,\n    /** Specifies the tolerance value type. */\n    UnderlyingDeliveryStreamToleranceType: 41793,\n    /** Indicates whether the tolerance is at the seller's or buyer's option. */\n    UnderlyingDeliveryStreamToleranceOptionSide: 41794,\n    /** The positive percent tolerance which applies to the total quantity delivered over all shipment periods.\n        Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%.). */\n    UnderlyingDeliveryStreamTotalPositiveTolerance: 41795,\n    /** The negative percent tolerance which applies to the total quantity delivered over all shipment periods.\n        Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%.). */\n    UnderlyingDeliveryStreamTotalNegativeTolerance: 41796,\n    /** If the notional quantity is specified in a unit that does not match the unit in which the commodity reference price is quoted, the scaling or conversion factor used to convert the commodity reference price unit into the notional quantity unit should be stated here. If there is no conversion, this field is not intended to be used. */\n    UnderlyingDeliveryStreamNotionalConversionFactor: 41797,\n    /** The transportation equipment with which the commodity product will be delivered and received.\n        Examples of transportation equipment or mode are barge, truck, railcar, etc. */\n    UnderlyingDeliveryStreamTransportEquipment: 41798,\n    /** A reference to the party able to choose whether the gas is delivered for a particular period e.g. a swing or interruptible contract. */\n    UnderlyingDeliveryStreamElectingPartySide: 41799,\n    /** Number of asset attribute entries in the group. */\n    NoUnderlyingStreamAssetAttributes: 41800,\n    /** Specifies the name of the attribute.\n        See http://www.fixtradingcommunity.org/codelists#Asset_Attribute_Types for code list of applicable asset attribute types. */\n    UnderlyingStreamAssetAttributeType: 41801,\n    /** Specifies the value of the attribute. */\n    UnderlyingStreamAssetAttributeValue: 41802,\n    /** The limit or lower acceptable value of the attribute. */\n    UnderlyingStreamAssetAttributeLimit: 41803,\n    /** Number of delivery cycles in the repeating group. */\n    NoUnderlyingDeliveryStreamCycles: 41804,\n    /** The delivery cycles during which the oil product will be transported in the pipeline. */\n    UnderlyingDeliveryStreamCycleDesc: 41805,\n    /** Byte length of encoded (non-ASCII characters) EncodedUnderlyingDeliveryStreamCycleDesc(41807) field. */\n    EncodedUnderlyingDeliveryStreamCycleDescLen: 41806,\n    /** Encoded (non-ASCII characters) representation of the UnderlyingDeliveryStreamCycleDesc(41805) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingDeliveryStreamCycleDesc(41805) field. */\n    EncodedUnderlyingDeliveryStreamCycleDesc: 41807,\n    /** Number of commodity sources in the repeating group. */\n    NoUnderlyingDeliveryStreamCommoditySources: 41808,\n    /** The SCoTA coal cargo origin, mining region, mine(s), mining complex(es), loadout(s) or river dock(s) or other point(s) of origin that seller and buyer agree are acceptable origins for the coal product. For international coal transactions, this is the origin of the coal product.\n        See http://www.fpml.org/coding-scheme/commodity-coal-product-source for values. */\n    UnderlyingDeliveryStreamCommoditySource: 41809,\n    /** A description of the option exercise. */\n    UnderlyingExerciseDesc: 41810,\n    /** Byte length of encoded (non-ASCII characters) EncodedUnderlyingExerciseDesc(41812) field. */\n    EncodedUnderlyingExerciseDescLen: 41811,\n    /** Encoded (non-ASCII characters) representation of the UnderlyingExerciseDesc(41810) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingExerciseDesc(41810) field. */\n    EncodedUnderlyingExerciseDesc: 41812,\n    /** Indicates (when 'Y') that exercise is automatic when the strike price is crossed or the underlying trade is in the money. */\n    UnderlyingAutomaticExerciseIndicator: 41813,\n    /** The threshold rate for triggering automatic exercise. */\n    UnderlyingAutomaticExerciseThresholdRate: 41814,\n    /** Indicates whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent. */\n    UnderlyingExerciseConfirmationMethod: 41815,\n    /** Identifies the business center used for adjusting the time for manual exercise notice.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingManualNoticeBusinessCenter: 41816,\n    /** Indicates whether the notional amount of the underlying swap, not previously exercised under the option, will be automatically exercised at the expiration time on the expiration date if at such time the buyer is in-the-money, provided that the difference between the settlement rate and the fixed rate under the relevant underlying swap is not less than one tenth of a percentage point (0.10% or 0.001). */\n    UnderlyingFallbackExerciseIndicator: 41817,\n    /** Indicates whether the Seller may request the Buyer to confirm its intent to exercise if not done on or before the expiration time on the Expiration date. If true (\"Y\") specific rules will apply in relation to the settlement mode. */\n    UnderlyingLimitedRightToConfirmIndicator: 41818,\n    /** Indicates in physical settlement of bond and convertible bond options whether the party required to deliver the bonds will divide those to be delivered as notifying party desires to facilitate delivery obligations. */\n    UnderlyingExerciseSplitTicketIndicator: 41819,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingOptionExerciseBusinessCenters: 41820,\n    /** The business center calendar used to adjust the option exercise dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingOptionExerciseBusinessCenter: 41821,\n    /** The business day convention used to adjust the option exercise dates. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingOptionExerciseBusinessDayConvention: 41822,\n    /** Specifies the day type of the relative earliest exercise date offset. */\n    UnderlyingOptionExerciseEarliestDateOffsetDayType: 41823,\n    /** Time unit multiplier for the relative earliest exercise date offset. */\n    UnderlyingOptionExerciseEarliestDateOffsetPeriod: 41824,\n    /** Time unit associated with the relative earliest exercise date offset. */\n    UnderlyingOptionExerciseEarliestDateOffsetUnit: 41825,\n    /** Time unit multiplier for the frequency of exercise dates. */\n    UnderlyingOptionExerciseFrequencyPeriod: 41826,\n    /** Time unit associated with the frequency of exercise dates. */\n    UnderlyingOptionExerciseFrequencyUnit: 41827,\n    /** The unadjusted start date for calculating periodic exercise dates. */\n    UnderlyingOptionExerciseStartDateUnadjusted: 41828,\n    /** Specifies the anchor date when the option exercise start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingOptionExerciseStartDateRelativeTo: 41829,\n    /** Time unit multiplier for the relative exercise start date offset. */\n    UnderlyingOptionExerciseStartDateOffsetPeriod: 41830,\n    /** Time unit associated with the relative exercise start date offset. */\n    UnderlyingOptionExerciseStartDateOffsetUnit: 41831,\n    /** Specifies the day type of the relative option exercise start date offset. */\n    UnderlyingOptionExerciseStartDateOffsetDayType: 41832,\n    /** The adjusted start date for calculating periodic exercise dates. */\n    UnderlyingOptionExerciseStartDateAdjusted: 41833,\n    /** The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1. */\n    UnderlyingOptionExerciseSkip: 41834,\n    /** The last date (adjusted) for establishing the option exercise terms. */\n    UnderlyingOptionExerciseNominationDeadline: 41835,\n    /** The unadjusted first exercise date. */\n    UnderlyingOptionExerciseFirstDateUnadjusted: 41836,\n    /** The unadjusted last exercise date. */\n    UnderlyingOptionExerciseLastDateUnadjusted: 41837,\n    /** The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) (i) on the expriation date, in the case of a European style option, (ii) on each Bermuda option exercise date and the expiration date, in the case of a Bermuda style option, (iii) the commencement date to, and including, the expiration date, in the case of an American option. */\n    UnderlyingOptionExerciseEarliestTime: 41838,\n    /** Latest exercise time. See also UnderlyingOptionExerciseEarliestTime(41838). */\n    UnderlyingOptionExerciseLatestTime: 41839,\n    /** The business center used to determine the locale for option exercise time, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values */\n    UnderlyingOptionExerciseTimeBusinessCenter: 41840,\n    /** Number of dates in the repeating group. */\n    NoUnderlyingOptionExerciseDates: 41841,\n    /** The adjusted or unadjusted option exercise fixed date. */\n    UnderlyingOptionExerciseDate: 41842,\n    /** Specifies the type of option exercise date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    UnderlyingOptionExerciseDateType: 41843,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingOptionExerciseExpirationDateBusinessCenters: 41844,\n    /** The business center calendar used to adjust the option exercise expiration dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingOptionExerciseExpirationDateBusinessCenter: 41845,\n    /** The business day convention used to adjust the option exercise expiration dates. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingOptionExerciseExpirationDateBusinessDayConvention: 41846,\n    /** Specifies the anchor date when the option exercise expiration date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingOptionExerciseExpirationDateRelativeTo: 41847,\n    /** Time unit multiplier for the relative exercise expiration date offset. */\n    UnderlyingOptionExerciseExpirationDateOffsetPeriod: 41848,\n    /** Time unit associated with the relative exercise expiration date offset. */\n    UnderlyingOptionExerciseExpirationDateOffsetUnit: 41849,\n    /** Time unit multiplier for the frequency of exercise expiration dates. */\n    UnderlyingOptionExerciseExpirationFrequencyPeriod: 41850,\n    /** Time unit associated with the frequency of exercise expiration dates. */\n    UnderlyingOptionExerciseExpirationFrequencyUnit: 41851,\n    /** The convention for determining the sequence of exercise expiration dates. It is used in conjunction with a specified frequency. Used only to override the roll convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. */\n    UnderlyingOptionExerciseExpirationRollConvention: 41852,\n    /** Specifies the day type of the relative option exercise expiration date offset. */\n    UnderlyingOptionExerciseExpirationDateOffsetDayType: 41853,\n    /** The option exercise expiration time. */\n    UnderlyingOptionExerciseExpirationTime: 41854,\n    /** The business center used to determine the locale for option exercise expiration time, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingOptionExerciseExpirationTimeBusinessCenter: 41855,\n    /** Number of fixed exercise expiration dates in the repeating group. */\n    NoUnderlyingOptionExerciseExpirationDates: 41856,\n    /** The adjusted or unadjusted option exercise expiration fixed date. */\n    UnderlyingOptionExerciseExpirationDate: 41857,\n    /** Specifies the type of option exercise expiration date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    UnderlyingOptionExerciseExpirationDateType: 41858,\n    /** The consequences of market disruption events. */\n    UnderlyingMarketDisruptionProvision: 41859,\n    /** Specifies the location of the fallback provision documentation. */\n    UnderlyingMarketDisruptionFallbackProvision: 41860,\n    /** Specifies the maximum number of market disruption days (commodity or bullion business days) in a contract or confirmation. If none are specified, the maximum number of market disruption days is five (5).\n        ISDA 2005 Commodity Definition. */\n    UnderlyingMarketDisruptionMaximumDays: 41861,\n    /** Used when a price materiality percentage applies to the price source disruption event and this event has been specified.\n        Applicable to 2005 Commodity Definitions only. */\n    UnderlyingMarketDisruptionMaterialityPercentage: 41862,\n    /** Specifies the minimum futures contracts level that dictates whether or not a 'De Minimis Trading' event has occurred.\n        Applicable to 1993 Commodity Definitions only. */\n    UnderlyingMarketDisruptionMinimumFuturesContracts: 41863,\n    /** Number of disruption events in the repeating group. */\n    NoUnderlyingMarketDisruptionEvents: 41864,\n    /** Specifies the market disruption event.\n        For commodities see http://www.fpml.org/coding-scheme/commodity-market-disruption for values.\n        For foreign exchange, see http://www.fixtradingcommunity.org/codelists#Market_Disruption_Event for code list of applicable event types. */\n    UnderlyingMarketDisruptionEvent: 41865,\n    /** Number of fallbacks in the repeating group. */\n    NoUnderlyingMarketDisruptionFallbacks: 41866,\n    /** Specifies the type of disruption fallback.\n        See http://www.fpml.org/coding-scheme/commodity-market-disruption-fallback for values. */\n    UnderlyingMarketDisruptionFallbackType: 41867,\n    /** Number of fallback reference securities in the repeating group. */\n    NoUnderlyingMarketDisruptionFallbackReferencePrices: 41868,\n    /** The type of reference price underlier. */\n    UnderlyingMarketDisruptionFallbackUnderlierType: 41869,\n    /** Specifies the identifier value of the security. */\n    UnderlyingMarketDisruptionFallbackUnderlierSecurityID: 41870,\n    /** Specifies the class or source scheme of the security identifier. */\n    UnderlyingMarketDisruptionFallbackUnderlierSecurityIDSource: 41871,\n    /** Specifies the description of underlying security. */\n    UnderlyingMarketDisruptionFallbackUnderlierSecurityDesc: 41872,\n    /** Byte length of encoded (non-ASCII characters) EncodedUnderlyingMarketDisruptionFallbackUnderlierSecurityDesc(41874) field. */\n    EncodedUnderlyingMarketDisruptionFallbackUnderlierSecDescLen: 41873,\n    /** Encoded (non-ASCII characters) representation of the UnderlyingMarketDisruptionFallbackUnderlierSecurityDesc(41872) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingMarketDisruptionFallbackUnderlierSecurityDesc(41872). */\n    EncodedUnderlyingMarketDisruptionFallbackUnderlierSecurityDesc: 41874,\n    /** If there are multiple underlying assets, this specifies the number of units (index or securities) that constitute the underlier of the swap. In the case of a basket swap, this is used to reference both the number of basket units, and the number of each asset components of the basket when these are expressed in absolute terms. */\n    UnderlyingMarketDisruptionFallbackOpenUnits: 41875,\n    /** Specifies the currency if the underlier is a basket. Uses ISO 4217 currency codes. */\n    UnderlyingMarketDisruptionFallbackBasketCurrency: 41876,\n    /** Specifies the basket divisor amount. This value is normally used to adjust the constituent weight for pricing or to adjust for dividends, or other corporate actions. */\n    UnderlyingMarketDisruptionFallbackBasketDivisor: 41877,\n    /** Number of fixing days in the repeating group. */\n    NoUnderlyingPaymentScheduleFixingDays: 41878,\n    /** The day of the week on which fixing takes place. */\n    UnderlyingPaymentScheduleFixingDayOfWeek: 41879,\n    /** The occurrence of the day of week on which fixing takes place.\n        For example, a fixing of the 3rd Friday would be DayOfWk=5 DayNum=3. If omitted every day of the week is a fixing day. */\n    UnderlyingPaymentScheduleFixingDayNumber: 41880,\n    /** Identifier of this UnderlyingPaymentSchedule for cross referencing elsewhere in the message. */\n    UnderlyingPaymentScheduleXID: 41881,\n    /** Reference to payment schedule elsewhere in the message. */\n    UnderlyingPaymentScheduleXIDRef: 41882,\n    /** Specifies the currency of the schedule rate. Uses ISO 4217 currency codes. */\n    UnderlyingPaymentScheduleRateCurrency: 41883,\n    /** The schedule rate unit of measure (UOM). */\n    UnderlyingPaymentScheduleRateUnitOfMeasure: 41884,\n    /** The number to be multiplied by the derived floating rate of the underlying's payment schedule in order to arrive at the payment rate. If omitted, the schedule rate conversion factor is 1. */\n    UnderlyingPaymentScheduleRateConversionFactor: 41885,\n    /** Specifies whether the rate spread is an absolute value to be added to the index rate or a percentage of the index rate. */\n    UnderlyingPaymentScheduleRateSpreadType: 41886,\n    /** The schedule settlement period price. */\n    UnderlyingPaymentScheduleSettlPeriodPrice: 41887,\n    /** The currency of the schedule settlement period price. Uses ISO 4217 currency codes. */\n    UnderlyingPaymentScheduleSettlPeriodPriceCurrency: 41888,\n    /** The settlement period price unit of measure (UOM). */\n    UnderlyingPaymentScheduleSettlPeriodPriceUnitOfMeasure: 41889,\n    /** The schedule step unit of measure (UOM). */\n    UnderlyingPaymentScheduleStepUnitOfMeasure: 41890,\n    /** The distribution of fixing days. */\n    UnderlyingPaymentScheduleFixingDayDistribution: 41891,\n    /** The number of days over which fixing should take place. */\n    UnderlyingPaymentScheduleFixingDayCount: 41892,\n    /** Time unit multiplier for the fixing lag duration. */\n    UnderlyingPaymentScheduleFixingLagPeriod: 41893,\n    /** Time unit associated with the fixing lag duration. */\n    UnderlyingPaymentScheduleFixingLagUnit: 41894,\n    /** Time unit multiplier for the relative first observation date offset.\n        If the first observation offset is specified, the observation period will start the specified interval prior to each calculation period - i.e. if the first observation offset is 4 months and the lag duration is 3 months, observations will be taken in months 4, 3 and 2 (but not 1) prior to each calculation period. If no first observation offset is specified, the observation period will end immediately preceding each calculation period. */\n    UnderlyingPaymentScheduleFixingFirstObservationDateOffsetPeriod: 41895,\n    /** Time unit associated with the relative first observation date offset. */\n    UnderlyingPaymentScheduleFixingFirstObservationDateOffsetUnit: 41896,\n    /** When this element is specified and set to 'Y', the Flat Rate is the New Worldwide Tanker Nominal Freight Scale for the Freight Index Route taken at the Trade Date of the transaction \"Fixed\". If 'N' it is taken on each Pricing Date \"Floating\". */\n    UnderlyingPaymentStreamFlatRateIndicator: 41897,\n    /** Specifies the actual monetary value of the flat rate when UnderlyingPaymentStreamFlatRateIndicator(41897) = 'Y'. */\n    UnderlyingPaymentStreamFlatRateAmount: 41898,\n    /** Specifies the currency of the actual flat rate. Uses ISO 4217 currency codes. */\n    UnderlyingPaymentStreamFlatRateCurrency: 41899,\n    /** Specifies the limit on the total payment amount. */\n    UnderlyingPaymentStreamMaximumPaymentAmount: 41900,\n    /** Specifies the currency of total payment amount limit. Uses ISO 4217 currency codes. */\n    UnderlyingPaymentStreamMaximumPaymentCurrency: 41901,\n    /** Specifies the limit on the payment amount that goes out in any particular calculation period. */\n    UnderlyingPaymentStreamMaximumTransactionAmount: 41902,\n    /** Specifies the currency of the period payment amount limit. Uses ISO 4217 currency codes. */\n    UnderlyingPaymentStreamMaximumTransactionCurrency: 41903,\n    /** Fixed payment amount unit of measure (UOM). */\n    UnderlyingPaymentStreamFixedAmountUnitOfMeasure: 41904,\n    /** Specifies the total fixed payment amount. */\n    UnderlyingPaymentStreamTotalFixedAmount: 41905,\n    /** The number of Worldscale points for purposes of the calculation of a fixed amount for a wet voyage charter commodity swap. */\n    UnderlyingPaymentStreamWorldScaleRate: 41906,\n    /** The price per relevant unit for purposes of the calculation of a fixed amount for a dry voyage charter or time charter commodity swap. */\n    UnderlyingPaymentStreamContractPrice: 41907,\n    /** Specifies the currency of UnderlyingPaymentStreamContractPrice(41907). Uses ISO 4217 currency codes. */\n    UnderlyingPaymentStreamContractPriceCurrency: 41908,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingPaymentStreamPricingBusinessCenters: 41909,\n    /** The business center calendar used to adjust the payment stream's pricing dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPaymentStreamPricingBusinessCenter: 41910,\n    /** Secondary time unit associated with the payment stream\u2019s floating rate index curve. */\n    UnderlyingPaymentStreamRateIndex2CurveUnit: 41911,\n    /** Secondary time unit multiplier for the payment stream\u2019s floating rate index curve.\n        May be used for a Forward Rate Agreement (FRA) with an average rate between two curve points. */\n    UnderlyingPaymentStreamRateIndex2CurvePeriod: 41912,\n    /** Specifies the location of the floating rate index. */\n    UnderlyingPaymentStreamRateIndexLocation: 41913,\n    /** This is the weather Cooling Degree Days (CDD), Heating Degree Days (HDD) or HDD index level specified as the number of (amount of) weather index units specified by the parties in the related confirmation. */\n    UnderlyingPaymentStreamRateIndexLevel: 41914,\n    /** The unit of measure (UOM) of the rate index level. */\n    UnderlyingPaymentStreamRateIndexUnitOfMeasure: 41915,\n    /** Specifies how weather index units are to be calculated. */\n    UnderlyingPaymentStreamSettlLevel: 41916,\n    /** This is the weather Cooling Degree Days (CDD), Heating Degree Days (HDD) or HDD reference level specified as the number of (amount of) weather index units specified by the parties in the related confirmation. */\n    UnderlyingPaymentStreamReferenceLevel: 41917,\n    /** The unit of measure (UOM) of the rate reference level. */\n    UnderlyingPaymentStreamReferenceLevelUnitOfMeasure: 41918,\n    /** When set to 'Y', it indicates that the weather reference level equals zero. */\n    UnderlyingPaymentStreamReferenceLevelEqualsZeroIndicator: 41919,\n    /** Specifies the currency of the floating rate spread. Uses ISO 4217 currency codes. */\n    UnderlyingPaymentStreamRateSpreadCurrency: 41920,\n    /** Specifies the unit of measure (UOM) of the floating rate spread. */\n    UnderlyingPaymentStreamRateSpreadUnitOfMeasure: 41921,\n    /** The number to be multiplied by the derived floating rate of the underlying's payment stream in order to arrive at the payment rate. If omitted, the floating rate conversion factor is 1. */\n    UnderlyingPaymentStreamRateConversionFactor: 41922,\n    /** Identifies whether the rate spread is an absolute value to be added to the index rate or a percentage of the index rate. */\n    UnderlyingPaymentStreamRateSpreadType: 41923,\n    /** The floating rate determined at the most recent reset. The rate is expressed in decimal form, e.g. 5% is represented as 0.05. */\n    UnderlyingPaymentStreamLastResetRate: 41924,\n    /** The floating rate determined at the final reset. The rate is expressed in decimal form, e.g. 5% is represented as 0.05. */\n    UnderlyingPaymentStreamFinalRate: 41925,\n    /** Time unit multiplier for the calculation lag duration. */\n    UnderlyingPaymentStreamCalculationLagPeriod: 41926,\n    /** Time unit associated with the calculation lag duration. */\n    UnderlyingPaymentStreamCalculationLagUnit: 41927,\n    /** Time unit multiplier for the relative first observation date offset.\n        If the first observation offset is specified, the observation period will start the specified interval prior to each calculation period - i.e. if the first observation offset is 4 months and the lag duration is 3 months, observations will be taken in months 4, 3 and 2 (but not 1) prior to each calculation period. If no first observation offset is specified, the observation period will end immediately preceding each calculation period. */\n    UnderlyingPaymentStreamFirstObservationDateOffsetPeriod: 41928,\n    /** Time unit associated with the relative first observation date offset. */\n    UnderlyingPaymentStreamFirstObservationDateOffsetUnit: 41929,\n    /** Specifies the commodity pricing day type. */\n    UnderlyingPaymentStreamPricingDayType: 41930,\n    /** The distribution of pricing days. */\n    UnderlyingPaymentStreamPricingDayDistribution: 41931,\n    /** The number of days over which pricing should take place. */\n    UnderlyingPaymentStreamPricingDayCount: 41932,\n    /** Specifies the business calendar to use for pricing.\n        See http://www.fpml.org/coding-scheme/commodity-business-calendar for values. */\n    UnderlyingPaymentStreamPricingBusinessCalendar: 41933,\n    /** The business day convention used to adjust the payment stream's pricing dates. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingPaymentStreamPricingBusinessDayConvention: 41934,\n    /** Specifies the format of the commodity settlement start and end times. */\n    LegStreamCommoditySettlTimeType: 41935,\n    /** Specifies the format of the commodity settlement start and end times. */\n    UnderlyingStreamCommoditySettlTimeType: 41936,\n    /** Number of payment dates in the repeating group. */\n    NoUnderlyingPaymentStreamPaymentDates: 41937,\n    /** The adjusted or unadjusted fixed stream payment date. */\n    UnderlyingPaymentStreamPaymentDate: 41938,\n    /** Specifies the type of payment date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    UnderlyingPaymentStreamPaymentDateType: 41939,\n    /** When set to 'Y', it indicates that payment dates are specified in the relevant master agreement. */\n    UnderlyingPaymentStreamMasterAgreementPaymentDatesIndicator: 41940,\n    /** Number of pricing dates in the repeating group. */\n    NoUnderlyingPaymentStreamPricingDates: 41941,\n    /** An adjusted or unadjusted fixed pricing date. */\n    UnderlyingPaymentStreamPricingDate: 41942,\n    /** Specifies the type of pricing date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    UnderlyingPaymentStreamPricingDateType: 41943,\n    /** Number of pricing days in the repeating group. */\n    NoUnderlyingPaymentStreamPricingDays: 41944,\n    /** The day of the week on which pricing takes place. */\n    UnderlyingPaymentStreamPricingDayOfWeek: 41945,\n    /** The occurrence of the day of week on which pricing takes place.\n        For example a pricing day of the 3rd Friday would be DayOfWk=5 DayNum=3. */\n    UnderlyingPaymentStreamPricingDayNumber: 41946,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingPricingDateBusinessCenters: 41947,\n    /** The business center calendar used to adjust the pricing or fixing date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPricingDateBusinessCenter: 41948,\n    /** The unadjusted pricing or fixing date. */\n    UnderlyingPricingDateUnadjusted: 41949,\n    /** The business day convention used to adjust the pricing or fixing date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingPricingDateBusinessDayConvention: 41950,\n    /** The adjusted pricing or fixing date. */\n    UnderlyingPricingDateAdjusted: 41951,\n    /** The local market pricing or fixing time. */\n    UnderlyingPricingTime: 41952,\n    /** Specifies the business center for determining the pricing or fixing time. See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPricingTimeBusinessCenter: 41953,\n    /** Number of calculation period dates in the repeating group. */\n    NoUnderlyingStreamCalculationPeriodDates: 41954,\n    /** The adjusted or unadjusted fixed calculation period date. */\n    UnderlyingStreamCalculationPeriodDate: 41955,\n    /** Specifies the type of fixed calculation period date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type. */\n    UnderlyingStreamCalculationPeriodDateType: 41956,\n    /** Identifier of this calculation period for cross referencing elsewhere in the message. */\n    UnderlyingStreamCalculationPeriodDatesXID: 41957,\n    /** Cross reference to another calculation period for duplicating its properties. */\n    UnderlyingStreamCalculationPeriodDatesXIDRef: 41958,\n    /** When specified and set to 'Y', it indicates that the first calculation period should run from the effective date to the end of the calendar period in which the effective date falls (e.g. Jan 15 - Jan 31 if the calculation periods are one month long and effective date is Jan 15.). If 'N' or not specified, it indicates that the first calculation period should run from the effective date for one whole period (e.g. Jan 15 to Feb 14 if the calculation periods are one month long and the effective date is Jan 15.). */\n    UnderlyingStreamCalculationBalanceOfFirstPeriod: 41959,\n    /** Time unit multiplier for the length of time after the publication of the data when corrections can be made. */\n    UnderlyingStreamCalculationCorrectionPeriod: 41960,\n    /** Time unit associated with the length of time after the publication of the data when corrections can be made. */\n    UnderlyingStreamCalculationCorrectionUnit: 41961,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingStreamCommoditySettlBusinessCenters: 41962,\n    /** The business center calendar used to adjust the commodity delivery date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingStreamCommoditySettlBusinessCenter: 41963,\n    /** Specifies the general base type of the commodity traded. Where possible, this should follow the naming convention used in the 2005 ISDA Commodity Definitions.\n        Examples of general commodity base types include:Metal, Bullion, Oil, Natural Gas, Coal, Electricity, Inter-Energy, Grains, Oils Seeds, Dairy, Livestock, Forestry, Softs, Weather, Emissions. */\n    UnderlyingStreamCommodityBase: 41964,\n    /** Specifies the type of commodity product.\n        For coal see http://www.fpml.org/coding-scheme/commodity-coal-product-type for values.\n        For metals see http://www.fpml.org/coding-scheme/commodity-metal-product-type for values.\n        For bullion see http://www.fixtradingcommunity.org/codelists#Bullion_Types for the external code list of bullion types. */\n    UnderlyingStreamCommodityType: 41965,\n    /** Specifies the market identifier for the commodity. */\n    UnderlyingStreamCommoditySecurityID: 41966,\n    /** Identifies the class or source of the UnderlyingStreamCommoditySecurityIDSource(41966) value. */\n    UnderlyingStreamCommoditySecurityIDSource: 41967,\n    /** Description of the commodity asset. */\n    UnderlyingStreamCommodityDesc: 41968,\n    /** Byte length of encoded (non-ASCII characters) EncodedUnderlyingStreamCommodityDesc(41970) field. */\n    EncodedUnderlyingStreamCommodityDescLen: 41969,\n    /** Encoded (non-ASCII characters) representation of the UnderlyingStreamCommodityDesc(41968) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingStreamCommodityDesc(41968) field. */\n    EncodedUnderlyingStreamCommodityDesc: 41970,\n    /** The unit of measure (UOM) of the commodity asset. */\n    UnderlyingStreamCommodityUnitOfMeasure: 41971,\n    /** Identifies the currency of the commodity asset. Uses ISO 4217 currency codes. */\n    UnderlyingStreamCommodityCurrency: 41972,\n    /** Identifies the exchange where the commodity is traded. */\n    UnderlyingStreamCommodityExchange: 41973,\n    /** Identifies the source of rate information used for commodities.\n        See http://www.fixtradingcommunity.org/codelists#Commodity_Rate_Source for code list of applicable sources. */\n    UnderlyingStreamCommodityRateSource: 41974,\n    /** Identifies the reference \"page\" from the rate source. */\n    UnderlyingStreamCommodityRateReferencePage: 41975,\n    /** Identifies the page heading from the rate source. */\n    UnderlyingStreamCommodityRateReferencePageHeading: 41976,\n    /** Specifies the commodity data or information provider.\n        See http://www.fpml.org/coding-scheme/commodity-information-provider for values. */\n    UnderlyingStreamDataProvider: 41977,\n    /** Specifies how the pricing or rate setting of the trade is to be determined or based upon.\n        See http://www.fixtradingcommunity.org/codelists#Commodity_Rate_Pricing_Type for code list of applicable commodity pricing types. */\n    UnderlyingStreamCommodityPricingType: 41978,\n    /** Time unit multiplier for the nearby settlement day.\n        When the commodity transaction references a futures contract, the delivery or settlement dates are a nearby month or week. For example, for eighth nearby month use Period=8 and Unit=Mo. */\n    UnderlyingStreamCommodityNearbySettlDayPeriod: 41979,\n    /** Time unit associated with the nearby settlement day. */\n    UnderlyingStreamCommodityNearbySettlDayUnit: 41980,\n    /** The unadjusted commodity delivery date. */\n    UnderlyingStreamCommoditySettlDateUnadjusted: 41981,\n    /** The business day convention used to adjust the commodity delivery date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingStreamCommoditySettlDateBusinessDayConvention: 41982,\n    /** The adjusted commodity delivery date. */\n    UnderlyingStreamCommoditySettlDateAdjusted: 41983,\n    /** Specifies a fixed single month for commodity delivery.\n        Use \"1\" for January, \"2\" for February, etc. */\n    UnderlyingStreamCommoditySettlMonth: 41984,\n    /** Time unit multiplier for the commodity delivery date roll.\n        For a commodity transaction that references a listed future via the delivery dates, this is the day offset on which the specified future will roll to the next nearby month when the referenced future expires. */\n    UnderlyingStreamCommoditySettlDateRollPeriod: 41985,\n    /** Time unit associated with the commodity delivery date roll. */\n    UnderlyingStreamCommoditySettlDateRollUnit: 41986,\n    /** Specifies the commodity delivery roll day type. */\n    UnderlyingStreamCommoditySettlDayType: 41987,\n    /** Identifier of this stream commodity for cross referencing elsewhere in the message. */\n    UnderlyingStreamCommodityXID: 41988,\n    /** Reference to a stream commodity elsewhere in the message. */\n    UnderlyingStreamCommodityXIDRef: 41989,\n    /** Number of alternate security identifers. */\n    NoUnderlyingStreamCommodityAltIDs: 41990,\n    /** Alternate security identifier value for the commodity. */\n    UnderlyingStreamCommodityAltID: 41991,\n    /** Identifies the class or source of the alternate commodity security identifier. */\n    UnderlyingStreamCommodityAltIDSource: 41992,\n    /** Number of commodity data sources in the repeating group. */\n    NoUnderlyingStreamCommodityDataSources: 41993,\n    /** Data source identifier. */\n    UnderlyingStreamCommodityDataSourceID: 41994,\n    /** Specifies the type of data source identifier. */\n    UnderlyingStreamCommodityDataSourceIDType: 41995,\n    /** Number of days in the repeating group. */\n    NoUnderlyingStreamCommoditySettlDays: 41996,\n    /** Specifies the day or group of days for delivery. */\n    UnderlyingStreamCommoditySettlDay: 41997,\n    /** Sum of the hours specified in UnderlyingStreamCommoditySettlTimeGrp. */\n    UnderlyingStreamCommoditySettlTotalHours: 41998,\n    /** Number of hour ranges in the repeating group. */\n    NoUnderlyingStreamCommoditySettlTimes: 41999,\n    /** The start time for commodity settlement where delivery occurs over time. The time format is specified by the settlement time type. */\n    UnderlyingStreamCommoditySettlStart: 42000,\n    /** The end time for commodity settlement where delivery occurs over time. The time format is specified by the settlement time type. */\n    UnderlyingStreamCommoditySettlEnd: 42001,\n    /** Number of commodity settlement periods in the repeating group. */\n    NoUnderlyingStreamCommoditySettlPeriods: 42002,\n    /** Specifies the country where delivery takes place. Uses ISO 3166 2-character country code. */\n    UnderlyingStreamCommoditySettlCountry: 42003,\n    /** Commodity delivery timezone specified as \"prevailing\" rather than \"standard\" or \"daylight\".\n        See http://www.fixtradingcommunity.org/codelists#Prevailing_Timezones for code list of applicable prevailing timezones. */\n    UnderlyingStreamCommoditySettlTimeZone: 42004,\n    /** Specifies the commodity delivery flow type. */\n    UnderlyingStreamCommoditySettlFlowType: 42005,\n    /** Specifies the delivery quantity associated with this settlement period. */\n    UnderlyingStreamCommoditySettlPeriodNotional: 42006,\n    /** Specifies the unit of measure (UOM) of the delivery quantity associated with this settlement period. */\n    UnderlyingStreamCommoditySettlPeriodNotionalUnitOfMeasure: 42007,\n    /** Time unit multiplier for the settlement period frequency. */\n    UnderlyingStreamCommoditySettlPeriodFrequencyPeriod: 42008,\n    /** Time unit associated with the settlement period frequency. */\n    UnderlyingStreamCommoditySettlPeriodFrequencyUnit: 42009,\n    /** The settlement period price. */\n    UnderlyingStreamCommoditySettlPeriodPrice: 42010,\n    /** Specifies the settlement period price unit of measure (UOM). */\n    UnderlyingStreamCommoditySettlPeriodPriceUnitOfMeasure: 42011,\n    /** The currency of the settlement period price. Uses ISO 4217 currency codes. */\n    UnderlyingStreamCommoditySettlPeriodPriceCurrency: 42012,\n    /** Indicates whether holidays are included in the settlement periods. Required for electricity contracts. */\n    UnderlyingStreamCommoditySettlHolidaysProcessingInstruction: 42013,\n    /** Identifier of this settlement period for cross referencing elsewhere in the message. */\n    UnderlyingStreamCommoditySettlPeriodXID: 42014,\n    /** Cross reference to another settlement period for duplicating its properties. */\n    UnderlyingStreamCommoditySettlPeriodXIDRef: 42015,\n    /** Identifier of this UnderlyingStream for cross referencing elsewhere in the message. */\n    UnderlyingStreamXID: 42016,\n    /** Issuer of the bond. */\n    UnderlyingAdditionalTermBondIssuer: 42017,\n    /** Cross reference to another UnderlyingStream notional for duplicating its properties. */\n    UnderlyingStreamNotionalXIDRef: 42018,\n    /** Time unit multiplier for the swap stream's notional frequency. */\n    UnderlyingStreamNotionalFrequencyPeriod: 42019,\n    /** Time unit associated with the swap stream's notional frequency. */\n    UnderlyingStreamNotionalFrequencyUnit: 42020,\n    /** The commodity's notional or quantity delivery frequency. */\n    UnderlyingStreamNotionalCommodityFrequency: 42021,\n    /** Specifies the delivery quantity unit of measure (UOM). */\n    UnderlyingStreamNotionalUnitOfMeasure: 42022,\n    /** Specifies the total notional or delivery quantity over the term of the contract. */\n    UnderlyingStreamTotalNotional: 42023,\n    /** Specifies the unit of measure (UOM) for the total notional or delivery quantity over the term of the contract. */\n    UnderlyingStreamTotalNotionalUnitOfMeasure: 42024,\n    /** Byte length of encoded (non-ASCII characters) EncodedUnderlyingAdditionalTermBondIssuer(42026) field. */\n    EncodedUnderlyingAdditionalTermBondIssuerLen: 42025,\n    /** Encoded (non-ASCII characters) representation of the UnderlyingAdditionalTermBondIssuer(42017) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingAdditionalTermBondIssuer(42017) field. */\n    EncodedUnderlyingAdditionalTermBondIssuer: 42026,\n    /** Specifies the bond's payment priority in the event of a default. */\n    UnderlyingAdditionalTermBondSeniority: 42027,\n    /** Coupon type of the bond. */\n    UnderlyingAdditionalTermBondCouponType: 42028,\n    /** Coupon rate of the bond. See also CouponRate(223). */\n    UnderlyingAdditionalTermBondCouponRate: 42029,\n    /** The maturity date of the bond. */\n    UnderlyingAdditionalTermBondMaturityDate: 42030,\n    /** The par value of the bond. */\n    UnderlyingAdditionalTermBondParValue: 42031,\n    /** Total issued amount of the bond. */\n    UnderlyingAdditionalTermBondCurrentTotalIssuedAmount: 42032,\n    /** Time unit multiplier for the frequency of the bond's coupon payment. */\n    UnderlyingAdditionalTermBondCouponFrequencyPeriod: 42033,\n    /** Time unit associated with the frequency of the bond's coupon payment. */\n    UnderlyingAdditionalTermBondCouponFrequencyUnit: 42034,\n    /** The day count convention used in interest calculations for a bond or an interest bearing security. */\n    UnderlyingAdditionalTermBondDayCount: 42035,\n    /** Number of additional terms in the repeating group. */\n    NoUnderlyingAdditionalTerms: 42036,\n    /** Indicates whether the condition precedent bond is applicable. The swap contract is only valid if the bond is issued and if there is any dispute over the terms of fixed stream then the bond terms would be used. */\n    UnderlyingAdditionalTermConditionPrecedentBondIndicator: 42037,\n    /** Indicates whether the discrepancy clause is applicable. */\n    UnderlyingAdditionalTermDiscrepancyClauseIndicator: 42038,\n    /** Number of dealers in the repeating group. */\n    NoUnderlyingCashSettlDealers: 42039,\n    /** Identifies the dealer from whom price quotations for the reference obligation are obtained for the purpose of cash settlement valuation calculation.\n        ISDA 2003 Term: Dealer */\n    UnderlyingCashSettlDealer: 42040,\n    /** Number of elements in the repeating group. */\n    NoUnderlyingCashSettlTerms: 42041,\n    /** Specifies the currency the UnderlyingCashSettlAmount(42054) is denominated in. Uses ISO 4217 currency codes. */\n    UnderlyingCashSettlCurrency: 42042,\n    /** The number of business days after settlement conditions have been satisfied, when the calculation agent is to obtain a price quotation on the reference obligation for purposes of cash settlement.\n        Associated with ISDA 2003 Term: Valuation Date. */\n    UnderlyingCashSettlValuationFirstBusinessDayOffset: 42043,\n    /** The number of business days between successive valuation dates when multiple valuation dates are applicable for cash settlement.\n        Associated with ISDA 2003 Term: Valuation Date. */\n    UnderlyingCashSettlValuationSubsequentBusinessDaysOffset: 42044,\n    /** Where multiple valuation dates are specified as being applicable for cash settlement, this element specifies the number of applicable valuation dates.\n        Associated with ISDA 2003 Term: Valuation Date. */\n    UnderlyingCashSettlNumOfValuationDates: 42045,\n    /** Time of valuation. */\n    UnderlyingCashSettlValuationTime: 42046,\n    /** Identifies the business center calendar used at valuation time for cash settlement purposes e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingCashSettlBusinessCenter: 42047,\n    /** The type of quote used to determine the cash settlement price. */\n    UnderlyingCashSettlQuoteMethod: 42048,\n    /** When determining the cash settlement amount, if weighted average price quotes are to be obtained for the reference obligation, this is the upper limit to the outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount equal to floating rate payer calculation amount.\n        ISDA 2003 Term: Quotation Amount. */\n    UnderlyingCashSettlQuoteAmount: 42049,\n    /** Specifies the currency the UnderlyingCashSettlQuoteAmount(42049) is denominated in. Uses ISO 4217 currency codes. */\n    UnderlyingCashSettlQuoteCurrency: 42050,\n    /** When determining the cash settlement amount, if weighted average price quotes are to be obtained for the reference obligation, this is the minimum intended threshold amount of outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount of the lower of either USD1,000,000 (or its equivalent in the relevant obligation currency) or the (minimum) quoted amount.\n        ISDA 2003 Term: Minimum Quotation Amount. */\n    UnderlyingCashSettlMinimumQuoteAmount: 42051,\n    /** Specifies the currency the UnderlyingCashSettlQuoteAmount(42049) is denominated in. Uses ISO 4217 currency codes. */\n    UnderlyingCashSettlMinimumQuoteCurrency: 42052,\n    /** The number of business days used in the determination of the cash settlement payment date.\n        If a cash settlement amount is specified, the cash settlement payment date will be this number of business days following the calculation of the final price. If a cash settlement amount is not specified, the cash settlement payment date will be this number of business days after all conditions to settlement are satisfied.\n        ISDA 2003 Term: Cash Settlement Date. */\n    UnderlyingCashSettlBusinessDays: 42053,\n    /** The amount paid between the trade parties, seller to the buyer, for cash settlement on the cash settlement date.\n        If not specified this would typically be calculated as ((100 or the reference price) - reference obligation price) x floating rate payer calculation amount. Price values are all expressed as a percentage.\n        ISDA 2003 Term: Cash Settlement Amount. */\n    UnderlyingCashSettlAmount: 42054,\n    /** Used for fixed recovery, this specifies the recovery level as determined at contract inception, to be applied in the event of a default. The factor is used to calculate the amount paid by the seller to the buyer for cash settlement on the cash settlement date. The amount is calculated is (1 - UnderlyingCashSettlRecoveryFactor(42055)) x floating rate payer calculation amount. The currency is derived from the floating rate payer calculation amount. */\n    UnderlyingCashSettlRecoveryFactor: 42055,\n    /** Indicates whether fixed settlement is applicable or not applicable in a recovery lock. */\n    UnderlyingCashSettlFixedTermIndicator: 42056,\n    /** Indicates whether accrued interest is included or not in the value provided in UnderlyingCashSettlAmount(42054).\n        For cash settlement this specifies whether quotations should be obtained inclusive or not of accrued interest.\n        For physical settlement this specifies whether the buyer should deliver the obligation with an outstanding principal balance that includes or excludes accrued interest.\n        ISDA 2003 Term: Include/Exclude Accrued Interest. */\n    UnderlyingCashSettlAccruedInterestIndicator: 42057,\n    /** The ISDA defined methodology for determining the final price of the reference obligation for purposes of cash settlement.\n        ISDA 2003 Term: Valuation Method */\n    UnderlyingCashSettlValuationMethod: 42058,\n    /** Name referenced from UnderlyingSettlementTermXIDRef(41315). */\n    UnderlyingCashSettlTermXID: 42059,\n    /** Number of entries in the repeating group. */\n    NoUnderlyingPhysicalSettlTerms: 42060,\n    /** Currency of physical settlement. Uses ISO 4217 currency codes. */\n    UnderlyingPhysicalSettlCurrency: 42061,\n    /** A number of business days. Its precise meaning is dependent on the context in which this element is used.\n        ISDA 2003 Term: Business Day. */\n    UnderlyingPhysicalSettlBusinessDays: 42062,\n    /** A maximum number of business days. Its precise meaning is dependent on the context in which this element is used. Intended to be used to limit a particular ISDA fallback provision. */\n    UnderlyingPhysicalSettlMaximumBusinessDays: 42063,\n    /** A named string value referenced by UnderlyingSettlTermXIDRef(41315). */\n    UnderlyingPhysicalSettlTermXID: 42064,\n    /** Number of entries in the repeating group. */\n    NoUnderlyingPhysicalSettlDeliverableObligations: 42065,\n    /** Specifies the type of delivery obligation applicable for physical settlement.\n        See http://www.fixtradingcommunity.org/codelists#Deliverable_Obligation_Types for code list for applicable deliverable obligation types. */\n    UnderlyingPhysicalSettlDeliverableObligationType: 42066,\n    /** Physical settlement delivery obligation value appropriate to UnderlyingPhysicalSettlDeliverableObligationType(42066).\n        See http://www.fixtradingcommunity.org/codelists#Deliverable_Obligation_Types for applicable obligation type values. */\n    UnderlyingPhysicalSettlDeliverableObligationValue: 42067,\n    /** Number of protection terms in the repeating group. */\n    NoUnderlyingProtectionTerms: 42068,\n    /** The notional amount of protection coverage for a floating rate.\n        ISDA 2003 Term: Floating Rate Payer Calculation Amount. */\n    UnderlyingProtectionTermNotional: 42069,\n    /** The currency of UnderlyingProtectionTermNotional(42069). Uses ISO 4217 currency codes. */\n    UnderlyingProtectionTermCurrency: 42070,\n    /** The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring.\n        UnderlyingProtectionTermSellerNotifies(42071)=Y indicates that the seller notifies.\n        ISDA 2003 Term: Notifying Party. */\n    UnderlyingProtectionTermSellerNotifies: 42071,\n    /** The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring.\n        UnderlyingProtectionTermBuyerNotifies(42072)=Y indicates that the buyer notifies.\n        ISDA 2003 Term: Notifying Party. */\n    UnderlyingProtectionTermBuyerNotifies: 42072,\n    /** When used, the business center indicates the local time of the business center that replaces the Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingProtectionTermEventBusinessCenter: 42073,\n    /** Indicates whether ISDA defined Standard Public Sources are applicable (UnderlyingProtectionTermStandardSources(42074)=Y) or not. */\n    UnderlyingProtectionTermStandardSources: 42074,\n    /** The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two.\n        ISDA 2003 Term: Specified Number. */\n    UnderlyingProtectionTermEventMinimumSources: 42075,\n    /** A named string value referenced by UnderlyingProtectionTermXIDRef(41314). */\n    UnderlyingProtectionTermXID: 42076,\n    /** Number of protection term events in the repeating group. */\n    NoUnderlyingProtectionTermEvents: 42077,\n    /** Specifies the type of credit event applicable to the protection terms.\n        See http://www.fixtradingcommunity.org/codelists#Protection_Term_Event_Types for code list of applicable event types. */\n    UnderlyingProtectionTermEventType: 42078,\n    /** Protection term event value appropriate to UnderlyingProtectionTermEventType(42078).\n        See http://www.fixtradingcommunity.org/codelists#Protection_Term_Event_Types for applicable event type values. */\n    UnderlyingProtectionTermEventValue: 42079,\n    /** Applicable currency if UnderlyingProtectionTermEventValue(42079) is an amount. Uses ISO 4217 currency codes. */\n    UnderlyingProtectionTermEventCurrency: 42080,\n    /** Time unit multiplier for protection term events. */\n    UnderlyingProtectionTermEventPeriod: 42081,\n    /** Time unit associated with protection term events. */\n    UnderlyingProtectionTermEventUnit: 42082,\n    /** Day type for events that specify a period and unit. */\n    UnderlyingProtectionTermEventDayType: 42083,\n    /** Rate source for events that specify a rate source, e.g. Floating rate interest shortfall. */\n    UnderlyingProtectionTermEventRateSource: 42084,\n    /** Number of qualifiers in the repeating group. */\n    NoUnderlyingProtectionTermEventQualifiers: 42085,\n    /** Protection term event qualifier. Used to further qualify UnderlyingProtectionTermEventType(43078). */\n    UnderlyingProtectionTermEventQualifier: 42086,\n    /** Number of obligations in the repeating group. */\n    NoUnderlyingProtectionTermObligations: 42087,\n    /** Specifies the type of obligation applicable to the protection terms.\n        See http://www.fixtradingcommunity.org/codelists#Protection_Term_Obligation_Types for code list of applicable obligation types. */\n    UnderlyingProtectionTermObligationType: 42088,\n    /** Protection term obligation value appropriate to UnderlyingProtectionTermObligationType(42088).\n        See http://www.fixtradingcommunity.org/codelists#Protection_Term_Obligation_Types for applicable obligation type values. */\n    UnderlyingProtectionTermObligationValue: 42089,\n    /** Number of event news sources in the repeating group. */\n    NoUnderlyingProtectionTermEventNewsSources: 42090,\n    /** Newspaper or electronic news service or source that may publish relevant information used in the determination of whether or not a credit event has occurred. */\n    UnderlyingProtectionTermEventNewsSource: 42091,\n    /** The business day convention used to adjust the provisional cash settlement payment's termination, or relative termination, date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingProvisionCashSettlPaymentDateBusinessDayConvention: 42092,\n    /** Specifies the anchor date when the cash settlement payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingProvisionCashSettlPaymentDateRelativeTo: 42093,\n    /** Time unit multiplier for the relative cash settlement payment date offset. */\n    UnderlyingProvisionCashSettlPaymentDateOffsetPeriod: 42094,\n    /** Time unit associated with the relative cash settlement payment date offset. */\n    UnderlyingProvisionCashSettlPaymentDateOffsetUnit: 42095,\n    /** Specifies the day type of the provision's relative cash settlement payment date offset. */\n    UnderlyingProvisionCashSettlPaymentDateOffsetDayType: 42096,\n    /** First date in range when a settlement date range is provided. */\n    UnderlyingProvisionCashSettlPaymentDateRangeFirst: 42097,\n    /** Last date in range when a settlement date range is provided. */\n    UnderlyingProvisionCashSettlPaymentDateRangeLast: 42098,\n    /** Number of UnderlyingProvision cash settlement payment dates in the repeating group. */\n    NoUnderlyingProvisionCashSettlPaymentDates: 42099,\n    /** The cash settlement payment date, unadjusted or adjusted depending on UnderlyingProvisionCashSettlPaymentDateType(42101). */\n    UnderlyingProvisionCashSettlPaymentDate: 42100,\n    /** Specifies the type of date (e.g. adjusted for holidays). */\n    UnderlyingProvisionCashSettlPaymentDateType: 42101,\n    /** Identifies the source of quote information. */\n    UnderlyingProvisionCashSettlQuoteSource: 42102,\n    /** Identifies the reference \"page\" from the quote source. */\n    UnderlyingProvisionCashSettlQuoteReferencePage: 42103,\n    /** A time specified in 24-hour format, e.g. 11am would be represented as 11:00:00. The time of the cash settlement valuation date when the cash settlement amount will be determined according to the cash settlement method if the parties have not otherwise been able to agree to the cash settlement amount. */\n    UnderlyingProvisionCashSettlValueTime: 42104,\n    /** Identifies the business center calendar used with the provision's cash settlement valuation time.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingProvisionCashSettlValueTimeBusinessCenter: 42105,\n    /** The business day convention used to adjust the cash settlement valuation date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingProvisionCashSettlValueDateBusinessDayConvention: 42106,\n    /** Specifies the anchor date when the cash settlement value date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingProvisionCashSettlValueDateRelativeTo: 42107,\n    /** Time unit multiplier for the relative cash settlement value date offset. */\n    UnderlyingProvisionCashSettlValueDateOffsetPeriod: 42108,\n    /** Time unit associated with the relative cash settlement value date offset. */\n    UnderlyingProvisionCashSettlValueDateOffsetUnit: 42109,\n    /** Specifies the day type of the provision's relative cash settlement value date offset. */\n    UnderlyingProvisionCashSettlValueDateOffsetDayType: 42110,\n    /** The adjusted cash settlement value date. */\n    UnderlyingProvisionCashSettlValueDateAdjusted: 42111,\n    /** Number of UnderlyingProvision option exercise fixed dates in the repeating group. */\n    NoUnderlyingProvisionOptionExerciseFixedDates: 42112,\n    /** A predetermined option exercise date, unadjusted or adjusted depending on UnderlyingProvisionOptionExerciseFixedDateType(42114). */\n    UnderlyingProvisionOptionExerciseFixedDate: 42113,\n    /** Specifies the type of date (e.g. adjusted for holidays). */\n    UnderlyingProvisionOptionExerciseFixedDateType: 42114,\n    /** The business day convention used to adjust the underlying instrument's provision's option exercise date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingProvisionOptionExerciseBusinessDayConvention: 42115,\n    /** Time unit multiplier for the interval to the first (and possibly only) exercise date in the exercise period. */\n    UnderlyingProvisionOptionExerciseEarliestDateOffsetPeriod: 42116,\n    /** Time unit associated with the interval to the first (and possibly only) exercise date in the exercise period. */\n    UnderlyingProvisionOptionExerciseEarliestDateOffsetUnit: 42117,\n    /** Time unit multiplier for the frequency of subsequent exercise dates in the exercise period following the earliest exercise date. An interval of 1 day should be used to indicate an American style exercise frequency. */\n    UnderlyingProvisionOptionExerciseFrequencyPeriod: 42118,\n    /** Time unit associated with the frequency of subsequent exercise dates in the exercise period following the earliest exercise date. */\n    UnderlyingProvisionOptionExerciseFrequencyUnit: 42119,\n    /** The unadjusted first day of the exercise period for an American style option. */\n    UnderlyingProvisionOptionExerciseStartDateUnadjusted: 42120,\n    /** Specifies the anchor date when the option exercise start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingProvisionOptionExerciseStartDateRelativeTo: 42121,\n    /** Time unit multiplier for the relative option exercise start date offset. */\n    UnderlyingProvisionOptionExerciseStartDateOffsetPeriod: 42122,\n    /** Time unit associated with the relative option exercise start date offset. */\n    UnderlyingProvisionOptionExerciseStartDateOffsetUnit: 42123,\n    /** Specifies the day type of the provision's relative option exercise start date offset. */\n    UnderlyingProvisionOptionExerciseStartDateOffsetDayType: 42124,\n    /** The adjusted first day of the exercise period for an American style option. */\n    UnderlyingProvisionOptionExerciseStartDateAdjusted: 42125,\n    /** The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1. */\n    UnderlyingProvisionOptionExercisePeriodSkip: 42126,\n    /** The unadjusted first date of a schedule. This can be used to restrict the range of exercise dates when they are relative. */\n    UnderlyingProvisionOptionExerciseBoundsFirstDateUnadjusted: 42127,\n    /** The unadjusted last date of a schedule. This can be used to restrict the range of exercise dates when they are relative. */\n    UnderlyingProvisionOptionExerciseBoundsLastDateUnadjusted: 42128,\n    /** The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) i) on the expriation date, in the case of a European style option, (ii) on each bermuda option exercise date and the expiration date, in the case of a Bermuda style option the commencement date to, and including, the expiration date, in the case of an American option. */\n    UnderlyingProvisionOptionExerciseEarliestTime: 42129,\n    /** Identifies the business center calendar used with the provision's earliest time for notice of exercise.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingProvisionOptionExerciseEarliestTimeBusinessCenter: 42130,\n    /** For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day. */\n    UnderlyingProvisionOptionExerciseLatestTime: 42131,\n    /** Identifies the business center calendar used with the provision's latest time for notice of exercise.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingProvisionOptionExerciseLatestTimeBusinessCenter: 42132,\n    /** The unadjusted last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period. */\n    UnderlyingProvisionOptionExpirationDateUnadjusted: 42133,\n    /** The business day convention used to adjust the underlying instrument's provision's option expiration date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingProvisionOptionExpirationDateBusinessDayConvention: 42134,\n    /** Specifies the anchor date when the option expiration date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingProvisionOptionExpirationDateRelativeTo: 42135,\n    /** Time unit multiplier for the relative option expiration date offset. */\n    UnderlyingProvisionOptionExpirationDateOffsetPeriod: 42136,\n    /** Time unit associated with the relative option expiration date offset. */\n    UnderlyingProvisionOptionExpirationDateOffsetUnit: 42137,\n    /** Specifies the day type of the provision's relative option expiration date offset. */\n    UnderlyingProvisionOptionExpirationDateOffsetDayType: 42138,\n    /** The adjusted last date within an exercise period for an American style option. For a European style option it is the only date within the exercise period. */\n    UnderlyingProvisionOptionExpirationDateAdjusted: 42139,\n    /** The latest time for exercise on the expiration date. */\n    UnderlyingProvisionOptionExpirationTime: 42140,\n    /** Identifies the business center calendar used with the provision's latest exercise time on expiration date.\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingProvisionOptionExpirationTimeBusinessCenter: 42141,\n    /** The unadjusted date on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the swap effective date, in an extendible/cancelable provision it is the swap termination date). */\n    UnderlyingProvisionOptionRelevantUnderlyingDateUnadjusted: 42142,\n    /** The business day convnetion used to adjust the underlying instrument provision's option underlying date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingProvisionOptionRelevantUnderlyingDateBizDayConvention: 42143,\n    /** Specifies the anchor date when the date relevant to the underlying trade on exercise is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingProvisionOptionRelevantUnderlyingDateRelativeTo: 42144,\n    /** Time unit multiplier for the relative option relevant underlying date offset. */\n    UnderlyingProvisionOptionRelevantUnderlyingDateOffsetPeriod: 42145,\n    /** Time unit associated with the relative option relevant underlying date offset. */\n    UnderlyingProvisionOptionRelevantUnderlyingDateOffsetUnit: 42146,\n    /** Specifies the day type of the provision's relative option relevant underlying date offset. */\n    UnderlyingProvisionOptionRelevantUnderlyingDateOffsetDayType: 42147,\n    /** The adjusted date on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the swap effective date, in an extendible/cancelable provision it is the swap termination date). */\n    UnderlyingProvisionOptionRelevantUnderlyingDateAdjusted: 42148,\n    /** Number of provisions in the repeating group. */\n    NoUnderlyingProvisions: 42149,\n    /** Type of provision. */\n    UnderlyingProvisionType: 42150,\n    /** The unadjusted date of the provision. */\n    UnderlyingProvisionDateUnadjusted: 42151,\n    /** The business day convention used to adjust the underlying instrument's provision's date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component. */\n    UnderlyingProvisionDateBusinessDayConvention: 42152,\n    /** The adjusted date of the provision. */\n    UnderlyingProvisionDateAdjusted: 42153,\n    /** Time unit multiplier for the provision's tenor period. */\n    UnderlyingProvisionDateTenorPeriod: 42154,\n    /** Time unit associated with the provision's tenor period. */\n    UnderlyingProvisionDateTenorUnit: 42155,\n    /** Used to identify the calculation agent. The calculation agent may be identified in UnderlyingProvisionCalculationAgent(42156) or in the underlying provision parties component. */\n    UnderlyingProvisionCalculationAgent: 42156,\n    /** If optional early termination is not available to both parties then this component identifies the buyer of the option through its side of the trade. */\n    UnderlyingProvisionOptionSinglePartyBuyerSide: 42157,\n    /** If optional early termination is not available to both parties then this component identifies the seller of the option through its side of the trade. */\n    UnderlyingProvisionOptionSinglePartySellerSide: 42158,\n    /** The instrument provision's exercise style. */\n    UnderlyingProvisionOptionExerciseStyle: 42159,\n    /** A notional amount which restricts the amount of notional that can be exercised when partial exercise or multiple exercise is applicable. The integral multiple amount defines a lower limit of notional that can be exercised and also defines a unit multiple of notional that can be exercised, i.e. only integer multiples of this amount can be exercised. */\n    UnderlyingProvisionOptionExerciseMultipleNotional: 42160,\n    /** The minimum notional amount that can be exercised on a given exercise date. */\n    UnderlyingProvisionOptionExerciseMinimumNotional: 42161,\n    /** The maximum notional amount that can be exercised on a given exercise date. */\n    UnderlyingProvisionOptionExerciseMaximumNotional: 42162,\n    /** The minimum number of options that can be exercised on a given exercise date. */\n    UnderlyingProvisionOptionMinimumNumber: 42163,\n    /** The maximum number of options that can be exercised on a given exercise date. If the number is not specified, it means that the maximum number of options corresponds to the remaining unexercised options. */\n    UnderlyingProvisionOptionMaximumNumber: 42164,\n    /** Used to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent. */\n    UnderlyingProvisionOptionExerciseConfirmation: 42165,\n    /** An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (e). */\n    UnderlyingProvisionCashSettlMethod: 42166,\n    /** Specifies the currency of settlement. Uses ISO 4217 currency codes. */\n    UnderlyingProvisionCashSettlCurrency: 42167,\n    /** Specifies the currency of settlement for a cross-currency provision. Uses ISO 4217 currency codes. */\n    UnderlyingProvisionCashSettlCurrency2: 42168,\n    /** Identifies the type of quote to be used. */\n    UnderlyingProvisionCashSettlQuoteType: 42169,\n    /** Free form text to specify additional information or enumeration description when a standard value does not apply. */\n    UnderlyingProvisionText: 42170,\n    /** Byte length of encoded (non-ASCII characters) EncodedUnderlyingProvisionText(42712) field. */\n    EncodedUnderlyingProvisionTextLen: 42171,\n    /** Encoded (non-ASCII characters) representation of the UnderlyingProvisionText(42170) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingProvisionText(42170) field. */\n    EncodedUnderlyingProvisionText: 42172,\n    /** Number of parties identified in the contract provision. */\n    NoUnderlyingProvisionPartyIDs: 42173,\n    /** The party identifier for the payment settlement party. */\n    UnderlyingProvisionPartyID: 42174,\n    /** Identifies the class or source of the UnderlyingProvisionPartyID(42174) value. */\n    UnderlyingProvisionPartyIDSource: 42175,\n    /** Identifies the type or role of UnderlyingProvisionPartyID(42174) specified. */\n    UnderlyingProvisionPartyRole: 42176,\n    /** Number of sub-party IDs to be reported for the party. */\n    NoUnderlyingProvisionPartySubIDs: 42177,\n    /** Underlying provision party sub-identifier, if applicable for UnderlyingProvisionPartyID(42174). */\n    UnderlyingProvisionPartySubID: 42178,\n    /** The type of UnderlyingProvisionPartySubID(42178). */\n    UnderlyingProvisionPartySubIDType: 42179,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingProvisionCashSettlPaymentDateBusinessCenters: 42180,\n    /** The business center calendar used to adjust the provision's cash settlement payment's termination, or relative termination, date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingProvisionCashSettlPaymentDateBusinessCenter: 42181,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingProvisionCashSettlValueDateBusinessCenters: 42182,\n    /** The business center calendar used to adjust the cash settlement valuation date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingProvisionCashSettlValueDateBusinessCenter: 42183,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingProvisionOptionExerciseBusinessCenters: 42184,\n    /** The business center calendar used to adjust the underlying instrument's provision's option exercise date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingProvisionOptionExerciseBusinessCenter: 42185,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingProvisionOptionExpirationDateBusinessCenters: 42186,\n    /** The business center calendar used to adjust the underlying instrument's provision's option expiration date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingProvisionOptionExpirationDateBusinessCenter: 42187,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingProvisionOptionRelevantUnderlyingDateBusinessCenters: 42188,\n    /** The business center calendar used to adjust the underlying instrument's provision's option underlying date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingProvisionOptionRelevantUnderlyingDateBusinessCenter: 42189,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingProvisionDateBusinessCenters: 42190,\n    /** The business center calendar used to adjust the underlying instrument's provision's date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingProvisionDateBusinessCenter: 42191,\n    /** Identifies the class or source of DeliveryStreamDeliveryPoint(41062). */\n    DeliveryStreamDeliveryPointSource: 42192,\n    /** Description of the delivery point identified in DeliveryStreamDeliveryPoint(41062). */\n    DeliveryStreamDeliveryPointDesc: 42193,\n    /** Identifies the class or source of LegDeliveryStreamDeliveryPoint(41433). */\n    LegDeliveryStreamDeliveryPointSource: 42194,\n    /** Description of the delivery point identified in LegDeliveryStreamDeliveryPoint(41433). */\n    LegDeliveryStreamDeliveryPointDesc: 42195,\n    /** Identifies the class or source of UnderlyingDeliveryStreamDeliveryPoint(41781). */\n    UnderlyingDeliveryStreamDeliveryPointSource: 42196,\n    /** Description of the delivery point identified in UnderlyingDeliveryStreamDeliveryPoint(41781). */\n    UnderlyingDeliveryStreamDeliveryPointDesc: 42197,\n    /** Number of financing definitions in the repeating group. */\n    NoLegContractualDefinitions: 42198,\n    /** Specifies which contract definition, such as those published by ISDA, will apply for the terms of the trade. See http://www.fpml.org/coding-scheme/contractual-definitions for values. */\n    LegContractualDefinition: 42199,\n    /** Number of financing terms supplements in the repeating group. */\n    NoLegFinancingTermSupplements: 42200,\n    /** Identifies the applicable contractual supplement. See http://www.fpml.org/coding-scheme/contractual-supplement for values. */\n    LegFinancingTermSupplementDesc: 42201,\n    /** Specifies the publication date of the applicable version of the contractual supplement. */\n    LegFinancingTermSupplementDate: 42202,\n    /** Number of contractual matrices in the repeating group. */\n    NoLegContractualMatrices: 42203,\n    /** Identifies the applicable contract matrix. See http://www.fpml.org/coding-scheme/matrix-type-1-0.xml for values. */\n    LegContractualMatrixSource: 42204,\n    /** Specifies the publication date of the applicable version of the contract matrix. If not specified, the ISDA Standard Terms Supplement defines rules for which version of the matrix is applicable. */\n    LegContractualMatrixDate: 42205,\n    /** Specifies the applicable key into the relevant contract matrix. In the case of 2000 ISDA Definitions Settlement Matrix for Early Termination and Swaptions, the LegContractualMatrixTerm(42206) is not applicable and is to be omitted. See http://www.fpml.org/coding-scheme/credit-matrix-transaction-type for values. */\n    LegContractualMatrixTerm: 42206,\n    /** The unadjusted cash settlement date. */\n    CashSettlDateUnadjusted: 42207,\n    /** The business day convention used to adjust the cash settlement provision's date. Used only to override the business day convention defined in the Instrument component. */\n    CashSettlDateBusinessDayConvention: 42208,\n    /** Specifies the anchor date when the cash settlement date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    CashSettlDateRelativeTo: 42209,\n    /** Time unit multiplier for the relative cash settlement date offset. */\n    CashSettlDateOffsetPeriod: 42210,\n    /** Time unit associated with the relative cash settlement date offset. */\n    CashSettlDateOffsetUnit: 42211,\n    /** Specifies the day type of the relative cash settlement date offset. */\n    CashSettlDateOffsetDayType: 42212,\n    /** The adjusted cash settlement date. */\n    CashSettlDateAdjusted: 42213,\n    /** Number of business centers in the repeating group. */\n    NoCashSettlDateBusinessCenters: 42214,\n    /** The business center calendar used for date adjustment of the cash settlement unadjusted or relative date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    CashSettlDateBusinessCenter: 42215,\n    /** The source from which the settlement price is to be obtained.\n        See http://www.fpml.org/coding-scheme/settlement-price-source for values. */\n    CashSettlPriceSource: 42216,\n    /** The default election for determining settlement price. */\n    CashSettlPriceDefault: 42217,\n    /** The dividend accrual floating rate index. */\n    DividendFloatingRateIndex: 42218,\n    /** Time unit multiplier for the dividend accrual floating rate index curve. */\n    DividendFloatingRateIndexCurvePeriod: 42219,\n    /** Time unit associated with the dividend accrual floating rate index curve period. */\n    DividendFloatingRateIndexCurveUnit: 42220,\n    /** A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This should only be included if the multiplier is not equal to 1 (one) for the term of the contract. */\n    DividendFloatingRateMultiplier: 42221,\n    /** The basis points spread from the index specified in DividendFloatingRateIndex(42218). */\n    DividendFloatingRateSpread: 42222,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    DividendFloatingRateSpreadPositionType: 42223,\n    /** Specifies the yield calculation treatment for the index. */\n    DividendFloatingRateTreatment: 42224,\n    /** The cap rate, if any, which applies to the floating rate. It is only required where the floating rate is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as \"0.05\". */\n    DividendCapRate: 42225,\n    /** Reference to the buyer of the cap rate option through its trade side. */\n    DividendCapRateBuySide: 42226,\n    /** Reference to the seller of the cap rate option through its trade side. */\n    DividendCapRateSellSide: 42227,\n    /** The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as \"0.05\". */\n    DividendFloorRate: 42228,\n    /** Reference to the buyer of the floor rate option through its trade side. */\n    DividendFloorRateBuySide: 42229,\n    /** Reference to the seller of the floor rate option through its trade side. */\n    DividendFloorRateSellSide: 42230,\n    /** The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as \"0.05\". */\n    DividendInitialRate: 42231,\n    /** Specifies the rounding direction of the final rate. */\n    DividendFinalRateRoundingDirection: 42232,\n    /** Specifies the rounding precision of the final rate in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7. */\n    DividendFinalRatePrecision: 42233,\n    /** When averaging is applicable, used to specify whether a weighted or unweighted average method of calculation is to be used. */\n    DividendAveragingMethod: 42234,\n    /** The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate). */\n    DividendNegativeRateTreatment: 42235,\n    /** Number of entries in the DividendAccrualPaymentDateBusinessCenterGrp. */\n    NoDividendAccrualPaymentDateBusinessCenters: 42236,\n    /** The business center calendar used for date adjustment of the instrument's dividend accrual payment date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    DividendAccrualPaymentDateBusinessCenter: 42237,\n    /** Specifies the anchor date when the accrual payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    DividendAccrualPaymentDateRelativeTo: 42238,\n    /** Time unit multiplier for the relative accrual payment date offset. */\n    DividendAccrualPaymentDateOffsetPeriod: 42239,\n    /** Time unit associated with the relative accrual payment date offset. */\n    DividendAccrualPaymentDateOffsetUnit: 42240,\n    /** Specifies the day type of the relative accrual payment date offset. */\n    DividendAccrualPaymentDateOffsetDayType: 42241,\n    /** The unadjusted accrual payment date. */\n    DividendAccrualPaymentDateUnadjusted: 42242,\n    /** Accrual payment date adjustment business day convention. */\n    DividendAccrualPaymeentDateBusinessDayConvention: 42243,\n    /** The adjusted accrual payment date. */\n    DividendAccrualPaymentDateAdjusted: 42244,\n    /** Indicates whether the dividend will be reinvested. */\n    DividendReinvestmentIndicator: 42245,\n    /** Defines the contract event which the receiver of the derivative is entitled to the dividend. */\n    DividendEntitlementEvent: 42246,\n    /** Indicates how the gross cash dividend amount per share is determined. */\n    DividendAmountType: 42247,\n    /** References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component. */\n    DividendUnderlierRefID: 42248,\n    /** Reference to the party through its side in the trade who makes the determination whether dividends are extraordinary in relation to normal levels. */\n    ExtraordinaryDividendPartySide: 42249,\n    /** Indicates how the extraordinary gross cash dividend per share is determined. */\n    ExtraordinaryDividendAmountType: 42250,\n    /** The currency in which the excess dividend is denominated. Uses ISO 4217 currency codes. */\n    ExtraordinaryDividendCurrency: 42251,\n    /** Specifies the method in which the excess amount is determined.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    ExtraordinaryDividendDeterminationMethod: 42252,\n    /** The dividend accrual fixed rate per annum expressed as a decimal.\n        A value of 5% would be represented as \"0.05\". */\n    DividendAccrualFixedRate: 42253,\n    /** The compounding method to be used when more than one dividend period contributes to a single payment. */\n    DividendCompoundingMethod: 42254,\n    /** The number of index units applicable to dividends. */\n    DividendNumOfIndexUnits: 42255,\n    /** Declared cash dividend percentage.\n        A value of 5% would be represented as \"0.05\". */\n    DividendCashPercentage: 42256,\n    /** Declared cash-equivalent dividend percentage.\n        A value of 5% would be represented as \"0.05\". */\n    DividendCashEquivalentPercentage: 42257,\n    /** Defines the treatment of non-cash dividends. */\n    NonCashDividendTreatment: 42258,\n    /** Defines how the composition of dividends is to be determined. */\n    DividendComposition: 42259,\n    /** Indicates whether special dividends are applicable. */\n    SpecialDividendsIndicator: 42260,\n    /** Indicates whether material non-cash dividends are applicable. */\n    MaterialDividendsIndicator: 42261,\n    /** Indicates whether option exchange dividends are applicable. */\n    OptionsExchangeDividendsIndicator: 42262,\n    /** Indicates whether additional dividends are applicable. */\n    AdditionalDividendsIndicator: 42263,\n    /** Represents the European Master Confirmation value of 'All Dividends' which, when applicable, signifies that, for a given Ex-Date, the daily observed share price for that day is adjusted (reduced) by the cash dividend and/or the cash value of any non-cash dividend per share (including extraordinary dividends) declared by the issuer. */\n    AllDividendsIndicator: 42264,\n    /** Specifies the anchor date when the FX trigger date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    DividendFXTriggerDateRelativeTo: 42265,\n    /** Time unit multiplier for the relative FX trigger date offset. */\n    DividendFXTriggerDateOffsetPeriod: 42266,\n    /** Time unit associated with the relative FX trigger date offset. */\n    DividendFXTriggerDateOffsetUnit: 42267,\n    /** Specifies the day type of the relative FX trigger date offset. */\n    DividendFXTriggerDateOffsetDayType: 42268,\n    /** The unadjusted FX trigger date. */\n    DividendFXTriggerDateUnadjusted: 42269,\n    /** The business day convention used for the FX trigger date adjustment. */\n    DividendFXTriggerDateBusinessDayConvention: 42270,\n    /** The adjusted FX trigger date. */\n    DividendFXTriggerDateAdjusted: 42271,\n    /** Number of entries in the DividendFXTriggerDateBusinessCenterGrp. */\n    NoDividendFXTriggerDateBusinessCenters: 42272,\n    /** The business center calendar used for date adjustment of the instrument's FX trigger date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    DividendFXTriggerDateBusinessCenter: 42273,\n    /** Number of entries in the DividendPeriodGrp component. */\n    NoDividendPeriods: 42274,\n    /** Defines the ordinal dividend period. E.g. 1 = First period, 2 = Second period, etc. */\n    DividendPeriodSequence: 42275,\n    /** The unadjusted date on which the dividend period will begin. */\n    DividendPeriodStartDateUnadjusted: 42276,\n    /** The unadjusted date on which the dividend period will end. */\n    DividendPeriodEndDateUnadjusted: 42277,\n    /** References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component. */\n    DividendPeriodUnderlierRefID: 42278,\n    /** Specifies the fixed strike price of the dividend period. */\n    DividendPeriodStrikePrice: 42279,\n    /** The dividend period dates business day convention. */\n    DividendPeriodBusinessDayConvention: 42280,\n    /** The unadjusted dividend period valuation date. */\n    DividendPeriodValuationDateUnadjusted: 42281,\n    /** Specifies the anchor date when the dividend period valuation date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    DividendPeriodValuationDateRelativeTo: 42282,\n    /** Time unit multiplier for the relative dividend period valuation date offset. */\n    DividendPeriodValuationDateOffsetPeriod: 42283,\n    /** Time unit associated with the relative dividend period valuation date offset. */\n    DividendPeriodValuationDateOffsetUnit: 42284,\n    /** Specifies the day type of the relative dividend period valuation date offset. */\n    DividendPeriodValuationDateOffsetDayType: 42285,\n    /** The adjusted dividend period valuation date. */\n    DividendPeriodValuationDateAdjusted: 42286,\n    /** The unadjusted dividend period payment date. */\n    DividendPeriodPaymentDateUnadjusted: 42287,\n    /** Specifies the anchor date when the dividend period payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    DividendPeriodPaymentDateRelativeTo: 42288,\n    /** Time unit multiplier for the relative dividend period payment date offset. */\n    DividendPeriodPaymentDateOffsetPeriod: 42289,\n    /** Time unit associated with the relative dividend period payment date offset. */\n    DividendPeriodPaymentDateOffsetUnit: 42290,\n    /** Specifies the day type of the relative dividend period payment date offset. */\n    DividendPeriodPaymentDateOffsetDayType: 42291,\n    /** The adjusted dividend period payment date. */\n    DividendPeriodPaymentDateAdjusted: 42292,\n    /** Identifier for linking this stream dividend period to an underlier through an instance of RelatedInstrumentGrp. */\n    DividendPeriodXID: 42293,\n    /** Number of entries in the DividendPeriodBusinessCenterGrp. */\n    NoDividendPeriodBusinessCenters: 42294,\n    /** The business center calendar used for date adjustment of the instrument's dividend period date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    DividendPeriodBusinessCenter: 42295,\n    /** Number of extraordinary events in the repeating group. */\n    NoExtraordinaryEvents: 42296,\n    /** Identifies the type of extraordinary or disruptive event applicable to the reference entity.\n        See http://www.fixtradingcommunity.org/codelists#Extraordinary_Event_Type for code list of extraordinary event types and values. */\n    ExtraordinaryEventType: 42297,\n    /** The extraordinary or disruptive event value appropriate to ExtraordinaryEventType(42297).\n        See http://www.fixtradingcommunity.org/codelists#Extraordinary_Event_Type for code list of extraordinary event types and values. */\n    ExtraordinaryEventValue: 42298,\n    /** The unadjusted cash settlement date. */\n    LegCashSettlDateUnadjusted: 42299,\n    /** The business day convention used to adjust the cash settlement provision's date. Used only to override the business day convention defined in the InstrumentLeg component. */\n    LegCashSettlDateBusinessDayConvention: 42300,\n    /** Specifies the anchor date when the cash settlement date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegCashSettlDateRelativeTo: 42301,\n    /** Time unit multiplier for the relative cash settlement date offset. */\n    LegCashSettlDateOffsetPeriod: 42302,\n    /** Time unit associated with the relative cash settlement date offset. */\n    LegCashSettlDateOffsetUnit: 42303,\n    /** Specifies the day type of the relative cash settlement date offset. */\n    LegCashSettlDateOffsetDayType: 42304,\n    /** The adjusted cash settlement date. */\n    LegCashSettlDateAdjusted: 42305,\n    /** Number of business centers in the repeating group. */\n    NoLegCashSettlDateBusinessCenters: 42306,\n    /** The business center calendar used for date adjustment of the cash settlement unadjusted or relative date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegCashSettlDateBusinessCenter: 42307,\n    /** The source from which the settlement price is to be obtained.\n        See http://www.fpml.org/coding-scheme/settlement-price-source for values. */\n    LegCashSettlPriceSource: 42308,\n    /** The default election for determining settlement price. */\n    LegCashSettlPriceDefault: 42309,\n    /** Number of entries in the LegDividendAccrualPaymentDateBusinessCenterGrp. */\n    NoLegDividendAccrualPaymentDateBusinessCenters: 42310,\n    /** The business center calendar used for date adjustment of the instrument's dividend accrual payment date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegDividendAccrualPaymentDateBusinessCenter: 42311,\n    /** The dividend accrual floating rate index. */\n    LegDividendFloatingRateIndex: 42312,\n    /** Time unit multiplier for the dividend accrual floating rate index curve. */\n    LegDividendFloatingRateIndexCurvePeriod: 42313,\n    /** Time unit associated with the dividend accrual floating rate index curve period. */\n    LegDividendFloatingRateIndexCurveUnit: 42314,\n    /** A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This should only be included if the multiplier is not equal to 1 (one) for the term of the contract. */\n    LegDividendFloatingRateMultiplier: 42315,\n    /** The basis points spread from the index specified in LegDividendFloatingRateIndex(42312). */\n    LegDividendFloatingRateSpread: 42316,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    LegDividendFloatingRateSpreadPositionType: 42317,\n    /** Specifies the yield calculation treatment for the index. */\n    LegDividendFloatingRateTreatment: 42318,\n    /** The cap rate, if any, which applies to the floating rate. It is only required where the floating rate is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as \"0.05\". */\n    LegDividendCapRate: 42319,\n    /** Reference to the buyer of the cap rate option through its trade side. */\n    LegDividendCapRateBuySide: 42320,\n    /** Reference to the seller of the cap rate option through its trade side. */\n    LegDividendCapRateSellSide: 42321,\n    /** The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as \"0.05\". */\n    LegDividendFloorRate: 42322,\n    /** Reference to the buyer of the floor rate option through its trade side. */\n    LegDividendFloorRateBuySide: 42323,\n    /** Reference to the seller of the floor rate option through its trade side. */\n    LegDividendFloorRateSellSide: 42324,\n    /** The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as \"0.05\". */\n    LegDividendInitialRate: 42325,\n    /** Specifies the rounding direction of the final rate. */\n    LegDividendFinalRateRoundingDirection: 42326,\n    /** Specifies the rounding precision of the final rate in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7. */\n    LegDividendFinalRatePrecision: 42327,\n    /** When averaging is applicable, used to specify whether a weighted or unweighted average method of calculation is to be used. */\n    LegDividendAveragingMethod: 42328,\n    /** The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate). */\n    LegDividendNegativeRateTreatment: 42329,\n    /** Specifies the anchor date when the accrual payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegDividendAccrualPaymentDateRelativeTo: 42330,\n    /** Time unit multiplier for the relative accrual payment date offset. */\n    LegDividendAccrualPaymentDateOffsetPeriod: 42331,\n    /** Time unit associated with the relative accrual payment date offset. */\n    LegDividendAccrualPaymentDateOffsetUnit: 42332,\n    /** Specifies the day type of the relative accrual payment date offset. */\n    LegDividendAccrualPaymentDateOffsetDayType: 42333,\n    /** The unadjusted accrual payment date. */\n    LegDividendAccrualPaymentDateUnadjusted: 42334,\n    /** Accrual payment date adjustment business day convention. */\n    LegDividendAccrualPaymentDateBusinessDayConvention: 42335,\n    /** The adjusted accrual payment date. */\n    LegDividendAccrualPaymentDateAdjusted: 42336,\n    /** Indicates whether the dividend will be reinvested. */\n    LegDividendReinvestmentIndicator: 42337,\n    /** Defines the contract event which the receiver of the derivative is entitled to the dividend. */\n    LegDividendEntitlementEvent: 42338,\n    /** Indicates how the gross cash dividend amount per share is determined. */\n    LegDividendAmountType: 42339,\n    /** References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component. */\n    LegDividendUnderlierRefID: 42340,\n    /** Reference to the party through its side in the trade who makes the determination whether dividends are extraordinary in relation to normal levels. */\n    LegExtraordinaryDividendPartySide: 42341,\n    /** Indicates how the extraordinary gross cash dividend per share is determined. */\n    LegExtraordinaryDividendAmountType: 42342,\n    /** The currency in which the excess dividend is denominated. Uses ISO 4217 currency codes. */\n    LegExtraordinaryDividendCurrency: 42343,\n    /** Specifies the method in which the excess amount is determined.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    LegExtraordinaryDividendDeterminationMethod: 42344,\n    /** The dividend accrual fixed rate per annum expressed as a decimal.\n        A value of 5% would be represented as \"0.05\". */\n    LegDividendAccrualFixedRate: 42345,\n    /** The compounding method to be used when more than one dividend period contributes to a single payment. */\n    LegDividendCompoundingMethod: 42346,\n    /** The number of index units applicable to dividends. */\n    LegDividendNumOfIndexUnits: 42347,\n    /** Declared cash dividend percentage.\n        A value of 5% would be represented as \"0.05\". */\n    LegDividendCashPercentage: 42348,\n    /** Declared cash-equivalent dividend percentage.\n        A value of 5% would be represented as \"0.05\". */\n    LegDividendCashEquivalentPercentage: 42349,\n    /** Defines the treatment of non-cash dividends. */\n    LegNonCashDividendTreatment: 42350,\n    /** Defines how the composition of dividends is to be determined. */\n    LegDividendComposition: 42351,\n    /** Indicates whether special dividends are applicable. */\n    LegSpecialDividendsIndicator: 42352,\n    /** Indicates whether material non-cash dividends are applicable. */\n    LegMaterialDividendsIndicator: 42353,\n    /** Indicates whether option exchange dividends are applicable. */\n    LegOptionsExchangeDividendsIndicator: 42354,\n    /** Indicates whether additional dividends are applicable. */\n    LegAdditionalDividendsIndicator: 42355,\n    /** Represents the European Master Confirmation value of 'All Dividends' which, when applicable, signifies that, for a given Ex-Date, the daily observed share price for that day is adjusted (reduced) by the cash dividend and/or the cash value of any non-cash dividend per share (including extraordinary dividends) declared by the issuer. */\n    LegAllDividendsIndicator: 42356,\n    /** Specifies the anchor date when the FX trigger date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegDividendFXTriggerDateRelativeTo: 42357,\n    /** Time unit multiplier for the relative FX trigger date offset. */\n    LegDividendFXTriggerDateOffsetPeriod: 42358,\n    /** Time unit associated with the relative FX trigger date offset. */\n    LegDividendFXTriggerDateOffsetUnit: 42359,\n    /** Specifies the day type of the relative FX trigger date offset. */\n    LegDividendFXTriggerDateOffsetDayType: 42360,\n    /** The unadjusted FX trigger date. */\n    LegDividendFXTriggerDateUnadjusted: 42361,\n    /** The business day convention used for the FX trigger date adjustment. */\n    LegDividendFXTriggerDateBusinessDayConvention: 42362,\n    /** The adjusted FX trigger date. */\n    LegDividendFXTriggerDateAdjusted: 42363,\n    /** Number of entries in the LegDividendFXTriggerDateBusinessCenterGrp. */\n    NoLegDividendFXTriggerDateBusinessCenters: 42364,\n    /** The business center calendar used for date adjustment of the instrument's FX trigger date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegDividendFXTriggerDateBusinessCenter: 42365,\n    /** Number of entries in the LegDividendPeriodGrp component. */\n    NoLegDividendPeriods: 42366,\n    /** Defines the ordinal dividend period. E.g. 1 = First period, 2 = Second period, etc. */\n    LegDividendPeriodSequence: 42367,\n    /** The unadjusted date on which the dividend period will begin. */\n    LegDividendPeriodStartDateUnadjusted: 42368,\n    /** The unadjusted date on which the dividend period will end. */\n    LegDividendPeriodEndDateUnadjusted: 42369,\n    /** References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component. */\n    LegDividendPeriodUnderlierRefID: 42370,\n    /** Specifies the fixed strike price of the dividend period. */\n    LegDividendPeriodStrikePrice: 42371,\n    /** The dividend period dates business day convention. */\n    LegDividendPeriodBusinessDayConvention: 42372,\n    /** The unadjusted dividend period valuation date. */\n    LegDividendPeriodValuationDateUnadjusted: 42373,\n    /** Specifies the anchor date when the dividend period valuation date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegDividendPeriodValuationDateRelativeTo: 42374,\n    /** Time unit multiplier for the relative dividend period valuation date offset. */\n    LegDividendPeriodValuationDateOffsetPeriod: 42375,\n    /** Time unit associated with the relative dividend period valuation date offset. */\n    LegDividendPeriodValuationDateOffsetUnit: 42376,\n    /** Specifies the day type of the relative dividend period valuation date offset. */\n    LegDividendPeriodValuationDateOffsetDayType: 42377,\n    /** The adjusted dividend period valuation date. */\n    LegDividendPeriodValuationDateAdjusted: 42378,\n    /** The unadjusted dividend period payment date. */\n    LegDividendPeriodPaymentDateUnadjusted: 42379,\n    /** Specifies the anchor date when the dividend period payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegDividendPeriodPaymentDateRelativeTo: 42380,\n    /** Time unit multiplier for the relative dividend period payment date offset. */\n    LegDividendPeriodPaymentDateOffsetPeriod: 42381,\n    /** Time unit associated with the relative dividend period payment date offset. */\n    LegDividendPeriodPaymentDateOffsetUnit: 42382,\n    /** Specifies the day type of the relative dividend period payment date offset. */\n    LegDividendPeriodPaymentDateOffsetDayType: 42383,\n    /** The adjusted dividend period payment date. */\n    LegDividendPeriodPaymentDateAdjusted: 42384,\n    /** Identifier for linking this stream dividend period to an underlier through an instance of RelatedInstrumentGrp. */\n    LegDividendPeriodXID: 42385,\n    /** The number of entries in the LegDividendPeriodBusinessCentersGrp component. */\n    NoLegDividendPeriodBusinessCenters: 42386,\n    /** The business center calendar used for date adjustment of the instrument's dividend period date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegDividendPeriodBusinessCenter: 42387,\n    /** Number of extraordinary events in the repeating group. */\n    NoLegExtraordinaryEvents: 42388,\n    /** Identifies the type of extraordinary or disruptive event applicable to the reference entity.\n        See http://www.fixtradingcommunity.org/codelists#Extraordinary_Event_Type for code list of extraordinary event types and values. */\n    LegExtraordinaryEventType: 42389,\n    /** The extraordinary or disruptive event value appropriate to LegExtraordinaryEventType(42389).\n        See http://www.fixtradingcommunity.org/codelists#Extraordinary_Event_Type for code list of extraordinary event types and values. */\n    LegExtraordinaryEventValue: 42390,\n    /** Side value of the party electing the settlement method. */\n    LegSettlMethodElectingPartySide: 42391,\n    /** The date through which option cannot be exercised without penalty. */\n    LegMakeWholeDate: 42392,\n    /** Amount to be paid by the buyer of the option if the option is exercised prior to the LegMakeWholeDate(42392). */\n    LegMakeWholeAmount: 42393,\n    /** Identifies the benchmark floating rate index. */\n    LegMakeWholeBenchmarkCurveName: 42394,\n    /** The point on the floating rate index curve.\n        Sample values:\n        M = combination of a number between 1-12 and an \"M\" for month, e.g. 3M\n        Y = combination of number between 1-100 and a \"Y\" for year, e.g. 10Y\n        10Y-OLD = see above, then add \"-OLD\" when appropriate\n        INTERPOLATED = the point is mathematically derived\n        2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon. */\n    LegMakeWholeBenchmarkCurvePoint: 42395,\n    /** Spread over the floating rate index. */\n    LegMakeWholeRecallSpread: 42396,\n    /** The quote side of the benchmark to be used for calculating the \"make whole\" amount. */\n    LegMakeWholeBenchmarkQuote: 42397,\n    /** The method used when calculating the \"make whole\" amount. The most common is linear method. */\n    LegMakeWholeInterpolationMethod: 42398,\n    /** Indicates whether cash settlement is applicable. */\n    LegPaymentStreamCashSettlIndicator: 42399,\n    /** Reference to the stream which details the compounding fixed or floating rate. */\n    LegPaymentStreamCompoundingXIDRef: 42400,\n    /** The spread to be used for compounding. Used in scenarios where the interest payment is based on a compounding formula that uses a compounding spread in addition to the regular spread. */\n    LegPaymentStreamCompoundingSpread: 42401,\n    /** The method used when calculating the index rate from multiple points on the curve. The most common is linear method. */\n    LegPaymentStreamInterpolationMethod: 42402,\n    /** Defines applicable periods for interpolation. */\n    LegPaymentStreamInterpolationPeriod: 42403,\n    /** The compounding fixed rate applicable to the payment stream. */\n    LegPaymentStreamCompoundingFixedRate: 42404,\n    /** Number of dates in the repeating group. */\n    NoLegPaymentStreamCompoundingDates: 42405,\n    /** The compounding date. Type of date is specified in LegPaymentStreamCompoundingDateType(42407). */\n    LegPaymentStreamCompoundingDate: 42406,\n    /** Specifies the type of payment compounding date (e.g. adjusted for holidays). */\n    LegPaymentStreamCompoundingDateType: 42407,\n    /** The compounding dates business day convention. */\n    LegPaymentStreamCompoundingDatesBusinessDayConvention: 42408,\n    /** Specifies the anchor date when the compounding dates are relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentStreamCompoundingDatesRelativeTo: 42409,\n    /** Time unit multiplier for the relative compounding date offset. */\n    LegPaymentStreamCompoundingDatesOffsetPeriod: 42410,\n    /** Time unit associated with the relative compounding date offset. */\n    LegPaymentStreamCompoundingDatesOffsetUnit: 42411,\n    /** Specifies the day type of the relative compounding date offset. */\n    LegPaymentStreamCompoundingDatesOffsetDayType: 42412,\n    /** The number of periods in the \"RelativeTo\" schedule that are between each date in the compounding schedule. A skip of 2 would mean that compounding dates are relative to every second date in the \"RelativeTo\" schedule. If present this should have a value greater than 1. */\n    LegPaymentStreamCompoundingPeriodSkip: 42413,\n    /** Time unit multiplier for the frequency at which compounding dates occur. */\n    LegPaymentStreamCompoundingFrequencyPeriod: 42414,\n    /** Time unit associated with the frequency at which compounding dates occur. */\n    LegPaymentStreamCompoundingFrequencyUnit: 42415,\n    /** The convention for determining the sequence of compounding dates. It is used in conjunction with a specified frequency. */\n    LegPaymentStreamCompoundingRollConvention: 42416,\n    /** The unadjusted first date of the compounding schedule. This can be used to restrict the range of dates when they are relative. */\n    LegPaymentStreamBoundsFirstDateUnadjusted: 42417,\n    /** The unadjusted last date of the compounding schedule. This can be used to restrict the range of dates when they are relative. */\n    LegPaymentStreamBoundsLastDateUnadjusted: 42418,\n    /** Number of business centers in the repeating group. */\n    NoLegPaymentStreamCompoundingDatesBusinessCenters: 42419,\n    /** The business center calendar used for date adjustment of the payment stream compounding dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPaymentStreamCompoundingDatesBusinessCenter: 42420,\n    /** The unadjusted compounding end date. */\n    LegPaymentStreamCompoundingEndDateUnadjusted: 42421,\n    /** Specifies the anchor date when the compounding end date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentStreamCompoundingEndDateRelativeTo: 42422,\n    /** Time unit multiplier for the relative compounding end date offset. */\n    LegPaymentStreamCompoundingEndDateOffsetPeriod: 42423,\n    /** Time unit associated with the relative compounding end date offset. */\n    LegPaymentStreamCompoundingEndDateOffsetUnit: 42424,\n    /** Specifies the day type of the relative compounding end date offset. */\n    LegPaymentStreamCompoundingEndDateOffsetDayType: 42425,\n    /** The adjusted compounding end date. */\n    LegPaymentStreamCompoundingEndDateAdjusted: 42426,\n    /** The payment stream's compounding floating rate index. */\n    LegPaymentStreamCompoundingRateIndex: 42427,\n    /** Time unit multiplier for the payment stream's compounding floating rate index curve period. */\n    LegPaymentStreamCompoundingRateIndexCurvePeriod: 42428,\n    /** Time unit associated with the payment stream's compounding floating rate index curve period. */\n    LegPaymentStreamCompoundingRateIndexCurveUnit: 42429,\n    /** A rate multiplier to apply to the compounding floating rate. The multiplier can be less than or greater than 1 (one). This should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    LegPaymentStreamCompoundingRateMultiplier: 42430,\n    /** The basis points spread from the index specified in LegPaymentStreamCompoundingRateIndex(42427). */\n    LegPaymentStreamCompoundingRateSpread: 42431,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    LegPaymentStreamCompoundingRateSpreadPositionType: 42432,\n    /** Specifies the yield calculation treatment for the index. */\n    LegPaymentStreamCompoundingRateTreatment: 42433,\n    /** The cap rate, if any, which applies to the compounding floating rate. It is only required where the compounding floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as \"0.05\". */\n    LegPaymentStreamCompoundingCapRate: 42434,\n    /** Reference to the buyer of the compounding cap rate option through its trade side. */\n    LegPaymentStreamCompoundingCapRateBuySide: 42435,\n    /** Reference to the seller of the compounding cap rate option through its trade side. */\n    LegPaymentStreamCompoundingCapRateSellSide: 42436,\n    /** The floor rate, if any, which applies to the compounding floating rate. The floor rate (strike) is only required where the compounding floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as \"0.05\". */\n    LegPaymentStreamCompoundingFloorRate: 42437,\n    /** Reference to the buyer of the compounding floor rate option through its trade side. */\n    LegPaymentStreamCompoundingFloorRateBuySide: 42438,\n    /** Reference to the seller of the floor rate option through its trade side. */\n    LegPaymentStreamCompoundingFloorRateSellSide: 42439,\n    /** The initial compounding floating rate reset agreed between the principal parties involved in the trade. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as \"0.05\". */\n    LegPaymentStreamCompoundingInitialRate: 42440,\n    /** Specifies the rounding direction for the compounding floating rate. */\n    LegPaymentStreamCompoundingFinalRateRoundingDirection: 42441,\n    /** Specifies the compounding floating rate rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7. */\n    LegPaymentStreamCompoundingFinalRatePrecision: 42442,\n    /** Specifies the averaging method when compounding floating rate averaging is applicable (e.g. weighted or unweighted). */\n    LegPaymentStreamCompoundingAveragingMethod: 42443,\n    /** Specifies the method for calculating payment obligations when a compounding floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate). */\n    LegPaymentStreamCompoundingNegativeRateTreatment: 42444,\n    /** The unadjusted compounding start date. */\n    LegPaymentStreamCompoundingStartDateUnadjusted: 42445,\n    /** Specifies the anchor date when the compounding start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentStreamCompoundingStartDateRelativeTo: 42446,\n    /** Time unit multiplier for the relative compounding start date offset. */\n    LegPaymentStreamCompoundingStartDateOffsetPeriod: 42447,\n    /** Time unit associated with the relative compounding start date offset. */\n    LegPaymentStreamCompoundingStartDateOffsetUnit: 42448,\n    /** Specifies the day type of the relative compounding start date offset. */\n    LegPaymentStreamCompoundingStartDateOffsetDayType: 42449,\n    /** The adjusted compounding start date. */\n    LegPaymentStreamCompoundingStartDateAdjusted: 42450,\n    /** Length in bytes of the LegPaymentStreamFormulaImage(42452) field. */\n    LegPaymentStreamFormulaImageLength: 42451,\n    /** Image of the formula image when represented through an encoded clip in base64Binary. */\n    LegPaymentStreamFormulaImage: 42452,\n    /** The unadjusted final price payment date. */\n    LegPaymentStreamFinalPricePaymentDateUnadjusted: 42453,\n    /** Specifies the anchor date when the final price payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentStreamFinalPricePaymentDateRelativeTo: 42454,\n    /** Time unit multiplier for the relative final price payment date offset. */\n    LegPaymentStreamFinalPricePaymentDateOffsetPeriod: 42455,\n    /** Time unit associated with the relative final price payment date offset. */\n    LegPaymentStreamFinalPricePaymentDateOffsetUnit: 42456,\n    /** Specifies the day type of the relative final price payment date offset. */\n    LegPaymentStreamFinalPricePaymentDateOffsetDayType: 42457,\n    /** The adjusted final price payment date. */\n    LegPaymentStreamFinalPricePaymentDateAdjusted: 42458,\n    /** Number of fixing dates in the repeating group. */\n    NoLegPaymentStreamFixingDates: 42459,\n    /** The fixing date. Type of date is specified in LegPaymentStreamFixingDateType(42461). */\n    LegPaymentStreamFixingDate: 42460,\n    /** Specifies the type of fixing date (e.g. adjusted for holidays). */\n    LegPaymentStreamFixingDateType: 42461,\n    /** The unadjusted initial price observation date. */\n    LegPaymentStreamFirstObservationDateUnadjusted: 42462,\n    /** Specifies the anchor date when the initial price observation date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentStreamFirstObservationDateRelativeTo: 42463,\n    /** Specifies the day type of the initial price observation date offset. */\n    LegPaymentStreamFirstObservationDateOffsetDayType: 42464,\n    /** The adjusted initial price observation date. */\n    LegPaymentStreamFirstObservationDateAdjusted: 42465,\n    /** References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component. */\n    LegPaymentStreamUnderlierRefID: 42466,\n    /** Indicates whether the term \"Equity Notional Reset\" as defined in the ISDA 2002 Equity Derivatives Definitions is applicable (\"Y\") or not. */\n    LegReturnRateNotionalReset: 42467,\n    /** Price level at which the correlation or variance swap contract will strike. */\n    LegPaymentStreamLinkInitialLevel: 42468,\n    /** Indicates whether the correlation or variance swap contract will (\"Y\") strike off the closing level of the default exchange traded contract or not. */\n    LegPaymentStreamLinkClosingLevelIndicator: 42469,\n    /** Indicates whether the correlation or variance swap contract will (\"Y\") strike off the expiring level of the default exchange traded contract or not. */\n    LegPaymentStreamLinkExpiringLevelIndicator: 42470,\n    /** The expected number of trading days in the variance or correlation swap stream. */\n    LegPaymentStreamLinkEstimatedTradingDays: 42471,\n    /** The strike price of a correlation or variance swap stream. */\n    LegPaymentStreamLinkStrikePrice: 42472,\n    /** For a variance swap specifies how LegPaymentStreamLinkStrikePrice(42472) is expressed. */\n    LegPaymentStreamLinkStrikePriceType: 42473,\n    /** Specifies the maximum or upper boundary for variance or strike determination.\n        For a variation swap stream all observations above this price level will be excluded from the variance calculation.\n        For a correlation swap stream the maximum boundary is a percentage of the strike price. */\n    LegPaymentStreamLinkMaximumBoundary: 42474,\n    /** Specifies the minimum or lower boundary for variance or strike determination.\n        For a variation swap stream all observations below this price level will be excluded from the variance calculation.\n        For a correlation swap stream the minimum boundary is a percentage of the strike price. */\n    LegPaymentStreamLinkMinimumBoundary: 42475,\n    /** Number of data series for a correlation swap. Normal market practice is that correlation data sets are drawn from geographic market areas, such as America, Europe and Asia Pacific. Each of these geographic areas will have its own data series to avoid contagion. */\n    LegPaymentStreamLinkNumberOfDataSeries: 42476,\n    /** Indicates the scaling factor to be multiplied by the variance strike price thereby making variance cap applicable. */\n    LegPaymentStreamVarianceUnadjustedCap: 42477,\n    /** Indicates which price to use to satisfy the boundary condition. */\n    LegPaymentStreamRealizedVarianceMethod: 42478,\n    /** Indicates whether the contract specifies that the notional should be scaled by the number of days in range divided by the estimate trading days or not. The number of \"days in range\" refers to the number of returns that contribute to the realized volatility. */\n    LegPaymentStreamDaysAdjustmentIndicator: 42479,\n    /** References a contract listed on an exchange through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component. */\n    LegPaymentStreamNearestExchangeContractRefID: 42480,\n    /** Vega Notional represents the approximate gain/loss at maturity for a 1% difference between RVol (realized volatility) and KVol (strike volatility). It does not necessarily represent the Vega risk of the trade. */\n    LegPaymentStreamVegaNotionalAmount: 42481,\n    /** The currency in which the formula amount is denominated. Uses ISO 4217 currency codes. */\n    LegPaymentStreamFormulaCurrency: 42482,\n    /** Specifies the method according to which the formula amount currency is determined.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    LegPaymentStreamFormulaCurrencyDeterminationMethod: 42483,\n    /** Specifies the reference amount when this term either corresponds to the standard ISDA Definition (either the 2002 Equity Definition for the Equity Amount, or the 2000 Definition for the Interest Amount), or refers to a term defined elsewhere in the swap document.\n        See http://www.fixtradingcommunity.org/codelists#Payment_Amount_Relative_To for code list of reference amounts. */\n    LegPaymentStreamFormulaReferenceAmount: 42484,\n    /** Number of formulas in the repeating group. */\n    NoLegPaymentStreamFormulas: 42485,\n    /** Contains an XML representation of the formula. Defined for flexibility in choice of language (MathML, OpenMath or text). */\n    LegPaymentStreamFormula: 42486,\n    /** A description of the math formula in LegPaymentStreamFormula(42486). */\n    LegPaymentStreamFormulaDesc: 42487,\n    /** The unadjusted stub end date. */\n    LegPaymentStubEndDateUnadjusted: 42488,\n    /** The stub end date business day convention. */\n    LegPaymentStubEndDateBusinessDayConvention: 42489,\n    /** Specifies the anchor date when the stub end date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentStubEndDateRelativeTo: 42490,\n    /** Time unit multiplier for the relative stub end date offset. */\n    LegPaymentStubEndDateOffsetPeriod: 42491,\n    /** Time unit associated with the relative stub end date offset. */\n    LegPaymentStubEndDateOffsetUnit: 42492,\n    /** Specifies the day type of the relative stub end date offset. */\n    LegPaymentStubEndDateOffsetDayType: 42493,\n    /** The adjusted stub end date. */\n    LegPaymentStubEndDateAdjusted: 42494,\n    /** Number of business centers in the repeating group. */\n    NoLegPaymentStubEndDateBusinessCenters: 42495,\n    /** The business center calendar used for date adjustment of the payment stub end date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPaymentStubEndDateBusinessCenter: 42496,\n    /** The unadjusted stub start date. */\n    LegPaymentStubStartDateUnadjusted: 42497,\n    /** The stub start date business day convention. */\n    LegPaymentStubStartDateBusinessDayConvention: 42498,\n    /** Specifies the anchor date when the stub start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegPaymentStubStartDateRelativeTo: 42499,\n    /** Time unit multiplier for the relative stub start date offset. */\n    LegPaymentStubStartDateOffsetPeriod: 42500,\n    /** Time unit associated with the relative stub start date offset. */\n    LegPaymentStubStartDateOffsetUnit: 42501,\n    /** Specifies the day type of the relative stub start date offset. */\n    LegPaymentStubStartDateOffsetDayType: 42502,\n    /** The adjusted stub start date. */\n    LegPaymentStubStartDateAdjusted: 42503,\n    /** Number of business centers in the repeating group. */\n    NoLegPaymentStubStartDateBusinessCenters: 42504,\n    /** The business center calendar used for date adjustment of the payment stub start date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegPaymentStubStartDateBusinessCenter: 42505,\n    /** Type of fee elected for the break provision. */\n    LegProvisionBreakFeeElection: 42506,\n    /** Break fee election rate when the break fee is proportional to the notional. A fee rate of 5% would be represented as \"0.05\". */\n    LegProvisionBreakFeeRate: 42507,\n    /** Number of iterations in the return rate date repeating group. */\n    NoLegReturnRateDates: 42508,\n    /** Specifies the valuation type applicable to the return rate date. */\n    LegReturnRateDateMode: 42509,\n    /** Specifies the anchor date when the return rate valuation dates are relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegReturnRateValuationDateRelativeTo: 42510,\n    /** Time unit multiplier for the relative return rate valuation date offset. */\n    LegReturnRateValuationDateOffsetPeriod: 42511,\n    /** Time unit associated with the relative return rate valuation date offset. */\n    LegReturnRateValuationDateOffsetUnit: 42512,\n    /** Specifies the day type of the relative return rate valuation date offset. */\n    LegReturnRateValuationDateOffsetDayType: 42513,\n    /** The unadjusted start date for return rate valuation. This can be used to restrict the range of dates when they are relative. */\n    LegReturnRateValuationStartDateUnadjusted: 42514,\n    /** Specifies the anchor date when the return rate valuation start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegReturnRateValuationStartDateRelativeTo: 42515,\n    /** Time unit multiplier for the relative return rate valuation start date offset. */\n    LegReturnRateValuationStartDateOffsetPeriod: 42516,\n    /** Time unit associated with the relative return rate valuation start date offset. */\n    LegReturnRateValuationStartDateOffsetUnit: 42517,\n    /** Specifies the day type of the relative return rate valuation start date offset. */\n    LegReturnRateValuationStartDateOffsetDayType: 42518,\n    /** The adjusted start date for return rate valuation. This can be used to restrict the range of dates when they are relative. */\n    LegReturnRateValuationStartDateAdjusted: 42519,\n    /** The unadjusted end date for return rate valuation. This can be used to restrict the range of dates when they are relative. */\n    LegReturnRateValuationEndDateUnadjusted: 42520,\n    /** Specifies the anchor date when the return rate valuation end date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegReturnRateValuationEndDateRelativeTo: 42521,\n    /** Time unit multiplier for the relative return rate valuation end date offset. */\n    LegReturnRateValuationEndDateOffsetPeriod: 42522,\n    /** Time unit associated with the relative return rate valuation end date offset. */\n    LegReturnRateValuationEndDateOffsetUnit: 42523,\n    /** Specifies the day type of the relative return rate valuation end date offset. */\n    LegReturnRateValuationEndDateOffsetDayType: 42524,\n    /** The adjusted end date for return rate valuation. This can be used to restrict the range of dates when they are relative. */\n    LegReturnRateValuationEndDateAdjusted: 42525,\n    /** Time unit multiplier for the frequency at which return rate valuation dates occur. */\n    LegReturnRateValuationFrequencyPeriod: 42526,\n    /** Time unit associated with the frequency at which return rate valuation dates occur. */\n    LegReturnRateValuationFrequencyUnit: 42527,\n    /** The convention for determining the sequence of return rate valuation dates. It is used in conjunction with a specified frequency. */\n    LegReturnRateValuationFrequencyRollConvention: 42528,\n    /** The return rate valuation dates business day convention. */\n    LegReturnRateValuationDateBusinessDayConvention: 42529,\n    /** Number of iterations in the return rate FX conversion repeating group. */\n    NoLegReturnRateFXConversions: 42530,\n    /** Specifies the currency pair for the FX conversion expressed using the CCY1/CCY2 convention. Uses ISO 4217 currency codes. */\n    LegReturnRateFXCurrencySymbol: 42531,\n    /** The rate of exchange between the two currencies specified in LegReturnRateFXCurrencySymbol(42531). */\n    LegReturnRateFXRate: 42532,\n    /** The rate of exchange between the two currencies specified in LegReturnRateFXCurrencySymbol(42531). */\n    LegReturnRateFXRateCalc: 42533,\n    /** Number of iterations in the return rate repeating group. */\n    NoLegReturnRates: 42534,\n    /** Specifies the type of price sequence of the return rate. */\n    LegReturnRatePriceSequence: 42535,\n    /** Specifies the basis or unit used to calculate the commission. */\n    LegReturnRateCommissionBasis: 42536,\n    /** The commission amount. */\n    LegReturnRateCommissionAmount: 42537,\n    /** Specifies the currency the commission amount is denominated in. Uses ISO 4217 currency codes. */\n    LegReturnRateCommissionCurrency: 42538,\n    /** The total commission per trade. */\n    LegReturnRateTotalCommissionPerTrade: 42539,\n    /** Specifies the method by which the underlier prices are determined.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    LegReturnRateDeterminationMethod: 42540,\n    /** Specifies the reference amount when the return rate amount is relative to another amount in the trade.\n        See http://www.fixtradingcommunity.org/codelists#Amount_Relative_To for code list of relative amounts. */\n    LegReturnRateAmountRelativeTo: 42541,\n    /** Specifies the type of the measure applied to the return rate's asset, e.g. valuation, sensitivity risk. This could be an NPV, a cash flow, a clean price, etc.\n        See http://www.fpml.org/coding-scheme/asset-measure for values. */\n    LegReturnRateQuoteMeasureType: 42542,\n    /** Specifies the units that the measure is expressed in. If not specified, the default is a price/value in currency units.\n        See http://www.fpml.org/coding-scheme/price-quote-units for values. */\n    LegReturnRateQuoteUnits: 42543,\n    /** Specifies the type of quote used to determine the return rate of the swap. */\n    LegReturnRateQuoteMethod: 42544,\n    /** Specifies the currency the return rate quote is denominated in. Uses ISO 4217 Currency Code. */\n    LegReturnRateQuoteCurrency: 42545,\n    /** Specifies the type of currency, e.g. settlement currency, base currency, etc., that the quote is reported in.\n        See http://www.fpml.org/coding-scheme/reporting-currency-type for values. */\n    LegReturnRateQuoteCurrencyType: 42546,\n    /** Specifies how or the timing when the quote is to be obtained. */\n    LegReturnRateQuoteTimeType: 42547,\n    /** The time when the quote is to be generated. */\n    LegReturnRateQuoteTime: 42548,\n    /** The date when the quote is to be generated. */\n    LegReturnRateQuoteDate: 42549,\n    /** The time when the quote ceases to be valid. */\n    LegReturnRateQuoteExpirationTime: 42550,\n    /** The business center calendar used for adjustments associated with LegReturnRateQuoteTimeType(42547) or LegReturnRateQuoteTime(42548) and LegReturnRateQuoteDate(42549), e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegReturnRateQuoteBusinessCenter: 42551,\n    /** Specifies the exchange (e.g. stock or listed futures/options exchange) from which the quote is obtained. */\n    LegReturnRateQuoteExchange: 42552,\n    /** Specifies the pricing model used to evaluate the underlying asset price.\n        See http://www.fpml.org/coding-scheme/pricing-model for values. */\n    LegReturnRateQuotePricingModel: 42553,\n    /** Specifies the type of cash flows, e.g. coupon payment, premium fee, settlement fee, etc.\n        See http://www.fpml.org/coding-scheme/cashflow-type for values. */\n    LegReturnRateCashFlowType: 42554,\n    /** Specifies the timing at which the calculation agent values the underlying. */\n    LegReturnRateValuationTimeType: 42555,\n    /** The time at which the calculation agent values the underlying asset. */\n    LegReturnRateValuationTime: 42556,\n    /** The business center calendar used for adjustments associated with LegReturnRateValuationTimeType(42555) or LegReturnRateValuationTime(42556), e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegReturnRateValuationTimeBusinessCenter: 42557,\n    /** Indicates whether an ISDA price option applies, and if applicable which type of price. */\n    LegReturnRateValuationPriceOption: 42558,\n    /** Specifies the fallback provision for the hedging party in the determination of the final price. */\n    LegReturnRateFinalPriceFallback: 42559,\n    /** Number of iterations in the return rate information source repeating group. */\n    NoLegReturnRateInformationSources: 42560,\n    /** Identifies the source of rate information. For FX the references source to be used for the FX spot rate. */\n    LegReturnRateInformationSource: 42561,\n    /** Identifies the reference \"page\" from the rate source.\n        For FX, the reference page to the spot rate to be used for the reference FX spot rate.\n        When LegReturnRateInformationSource(42561) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions.\n        See: http://www.fpml.org/coding-scheme/settlement-rate-option. */\n    LegReturnRateReferencePage: 42562,\n    /** Identifies the page heading from the rate source. */\n    LegReturnRateReferencePageHeading: 42563,\n    /** Number of iterations in the return rate price repeating group. */\n    NoLegReturnRatePrices: 42564,\n    /** The basis of the return price. */\n    LegReturnRatePriceBasis: 42565,\n    /** Specifies the price of the underlying swap asset. */\n    LegReturnRatePrice: 42566,\n    /** Specifies the currency of the price of the leg swap asset. Uses ISO 4217 currency codes. */\n    LegReturnRatePriceCurrency: 42567,\n    /** Specifies whether the LegReturnRatePrice(42566) is expressed in absolute or relative terms. */\n    LegReturnRatePriceType: 42568,\n    /** Number of iterations in the return rate valuation date business center repeating group. */\n    NoLegReturnRateValuationDateBusinessCenters: 42569,\n    /** The business center calendar used for date adjustment of the return rate valuation unadjusted or relative dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegReturnRateValuationDateBusinessCenter: 42570,\n    /** Number of iterations in the return rate valuation date repeating group. */\n    NoLegReturnRateValuationDates: 42571,\n    /** The return rate valuation date. The type of date is specified in LegReturnRateValuationDateType(42573). */\n    LegReturnRateValuationDate: 42572,\n    /** Specifies the type of return rate valuation date (e.g. adjusted for holidays). */\n    LegReturnRateValuationDateType: 42573,\n    /** The unadjusted settlement method election date. */\n    LegSettlMethodElectionDateUnadjusted: 42574,\n    /** The settlement method election date adjustment business day convention. */\n    LegSettlMethodElectionDateBusinessDayConvention: 42575,\n    /** Specifies the anchor date when the settlement method election date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    LegSettlMethodElectionDateRelativeTo: 42576,\n    /** Time unit multiplier for the relative settlement method election date offset. */\n    LegSettlMethodElectionDateOffsetPeriod: 42577,\n    /** Time unit associated with the relative settlement method election date offset. */\n    LegSettlMethodElectionDateOffsetUnit: 42578,\n    /** Specifies the day type of the relative settlement method election date offset. */\n    LegSettlMethodElectionDateOffsetDayType: 42579,\n    /** The adjusted settlement method election date. */\n    LegSettlMethodElectionDateAdjusted: 42580,\n    /** Number of business centers in the repeating group. */\n    NoLegSettlMethodElectionDateBusinessCenters: 42581,\n    /** The business center calendar used for date adjustment of the settlement method election unadjusted or relative date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    LegSettlMethodElectionDateBusinessCenter: 42582,\n    /** The stream version identifier when there have been modifications to the contract over time. Helps signal when there are embedded changes. */\n    LegStreamVersion: 42583,\n    /** The effective date of the LegStreamVersion(42583). */\n    LegStreamVersionEffectiveDate: 42584,\n    /** Specifies the method for determining the floating notional value for equity swaps.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    LegStreamNotionalDeterminationMethod: 42585,\n    /** For equity swaps this specifies the conditions that govern the adjustment to the number of units of the swap. */\n    LegStreamNotionalAdjustments: 42586,\n    /** The delivery or pricing region associated with the commodity swap. See http://www.ecfr.gov/cgi-bin/text-idx?SID=660d6a40f836aa6ddf213cba080c5b22&node=ap17.2.43_17.e&rgn=div9 for the external code list.\n        In the context of CFTC Part 43 Appendix E requirement this represents the specific delivery point or pricing point associated with publicly reportable commodity swap transactions. */\n    StreamCommodityDeliveryPricingRegion: 42587,\n    /** The delivery or pricing region associated with the commodity swap. See http://www.ecfr.gov/cgi-bin/text-idx?SID=660d6a40f836aa6ddf213cba080c5b22&node=ap17.2.43_17.e&rgn=div9 for the external code list.\n        In the context of CFTC Part 43 Appendix E requirement this represents the specific delivery point or pricing point associated with publically reportable commodity swap transactions. */\n    LegStreamCommodityDeliveryPricingRegion: 42588,\n    /** The delivery or pricing region associated with the commodity swap. See http://www.ecfr.gov/cgi-bin/text-idx?SID=660d6a40f836aa6ddf213cba080c5b22&node=ap17.2.43_17.e&rgn=div9 for the external code list.\n        In the context of CFTC Part 43 Appendix E requirement this represents the specific delivery point or pricing point associated with publically reportable commodity swap transactions. */\n    UnderlyingStreamCommodityDeliveryPricingRegion: 42589,\n    /** Side value of the party electing the settlement method. */\n    SettlMethodElectingPartySide: 42590,\n    /** The date through which option cannot be exercised without penalty. */\n    MakeWholeDate: 42591,\n    /** Amount to be paid by the buyer of the option if the option is exercised prior to the MakeWholeDate(42591). */\n    MakeWholeAmount: 42592,\n    /** Identifies the benchmark floating rate index. */\n    MakeWholeBenchmarkCurveName: 42593,\n    /** The point on the floating rate index curve.\n        Sample values:\n        M = combination of a number between 1-12 and an \"M\" for month, e.g. 3M\n        Y = combination of number between 1-100 and a \"Y\" for year, e.g. 10Y\n        10Y-OLD = see above, then add \"-OLD\" when appropriate\n        INTERPOLATED = the point is mathematically derived\n        2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon. */\n    MakeWholeBenchmarkCurvePoint: 42594,\n    /** Spread over the floating rate index. */\n    MakeWholeRecallSpread: 42595,\n    /** The quote side of the benchmark to be used for calculating the \"make whole\" amount. */\n    MakeWholeBenchmarkQuote: 42596,\n    /** The method used when calculating the \"make whole\" amount. The most common is linear method. */\n    MakeWholeInterpolationMethod: 42597,\n    /** Specifies the reference amount when the payment amount is relative to another amount in the message.\n        See http://www.fixtradingcommunity.org/codelists#Payment_Amount_Relative_To for code list of relative amounts. */\n    PaymentAmountRelativeTo: 42598,\n    /** Specifies the method by which a payment amount is determined.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    PaymentAmountDeterminationMethod: 42599,\n    /** Indicates whether cash settlement is applicable. */\n    PaymentStreamCashSettlIndicator: 42600,\n    /** Reference to the stream which details the compounding fixed or floating rate. */\n    PaymentStreamCompoundingXIDRef: 42601,\n    /** The spread to be used for compounding. Used in scenarios where the interest payment is based on a compounding formula that uses a compounding spread in addition to the regular spread. */\n    PaymentStreamCompoundingSpread: 42602,\n    /** The method used when calculating the index rate from multiple points on the curve. The most common is linear method. */\n    PaymentStreamInterpolationMethod: 42603,\n    /** Defines applicable periods for interpolation. */\n    PaymentStreamInterpolationPeriod: 42604,\n    /** The compounding fixed rate applicable to the payment stream. */\n    PaymentStreamCompoundingFixedRate: 42605,\n    /** Number of dates in the repeating group. */\n    NoPaymentStreamCompoundingDates: 42606,\n    /** The compounding date. The type of date is specified in PaymentStreamCompoundingDateType(42608). */\n    PaymentStreamCompoundingDate: 42607,\n    /** Specifies the type of payment compounding date (e.g. adjusted for holidays). */\n    PaymentStreamCompoundingDateType: 42608,\n    /** The compounding dates business day convention. */\n    PaymentStreamCompoundingDatesBusinessDayConvention: 42609,\n    /** Specifies the anchor date when the compounding dates are relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentStreamCompoundingDatesRelativeTo: 42610,\n    /** Time unit multiplier for the relative compounding date offset. */\n    PaymentStreamCompoundingDatesOffsetPeriod: 42611,\n    /** Time unit associated with the relative compounding date offset. */\n    PaymentStreamCompoundingDatesOffsetUnit: 42612,\n    /** Specifies the day type of the relative compounding date offset. */\n    PaymentStreamCompoundingDatesOffsetDayType: 42613,\n    /** The number of periods in the \"RelativeTo\" schedule that are between each date in the compounding schedule. A skip of 2 would mean that compounding dates are relative to every second date in the \"RelativeTo\" schedule. If present this should have a value greater than 1. */\n    PaymentStreamCompoundingPeriodSkip: 42614,\n    /** Time unit multiplier for the frequency at which compounding dates occur. */\n    PaymentStreamCompoundingFrequencyPeriod: 42615,\n    /** Time unit associated with the frequency at which compounding dates occur. */\n    PaymentStreamCompoundingFrequencyUnit: 42616,\n    /** The convention for determining the sequence of compounding dates. It is used in conjunction with a specified frequency. */\n    PaymentStreamCompoundingRollConvention: 42617,\n    /** The unadjusted first date of the compounding schedule. This can be used to restrict the range of dates when they are relative. */\n    PaymentStreamBoundsFirstDateUnadjusted: 42618,\n    /** The unadjusted last date of the compounding schedule. This can be used to restrict the range of dates when they are relative. */\n    PaymentStreamBoundsLastDateUnadjusted: 42619,\n    /** Number of business centers in the repeating group. */\n    NoPaymentStreamCompoundingDatesBusinessCenters: 42620,\n    /** The business center calendar used for date adjustment of the payment stream compounding dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PaymentStreamCompoundingDatesBusinessCenter: 42621,\n    /** The unadjusted compounding end date. */\n    PaymentStreamCompoundingEndDateUnadjusted: 42622,\n    /** Specifies the anchor date when the compounding end date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentStreamCompoundingEndDateRelativeTo: 42623,\n    /** Time unit multiplier for the relative compounding end date offset. */\n    PaymentStreamCompoundingEndDateOffsetPeriod: 42624,\n    /** Time unit associated with the relative compounding end date offset. */\n    PaymentStreamCompoundingEndDateOffsetUnit: 42625,\n    /** Specifies the day type of the relative compounding end date offset. */\n    PaymentStreamCompoundingEndDateOffsetDayType: 42626,\n    /** The adjusted compounding end date. */\n    PaymentStreamCompoundingEndDateAdjusted: 42627,\n    /** The payment stream's compounding floating rate index. */\n    PaymentStreamCompoundingRateIndex: 42628,\n    /** Time unit multiplier for the payment stream's compounding floating rate index curve period. */\n    PaymentStreamCompoundingRateIndexCurvePeriod: 42629,\n    /** Time unit associated with the payment stream's compounding floating rate index curve period. */\n    PaymentStreamCompoundingRateIndexCurveUnit: 42630,\n    /** A rate multiplier to apply to the compounding floating rate. The multiplier can be less than or greater than 1 (one). This should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    PaymentStreamCompoundingRateMultiplier: 42631,\n    /** The basis points spread from the index specified in PaymentStreamCompoundingRateIndex(42628). */\n    PaymentStreamCompoundingRateSpread: 42632,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    PaymentStreamCompoundingRateSpreadPositionType: 42633,\n    /** Specifies the yield calculation treatment for the index. */\n    PaymentStreamCompoundingRateTreatment: 42634,\n    /** The cap rate, if any, which applies to the compounding floating rate. It is only required where the compounding floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as \"0.05\". */\n    PaymentStreamCompoundingCapRate: 42635,\n    /** Reference to the buyer of the compounding cap rate option through its trade side. */\n    PaymentStreamCompoundingCapRateBuySide: 42636,\n    /** Reference to the seller of the compounding cap rate option through its trade side. */\n    PaymentStreamCompoundingCapRateSellSide: 42637,\n    /** The floor rate, if any, which applies to the compounding floating rate. The floor rate (strike) is only required where the compounding floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as \"0.05\". */\n    PaymentStreamCompoundingFloorRate: 42638,\n    /** Reference to the buyer of the compounding floor rate option through its trade side. */\n    PaymentStreamCompoundingFloorRateBuySide: 42639,\n    /** Reference to the seller of the floor rate option through its trade side. */\n    PaymentStreamCompoundingFloorRateSellSide: 42640,\n    /** The initial compounding floating rate reset agreed between the principal parties involved in the trade. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as \"0.05\". */\n    PaymentStreamCompoundingInitialRate: 42641,\n    /** Specifies the rounding direction for the compounding floating rate. */\n    PaymentStreamCompoundingFinalRateRoundingDirection: 42642,\n    /** Specifies the compounding floating rate rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7. */\n    PaymentStreamCompoundingFinalRatePrecision: 42643,\n    /** Specifies the averaging method when compounding floating rate averaging is applicable (e.g. weighted or unweighted). */\n    PaymentStreamCompoundingAveragingMethod: 42644,\n    /** Specifies the method for calculating payment obligations when a compounding floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate). */\n    PaymentStreamCompoundingNegativeRateTreatment: 42645,\n    /** The unadjusted compounding start date. */\n    PaymentStreamCompoundingStartDateUnadjusted: 42646,\n    /** Specifies the anchor date when the compounding start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentStreamCompoundingStartDateRelativeTo: 42647,\n    /** Time unit multiplier for the relative compounding start date offset. */\n    PaymentStreamCompoundingStartDateOffsetPeriod: 42648,\n    /** Time unit associated with the relative compounding start date offset. */\n    PaymentStreamCompoundingStartDateOffsetUnit: 42649,\n    /** Specifies the day type of the relative compounding start date offset. */\n    PaymentStreamCompoundingStartDateOffsetDayType: 42650,\n    /** The adjusted compounding start date. */\n    PaymentStreamCompoundingStartDateAdjusted: 42651,\n    /** Length in bytes of the PaymentStreamFormulaImage(42563) field. */\n    PaymentStreamFormulaImageLength: 42652,\n    /** Image of the formula image when represented through an encoded clip in base64Binary. */\n    PaymentStreamFormulaImage: 42653,\n    /** The unadjusted final price payment date. */\n    PaymentStreamFinalPricePaymentDateUnadjusted: 42654,\n    /** Specifies the anchor date when the final price payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentStreamFinalPricePaymentDateRelativeTo: 42655,\n    /** Time unit multiplier for the relative final price payment date offset. */\n    PaymentStreamFinalPricePaymentDateOffsetfPeriod: 42656,\n    /** Time unit associated with the relative final price payment date offset. */\n    PaymentStreamFinalPricePaymentDateOffsetUnit: 42657,\n    /** Specifies the day type of the relative final price payment date offset. */\n    PaymentStreamFinalPricePaymentDateOffsetDayType: 42658,\n    /** The adjusted final price payment date. */\n    PaymentStreamFinalPricePaymentDateAdjusted: 42659,\n    /** Number of fixing dates in the repeating group. */\n    NoPaymentStreamFixingDates: 42660,\n    /** The fixing date. The type of date is specified in PaymentStreamFixingDateType(42662). */\n    PaymentStreamFixingDate: 42661,\n    /** Specifies the type of fixing date (e.g. adjusted for holidays). */\n    PaymentStreamFixingDateType: 42662,\n    /** The unadjusted initial price observation date. */\n    PaymentStreamFirstObservationDateUnadjusted: 42663,\n    /** Specifies the anchor date when the initial price observation date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentStreamFirstObservationDateRelativeTo: 42664,\n    /** Specifies the day type of the initial price observation date offset. */\n    PaymentStreamFirstObservationDateOffsetDayType: 42665,\n    /** The adjusted initial price observation date. */\n    PaymentStreamFirstObservationDateAdjusted: 42666,\n    /** References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component. */\n    PaymentStreamUnderlierRefID: 42667,\n    /** Indicates whether the term \"Equity Notional Reset\" as defined in the ISDA 2002 Equity Derivatives Definitions is applicable (\"Y\") or not. */\n    ReturnRateNotionalReset: 42668,\n    /** Price level at which the correlation or variance swap contract will strike. */\n    PaymentStreamLinkInitialLevel: 42669,\n    /** Indicates whether the correlation or variance swap contract will (\"Y\") strike off the closing level of the default exchange traded contract or not. */\n    PaymentStreamLinkClosingLevelIndicator: 42670,\n    /** Indicates whether the correlation or variance swap contract will (\"Y\") strike off the expiring level of the default exchange traded contract or not. */\n    PaymentStreamLinkExpiringLevelIndicator: 42671,\n    /** The expected number of trading days in the variance or correlation swap stream. */\n    PaymentStreamLinkEstimatedTradingDays: 42672,\n    /** The strike price of a correlation or variance swap stream. */\n    PaymentStreamLinkStrikePrice: 42673,\n    /** For a variance swap specifies how PaymentStreamLinkStrikePrice(42673) is expressed. */\n    PaymentStreamLinkStrikePriceType: 42674,\n    /** Specifies the maximum or upper boundary for variance or strike determination.\n        For a variation swap stream all observations above this price level will be excluded from the variance calculation.\n        For a correlation swap stream the maximum boundary is a percentage of the strike price. */\n    PaymentStreamLinkMaximumBoundary: 42675,\n    /** Specifies the minimum or lower boundary for variance or strike determination.\n        For a variation swap stream all observations below this price level will be excluded from the variance calculation.\n        For a correlation swap stream the minimum boundary is a percentage of the strike price. */\n    PaymentStreamLinkMinimumBoundary: 42676,\n    /** Number of data series for a correlation swap. Normal market practice is that correlation data sets are drawn from geographic market areas, such as America, Europe and Asia Pacific. Each of these geographic areas will have its own data series to avoid contagion. */\n    PaymentStreamLinkNumberOfDataSeries: 42677,\n    /** Indicates the scaling factor to be multiplied by the variance strike price thereby making variance cap applicable. */\n    PaymentStreamVarianceUnadjustedCap: 42678,\n    /** Indicates which price to use to satisfy the boundary condition. */\n    PaymentStreamRealizedVarianceMethod: 42679,\n    /** Indicates whether the contract specifies that the notional should be scaled by the number of days in range divided by the estimate trading days or not. The number of \"days in range\" refers to the number of returns that contribute to the realized volatility. */\n    PaymentStreamDaysAdjustmentIndicator: 42680,\n    /** References a contract listed on an exchange through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component. */\n    PaymentStreamNearestExchangeContractRefID: 42681,\n    /** \"Vega Notional\" represents the approximate gain/loss at maturity for a 1% difference between RVol (realised volatility) and KVol (strike volatility). It does not necessarily represent the Vega risk of the trade. */\n    PaymentStreamVegaNotionalAmount: 42682,\n    /** Number of formulas in the repeating group. */\n    NoPaymentStreamFormulas: 42683,\n    /** Contains an XML representation of the formula. Defined for flexibility in choice of language (MathML, OpenMath or text). */\n    PaymentStreamFormula: 42684,\n    /** A description of the math formula in PaymentStreamFormula(42684). */\n    PaymentStreamFormulaDesc: 42685,\n    /** The currency in which the formula amount is denominated. Uses ISO 4217 currency codes. */\n    PaymentStreamFormulaCurrency: 42686,\n    /** Specifies the method according to which the formula amount currency is determined.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    PaymentStreamFormulaCurrencyDeterminationMethod: 42687,\n    /** Specifies the reference amount when this term either corresponds to the standard ISDA Definition (either the 2002 Equity Definition for the Equity Amount, or the 2000 Definition for the Interest Amount), or refers to a term defined elsewhere in the swap document.\n        See http://www.fixtradingcommunity.org/codelists#Payment_Amount_Relative_To for code list of reference amounts. */\n    PaymentStreamFormulaReferenceAmount: 42688,\n    /** The unadjusted stub end date. */\n    PaymentStubEndDateUnadjusted: 42689,\n    /** The stub end date business day convention. */\n    PaymentStubEndDateBusinessDayConvention: 42690,\n    /** Specifies the anchor date when the stub end date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentStubEndDateRelativeTo: 42691,\n    /** Time unit multiplier for the relative stub end date offset. */\n    PaymentStubEndDateOffsetPeriod: 42692,\n    /** Time unit associated with the relative stub end date offset. */\n    PaymentStubEndDateOffsetUnit: 42693,\n    /** Specifies the day type of the relative stub end date offset. */\n    PaymentStubEndDateOffsetDayType: 42694,\n    /** The adjusted stub end date. */\n    PaymentStubEndDateAdjusted: 42695,\n    /** Number of business centers in the repeating group. */\n    NoPaymentStubEndDateBusinessCenters: 42696,\n    /** The business center calendar used for date adjustment of the payment stub end date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PaymentStubEndDateBusinessCenter: 42697,\n    /** The unadjusted stub start date. */\n    PaymentStubStartDateUnadjusted: 42698,\n    /** The stub start date business day convention. */\n    PaymentStubStartDateBusinessDayConvention: 42699,\n    /** Specifies the anchor date when the stub start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    PaymentStubStartDateRelativeTo: 42700,\n    /** Time unit multiplier for the relative stub start date offset. */\n    PaymentStubStartDateOffsetPeriod: 42701,\n    /** Time unit associated with the relative stub start date offset. */\n    PaymentStubStartDateOffsetUnit: 42702,\n    /** Specifies the day type of the relative stub start date offset. */\n    PaymentStubStartDateOffsetDayType: 42703,\n    /** The adjusted stub start date. */\n    PaymentStubStartDateAdjusted: 42704,\n    /** Number of business centers in the repeating group. */\n    NoPaymentStubStartDateBusinessCenters: 42705,\n    /** The business center calendar used for date adjustment of the payment stub start date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    PaymentStubStartDateBusinessCenter: 42706,\n    /** Type of fee elected for the break provision. */\n    ProvisionBreakFeeElection: 42707,\n    /** Break fee election rate when the break fee is proportional to the notional. A fee rate of 5% would be represented as \"0.05\". */\n    ProvisionBreakFeeRate: 42708,\n    /** Number of iterations in the return rate date repeating group. */\n    NoReturnRateDates: 42709,\n    /** Specifies the valuation type applicable to the return rate date. */\n    ReturnRateDateMode: 42710,\n    /** Specifies the anchor date when the return rate valuation dates are relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    ReturnRateValuationDateRelativeTo: 42711,\n    /** Time unit multiplier for the relative return rate valuation date offset. */\n    ReturnRateValuationDateOffsetPeriod: 42712,\n    /** Time unit associated with the relative return rate valuation date offset. */\n    ReturnRateValuationDateOffsetUnit: 42713,\n    /** Specifies the day type of the relative return rate valuation date offset. */\n    ReturnRateValuationDateOffsetDayType: 42714,\n    /** The unadjusted start date for return rate valuation. This can be used to restrict the range of dates when they are relative. */\n    ReturnRateValuationStartDateUnadjusted: 42715,\n    /** Specifies the anchor date when the return rate valuation start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    ReturnRateValuationStartDateRelativeTo: 42716,\n    /** Time unit multiplier for the relative return rate valuation start date offset. */\n    ReturnRateValuationStartDateOffsetPeriod: 42717,\n    /** Time unit associated with the relative return rate valuation start date offset. */\n    ReturnRateValuationStartDateOffsetUnit: 42718,\n    /** Specifies the day type of the relative return rate valuation start date offset. */\n    ReturnRateValuationStartDateOffsetDayType: 42719,\n    /** The adjusted start date for return rate valuation. This can be used to restrict the range of dates when they are relative. */\n    ReturnRateValuationStartDateAdjusted: 42720,\n    /** The unadjusted end date for return rate valuation. This can be used to restrict the range of dates when they are relative. */\n    ReturnRateValuationEndDateUnadjusted: 42721,\n    /** Specifies the anchor date when the return rate valuation end date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    ReturnRateValuationEndDateRelativeTo: 42722,\n    /** Time unit multiplier for the relative return rate valuation end date offset. */\n    ReturnRateValuationEndDateOffsetPeriod: 42723,\n    /** Time unit associated with the relative return rate valuation end date offset. */\n    ReturnRateValuationEndDateOffsetUnit: 42724,\n    /** Specifies the day type of the relative return rate valuation end date offset. */\n    ReturnRateValuationEndDateOffsetDayType: 42725,\n    /** The adjusted end date for return rate valuation. This can be used to restrict the range of dates when they are relative. */\n    ReturnRateValuationEndDateAdjusted: 42726,\n    /** Time unit multiplier for the frequency at which return rate valuation dates occur. */\n    ReturnRateValuationFrequencyPeriod: 42727,\n    /** Time unit associated with the frequency at which return rate valuation dates occur. */\n    ReturnRateValuationFrequencyUnit: 42728,\n    /** The convention for determining the sequence of return rate valuation dates. It is used in conjunction with a specified frequency. */\n    ReturnRateValuationFrequencyRollConvention: 42729,\n    /** The return rate valuation dates business day convention. */\n    ReturnRateValuationDateBusinessDayConvention: 42730,\n    /** Number of iterations in the return rate FX conversion repeating group. */\n    NoReturnRateFXConversions: 42731,\n    /** Specifies the currency pair for the FX conversion expressed using the CCY1/CCY2 convention. Uses ISO 4217 currency codes. */\n    ReturnRateFXCurrencySymbol: 42732,\n    /** The rate of exchange between the two currencies specified in ReturnRateFXCurrencySymbol(42732). */\n    ReturnRateFXRate: 42733,\n    /** Specifies whether ReturnRateFXRate(42733) should be multiplied or divided. */\n    ReturnRateFXRateCalc: 42734,\n    /** Number of iterations in the return rate repeating group. */\n    NoReturnRates: 42735,\n    /** Specifies the type of price sequence of the return rate. */\n    ReturnRatePriceSequence: 42736,\n    /** Specifies the basis or unit used to calculate the commission. */\n    ReturnRateCommissionBasis: 42737,\n    /** The commission amount. */\n    ReturnRateCommissionAmount: 42738,\n    /** Specifies the currency the commission amount is denominated in. Uses ISO 4217 currency codes. */\n    ReturnRateCommissionCurrency: 42739,\n    /** The total commission per trade. */\n    ReturnRateTotalCommissionPerTrade: 42740,\n    /** Specifies the method by which the underlier prices are determined.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    ReturnRateDeterminationMethod: 42741,\n    /** Specifies the reference amount when the return rate amount is relative to another amount in the trade.\n        See http://www.fixtradingcommunity.org/codelists#Payment_Amount_Relative_To for code list of relative amounts. */\n    ReturnRateAmountRelativeTo: 42742,\n    /** Specifies the type of the measure applied to the return rate's asset, e.g. valuation, sensitivity risk. This could be an NPV, a cash flow, a clean price, etc.\n        See http://www.fpml.org/coding-scheme/asset-measure for values. */\n    ReturnRateQuoteMeasureType: 42743,\n    /** Specifies the units that the measure is expressed in. If not specified, the default is a price/value in currency units.\n        See http://www.fpml.org/coding-scheme/price-quote-units for values. */\n    ReturnRateQuoteUnits: 42744,\n    /** Specifies the type of quote used to determine the return rate of the swap. */\n    ReturnRateQuoteMethod: 42745,\n    /** Specifies the currency the return rate quote is denominated in. Uses ISO 4217 Currency Code. */\n    ReturnRateQuoteCurrency: 42746,\n    /** Specifies the type of currency, e.g. settlement currency, base currency, etc., that the quote is reported in.\n        See http://www.fpml.org/coding-scheme/reporting-currency-type for values. */\n    ReturnRateQuoteCurrencyType: 42747,\n    /** Specifies how or the timing when the quote is to be obtained. */\n    ReturnRateQuoteTimeType: 42748,\n    /** The time when the quote is to be generated. */\n    ReturnRateQuoteTime: 42749,\n    /** The date when the quote is to be generated. */\n    ReturnRateQuoteDate: 42750,\n    /** The time when the quote ceases to be valid. */\n    ReturnRateQuoteExpirationTime: 42751,\n    /** The business center calendar used for adjustments associated with ReturnRateQuoteTimeType(42748) or ReturnRateQuoteTime(42749) and ReturnRateQuoteDate(42750), e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ReturnRateQuoteBusinessCenter: 42752,\n    /** Specifies the exchange (e.g. stock or listed futures/options exchange) from which the quote is obtained. */\n    ReturnRateQuoteExchange: 42753,\n    /** Specifies the pricing model used to evaluate the underlying asset price.\n        See http://www.fpml.org/coding-scheme/pricing-model for values. */\n    ReturnRateQuotePricingModel: 42754,\n    /** Specifies the type of cash flows, e.g. coupon payment, premium fee, settlement fee, etc.\n        See http://www.fpml.org/coding-scheme/cashflow-type for values. */\n    ReturnRateCashFlowType: 42755,\n    /** Specifies the timing at which the calculation agent values the underlying. */\n    ReturnRateValuationTimeType: 42756,\n    /** The time at which the calculation agent values the underlying asset. */\n    ReturnRateValuationTime: 42757,\n    /** The business center calendar used for adjustments associated with ReturnRateValuationTimeType(42756) or ReturnRateValuationTime(42757), e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ReturnRateValuationTimeBusinessCenter: 42758,\n    /** Indicates whether an ISDA price option applies, and if applicable which type of price. */\n    ReturnRateValuationPriceOption: 42759,\n    /** Specifies the fallback provision for the hedging party in the determination of the final price. */\n    ReturnRateFinalPriceFallback: 42760,\n    /** Number of iterations in the return rate information source repeating group. */\n    NoReturnRateInformationSources: 42761,\n    /** Identifies the source of rate information. For FX the references source to be used for the FX spot rate. */\n    ReturnRateInformationSource: 42762,\n    /** Identifies the reference \"page\" from the rate source.\n        For FX, the reference page to the spot rate to be used for the reference FX spot rate.\n        When ReturnRateInformationSource(42762) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions.\n        See: http://www.fpml.org/coding-scheme/settlement-rate-option */\n    ReturnRateReferencePage: 42763,\n    /** Identifies the page heading from the rate source. */\n    ReturnRateReferencePageHeading: 42764,\n    /** Number of iterations in the return rate price repeating group. */\n    NoReturnRatePrices: 42765,\n    /** The basis of the return price. */\n    ReturnRatePriceBasis: 42766,\n    /** Specifies the price of the underlying swap asset. */\n    ReturnRatePrice: 42767,\n    /** Specifies the currency of the price of the underlying swap asset. Uses ISO 4217 currency codes. */\n    ReturnRatePriceCurrency: 42768,\n    /** Specifies whether the ReturnRatePrice(42767) is expressed in absolute or relative terms. */\n    ReturnRatePriceType: 42769,\n    /** Number of iterations in the return rate valuation date business center repeating group. */\n    NoReturnRateValuationDateBusinessCenters: 42770,\n    /** The business center calendar used for date adjustment of the return rate valuation unadjusted or relative dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    ReturnRateValuationDateBusinessCenter: 42771,\n    /** Number of iterations in the return rate valuation date repeating group. */\n    NoReturnRateValuationDates: 42772,\n    /** The return rate valuation date. Type of date is specified in ReturnRateValuationDateType(42774). */\n    ReturnRateValuationDate: 42773,\n    /** Specifies the type of return rate valuation date (e.g. adjusted for holidays). */\n    ReturnRateValuationDateType: 42774,\n    /** Number of business centers in the repeating group. */\n    NoSettlMethodElectionDateBusinessCenters: 42775,\n    /** The business center calendar used for date adjustment of the settlement method election unadjusted or relative date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    SettlMethodElectionDateBusinessCenter: 42776,\n    /** The unadjusted settlement method election date. */\n    SettlMethodElectionDateUnadjusted: 42777,\n    /** The settlement method election date adjustment business day convention. */\n    SettlMethodElectionDateBusinessDayConvention: 42778,\n    /** Specifies the anchor date when the settlement method election date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    SettlMethodElectionDateRelativeTo: 42779,\n    /** Time unit multiplier for the relative settlement method election date offset. */\n    SettlMethodElectionDateOffsetPeriod: 42780,\n    /** Time unit associated with the relative settlement method election date offset. */\n    SettlMethodElectionDateOffsetUnit: 42781,\n    /** Specifies the day type of the relative settlement method election date offset. */\n    SettlMethodElectionDateOffsetDayType: 42782,\n    /** The adjusted settlement method election date. */\n    SettlMethodElectionDateAdjusted: 42783,\n    /** The stream version identifier when there have been modifications to the contract over time. Helps signal when there are embedded changes. */\n    StreamVersion: 42784,\n    /** The effective date of the StreamVersion(42784). */\n    StreamVersionEffectiveDate: 42785,\n    /** Specifies the method for determining the floating notional value for equity swaps.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    StreamNotionalDeterminationMethod: 42786,\n    /** For equity swaps this specifies the conditions that govern the adjustment to the number of units of the swap. */\n    StreamNotionalAdjustments: 42787,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingCashSettlDateBusinessCenters: 42788,\n    /** The business center calendar used for date adjustment of the cash settlement unadjusted or relative date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingCashSettlDateBusinessCenter: 42789,\n    /** The unadjusted cash settlement date. */\n    UnderlyingCashSettlDateUnadjusted: 42790,\n    /** The business day convention used to adjust the cash settlement provision's date. Used only to override the business day convention defined in the UnderlyingInstrument component. */\n    UnderlyingCashSettlDateBusinessDayConvention: 42791,\n    /** Specifies the anchor date when the cash settlement date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingCashSettlDateRelativeTo: 42792,\n    /** Time unit multiplier for the relative cash settlement date offset. */\n    UnderlyingCashSettlDateOffsetPeriod: 42793,\n    /** Time unit associated with the relative cash settlement date offset. */\n    UnderlyingCashSettlDateOffsetUnit: 42794,\n    /** Specifies the day type of the relative cash settlement date offset. */\n    UnderlyingCashSettlDateOffsetDayType: 42795,\n    /** The adjusted cash settlement date. */\n    UnderlyingCashSettlDateAdjusted: 42796,\n    /** The source from which the settlement price is to be obtained.\n        See http://www.fpml.org/coding-scheme/settlement-price-source for values. */\n    UnderlyingCashSettlPriceSource: 42797,\n    /** The default election for determining settlement price. */\n    UnderlyingCashSettlPriceDefault: 42798,\n    /** Number of entries in the UnderlyingDividendAccrualPaymentDateBusinessCenterGrp. */\n    NoUnderlyingDividendAccrualPaymentDateBusinessCenters: 42799,\n    /** The business center calendar used for date adjustment of the instrument's dividend accrual payment date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingDividendAccrualPaymentDateBusinessCenter: 42800,\n    /** The dividend accrual floating rate index. */\n    UnderlyingDividendFloatingRateIndex: 42801,\n    /** Time unit multiplier for the dividend accrual floating rate index curve. */\n    UnderlyingDividendFloatingRateIndexCurvePeriod: 42802,\n    /** Time unit associated with the dividend accrual floating rate index curve period. */\n    UnderlyingDividendFloatingRateIndexCurveUnit: 42803,\n    /** A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This should only be included if the multiplier is not equal to 1 (one) for the term of the contract. */\n    UnderlyingDividendFloatingRateMultiplier: 42804,\n    /** The basis points spread from the index specified in UnderlyingDividendFloatingRateIndex(42801). */\n    UnderlyingDividendFloatingRateSpread: 42805,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    UnderlyingDividendFloatingRateSpreadPositionType: 42806,\n    /** Specifies the yield calculation treatment for the index. */\n    UnderlyingDividendFloatingRateTreatment: 42807,\n    /** The cap rate, if any, which applies to the floating rate. It is only required where the floating rate is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as \"0.05\". */\n    UnderlyingDividendCapRate: 42808,\n    /** Reference to the buyer of the cap rate option through its trade side. */\n    UnderlyingDividendCapRateBuySide: 42809,\n    /** Reference to the seller of the cap rate option through its trade side. */\n    UnderlyingDividendCapRateSellSide: 42810,\n    /** The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as \"0.05\". */\n    UnderlyingDividendFloorRate: 42811,\n    /** Reference to the buyer of the floor rate option through its trade side. */\n    UnderlyingDividendFloorRateBuySide: 42812,\n    /** Reference to the seller of the floor rate option through its trade side. */\n    UnderlyingDividendFloorRateSellSide: 42813,\n    /** The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as \"0.05\". */\n    UnderlyingDividendInitialRate: 42814,\n    /** Specifies the rounding direction of the final rate. */\n    UnderlyingDividendFinalRateRoundingDirection: 42815,\n    /** Specifies the rounding precision of the final rate in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7. */\n    UnderlyingDividendFinalRatePrecision: 42816,\n    /** When averaging is applicable, used to specify whether a weighted or unweighted average method of calculation is to be used. */\n    UnderlyingDividendAveragingMethod: 42817,\n    /** The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate). */\n    UnderlyingDividendNegativeRateTreatment: 42818,\n    /** Specifies the anchor date when the accrual payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingDividendAccrualPaymentDateRelativeTo: 42819,\n    /** Time unit multiplier for the relative accrual payment date offset. */\n    UnderlyingDividendAccrualPaymentDateOffsetPeriod: 42820,\n    /** Time unit associated with the relative accrual payment date offset. */\n    UnderlyingDividendAccrualPaymentDateOffsetUnit: 42821,\n    /** Specifies the day type of the relative accrual payment date offset. */\n    UnderlyingDividendAccrualPaymentDateOffsetDayType: 42822,\n    /** The unadjusted accrual payment date. */\n    UnderlyingDividendAccrualPaymentDateUnadjusted: 42823,\n    /** Accrual payment date adjustment business day convention. */\n    UnderlyingDividendAccrualPaymentDateBusinessDayConvention: 42824,\n    /** The adjusted accrual payment date. */\n    UnderlyingDividendAccrualPaymentDateAdjusted: 42825,\n    /** Indicates whether the dividend will be reinvested. */\n    UnderlyingDividendReinvestmentIndicator: 42826,\n    /** Defines the contract event which the receiver of the derivative is entitled to the dividend. */\n    UnderlyingDividendEntitlementEvent: 42827,\n    /** Indicates how the gross cash dividend amount per share is determined. */\n    UnderlyingDividendAmountType: 42828,\n    /** References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in a separate instance of the UnderlyingInstrument component. */\n    UnderlyingDividendUnderlierRefID: 42829,\n    /** Reference to the party through its side in the trade who makes the determination whether dividends are extraordinary in relation to normal levels. */\n    UnderlyingExtraordinaryDividendPartySide: 42830,\n    /** Indicates how the extraordinary gross cash dividend per share is determined. */\n    UnderlyingExtraordinaryDividendAmountType: 42831,\n    /** The currency in which the excess dividend is denominated. Uses ISO 4217 currency codes. */\n    UnderlyingExtraordinaryDividendCurrency: 42832,\n    /** Specifies the method in which the excess amount is determined.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    UnderlyingExtraordinaryDividendDeterminationMethod: 42833,\n    /** The dividend accrual fixed rate per annum expressed as a decimal.\n        A value of 5% would be represented as \"0.05\". */\n    UnderlyingDividendAccrualFixedRate: 42834,\n    /** The compounding method to be used when more than one dividend period contributes to a single payment. */\n    UnderlyingDividendCompoundingMethod: 42835,\n    /** The number of index units applicable to dividends. */\n    UnderlyingDividendNumOfIndexUnits: 42836,\n    /** Declared cash dividend percentage.\n        A value of 5% would be represented as \"0.05\". */\n    UnderlyingDividendCashPercentage: 42837,\n    /** Declared cash-equivalent dividend percentage. A value of 5% would be represented as \"0.05\". */\n    UnderlyingDividendCashEquivalentPercentage: 42838,\n    /** Defines the treatment of non-cash dividends. */\n    UnderlyingNonCashDividendTreatment: 42839,\n    /** Defines how the composition of dividends is to be determined. */\n    UnderlyingDividendComposition: 42840,\n    /** Indicates whether special dividends are applicable. */\n    UnderlyingSpecialDividendsIndicator: 42841,\n    /** Indicates whether material non-cash dividends are applicable. */\n    UnderlyingMaterialDividendsIndicator: 42842,\n    /** Indicates whether option exchange dividends are applicable. */\n    UnderlyingOptionsExchangeDividendsIndicator: 42843,\n    /** Indicates whether additional dividends are applicable. */\n    UnderlyingAdditionalDividendsIndicator: 42844,\n    /** Represents the European Master Confirmation value of 'All Dividends' which, when applicable, signifies that, for a given Ex-Date, the daily observed share price for that day is adjusted (reduced) by the cash dividend and/or the cash value of any non-cash dividend per share (including extraordinary dividends) declared by the issuer. */\n    UnderlyingAllDividendsIndicator: 42845,\n    /** Specifies the anchor date when the FX trigger date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingDividendFXTriggerDateRelativeTo: 42846,\n    /** Time unit multiplier for the relative FX trigger date offset. */\n    UnderlyingDividendFXTriggerDateOffsetPeriod: 42847,\n    /** Time unit associated with the relative FX trigger date offset. */\n    UnderlyingDividendFXTriggerDateOffsetUnit: 42848,\n    /** Specifies the day type of the relative FX trigger date offset. */\n    UnderlyingDividendFXTriggerDateOffsetDayType: 42849,\n    /** The unadjusted FX trigger date. */\n    UnderlyingDividendFXTriggerDateUnadjusted: 42850,\n    /** The business day convention used for the FX trigger date adjustment. */\n    UnderlyingDividendFXTriggerDateBusinessDayConvention: 42851,\n    /** The adjusted FX trigger date. */\n    UnderlyingDividendFXTriggerDateAdjusted: 42852,\n    /** Number of entries in the UnderlyingDividendFXTriggerDateBusinessCenterGrp. */\n    NoUnderlyingDividendFXTriggerDateBusinessCenters: 42853,\n    /** The business center calendar used for date adjustment of the instrument's FX trigger date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingDividendFXTriggerDateBusinessCenter: 42854,\n    /** Number of entries in the repeating group. */\n    NoUnderlyingDividendPayments: 42855,\n    /** Specifies the date that the dividend or coupon payment is due. */\n    UnderlyingDividendPaymentDate: 42856,\n    /** The amount of the dividend or coupon payment. */\n    UnderlyingDividendPaymentAmount: 42857,\n    /** Specifies the currency the UnderlyingDividendPaymentAmount(42857) is denominated in. Uses ISO 4217 currency codes. */\n    UnderlyingDividendPaymentCurrency: 42858,\n    /** Accrued interest on the dividend or coupon payment. */\n    UnderlyingDividendAccruedInterest: 42859,\n    /** Specifies the actual dividend payout ratio associated with the equity or bond underlier. */\n    UnderlyingDividendPayoutRatio: 42860,\n    /** Specifies the dividend payout conditions that will be applied in the case where the actual ratio is not known, typically because of regulatory or legal uncertainties. */\n    UnderlyingDividendPayoutConditions: 42861,\n    /** Number of entries in the UnderlyingDividendPeriodGrp component. */\n    NoUnderlyingDividendPeriods: 42862,\n    /** Defines the ordinal dividend period. E.g. 1 = First period, 2 = Second period, etc. */\n    UnderlyingDividendPeriodSequence: 42863,\n    /** The unadjusted date on which the dividend period will begin. */\n    UnderlyingDividendPeriodStartDateUnadjusted: 42864,\n    /** The unadjusted date on which the dividend period will end. */\n    UnderlyingDividendPeriodEndDateUnadjusted: 42865,\n    /** References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component. */\n    UnderlyingDividendPeriodUnderlierRefID: 42866,\n    /** Specifies the fixed strike price of the dividend period. */\n    UnderlyingDividendPeriodStrikePrice: 42867,\n    /** The dividend period dates business day convention. */\n    UnderlyingDividendPeriodBusinessDayConvention: 42868,\n    /** The unadjusted dividend period valuation date. */\n    UnderlyingDividendPeriodValuationDateUnadjusted: 42869,\n    /** Specifies the anchor date when the dividend period valuation date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingDividendPeriodValuationDateRelativeTo: 42870,\n    /** Time unit multiplier for the relative dividend period valuation date offset. */\n    UnderlyingDividendPeriodValuationDateOffsetPeriod: 42871,\n    /** Time unit associated with the relative dividend period valuation date offset. */\n    UnderlyingDividendPeriodValuationDateOffsetUnit: 42872,\n    /** Specifies the day type of the relative dividend period valuation date offset. */\n    UnderlyingDividendPeriodValuationDateOffsetDayType: 42873,\n    /** The adjusted dividend period valuation date. */\n    UnderlyingDividendPeriodValuationDateAdjusted: 42874,\n    /** The unadjusted dividend period payment date. */\n    UnderlyingDividendPeriodPaymentDateUnadjusted: 42875,\n    /** Specifies the anchor date when the dividend period payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingDividendPeriodPaymentDateRelativeTo: 42876,\n    /** Time unit multiplier for the relative dividend period payment date offset. */\n    UnderlyingDividendPeriodPaymentDateOffsetPeriod: 42877,\n    /** Time unit associated with the relative dividend period payment date offset. */\n    UnderlyingDividendPeriodPaymentDateOffsetUnit: 42878,\n    /** Specifies the day type of the relative dividend period payment date offset. */\n    UnderlyingDividendPeriodPaymentDateOffsetDayType: 42879,\n    /** The adjusted dividend period payment date. */\n    UnderlyingDividendPeriodPaymentDateAdjusted: 42880,\n    /** Identifier for linking this stream dividend period to an underlier through an instance of RelatedInstrumentGrp. */\n    UnderlyingDividendPeriodXID: 42881,\n    /** Number of entries in UnderlyingDividendPeriodBusinessCenterGrp. */\n    NoUnderlyingDividendPeriodBusinessCenters: 42882,\n    /** The business center calendar used for date adjustment of the instrument's dividend period date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingDividendPeriodBusinessCenter: 42883,\n    /** Number of extraordinary events in the repeating group. */\n    NoUnderlyingExtraordinaryEvents: 42884,\n    /** Identifies the type of extraordinary or disruptive event applicable to UnderlyingExtraordinaryEventType(42885).\n        See http://www.fixtradingcommunity.org/codelists#Extraordinary_Event_Type for code list of extraordinary event types and values. */\n    UnderlyingExtraordinaryEventType: 42885,\n    /** The extraordinary or disruptive event value appropriate to UnderlyingExtraordinaryEventType(42885).\n        See http://www.fixtradingcommunity.org/codelists#Extraordinary_Event_Type for code list of extraordinary event types and values. */\n    UnderlyingExtraordinaryEventValue: 42886,\n    /** Side value of the party electing the settlement method. */\n    UnderlyingSettlMethodElectingPartySide: 42887,\n    /** The date through which the option cannot be exercised without penalty. */\n    UnderlyingMakeWholeDate: 42888,\n    /** Amount to be paid by the buyer of the option if the option is exercised prior to the UnderlyingMakeWholeDate(42888). */\n    UnderlyingMakeWholeAmount: 42889,\n    /** Identifies the benchmark floating rate index. */\n    UnderlyingMakeWholeBenchmarkCurveName: 42890,\n    /** The point on the floating rate index curve.\n        Sample values:\n        M = combination of a number between 1-12 and an \"M\" for month, e.g. 3M\n        Y = combination of number between 1-100 and a \"Y\" for year, e.g. 10Y\n        10Y-OLD = see above, then add \"-OLD\" when appropriate\n        INTERPOLATED = the point is mathematically derived\n        2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon. */\n    UnderlyingMakeWholeBenchmarkCurvePoint: 42891,\n    /** Spread over the floating rate index. */\n    UnderlyingMakeWholeRecallSpread: 42892,\n    /** The quote side of the benchmark to be used for calculating the \"make whole\" amount. */\n    UnderlyingMakeWholeBenchmarkQuote: 42893,\n    /** The method used when calculating the \"make whole\" amount. The most common is linear method. */\n    UnderlyingMakeWholeInterpolationMethod: 42894,\n    /** Indicates whether cash settlement is applicable. */\n    UnderlyingPaymentStreamCashSettlIndicator: 42895,\n    /** Reference to the stream which details the compounding fixed or floating rate. */\n    UnderlyingPaymentStreamCompoundingXIDRef: 42896,\n    /** The spread to be used for compounding. Used in scenarios where the interest payment is based on a compounding formula that uses a compounding spread in addition to the regular spread. */\n    UnderlyingPaymentStreamCompoundingSpread: 42897,\n    /** The method used when calculating the index rate from multiple points on the curve. The most common is linear method. */\n    UnderlyingPaymentStreamInterpolationMethod: 42898,\n    /** Defines applicable periods for interpolation. */\n    UnderlyingPaymentStreamInterpolationPeriod: 42899,\n    /** The compounding fixed rate applicable to the payment stream. */\n    UnderlyingPaymentStreamCompoundingFixedRate: 42900,\n    /** Number of dates in the repeating group. */\n    NoUnderlyingPaymentStreamCompoundingDates: 42901,\n    /** The compounding date. Type of date is specified in UnderlyingPaymentStreamCompoundingDateType(42903). */\n    UnderlyingPaymentStreamCompoundingDate: 42902,\n    /** Specifies the type of payment compounding date (e.g. adjusted for holidays). */\n    UnderlyingPaymentStreamCompoundingDateType: 42903,\n    /** The compounding dates business day convention. */\n    UnderlyingPaymentStreamCompoundingDatesBusinessDayConvention: 42904,\n    /** Specifies the anchor date when the compounding dates are relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentStreamCompoundingDatesRelativeTo: 42905,\n    /** Time unit multiplier for the relative compounding date offset. */\n    UnderlyingPaymentStreamCompoundingDatesOffsetPeriod: 42906,\n    /** Time unit associated with the relative compounding date offset. */\n    UnderlyingPaymentStreamCompoundingDatesOffsetUnit: 42907,\n    /** Specifies the day type of the relative compounding date offset. */\n    UnderlyingPaymentStreamCompoundingDatesOffsetDayType: 42908,\n    /** The number of periods in the \"RelativeTo\" schedule that are between each date in the compounding schedule. A skip of 2 would mean that compounding dates are relative to every second date in the \"RelativeTo\" schedule. If present this should have a value greater than 1. */\n    UnderlyingPaymentStreamCompoundingPeriodSkip: 42909,\n    /** Time unit multiplier for the frequency at which compounding dates occur. */\n    UnderlyingPaymentStreamCompoundingFrequencyPeriod: 42910,\n    /** Time unit associated with the frequency at which compounding dates occur. */\n    UnderlyingPaymentStreamCompoundingFrequencyUnit: 42911,\n    /** The convention for determining the sequence of compounding dates. It is used in conjunction with a specified frequency. */\n    UnderlyingPaymentStreamCompoundingRollConvention: 42912,\n    /** The unadjusted first date of the compounding schedule. This can be used to restrict the range of dates when they are relative. */\n    UnderlyingPaymentStreamBoundsFirstDateUnadjusted: 42913,\n    /** The unadjusted last date of the compounding schedule. This can be used to restrict the range of dates when they are relative. */\n    UnderlyingPaymentStreamBoundsLastDateUnadjusted: 42914,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingPaymentStreamCompoundingDatesBusinessCenters: 42915,\n    /** The business center calendar used for date adjustment of the payment stream compounding dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPaymentStreamCompoundingDatesBusinessCenter: 42916,\n    /** The unadjusted compounding end date. */\n    UnderlyingPaymentStreamCompoundingEndDateUnadjusted: 42917,\n    /** Specifies the anchor date when the compounding end date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentStreamCompoundingEndDateRelativeTo: 42918,\n    /** Time unit multiplier for the relative compounding end date offset. */\n    UnderlyingPaymentStreamCompoundingEndDateOffsetPeriod: 42919,\n    /** Time unit associated with the relative compounding end date offset. */\n    UnderlyingPaymentStreamCompoundingEndDateOffsetUnit: 42920,\n    /** Specifies the day type of the relative compounding end date offset. */\n    UnderlyingPaymentStreamCompoundingEndDateOffsetDayType: 42921,\n    /** The adjusted compounding end date. */\n    UnderlyingPaymentStreamCompoundingEndDateAdjusted: 42922,\n    /** The payment stream's compounding floating rate index. */\n    UnderlyingPaymentStreamCompoundingRateIndex: 42923,\n    /** Time unit multiplier for the payment stream's compounding floating rate index curve period. */\n    UnderlyingPaymentStreamCompoundingRateIndexCurvePeriod: 42924,\n    /** Time unit associated with the payment stream's compounding floating rate index curve period. */\n    UnderlyingPaymentStreamCompoundingRateIndexCurveUnit: 42925,\n    /** A rate multiplier to apply to the compounding floating rate. The multiplier can be less than or greater than 1 (one). This should only be included if the multiplier is not equal to 1 (one) for the term of the stream. */\n    UnderlyingPaymentStreamCompoundingRateMultiplier: 42926,\n    /** The basis points spread from the index specified in UnderlyingPaymentStreamCompoundingRateIndex(42923). */\n    UnderlyingPaymentStreamCompoundingRateSpread: 42927,\n    /** Identifies whether the rate spread is applied to a long or short position. */\n    UnderlyingPaymentStreamCompoundingRateSpreadPositionType: 42928,\n    /** Specifies the yield calculation treatment for the index. */\n    UnderlyingPaymentStreamCompoundingRateTreatment: 42929,\n    /** The cap rate, if any, which applies to the compounding floating rate. It is only required where the compounding floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as \"0.05\". */\n    UnderlyingPaymentStreamCompoundingCapRate: 42930,\n    /** Reference to the buyer of the compounding cap rate option through its trade side. */\n    UnderlyingPaymentStreamCompoundingCapRateBuySide: 42931,\n    /** Reference to the seller of the compounding cap rate option through its trade side. */\n    UnderlyingPaymentStreamCompoundingCapRateSellSide: 42932,\n    /** The floor rate, if any, which applies to the compounding floating rate. The floor rate (strike) is only required where the compounding floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as \"0.05\". */\n    UnderlyingPaymentStreamCompoundingFloorRate: 42933,\n    /** Reference to the buyer of the compounding floor rate option through its trade side. */\n    UnderlyingPaymentStreamCompoundingFloorRateBuySide: 42934,\n    /** Reference to the seller of the floor rate option through its trade side. */\n    UnderlyingPaymentStreamCompoundingFloorRateSellSide: 42935,\n    /** The initial compounding floating rate reset agreed between the principal parties involved in the trade. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as \"0.05\". */\n    UnderlyingPaymentStreamCompoundingInitialRate: 42936,\n    /** Specifies the rounding direction for the compounding floating rate. */\n    UnderlyingPaymentStreamCompoundingFinalRateRoundingDirection: 42937,\n    /** Specifies the compounding floating rate rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7. */\n    UnderlyingPaymentStreamCompoundingFinalRatePrecision: 42938,\n    /** Specifies the averaging method when compounding floating rate averaging is applicable (e.g. weighted or unweighted). */\n    UnderlyingPaymentStreamCompoundingAveragingMethod: 42939,\n    /** Specifies the method for calculating payment obligations when a compounding floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate). */\n    UnderlyingPaymentStreamCompoundingNegativeRateTreatment: 42940,\n    /** The unadjusted compounding start date. */\n    UnderlyingPaymentStreamCompoundingStartDateUnadjusted: 42941,\n    /** Specifies the anchor date when the compounding start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentStreamCompoundingStartDateRelativeTo: 42942,\n    /** Time unit multiplier for the relative compounding start date offset. */\n    UnderlyingPaymentStreamCompoundingStartDateOffsetPeriod: 42943,\n    /** Time unit associated with the relative compounding start date offset. */\n    UnderlyingPaymentStreamCompoundingStartDateOffsetUnit: 42944,\n    /** Specifies the day type of the relative compounding start date offset. */\n    UnderlyingPaymentStreamCompoundingStartDateOffsetDayType: 42945,\n    /** The adjusted compounding start date. */\n    UnderlyingPaymentStreamCompoundingStartDateAdjusted: 42946,\n    /** Length in bytes of the UnderlyingPaymentStreamFormulaImage(42948) field. */\n    UnderlyingPaymentStreamFormulaImageLength: 42947,\n    /** Image of the formula image when represented through an encoded clip in base64Binary. */\n    UnderlyingPaymentStreamFormulaImage: 42948,\n    /** The unadjusted final price payment date. */\n    UnderlyingPaymentStreamFinalPricePaymentDateUnadjusted: 42949,\n    /** Specifies the anchor date when the final price payment date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentStreamFinalPricePaymentDateRelativeTo: 42950,\n    /** Time unit multiplier for the relative final price payment date offset. */\n    UnderlyingPaymentStreamFinalPricePaymentDateOffsetPeriod: 42951,\n    /** Time unit associated with the relative final price payment date offset. */\n    UnderlyingPaymentStreamFinalPricePaymentDateOffsetUnit: 42952,\n    /** Specifies the day type of the relative final price payment date offset. */\n    UnderlyingPaymentStreamFinalPricePaymentDateOffsetDayType: 42953,\n    /** The adjusted final price payment date. */\n    UnderlyingPaymentStreamFinalPricePaymentDateAdjusted: 42954,\n    /** Number of fixing dates in the repeating group. */\n    NoUnderlyingPaymentStreamFixingDates: 42955,\n    /** The fixing date. Type of date is specified in UnderlyingPaymentStreamFixingDateType(42957). */\n    UnderlyingPaymentStreamFixingDate: 42956,\n    /** Specifies the type of fixing date (e.g. adjusted for holidays). */\n    UnderlyingPaymentStreamFixingDateType: 42957,\n    /** The unadjusted initial price observation date. */\n    UnderlyingPaymentStreamFirstObservationDateUnadjusted: 42958,\n    /** Specifies the anchor date when the initial price observation date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentStreamFirstObservationDateRelativeTo: 42959,\n    /** Specifies the day type of the initial price observation date offset. */\n    UnderlyingPaymentStreamFirstObservationDateOffsetDayType: 42960,\n    /** The adjusted initial price observation date. */\n    UnderlyingPaymentStreamFirstObservationDateAdjusted: 42961,\n    /** References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component. */\n    UnderlyingPaymentStreamUnderlierRefID: 42962,\n    /** Indicates whether the term \"Equity Notional Reset\" as defined in the ISDA 2002 Equity Derivatives Definitions is applicable (\"Y\") or not. */\n    UnderlyingReturnRateNotionalReset: 42963,\n    /** Price level at which the correlation or variance swap contract will strike. */\n    UnderlyingPaymentStreamLinkInitialLevel: 42964,\n    /** Indicates whether the correlation or variance swap contract will (\"Y\") strike off the closing level of the default exchange traded contract or not. */\n    UnderlyingPaymentStreamLinkClosingLevelIndicator: 42965,\n    /** Indicates whether the correlation or variance swap contract will (\"Y\") strike off the expiring level of the default exchange traded contract or not. */\n    UnderlyingPaymentStreamLinkExpiringLevelIndicator: 42966,\n    /** The expected number of trading days in the variance or correlation swap stream. */\n    UnderlyingPaymentStreamLinkEstimatedTradingDays: 42967,\n    /** The strike price of a correlation or variance swap stream. */\n    UnderlyingPaymentStreamLinkStrikePrice: 42968,\n    /** For a variance swap specifies how UnderlyingPaymentStreamLinkStrikePrice(42968) is expressed. */\n    UnderlyingPaymentStreamLinkStrikePriceType: 42969,\n    /** Specifies the maximum or upper boundary for variance or strike determination.\n        For a variation swap stream all observations above this price level will be excluded from the variance calculation.\n        For a correlation swap stream the maximum boundary is a percentage of the strike price. */\n    UnderlyingPaymentStreamLinkMaximumBoundary: 42970,\n    /** Specifies the minimum or lower boundary for variance or strike determination.\n        For a variation swap stream all observations below this price level will be excluded from the variance calculation.\n        For a correlation swap stream the minimum boundary is a percentage of the strike price. */\n    UnderlyingPaymentStreamLinkMinimumBoundary: 42971,\n    /** Number of data series for a correlation swap. Normal market practice is that correlation data sets are drawn from geographic market areas, such as America, Europe and Asia Pacific. Each of these geographic areas will have its own data series to avoid contagion. */\n    UnderlyingPaymentStreamLinkNumberOfDataSeries: 42972,\n    /** Indicates the scaling factor to be multiplied by the variance strike price thereby making variance cap applicable. */\n    UnderlyingPaymentStreamVarianceUnadjustedCap: 42973,\n    /** Indicates which price to use to satisfy the boundary condition. */\n    UnderlyingPaymentStreamRealizedVarianceMethod: 42974,\n    /** Indicates whether the contract specifies that the notional should be scaled by the number of days in range divided by the estimate trading days or not. The number of \"days in range\" refers to the number of returns that contribute to the realized volatility. */\n    UnderlyingPaymentStreamDaysAdjustmentIndicator: 42975,\n    /** References a contract listed on an exchange through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component. */\n    UnderlyingPaymentStreamNearestExchangeContractRefID: 42976,\n    /** Vega Notional represents the approximate gain/loss at maturity for a 1% difference between RVol (realised volatility) and KVol (strike volatility). It does not necessarily represent the Vega risk of the trade. */\n    UnderlyingPaymentStreamVegaNotionalAmount: 42977,\n    /** The currency in which the formula amount is denominated. Uses ISO 4217 currency codes. */\n    UnderlyingPaymentStreamFormulaCurrency: 42978,\n    /** Specifies the method according to which the formula amount currency is determined.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    UnderlyingPaymentStreamFormulaCurrencyDeterminationMethod: 42979,\n    /** Specifies the reference amount when this term either corresponds to the standard ISDA Definition (either the 2002 Equity Definition for the Equity Amount, or the 2000 Definition for the Interest Amount), or refers to a term defined elsewhere in the swap document.\n        See http://www.fixtradingcommunity.org/codelists#Payment_Amount_Relative_To for code list of reference amounts. */\n    UnderlyingPaymentStreamFormulaReferenceAmount: 42980,\n    /** Number of formulas in the repeating group. */\n    NoUnderlyingPaymentStreamFormulas: 42981,\n    /** Contains an XML representation of the formula. Defined for flexibility in choice of language (MathML, OpenMath or text). */\n    UnderlyingPaymentStreamFormula: 42982,\n    /** A description of the math formula in UnderlyingPaymentStreamFormula(42982). */\n    UnderlyingPaymentStreamFormulaDesc: 42983,\n    /** The unadjusted stub end date. */\n    UnderlyingPaymentStubEndDateUnadjusted: 42984,\n    /** The stub end date business day convention. */\n    UnderlyingPaymentStubEndDateBusinessDayConvention: 42985,\n    /** Specifies the anchor date when the stub end date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentStubEndDateRelativeTo: 42986,\n    /** Time unit multiplier for the relative stub end date offset. */\n    UnderlyingPaymentStubEndDateOffsetPeriod: 42987,\n    /** Time unit associated with the relative stub end date offset. */\n    UnderlyingPaymentStubEndDateOffsetUnit: 42988,\n    /** Specifies the day type of the relative stub end date offset. */\n    UnderlyingPaymentStubEndDateOffsetDayType: 42989,\n    /** The adjusted stub end date. */\n    UnderlyingPaymentStubEndDateAdjusted: 42990,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingPaymentStubEndDateBusinessCenters: 42991,\n    /** The business center calendar used for date adjustment of the payment stub end date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPaymentStubEndDateBusinessCenter: 42992,\n    /** The unadjusted stub start date. */\n    UnderlyingPaymentStubStartDateUnadjusted: 42993,\n    /** The stub start date business day convention. */\n    UnderlyingPaymentStubStartDateBusinessDayConvention: 42994,\n    /** Specifies the anchor date when the stub start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingPaymentStubStartDateRelativeTo: 42995,\n    /** Time unit multiplier for the relative stub start date offset. */\n    UnderlyingPaymentStubStartDateOffsetPeriod: 42996,\n    /** Time unit associated with the relative stub start date offset. */\n    UnderlyingPaymentStubStartDateOffsetUnit: 42997,\n    /** Specifies the day type of the relative stub start date offset. */\n    UnderlyingPaymentStubStartDateOffsetDayType: 42998,\n    /** The adjusted stub start date. */\n    UnderlyingPaymentStubStartDateAdjusted: 42999,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingPaymentStubStartDateBusinessCenters: 43000,\n    /** The business center calendar used for date adjustment of the payment stub start date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingPaymentStubStartDateBusinessCenter: 43001,\n    /** Type of fee elected for the break provision. */\n    UnderlyingProvisionBreakFeeElection: 43002,\n    /** Break fee election rate when the break fee is proportional to the notional. A fee rate of 5% would be represented as \"0.05\". */\n    UnderlyingProvisionBreakFeeRate: 43003,\n    /** Specifies the initial rate spread for a basket underlier. */\n    UnderlyingRateSpreadInitialValue: 43004,\n    /** Number of entries in the repeating group. */\n    NoUnderlyingRateSpreadSteps: 43005,\n    /** The date that the rate spread step takes affect. */\n    UnderlyingRateSpreadStepDate: 43006,\n    /** The the value of the new rate spread as of the UnderlyingRateSpreadStepDate(43006). */\n    UnderlyingRateSpreadStepValue: 43007,\n    /** Number of iterations in the return rate date repeating group. */\n    NoUnderlyingReturnRateDates: 43008,\n    /** Specifies the valuation type applicable to the return rate date. */\n    UnderlyingReturnRateDateMode: 43009,\n    /** Specifies the anchor date when the return rate valuation dates are relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingReturnRateValuationDateRelativeTo: 43010,\n    /** Time unit multiplier for the relative return rate valuation date offset. */\n    UnderlyingReturnRateValuationDateOffsetPeriod: 43011,\n    /** Time unit associated with the relative return rate valuation date offset. */\n    UnderlyingReturnRateValuationDateOffsetUnit: 43012,\n    /** Specifies the day type of the relative return rate valuation date offset. */\n    UnderlyingReturnRateValuationDateOffsetDayType: 43013,\n    /** The unadjusted start date for return rate valuation. This can be used to restrict the range of dates when they are relative. */\n    UnderlyingReturnRateValuationStartDateUnadjusted: 43014,\n    /** Specifies the anchor date when the return rate valuation start date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingReturnRateValuationStartDateRelativeTo: 43015,\n    /** Time unit multiplier for the relative return rate valuation start date offset. */\n    UnderlyingReturnRateValuationStartDateOffsetPeriod: 43016,\n    /** Time unit associated with the relative return rate valuation start date offset. */\n    UnderlyingReturnRateValuationStartDateOffsetUnit: 43017,\n    /** Specifies the day type of the relative return rate valuation start date offset. */\n    UnderlyingReturnRateValuationStartDateOffsetDayType: 43018,\n    /** The adjusted start date for return rate valuation. This can be used to restrict the range of dates when they are relative. */\n    UnderlyingReturnRateValuationStartDateAdjusted: 43019,\n    /** The unadjusted end date for return rate valuation. This can be used to restrict the range of dates when they are relative. */\n    UnderlyingReturnRateValuationEndDateUnadjusted: 43020,\n    /** Specifies the anchor date when the return rate valuation end date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingReturnRateValuationEndDateRelativeTo: 43021,\n    /** Time unit multiplier for the relative return rate valuation end date offset. */\n    UnderlyingReturnRateValuationEndDateOffsetPeriod: 43022,\n    /** Time unit associated with the relative return rate valuation end date offset. */\n    UnderlyingReturnRateValuationEndDateOffsetUnit: 43023,\n    /** Specifies the day type of the relative return rate valuation end date offset. */\n    UnderlyingReturnRateValuationEndDateOffsetDayType: 43024,\n    /** The adjusted end date for return rate valuation. This can be used to restrict the range of dates when they are relative. */\n    UnderlyingReturnRateValuationEndDateAdjusted: 43025,\n    /** Time unit multiplier for the frequency at which return rate valuation dates occur. */\n    UnderlyingReturnRateValuationFrequencyPeriod: 43026,\n    /** Time unit associated with the frequency at which return rate valuation dates occur. */\n    UnderlyingReturnRateValuationFrequencyUnit: 43027,\n    /** The convention for determining the sequence of return rate valuation dates. It is used in conjunction with a specified frequency. */\n    UnderlyingReturnRateValuationFrequencyRollConvention: 43028,\n    /** The return rate valuation dates business day convention. */\n    UnderlyingReturnRateValuationDateBusinessDayConvention: 43029,\n    /** Number of iterations in the return rate FX conversion repeating group. */\n    NoUnderlyingReturnRateFXConversions: 43030,\n    /** Specifies the currency pair for the FX conversion expressed using the CCY1/CCY2 convention. Uses ISO 4217 currency codes. */\n    UnderlyingReturnRateFXCurrencySymbol: 43031,\n    /** The rate of exchange between the two currencies specified in UnderlyingReturnRateFXCurrencySymbol(43031). */\n    UnderlyingReturnRateFXRate: 43032,\n    /** Specifies whether UnderlyingReturnRateFXRate(43032) should be multiplied or divided. */\n    UnderlyingReturnRateFXRateCalc: 43033,\n    /** Number of iterations in the return rate repeating group. */\n    NoUnderlyingReturnRates: 43034,\n    /** Specifies the type of price sequence of the return rate. */\n    UnderlyingReturnRatePriceSequence: 43035,\n    /** Specifies the basis or unit used to calculate the commission. */\n    UnderlyingReturnRateCommissionBasis: 43036,\n    /** The commission amount. */\n    UnderlyingReturnRateCommissionAmount: 43037,\n    /** Specifies the currency the commission amount is denominated in. Uses ISO 4217 currency codes. */\n    UnderlyingReturnRateCommissionCurrency: 43038,\n    /** The total commission per trade. */\n    UnderlyingReturnRateTotalCommissionPerTrade: 43039,\n    /** Specifies the method by which the underlier prices are determined.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    UnderlyingReturnRateDeterminationMethod: 43040,\n    /** Specifies the reference amount when the return rate amount is relative to another amount in the trade.\n        See http://www.fixtradingcommunity.org/codelists#Payment_Amount_Relative_To for code list of relative amounts. */\n    UnderlyingReturnRateAmountRelativeTo: 43041,\n    /** Specifies the type of the measure applied to the return rate's asset, e.g. valuation, sensitivity risk. This could be an NPV, a cash flow, a clean price, etc.\n        See http://www.fpml.org/coding-scheme/asset-measure for values. */\n    UnderlyingReturnRateQuoteMeasureType: 43042,\n    /** Specifies the units that the measure is expressed in. If not specified, the default is a price/value in currency units.\n        See http://www.fpml.org/coding-scheme/price-quote-units for values. */\n    UnderlyingReturnRateQuoteUnits: 43043,\n    /** Specifies the type of quote used to determine the return rate of the swap. */\n    UnderlyingReturnRateQuoteMethod: 43044,\n    /** Specifies the currency the return rate quote is denominated in. Uses ISO 4217 Currency Code. */\n    UnderlyingReturnRateQuoteCurrency: 43045,\n    /** Specifies the type of currency, e.g. settlement currency, base currency, etc., that the quote is reported in.\n        See http://www.fpml.org/coding-scheme/reporting-currency-type for values. */\n    UnderlyingReturnRateQuoteCurrencyType: 43046,\n    /** Specifies how or the timing when the quote is to be obtained. */\n    UnderlyingReturnRateQuoteTimeType: 43047,\n    /** The time when the quote is to be generated. */\n    UnderlyingReturnRateQuoteTime: 43048,\n    /** The date when the quote is to be generated. */\n    UnderlyingReturnRateQuoteDate: 43049,\n    /** The time when the quote ceases to be valid. */\n    UnderlyingReturnRateQuoteExpirationTime: 43050,\n    /** The business center calendar used for adjustments associated with UnderlyingReturnRateQuoteTimeType(43047) or UnderlyingReturnRateQuoteTime(43048) and UnderlyingReturnRateQuoteDate(43049), e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingReturnRateQuoteBusinessCenter: 43051,\n    /** Specifies the exchange (e.g. stock or listed futures/options exchange) from which the quote is obtained. */\n    UnderlyingReturnRateQuoteExchange: 43052,\n    /** Specifies the pricing model used to evaluate the underlying asset price.\n        See http://www.fpml.org/coding-scheme/pricing-model for values. */\n    UnderlyingReturnRateQuotePricingModel: 43053,\n    /** Specifies the type of cash flows, e.g. coupon payment, premium fee, settlement fee, etc.\n        See http://www.fpml.org/coding-scheme/cashflow-type for values. */\n    UnderlyingReturnRateCashFlowType: 43054,\n    /** Specifies the timing at which the calculation agent values the underlying. */\n    UnderlyingReturnRateValuationTimeType: 43055,\n    /** The time at which the calculation agent values the underlying asset. */\n    UnderlyingReturnRateValuationTime: 43056,\n    /** The business center calendar used for adjustments associated with UnderlyingReturnRateValuationTimeType(43055) or UnderlyingReturnRateValuationTime(43056) , e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingReturnRateValuationTimeBusinessCenter: 43057,\n    /** Indicates whether an ISDA price option applies, and if applicable which type of price. */\n    UnderlyingReturnRateValuationPriceOption: 43058,\n    /** Specifies the fallback provision for the hedging party in the determination of the final price. */\n    UnderlyingReturnRateFinalPriceFallback: 43059,\n    /** Number of iterations in the return rate information source repeating group. */\n    NoUnderlyingReturnRateInformationSources: 43060,\n    /** Identifies the source of rate information. For FX the references source to be used for the FX spot rate. */\n    UnderlyingReturnRateInformationSource: 43061,\n    /** Identifies the reference \"page\" from the rate source.\n        For FX, the reference page to the spot rate to be used for the reference FX spot rate.\n        When UnderlyingReturnRateInformationSource(43061) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions.\n        See: http://www.fpml.org/coding-scheme/settlement-rate-option */\n    UnderlyingReturnRateReferencePage: 43062,\n    /** Identifies the page heading from the rate source. */\n    UnderlyingReturnRateReferencePageHeading: 43063,\n    /** Number of iterations in the return rate price repeating group. */\n    NoUnderlyingReturnRatePrices: 43064,\n    /** The basis of the return price. */\n    UnderlyingReturnRatePriceBasis: 43065,\n    /** Specifies the price of the underlying swap asset. */\n    UnderlyingReturnRatePrice: 43066,\n    /** Specifies the currency of the price of the underlying swap asset. Uses ISO 4217 currency codes. */\n    UnderlyingReturnRatePriceCurrency: 43067,\n    /** Specifies whether the UnderlyingReturnRatePrice(43066) is expressed in absolute or relative terms. */\n    UnderlyingReturnRatePriceType: 43068,\n    /** Number of iterations in the return rate valuation date business center repeating group. */\n    NoUnderlyingReturnRateValuationDateBusinessCenters: 43069,\n    /** The business center calendar used for date adjustment of the return rate valuation unadjusted or relative dates, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingReturnRateValuationDateBusinessCenter: 43070,\n    /** Number of iterations in the return rate valuation date repeating group. */\n    NoUnderlyingReturnRateValuationDates: 43071,\n    /** The return rate valuation date. Type of date is specified in UnderlyingReturnRateValuationDateType(43073). */\n    UnderlyingReturnRateValuationDate: 43072,\n    /** Specifies the type of return rate valuation date (e.g. adjusted for holidays). */\n    UnderlyingReturnRateValuationDateType: 43073,\n    /** Number of business centers in the repeating group. */\n    NoUnderlyingSettlMethodElectionDateBusinessCenters: 43074,\n    /** The business center calendar used for date adjustment of the settlement method election unadjusted or relative date, e.g. \"GBLO\".\n        See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values. */\n    UnderlyingSettlMethodElectionDateBusinessCenter: 43075,\n    /** The unadjusted settlement method election date. */\n    UnderlyingSettlMethodElectionDateUnadjusted: 43076,\n    /** The settlement method election date adjustment business day convention. */\n    UnderlyingSettlMethodElectionDateBusinessDayConvention: 43077,\n    /** Specifies the anchor date when the settlement method election date is relative to an anchor date.\n        See http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values. */\n    UnderlyingSettlMethodElectionDateRelativeTo: 43078,\n    /** Time unit multiplier for the relative settlement method election date offset. */\n    UnderlyingSettlMethodElectionDateOffsetPeriod: 43079,\n    /** Time unit associated with the relative settlement method election date offset. */\n    UnderlyingSettlMethodElectionDateOffsetUnit: 43080,\n    /** Specifies the day type of the relative settlement method election date offset. */\n    UnderlyingSettlMethodElectionDateOffsetDayType: 43081,\n    /** The adjusted settlement method election date. */\n    UnderlyingSettlMethodElectionDateAdjusted: 43082,\n    /** The stream version identifier when there have been modifications to the contract over time. Helps signal when there are embedded changes. */\n    UnderlyingStreamVersion: 43083,\n    /** The effective date of the UnderlyingStreamVersion(43083). */\n    UnderlyingStreamVersionEffectiveDate: 43084,\n    /** Specifies the method for determining the floating notional value for equity swaps.\n        See http://www.fpml.org/coding-scheme/determination-method for values. */\n    UnderlyingStreamNotionalDeterminationMethod: 43085,\n    /** For equity swaps this specifies the conditions that govern the adjustment to the number of units of the swap. */\n    UnderlyingStreamNotionalAdjustments: 43086,\n    /** A short descriptive name given to the payment, e.g. Premium, Upfront, etc. The description has no intrinsic meaning but should be arbitrarily chosen by the remitter as reference. */\n    PaymentDesc: 43087,\n    /** Security identifier of the floating rate index. */\n    LegPaymentStreamRateIndexID: 43088,\n    /** Source for the floating rate index identified in LegPaymentStreamRateIndexID(43088). */\n    LegPaymentStreamRateIndexIDSource: 43089,\n    /** Security identifier of the floating rate index. */\n    PaymentStreamRateIndexID: 43090,\n    /** Source for the floating rate index identified in PaymentStreamRateIndexID(43090). */\n    PaymentStreamRateIndexIDSource: 43091,\n    /** Security identifier of the floating rate index. */\n    UnderlyingPaymentStreamRateIndexID: 43092,\n    /** Source for the floating rate index identified in UnderlyingPaymentStreamRateIndexID(43092). */\n    UnderlyingPaymentStreamRateIndexIDSource: 43093,\n    /** Specific delivery route or time charter average. Applicable to commodity freight swaps. */\n    DeliveryStreamRouteOrCharter: 43094,\n    /** Specific delivery route or time charter average. Applicable to commodity freight swaps. */\n    LegDeliveryStreamRouteOrCharter: 43095,\n    /** Specific delivery route or time charter average. Applicable to commodity freight swaps. */\n    UnderlyingDeliveryStreamRouteOrCharter: 43096,\n    /** The rate applicable to the fixed rate payment. */\n    PaymentFixedRate: 43097,\n    /** The payment floating rate index. See SpreadOrBenchmarkCurveData(221) for suggested values. */\n    PaymentFloatingRateIndex: 43098,\n    /** Time unit multiplier for the floating rate index. */\n    PaymentFloatingRateIndexCurvePeriod: 43099,\n    /** Time unit associated with the floating rate index. */\n    PaymentFloatingRateIndexCurveUnit: 43100,\n    /** Spread from floating rate index. */\n    PaymentFloatingRateSpread: 43101,\n    /** Time unit multiplier for the payment frequency. */\n    PaymentFrequencyPeriod: 43102,\n    /** Time unit associated with the payment frequency. */\n    PaymentFrequencyUnit: 43103,\n    /** Time unit multiplier for the floating rate reset frequency. */\n    PaymentRateResetFrequencyPeriod: 43104,\n    /** Time unit associated with the floating rate reset frequency. */\n    PaymentRateResetFrequencyUnit: 43105,\n    /** The industry name of the day count convention not listed in PaymentStreamDayCount(40742). */\n    PaymentStreamOtherDayCount: 43106,\n    /** The industry name of the day count convention not listed in UnderlyingPaymentStreamDayCount(40572). */\n    UnderlyingPaymentStreamOtherDayCount: 43107,\n    /** The industry name of the day count convention not listed in LegPaymentStreamDayCount(40283). */\n    LegPaymentStreamOtherDayCount: 43108,\n    /** Byte length of encoded (non-ASCII characters) PaymentStreamFormula(42648) field. */\n    PaymentStreamFormulaLength: 43109,\n    /** Byte length of encoded (non-ASCII characters) LegPaymentStreamFormula(42486) field. */\n    LegPaymentStreamFormulaLength: 43110,\n    /** Byte length of encoded (non-ASCII characters) UnderlyingPaymentStreamFormula(42982) field. */\n    UnderlyingPaymentStreamFormulaLength: 43111,\n    /** The payment stream's second floating rate index. */\n    PaymentStreamRateIndex2: 43112,\n    /** The source of the payment stream's second floating rate index. */\n    PaymentStreamRateIndex2Source: 43113,\n    /** Security identifier of the second floating rate index. */\n    PaymentStreamRateIndex2ID: 43114,\n    /** Source for the second floating rate index identified in PaymentStreamRateIndex2ID(43114). */\n    PaymentStreamRateIndex2IDSource: 43115,\n    /** The payment stream's second floating rate index. */\n    LegPaymentStreamRateIndex2: 43116,\n    /** The source of the payment stream's second floating rate index. */\n    LegPaymentStreamRateIndex2Source: 43117,\n    /** Security identifier of the second floating rate index. */\n    LegPaymentStreamRateIndex2ID: 43118,\n    /** Source for the second floating rate index identified in LegPaymentStreamRateIndex2ID(43118). */\n    LegPaymentStreamRateIndex2IDSource: 43119,\n    /** The payment stream's second floating rate index. */\n    UnderlyingPaymentStreamRateIndex2: 43120,\n    /** The source of the payment stream's second floating rate index. */\n    UnderlyingPaymentStreamRateIndex2Source: 43121,\n    /** Security identifier of the second floating rate index. */\n    UnderlyingPaymentStreamRateIndex2ID: 43122,\n    /** Source for the second floating rate index identified in UnderlyingPaymentStreamRateIndex2ID(43122). */\n    UnderlyingPaymentStreamRateIndex2IDSource: 43123,\n    /** Unique Identifier for a batch of messages. */\n    BatchID: 50000,\n    /** Total # of messages contained within batch. */\n    BatchTotalMessages: 50001,\n    /** Indicates the processing mode for a batch of messages. */\n    BatchProcessMode: 50002,\n} as const);\n\nexport type Field = (typeof Field)[keyof typeof Field];\n", "{\n    \"0\": {\n        \"abbrName\": \"Heartbeat\",\n        \"added\": \"FIX.2.7\",\n        \"category\": { \"FIXMLFileName\": \"session\", \"componentType\": \"Message\", \"name\": \"Session\", \"section\": \"Session\" },\n        \"description\": \"The Heartbeat monitors the status of the communication link and identifies when the last of a string of messages was not received.\",\n        \"id\": \"1\",\n        \"msgType\": \"0\",\n        \"name\": \"Heartbeat\",\n        \"section\": {\n            \"FIXMLFileName\": \"session\",\n            \"description\": \"Session level messages to establish and control a FIX session\",\n            \"displayOrder\": \"0\",\n            \"name\": \"Session\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = 0\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"BeginString\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        FIXT.1.1 (Always unencrypted, must be first field in message)\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"FIXT.1.1 (Always unencrypted, must be first field in message)\",\n                            \"id\": \"8\",\n                            \"name\": \"BeginString\",\n                            \"presence\": \"required\",\n                            \"type\": \"BeginStringCodeSet\",\n                            \"updated\": \"FIX.Latest\",\n                            \"updatedEP\": \"270\"\n                        },\n                        {\n                            \"abbrName\": \"BodyLength\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        (Always unencrypted, must be second field in message)\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"(Always unencrypted, must be second field in message)\",\n                            \"id\": \"9\",\n                            \"name\": \"BodyLength\",\n                            \"presence\": \"required\",\n                            \"type\": \"Length\"\n                        },\n                        {\n                            \"abbrName\": \"MsgTyp\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        (Always unencrypted, must be third field in message)\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"(Always unencrypted, must be third field in message)\",\n                            \"id\": \"35\",\n                            \"name\": \"MsgType\",\n                            \"presence\": \"required\",\n                            \"type\": \"MsgTypeCodeSet\"\n                        },\n                        {\n                            \"abbrName\": \"SID\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [{ \"documentation\": [\"\\n                        (Always unencrypted)\"] }],\n                            \"description\": \"(Always unencrypted)\",\n                            \"id\": \"49\",\n                            \"name\": \"SenderCompID\",\n                            \"presence\": \"required\",\n                            \"type\": \"String\"\n                        },\n                        {\n                            \"abbrName\": \"TID\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [{ \"documentation\": [\"\\n                        (Always unencrypted)\"] }],\n                            \"description\": \"(Always unencrypted)\",\n                            \"id\": \"56\",\n                            \"name\": \"TargetCompID\",\n                            \"presence\": \"required\",\n                            \"type\": \"String\"\n                        },\n                        {\n                            \"abbrName\": \"SeqNum\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        (Can be embedded within encrypted data section.)\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"(Can be embedded within encrypted data section.)\",\n                            \"id\": \"34\",\n                            \"name\": \"MsgSeqNum\",\n                            \"presence\": \"required\",\n                            \"type\": \"SeqNum\"\n                        },\n                        {\n                            \"abbrName\": \"Snt\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        (Can be embedded within encrypted data section.)\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"(Can be embedded within encrypted data section.)\",\n                            \"id\": \"52\",\n                            \"name\": \"SendingTime\",\n                            \"presence\": \"required\",\n                            \"type\": \"UTCTimestamp\"\n                        }\n                    ],\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = 0\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"CheckSum\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        (Always unencrypted, always last field in message)\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"(Always unencrypted, always last field in message)\",\n                            \"id\": \"10\",\n                            \"name\": \"CheckSum\",\n                            \"presence\": \"required\",\n                            \"type\": \"String\"\n                        }\n                    ],\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"1\": {\n        \"abbrName\": \"TestRequest\",\n        \"added\": \"FIX.2.7\",\n        \"category\": { \"FIXMLFileName\": \"session\", \"componentType\": \"Message\", \"name\": \"Session\", \"section\": \"Session\" },\n        \"description\": \"The test request message forces a heartbeat from the opposing application. The test request message checks sequence numbers or verifies communication line status. The opposite application responds to the Test Request with a Heartbeat containing the TestReqID.\",\n        \"id\": \"2\",\n        \"msgType\": \"1\",\n        \"name\": \"TestRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"session\",\n            \"description\": \"Session level messages to establish and control a FIX session\",\n            \"displayOrder\": \"0\",\n            \"name\": \"Session\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = 1\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = 1\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.0\",\n                \"data\": {\n                    \"abbrName\": \"TestReqID\",\n                    \"added\": \"FIX.3.0\",\n                    \"id\": \"112\",\n                    \"name\": \"TestReqID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"112\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"2\": {\n        \"abbrName\": \"ResendRequest\",\n        \"added\": \"FIX.2.7\",\n        \"category\": { \"FIXMLFileName\": \"session\", \"componentType\": \"Message\", \"name\": \"Session\", \"section\": \"Session\" },\n        \"description\": \"The resend request is sent by the receiving application to initiate the retransmission of messages. This function is utilized if a sequence number gap is detected, if the receiving application lost a message, or as a function of the initialization process.\",\n        \"id\": \"3\",\n        \"msgType\": \"2\",\n        \"name\": \"ResendRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"session\",\n            \"description\": \"Session level messages to establish and control a FIX session\",\n            \"displayOrder\": \"0\",\n            \"name\": \"Session\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = 2\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = 2\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"BeginSeqNo\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"7\",\n                    \"name\": \"BeginSeqNo\",\n                    \"type\": \"SeqNum\"\n                },\n                \"id\": \"7\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"EndSeqNo\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"16\",\n                    \"name\": \"EndSeqNo\",\n                    \"type\": \"SeqNum\"\n                },\n                \"id\": \"16\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"3\": {\n        \"abbrName\": \"Reject\",\n        \"added\": \"FIX.2.7\",\n        \"category\": { \"FIXMLFileName\": \"session\", \"componentType\": \"Message\", \"name\": \"Session\", \"section\": \"Session\" },\n        \"description\": \"The reject message should be issued when a message is received but cannot be properly processed due to a session-level rule violation. An example of when a reject may be appropriate would be the receipt of a message with invalid basic data which successfully passes de-encryption, CheckSum and BodyLength checks.\",\n        \"id\": \"4\",\n        \"msgType\": \"3\",\n        \"name\": \"Reject\",\n        \"section\": {\n            \"FIXMLFileName\": \"session\",\n            \"description\": \"Session level messages to establish and control a FIX session\",\n            \"displayOrder\": \"0\",\n            \"name\": \"Session\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = 3\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = 3\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgSeqNum of rejected message\"] }],\n                \"data\": {\n                    \"abbrName\": \"RefSeqNum\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"45\",\n                    \"name\": \"RefSeqNum\",\n                    \"type\": \"SeqNum\"\n                },\n                \"description\": \"MsgSeqNum of rejected message\",\n                \"id\": \"45\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"4\": {\n        \"abbrName\": \"SequenceReset\",\n        \"added\": \"FIX.2.7\",\n        \"category\": { \"FIXMLFileName\": \"session\", \"componentType\": \"Message\", \"name\": \"Session\", \"section\": \"Session\" },\n        \"description\": \"The sequence reset message is used by the sending application to reset the incoming sequence number on the opposing side.\",\n        \"id\": \"5\",\n        \"msgType\": \"4\",\n        \"name\": \"SequenceReset\",\n        \"section\": {\n            \"FIXMLFileName\": \"session\",\n            \"description\": \"Session level messages to establish and control a FIX session\",\n            \"displayOrder\": \"0\",\n            \"name\": \"Session\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = 4\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = 4\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"NewSeqNo\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"36\",\n                    \"name\": \"NewSeqNo\",\n                    \"type\": \"SeqNum\"\n                },\n                \"id\": \"36\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"5\": {\n        \"abbrName\": \"Logout\",\n        \"added\": \"FIX.2.7\",\n        \"category\": { \"FIXMLFileName\": \"session\", \"componentType\": \"Message\", \"name\": \"Session\", \"section\": \"Session\" },\n        \"description\": \"The logout message initiates or confirms the termination of a FIX session. Disconnection without the exchange of logout messages should be interpreted as an abnormal condition.\",\n        \"id\": \"6\",\n        \"msgType\": \"5\",\n        \"name\": \"Logout\",\n        \"section\": {\n            \"FIXMLFileName\": \"session\",\n            \"description\": \"Session level messages to establish and control a FIX session\",\n            \"displayOrder\": \"0\",\n            \"name\": \"Session\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = 5\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = 5\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"6\": {\n        \"abbrName\": \"IOI\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"indications\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Indication\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"Indication of interest messages are used to market merchandise which the broker is buying or selling in either a proprietary or agency capacity. The indications can be time bound with a specific expiration value. Indications are distributed with the understanding that other firms may react to the message first and that the merchandise may no longer be available due to prior trade.\\n\\nIndication messages can be transmitted in various transaction types; NEW, CANCEL, and REPLACE. All message types other than NEW modify the state of the message identified in IOIRefID.\",\n        \"id\": \"7\",\n        \"msgType\": \"6\",\n        \"name\": \"IOI\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = 6\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = 6\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"IOIID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"Indication\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"23\",\n                    \"name\": \"IOIID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"23\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The value zero is used if NoLegs repeating group is used\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Qty\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"27\",\n                    \"name\": \"IOIQty\",\n                    \"type\": \"IOIQtyCodeSet\",\n                    \"unionDataType\": \"Qty\"\n                },\n                \"description\": \"The value zero is used if NoLegs repeating group is used\",\n                \"id\": \"27\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"TransTyp\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"28\",\n                    \"name\": \"IOITransType\",\n                    \"type\": \"IOITransTypeCodeSet\"\n                },\n                \"id\": \"28\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Side of Indication\",\n                            \"\\n                            Valid subset of values:\",\n                            \"\\n                            1 = Buy\",\n                            \"\\n                            2 = Sell\",\n                            \"\\n                            7 = Undisclosed\",\n                            \"\\n                            B = As Defined (for multilegs)\",\n                            \"\\n                            C = Opposite (for multilegs)\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"description\": \"Side of Indication\\n\\n\\n                            Valid subset of values:\\n\\n\\n                            1 = Buy\\n\\n\\n                            2 = Sell\\n\\n\\n                            7 = Undisclosed\\n\\n\\n                            B = As Defined (for multilegs)\\n\\n\\n                            C = Opposite (for multilegs)\",\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"7\": {\n        \"abbrName\": \"Adv\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"indications\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Indication\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"Advertisement messages are used to announce completed transactions. The advertisement message can be transmitted in various transaction types; NEW, CANCEL and REPLACE. All message types other than NEW modify the state of a previously transmitted advertisement identified in AdvRefID.\",\n        \"id\": \"8\",\n        \"msgType\": \"7\",\n        \"name\": \"Advertisement\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = 7\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = 7\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": { \"abbrName\": \"AdvId\", \"added\": \"FIX.2.7\", \"id\": \"2\", \"name\": \"AdvId\", \"type\": \"String\" },\n                \"id\": \"2\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"AdvSide\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"4\",\n                    \"name\": \"AdvSide\",\n                    \"type\": \"AdvSideCodeSet\"\n                },\n                \"id\": \"4\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"AdvTransTyp\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"5\",\n                    \"name\": \"AdvTransType\",\n                    \"type\": \"AdvTransTypeCodeSet\"\n                },\n                \"id\": \"5\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": { \"abbrName\": \"Qty\", \"added\": \"FIX.2.7\", \"id\": \"53\", \"name\": \"Quantity\", \"type\": \"Qty\" },\n                \"id\": \"53\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"8\": {\n        \"abbrName\": \"ExecRpt\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"order\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SingleGeneralOrderHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The execution report message is used to:\\n\\n1. confirm the receipt of an order\\n\\n2. confirm changes to an existing order (i.e. accept cancel and replace requests)\\n\\n3. relay order status information\\n\\n4. relay fill information on working orders\\n\\n5. relay fill information on tradeable or restricted tradeable quotes\\n\\n6. reject orders\\n\\n7. report post-trade fees calculations associated with a trade\",\n        \"id\": \"9\",\n        \"msgType\": \"8\",\n        \"name\": \"ExecutionReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = 8\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = 8\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Currently executed quantity for chain of orders.\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"CumQty\", \"added\": \"FIX.2.7\", \"id\": \"14\", \"name\": \"CumQty\", \"type\": \"Qty\" },\n                \"description\": \"Currently executed quantity for chain of orders.\",\n                \"id\": \"14\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier of execution message as assigned by sell-side (broker, exchange, ECN) (will be 0 (zero) for ExecType(150) = I (Order Status)).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ExecID\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"17\",\n                    \"name\": \"ExecID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"95\"\n                },\n                \"description\": \"Unique identifier of execution message as assigned by sell-side (broker, exchange, ECN) (will be 0 (zero) for ExecType(150) = I (Order Status)).\",\n                \"id\": \"17\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"188\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            OrderID is required to be unique for each chain of orders.\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"OrdID\", \"added\": \"FIX.2.7\", \"id\": \"37\", \"name\": \"OrderID\", \"type\": \"String\" },\n                \"description\": \"OrderID is required to be unique for each chain of orders.\",\n                \"id\": \"37\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Describes the current state of a CHAIN of orders, same scope as OrderQty, CumQty, LeavesQty, and AvgPx\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"OrdStat\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"Stat\",\n                    \"id\": \"39\",\n                    \"name\": \"OrdStatus\",\n                    \"type\": \"OrdStatusCodeSet\"\n                },\n                \"description\": \"Describes the current state of a CHAIN of orders, same scope as OrderQty, CumQty, LeavesQty, and AvgPx\",\n                \"id\": \"39\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Describes the purpose of the execution report.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ExecTyp\",\n                    \"added\": \"FIX.4.1\",\n                    \"id\": \"150\",\n                    \"name\": \"ExecType\",\n                    \"type\": \"ExecTypeCodeSet\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"131\"\n                },\n                \"description\": \"Describes the purpose of the execution report.\",\n                \"id\": \"150\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Quantity open for further execution. If the OrdStatus(39) is = 4 (Canceled), 3 (Done For Day), C (Expired), B (Calculated), or 8 (Rejected) (in which case the order is no longer active) then LeavesQty(151) could be 0, otherwise LeavesQty(151) = OrderQty(38) - CumQty(14).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"LeavesQty\",\n                    \"added\": \"FIX.4.1\",\n                    \"id\": \"151\",\n                    \"name\": \"LeavesQty\",\n                    \"type\": \"Qty\"\n                },\n                \"description\": \"Quantity open for further execution. If the OrdStatus(39) is = 4 (Canceled), 3 (Done For Day), C (Expired), B (Calculated), or 8 (Rejected) (in which case the order is no longer active) then LeavesQty(151) could be 0, otherwise LeavesQty(151) = OrderQty(38) - CumQty(14).\",\n                \"id\": \"151\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"188\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1003\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"188\"\n            }\n        ]\n    },\n    \"9\": {\n        \"abbrName\": \"OrdCxlRej\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"order\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SingleGeneralOrderHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The order cancel reject message is issued by the broker upon receipt of a cancel request or cancel/replace request message which cannot be honored.\",\n        \"id\": \"10\",\n        \"msgType\": \"9\",\n        \"name\": \"OrderCancelReject\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = 9\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = 9\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique order id assigned by institution or by the intermediary with closest association with the investor. to the cancel request or to the replacement order.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ClOrdID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"11\",\n                    \"name\": \"ClOrdID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"282\"\n                },\n                \"description\": \"Unique order id assigned by institution or by the intermediary with closest association with the investor. to the cancel request or to the replacement order.\",\n                \"id\": \"11\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            If CxlRejReason=\\\"Unknown order\\\", specify \\\"NONE\\\".\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"OrdID\", \"added\": \"FIX.2.7\", \"id\": \"37\", \"name\": \"OrderID\", \"type\": \"String\" },\n                \"description\": \"If CxlRejReason=\\\"Unknown order\\\", specify \\\"NONE\\\".\",\n                \"id\": \"37\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            OrdStatus value after this cancel reject is applied.\",\n                            \"\\n                            If CxlRejReason = \\\"Unknown Order\\\", specify Rejected.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"OrdStat\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"Stat\",\n                    \"id\": \"39\",\n                    \"name\": \"OrdStatus\",\n                    \"type\": \"OrdStatusCodeSet\"\n                },\n                \"description\": \"OrdStatus value after this cancel reject is applied.\\n\\n\\n                            If CxlRejReason = \\\"Unknown Order\\\", specify Rejected.\",\n                \"id\": \"39\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"CxlRejRspTo\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"434\",\n                    \"name\": \"CxlRejResponseTo\",\n                    \"type\": \"CxlRejResponseToCodeSet\"\n                },\n                \"id\": \"434\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"A\": {\n        \"abbrName\": \"Logon\",\n        \"added\": \"FIX.2.7\",\n        \"category\": { \"FIXMLFileName\": \"session\", \"componentType\": \"Message\", \"name\": \"Session\", \"section\": \"Session\" },\n        \"description\": \"The logon message authenticates a user establishing a connection to a remote system. The logon message must be the first message sent by the application requesting to initiate a FIX session.\",\n        \"id\": \"11\",\n        \"msgType\": \"A\",\n        \"name\": \"Logon\",\n        \"section\": {\n            \"FIXMLFileName\": \"session\",\n            \"description\": \"Session level messages to establish and control a FIX session\",\n            \"displayOrder\": \"0\",\n            \"name\": \"Session\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = A\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = A\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            (Always unencrypted)\"] }],\n                \"data\": {\n                    \"abbrName\": \"EncryptMethod\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"98\",\n                    \"name\": \"EncryptMethod\",\n                    \"type\": \"EncryptMethodCodeSet\"\n                },\n                \"description\": \"(Always unencrypted)\",\n                \"id\": \"98\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.3.0\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Note same value used by both sides\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"HeartBtInt\",\n                    \"added\": \"FIX.3.0\",\n                    \"id\": \"108\",\n                    \"name\": \"HeartBtInt\",\n                    \"type\": \"int\"\n                },\n                \"description\": \"Note same value used by both sides\",\n                \"id\": \"108\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The default version of FIX messages used in this session.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"DefApplVerID\",\n                    \"added\": \"FIX.4.4\",\n                    \"addedEP\": \"16\",\n                    \"id\": \"1137\",\n                    \"name\": \"DefaultApplVerID\",\n                    \"type\": \"ApplVerIDCodeSet\"\n                },\n                \"description\": \"The default version of FIX messages used in this session.\",\n                \"id\": \"1137\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AA\": {\n        \"abbrName\": \"DerivSecList\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Derivative Security List message is used to return a list of securities that matches the criteria specified in a Derivative Security List Request.\",\n        \"id\": \"60\",\n        \"msgType\": \"AA\",\n        \"name\": \"DerivativeSecurityList\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AA (2 A's)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AA (2 A's)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"AB\": {\n        \"abbrName\": \"NewOrdMleg\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"multilegorders\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MultilegOrders\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The New Order - Multileg is provided to submit orders for securities that are made up of multiple securities, known as legs.\",\n        \"id\": \"61\",\n        \"msgType\": \"AB\",\n        \"name\": \"NewOrderMultileg\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AB\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AB\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier of the order as assigned by institution or by the intermediary with closest association with the investor.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ClOrdID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"11\",\n                    \"name\": \"ClOrdID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"282\"\n                },\n                \"description\": \"Unique identifier of the order as assigned by institution or by the intermediary with closest association with the investor.\",\n                \"id\": \"11\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"OrdTyp\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"Typ\",\n                    \"id\": \"40\",\n                    \"name\": \"OrdType\",\n                    \"type\": \"OrdTypeCodeSet\"\n                },\n                \"id\": \"40\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Additional enumeration that indicates this is an order for a multileg order and that the sides are specified in the Instrument Leg component block.\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"description\": \"Additional enumeration that indicates this is an order for a multileg order and that the sides are specified in the Instrument Leg component block.\",\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Time this order request was initiated/released by the trader, trading system, or intermediary.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Time this order request was initiated/released by the trader, trading system, or intermediary.\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AC\": {\n        \"abbrName\": \"MlegOrdCxlRplc\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"multilegorders\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MultilegOrders\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"Used to modify a multileg order previously submitted using the New Order - Multileg message. See Order Cancel Replace Request for details concerning message usage.\",\n        \"id\": \"62\",\n        \"msgType\": \"AC\",\n        \"name\": \"MultilegOrderCancelReplace\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AC\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AC\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"OrdTyp\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"Typ\",\n                    \"id\": \"40\",\n                    \"name\": \"OrdType\",\n                    \"type\": \"OrdTypeCodeSet\"\n                },\n                \"id\": \"40\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Additional enumeration that indicates this is an order for a multileg order and that the sides are specified in the Instrument Leg component block.\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"description\": \"Additional enumeration that indicates this is an order for a multileg order and that the sides are specified in the Instrument Leg component block.\",\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Time this order request was initiated/released by the trader, trading system, or intermediary.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Time this order request was initiated/released by the trader, trading system, or intermediary.\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AD\": {\n        \"abbrName\": \"TrdCaptRptReq\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"tradecapture\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"TradeCapture\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Trade Capture Report Request can be used to:\\n\\n\u2022 Request one or more trade capture reports based upon selection criteria provided on the trade capture report request\\n\\n\u2022 Subscribe for trade capture reports based upon selection criteria provided on the trade capture report request.\",\n        \"id\": \"63\",\n        \"msgType\": \"AD\",\n        \"name\": \"TradeCaptureReportRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AD\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AD\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for the trade request.\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.4.3\",\n                    \"id\": \"568\",\n                    \"name\": \"TradeRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for the trade request.\",\n                \"id\": \"568\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"141\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"ReqTyp\",\n                    \"added\": \"FIX.4.3\",\n                    \"id\": \"569\",\n                    \"name\": \"TradeRequestType\",\n                    \"type\": \"TradeRequestTypeCodeSet\"\n                },\n                \"id\": \"569\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AE\": {\n        \"abbrName\": \"TrdCaptRpt\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"tradecapture\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"TradeCapture\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Trade Capture Report message can be:\\n\\n- Used to report trades between counterparties.\\n\\n- Used to report trades to a trade matching system.\\n\\n- Sent unsolicited between counterparties.\\n\\n- Sent as a reply to a Trade Capture Report Request.\\n\\n- Used to report unmatched and matched trades.\",\n        \"id\": \"64\",\n        \"msgType\": \"AE\",\n        \"name\": \"TradeCaptureReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AE\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AE\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"RptSide\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"TradeCapture\",\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"Side\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                { \"documentation\": [\"\\n                        Required when NoSides(552) > 0.\"] }\n                            ],\n                            \"description\": \"Required when NoSides(552) > 0.\",\n                            \"id\": \"54\",\n                            \"name\": \"Side\",\n                            \"presence\": \"required\",\n                            \"type\": \"SideCodeSet\"\n                        }\n                    ],\n                    \"id\": \"2061\",\n                    \"name\": \"TrdCapRptSideGrp\",\n                    \"type\": \"group\"\n                },\n                \"id\": \"2061\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"141\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"167\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1003\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"141\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"192\"\n    },\n    \"AF\": {\n        \"abbrName\": \"OrdMassStatReq\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"ordermasshandling\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"OrderMassHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The order mass status request message requests the status for orders matching criteria specified within the request.\",\n        \"id\": \"65\",\n        \"msgType\": \"AF\",\n        \"name\": \"OrderMassStatusRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AF\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AF\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique ID of mass status request as assigned by the institution.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MassStatReqID\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"OrderMassHandling\",\n                    \"baseCategoryAbbrName\": \"ReqID\",\n                    \"id\": \"584\",\n                    \"name\": \"MassStatusReqID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique ID of mass status request as assigned by the institution.\",\n                \"id\": \"584\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"MassStatReqTyp\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"OrderMassHandling\",\n                    \"baseCategoryAbbrName\": \"ReqTyp\",\n                    \"id\": \"585\",\n                    \"name\": \"MassStatusReqType\",\n                    \"type\": \"MassStatusReqTypeCodeSet\",\n                    \"unionDataType\": \"Reserved100Plus\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"id\": \"585\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.Latest\",\n                \"updatedEP\": \"271\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AG\": {\n        \"abbrName\": \"QuotReqRej\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"quotation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"QuotationNegotiation\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Quote Request Reject message is used to reject Quote Request messages for all quoting models.\",\n        \"id\": \"66\",\n        \"msgType\": \"AG\",\n        \"name\": \"QuoteRequestReject\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AG\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AG\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.4.0\",\n                    \"id\": \"131\",\n                    \"name\": \"QuoteReqID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"143\"\n                },\n                \"id\": \"131\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Reason Quote was rejected\"] }],\n                \"data\": {\n                    \"abbrName\": \"ReqRejRsn\",\n                    \"added\": \"FIX.4.3\",\n                    \"id\": \"658\",\n                    \"name\": \"QuoteRequestRejectReason\",\n                    \"type\": \"QuoteRequestRejectReasonCodeSet\",\n                    \"unionDataType\": \"Reserved100Plus\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"290\"\n                },\n                \"description\": \"Reason Quote was rejected\",\n                \"id\": \"658\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Number of related symbols (instruments) in Request\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"QuotReqRej\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"QuotationNegotiation\",\n                    \"componentRef\": [\n                        {\n                            \"abbrName\": \"Instrmt\",\n                            \"added\": \"FIX.4.3\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                                    ]\n                                }\n                            ],\n                            \"category\": \"Common\",\n                            \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                            \"id\": \"1003\",\n                            \"name\": \"Instrument\",\n                            \"presence\": \"required\"\n                        }\n                    ],\n                    \"id\": \"2047\",\n                    \"name\": \"QuotReqRjctGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Number of related symbols (instruments) in Request\",\n                \"id\": \"2047\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AH\": {\n        \"abbrName\": \"RFQReq\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"quotation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"QuotationNegotiation\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"In tradeable and restricted tradeable quoting markets \u2013 Quote Requests are issued by counterparties interested in ascertaining the market for an instrument. Quote Requests are then distributed by the market to liquidity providers who make markets in the instrument. The RFQ Request is used by liquidity providers to indicate to the market for which instruments they are interested in receiving Quote Requests. It can be used to register interest in receiving quote requests for a single instrument or for multiple instruments\",\n        \"id\": \"67\",\n        \"msgType\": \"AH\",\n        \"name\": \"RFQRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AH\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AH\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"RFQReqID\",\n                    \"added\": \"FIX.4.3\",\n                    \"id\": \"644\",\n                    \"name\": \"RFQReqID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"644\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Number of related symbols (instruments) in Request\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RFQReq\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"QuotationNegotiation\",\n                    \"componentRef\": [\n                        {\n                            \"abbrName\": \"Instrmt\",\n                            \"added\": \"FIX.4.3\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                                    ]\n                                }\n                            ],\n                            \"category\": \"Common\",\n                            \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                            \"id\": \"1003\",\n                            \"name\": \"Instrument\",\n                            \"presence\": \"required\"\n                        }\n                    ],\n                    \"id\": \"2051\",\n                    \"name\": \"RFQReqGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Number of related symbols (instruments) in Request\",\n                \"id\": \"2051\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AI\": {\n        \"abbrName\": \"QuotStatRpt\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"quotation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"QuotationNegotiation\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The quote status report message is used:\\n\\n\u2022 as the response to a Quote Status Request message\\n\\n\u2022 as a response to a Quote Cancel message\\n\\n\u2022 as a response to a Quote Response message in a negotiation dialog (see Volume 7 \u2013 PRODUCT: FIXED INCOME and USER GROUP: EXCHANGES AND MARKETS)\",\n        \"id\": \"68\",\n        \"msgType\": \"AI\",\n        \"name\": \"QuoteStatusReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AI\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AI\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AJ\": {\n        \"abbrName\": \"QuotRsp\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"quotation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"QuotationNegotiation\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The QuoteResponse(35=AJ) message is used for the following purposes:\\n\\n1. Respond to an IOI(35=6) message\\n\\n2. Respond to a Quote(35=S) message\\n\\n3. Counter a Quote\\n\\n4. End a negotiation dialog\\n\\n5. Follow-up or end a QuoteRequest(35=R) dialog that did not receive a response.\\n\\nFor usage of this message in a negotiation or counter quote dialog for fixed income and exchanges/marketplace see Volume 7, Fixed Income and Exchanges and Markets sections respectively.\",\n        \"id\": \"69\",\n        \"msgType\": \"AJ\",\n        \"name\": \"QuoteResponse\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AJ\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AJ\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique ID as assigned by the Initiator\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RspID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"693\",\n                    \"name\": \"QuoteRespID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique ID as assigned by the Initiator\",\n                \"id\": \"693\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"RspTyp\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"694\",\n                    \"name\": \"QuoteRespType\",\n                    \"type\": \"QuoteRespTypeCodeSet\"\n                },\n                \"id\": \"694\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"143\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                            \"\\n                            For multilegs supply minimally a value for Symbol (55).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\\n\\n\\n                            For multilegs supply minimally a value for Symbol (55).\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"143\"\n    },\n    \"AK\": {\n        \"abbrName\": \"Cnfm\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"confirmation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Confirmation\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Confirmation messages are used to provide individual trade level confirmations from the sell side to the buy side. In versions of FIX prior to version 4.4, this role was performed by the allocation message. Unlike the allocation message, the confirmation message operates at an allocation account (trade) level rather than block level, allowing for the affirmation or rejection of individual confirmations.\",\n        \"id\": \"70\",\n        \"msgType\": \"AK\",\n        \"name\": \"Confirmation\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AK\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AK\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Gross price for the trade being confirmed\",\n                            \"\\n                            Always expressed in percent-of-par for Fixed Income\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"AvgPx\", \"added\": \"FIX.2.7\", \"id\": \"6\", \"name\": \"AvgPx\", \"type\": \"Price\" },\n                \"description\": \"Gross price for the trade being confirmed\\n\\n\\n                            Always expressed in percent-of-par for Fixed Income\",\n                \"id\": \"6\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Represents the time this message was generated\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Represents the time this message was generated\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"TrdDt\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"75\",\n                    \"name\": \"TradeDate\",\n                    \"type\": \"LocalMktDate\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"190\"\n                },\n                \"id\": \"75\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Account number for the trade being confirmed by this message\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Acct\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"79\",\n                    \"name\": \"AllocAccount\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Account number for the trade being confirmed by this message\",\n                \"id\": \"79\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The quantity being confirmed by this message (this is at a trade level, not block or order level)\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"Qty\", \"added\": \"FIX.2.7\", \"id\": \"80\", \"name\": \"AllocQty\", \"type\": \"Qty\" },\n                \"description\": \"The quantity being confirmed by this message (this is at a trade level, not block or order level)\",\n                \"id\": \"80\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": { \"abbrName\": \"NetMny\", \"added\": \"FIX.4.0\", \"id\": \"118\", \"name\": \"NetMoney\", \"type\": \"Amt\" },\n                \"id\": \"118\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Gross trade amount for the allocated account being confirmed.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"GrossTrdAmt\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"381\",\n                    \"name\": \"GrossTradeAmt\",\n                    \"type\": \"Amt\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"258\"\n                },\n                \"description\": \"Gross trade amount for the allocated account being confirmed.\",\n                \"id\": \"381\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"258\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Unique ID for this message\"] }],\n                \"data\": {\n                    \"abbrName\": \"CnfmID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"664\",\n                    \"name\": \"ConfirmID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique ID for this message\",\n                \"id\": \"664\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"CnfmStat\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"665\",\n                    \"name\": \"ConfirmStatus\",\n                    \"type\": \"ConfirmStatusCodeSet\"\n                },\n                \"id\": \"665\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            New, Cancel or Replace\"] }],\n                \"data\": {\n                    \"abbrName\": \"CnfmTransTyp\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"666\",\n                    \"name\": \"ConfirmTransType\",\n                    \"type\": \"ConfirmTransTypeCodeSet\"\n                },\n                \"description\": \"New, Cancel or Replace\",\n                \"id\": \"666\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Denotes whether this message represents a confirmation or a trade status message\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"CnfmTyp\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"773\",\n                    \"name\": \"ConfirmType\",\n                    \"type\": \"ConfirmTypeCodeSet\"\n                },\n                \"description\": \"Denotes whether this message represents a confirmation or a trade status message\",\n                \"id\": \"773\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Cpcty\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"Confirmation\",\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"Cpcty\",\n                            \"added\": \"FIX.4.3\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Specifies the capacity of the firm executing the order(s)\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"Specifies the capacity of the firm executing the order(s)\",\n                            \"id\": \"528\",\n                            \"name\": \"OrderCapacity\",\n                            \"presence\": \"required\",\n                            \"type\": \"OrderCapacityCodeSet\"\n                        }\n                    ],\n                    \"id\": \"2013\",\n                    \"name\": \"CpctyConfGrp\",\n                    \"type\": \"group\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"97\"\n                },\n                \"id\": \"2013\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP1\",\n                \"updatedEP\": \"95\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AL\": {\n        \"abbrName\": \"PosMntReq\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"positions\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PositionMaintenance\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Position Maintenance Request message allows the position owner to submit requests to the holder of a position which will result in a specific action being taken which will affect the position. Generally, the holder of the position is a central counter party or clearing organization but can also be a party providing investment services.\",\n        \"id\": \"71\",\n        \"msgType\": \"AL\",\n        \"name\": \"PositionMaintenanceRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AL\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AL\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"TxnTyp\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"709\",\n                    \"name\": \"PosTransType\",\n                    \"type\": \"PosTransTypeCodeSet\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"199\"\n                },\n                \"id\": \"709\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Actn\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"712\",\n                    \"name\": \"PosMaintAction\",\n                    \"type\": \"PosMaintActionCodeSet\"\n                },\n                \"id\": \"712\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The Clearing Business Date referred to by this maintenance request\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"BizDt\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"715\",\n                    \"name\": \"ClearingBusinessDate\",\n                    \"type\": \"LocalMktDate\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"150\"\n                },\n                \"description\": \"The Clearing Business Date referred to by this maintenance request\",\n                \"id\": \"715\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The Following PartyRoles can be specified:\",\n                            \"\\n                            ClearingOrganization\",\n                            \"\\n                            Clearing Firm\",\n                            \"\\n                            Position Account\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Pty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1012\",\n                    \"name\": \"Parties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"The Following PartyRoles can be specified:\\n\\n\\n                            ClearingOrganization\\n\\n\\n                            Clearing Firm\\n\\n\\n                            Position Account\",\n                \"id\": \"1012\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Qty\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"Common\",\n                    \"id\": \"1015\",\n                    \"name\": \"PositionQty\",\n                    \"type\": \"group\"\n                },\n                \"id\": \"1015\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AM\": {\n        \"abbrName\": \"PosMntRpt\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"positions\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PositionMaintenance\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Position Maintenance Report message is sent by the holder of a position in response to a Position Maintenance Request and is used to confirm that a request has been successfully processed or rejected.\",\n        \"id\": \"72\",\n        \"msgType\": \"AM\",\n        \"name\": \"PositionMaintenanceReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AM\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AM\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"TxnTyp\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"709\",\n                    \"name\": \"PosTransType\",\n                    \"type\": \"PosTransTypeCodeSet\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"199\"\n                },\n                \"id\": \"709\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Actn\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"712\",\n                    \"name\": \"PosMaintAction\",\n                    \"type\": \"PosMaintActionCodeSet\"\n                },\n                \"id\": \"712\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The Clearing Business Date covered by this request\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"BizDt\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"715\",\n                    \"name\": \"ClearingBusinessDate\",\n                    \"type\": \"LocalMktDate\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"150\"\n                },\n                \"description\": \"The Clearing Business Date covered by this request\",\n                \"id\": \"715\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for this position report\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"721\",\n                    \"name\": \"PosMaintRptID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this position report\",\n                \"id\": \"721\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.Latest\",\n        \"updatedEP\": \"271\"\n    },\n    \"AN\": {\n        \"abbrName\": \"ReqForPoss\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"positions\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PositionMaintenance\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Request For Positions message is used by the owner of a position to request a Position Report from the holder of the position, usually the central counter party or clearing organization. The request can be made at several levels of granularity.\",\n        \"id\": \"73\",\n        \"msgType\": \"AN\",\n        \"name\": \"RequestForPositions\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AN\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AN\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Time this order request was initiated/released by the trader, trading system, or intermediary.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Time this order request was initiated/released by the trader, trading system, or intermediary.\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier for the Request for Positions as assigned by the submitter\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"ReqID\", \"added\": \"FIX.4.4\", \"id\": \"710\", \"name\": \"PosReqID\", \"type\": \"String\" },\n                \"description\": \"Unique identifier for the Request for Positions as assigned by the submitter\",\n                \"id\": \"710\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The Clearing Business Date referred to by this request\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"BizDt\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"715\",\n                    \"name\": \"ClearingBusinessDate\",\n                    \"type\": \"LocalMktDate\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"150\"\n                },\n                \"description\": \"The Clearing Business Date referred to by this request\",\n                \"id\": \"715\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"ReqTyp\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"724\",\n                    \"name\": \"PosReqType\",\n                    \"type\": \"PosReqTypeCodeSet\"\n                },\n                \"id\": \"724\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Position Account\"] }],\n                \"data\": {\n                    \"abbrName\": \"Pty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1012\",\n                    \"name\": \"Parties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Position Account\",\n                \"id\": \"1012\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AO\": {\n        \"abbrName\": \"ReqForPossAck\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"positions\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PositionMaintenance\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Request for Positions Ack message is returned by the holder of the position in response to a Request for Positions message. The purpose of the message is to acknowledge that a request has been received and is being processed.\",\n        \"id\": \"74\",\n        \"msgType\": \"AO\",\n        \"name\": \"RequestForPositionsAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AO\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AO\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for this position report\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"721\",\n                    \"name\": \"PosMaintRptID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this position report\",\n                \"id\": \"721\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Rslt\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"728\",\n                    \"name\": \"PosReqResult\",\n                    \"type\": \"PosReqResultCodeSet\",\n                    \"unionDataType\": \"Reserved100Plus\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"204\"\n                },\n                \"id\": \"728\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Stat\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"729\",\n                    \"name\": \"PosReqStatus\",\n                    \"type\": \"PosReqStatusCodeSet\"\n                },\n                \"id\": \"729\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Position Account\"] }],\n                \"data\": {\n                    \"abbrName\": \"Pty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1012\",\n                    \"name\": \"Parties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Position Account\",\n                \"id\": \"1012\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AP\": {\n        \"abbrName\": \"PosRpt\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"positions\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PositionMaintenance\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Position Report message is returned by the holder of a position in response to a Request for Position message. The purpose of the message is to report all aspects of a position and may be provided on a standing basis to report end of day positions to an owner.\",\n        \"id\": \"75\",\n        \"msgType\": \"AP\",\n        \"name\": \"PositionReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AP\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AP\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The Clearing Business Date referred to by this maintenance request\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"BizDt\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"715\",\n                    \"name\": \"ClearingBusinessDate\",\n                    \"type\": \"LocalMktDate\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"150\"\n                },\n                \"description\": \"The Clearing Business Date referred to by this maintenance request\",\n                \"id\": \"715\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for this position report\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"721\",\n                    \"name\": \"PosMaintRptID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this position report\",\n                \"id\": \"721\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Position Account\"] }],\n                \"data\": {\n                    \"abbrName\": \"Pty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1012\",\n                    \"name\": \"Parties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Position Account\",\n                \"id\": \"1012\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AQ\": {\n        \"abbrName\": \"TrdCaptRptReqAck\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"tradecapture\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"TradeCapture\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Trade Capture Request Ack message is used to:\\n\\n- Provide an acknowledgement to a Trade Capture Report Request in the case where the Trade Capture Report Request is used to specify a subscription or delivery of reports via an out-of-band ResponseTransmissionMethod.\\n\\n- Provide an acknowledgement to a Trade Capture Report Request in the case when the return of the Trade Capture Reports matching that request will be delayed or delivered asynchronously. This is useful in distributed trading system environments.\\n\\n- Indicate that no trades were found that matched the selection criteria specified on the Trade Capture Report Request or the Trade Capture Request was invalid for some business reason, such as request is not authorized, invalid or unknown instrument, party, trading session, etc.\",\n        \"id\": \"76\",\n        \"msgType\": \"AQ\",\n        \"name\": \"TradeCaptureReportRequestAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AQ\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AQ\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Identifier for the trade request\"] }],\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.4.3\",\n                    \"id\": \"568\",\n                    \"name\": \"TradeRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Identifier for the trade request\",\n                \"id\": \"568\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"ReqTyp\",\n                    \"added\": \"FIX.4.3\",\n                    \"id\": \"569\",\n                    \"name\": \"TradeRequestType\",\n                    \"type\": \"TradeRequestTypeCodeSet\"\n                },\n                \"id\": \"569\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Result of Trade Request\"] }],\n                \"data\": {\n                    \"abbrName\": \"ReqRslt\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"749\",\n                    \"name\": \"TradeRequestResult\",\n                    \"type\": \"TradeRequestResultCodeSet\",\n                    \"unionDataType\": \"Reserved100Plus\"\n                },\n                \"description\": \"Result of Trade Request\",\n                \"id\": \"749\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Status of Trade Request\"] }],\n                \"data\": {\n                    \"abbrName\": \"ReqStat\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"750\",\n                    \"name\": \"TradeRequestStatus\",\n                    \"type\": \"TradeRequestStatusCodeSet\"\n                },\n                \"description\": \"Status of Trade Request\",\n                \"id\": \"750\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"192\"\n    },\n    \"AR\": {\n        \"abbrName\": \"TrdCaptRptAck\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"tradecapture\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"TradeCapture\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Trade Capture Report Ack message can be:\\n\\n- Used to acknowledge trade capture reports received from a counterparty.\\n\\n- Used to reject a trade capture report received from a counterparty.\",\n        \"id\": \"77\",\n        \"msgType\": \"AR\",\n        \"name\": \"TradeCaptureReportAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AR\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AR\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1003\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"141\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"192\"\n    },\n    \"AS\": {\n        \"abbrName\": \"AllocRpt\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"allocation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Allocation\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"Sent from sell-side to buy-side, sell-side to 3rd-party or 3rd-party to buy-side, the AllocationReport(35=AS) message (Claim) provides account breakdown of an order or set of orders plus any additional follow-up front-office information developed post-trade during the trade allocation, matching and calculation phase.\\n\\nIn versions of the FIX Protocol prior to version 4.4, this functionality was provided through the Allocation(35=J) message. Depending on the needs of the market and the timing of confirmed status, the role of AllocationReport(35=AS) can be taken over in whole or in part by the Confirmation(35=AK) message.\",\n        \"id\": \"78\",\n        \"msgType\": \"AS\",\n        \"name\": \"AllocationReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AS\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AS\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            For FX orders, should be the \\\"all-in\\\" rate (spot rate adjusted for forward points), expressed in terms of Currency(15).\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"AvgPx\", \"added\": \"FIX.2.7\", \"id\": \"6\", \"name\": \"AvgPx\", \"type\": \"Price\" },\n                \"description\": \"For FX orders, should be the \\\"all-in\\\" rate (spot rate adjusted for forward points), expressed in terms of Currency(15).\",\n                \"id\": \"6\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP1\",\n                \"updatedEP\": \"82\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Total quantity (e.g. number of shares) allocated to all accounts, or that is Ready-To-Book\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"Qty\", \"added\": \"FIX.2.7\", \"id\": \"53\", \"name\": \"Quantity\", \"type\": \"Qty\" },\n                \"description\": \"Total quantity (e.g. number of shares) allocated to all accounts, or that is Ready-To-Book\",\n                \"id\": \"53\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"TransTyp\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"71\",\n                    \"name\": \"AllocTransType\",\n                    \"type\": \"AllocTransTypeCodeSet\"\n                },\n                \"id\": \"71\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.Latest\",\n                \"updatedEP\": \"285\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"TrdDt\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"75\",\n                    \"name\": \"TradeDate\",\n                    \"type\": \"LocalMktDate\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"190\"\n                },\n                \"id\": \"75\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Stat\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"Allocation\",\n                    \"baseCategoryAbbrName\": \"Stat\",\n                    \"id\": \"87\",\n                    \"name\": \"AllocStatus\",\n                    \"type\": \"AllocStatusCodeSet\"\n                },\n                \"id\": \"87\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for this message\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"755\",\n                    \"name\": \"AllocReportID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this message\",\n                \"id\": \"755\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Specifies the purpose or type of Allocation Report message\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptTyp\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"794\",\n                    \"name\": \"AllocReportType\",\n                    \"type\": \"AllocReportTypeCodeSet\"\n                },\n                \"description\": \"Specifies the purpose or type of Allocation Report message\",\n                \"id\": \"794\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\".\",\n                            \"\\n                            For NDFs, fixing date (specified in MaturityDate(541)) is required. Fixing time (specified in MaturityTime(1079)) is optional.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\".\\n\\n\\n                            For NDFs, fixing date (specified in MaturityDate(541)) is required. Fixing time (specified in MaturityTime(1079)) is optional.\",\n                \"id\": \"1003\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.Latest\",\n                \"updatedEP\": \"282\"\n            }\n        ],\n        \"updated\": \"FIX.Latest\",\n        \"updatedEP\": \"291\"\n    },\n    \"AT\": {\n        \"abbrName\": \"AllocRptAck\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"allocation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Allocation\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Allocation Report Ack message is used to acknowledge the receipt of and provide status for an Allocation Report message.\",\n        \"id\": \"79\",\n        \"msgType\": \"AT\",\n        \"name\": \"AllocationReportAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AT\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AT\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"755\",\n                    \"name\": \"AllocReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"755\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AU\": {\n        \"abbrName\": \"CnfmAck\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"confirmation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Confirmation\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Confirmation Ack (aka Affirmation) message is used to respond to a Confirmation message.\",\n        \"id\": \"80\",\n        \"msgType\": \"AU\",\n        \"name\": \"ConfirmationAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AU\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AU\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Date/Time Allocation Instruction Ack generated\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Date/Time Allocation Instruction Ack generated\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"TrdDt\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"75\",\n                    \"name\": \"TradeDate\",\n                    \"type\": \"LocalMktDate\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"190\"\n                },\n                \"id\": \"75\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"CnfmID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"664\",\n                    \"name\": \"ConfirmID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"664\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"AffirmStat\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"940\",\n                    \"name\": \"AffirmStatus\",\n                    \"type\": \"AffirmStatusCodeSet\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"215\"\n                },\n                \"id\": \"940\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AV\": {\n        \"abbrName\": \"SettlInstrctnReq\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"settlement\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SettlementInstruction\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Settlement Instruction Request message is used to request standing settlement instructions from another party.\",\n        \"id\": \"81\",\n        \"msgType\": \"AV\",\n        \"name\": \"SettlementInstructionRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AV\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AV\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Date/Time this request message was generated\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Date/Time this request message was generated\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Unique message ID\"] }],\n                \"data\": {\n                    \"abbrName\": \"SettlInstReqID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"791\",\n                    \"name\": \"SettlInstReqID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique message ID\",\n                \"id\": \"791\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AW\": {\n        \"abbrName\": \"AsgnRpt\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"positions\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PositionMaintenance\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"Assignment Reports are sent from a clearing house to counterparties, such as a clearing firm as a result of the assignment process.\",\n        \"id\": \"82\",\n        \"msgType\": \"AW\",\n        \"name\": \"AssignmentReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AW\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AW\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Business date of assignment\"] }],\n                \"data\": {\n                    \"abbrName\": \"BizDt\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"715\",\n                    \"name\": \"ClearingBusinessDate\",\n                    \"type\": \"LocalMktDate\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"150\"\n                },\n                \"description\": \"Business date of assignment\",\n                \"id\": \"715\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for the Assignment report\"] }\n                ],\n                \"data\": { \"abbrName\": \"RptID\", \"added\": \"FIX.4.4\", \"id\": \"833\", \"name\": \"AsgnRptID\", \"type\": \"String\" },\n                \"description\": \"Unique identifier for the Assignment report\",\n                \"id\": \"833\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Clearing Organization\",\n                            \"\\n                            Clearing Firm\",\n                            \"\\n                            Contra Clearing Organization\",\n                            \"\\n                            Contra Clearing Firm\",\n                            \"\\n                            Position Account\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Pty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1012\",\n                    \"name\": \"Parties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Clearing Organization\\n\\n\\n                            Clearing Firm\\n\\n\\n                            Contra Clearing Organization\\n\\n\\n                            Contra Clearing Firm\\n\\n\\n                            Position Account\",\n                \"id\": \"1012\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AX\": {\n        \"abbrName\": \"CollReq\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"collateral\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"CollateralManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"An initiator that requires collateral from a respondent sends a Collateral Request. The initiator can be either counterparty to a trade in a two party model or an intermediary such as an ATS or clearinghouse in a three party model. A Collateral Assignment is expected as a response to a request for collateral.\",\n        \"id\": \"83\",\n        \"msgType\": \"AX\",\n        \"name\": \"CollateralRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AX\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AX\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for collateral request\"] }\n                ],\n                \"data\": { \"abbrName\": \"ReqID\", \"added\": \"FIX.4.4\", \"id\": \"894\", \"name\": \"CollReqID\", \"type\": \"String\" },\n                \"description\": \"Unique identifier for collateral request\",\n                \"id\": \"894\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Reason collateral assignment is being requested\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"AsgnRsn\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"895\",\n                    \"name\": \"CollAsgnReason\",\n                    \"type\": \"CollAsgnReasonCodeSet\"\n                },\n                \"description\": \"Reason collateral assignment is being requested\",\n                \"id\": \"895\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AY\": {\n        \"abbrName\": \"CollAsgn\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"collateral\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"CollateralManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"Used to assign collateral to cover a trading position. This message can be sent unsolicited or in reply to a Collateral Request message.\",\n        \"id\": \"84\",\n        \"msgType\": \"AY\",\n        \"name\": \"CollateralAssignment\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AY\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AY\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Reason for collateral assignment\"] }],\n                \"data\": {\n                    \"abbrName\": \"AsgnRsn\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"895\",\n                    \"name\": \"CollAsgnReason\",\n                    \"type\": \"CollAsgnReasonCodeSet\"\n                },\n                \"description\": \"Reason for collateral assignment\",\n                \"id\": \"895\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique Identifer for collateral assignment\"] }\n                ],\n                \"data\": { \"abbrName\": \"ID\", \"added\": \"FIX.4.4\", \"id\": \"902\", \"name\": \"CollAsgnID\", \"type\": \"String\" },\n                \"description\": \"Unique Identifer for collateral assignment\",\n                \"id\": \"902\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Collateral Transaction Type\"] }],\n                \"data\": {\n                    \"abbrName\": \"TransTyp\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"903\",\n                    \"name\": \"CollAsgnTransType\",\n                    \"type\": \"CollAsgnTransTypeCodeSet\"\n                },\n                \"description\": \"Collateral Transaction Type\",\n                \"id\": \"903\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"AZ\": {\n        \"abbrName\": \"CollRsp\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"collateral\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"CollateralManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"Used to respond to a Collateral Assignment message.\",\n        \"id\": \"85\",\n        \"msgType\": \"AZ\",\n        \"name\": \"CollateralResponse\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = AZ\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = AZ\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifer for the collateral response\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RespID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"904\",\n                    \"name\": \"CollRespID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifer for the collateral response\",\n                \"id\": \"904\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Collateral Assignment Response Type\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RespTyp\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"905\",\n                    \"name\": \"CollAsgnRespType\",\n                    \"type\": \"CollAsgnRespTypeCodeSet\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"192\"\n                },\n                \"description\": \"Collateral Assignment Response Type\",\n                \"id\": \"905\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"193\"\n            }\n        ]\n    },\n    \"B\": {\n        \"abbrName\": \"News\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"newsevents\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"EventCommunication\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The news message is a general free format message between the broker and institution. The message contains flags to identify the news item's urgency and to allow sorting by subject company (symbol). The News message can be originated at either the broker or institution side, or exchanges and other marketplace venues.\",\n        \"id\": \"12\",\n        \"msgType\": \"B\",\n        \"name\": \"News\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = B\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = B\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Specifies the headline text\"] }],\n                \"data\": {\n                    \"abbrName\": \"Headline\",\n                    \"added\": \"FIX.4.1\",\n                    \"id\": \"148\",\n                    \"name\": \"Headline\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Specifies the headline text\",\n                \"id\": \"148\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Specifies the number of repeating lines of text specified\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxtLn\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"Common\",\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"Txt\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Repeating field, number of instances defined in LinesOfText\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"Repeating field, number of instances defined in LinesOfText\",\n                            \"id\": \"58\",\n                            \"name\": \"Text\",\n                            \"presence\": \"required\",\n                            \"type\": \"String\"\n                        }\n                    ],\n                    \"id\": \"2029\",\n                    \"name\": \"LinesOfTextGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Specifies the number of repeating lines of text specified\",\n                \"id\": \"2029\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BA\": {\n        \"abbrName\": \"CollRpt\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"collateral\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"CollateralManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"Used to report collateral status when responding to a Collateral Inquiry message.\",\n        \"id\": \"86\",\n        \"msgType\": \"BA\",\n        \"name\": \"CollateralReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BA\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BA\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique Identifer for collateral report\"] }\n                ],\n                \"data\": { \"abbrName\": \"RptID\", \"added\": \"FIX.4.4\", \"id\": \"908\", \"name\": \"CollRptID\", \"type\": \"String\" },\n                \"description\": \"Unique Identifer for collateral report\",\n                \"id\": \"908\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Collateral status\"] }],\n                \"data\": {\n                    \"abbrName\": \"Stat\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"910\",\n                    \"name\": \"CollStatus\",\n                    \"type\": \"CollStatusCodeSet\"\n                },\n                \"description\": \"Collateral status\",\n                \"id\": \"910\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BB\": {\n        \"abbrName\": \"CollInq\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"collateral\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"CollateralManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"Used to inquire for collateral status.\",\n        \"id\": \"87\",\n        \"msgType\": \"BB\",\n        \"name\": \"CollateralInquiry\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BB\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BB\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for this message.\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"909\",\n                    \"name\": \"CollInquiryID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this message.\",\n                \"id\": \"909\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP1\",\n                \"updatedEP\": \"95\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BC\": {\n        \"abbrName\": \"NtwkSysStatReq\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"network\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Network\",\n            \"section\": \"Infrastructure\"\n        },\n        \"description\": \"This message is send either immediately after logging on to inform a network (counterparty system) of the type of updates required or to at any other time in the FIX conversation to change the nature of the types of status updates required. It can also be used with a NetworkRequestType of Snapshot to request a one-off report of the status of a network (or counterparty) system. Finally this message can also be used to cancel a request to receive updates into the status of the counterparties on a network by sending a NetworkRequestStatusMessage with a NetworkRequestType of StopSubscribing.\",\n        \"id\": \"88\",\n        \"msgType\": \"BC\",\n        \"name\": \"NetworkCounterpartySystemStatusRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"infrastructure\",\n            \"description\": \"Infrastructure messages for application sequencing, business reject, network and user management\",\n            \"displayOrder\": \"4\",\n            \"name\": \"Infrastructure\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = \\\"BC\\\"\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = \\\"BC\\\"\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"NtwkReqID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"933\",\n                    \"name\": \"NetworkRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"933\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"NtwkReqTyp\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"935\",\n                    \"name\": \"NetworkRequestType\",\n                    \"type\": \"NetworkRequestTypeCodeSet\"\n                },\n                \"id\": \"935\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BD\": {\n        \"abbrName\": \"NtwkSysStatRsp\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"network\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Network\",\n            \"section\": \"Infrastructure\"\n        },\n        \"description\": \"This message is sent in response to a Network (Counterparty System) Status Request Message.\",\n        \"id\": \"89\",\n        \"msgType\": \"BD\",\n        \"name\": \"NetworkCounterpartySystemStatusResponse\",\n        \"section\": {\n            \"FIXMLFileName\": \"infrastructure\",\n            \"description\": \"Infrastructure messages for application sequencing, business reject, network and user management\",\n            \"displayOrder\": \"4\",\n            \"name\": \"Infrastructure\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = \\\"BD\\\"\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = \\\"BD\\\"\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"NtwkRspID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"932\",\n                    \"name\": \"NetworkResponseID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"932\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"NtwkStatRspTyp\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"937\",\n                    \"name\": \"NetworkStatusResponseType\",\n                    \"type\": \"NetworkStatusResponseTypeCodeSet\"\n                },\n                \"id\": \"937\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Specifies the number of repeating CompId's\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"CIDStat\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"Common\",\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"RefCompID\",\n                            \"added\": \"FIX.4.4\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        CompID that status is being report for. Required if NoCompIDs > 0,\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"CompID that status is being report for. Required if NoCompIDs > 0,\",\n                            \"id\": \"930\",\n                            \"name\": \"RefCompID\",\n                            \"presence\": \"required\",\n                            \"type\": \"String\"\n                        },\n                        {\n                            \"abbrName\": \"StatValu\",\n                            \"added\": \"FIX.4.4\",\n                            \"id\": \"928\",\n                            \"name\": \"StatusValue\",\n                            \"presence\": \"required\",\n                            \"type\": \"StatusValueCodeSet\"\n                        }\n                    ],\n                    \"id\": \"2010\",\n                    \"name\": \"CompIDStatGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Specifies the number of repeating CompId's\",\n                \"id\": \"2010\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BE\": {\n        \"abbrName\": \"UserReq\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"usermanagement\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"UserManagement\",\n            \"section\": \"Infrastructure\"\n        },\n        \"description\": \"This message is used to initiate a user action, logon, logout or password change. It can also be used to request a report on a user's status.\",\n        \"id\": \"90\",\n        \"msgType\": \"BE\",\n        \"name\": \"UserRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"infrastructure\",\n            \"description\": \"Infrastructure messages for application sequencing, business reject, network and user management\",\n            \"displayOrder\": \"4\",\n            \"name\": \"Infrastructure\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = \\\"BE\\\"\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = \\\"BE\\\"\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Username\",\n                    \"added\": \"FIX.4.3\",\n                    \"id\": \"553\",\n                    \"name\": \"Username\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"553\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"UserReqID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"923\",\n                    \"name\": \"UserRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"923\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"UserReqTyp\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"924\",\n                    \"name\": \"UserRequestType\",\n                    \"type\": \"UserRequestTypeCodeSet\"\n                },\n                \"id\": \"924\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BF\": {\n        \"abbrName\": \"UserRsp\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"usermanagement\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"UserManagement\",\n            \"section\": \"Infrastructure\"\n        },\n        \"description\": \"This message is used to respond to a user request message, it reports the status of the user after the completion of any action requested in the user request message.\",\n        \"id\": \"91\",\n        \"msgType\": \"BF\",\n        \"name\": \"UserResponse\",\n        \"section\": {\n            \"FIXMLFileName\": \"infrastructure\",\n            \"description\": \"Infrastructure messages for application sequencing, business reject, network and user management\",\n            \"displayOrder\": \"4\",\n            \"name\": \"Infrastructure\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = \\\"BF\\\"\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = \\\"BF\\\"\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Username\",\n                    \"added\": \"FIX.4.3\",\n                    \"id\": \"553\",\n                    \"name\": \"Username\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"553\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"UserReqID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"923\",\n                    \"name\": \"UserRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"923\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BG\": {\n        \"abbrName\": \"CollInqAck\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"collateral\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"CollateralManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"Used to respond to a Collateral Inquiry in the following situations:\\n\\n\u2022 When the CollateralInquiry will result in an out of band response (such as a file transfer).\\n\\n\u2022 When the inquiry is otherwise valid but no collateral is found to match the criteria specified on the Collateral Inquiry message.\\n\\n\u2022 When the Collateral Inquiry is invalid based upon the business rules of the counterparty.\",\n        \"id\": \"92\",\n        \"msgType\": \"BG\",\n        \"name\": \"CollateralInquiryAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BG\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BG\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Identifier for the collateral inquiry to which this message is a reply\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"909\",\n                    \"name\": \"CollInquiryID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Identifier for the collateral inquiry to which this message is a reply\",\n                \"id\": \"909\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Status of the Collateral Inquiry referenced by CollInquiryID\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Stat\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"945\",\n                    \"name\": \"CollInquiryStatus\",\n                    \"type\": \"CollInquiryStatusCodeSet\"\n                },\n                \"description\": \"Status of the Collateral Inquiry referenced by CollInquiryID\",\n                \"id\": \"945\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BH\": {\n        \"abbrName\": \"CnfmReq\",\n        \"added\": \"FIX.4.4\",\n        \"category\": {\n            \"FIXMLFileName\": \"confirmation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Confirmation\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Confirmation Request message is used to request a Confirmation message.\",\n        \"id\": \"93\",\n        \"msgType\": \"BH\",\n        \"name\": \"ConfirmationRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BH\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BH\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Represents the time this message was generated\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Represents the time this message was generated\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Denotes whether this message is being used to request a confirmation or a trade status message\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"CnfmTyp\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"773\",\n                    \"name\": \"ConfirmType\",\n                    \"type\": \"ConfirmTypeCodeSet\"\n                },\n                \"description\": \"Denotes whether this message is being used to request a confirmation or a trade status message\",\n                \"id\": \"773\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for this message\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"CnfmReqID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"859\",\n                    \"name\": \"ConfirmReqID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this message\",\n                \"id\": \"859\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BI\": {\n        \"abbrName\": \"TradSessListReq\",\n        \"added\": \"FIX.4.4\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketstructure\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketStructureReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Trading Session List Request is used to request a list of trading sessions available in a market place and the state of those trading sessions. A successful request will result in a response from the counterparty of a Trading Session List (MsgType=BJ) message that contains a list of zero or more trading sessions.\",\n        \"id\": \"101\",\n        \"msgType\": \"BI\",\n        \"name\": \"TradingSessionListRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BI\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BI\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"SubReqTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"263\",\n                    \"name\": \"SubscriptionRequestType\",\n                    \"type\": \"SubscriptionRequestTypeCodeSet\"\n                },\n                \"id\": \"263\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Must be unique, or the ID of previous Trading Session List Request to disable if SubscriptionRequestType(263) = 2 (Disable previous Snapshot + Update Request).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"335\",\n                    \"name\": \"TradSesReqID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Must be unique, or the ID of previous Trading Session List Request to disable if SubscriptionRequestType(263) = 2 (Disable previous Snapshot + Update Request).\",\n                \"id\": \"335\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.Latest\",\n                \"updatedEP\": \"294\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"BJ\": {\n        \"abbrName\": \"TradSessList\",\n        \"added\": \"FIX.4.4\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketstructure\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketStructureReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Trading Session List message is sent as a response to a Trading Session List Request. The Trading Session List should contain the characteristics of the trading session and the current state of the trading session.\",\n        \"id\": \"100\",\n        \"msgType\": \"BJ\",\n        \"name\": \"TradingSessionList\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BJ\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BJ\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"TrdSessLstGrp\",\n                    \"added\": \"FIX.4.4\",\n                    \"addedEP\": \"-1\",\n                    \"category\": \"Common\",\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"SesID\",\n                            \"added\": \"FIX.4.2\",\n                            \"annotation\": [\n                                { \"documentation\": [\"\\n                        Identifier for Trading Session\"] }\n                            ],\n                            \"description\": \"Identifier for Trading Session\",\n                            \"id\": \"336\",\n                            \"name\": \"TradingSessionID\",\n                            \"presence\": \"required\",\n                            \"type\": \"TradingSessionIDCodeSet\",\n                            \"unionDataType\": \"Reserved100Plus\",\n                            \"updated\": \"FIX.5.0SP2\",\n                            \"updatedEP\": \"190\"\n                        },\n                        {\n                            \"abbrName\": \"Stat\",\n                            \"added\": \"FIX.4.2\",\n                            \"annotation\": [\n                                { \"documentation\": [\"\\n                        State of trading session.\"] }\n                            ],\n                            \"description\": \"State of trading session.\",\n                            \"id\": \"340\",\n                            \"name\": \"TradSesStatus\",\n                            \"presence\": \"required\",\n                            \"type\": \"TradSesStatusCodeSet\",\n                            \"unionDataType\": \"Reserved100Plus\"\n                        }\n                    ],\n                    \"id\": \"2099\",\n                    \"name\": \"TrdSessLstGrp\",\n                    \"type\": \"group\"\n                },\n                \"id\": \"2099\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"BK\": {\n        \"abbrName\": \"SecListUpd\",\n        \"added\": \"FIX.4.4\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Security List Update Report is used for reporting updates to a Contract Security Masterfile. Updates could be due to Corporate Actions or other business events. Update may include additions, modifications and deletions.\",\n        \"id\": \"96\",\n        \"msgType\": \"BK\",\n        \"name\": \"SecurityListUpdateReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BK\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BK\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"BL\": {\n        \"abbrName\": \"AdjPosRep\",\n        \"added\": \"FIX.4.4\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"positions\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PositionMaintenance\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"Used to report changes in position, primarily in equity options, due to modifications to the underlying due to corporate actions\",\n        \"id\": \"97\",\n        \"msgType\": \"BL\",\n        \"name\": \"AdjustedPositionReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BL\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BL\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The Clearing Business Date referred to by this maintenance request\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"BizDt\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"715\",\n                    \"name\": \"ClearingBusinessDate\",\n                    \"type\": \"LocalMktDate\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"150\"\n                },\n                \"description\": \"The Clearing Business Date referred to by this maintenance request\",\n                \"id\": \"715\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier for this Adjusted Position report\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"721\",\n                    \"name\": \"PosMaintRptID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this Adjusted Position report\",\n                \"id\": \"721\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Position Account\"] }],\n                \"data\": {\n                    \"abbrName\": \"Pty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1012\",\n                    \"name\": \"Parties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Position Account\",\n                \"id\": \"1012\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here here the set of \\\"Position Qty\\\" fields defined in \\\"Common Components of Application Messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Qty\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"Common\",\n                    \"id\": \"1015\",\n                    \"name\": \"PositionQty\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Insert here here the set of \\\"Position Qty\\\" fields defined in \\\"Common Components of Application Messages\\\"\",\n                \"id\": \"1015\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BM\": {\n        \"abbrName\": \"AllocInstrAlert\",\n        \"added\": \"FIX.4.4\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"allocation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Allocation\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"This message is used in a 3-party allocation model (buy-side and sell-side using a central clearing entity) where notification of group creation and group updates to counterparties is needed. The message will also carry trade information that comprised the group to the counterparties.\",\n        \"id\": \"98\",\n        \"msgType\": \"BM\",\n        \"name\": \"AllocationInstructionAlert\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BM\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BM\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier for this allocation instruction alert message\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"AllocID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"Allocation\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"70\",\n                    \"name\": \"AllocID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this allocation instruction alert message\",\n                \"id\": \"70\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"TransTyp\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"71\",\n                    \"name\": \"AllocTransType\",\n                    \"type\": \"AllocTransTypeCodeSet\"\n                },\n                \"id\": \"71\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.Latest\",\n                \"updatedEP\": \"285\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"TrdDt\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"75\",\n                    \"name\": \"TradeDate\",\n                    \"type\": \"LocalMktDate\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"190\"\n                },\n                \"id\": \"75\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Specifies the purpose or type of Allocation message\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"AllocType\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"Allocation\",\n                    \"baseCategoryAbbrName\": \"Typ\",\n                    \"id\": \"626\",\n                    \"name\": \"AllocType\",\n                    \"type\": \"AllocTypeCodeSet\"\n                },\n                \"description\": \"Specifies the purpose or type of Allocation message\",\n                \"id\": \"626\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"common components of application messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"common components of application messages\\\"\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.Latest\",\n        \"updatedEP\": \"285\"\n    },\n    \"BN\": {\n        \"abbrName\": \"ExecAck\",\n        \"added\": \"FIX.4.4\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"order\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SingleGeneralOrderHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The Execution Report Acknowledgement message is an optional message that provides dual functionality to notify a trading partner that an electronically received execution has either been accepted or rejected (DK'd).\",\n        \"id\": \"99\",\n        \"msgType\": \"BN\",\n        \"name\": \"ExecutionAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BN\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BN\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The ExecID of the Execution Report being acknowledged.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ExecID\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"17\",\n                    \"name\": \"ExecID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"95\"\n                },\n                \"description\": \"The ExecID of the Execution Report being acknowledged.\",\n                \"id\": \"17\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": { \"abbrName\": \"OrdID\", \"added\": \"FIX.2.7\", \"id\": \"37\", \"name\": \"OrderID\", \"type\": \"String\" },\n                \"id\": \"37\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Indicates the status of the execution acknowledgement. The \\\"received, not yet processed\\\" is an optional intermediary status that can be used to notify the counterparty that the Execution Report has been received.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ExecAckStat\",\n                    \"added\": \"FIX.4.4\",\n                    \"addedEP\": \"10\",\n                    \"id\": \"1036\",\n                    \"name\": \"ExecAckStatus\",\n                    \"type\": \"ExecAckStatusCodeSet\"\n                },\n                \"description\": \"Indicates the status of the execution acknowledgement. The \\\"received, not yet processed\\\" is an optional intermediary status that can be used to notify the counterparty that the Execution Report has been received.\",\n                \"id\": \"1036\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"143\"\n    },\n    \"BO\": {\n        \"abbrName\": \"ContIntRpt\",\n        \"added\": \"FIX.4.4\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"positions\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PositionMaintenance\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Contrary Intention Report is used for reporting of contrary expiration quantities for Saturday expiring options. This information is required by options exchanges for regulatory purposes.\",\n        \"id\": \"94\",\n        \"msgType\": \"BO\",\n        \"name\": \"ContraryIntentionReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BO\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BO\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Business date of contrary intention\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"BizDt\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"715\",\n                    \"name\": \"ClearingBusinessDate\",\n                    \"type\": \"LocalMktDate\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"150\"\n                },\n                \"description\": \"Business date of contrary intention\",\n                \"id\": \"715\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier for the Contrary Intention report\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.4.4\",\n                    \"addedEP\": \"4\",\n                    \"id\": \"977\",\n                    \"name\": \"ContIntRptID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for the Contrary Intention report\",\n                \"id\": \"977\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Expiration Quantities\"] }],\n                \"data\": {\n                    \"abbrName\": \"Qty\",\n                    \"added\": \"FIX.4.4\",\n                    \"addedEP\": \"-1\",\n                    \"category\": \"PositionMaintenance\",\n                    \"id\": \"1027\",\n                    \"name\": \"ExpirationQty\",\n                    \"type\": \"group\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"97\"\n                },\n                \"description\": \"Expiration Quantities\",\n                \"id\": \"1027\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Clearing Organization\",\n                            \"\\n                            Clearing Firm\",\n                            \"\\n                            Position Account\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Pty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1012\",\n                    \"name\": \"Parties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Clearing Organization\\n\\n\\n                            Clearing Firm\\n\\n\\n                            Position Account\",\n                \"id\": \"1012\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BP\": {\n        \"abbrName\": \"SecDefUpd\",\n        \"added\": \"FIX.4.4\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"This message is used for reporting updates to a product security master file. Updates could be the result of corporate actions or other business events. Updates may include additions, modifications or deletions.\",\n        \"id\": \"95\",\n        \"msgType\": \"BP\",\n        \"name\": \"SecurityDefinitionUpdateReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BP\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BP\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"195\"\n    },\n    \"BQ\": {\n        \"abbrName\": \"SettlObligation\",\n        \"added\": \"FIX.5.0\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"settlement\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SettlementInstruction\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Settlement Obligation Report message provides a central counterparty, institution, or individual counterparty with a capacity for reporting the final details of a currency settlement obligation.\",\n        \"id\": \"102\",\n        \"msgType\": \"BQ\",\n        \"name\": \"SettlementObligationReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BQ\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BQ\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Used to identify the reporting mode of the settlement obligation which is either preliminary or final\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"SettlMode\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"44\",\n                    \"id\": \"1159\",\n                    \"name\": \"SettlObligMode\",\n                    \"type\": \"SettlObligModeCodeSet\"\n                },\n                \"description\": \"Used to identify the reporting mode of the settlement obligation which is either preliminary or final\",\n                \"id\": \"1159\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for this message\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"SettlMsgID\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"44\",\n                    \"id\": \"1160\",\n                    \"name\": \"SettlObligMsgID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this message\",\n                \"id\": \"1160\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"SettlObligInst\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"-1\",\n                    \"category\": \"SettlementInstruction\",\n                    \"id\": \"2101\",\n                    \"name\": \"SettlObligationInstructions\",\n                    \"type\": \"group\"\n                },\n                \"id\": \"2101\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BR\": {\n        \"abbrName\": \"DerivSecListUpd\",\n        \"added\": \"FIX.5.0\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Derivative Security List Update Report message is used to send updates to an option family or the strikes that comprise an option family.\",\n        \"id\": \"103\",\n        \"msgType\": \"BR\",\n        \"name\": \"DerivativeSecurityListUpdateReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BR\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BR\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"BS\": {\n        \"abbrName\": \"TrdgSesListUpd\",\n        \"added\": \"FIX.5.0\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketstructure\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketStructureReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Trading Session List Update Report is used by marketplaces to provide intra-day updates of trading sessions when there are changes to one or more trading sessions.\",\n        \"id\": \"104\",\n        \"msgType\": \"BS\",\n        \"name\": \"TradingSessionListUpdateReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BS\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BS\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"TrdSessLstGrp\",\n                    \"added\": \"FIX.4.4\",\n                    \"addedEP\": \"-1\",\n                    \"category\": \"Common\",\n                    \"id\": \"2099\",\n                    \"name\": \"TrdSessLstGrp\",\n                    \"type\": \"group\"\n                },\n                \"id\": \"2099\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"BT\": {\n        \"abbrName\": \"MktDefReq\",\n        \"added\": \"FIX.5.0\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketstructure\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketStructureReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Market Definition Request message is used to request for market structure information from the Respondent that receives this request.\",\n        \"id\": \"105\",\n        \"msgType\": \"BT\",\n        \"name\": \"MarketDefinitionRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BT\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BT\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"SubReqTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"263\",\n                    \"name\": \"SubscriptionRequestType\",\n                    \"type\": \"SubscriptionRequestTypeCodeSet\"\n                },\n                \"id\": \"263\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Must be unique, or the ID of previous Market Segment Request to disable if SubscriptionRequestType = Disable previous Snapshot + Updates Request(2).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MktReqID\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"53\",\n                    \"id\": \"1393\",\n                    \"name\": \"MarketReqID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Must be unique, or the ID of previous Market Segment Request to disable if SubscriptionRequestType = Disable previous Snapshot + Updates Request(2).\",\n                \"id\": \"1393\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"BU\": {\n        \"abbrName\": \"MktDef\",\n        \"added\": \"FIX.5.0\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketstructure\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketStructureReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The MarketDefinition(35=BU) message is used to respond to MarketDefinitionRequest(35=BT). In a subscription, it will be used to provide the initial snapshot of the information requested. Subsequent updates are provided by the MarketDefinitionUpdateReport(35=BV).\",\n        \"id\": \"106\",\n        \"msgType\": \"BU\",\n        \"name\": \"MarketDefinition\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BU\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BU\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"MktID\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"52\",\n                    \"id\": \"1301\",\n                    \"name\": \"MarketID\",\n                    \"type\": \"Exchange\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"190\"\n                },\n                \"id\": \"1301\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier for each market definition message.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MktRptID\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"53\",\n                    \"id\": \"1394\",\n                    \"name\": \"MarketReportID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for each market definition message.\",\n                \"id\": \"1394\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"195\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"195\"\n    },\n    \"BV\": {\n        \"abbrName\": \"MktDefUpd\",\n        \"added\": \"FIX.5.0\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketstructure\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketStructureReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"In a subscription for market structure information, this message is used once the initial snapshot of the information has been sent using the MarketDefinition(35=BU) message.\",\n        \"id\": \"107\",\n        \"msgType\": \"BV\",\n        \"name\": \"MarketDefinitionUpdateReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BV\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BV\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"MktID\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"52\",\n                    \"id\": \"1301\",\n                    \"name\": \"MarketID\",\n                    \"type\": \"Exchange\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"190\"\n                },\n                \"id\": \"1301\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier for each market definition message.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MktRptID\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"53\",\n                    \"id\": \"1394\",\n                    \"name\": \"MarketReportID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for each market definition message.\",\n                \"id\": \"1394\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"195\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"195\"\n    },\n    \"BW\": {\n        \"abbrName\": \"ApplMsgReq\",\n        \"added\": \"FIX.5.0\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"application\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Application\",\n            \"section\": \"Infrastructure\"\n        },\n        \"description\": \"This message is used to request a retransmission of a set of one or more messages generated by the application specified in RefApplID (1355).\",\n        \"id\": \"108\",\n        \"msgType\": \"BW\",\n        \"name\": \"ApplicationMessageRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"infrastructure\",\n            \"description\": \"Infrastructure messages for application sequencing, business reject, network and user management\",\n            \"displayOrder\": \"4\",\n            \"name\": \"Infrastructure\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BW\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BW\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Unique identifier for request\"] }],\n                \"data\": {\n                    \"abbrName\": \"ApplReqID\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"63\",\n                    \"id\": \"1346\",\n                    \"name\": \"ApplReqID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for request\",\n                \"id\": \"1346\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Type of Application Message Request being made\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ApplReqTyp\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"63\",\n                    \"id\": \"1347\",\n                    \"name\": \"ApplReqType\",\n                    \"type\": \"ApplReqTypeCodeSet\"\n                },\n                \"description\": \"Type of Application Message Request being made\",\n                \"id\": \"1347\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BX\": {\n        \"abbrName\": \"ApplMsgReqAck\",\n        \"added\": \"FIX.5.0\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"application\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Application\",\n            \"section\": \"Infrastructure\"\n        },\n        \"description\": \"This message is used to acknowledge an Application Message Request providing a status on the request (i.e. whether successful or not). This message does not provide the actual content of the messages to be resent.\",\n        \"id\": \"109\",\n        \"msgType\": \"BX\",\n        \"name\": \"ApplicationMessageRequestAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"infrastructure\",\n            \"description\": \"Infrastructure messages for application sequencing, business reject, network and user management\",\n            \"displayOrder\": \"4\",\n            \"name\": \"Infrastructure\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BX\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BX\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Identifier for the Application Message Request Ack\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ApplRespID\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"63\",\n                    \"id\": \"1353\",\n                    \"name\": \"ApplResponseID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Identifier for the Application Message Request Ack\",\n                \"id\": \"1353\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BY\": {\n        \"abbrName\": \"ApplMsgRpt\",\n        \"added\": \"FIX.5.0\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"application\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Application\",\n            \"section\": \"Infrastructure\"\n        },\n        \"description\": \"This message is used for three difference purposes: to reset the ApplSeqNum (1181) of a specified ApplID (1180). to indicate that the last message has been sent for a particular ApplID, or as a keep-alive mechanism for ApplIDs with infrequent message traffic.\",\n        \"id\": \"110\",\n        \"msgType\": \"BY\",\n        \"name\": \"ApplicationMessageReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"infrastructure\",\n            \"description\": \"Infrastructure messages for application sequencing, business reject, network and user management\",\n            \"displayOrder\": \"4\",\n            \"name\": \"Infrastructure\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BY\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BY\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Identifier for the Application Message Report\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ApplRptID\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"63\",\n                    \"id\": \"1356\",\n                    \"name\": \"ApplReportID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Identifier for the Application Message Report\",\n                \"id\": \"1356\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Type of report\"] }],\n                \"data\": {\n                    \"abbrName\": \"ApplRptTyp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"id\": \"1426\",\n                    \"name\": \"ApplReportType\",\n                    \"type\": \"ApplReportTypeCodeSet\"\n                },\n                \"description\": \"Type of report\",\n                \"id\": \"1426\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"BZ\": {\n        \"abbrName\": \"OrdMassActRpt\",\n        \"added\": \"FIX.5.0\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"ordermasshandling\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"OrderMassHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The Order Mass Action Report is used to acknowledge an Order Mass Action Request. Note that each affected order that is suspended or released or canceled is acknowledged with a separate Execution Report for each order.\",\n        \"id\": \"111\",\n        \"msgType\": \"BZ\",\n        \"name\": \"OrderMassActionReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = BZ\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = BZ\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique Identifier for the Order Mass Action Report\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MassActionReportID\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"58\",\n                    \"id\": \"1369\",\n                    \"name\": \"MassActionReportID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique Identifier for the Order Mass Action Report\",\n                \"id\": \"1369\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Order Mass Action Request Type accepted by the system\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MassActionType\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"58\",\n                    \"id\": \"1373\",\n                    \"name\": \"MassActionType\",\n                    \"type\": \"MassActionTypeCodeSet\"\n                },\n                \"description\": \"Order Mass Action Request Type accepted by the system\",\n                \"id\": \"1373\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Specifies the scope of the action\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MassActionScope\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"58\",\n                    \"id\": \"1374\",\n                    \"name\": \"MassActionScope\",\n                    \"type\": \"MassActionScopeCodeSet\",\n                    \"unionDataType\": \"Reserved100Plus\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"85\"\n                },\n                \"description\": \"Specifies the scope of the action\",\n                \"id\": \"1374\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Indicates the action taken by the counterparty order handling system as a result of the Action Request.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MassActionResponse\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"58\",\n                    \"id\": \"1375\",\n                    \"name\": \"MassActionResponse\",\n                    \"type\": \"MassActionResponseCodeSet\"\n                },\n                \"description\": \"Indicates the action taken by the counterparty order handling system as a result of the Action Request.\",\n                \"id\": \"1375\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"223\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"C\": {\n        \"abbrName\": \"Email\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"newsevents\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"EventCommunication\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The email message is similar to the format and purpose of the News message, however, it is intended for private use between two parties.\",\n        \"id\": \"13\",\n        \"msgType\": \"C\",\n        \"name\": \"Email\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = C\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = C\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"EmailTyp\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"94\",\n                    \"name\": \"EmailType\",\n                    \"type\": \"EmailTypeCodeSet\"\n                },\n                \"id\": \"94\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Specifies the Subject text\"] }],\n                \"data\": { \"abbrName\": \"Subject\", \"added\": \"FIX.4.1\", \"id\": \"147\", \"name\": \"Subject\", \"type\": \"String\" },\n                \"description\": \"Specifies the Subject text\",\n                \"id\": \"147\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier for the email message thread\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"EmailThreadID\",\n                    \"added\": \"FIX.4.1\",\n                    \"id\": \"164\",\n                    \"name\": \"EmailThreadID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for the email message thread\",\n                \"id\": \"164\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Specifies the number of repeating lines of text specified\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxtLn\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"Common\",\n                    \"id\": \"2029\",\n                    \"name\": \"LinesOfTextGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Specifies the number of repeating lines of text specified\",\n                \"id\": \"2029\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CA\": {\n        \"abbrName\": \"OrdMassActReq\",\n        \"added\": \"FIX.5.0\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"ordermasshandling\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"OrderMassHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The Order Mass Action Request message can be used to request the suspension or release of a group of orders that match the criteria specified within the request. This is equivalent to individual Order Cancel Replace Requests for each order with or without adding \\\"S\\\" to the ExecInst values. It can also be used for mass order cancellation.\",\n        \"id\": \"112\",\n        \"msgType\": \"CA\",\n        \"name\": \"OrderMassActionRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CA\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CA\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique ID of Order Mass Action Request as assigned by the institution.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ClOrdID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"11\",\n                    \"name\": \"ClOrdID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"282\"\n                },\n                \"description\": \"Unique ID of Order Mass Action Request as assigned by the institution.\",\n                \"id\": \"11\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Specifies the type of action requested\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MassActionType\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"58\",\n                    \"id\": \"1373\",\n                    \"name\": \"MassActionType\",\n                    \"type\": \"MassActionTypeCodeSet\"\n                },\n                \"description\": \"Specifies the type of action requested\",\n                \"id\": \"1373\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Specifies the scope of the action\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MassActionScope\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"58\",\n                    \"id\": \"1374\",\n                    \"name\": \"MassActionScope\",\n                    \"type\": \"MassActionScopeCodeSet\",\n                    \"unionDataType\": \"Reserved100Plus\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"85\"\n                },\n                \"description\": \"Specifies the scope of the action\",\n                \"id\": \"1374\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CB\": {\n        \"abbrName\": \"UserNotifctn\",\n        \"added\": \"FIX.5.0\",\n        \"addedEP\": \"-1\",\n        \"category\": {\n            \"FIXMLFileName\": \"usermanagement\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"UserManagement\",\n            \"section\": \"Infrastructure\"\n        },\n        \"description\": \"The User Notification message is used to notify one or more users of an event or information from the sender of the message. This message is usually sent unsolicited from a marketplace (e.g. Exchange, ECN) to a market participant.\",\n        \"id\": \"113\",\n        \"msgType\": \"CB\",\n        \"name\": \"UserNotification\",\n        \"section\": {\n            \"FIXMLFileName\": \"infrastructure\",\n            \"description\": \"Infrastructure messages for application sequencing, business reject, network and user management\",\n            \"displayOrder\": \"4\",\n            \"name\": \"Infrastructure\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CB\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CB\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Reason for notification - when possible provide an explanation.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"UserStat\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"926\",\n                    \"name\": \"UserStatus\",\n                    \"type\": \"UserStatusCodeSet\"\n                },\n                \"description\": \"Reason for notification - when possible provide an explanation.\",\n                \"id\": \"926\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CC\": {\n        \"abbrName\": \"StrmAsgnReq\",\n        \"added\": \"FIX.5.0SP1\",\n        \"addedEP\": \"93\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketdata\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"In certain markets where market data aggregators fan out to end clients the pricing streams provided by the price makers, the price maker may assign the clients to certain pricing streams that the price maker publishes via the aggregator. An example of this use is in the FX markets where clients may be assigned to different pricing streams based on volume bands and currency pairs.\",\n        \"id\": \"114\",\n        \"msgType\": \"CC\",\n        \"name\": \"StreamAssignmentRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP1\",\n                \"addedEP\": \"93\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CC\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CC\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP1\",\n                \"addedEP\": \"93\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier of the request.\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP1\",\n                    \"addedEP\": \"93\",\n                    \"id\": \"1497\",\n                    \"name\": \"StreamAsgnReqID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier of the request.\",\n                \"id\": \"1497\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP1\",\n                \"addedEP\": \"93\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Type of assignment being requested.\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"AsgnReqTyp\",\n                    \"added\": \"FIX.5.0SP1\",\n                    \"addedEP\": \"93\",\n                    \"id\": \"1498\",\n                    \"name\": \"StreamAsgnReqType\",\n                    \"type\": \"StreamAsgnReqTypeCodeSet\"\n                },\n                \"description\": \"Type of assignment being requested.\",\n                \"id\": \"1498\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP1\",\n                \"addedEP\": \"93\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Assignment requests\"] }],\n                \"data\": {\n                    \"abbrName\": \"Reqs\",\n                    \"added\": \"FIX.5.0SP1\",\n                    \"addedEP\": \"93\",\n                    \"category\": \"MarketData\",\n                    \"id\": \"2148\",\n                    \"name\": \"StrmAsgnReqGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Assignment requests\",\n                \"id\": \"2148\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP1\",\n                \"addedEP\": \"93\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CD\": {\n        \"abbrName\": \"StrmAsgnRpt\",\n        \"added\": \"FIX.5.0SP1\",\n        \"addedEP\": \"93\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketdata\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The StreamAssignmentReport(35=CD) message is in response to the StreamAssignmentRequest(35=CC) message. It provides information back to the aggregator as to which clients to assign to receive which price stream based on requested CCY pair. This message can be sent unsolicited to the Aggregator from the Price Maker.\",\n        \"id\": \"115\",\n        \"msgType\": \"CD\",\n        \"name\": \"StreamAssignmentReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP1\",\n                \"addedEP\": \"93\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CD\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CD\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP1\",\n                \"addedEP\": \"93\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier of the Stream Assignment Report.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP1\",\n                    \"addedEP\": \"93\",\n                    \"id\": \"1501\",\n                    \"name\": \"StreamAsgnRptID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier of the Stream Assignment Report.\",\n                \"id\": \"1501\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP1\",\n                \"addedEP\": \"93\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.Latest\",\n        \"updatedEP\": \"294\"\n    },\n    \"CE\": {\n        \"abbrName\": \"StrmAsgnRptACK\",\n        \"added\": \"FIX.5.0SP1\",\n        \"addedEP\": \"93\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketdata\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"This message is used to respond to the Stream Assignment Report, to either accept or reject an unsolicited assingment.\",\n        \"id\": \"116\",\n        \"msgType\": \"CE\",\n        \"name\": \"StreamAssignmentReportACK\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP1\",\n                \"addedEP\": \"93\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CE\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CE\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP1\",\n                \"addedEP\": \"93\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP1\",\n                    \"addedEP\": \"93\",\n                    \"id\": \"1501\",\n                    \"name\": \"StreamAsgnRptID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1501\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP1\",\n                \"addedEP\": \"93\",\n                \"data\": {\n                    \"abbrName\": \"ActTyp\",\n                    \"added\": \"FIX.5.0SP1\",\n                    \"addedEP\": \"93\",\n                    \"id\": \"1503\",\n                    \"name\": \"StreamAsgnAckType\",\n                    \"type\": \"StreamAsgnAckTypeCodeSet\"\n                },\n                \"id\": \"1503\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP1\",\n                \"addedEP\": \"93\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CF\": {\n        \"abbrName\": \"PtyDetlListReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"105\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyDetailsListRequest is used to request party detail information.\",\n        \"id\": \"117\",\n        \"msgType\": \"CF\",\n        \"name\": \"PartyDetailsListRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CF\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CF\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"105\",\n                    \"id\": \"1505\",\n                    \"name\": \"PartyDetailsListRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1505\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CG\": {\n        \"abbrName\": \"PtyDetlListRpt\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"105\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyDetailsListReport message is used to disseminate party details between counterparties. PartyDetailsListReport messages may be sent in response to a PartyDetailsListRequest message or sent unsolicited.\",\n        \"id\": \"118\",\n        \"msgType\": \"CG\",\n        \"name\": \"PartyDetailsListReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CG\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CG\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"105\",\n                    \"id\": \"1510\",\n                    \"name\": \"PartyDetailsListReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1510\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"146\"\n    },\n    \"CH\": {\n        \"abbrName\": \"MgnReqmtInq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"102\",\n        \"category\": {\n            \"FIXMLFileName\": \"marginrequirement\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"102\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarginRequirementManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The purpose of this message is to initiate a margin requirement inquiry for a margin account. The inquiry may be submitted at the detail level or the summary level. It can also be used to inquire margin excess/deficit or net position information. Margin excess/deficit will provide information about the surplus or shortfall compared to the previous trading day or a more recent margin calculation. An inquiry for net position information will trigger one or more PositionReport messages instead of one or more MarginRequirementReport messages.\\n\\nIf the inquiry is made at the detail level, an Instrument block must be provided with the desired level of detail. If the inquiry is made at the summary level, the Instrument block is not provided, implying a summary request is being made. For example, if the inquiring firm specifies the Security Type of \u201CFUT\u201D in the Instrument block, then a detail report will be generated containing the margin requirements for all futures positions for the inquiring account. Similarly, if the inquiry is made at the summary level, the report will contain the total margin requirement aggregated to the margin account level.\",\n        \"id\": \"119\",\n        \"msgType\": \"CH\",\n        \"name\": \"MarginRequirementInquiry\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CH\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CH\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for this message\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"102\",\n                    \"id\": \"1635\",\n                    \"name\": \"MarginReqmtInqID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this message\",\n                \"id\": \"1635\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Type of margin requirement inquiry\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MgnReqmtInqQual\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"102\",\n                    \"category\": \"MarginRequirementManagement\",\n                    \"id\": \"2176\",\n                    \"name\": \"MarginReqmtInqQualGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Type of margin requirement inquiry\",\n                \"id\": \"2176\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CI\": {\n        \"abbrName\": \"MgnReqmtInqAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"102\",\n        \"category\": {\n            \"FIXMLFileName\": \"marginrequirement\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"102\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarginRequirementManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"Used to respond to a Margin Requirement Inquiry.\",\n        \"id\": \"120\",\n        \"msgType\": \"CI\",\n        \"name\": \"MarginRequirementInquiryAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CI\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CI\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for this message\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"102\",\n                    \"id\": \"1635\",\n                    \"name\": \"MarginReqmtInqID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this message\",\n                \"id\": \"1635\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Status of the Margin Requirement Inquiry referenced by MarginReqmtInqID\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Stat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"102\",\n                    \"id\": \"1640\",\n                    \"name\": \"MarginReqmtInqStatus\",\n                    \"type\": \"CollInquiryStatusCodeSet\"\n                },\n                \"description\": \"Status of the Margin Requirement Inquiry referenced by MarginReqmtInqID\",\n                \"id\": \"1640\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Type of margin requirement inquiry\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MgnReqmtInqQual\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"102\",\n                    \"category\": \"MarginRequirementManagement\",\n                    \"id\": \"2176\",\n                    \"name\": \"MarginReqmtInqQualGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Type of margin requirement inquiry\",\n                \"id\": \"2176\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CJ\": {\n        \"abbrName\": \"MgnReqmtRpt\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"102\",\n        \"category\": {\n            \"FIXMLFileName\": \"marginrequirement\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"102\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarginRequirementManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Margin Requirement Report returns information about margin requirement either as on overview across all margin accounts or on a detailed level due to the inquiry making use of the optional Instrument component block. Application sequencing can be used to re-request a range of reports.\",\n        \"id\": \"121\",\n        \"msgType\": \"CJ\",\n        \"name\": \"MarginRequirementReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CJ\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CJ\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Type of report provided\"] }],\n                \"data\": {\n                    \"abbrName\": \"RptTyp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"102\",\n                    \"id\": \"1638\",\n                    \"name\": \"MarginReqmtRptType\",\n                    \"type\": \"MarginReqmtRptTypeCodeSet\"\n                },\n                \"description\": \"Type of report provided\",\n                \"id\": \"1638\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier for this margin requirement report\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"102\",\n                    \"id\": \"1642\",\n                    \"name\": \"MarginReqmtRptID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this margin requirement report\",\n                \"id\": \"1642\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Margin requirement amounts\"] }],\n                \"data\": {\n                    \"abbrName\": \"MgnAmt\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"102\",\n                    \"category\": \"Common\",\n                    \"id\": \"2177\",\n                    \"name\": \"MarginAmount\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Margin requirement amounts\",\n                \"id\": \"2177\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"102\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CK\": {\n        \"abbrName\": \"PtyDetlListUpd\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"105\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyDetailsListUpdateReport(35=CK) is used to disseminate updates to party detail information.\",\n        \"id\": \"122\",\n        \"msgType\": \"CK\",\n        \"name\": \"PartyDetailsListUpdateReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CK\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CK\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"105\",\n                    \"id\": \"1510\",\n                    \"name\": \"PartyDetailsListReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1510\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"195\"\n    },\n    \"CL\": {\n        \"abbrName\": \"PtyRiskLmtReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"105\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyRiskLimitsRequest message is used to request for risk information for specific parties, specific party roles or specific instruments.\",\n        \"id\": \"123\",\n        \"msgType\": \"CL\",\n        \"name\": \"PartyRiskLimitsRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CL\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CL\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"105\",\n                    \"id\": \"1666\",\n                    \"name\": \"RiskLimitRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1666\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CM\": {\n        \"abbrName\": \"PtyRiskLmtRpt\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"105\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyRiskLimitsReport message is used to communicate party risk limits. The message can either be sent as a response to the PartyRiskLimitsRequest message or can be published unsolicited.\",\n        \"id\": \"124\",\n        \"msgType\": \"CM\",\n        \"name\": \"PartyRiskLimitsReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CM\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CM\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"105\",\n                    \"id\": \"1667\",\n                    \"name\": \"RiskLimitReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1667\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"105\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CN\": {\n        \"abbrName\": \"SecMassStatReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"106\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"id\": \"125\",\n        \"msgType\": \"CN\",\n        \"name\": \"SecurityMassStatusRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"106\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CN\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CN\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"106\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            SubcriptionRequestType indicates to the other party what type of response is expected. A snapshot request only asks for current information. A subscribe request asks for updates as the status changes. Unsubscribe will cancel any future update messages from the counter party.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"SubReqTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"263\",\n                    \"name\": \"SubscriptionRequestType\",\n                    \"type\": \"SubscriptionRequestTypeCodeSet\"\n                },\n                \"description\": \"SubcriptionRequestType indicates to the other party what type of response is expected. A snapshot request only asks for current information. A subscribe request asks for updates as the status changes. Unsubscribe will cancel any future update messages from the counter party.\",\n                \"id\": \"263\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"106\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Must be unique, or the ID of previous Security Mass Status Request to disable if SubscriptionRequestType = Disable previous Snapshot + Updates Request (2).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"StatReqID\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"324\",\n                    \"name\": \"SecurityStatusReqID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"106\"\n                },\n                \"description\": \"Must be unique, or the ID of previous Security Mass Status Request to disable if SubscriptionRequestType = Disable previous Snapshot + Updates Request (2).\",\n                \"id\": \"324\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"106\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CO\": {\n        \"abbrName\": \"SecMassStat\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"106\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"id\": \"126\",\n        \"msgType\": \"CO\",\n        \"name\": \"SecurityMassStatus\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"106\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CO\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CO\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"106\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CQ\": {\n        \"abbrName\": \"AcctSumRpt\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"117\",\n        \"category\": {\n            \"FIXMLFileName\": \"accountreporting\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"117\",\n            \"componentType\": \"Message\",\n            \"description\": \"Account Reporting\",\n            \"includeFile\": \"components\",\n            \"name\": \"AccountReporting\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The AccountSummaryReport is provided by the clearinghouse to its clearing members on a daily basis. It contains margin, settlement, collateral and pay/collect data for each clearing member level account type. Clearing member account types will be described through use of the Parties component and PtysSubGrp sub-component.\\n\\nIn certain usages, the clearing members can send the AccountSummaryReport message to the clearinghouse as needed. For example, clearing members can send this message to the clearinghouse to identify the value of collateral for each customer (to satisfy CFTC Legally Segregated Operationally Commingled (LSOC) regulatory reporting obligations).\\n\\nClearing organizations can also send the AccountSummaryReport message to regulators to meet regulatory reporting obligations. For example, clearing organizations can use this message to submit daily reports for each clearing member (\u201CCM\u201D) by house origin and by each customer origin for all futures, options, and swaps positions, and all securities positions held in a segregated account or pursuant to a cross margining agreement, to a regulator (e.g. to the CFTC to meet Part 39, Section 39.19 reporting obligations).\\n\\nThe Parties component and PtysSubGrp sub-component are used to describe the clearing member number and account type for that report. Net settlement amount or amounts are provided using the SettlementAmountGrp component. Margin requirement amounts are provided using the MarginAmountData component.\\n\\nThe current collateral values for each valid collateral type is provided using the CollateralAmountGrp component. Likewise pay/collect information is provided using the PayCollectGrp component. Margin and pay/collect amounts can optionally be tied to markets and market segments for clearing houses that support multiple markets and market segments.\",\n        \"id\": \"127\",\n        \"msgType\": \"CQ\",\n        \"name\": \"AccountSummaryReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"117\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = CQ\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = CQ\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"117\",\n                \"data\": {\n                    \"abbrName\": \"BizDt\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"715\",\n                    \"name\": \"ClearingBusinessDate\",\n                    \"type\": \"LocalMktDate\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"150\"\n                },\n                \"id\": \"715\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"117\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Used to identify the parties for the account (clearing organization, clearing firm, account type, etc.)\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Pty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1012\",\n                    \"name\": \"Parties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Used to identify the parties for the account (clearing organization, clearing firm, account type, etc.)\",\n                \"id\": \"1012\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"117\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"117\",\n                    \"id\": \"1699\",\n                    \"name\": \"AccountSummaryReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1699\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"162\"\n    },\n    \"CR\": {\n        \"abbrName\": \"PtyRiskLmtUpd\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"128\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyRiskLimitsUpdateReport(35=CR) is used to convey incremental changes to risk limits. It is similar to the regular report but uses the PartyRiskLimitsUpdateGrp component instead of the PartyRiskLimitsGrp component to include an update action.\",\n        \"id\": \"128\",\n        \"msgType\": \"CR\",\n        \"name\": \"PartyRiskLimitsUpdateReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"128\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=CR\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=CR\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"128\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"105\",\n                    \"id\": \"1667\",\n                    \"name\": \"RiskLimitReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1667\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"128\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"195\"\n    },\n    \"CS\": {\n        \"abbrName\": \"PtyRiskLmtDefReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"128\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"PartyRiskLimitDefinitionRequest is used for defining new risk limits.\",\n        \"id\": \"129\",\n        \"msgType\": \"CS\",\n        \"name\": \"PartyRiskLimitsDefinitionRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"128\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=CS\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=CS\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"128\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"105\",\n                    \"id\": \"1666\",\n                    \"name\": \"RiskLimitRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1666\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"128\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CT\": {\n        \"abbrName\": \"PtyRiskLmtDefReqAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"128\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"PartyRiskLimitDefinitionRequestAck is used for accepting (with or without changes) or rejecting the definition of risk limits.\",\n        \"id\": \"130\",\n        \"msgType\": \"CT\",\n        \"name\": \"PartyRiskLimitsDefinitionRequestAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"128\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=CT\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=CT\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"128\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"105\",\n                    \"id\": \"1666\",\n                    \"name\": \"RiskLimitRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1666\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"128\",\n                \"data\": {\n                    \"abbrName\": \"ReqStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"128\",\n                    \"id\": \"1762\",\n                    \"name\": \"RiskLimitRequestStatus\",\n                    \"type\": \"PartyDetailRequestStatusCodeSet\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"146\"\n                },\n                \"id\": \"1762\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"128\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CU\": {\n        \"abbrName\": \"PtyEntlmntReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"129\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyEntitlementsRequest message is used to request for entitlement information for one or more party(-ies), specific party role(s), or specific instruments(s).\",\n        \"id\": \"131\",\n        \"msgType\": \"CU\",\n        \"name\": \"PartyEntitlementsRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"129\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=CU\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=CU\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"129\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CV\": {\n        \"abbrName\": \"PtyEntlmntRpt\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"129\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyEntitlementsReport is used to report entitlements for one or more parties, party role(s), or specific instrument(s).\",\n        \"id\": \"132\",\n        \"msgType\": \"CV\",\n        \"name\": \"PartyEntitlementsReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"129\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=CV\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=CV\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"129\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"129\",\n                    \"id\": \"1771\",\n                    \"name\": \"EntitlementReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1771\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"129\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CW\": {\n        \"abbrName\": \"QuotAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"143\",\n        \"category\": {\n            \"FIXMLFileName\": \"quotation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"QuotationNegotiation\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The QuoteAck(35=CW) message is used to acknowledge a Quote(35=S) submittal or request to cancel an individual quote using the QuoteCancel(35=Z) message during a Quote/Negotiation dialog.\\n\\nThe QuoteAck(35=CW) is available for optional use to acknowledge the request to cancel an individual quote (QuoteCancel(35=Z) with QuoteCancelType(298) =5(Cancel specified sinqle quote)).\",\n        \"id\": \"133\",\n        \"msgType\": \"CW\",\n        \"name\": \"QuoteAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"143\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            35=CW\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"35=CW\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"143\",\n                \"data\": {\n                    \"abbrName\": \"QtAckStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"143\",\n                    \"id\": \"1865\",\n                    \"name\": \"QuoteAckStatus\",\n                    \"type\": \"QuoteAckStatusCodeSet\"\n                },\n                \"id\": \"1865\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"143\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CX\": {\n        \"abbrName\": \"PtyDetlDefReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"146\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyDetailsDefinitionRequest(35=CX) is used for defining new parties and modifying or deleting existing parties information, including the relationships between parties.\\n\\nThe recipient of the message responds with a PartyDetailsDefinitionRequestAck(35=CY) to indicate whether the request was accepted or rejected.\",\n        \"id\": \"134\",\n        \"msgType\": \"CX\",\n        \"name\": \"PartyDetailsDefinitionRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=CX\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=CX\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"105\",\n                    \"id\": \"1505\",\n                    \"name\": \"PartyDetailsListRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1505\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Specifies the parties and relationships between parties to be defined, modified, or deleted.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"PtyDetlUpd\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"105\",\n                    \"category\": \"PartiesReferenceData\",\n                    \"id\": \"2182\",\n                    \"name\": \"PartyDetailsUpdateGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Specifies the parties and relationships between parties to be defined, modified, or deleted.\",\n                \"id\": \"2182\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CY\": {\n        \"abbrName\": \"PtyDetlDefReqAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"146\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyDetailsDefinitionRequestAck(35=CY) is used as a response to the PartyDetailsDefinitionRequest(35=CX) message. The request can be accepted (with or without changes) or rejected.\",\n        \"id\": \"135\",\n        \"msgType\": \"CY\",\n        \"name\": \"PartyDetailsDefinitionRequestAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=CY\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=CY\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"105\",\n                    \"id\": \"1505\",\n                    \"name\": \"PartyDetailsListRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1505\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"data\": {\n                    \"abbrName\": \"ReqStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"146\",\n                    \"id\": \"1878\",\n                    \"name\": \"PartyDetailRequestStatus\",\n                    \"type\": \"PartyDetailRequestStatusCodeSet\"\n                },\n                \"id\": \"1878\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"CZ\": {\n        \"abbrName\": \"PtyEntlmntUpd\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"146\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyEntitlementsUpdateReport(35=CZ) is used to convey incremental changes to party entitlements. It is similar to the PartyEntitlementsReport(35=CV). This message uses the PartyEntitlementsUpdateGrp component which includes the ability to specify an update action using ListUpdateAction(1324).\",\n        \"id\": \"136\",\n        \"msgType\": \"CZ\",\n        \"name\": \"PartyEntitlementsUpdateReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=CZ\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=CZ\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"129\",\n                    \"id\": \"1771\",\n                    \"name\": \"EntitlementReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1771\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Specifies the updated entitlements to be enforced for the given party(-ies) and related party(-ies).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"PtyEntlmntUpd\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"146\",\n                    \"category\": \"PartiesReferenceData\",\n                    \"id\": \"2215\",\n                    \"name\": \"PartyEntitlementUpdateGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Specifies the updated entitlements to be enforced for the given party(-ies) and related party(-ies).\",\n                \"id\": \"2215\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"195\"\n    },\n    \"D\": {\n        \"abbrName\": \"Order\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"order\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SingleGeneralOrderHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The new order message type is used by institutions wishing to electronically submit securities and forex orders to a broker for execution.\\n\\nThe New Order message type may also be used by institutions or retail intermediaries wishing to electronically submit Collective Investment Vehicle (CIV) orders to a broker or fund manager for execution.\",\n        \"id\": \"14\",\n        \"msgType\": \"D\",\n        \"name\": \"NewOrderSingle\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = D\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = D\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier of the order as assigned by institution or by the intermediary (CIV term, not a hub/service bureau) with closest association with the investor.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ClOrdID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"11\",\n                    \"name\": \"ClOrdID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"282\"\n                },\n                \"description\": \"Unique identifier of the order as assigned by institution or by the intermediary (CIV term, not a hub/service bureau) with closest association with the investor.\",\n                \"id\": \"11\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"OrdTyp\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"Typ\",\n                    \"id\": \"40\",\n                    \"name\": \"OrdType\",\n                    \"type\": \"OrdTypeCodeSet\"\n                },\n                \"id\": \"40\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Time this order request was initiated/released by the trader, trading system, or intermediary.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Time this order request was initiated/released by the trader, trading system, or intermediary.\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"OrdQty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1011\",\n                    \"name\": \"OrderQtyData\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1011\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"221\"\n            }\n        ]\n    },\n    \"DA\": {\n        \"abbrName\": \"PtyEntlmntDefReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"146\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyEntitlementsDefinitionRequest(35=DA) is used for defining new entitlements, and modifying or deleting existing entitlements for the specified party(-ies).\\n\\nThe PartyEntitlementsDefinitionRequestAck(35=DB) is the response message, used to indicate whether the request was accepted or rejected.\",\n        \"id\": \"137\",\n        \"msgType\": \"DA\",\n        \"name\": \"PartyEntitlementsDefinitionRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DA\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DA\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"129\",\n                    \"id\": \"1770\",\n                    \"name\": \"EntitlementRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1770\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Specifies the entitlements to be defined, modified or deleted for the given party(-ies) and related party(-ies).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"PtyEntlmntUpd\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"146\",\n                    \"category\": \"PartiesReferenceData\",\n                    \"id\": \"2215\",\n                    \"name\": \"PartyEntitlementUpdateGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Specifies the entitlements to be defined, modified or deleted for the given party(-ies) and related party(-ies).\",\n                \"id\": \"2215\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DB\": {\n        \"abbrName\": \"PtyEntlmntDefReqAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"146\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyEntitlementsDefinitionRequestAck(35=DB) is used as a response to the PartyEntitlemensDefinitionRequest(35=DA) to accept (with or without changes) or reject the definition of party entitlements.\",\n        \"id\": \"138\",\n        \"msgType\": \"DB\",\n        \"name\": \"PartyEntitlementsDefinitionRequestAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DB\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DB\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"129\",\n                    \"id\": \"1770\",\n                    \"name\": \"EntitlementRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"1770\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"data\": {\n                    \"abbrName\": \"ReqStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"146\",\n                    \"id\": \"1882\",\n                    \"name\": \"EntitlementRequestStatus\",\n                    \"type\": \"PartyDetailRequestStatusCodeSet\"\n                },\n                \"id\": \"1882\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"146\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DC\": {\n        \"abbrName\": \"TrdMtchRpt\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"150\",\n        \"category\": {\n            \"FIXMLFileName\": \"tradecapture\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"TradeCapture\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The TradeMatchReport(35=DC) message is used by exchanges and ECN\u2019s to report matched trades to central counterparties (CCPs) as an atomic event. The message is used to express the one-to-one, one-to-many and many-to-many matches as well as implied matches in which more complex instruments can match with simpler instruments.\",\n        \"id\": \"139\",\n        \"msgType\": \"DC\",\n        \"name\": \"TradeMatchReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"150\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DC\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DC\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"150\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier common for all trades included in a match event.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MtchID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"880\",\n                    \"name\": \"TrdMatchID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"279\"\n                },\n                \"description\": \"Unique identifier common for all trades included in a match event.\",\n                \"id\": \"880\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"150\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DD\": {\n        \"abbrName\": \"TrdMtchRptAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"150\",\n        \"category\": {\n            \"FIXMLFileName\": \"tradecapture\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"TradeCapture\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The TradeMatchReportAck(35=DD) is used to respond to theTradeMatchReport(35=DC) message. It may be used to report on the status of the request (e.g. accepting the request or rejecting the request).\",\n        \"id\": \"140\",\n        \"msgType\": \"DD\",\n        \"name\": \"TradeMatchReportAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"150\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DD\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DD\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"150\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Identifier of the TradeMatchReport(35=DC) being acknowledged.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MtchID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"880\",\n                    \"name\": \"TrdMatchID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"279\"\n                },\n                \"description\": \"Identifier of the TradeMatchReport(35=DC) being acknowledged.\",\n                \"id\": \"880\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"150\",\n                \"data\": {\n                    \"abbrName\": \"MtchAckStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"150\",\n                    \"id\": \"1896\",\n                    \"name\": \"TradeMatchAckStatus\",\n                    \"type\": \"TradeMatchAckStatusCodeSet\"\n                },\n                \"id\": \"1896\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"150\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DE\": {\n        \"abbrName\": \"PtyRiskLmtRptAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"171\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesreference\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"105\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"PartyRiskLimitsReportAck is an optional message used as a response to the PartyRiskLimitReport(35=CM) or PartyRiskLimitUpdateReport(35=CR) messages to acknowledge or reject those messages.\",\n        \"id\": \"141\",\n        \"msgType\": \"DE\",\n        \"name\": \"PartyRiskLimitsReportAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DE\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DE\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The identifier of the PartyRiskLimitReport(35=CM) or PartyRiskLimitUpdateReport(35=CR) message.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"105\",\n                    \"id\": \"1667\",\n                    \"name\": \"RiskLimitReportID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"The identifier of the PartyRiskLimitReport(35=CM) or PartyRiskLimitUpdateReport(35=CR) message.\",\n                \"id\": \"1667\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"RptStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"171\",\n                    \"id\": \"2316\",\n                    \"name\": \"RiskLimitReportStatus\",\n                    \"type\": \"RiskLimitReportStatusCodeSet\"\n                },\n                \"id\": \"2316\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DF\": {\n        \"abbrName\": \"PtyRiskLmtChkReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"171\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesaction\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"171\",\n            \"componentType\": \"Message\",\n            \"description\": \"The PartiesAction category of messages is a set of messages that are used to take an action on party information as a result of risk management decisions made during the trading day.\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesAction\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"PartyRiskLimitCheckRequest is used to request for approval of credit or risk limit amount intended to be used by a party in a transaction from another party that holds the information.\",\n        \"id\": \"142\",\n        \"msgType\": \"DF\",\n        \"name\": \"PartyRiskLimitCheckRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DE\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DE\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"TransTyp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"171\",\n                    \"id\": \"2320\",\n                    \"name\": \"RiskLimitCheckTransType\",\n                    \"type\": \"RiskLimitCheckTransTypeCodeSet\"\n                },\n                \"id\": \"2320\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"ChkTyp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"171\",\n                    \"id\": \"2321\",\n                    \"name\": \"RiskLimitCheckType\",\n                    \"type\": \"RiskLimitCheckTypeCodeSet\"\n                },\n                \"id\": \"2321\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DG\": {\n        \"abbrName\": \"PtyRiskLmtChkReqAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"171\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesaction\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"171\",\n            \"componentType\": \"Message\",\n            \"description\": \"The PartiesAction category of messages is a set of messages that are used to take an action on party information as a result of risk management decisions made during the trading day.\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesAction\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"PartyRiskLimitCheckRequestAck is used to acknowledge a PartyRiskLimitCheckRequest(35=DF) message and to respond whether the limit check request was approved or not. When used to accept the PartyRiskLimitCheckRequest(35=DF) message the Respondent may also include the limit amount that was approved.\",\n        \"id\": \"143\",\n        \"msgType\": \"DG\",\n        \"name\": \"PartyRiskLimitCheckRequestAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DG\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DG\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Identifies the RiskLimitCheckTransType(2320) this message is responding to as specified in the request message.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TransTyp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"171\",\n                    \"id\": \"2320\",\n                    \"name\": \"RiskLimitCheckTransType\",\n                    \"type\": \"RiskLimitCheckTransTypeCodeSet\"\n                },\n                \"description\": \"Identifies the RiskLimitCheckTransType(2320) this message is responding to as specified in the request message.\",\n                \"id\": \"2320\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Identifies the RiskLimitCheckType(2321) this message is responding to as specified in the request message.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ChkTyp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"171\",\n                    \"id\": \"2321\",\n                    \"name\": \"RiskLimitCheckType\",\n                    \"type\": \"RiskLimitCheckTypeCodeSet\"\n                },\n                \"description\": \"Identifies the RiskLimitCheckType(2321) this message is responding to as specified in the request message.\",\n                \"id\": \"2321\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"ReqStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"171\",\n                    \"id\": \"2325\",\n                    \"name\": \"RiskLimitCheckRequestStatus\",\n                    \"type\": \"RiskLimitCheckRequestStatusCodeSet\"\n                },\n                \"id\": \"2325\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DH\": {\n        \"abbrName\": \"PtyActReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"171\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesaction\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"171\",\n            \"componentType\": \"Message\",\n            \"description\": \"The PartiesAction category of messages is a set of messages that are used to take an action on party information as a result of risk management decisions made during the trading day.\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesAction\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The PartyActionRequest message is used suspend or halt the specified party from further trading activities at the Respondent. The Respondent must respond with a PartyActionReport(35=DI) message.\",\n        \"id\": \"144\",\n        \"msgType\": \"DH\",\n        \"name\": \"PartyActionRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DH\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DH\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Used to specify the trading party on which the action is applied to.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Pty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1012\",\n                    \"name\": \"Parties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Used to specify the trading party on which the action is applied to.\",\n                \"id\": \"1012\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"182\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"ActnReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"171\",\n                    \"id\": \"2328\",\n                    \"name\": \"PartyActionRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"2328\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"ActnTyp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"171\",\n                    \"id\": \"2329\",\n                    \"name\": \"PartyActionType\",\n                    \"type\": \"PartyActionTypeCodeSet\"\n                },\n                \"id\": \"2329\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"182\"\n    },\n    \"DI\": {\n        \"abbrName\": \"PtyActRpt\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"171\",\n        \"category\": {\n            \"FIXMLFileName\": \"partiesaction\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"171\",\n            \"componentType\": \"Message\",\n            \"description\": \"The PartiesAction category of messages is a set of messages that are used to take an action on party information as a result of risk management decisions made during the trading day.\",\n            \"includeFile\": \"components\",\n            \"name\": \"PartiesAction\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"Used to respond to the PartyActionRequest(35=DH) message, indicating whether the request has been received, accepted or rejected. Can also be used in an unsolicited manner to report party actions, e.g. reinstatements after a manual intervention out of band.\",\n        \"id\": \"145\",\n        \"msgType\": \"DI\",\n        \"name\": \"PartyActionReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DI\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DI\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Used to specify the trading party on which the action is applied to. If in response to PartyActionRequest(35=DH) message, this should echo back the values from the request.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Pty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1012\",\n                    \"name\": \"Parties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Used to specify the trading party on which the action is applied to. If in response to PartyActionRequest(35=DH) message, this should echo back the values from the request.\",\n                \"id\": \"1012\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"182\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"ActnTyp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"171\",\n                    \"id\": \"2329\",\n                    \"name\": \"PartyActionType\",\n                    \"type\": \"PartyActionTypeCodeSet\"\n                },\n                \"id\": \"2329\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"ActnRptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"171\",\n                    \"id\": \"2331\",\n                    \"name\": \"PartyActionReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"2331\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"ActnRsp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"171\",\n                    \"id\": \"2332\",\n                    \"name\": \"PartyActionResponse\",\n                    \"type\": \"PartyActionResponseCodeSet\"\n                },\n                \"id\": \"2332\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"171\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"182\"\n    },\n    \"DJ\": {\n        \"abbrName\": \"MassOrder\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"188\",\n        \"category\": {\n            \"FIXMLFileName\": \"ordermasshandling\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"OrderMassHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The MassOrder(35=DJ) message can be used to add, modify or delete multiple unrelated orders with a single message. Apart from clearing related attributes, only the key order attributes for high performance trading are available.\\n\\nThe behavior of individual orders within a MassOrder(35=DJ) may vary depending upon its attributes, e.g. OrdType(40) and TimeInForce(59). Individual orders may be modified or deleted/cancelled with single order messages such as OrderCancelReplaceRequest (35=G) and OrderCancelRequest(35=F). Each of the orders in the MassOrder(35=DJ) are to be treated as stand-alone individual orders.\",\n        \"id\": \"146\",\n        \"msgType\": \"DJ\",\n        \"name\": \"MassOrder\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"188\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DJ\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DJ\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"188\",\n                \"data\": {\n                    \"abbrName\": \"OrderEntry\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"188\",\n                    \"category\": \"OrderMassHandling\",\n                    \"id\": \"2245\",\n                    \"name\": \"OrderEntryGrp\",\n                    \"type\": \"group\"\n                },\n                \"id\": \"2245\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"188\",\n                \"data\": {\n                    \"abbrName\": \"MassOrdReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"188\",\n                    \"id\": \"2423\",\n                    \"name\": \"MassOrderRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"2423\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.Latest\",\n                \"updatedEP\": \"271\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"188\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DK\": {\n        \"abbrName\": \"MassOrderAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"188\",\n        \"category\": {\n            \"FIXMLFileName\": \"ordermasshandling\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"OrderMassHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The mass order acknowledgement message is used to acknowledge the receipt of and the status for a MassOrder(35=DJ) message.\\n\\nThe content of the acknowledgement depends on the setting of the field OrderResponseLevel(2427) in the MassOrder(35=DJ) message. Only the order status is provided and not the immediate executions which would lead to ExecutionReport messages.\",\n        \"id\": \"147\",\n        \"msgType\": \"DK\",\n        \"name\": \"MassOrderAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"188\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DK\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DK\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"188\",\n                \"data\": {\n                    \"abbrName\": \"TrdgCpcty\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"131\",\n                    \"id\": \"1815\",\n                    \"name\": \"TradingCapacity\",\n                    \"type\": \"TradingCapacityCodeSet\"\n                },\n                \"id\": \"1815\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"188\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Message level request status\"] }],\n                \"data\": {\n                    \"abbrName\": \"ReqStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"188\",\n                    \"id\": \"2425\",\n                    \"name\": \"MassOrderRequestStatus\",\n                    \"type\": \"MassOrderRequestStatusCodeSet\"\n                },\n                \"description\": \"Message level request status\",\n                \"id\": \"2425\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"188\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DL\": {\n        \"abbrName\": \"PosXferInstrctn\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"189\",\n        \"category\": {\n            \"FIXMLFileName\": \"positions\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PositionMaintenance\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The PositionTransferInstruction(35=DL) is sent by clearing firms to CCPs to initiate position transfers, or to accept or decline position transfers.\",\n        \"id\": \"148\",\n        \"msgType\": \"DL\",\n        \"name\": \"PositionTransferInstruction\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = DL\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = DL\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Specifies the source of the position transfer, e.g. the transferor.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Pty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1012\",\n                    \"name\": \"Parties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Specifies the source of the position transfer, e.g. the transferor.\",\n                \"id\": \"1012\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.Latest\",\n                \"updatedEP\": \"271\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Specifies the target of the position transfer.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TgtPty\",\n                    \"added\": \"FIX.5.0SP1\",\n                    \"addedEP\": \"85\",\n                    \"category\": \"Common\",\n                    \"id\": \"1063\",\n                    \"name\": \"TargetParties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Specifies the target of the position transfer.\",\n                \"id\": \"1063\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Submitting, cancelling, changing, accepting, and declining a transfer are all considered separate instructions, and each must have a unique ID. Chaining of firm generated IDs is not supported; TransferID(2437) assigned by the CCP must be used when sending an instruction referencing a previously submitted transfer.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"InstID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"189\",\n                    \"id\": \"2436\",\n                    \"name\": \"TransferInstructionID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Submitting, cancelling, changing, accepting, and declining a transfer are all considered separate instructions, and each must have a unique ID. Chaining of firm generated IDs is not supported; TransferID(2437) assigned by the CCP must be used when sending an instruction referencing a previously submitted transfer.\",\n                \"id\": \"2436\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DM\": {\n        \"abbrName\": \"PosXferInstrctnAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"189\",\n        \"category\": {\n            \"FIXMLFileName\": \"positions\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PositionMaintenance\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The PositionTransferInstructionAck(35=DM) is sent by CCPs to clearing firms to acknowledge position transfer instructions, and to report errors processing position transfer instructions.\\n\\nThe PositionTransferInstructionAck(35=DM) is intended to be a technical acknowledgment, not a business level acknowledgment which would instead be provided by the PositionTransferReport(35=DN) message. As such, TransferID(2437), a business level ID assigned by the CCP, need not be assigned when providing a technical acknowledgment to a new or rejected position transfer request.\",\n        \"id\": \"149\",\n        \"msgType\": \"DM\",\n        \"name\": \"PositionTransferInstructionAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DM\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DM\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The identifier of the PositionTransferInstruction(35=DL) this message is responding to.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"InstID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"189\",\n                    \"id\": \"2436\",\n                    \"name\": \"TransferInstructionID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"The identifier of the PositionTransferInstruction(35=DL) this message is responding to.\",\n                \"id\": \"2436\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DN\": {\n        \"abbrName\": \"PosXferRpt\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"189\",\n        \"category\": {\n            \"FIXMLFileName\": \"positions\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"PositionMaintenance\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The PositionTransferReport(35=DN) is sent by CCPs to clearing firms indicating of positions that are to be transferred to the clearing firm, or to report on status of the transfer to the clearing firms involved in the transfer process.\",\n        \"id\": \"150\",\n        \"msgType\": \"DN\",\n        \"name\": \"PositionTransferReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = DN\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = DN\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Specifies the source of the position transfer, e.g. the transferor.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Pty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1012\",\n                    \"name\": \"Parties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Specifies the source of the position transfer, e.g. the transferor.\",\n                \"id\": \"1012\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Specifies the target of the position transfer.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TgtPty\",\n                    \"added\": \"FIX.5.0SP1\",\n                    \"addedEP\": \"85\",\n                    \"category\": \"Common\",\n                    \"id\": \"1063\",\n                    \"name\": \"TargetParties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Specifies the target of the position transfer.\",\n                \"id\": \"1063\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.Latest\",\n                \"updatedEP\": \"271\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"data\": {\n                    \"abbrName\": \"XferID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"189\",\n                    \"id\": \"2437\",\n                    \"name\": \"TransferID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"2437\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"189\",\n                    \"id\": \"2438\",\n                    \"name\": \"TransferReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"2438\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"data\": {\n                    \"abbrName\": \"TransTyp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"189\",\n                    \"id\": \"2439\",\n                    \"name\": \"TransferTransType\",\n                    \"type\": \"TransferTransTypeCodeSet\"\n                },\n                \"id\": \"2439\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"data\": {\n                    \"abbrName\": \"XferStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"189\",\n                    \"id\": \"2442\",\n                    \"name\": \"TransferStatus\",\n                    \"type\": \"TransferStatusCodeSet\"\n                },\n                \"id\": \"2442\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"189\",\n                \"data\": {\n                    \"abbrName\": \"RptTyp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"189\",\n                    \"id\": \"2444\",\n                    \"name\": \"TransferReportType\",\n                    \"type\": \"TransferReportTypeCodeSet\"\n                },\n                \"id\": \"2444\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DO\": {\n        \"abbrName\": \"MDStatsReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"191\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketdata\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The MarketDataStatisticsRequest(35=DO) is used to request for statistical data. The simple form is to use an identifier (MDStatisticID(2475)) assigned by the market place which would denote a pre-defined statistical report. Alternatively, or also in addition, the request can define a number of parameters for the desired statistical information.\\n\\nThe resulting data set can be restricted to a specific market, market segment or pre-defined security list for which a single set of statistics will be returned. It is also possible to specify individual instruments or group of instruments by means of the component blocks Instrument, UndInstrmtGrp and InstrmtLegGrp.\\n\\nFields specified in the request are used as filter criteria to restrict the resulting data returned.\",\n        \"id\": \"151\",\n        \"msgType\": \"DO\",\n        \"name\": \"MarketDataStatisticsRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"191\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DO\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DO\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"191\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Used to subscribe / unsubscribe for market data statistics reports or to request a one-time snapshot of the current information.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"SubReqTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"263\",\n                    \"name\": \"SubscriptionRequestType\",\n                    \"type\": \"SubscriptionRequestTypeCodeSet\"\n                },\n                \"description\": \"Used to subscribe / unsubscribe for market data statistics reports or to request a one-time snapshot of the current information.\",\n                \"id\": \"263\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"191\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Used to specify the parameters for the calculation of statistics.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"StatsReq\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"191\",\n                    \"category\": \"MarketData\",\n                    \"id\": \"2248\",\n                    \"name\": \"MDStatisticReqGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Used to specify the parameters for the calculation of statistics.\",\n                \"id\": \"2248\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.Latest\",\n                \"updatedEP\": \"271\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"191\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique message identifier for the request or the identifier of a previous request when unsubscribing.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"191\",\n                    \"id\": \"2452\",\n                    \"name\": \"MDStatisticReqID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique message identifier for the request or the identifier of a previous request when unsubscribing.\",\n                \"id\": \"2452\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DP\": {\n        \"abbrName\": \"MDStatsRpt\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"191\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketdata\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The MarketDataStatisticsReport(35=DP) is used to provide unsolicited statistical information or in response to a specific request. Each report contains a set of statistics for a single entity which could be a market, a market segment, a security list or an instrument.\",\n        \"id\": \"152\",\n        \"msgType\": \"DP\",\n        \"name\": \"MarketDataStatisticsReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"191\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = DP\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = DP\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"191\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Specifies the resulting statistics information and corresponding statistical parameters.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"StatsRpt\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"191\",\n                    \"category\": \"MarketData\",\n                    \"id\": \"2249\",\n                    \"name\": \"MDStatisticRptGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Specifies the resulting statistics information and corresponding statistical parameters.\",\n                \"id\": \"2249\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"191\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique message identifier for the report.\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"191\",\n                    \"id\": \"2453\",\n                    \"name\": \"MDStatisticRptID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique message identifier for the report.\",\n                \"id\": \"2453\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"191\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DQ\": {\n        \"abbrName\": \"CollRptAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"192\",\n        \"category\": {\n            \"FIXMLFileName\": \"collateral\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"CollateralManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"CollateralReportAck(35=DQ) is used as a response to the CollateralReport(35=BA). It can be used to reject a CollateralReport(35=BA) when the content of the report is invalid based on the business rules of the receiver. The message may also be used to acknowledge receipt of a valid CollateralReport(35=BA).\",\n        \"id\": \"153\",\n        \"msgType\": \"DQ\",\n        \"name\": \"CollateralReportAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"192\",\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"192\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Identifer of the CollateralReport(35=BA) being acknowledged.\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"RptID\", \"added\": \"FIX.4.4\", \"id\": \"908\", \"name\": \"CollRptID\", \"type\": \"String\" },\n                \"description\": \"Identifer of the CollateralReport(35=BA) being acknowledged.\",\n                \"id\": \"908\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"192\",\n                \"data\": {\n                    \"abbrName\": \"RptStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"192\",\n                    \"id\": \"2488\",\n                    \"name\": \"CollRptStatus\",\n                    \"type\": \"CollRptStatusCodeSet\"\n                },\n                \"id\": \"2488\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"192\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DR\": {\n        \"abbrName\": \"MktDataRpt\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"195\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketdata\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The MarketDataReport(35=DR) message is used to provide delimiting references (e.g. start and end markers in a continuous broadcast) and details about the number of market data messages sent in a given distribution cycle.\\n\\nThe message can be used when distributing reference and market data on an ongoing basis to convey start and end points for synchronization. The report contains multiple message counters that are provided at the beginning or end of a cycle.\",\n        \"id\": \"154\",\n        \"msgType\": \"DR\",\n        \"name\": \"MarketDataReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"195\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = DR\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = DR\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"195\",\n                \"data\": {\n                    \"abbrName\": \"MDRptEvent\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"195\",\n                    \"id\": \"2535\",\n                    \"name\": \"MDReportEvent\",\n                    \"type\": \"MDReportEventCodeSet\"\n                },\n                \"id\": \"2535\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"195\",\n                \"data\": {\n                    \"abbrName\": \"MDRptCnt\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"195\",\n                    \"id\": \"2536\",\n                    \"name\": \"MDReportCount\",\n                    \"type\": \"int\"\n                },\n                \"id\": \"2536\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"195\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DS\": {\n        \"abbrName\": \"CrssReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"223\",\n        \"category\": {\n            \"FIXMLFileName\": \"indications\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Indication\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The CrossRequest(35=DS) message is used to indicate the submission of orders or quotes that may result in a crossed trade.\\n\\nRegulatory requirements can allow exchanges to match orders belonging to the same account, firm or other common attribute. This can include the requirement to first announce the intention to cross orders. The time permitted between the announcement and the actual cross is typically well defined and may depend on the maximum quantity announced.\",\n        \"id\": \"155\",\n        \"msgType\": \"DS\",\n        \"name\": \"CrossRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"223\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = DS\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = DS\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"223\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for cross request message.\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"CrssReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"223\",\n                    \"id\": \"2672\",\n                    \"name\": \"CrossRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for cross request message.\",\n                \"id\": \"2672\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"223\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"223\",\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DT\": {\n        \"abbrName\": \"CrssReqAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"223\",\n        \"category\": {\n            \"FIXMLFileName\": \"indications\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Indication\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The CrossRequestAck(35=DT) message is used to confirm the receipt of a CrossRequest(35=DS) message.\",\n        \"id\": \"156\",\n        \"msgType\": \"DT\",\n        \"name\": \"CrossRequestAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"223\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = DT\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = DT\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"223\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier for the cross request message being confirmed.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"CrssReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"223\",\n                    \"id\": \"2672\",\n                    \"name\": \"CrossRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for the cross request message being confirmed.\",\n                \"id\": \"2672\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"223\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"223\",\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DU\": {\n        \"abbrName\": \"AllocInstrAlertReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"239\",\n        \"category\": {\n            \"FIXMLFileName\": \"allocation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Allocation\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"This message is used in a clearinghouse 3-party allocation model to request for AllocationInstructionAlert(35=BM) from the clearinghouse. The request may be used to obtain a one-time notification of the status of an allocation group.\",\n        \"id\": \"157\",\n        \"msgType\": \"DU\",\n        \"name\": \"AllocationInstructionAlertRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"239\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType(35)=DU\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType(35)=DU\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"239\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DV\": {\n        \"abbrName\": \"AllocInstrctnAlertReqAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"241\",\n        \"category\": {\n            \"FIXMLFileName\": \"allocation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Allocation\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"This message is used in a clearinghouse 3-party allocation model to acknowledge a AllocationInstructionAlertRequest(35=DU) message for an AllocationInstructionAlert(35=BM) message from the clearinghouse.\",\n        \"id\": \"158\",\n        \"msgType\": \"DV\",\n        \"name\": \"AllocationInstructionAlertRequestAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"241\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DV\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DV\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"241\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Used when responding to an AllocationInstructionAlertRequest(35=DU).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"239\",\n                    \"id\": \"2758\",\n                    \"name\": \"AllocRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Used when responding to an AllocationInstructionAlertRequest(35=DU).\",\n                \"id\": \"2758\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"241\",\n                \"data\": {\n                    \"abbrName\": \"ReqStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"241\",\n                    \"id\": \"2768\",\n                    \"name\": \"AllocRequestStatus\",\n                    \"type\": \"AllocRequestStatusCodeSet\"\n                },\n                \"id\": \"2768\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"241\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DW\": {\n        \"abbrName\": \"TrdAggrtnReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"247\",\n        \"category\": {\n            \"FIXMLFileName\": \"trademanagement\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"247\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"TradeManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"TradeAggregationRequest(35=DW) is used to request that the identified trades between the initiator and respondent be aggregated together for further processing.\",\n        \"id\": \"159\",\n        \"msgType\": \"DW\",\n        \"name\": \"TradeAggregationRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"247\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DW\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DW\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"247\",\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"247\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for the message.\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"247\",\n                    \"id\": \"2786\",\n                    \"name\": \"TradeAggregationRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for the message.\",\n                \"id\": \"2786\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"247\",\n                \"data\": {\n                    \"abbrName\": \"TransTyp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"247\",\n                    \"id\": \"2788\",\n                    \"name\": \"TradeAggregationTransType\",\n                    \"type\": \"TradeAggregationTransTypeCodeSet\"\n                },\n                \"id\": \"2788\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"247\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"247\",\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DX\": {\n        \"abbrName\": \"TrdAggrtnRpt\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"247\",\n        \"category\": {\n            \"FIXMLFileName\": \"trademanagement\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"247\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"TradeManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"TradeAggregationReport(35=DX) is used to respond to the TradeAggregationRequest(35=DW) message. It provides the status of the request (e.g. accepted or rejected) and may also provide additional information supplied by the respondent.\",\n        \"id\": \"160\",\n        \"msgType\": \"DX\",\n        \"name\": \"TradeAggregationReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"247\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DX\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DX\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"247\",\n                \"data\": {\n                    \"abbrName\": \"ReqStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"247\",\n                    \"id\": \"2790\",\n                    \"name\": \"TradeAggregationRequestStatus\",\n                    \"type\": \"TradeAggregationRequestStatusCodeSet\"\n                },\n                \"id\": \"2790\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"247\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for the report message.\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"247\",\n                    \"id\": \"2792\",\n                    \"name\": \"TradeAggregationReportID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for the report message.\",\n                \"id\": \"2792\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"247\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DY\": {\n        \"abbrName\": \"PayMgmtReq\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"249\",\n        \"category\": {\n            \"FIXMLFileName\": \"paymgt\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"249\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to initiate and confirm expected or future payments to be made or received related to servicing of contracts or transactions after trade settlement. These messages are not intended to instruct or initiate remittance of funds transfers with banks.\",\n            \"includeFile\": \"components\",\n            \"name\": \"PayManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"PayManagementRequest(35=DY) message is used to communicate a future or expected payment to be made or received related to a trade or contract after its settlement.\\n\\nIt should be noted that this message, in the context of operational communication between investment managers and their brokers, is intended to agree and confirm on payment(s) to be made or received during the life of a contract.\",\n        \"id\": \"163\",\n        \"msgType\": \"DY\",\n        \"name\": \"PayManagementRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=DY\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=DY\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"TxnTyp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"249\",\n                    \"id\": \"2811\",\n                    \"name\": \"PayRequestTransType\",\n                    \"type\": \"PayRequestTransTypeCodeSet\"\n                },\n                \"id\": \"2811\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"249\",\n                    \"id\": \"2812\",\n                    \"name\": \"PayRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"2812\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"PostTrdPmt\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"249\",\n                    \"category\": \"PayManagement\",\n                    \"id\": \"2265\",\n                    \"name\": \"PostTradePayment\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"2265\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"DZ\": {\n        \"abbrName\": \"PayMgmtReqAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"249\",\n        \"category\": {\n            \"FIXMLFileName\": \"paymgt\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"249\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to initiate and confirm expected or future payments to be made or received related to servicing of contracts or transactions after trade settlement. These messages are not intended to instruct or initiate remittance of funds transfers with banks.\",\n            \"includeFile\": \"components\",\n            \"name\": \"PayManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"PayManagementRequestAck(35=DZ) is used to acknowledge the receipt of the PayManagementRequest(35=DY) message (i.e. a technical acknowledgement of receipt). Acceptance or rejection of the request is reported in the corresponding PayManagementReport(35=EA).\",\n        \"id\": \"164\",\n        \"msgType\": \"DZ\",\n        \"name\": \"PayManagementRequestAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgTyp=DZ\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgTyp=DZ\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"249\",\n                    \"id\": \"2812\",\n                    \"name\": \"PayRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"2812\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Only PayRequestStatus(2813)=0 (Received) is applicable in this message.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ReqStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"249\",\n                    \"id\": \"2813\",\n                    \"name\": \"PayRequestStatus\",\n                    \"type\": \"PayRequestStatusCodeSet\"\n                },\n                \"description\": \"Only PayRequestStatus(2813)=0 (Received) is applicable in this message.\",\n                \"id\": \"2813\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.Latest\",\n                \"updatedEP\": \"282\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"E\": {\n        \"abbrName\": \"NewOrdList\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"listorders\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"ProgramTrading\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The NewOrderList Message can be used in one of two ways depending on which market conventions are being followed.\",\n        \"id\": \"15\",\n        \"msgType\": \"E\",\n        \"name\": \"NewOrderList\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = E\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = E\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Must be unique, by customer, for the day\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ListID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"ProgramTrading\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"66\",\n                    \"name\": \"ListID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Must be unique, by customer, for the day\",\n                \"id\": \"66\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Used to support fragmentation. Sum of NoOrders across all messages with the same ListID.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TotNoOrds\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"68\",\n                    \"name\": \"TotNoOrders\",\n                    \"type\": \"int\"\n                },\n                \"description\": \"Used to support fragmentation. Sum of NoOrders across all messages with the same ListID.\",\n                \"id\": \"68\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            e.g. Non Disclosed Model, Disclosed Model, No Bidding Process\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"BidTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"394\",\n                    \"name\": \"BidType\",\n                    \"type\": \"BidTypeCodeSet\"\n                },\n                \"description\": \"e.g. Non Disclosed Model, Disclosed Model, No Bidding Process\",\n                \"id\": \"394\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Number of orders in this message (number of repeating groups to follow)\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Ord\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"ProgramTrading\",\n                    \"componentRef\": [\n                        {\n                            \"abbrName\": \"Instrmt\",\n                            \"added\": \"FIX.4.3\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                                    ]\n                                }\n                            ],\n                            \"category\": \"Common\",\n                            \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                            \"id\": \"1003\",\n                            \"name\": \"Instrument\",\n                            \"presence\": \"required\"\n                        },\n                        {\n                            \"abbrName\": \"OrdQty\",\n                            \"added\": \"FIX.4.3\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Insert here the set of \\\"OrderQtyData\\\" fields defined in \\\"Common Components of Application Messages\\\"\"\n                                    ]\n                                }\n                            ],\n                            \"category\": \"Common\",\n                            \"description\": \"Insert here the set of \\\"OrderQtyData\\\" fields defined in \\\"Common Components of Application Messages\\\"\",\n                            \"id\": \"1011\",\n                            \"name\": \"OrderQtyData\",\n                            \"presence\": \"required\"\n                        }\n                    ],\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"ClOrdID\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Must be the first field in the repeating group.\"\n                                    ]\n                                }\n                            ],\n                            \"baseCategory\": \"SingleGeneralOrderHandling\",\n                            \"baseCategoryAbbrName\": \"ID\",\n                            \"description\": \"Must be the first field in the repeating group.\",\n                            \"id\": \"11\",\n                            \"name\": \"ClOrdID\",\n                            \"presence\": \"required\",\n                            \"type\": \"String\",\n                            \"updated\": \"FIX.Latest\",\n                            \"updatedEP\": \"282\"\n                        },\n                        {\n                            \"abbrName\": \"ListSeqNo\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                { \"documentation\": [\"\\n                        Order number within the list\"] }\n                            ],\n                            \"baseCategory\": \"ProgramTrading\",\n                            \"baseCategoryAbbrName\": \"SeqNo\",\n                            \"description\": \"Order number within the list\",\n                            \"id\": \"67\",\n                            \"name\": \"ListSeqNo\",\n                            \"presence\": \"required\",\n                            \"type\": \"int\"\n                        },\n                        {\n                            \"abbrName\": \"Side\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Note: to indicate the side of SideValue1 or SideValue2, specify Side=Undisclosed and SideValueInd=either the SideValue1 or SideValue2 indicator.\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"Note: to indicate the side of SideValue1 or SideValue2, specify Side=Undisclosed and SideValueInd=either the SideValue1 or SideValue2 indicator.\",\n                            \"id\": \"54\",\n                            \"name\": \"Side\",\n                            \"presence\": \"required\",\n                            \"type\": \"SideCodeSet\"\n                        }\n                    ],\n                    \"id\": \"2030\",\n                    \"name\": \"ListOrdGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Number of orders in this message (number of repeating groups to follow)\",\n                \"id\": \"2030\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EA\": {\n        \"abbrName\": \"PayMgmtRpt\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"249\",\n        \"category\": {\n            \"FIXMLFileName\": \"paymgt\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"249\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to initiate and confirm expected or future payments to be made or received related to servicing of contracts or transactions after trade settlement. These messages are not intended to instruct or initiate remittance of funds transfers with banks.\",\n            \"includeFile\": \"components\",\n            \"name\": \"PayManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"PayManagementReport(35=EA) may be used to respond to the PayManagementRequest(35=DY) message. It provides the status of the request (e.g. accepted, disputed) and may provide additional information related to the request.\\n\\nPayManagementReport(35=EA) may also be sent unsolicited by the broker to a client. In which case the client may acknowledge and resolve disputes out-of-band or with a simple PayManagementReportAck(35=EB).\\n\\nPayManagementReport(35=EA) may also be sent unsolicited to report the progress status of the payment itself with PayReportTransType(2804)=2 (Status).\\n\\nIt should be noted that this message, in the context of operational communication between investment managers and their brokers, is intended to agree and confirm on payment(s) to be made or received during the life of a contract.\",\n        \"id\": \"161\",\n        \"msgType\": \"EA\",\n        \"name\": \"PayManagementReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType=EA\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType=EA\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"249\",\n                    \"id\": \"2799\",\n                    \"name\": \"PayReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"2799\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"TxnTyp\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"249\",\n                    \"id\": \"2804\",\n                    \"name\": \"PayReportTransType\",\n                    \"type\": \"PayReportTransTypeCodeSet\"\n                },\n                \"id\": \"2804\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"PostTrdPmt\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"249\",\n                    \"category\": \"PayManagement\",\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"Typ\",\n                            \"added\": \"FIX.5.0SP2\",\n                            \"addedEP\": \"249\",\n                            \"id\": \"2824\",\n                            \"name\": \"PostTradePaymentType\",\n                            \"presence\": \"required\",\n                            \"type\": \"String\"\n                        },\n                        {\n                            \"abbrName\": \"Amt\",\n                            \"added\": \"FIX.5.0SP2\",\n                            \"addedEP\": \"249\",\n                            \"id\": \"2817\",\n                            \"name\": \"PostTradePaymentAmount\",\n                            \"presence\": \"required\",\n                            \"type\": \"Amt\"\n                        },\n                        {\n                            \"abbrName\": \"CalcDt\",\n                            \"added\": \"FIX.5.0SP2\",\n                            \"addedEP\": \"249\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        The date payment calculations are made. This may be earlier than the date in ClearingBusinessDate(715).\",\n                                        \"\\n                        When the report is sent unsolicited, this is the payment calculation date as determined by report sender.\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"The date payment calculations are made. This may be earlier than the date in ClearingBusinessDate(715).\\n\\n\\n                        When the report is sent unsolicited, this is the payment calculation date as determined by report sender.\",\n                            \"id\": \"2825\",\n                            \"name\": \"PostTradePaymentCalculationDate\",\n                            \"presence\": \"required\",\n                            \"type\": \"LocalMktDate\"\n                        },\n                        {\n                            \"abbrName\": \"ValuDt\",\n                            \"added\": \"FIX.5.0SP2\",\n                            \"addedEP\": \"249\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        The date the payment is legally confirmed to settle.\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"The date the payment is legally confirmed to settle.\",\n                            \"id\": \"2826\",\n                            \"name\": \"PostTradePaymentValueDate\",\n                            \"presence\": \"required\",\n                            \"type\": \"LocalMktDate\"\n                        },\n                        {\n                            \"abbrName\": \"DbtCrd\",\n                            \"added\": \"FIX.5.0SP2\",\n                            \"addedEP\": \"249\",\n                            \"id\": \"2819\",\n                            \"name\": \"PostTradePaymentDebitOrCredit\",\n                            \"presence\": \"required\",\n                            \"type\": \"PostTradePaymentDebitOrCreditCodeSet\"\n                        },\n                        {\n                            \"abbrName\": \"Acct\",\n                            \"added\": \"FIX.5.0SP2\",\n                            \"addedEP\": \"249\",\n                            \"id\": \"2816\",\n                            \"name\": \"PostTradePaymentAccount\",\n                            \"presence\": \"required\",\n                            \"type\": \"String\"\n                        }\n                    ],\n                    \"id\": \"2265\",\n                    \"name\": \"PostTradePayment\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"2265\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EB\": {\n        \"abbrName\": \"PayMgmtRptAck\",\n        \"added\": \"FIX.5.0SP2\",\n        \"addedEP\": \"249\",\n        \"category\": {\n            \"FIXMLFileName\": \"paymgt\",\n            \"added\": \"FIX.5.0SP2\",\n            \"addedEP\": \"249\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to initiate and confirm expected or future payments to be made or received related to servicing of contracts or transactions after trade settlement. These messages are not intended to instruct or initiate remittance of funds transfers with banks.\",\n            \"includeFile\": \"components\",\n            \"name\": \"PayManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"PayManagementReportAck(35=EB) is used as a response to the PayManagementReport(35=EA) message. It may be used to accept, reject or dispute the details of the PayManagementReport(35=EA) depending on the business rules of the receiver. This message may also be used to acknowledge the receipt of a PayManagementReport(35=EA) message.\",\n        \"id\": \"162\",\n        \"msgType\": \"EB\",\n        \"name\": \"PayManagementReportAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"249\",\n                    \"id\": \"2799\",\n                    \"name\": \"PayReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"2799\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"RptStat\",\n                    \"added\": \"FIX.5.0SP2\",\n                    \"addedEP\": \"249\",\n                    \"id\": \"2806\",\n                    \"name\": \"PayReportStatus\",\n                    \"type\": \"PayReportStatusCodeSet\"\n                },\n                \"id\": \"2806\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0SP2\",\n                \"addedEP\": \"249\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EC\": {\n        \"abbrName\": \"SettlStatReq\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"281\",\n        \"category\": {\n            \"FIXMLFileName\": \"settlstatmgmt\",\n            \"added\": \"FIX.Latest\",\n            \"addedEP\": \"281\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to request for or communicate securities settlement status once the settlement process has been initiated via existing industry norms. These messages are not intended to instruct or initiate securities settlement process.\",\n            \"includeFile\": \"components\",\n            \"name\": \"SettlementStatusManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"SettlementStatusRequest(35=EC) is used to request for the settlement status of a trade.\\n\\nWhere possible a trade reference or identifier should be provided, and if it is not possible it is recommended that as much of the trade details are provided in the request as possible. The trade details provided are not intended to serve as filter criteria but look-up criteria.\",\n        \"id\": \"165\",\n        \"msgType\": \"EC\",\n        \"name\": \"SettlementStatusRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType(35)=EC\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType(35)=EC\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"data\": {\n                    \"abbrName\": \"SubReqTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"263\",\n                    \"name\": \"SubscriptionRequestType\",\n                    \"type\": \"SubscriptionRequestTypeCodeSet\"\n                },\n                \"id\": \"263\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier assigned by sender of this message.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"281\",\n                    \"id\": \"2965\",\n                    \"name\": \"SettlStatusRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier assigned by sender of this message.\",\n                \"id\": \"2965\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"ED\": {\n        \"abbrName\": \"SettlStatReqAck\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"281\",\n        \"category\": {\n            \"FIXMLFileName\": \"settlstatmgmt\",\n            \"added\": \"FIX.Latest\",\n            \"addedEP\": \"281\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to request for or communicate securities settlement status once the settlement process has been initiated via existing industry norms. These messages are not intended to instruct or initiate securities settlement process.\",\n            \"includeFile\": \"components\",\n            \"name\": \"SettlementStatusManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"SettlementStatusRequestAck(35=ED) is used to respond to the SettlementStatusRequest(35=EC) to acknowledge the request and provide status for the request message.\\n\\nThis message is not used for communicating settlement status of a trade (see SettlementStatusReport(35=EE)); simply a status of the request message itself.\",\n        \"id\": \"166\",\n        \"msgType\": \"ED\",\n        \"name\": \"SettlementStatusRequestAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType(35)=ED\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType(35)=ED\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Identifier of SettlementStatusRequest(35=EC) message being responded to.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"281\",\n                    \"id\": \"2965\",\n                    \"name\": \"SettlStatusRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Identifier of SettlementStatusRequest(35=EC) message being responded to.\",\n                \"id\": \"2965\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"data\": {\n                    \"abbrName\": \"ReqStat\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"281\",\n                    \"id\": \"2966\",\n                    \"name\": \"SettlStatusRequestStatus\",\n                    \"type\": \"SettlStatusRequestStatusCodeSet\"\n                },\n                \"id\": \"2966\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EE\": {\n        \"abbrName\": \"SettlStatRpt\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"281\",\n        \"category\": {\n            \"FIXMLFileName\": \"settlstatmgmt\",\n            \"added\": \"FIX.Latest\",\n            \"addedEP\": \"281\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to request for or communicate securities settlement status once the settlement process has been initiated via existing industry norms. These messages are not intended to instruct or initiate securities settlement process.\",\n            \"includeFile\": \"components\",\n            \"name\": \"SettlementStatusManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"SettlementStatusReport(35=EE) is a response to the SettlementStatusRequest(35=EC) to provide settlement status for the requested trade. It may also be sent unsolicited without an explicit request message by the party able to provide the settlement status for the trade identified in the report message.\",\n        \"id\": \"167\",\n        \"msgType\": \"EE\",\n        \"name\": \"SettlementStatusReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType(35)=EE\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType(35)=EE\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier assigned by sender of this message.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"281\",\n                    \"id\": \"2967\",\n                    \"name\": \"SettlStatusReportID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier assigned by sender of this message.\",\n                \"id\": \"2967\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"data\": {\n                    \"abbrName\": \"SettlStat\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"281\",\n                    \"id\": \"2968\",\n                    \"name\": \"SettlStatus\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"2968\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EF\": {\n        \"abbrName\": \"SettlStatRptAck\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"281\",\n        \"category\": {\n            \"FIXMLFileName\": \"settlstatmgmt\",\n            \"added\": \"FIX.Latest\",\n            \"addedEP\": \"281\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to request for or communicate securities settlement status once the settlement process has been initiated via existing industry norms. These messages are not intended to instruct or initiate securities settlement process.\",\n            \"includeFile\": \"components\",\n            \"name\": \"SettlementStatusManagement\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"SettlementStatusReportAck(35=EF) is used to respond to the SettlementStatusReport(35=EE) to acknowledge or reject the report.\",\n        \"id\": \"168\",\n        \"msgType\": \"EF\",\n        \"name\": \"SettlementStatusReportAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType(35)=EF\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType(35)=EF\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Identifier of SettlementStatusReport(35=EE) message being responded to.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"281\",\n                    \"id\": \"2967\",\n                    \"name\": \"SettlStatusReportID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Identifier of SettlementStatusReport(35=EE) message being responded to.\",\n                \"id\": \"2967\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"281\",\n                \"data\": {\n                    \"abbrName\": \"Stat\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"281\",\n                    \"id\": \"2973\",\n                    \"name\": \"SettlStatusReportStatus\",\n                    \"type\": \"SettlStatusReportStatusCodeSet\"\n                },\n                \"id\": \"2973\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EG\": {\n        \"abbrName\": \"SecRiskMtrcsRpt\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"288\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"SecurityRiskMetricsReport(35=EG) is used for publishing the risk metrics, valuation metrics or analytics of one or more securities, or for an option series.\",\n        \"id\": \"169\",\n        \"msgType\": \"EG\",\n        \"name\": \"SecurityRiskMetricsReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"288\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType(35)=EG\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType(35)=EG\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"288\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"288\",\n                    \"id\": \"2988\",\n                    \"name\": \"SecurityRiskMetricsReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"2988\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"288\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EH\": {\n        \"abbrName\": \"AlgoCertReq\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"292\",\n        \"category\": {\n            \"FIXMLFileName\": \"testing\",\n            \"added\": \"FIX.Latest\",\n            \"addedEP\": \"292\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to request for or communicate information related to testing, e.g. algorithmic trading and related testing.\\n\\nAlgorithmic trading is subject to regulatory requirements in many jurisdictions, e.g. in Europe as defined by MiFIR. Investment firms engaged in algorithmic trading with venues may be required to certify their algos and provide the certificate information to the venue. This includes the provision of detailed information related to the algorithm and how it has been tested. The messages in this category support such certification and also interaction between algo systems and test systems both for testing and certification.\\nThe messages may also be used internally to exchange and update information on algos and test suites that will eventually be certified internally by the authorized person and subsequently provided to the venues.\",\n            \"name\": \"Testing\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"AlgoCertificateRequest(35=EH) is used to request algo testing certificate information for one or more algorithms.\\n\\nThis message may be used by venues to request algo test certificates from their participants using participant and algo identifiers as the request key. Absence of an identifier for an algorithm represents a request to obtain all active certificates for all algorithms from the participant.\\n\\n\\nThis message may also be used by clients of algo trading firms to request the certified algos they are eligible to use.\",\n        \"id\": \"170\",\n        \"msgType\": \"EH\",\n        \"name\": \"AlgoCertificateRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"MsgType = EH\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = EH\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\" Unique identifier assigned by request initiator.\"] }],\n                \"data\": {\n                    \"abbrName\": \"CertReqID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3014\",\n                    \"name\": \"AlgoCertificateRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier assigned by request initiator.\",\n                \"id\": \"3014\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"TxnTyp\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3016\",\n                    \"name\": \"AlgoCertificateRequestTransType\",\n                    \"type\": \"AlgoCertificateRequestTransTypeCodeSet\"\n                },\n                \"id\": \"3016\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"295\",\n                \"data\": {\n                    \"abbrName\": \"ReqTyp\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"295\",\n                    \"id\": \"3077\",\n                    \"name\": \"AlgoCertificateRequestType\",\n                    \"type\": \"AlgoCertificateRequestTypeCodeSet\"\n                },\n                \"id\": \"3077\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.Latest\",\n        \"updatedEP\": \"295\"\n    },\n    \"EI\": {\n        \"abbrName\": \"AlgoCertReqAck\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"292\",\n        \"category\": {\n            \"FIXMLFileName\": \"testing\",\n            \"added\": \"FIX.Latest\",\n            \"addedEP\": \"292\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to request for or communicate information related to testing, e.g. algorithmic trading and related testing.\\n\\nAlgorithmic trading is subject to regulatory requirements in many jurisdictions, e.g. in Europe as defined by MiFIR. Investment firms engaged in algorithmic trading with venues may be required to certify their algos and provide the certificate information to the venue. This includes the provision of detailed information related to the algorithm and how it has been tested. The messages in this category support such certification and also interaction between algo systems and test systems both for testing and certification.\\nThe messages may also be used internally to exchange and update information on algos and test suites that will eventually be certified internally by the authorized person and subsequently provided to the venues.\",\n            \"name\": \"Testing\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"AlgoCertificateRequestAck(35=EI) is used to respond to the AlgoCertificateRequest(35=EH) to acknowledge the request and provide status for the request message.\\n\\nThis message is not used for communicating test certificates of algorithms (see AlgoCertificateReport(35=EJ)); simply a status of the request message itself.\",\n        \"id\": \"171\",\n        \"msgType\": \"EI\",\n        \"name\": \"AlgoCertificateRequestAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"MsgType = EI\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = EI\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"Identifier of request assigned by request initiator.\"] }],\n                \"data\": {\n                    \"abbrName\": \"CertReqID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3014\",\n                    \"name\": \"AlgoCertificateRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Identifier of request assigned by request initiator.\",\n                \"id\": \"3014\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"ReqStat\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3017\",\n                    \"name\": \"AlgoCertificateRequestStatus\",\n                    \"type\": \"AlgoCertificateRequestStatusCodeSet\"\n                },\n                \"id\": \"3017\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"295\",\n                \"data\": {\n                    \"abbrName\": \"ReqTyp\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"295\",\n                    \"id\": \"3077\",\n                    \"name\": \"AlgoCertificateRequestType\",\n                    \"type\": \"AlgoCertificateRequestTypeCodeSet\"\n                },\n                \"id\": \"3077\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EJ\": {\n        \"abbrName\": \"AlgoCertRpt\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"292\",\n        \"category\": {\n            \"FIXMLFileName\": \"testing\",\n            \"added\": \"FIX.Latest\",\n            \"addedEP\": \"292\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to request for or communicate information related to testing, e.g. algorithmic trading and related testing.\\n\\nAlgorithmic trading is subject to regulatory requirements in many jurisdictions, e.g. in Europe as defined by MiFIR. Investment firms engaged in algorithmic trading with venues may be required to certify their algos and provide the certificate information to the venue. This includes the provision of detailed information related to the algorithm and how it has been tested. The messages in this category support such certification and also interaction between algo systems and test systems both for testing and certification.\\nThe messages may also be used internally to exchange and update information on algos and test suites that will eventually be certified internally by the authorized person and subsequently provided to the venues.\",\n            \"name\": \"Testing\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"AlgoCertificateReport(35=EJ) is a response to the AlgoCertificateRequest(35=EH) to certify an algo. It may also be sent unsolicited without an explicit request message by the party able to provide certificate information for the algo identified in the report message.\\n\\nAlgoCertificateReport(35=EJ) is for a single algorithm. A new certificate is created by the trading firm in a draft status and requires approval from a natural person who is authorized to approve certification. The final state is reached when the certificate has been successfully submitted to the venue. Timestamps may be associated with the state changes, specifically date and time of the latest change, the approval and when the certificate is to become effective.\",\n        \"id\": \"172\",\n        \"msgType\": \"EJ\",\n        \"name\": \"AlgoCertificateReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"MsgType = EJ\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = EJ\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"LastUpdateTm\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"779\",\n                    \"name\": \"LastUpdateTime\",\n                    \"type\": \"UTCTimestamp\"\n                },\n                \"id\": \"779\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"Required to specify the algo for which a certification is reported and the firm using it. Requires the authorized person for AlgoCertificateStatus(3022)=1 (Approved) or 2 (Submitted).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Pty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1012\",\n                    \"name\": \"Parties\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Required to specify the algo for which a certification is reported and the firm using it. Requires the authorized person for AlgoCertificateStatus(3022)=1 (Approved) or 2 (Submitted).\",\n                \"id\": \"1012\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"CertID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3012\",\n                    \"name\": \"AlgoCertificateID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"3012\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"Unique identifier assigned by sender of this message.\"] }],\n                \"data\": {\n                    \"abbrName\": \"CertRptID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3018\",\n                    \"name\": \"AlgoCertificateReportID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier assigned by sender of this message.\",\n                \"id\": \"3018\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"TxnTyp\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3020\",\n                    \"name\": \"AlgoCertificateReportTransType\",\n                    \"type\": \"AlgoCertificateReportTransTypeCodeSet\"\n                },\n                \"id\": \"3020\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"CertStat\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3022\",\n                    \"name\": \"AlgoCertificateStatus\",\n                    \"type\": \"AlgoCertificateStatusCodeSet\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"303\"\n                },\n                \"id\": \"3022\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EK\": {\n        \"abbrName\": \"AlgoCertRptAck\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"292\",\n        \"category\": {\n            \"FIXMLFileName\": \"testing\",\n            \"added\": \"FIX.Latest\",\n            \"addedEP\": \"292\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to request for or communicate information related to testing, e.g. algorithmic trading and related testing.\\n\\nAlgorithmic trading is subject to regulatory requirements in many jurisdictions, e.g. in Europe as defined by MiFIR. Investment firms engaged in algorithmic trading with venues may be required to certify their algos and provide the certificate information to the venue. This includes the provision of detailed information related to the algorithm and how it has been tested. The messages in this category support such certification and also interaction between algo systems and test systems both for testing and certification.\\nThe messages may also be used internally to exchange and update information on algos and test suites that will eventually be certified internally by the authorized person and subsequently provided to the venues.\",\n            \"name\": \"Testing\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"AlgoCertificateReportAck(35=EK) is used to respond to the AlgoCertificateReport(35=EJ) to acknowledge or reject the report message.\\n\\nAcknowledgement messages can also be used in response to unsolicited reports.\",\n        \"id\": \"173\",\n        \"msgType\": \"EK\",\n        \"name\": \"AlgoCertificateReportAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"MsgType = EK\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = EK\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"Identifier of report message assigned by report sender.\"] }],\n                \"data\": {\n                    \"abbrName\": \"CertRptID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3018\",\n                    \"name\": \"AlgoCertificateReportID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Identifier of report message assigned by report sender.\",\n                \"id\": \"3018\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"RptStat\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3021\",\n                    \"name\": \"AlgoCertificateReportStatus\",\n                    \"type\": \"AlgoCertificateReportStatusCodeSet\"\n                },\n                \"id\": \"3021\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EL\": {\n        \"abbrName\": \"TstSteDefReq\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"292\",\n        \"category\": {\n            \"FIXMLFileName\": \"testing\",\n            \"added\": \"FIX.Latest\",\n            \"addedEP\": \"292\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to request for or communicate information related to testing, e.g. algorithmic trading and related testing.\\n\\nAlgorithmic trading is subject to regulatory requirements in many jurisdictions, e.g. in Europe as defined by MiFIR. Investment firms engaged in algorithmic trading with venues may be required to certify their algos and provide the certificate information to the venue. This includes the provision of detailed information related to the algorithm and how it has been tested. The messages in this category support such certification and also interaction between algo systems and test systems both for testing and certification.\\nThe messages may also be used internally to exchange and update information on algos and test suites that will eventually be certified internally by the authorized person and subsequently provided to the venues.\",\n            \"name\": \"Testing\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"TestSuiteDefinitionRequest(35=EL) is used to convey to the test system the suite of test scenarios to perform.\\n\\nThis message stages on the test system the details of a test suite to run to test the algo. The test suite contains one or more test scenarios (i.e. test cases) along with the details for each test scenario.\",\n        \"id\": \"174\",\n        \"msgType\": \"EL\",\n        \"name\": \"TestSuiteDefinitionRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"MsgType = EL\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = EL\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"TstScnro\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"category\": \"Testing\",\n                    \"id\": \"2277\",\n                    \"name\": \"TestScenarioGrp\",\n                    \"type\": \"group\"\n                },\n                \"id\": \"2277\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"Unique identifier assigned by request initiator.\"] }],\n                \"data\": {\n                    \"abbrName\": \"TstSteReqID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3062\",\n                    \"name\": \"TestSuiteRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier assigned by request initiator.\",\n                \"id\": \"3062\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"TxnTyp\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3064\",\n                    \"name\": \"TestSuiteRequestTransType\",\n                    \"type\": \"TestSuiteRequestTransTypeCodeSet\"\n                },\n                \"id\": \"3064\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EM\": {\n        \"abbrName\": \"TstSteDefReqAck\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"292\",\n        \"category\": {\n            \"FIXMLFileName\": \"testing\",\n            \"added\": \"FIX.Latest\",\n            \"addedEP\": \"292\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to request for or communicate information related to testing, e.g. algorithmic trading and related testing.\\n\\nAlgorithmic trading is subject to regulatory requirements in many jurisdictions, e.g. in Europe as defined by MiFIR. Investment firms engaged in algorithmic trading with venues may be required to certify their algos and provide the certificate information to the venue. This includes the provision of detailed information related to the algorithm and how it has been tested. The messages in this category support such certification and also interaction between algo systems and test systems both for testing and certification.\\nThe messages may also be used internally to exchange and update information on algos and test suites that will eventually be certified internally by the authorized person and subsequently provided to the venues.\",\n            \"name\": \"Testing\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"TestSuiteDefinitionRequestAck(35=EM) is used to respond to the TestSuiteDefinitionRequest(35= EL) to acknowledge the request and provide status for the request message.\",\n        \"id\": \"175\",\n        \"msgType\": \"EM\",\n        \"name\": \"TestSuiteDefinitionRequestAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"MsgType = EM\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = EM\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"Identifier of request assigned by request initiator.\"] }],\n                \"data\": {\n                    \"abbrName\": \"TstSteReqID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3062\",\n                    \"name\": \"TestSuiteRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Identifier of request assigned by request initiator.\",\n                \"id\": \"3062\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"ReqStat\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3065\",\n                    \"name\": \"TestSuiteRequestStatus\",\n                    \"type\": \"TestSuiteRequestStatusCodeSet\"\n                },\n                \"id\": \"3065\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EN\": {\n        \"abbrName\": \"TstActnReq\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"292\",\n        \"category\": {\n            \"FIXMLFileName\": \"testing\",\n            \"added\": \"FIX.Latest\",\n            \"addedEP\": \"292\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to request for or communicate information related to testing, e.g. algorithmic trading and related testing.\\n\\nAlgorithmic trading is subject to regulatory requirements in many jurisdictions, e.g. in Europe as defined by MiFIR. Investment firms engaged in algorithmic trading with venues may be required to certify their algos and provide the certificate information to the venue. This includes the provision of detailed information related to the algorithm and how it has been tested. The messages in this category support such certification and also interaction between algo systems and test systems both for testing and certification.\\nThe messages may also be used internally to exchange and update information on algos and test suites that will eventually be certified internally by the authorized person and subsequently provided to the venues.\",\n            \"name\": \"Testing\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"TestActionRequest(35=EN) is used to manage test executions or request for testing activity state of the identified test suite.\\n\\nThis message is used to trigger the test system to start/stop the test suite staged on the test system via the TestSuiteDefinitionRequest(35=EL).\",\n        \"id\": \"176\",\n        \"msgType\": \"EN\",\n        \"name\": \"TestActionRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"MsgType = EN\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = EN\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [\n                    { \"documentation\": [\"Use to identify the test suite the TestActionType(3067) applies to.\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TstSteReqID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3062\",\n                    \"name\": \"TestSuiteRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Use to identify the test suite the TestActionType(3067) applies to.\",\n                \"id\": \"3062\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"Unique identifier assigned by request initiator.\"] }],\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3066\",\n                    \"name\": \"TestActionRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier assigned by request initiator.\",\n                \"id\": \"3066\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"ActnTyp\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3067\",\n                    \"name\": \"TestActionType\",\n                    \"type\": \"TestActionTypeCodeSet\"\n                },\n                \"id\": \"3067\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EO\": {\n        \"abbrName\": \"TstActnReqAck\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"292\",\n        \"category\": {\n            \"FIXMLFileName\": \"testing\",\n            \"added\": \"FIX.Latest\",\n            \"addedEP\": \"292\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to request for or communicate information related to testing, e.g. algorithmic trading and related testing.\\n\\nAlgorithmic trading is subject to regulatory requirements in many jurisdictions, e.g. in Europe as defined by MiFIR. Investment firms engaged in algorithmic trading with venues may be required to certify their algos and provide the certificate information to the venue. This includes the provision of detailed information related to the algorithm and how it has been tested. The messages in this category support such certification and also interaction between algo systems and test systems both for testing and certification.\\nThe messages may also be used internally to exchange and update information on algos and test suites that will eventually be certified internally by the authorized person and subsequently provided to the venues.\",\n            \"name\": \"Testing\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"TestActionRequestAck(35=EO) is used to respond to the TestActionRequest(35=EN) to acknowledge the request and provide status for the request message.\",\n        \"id\": \"177\",\n        \"msgType\": \"EO\",\n        \"name\": \"TestActionRequestAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"MsgType = EO\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = EO\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"TstSteReqID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3062\",\n                    \"name\": \"TestSuiteRequestID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"3062\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"Identifier of request assigned by request initiator.\"] }],\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3066\",\n                    \"name\": \"TestActionRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Identifier of request assigned by request initiator.\",\n                \"id\": \"3066\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"ReqStat\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3068\",\n                    \"name\": \"TestActionRequestStatus\",\n                    \"type\": \"TestActionRequestStatusCodeSet\"\n                },\n                \"id\": \"3068\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EP\": {\n        \"abbrName\": \"TstActnRpt\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"292\",\n        \"category\": {\n            \"FIXMLFileName\": \"testing\",\n            \"added\": \"FIX.Latest\",\n            \"addedEP\": \"292\",\n            \"componentType\": \"Message\",\n            \"description\": \"Messages used to request for or communicate information related to testing, e.g. algorithmic trading and related testing.\\n\\nAlgorithmic trading is subject to regulatory requirements in many jurisdictions, e.g. in Europe as defined by MiFIR. Investment firms engaged in algorithmic trading with venues may be required to certify their algos and provide the certificate information to the venue. This includes the provision of detailed information related to the algorithm and how it has been tested. The messages in this category support such certification and also interaction between algo systems and test systems both for testing and certification.\\nThe messages may also be used internally to exchange and update information on algos and test suites that will eventually be certified internally by the authorized person and subsequently provided to the venues.\",\n            \"name\": \"Testing\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"TestActionReport(35=EP) is used to report the testing results of the identified test suite that has been executed with TestActionRequest(35=EN). In the context of algorithmic trading, the results may be used to create a certificate for the algorithm upon meeting the success criteria.\\n\\nTestActionReport(35=EP) may be sent in an unsolicited manner when the execution of a test suite successfully completes or abnormally terminates.\",\n        \"id\": \"178\",\n        \"msgType\": \"EP\",\n        \"name\": \"TestActionReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"MsgType = EP\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = EP\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"Use to identify the test suite.\"] }],\n                \"data\": {\n                    \"abbrName\": \"TstSteReqID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3062\",\n                    \"name\": \"TestSuiteRequestID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Use to identify the test suite.\",\n                \"id\": \"3062\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"annotation\": [{ \"documentation\": [\"Identifier of report assigned by report initiator.\"] }],\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"292\",\n                    \"id\": \"3071\",\n                    \"name\": \"TestActionReportID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Identifier of report assigned by report initiator.\",\n                \"id\": \"3071\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"292\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"EQ\": {\n        \"abbrName\": \"MDAck\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"300\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketdata\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"This message may be used as a response to the MarketDataSnapshotFullRefresh(35=W) and MarketDataIncrementalRefresh(35=X) messages.\",\n        \"id\": \"179\",\n        \"msgType\": \"EQ\",\n        \"name\": \"MarketDataAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"300\",\n                \"annotation\": [{ \"documentation\": [\"MsgType = EQ\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = EQ\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"300\",\n                \"annotation\": [\n                    { \"documentation\": [\"Reference identifier to market data message being acknowledged.\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MDMsgID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"300\",\n                    \"id\": \"3110\",\n                    \"name\": \"MDMsgID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Reference identifier to market data message being acknowledged.\",\n                \"id\": \"3110\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"300\",\n                \"data\": {\n                    \"abbrName\": \"RptStat\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"300\",\n                    \"id\": \"3113\",\n                    \"name\": \"ReportStatus\",\n                    \"type\": \"ReportStatusCodeSet\"\n                },\n                \"id\": \"3113\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"300\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"ER\": {\n        \"abbrName\": \"SecStatAck\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"300\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"This message may be used as a response to the SecurityStatus(35=f) message.\",\n        \"id\": \"180\",\n        \"msgType\": \"ER\",\n        \"name\": \"SecurityStatusAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"300\",\n                \"annotation\": [{ \"documentation\": [\"MsgType = ER\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = ER\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"300\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"300\",\n                    \"id\": \"3111\",\n                    \"name\": \"SecurityStatusReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"3111\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"300\",\n                \"data\": {\n                    \"abbrName\": \"RptStat\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"300\",\n                    \"id\": \"3113\",\n                    \"name\": \"ReportStatus\",\n                    \"type\": \"ReportStatusCodeSet\"\n                },\n                \"id\": \"3113\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"300\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"ES\": {\n        \"abbrName\": \"TrdgSesStatAck\",\n        \"added\": \"FIX.Latest\",\n        \"addedEP\": \"300\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketstructure\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketStructureReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"This message may be used as a response to the TradingSessionStatus(35=h) message.\",\n        \"id\": \"181\",\n        \"msgType\": \"ES\",\n        \"name\": \"TradingSessionStatusAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"300\",\n                \"annotation\": [{ \"documentation\": [\"MsgType = ES\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = ES\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"300\",\n                \"data\": {\n                    \"abbrName\": \"RptID\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"300\",\n                    \"id\": \"3112\",\n                    \"name\": \"TradingSessionStatusReportID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"3112\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"300\",\n                \"data\": {\n                    \"abbrName\": \"RptStat\",\n                    \"added\": \"FIX.Latest\",\n                    \"addedEP\": \"300\",\n                    \"id\": \"3113\",\n                    \"name\": \"ReportStatus\",\n                    \"type\": \"ReportStatusCodeSet\"\n                },\n                \"id\": \"3113\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.Latest\",\n                \"addedEP\": \"300\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"F\": {\n        \"abbrName\": \"OrdCxlReq\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"order\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SingleGeneralOrderHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The order cancel request message requests the cancellation of all of the remaining quantity of an existing order. Note that the Order Cancel/Replace Request should be used to partially cancel (reduce) an order).\",\n        \"id\": \"16\",\n        \"msgType\": \"F\",\n        \"name\": \"OrderCancelRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = F\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = F\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique ID of cancel request as assigned by the institution.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ClOrdID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"11\",\n                    \"name\": \"ClOrdID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"282\"\n                },\n                \"description\": \"Unique ID of cancel request as assigned by the institution.\",\n                \"id\": \"11\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Time this order request was initiated/released by the trader or trading system.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Time this order request was initiated/released by the trader or trading system.\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"G\": {\n        \"abbrName\": \"OrdCxlRplcReq\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"order\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SingleGeneralOrderHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The order cancel/replace request is used to change the parameters of an existing order.\\n\\nDo not use this message to cancel the remaining quantity of an outstanding order, use the Order Cancel Request message for this purpose.\",\n        \"id\": \"17\",\n        \"msgType\": \"G\",\n        \"name\": \"OrderCancelReplaceRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = G\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = G\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier of replacement order as assigned by institution or by the intermediary with closest association with the investor. Note that this identifier will be used in ClOrdID field of the Cancel Reject message if the replacement request is rejected.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ClOrdID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"11\",\n                    \"name\": \"ClOrdID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"282\"\n                },\n                \"description\": \"Unique identifier of replacement order as assigned by institution or by the intermediary with closest association with the investor. Note that this identifier will be used in ClOrdID field of the Cancel Reject message if the replacement request is rejected.\",\n                \"id\": \"11\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.Latest\",\n                \"updatedEP\": \"282\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"OrdTyp\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"Typ\",\n                    \"id\": \"40\",\n                    \"name\": \"OrdType\",\n                    \"type\": \"OrdTypeCodeSet\"\n                },\n                \"id\": \"40\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Should match original order's side, however, if bilaterally agreed to the following groups could potentially be interchanged:\",\n                            \"\\n                            Buy and Buy Minus\",\n                            \"\\n                            Sell, Sell Plus, Sell Short, and Sell Short Exempt\",\n                            \"\\n                            Cross, Cross Short, and Cross Short Exempt\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"description\": \"Should match original order's side, however, if bilaterally agreed to the following groups could potentially be interchanged:\\n\\n\\n                            Buy and Buy Minus\\n\\n\\n                            Sell, Sell Plus, Sell Short, and Sell Short Exempt\\n\\n\\n                            Cross, Cross Short, and Cross Short Exempt\",\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Time this order request was initiated/released by the trader or trading system.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Time this order request was initiated/released by the trader or trading system.\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                            \"\\n                            Must match original order\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\\n\\n\\n                            Must match original order\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Note: OrderQty(38) value should be the \\\"Total Intended Order Quantity\\\" (including the amount already executed for this chain of orders).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"OrdQty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1011\",\n                    \"name\": \"OrderQtyData\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Note: OrderQty(38) value should be the \\\"Total Intended Order Quantity\\\" (including the amount already executed for this chain of orders).\",\n                \"id\": \"1011\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"221\"\n            }\n        ]\n    },\n    \"H\": {\n        \"abbrName\": \"OrdStatReq\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"order\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SingleGeneralOrderHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The order status request message is used by the institution to generate an order status message back from the broker.\",\n        \"id\": \"18\",\n        \"msgType\": \"H\",\n        \"name\": \"OrderStatusRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = H\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = H\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"J\": {\n        \"abbrName\": \"AllocInstrctn\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"allocation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Allocation\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The AllocationInstruction(35=J) message provides the ability to specify how an order or set of orders should be subdivided amongst one or more accounts. \\n\\nIn versions of FIX prior to version 4.4, this same message was known as the Allocation(35=J) message. Note in versions of the FIX Protocol prior to version 4.4, the Allocation(35=J) message was also used to communicate fee and expense details from the sell-side to the buy-side. This role has since been removed from the AllocationInstruction(35=J) message and is performed by the new (to version 4.4) AllocationReport(35=AS) and Confirmation(35=AK) messages. The AllocationReport(35=AS) message should be used for the sell-side initiated allocation role as defined in previous versions of the FIX Protocol.\",\n        \"id\": \"19\",\n        \"msgType\": \"J\",\n        \"name\": \"AllocationInstruction\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = J\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = J\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Total quantity (e.g. number of shares) allocated to all accounts, or that is Ready-To-Book\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"Qty\", \"added\": \"FIX.2.7\", \"id\": \"53\", \"name\": \"Quantity\", \"type\": \"Qty\" },\n                \"description\": \"Total quantity (e.g. number of shares) allocated to all accounts, or that is Ready-To-Book\",\n                \"id\": \"53\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier for this allocation instruction message\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"AllocID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"Allocation\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"70\",\n                    \"name\": \"AllocID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this allocation instruction message\",\n                \"id\": \"70\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"TransTyp\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"71\",\n                    \"name\": \"AllocTransType\",\n                    \"type\": \"AllocTransTypeCodeSet\"\n                },\n                \"id\": \"71\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.Latest\",\n                \"updatedEP\": \"285\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"TrdDt\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"75\",\n                    \"name\": \"TradeDate\",\n                    \"type\": \"LocalMktDate\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"190\"\n                },\n                \"id\": \"75\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Specifies the purpose or type of Allocation message\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"AllocType\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"Allocation\",\n                    \"baseCategoryAbbrName\": \"Typ\",\n                    \"id\": \"626\",\n                    \"name\": \"AllocType\",\n                    \"type\": \"AllocTypeCodeSet\"\n                },\n                \"description\": \"Specifies the purpose or type of Allocation message\",\n                \"id\": \"626\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\".\",\n                            \"\\n                            For NDFs fixing date and time can be optionally specified using MaturityDate and MaturityTime.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\".\\n\\n\\n                            For NDFs fixing date and time can be optionally specified using MaturityDate and MaturityTime.\",\n                \"id\": \"1003\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP1\",\n                \"updatedEP\": \"82\"\n            }\n        ],\n        \"updated\": \"FIX.Latest\",\n        \"updatedEP\": \"291\"\n    },\n    \"K\": {\n        \"abbrName\": \"ListCxlReq\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"listorders\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"ProgramTrading\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The List Cancel Request message type is used by institutions wishing to cancel previously submitted lists either before or during execution.\",\n        \"id\": \"20\",\n        \"msgType\": \"K\",\n        \"name\": \"ListCancelRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = K\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = K\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Time this order request was initiated/released by the trader or trading system.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Time this order request was initiated/released by the trader or trading system.\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"ListID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"ProgramTrading\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"66\",\n                    \"name\": \"ListID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"66\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"L\": {\n        \"abbrName\": \"ListExct\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"listorders\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"ProgramTrading\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The List Execute message type is used by institutions to instruct the broker to begin execution of a previously submitted list. This message may or may not be used, as it may be mirroring a phone conversation.\",\n        \"id\": \"21\",\n        \"msgType\": \"L\",\n        \"name\": \"ListExecute\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = L\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = L\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Time this order request was initiated/released by the trader or trading system.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Time this order request was initiated/released by the trader or trading system.\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Must be unique, by customer, for the day\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ListID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"ProgramTrading\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"66\",\n                    \"name\": \"ListID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Must be unique, by customer, for the day\",\n                \"id\": \"66\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"M\": {\n        \"abbrName\": \"ListStatReq\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"listorders\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"ProgramTrading\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The list status request message type is used by institutions to instruct the broker to generate status messages for a list.\",\n        \"id\": \"22\",\n        \"msgType\": \"M\",\n        \"name\": \"ListStatusRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = M\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = M\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"ListID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"ProgramTrading\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"66\",\n                    \"name\": \"ListID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"66\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"N\": {\n        \"abbrName\": \"ListStat\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"listorders\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"ProgramTrading\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The list status message is issued as the response to a List Status Request message sent in an unsolicited fashion by the sell-side. It indicates the current state of the orders within the list as they exist at the broker's site. This message may also be used to respond to the List Cancel Request.\",\n        \"id\": \"23\",\n        \"msgType\": \"N\",\n        \"name\": \"ListStatus\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = N\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = N\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"ListID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"ProgramTrading\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"66\",\n                    \"name\": \"ListID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"66\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Used to support fragmentation. Sum of NoOrders across all messages with the same ListID.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TotNoOrds\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"68\",\n                    \"name\": \"TotNoOrders\",\n                    \"type\": \"int\"\n                },\n                \"description\": \"Used to support fragmentation. Sum of NoOrders across all messages with the same ListID.\",\n                \"id\": \"68\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Total number of messages required to status complete list.\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"NoRpts\", \"added\": \"FIX.2.7\", \"id\": \"82\", \"name\": \"NoRpts\", \"type\": \"int\" },\n                \"description\": \"Total number of messages required to status complete list.\",\n                \"id\": \"82\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Sequence number of this report message.\"] }\n                ],\n                \"data\": { \"abbrName\": \"RptSeq\", \"added\": \"FIX.2.7\", \"id\": \"83\", \"name\": \"RptSeq\", \"type\": \"int\" },\n                \"description\": \"Sequence number of this report message.\",\n                \"id\": \"83\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"ListStatTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"429\",\n                    \"name\": \"ListStatusType\",\n                    \"type\": \"ListStatusTypeCodeSet\"\n                },\n                \"id\": \"429\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"ListOrdStat\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"431\",\n                    \"name\": \"ListOrderStatus\",\n                    \"type\": \"ListOrderStatusCodeSet\"\n                },\n                \"id\": \"431\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Number of orders statused in this message, i.e. number of repeating groups to follow.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ListStat\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"ProgramTrading\",\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"CumQty\",\n                            \"added\": \"FIX.2.7\",\n                            \"id\": \"14\",\n                            \"name\": \"CumQty\",\n                            \"presence\": \"required\",\n                            \"type\": \"Qty\"\n                        },\n                        {\n                            \"abbrName\": \"OrdStat\",\n                            \"added\": \"FIX.2.7\",\n                            \"baseCategory\": \"SingleGeneralOrderHandling\",\n                            \"baseCategoryAbbrName\": \"Stat\",\n                            \"id\": \"39\",\n                            \"name\": \"OrdStatus\",\n                            \"presence\": \"required\",\n                            \"type\": \"OrdStatusCodeSet\"\n                        },\n                        {\n                            \"abbrName\": \"LeavesQty\",\n                            \"added\": \"FIX.4.1\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Quantity open for further execution. LeavesQty = OrderQty - CumQty.\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"Quantity open for further execution. LeavesQty = OrderQty - CumQty.\",\n                            \"id\": \"151\",\n                            \"name\": \"LeavesQty\",\n                            \"presence\": \"required\",\n                            \"type\": \"Qty\"\n                        },\n                        {\n                            \"abbrName\": \"CxlQty\",\n                            \"added\": \"FIX.2.7\",\n                            \"id\": \"84\",\n                            \"name\": \"CxlQty\",\n                            \"presence\": \"required\",\n                            \"type\": \"Qty\"\n                        },\n                        {\n                            \"abbrName\": \"AvgPx\",\n                            \"added\": \"FIX.2.7\",\n                            \"id\": \"6\",\n                            \"name\": \"AvgPx\",\n                            \"presence\": \"required\",\n                            \"type\": \"Price\"\n                        }\n                    ],\n                    \"id\": \"2037\",\n                    \"name\": \"OrdListStatGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Number of orders statused in this message, i.e. number of repeating groups to follow.\",\n                \"id\": \"2037\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"P\": {\n        \"abbrName\": \"AllocInstrctnAck\",\n        \"added\": \"FIX.2.7\",\n        \"category\": {\n            \"FIXMLFileName\": \"allocation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"Allocation\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"In versions of FIX prior to version 4.4, this message was known as the Allocation ACK message.\\n\\nThe Allocation Instruction Ack message is used to acknowledge the receipt of and provide status for an Allocation Instruction message.\",\n        \"id\": \"24\",\n        \"msgType\": \"P\",\n        \"name\": \"AllocationInstructionAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = P\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = P\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"AllocID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"Allocation\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"70\",\n                    \"name\": \"AllocID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"70\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Denotes the status of the allocation instruction; received (but not yet processed), rejected (at block or account level) or accepted (and processed).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Stat\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"Allocation\",\n                    \"baseCategoryAbbrName\": \"Stat\",\n                    \"id\": \"87\",\n                    \"name\": \"AllocStatus\",\n                    \"type\": \"AllocStatusCodeSet\"\n                },\n                \"description\": \"Denotes the status of the allocation instruction; received (but not yet processed), rejected (at block or account level) or accepted (and processed).\",\n                \"id\": \"87\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.2.7\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"Q\": {\n        \"abbrName\": \"DkTrd\",\n        \"added\": \"FIX.4.0\",\n        \"category\": {\n            \"FIXMLFileName\": \"order\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SingleGeneralOrderHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The Don\u2019t Know Trade (DK) message notifies a trading partner that an electronically received execution has been rejected. This message can be thought of as an execution reject message.\",\n        \"id\": \"25\",\n        \"msgType\": \"Q\",\n        \"name\": \"DontKnowTrade\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.0\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = Q\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = Q\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.0\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Execution ID of problem execution\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ExecID\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"17\",\n                    \"name\": \"ExecID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"95\"\n                },\n                \"description\": \"Execution ID of problem execution\",\n                \"id\": \"17\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.0\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Broker Order ID as identified on problem execution\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"OrdID\", \"added\": \"FIX.2.7\", \"id\": \"37\", \"name\": \"OrderID\", \"type\": \"String\" },\n                \"description\": \"Broker Order ID as identified on problem execution\",\n                \"id\": \"37\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.0\",\n                \"data\": { \"abbrName\": \"Side\", \"added\": \"FIX.2.7\", \"id\": \"54\", \"name\": \"Side\", \"type\": \"SideCodeSet\" },\n                \"id\": \"54\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.0\",\n                \"data\": {\n                    \"abbrName\": \"DkRsn\",\n                    \"added\": \"FIX.4.0\",\n                    \"id\": \"127\",\n                    \"name\": \"DKReason\",\n                    \"type\": \"DKReasonCodeSet\"\n                },\n                \"id\": \"127\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.0\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"OrderQtyData\\\" fields defined in \\\"Common Components of Application Messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"OrdQty\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1011\",\n                    \"name\": \"OrderQtyData\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"OrderQtyData\\\" fields defined in \\\"Common Components of Application Messages\\\"\",\n                \"id\": \"1011\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"R\": {\n        \"abbrName\": \"QuotReq\",\n        \"added\": \"FIX.4.0\",\n        \"category\": {\n            \"FIXMLFileName\": \"quotation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"QuotationNegotiation\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"In some markets it is the practice to request quotes from brokers prior to placement of an order. The quote request message is used for this purpose. This message is commonly referred to as an Request For Quote (RFQ)\",\n        \"id\": \"26\",\n        \"msgType\": \"R\",\n        \"name\": \"QuoteRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.0\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = R\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = R\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.0\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.4.0\",\n                    \"id\": \"131\",\n                    \"name\": \"QuoteReqID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"143\"\n                },\n                \"id\": \"131\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Number of related symbols (instruments) in Request\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"QuotReq\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"QuotationNegotiation\",\n                    \"componentRef\": [\n                        {\n                            \"abbrName\": \"Instrmt\",\n                            \"added\": \"FIX.4.3\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                                    ]\n                                }\n                            ],\n                            \"category\": \"Common\",\n                            \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                            \"id\": \"1003\",\n                            \"name\": \"Instrument\",\n                            \"presence\": \"required\"\n                        }\n                    ],\n                    \"id\": \"2045\",\n                    \"name\": \"QuotReqGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Number of related symbols (instruments) in Request\",\n                \"id\": \"2045\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.0\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"S\": {\n        \"abbrName\": \"Quot\",\n        \"added\": \"FIX.4.0\",\n        \"category\": {\n            \"FIXMLFileName\": \"quotation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"QuotationNegotiation\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Quote message is used as the response to a Quote Request or a Quote Response message in both indicative, tradeable, and restricted tradeable quoting markets.\",\n        \"id\": \"27\",\n        \"msgType\": \"S\",\n        \"name\": \"Quote\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.0\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = S\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = S\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.0\",\n                \"data\": { \"abbrName\": \"QID\", \"added\": \"FIX.4.0\", \"id\": \"117\", \"name\": \"QuoteID\", \"type\": \"String\" },\n                \"id\": \"117\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.0\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1003\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"144\"\n            }\n        ]\n    },\n    \"T\": {\n        \"abbrName\": \"SettlInstrctns\",\n        \"added\": \"FIX.4.1\",\n        \"category\": {\n            \"FIXMLFileName\": \"settlement\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SettlementInstruction\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Settlement Instructions message provides the broker\u2019s, the institution\u2019s, or the intermediary\u2019s instructions for trade settlement. This message has been designed so that it can be sent from the broker to the institution, from the institution to the broker, or from either to an independent \\\"standing instructions\\\" database or matching system or, for CIV, from an intermediary to a fund manager.\",\n        \"id\": \"28\",\n        \"msgType\": \"T\",\n        \"name\": \"SettlementInstructions\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.1\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = T\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = T\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.1\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Date/time this message was generated\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Date/time this message was generated\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            1=Standing Instructions, 2=Specific Allocation Account Overriding, 3=Specific Allocation Account Standing , 4=Specific Order, 5=Reject SSI request\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"SettlInstMode\",\n                    \"added\": \"FIX.4.1\",\n                    \"id\": \"160\",\n                    \"name\": \"SettlInstMode\",\n                    \"type\": \"SettlInstModeCodeSet\"\n                },\n                \"description\": \"1=Standing Instructions, 2=Specific Allocation Account Overriding, 3=Specific Allocation Account Standing , 4=Specific Order, 5=Reject SSI request\",\n                \"id\": \"160\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Unique identifier for this message\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"SettlInstMsgID\",\n                    \"added\": \"FIX.4.4\",\n                    \"id\": \"777\",\n                    \"name\": \"SettlInstMsgID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier for this message\",\n                \"id\": \"777\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.1\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"V\": {\n        \"abbrName\": \"MktDataReq\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketdata\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"Some systems allow the transmission of real-time quote, order, trade, trade volume, open interest, and/or other price information on a subscription basis. A MarketDataRequest(35=V) is a general request for market data on specific securities or forex quotes. The values in the fields provided within the request will serve as further filter criteria for the result set.\",\n        \"id\": \"29\",\n        \"msgType\": \"V\",\n        \"name\": \"MarketDataRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = V\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = V\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Must be unique, or the ID of previous Market Data Request to disable if SubscriptionRequestType(263) = 2(Disable previous Snapshot + Updates Request).\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"ReqID\", \"added\": \"FIX.4.2\", \"id\": \"262\", \"name\": \"MDReqID\", \"type\": \"String\" },\n                \"description\": \"Must be unique, or the ID of previous Market Data Request to disable if SubscriptionRequestType(263) = 2(Disable previous Snapshot + Updates Request).\",\n                \"id\": \"262\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"190\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            SubscriptionRequestType(263) indicates to the other party what type of response is expected. A snapshot request only asks for current information. A subscribe request asks for updates as the status changes. Unsubscribe will cancel any future update messages from the counter party.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"SubReqTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"263\",\n                    \"name\": \"SubscriptionRequestType\",\n                    \"type\": \"SubscriptionRequestTypeCodeSet\"\n                },\n                \"description\": \"SubscriptionRequestType(263) indicates to the other party what type of response is expected. A snapshot request only asks for current information. A subscribe request asks for updates as the status changes. Unsubscribe will cancel any future update messages from the counter party.\",\n                \"id\": \"263\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"190\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"MktDepth\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"264\",\n                    \"name\": \"MarketDepth\",\n                    \"type\": \"int\"\n                },\n                \"id\": \"264\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"InstReq\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"Common\",\n                    \"componentRef\": [\n                        {\n                            \"abbrName\": \"Instrmt\",\n                            \"added\": \"FIX.4.3\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                                    ]\n                                }\n                            ],\n                            \"category\": \"Common\",\n                            \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                            \"id\": \"1003\",\n                            \"name\": \"Instrument\",\n                            \"presence\": \"required\"\n                        }\n                    ],\n                    \"id\": \"2022\",\n                    \"name\": \"InstrmtMDReqGrp\",\n                    \"type\": \"group\"\n                },\n                \"id\": \"2022\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"190\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Req\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"MarketData\",\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"Typ\",\n                            \"added\": \"FIX.4.2\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Must be the first field in this repeating group. This is a list of all the types of Market Data Entries that the firm requesting the Market Data is interested in receiving.\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"Must be the first field in this repeating group. This is a list of all the types of Market Data Entries that the firm requesting the Market Data is interested in receiving.\",\n                            \"id\": \"269\",\n                            \"name\": \"MDEntryType\",\n                            \"presence\": \"required\",\n                            \"type\": \"MDEntryTypeCodeSet\",\n                            \"updated\": \"FIX.5.0SP2\",\n                            \"updatedEP\": \"174\"\n                        }\n                    ],\n                    \"id\": \"2033\",\n                    \"name\": \"MDReqGrp\",\n                    \"type\": \"group\"\n                },\n                \"id\": \"2033\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"190\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"190\"\n    },\n    \"W\": {\n        \"abbrName\": \"MktDataFull\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketdata\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Market Data messages are used as the response to a Market Data Request message. In all cases, one Market Data message refers only to one Market Data Request. It can be used to transmit a 2-sided book of orders or list of quotes, a list of trades, index values, opening, closing, settlement, high, low, or VWAP prices, the trade volume or open interest for a security, or any combination of these.\",\n        \"id\": \"30\",\n        \"msgType\": \"W\",\n        \"name\": \"MarketDataSnapshotFullRefresh\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = W\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = W\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"data\": {\n                    \"abbrName\": \"Full\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"MarketData\",\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"Typ\",\n                            \"added\": \"FIX.4.2\",\n                            \"annotation\": [\n                                { \"documentation\": [\"\\n                        Required if NoMDEntries(268) > 0.\"] }\n                            ],\n                            \"description\": \"Required if NoMDEntries(268) > 0.\",\n                            \"id\": \"269\",\n                            \"name\": \"MDEntryType\",\n                            \"presence\": \"required\",\n                            \"type\": \"MDEntryTypeCodeSet\",\n                            \"updated\": \"FIX.5.0SP2\",\n                            \"updatedEP\": \"174\"\n                        }\n                    ],\n                    \"id\": \"2031\",\n                    \"name\": \"MDFullGrp\",\n                    \"type\": \"group\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"300\"\n                },\n                \"id\": \"2031\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"190\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1003\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"190\"\n            }\n        ]\n    },\n    \"X\": {\n        \"abbrName\": \"MktDataInc\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketdata\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Market Data message for incremental updates may contain any combination of new, changed, or deleted Market Data Entries, for any combination of instruments, with any combination of trades, imbalances, quotes, index values, open, close, settlement, high, low, and VWAP prices, trade volume and open interest so long as the maximum FIX message size is not exceeded. All of these types of Market Data Entries can be changed and deleted.\",\n        \"id\": \"31\",\n        \"msgType\": \"X\",\n        \"name\": \"MarketDataIncrementalRefresh\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = X\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = X\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Number of entries following.\"] }],\n                \"data\": {\n                    \"abbrName\": \"Inc\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"MarketData\",\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"UpdtAct\",\n                            \"added\": \"FIX.4.2\",\n                            \"annotation\": [\n                                { \"documentation\": [\"\\n                        Required if NoMDEntries(268) > 0.\"] }\n                            ],\n                            \"description\": \"Required if NoMDEntries(268) > 0.\",\n                            \"id\": \"279\",\n                            \"name\": \"MDUpdateAction\",\n                            \"presence\": \"required\",\n                            \"type\": \"MDUpdateActionCodeSet\"\n                        }\n                    ],\n                    \"id\": \"2032\",\n                    \"name\": \"MDIncGrp\",\n                    \"type\": \"group\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"300\"\n                },\n                \"description\": \"Number of entries following.\",\n                \"id\": \"2032\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"Y\": {\n        \"abbrName\": \"MktDataReqRej\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketdata\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Market Data Request Reject is used when the broker cannot honor the Market Data Request, due to business or technical reasons. Brokers may choose to limit various parameters, such as the size of requests, whether just the top of book or the entire book may be displayed, and whether Full or Incremental updates must be used.\",\n        \"id\": \"32\",\n        \"msgType\": \"Y\",\n        \"name\": \"MarketDataRequestReject\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = Y\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = Y\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Must refer to the MDReqID of the request.\"] }\n                ],\n                \"data\": { \"abbrName\": \"ReqID\", \"added\": \"FIX.4.2\", \"id\": \"262\", \"name\": \"MDReqID\", \"type\": \"String\" },\n                \"description\": \"Must refer to the MDReqID of the request.\",\n                \"id\": \"262\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"Z\": {\n        \"abbrName\": \"QuotCxl\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"quotation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"QuotationNegotiation\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Quote Cancel message is used by an originator of quotes to cancel quotes.\\n\\nThe Quote Cancel message supports cancellation of:\\n\\n\u2022 All quotes\\n\\n\u2022 Quotes for a specific symbol or security ID\\n\\n\u2022 All quotes for a security type\\n\\n\u2022 All quotes for an underlying\",\n        \"id\": \"33\",\n        \"msgType\": \"Z\",\n        \"name\": \"QuoteCancel\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = Z\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = Z\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Identifies the type of Quote Cancel request.\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"CxlTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"298\",\n                    \"name\": \"QuoteCancelType\",\n                    \"type\": \"QuoteCancelTypeCodeSet\",\n                    \"unionDataType\": \"Reserved100Plus\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"85\"\n                },\n                \"description\": \"Identifies the type of Quote Cancel request.\",\n                \"id\": \"298\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"a\": {\n        \"abbrName\": \"QuotStatReq\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"quotation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"QuotationNegotiation\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The quote status request message is used for the following purposes in markets that employ tradeable or restricted tradeable quotes:\\n\\n\u2022 For the issuer of a quote in a market to query the status of that quote (using the QuoteID to specify the target quote).\\n\\n\u2022 To subscribe and unsubscribe for Quote Status Report messages for one or more securities.\",\n        \"id\": \"34\",\n        \"msgType\": \"a\",\n        \"name\": \"QuoteStatusRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = a (lowercase)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = a (lowercase)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"b\": {\n        \"abbrName\": \"MassQuotAck\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"quotation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"QuotationNegotiation\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"Mass Quote Acknowledgement is used as the application level response to a Mass Quote message.\",\n        \"id\": \"35\",\n        \"msgType\": \"b\",\n        \"name\": \"MassQuoteAck\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = b (lowercase)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = b (lowercase)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Status of the mass quote acknowledgement.\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Stat\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"297\",\n                    \"name\": \"QuoteStatus\",\n                    \"type\": \"QuoteStatusCodeSet\"\n                },\n                \"description\": \"Status of the mass quote acknowledgement.\",\n                \"id\": \"297\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"143\"\n    },\n    \"c\": {\n        \"abbrName\": \"SecDefReq\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The SecurityDefinitionRequest(35=c) message is used for the following:\\n\\n1. Request a specific security to be traded with the second party. The requested security can be defined as a multileg security made up of one or more instrument legs.\\n\\n2. Request a set of individual securities for a single market segment.\\n\\n3. Request all securities, independent of market segment.\",\n        \"id\": \"36\",\n        \"msgType\": \"c\",\n        \"name\": \"SecurityDefinitionRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = c (lowercase)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = c (lowercase)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"320\",\n                    \"name\": \"SecurityReqID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"320\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"ReqTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"321\",\n                    \"name\": \"SecurityRequestType\",\n                    \"type\": \"SecurityRequestTypeCodeSet\"\n                },\n                \"id\": \"321\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"195\"\n    },\n    \"d\": {\n        \"abbrName\": \"SecDef\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The SecurityDefinition(35=d) message is used for the following:\\n\\n1. Accept the security defined in a SecurityDefinition(35=d) message.\\n\\n2. Accept the security defined in a SecurityDefinition(35=d) message with changes to the definition and/or identity of the security.\\n\\n3. Reject the security requested in a SecurityDefinition(35=d) message.\\n\\n4. Respond to a request for securities within a specified market segment.\\n\\n5. Convey comprehensive security definition for all market segments that the security participates in.\\n\\n6. Convey the security's trading rules that differ from default rules for the market segment.\",\n        \"id\": \"37\",\n        \"msgType\": \"d\",\n        \"name\": \"SecurityDefinition\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = d (lowercase)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = d (lowercase)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP2\",\n        \"updatedEP\": \"195\"\n    },\n    \"e\": {\n        \"abbrName\": \"SecStatReq\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Security Status Request message provides for the ability to request the status of a security. One or more Security Status messages are returned as a result of a Security Status Request message.\",\n        \"id\": \"38\",\n        \"msgType\": \"e\",\n        \"name\": \"SecurityStatusRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = e (lowercase)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = e (lowercase)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            SubscriptionRequestType indicates to the other party what type of response is expected. A snapshot request only asks for current information. A subscribe request asks for updates as the status changes. Unsubscribe will cancel any future update messages from the counter party.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"SubReqTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"263\",\n                    \"name\": \"SubscriptionRequestType\",\n                    \"type\": \"SubscriptionRequestTypeCodeSet\"\n                },\n                \"description\": \"SubscriptionRequestType indicates to the other party what type of response is expected. A snapshot request only asks for current information. A subscribe request asks for updates as the status changes. Unsubscribe will cancel any future update messages from the counter party.\",\n                \"id\": \"263\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP1\",\n                \"updatedEP\": \"95\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Must be unique, or the ID of previous Security Status Request to disable if SubscriptionRequestType = Disable previous Snapshot + Updates Request (2).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"StatReqID\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"324\",\n                    \"name\": \"SecurityStatusReqID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"106\"\n                },\n                \"description\": \"Must be unique, or the ID of previous Security Status Request to disable if SubscriptionRequestType = Disable previous Snapshot + Updates Request (2).\",\n                \"id\": \"324\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"f\": {\n        \"abbrName\": \"SecStat\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Security Status message provides for the ability to report changes in status to a security. The Security Status message contains fields to indicate trading status, corporate actions, financial status of the company. The Security Status message is used by one trading entity (for instance an exchange) to report changes in the state of a security.\",\n        \"id\": \"39\",\n        \"msgType\": \"f\",\n        \"name\": \"SecurityStatus\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = f (lowercase)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = f (lowercase)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1003\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"195\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"g\": {\n        \"abbrName\": \"TrdgSesStatReq\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketstructure\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketStructureReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Trading Session Status Request is used to request information on the status of a market. With the move to multiple sessions occurring for a given trading party (morning and evening sessions for instance) there is a need to be able to provide information on what product is trading on what market.\",\n        \"id\": \"40\",\n        \"msgType\": \"g\",\n        \"name\": \"TradingSessionStatusRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = g (lowercase)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = g (lowercase)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"SubReqTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"263\",\n                    \"name\": \"SubscriptionRequestType\",\n                    \"type\": \"SubscriptionRequestTypeCodeSet\"\n                },\n                \"id\": \"263\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Must be unique, or the ID of previous Trading Session Status Request to disable if SubscriptionRequestType = Disable previous Snapshot + Updates Request (2).\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"335\",\n                    \"name\": \"TradSesReqID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Must be unique, or the ID of previous Trading Session Status Request to disable if SubscriptionRequestType = Disable previous Snapshot + Updates Request (2).\",\n                \"id\": \"335\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"h\": {\n        \"abbrName\": \"TrdgSesStat\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"marketstructure\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"MarketStructureReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Trading Session Status provides information on the status of a market. For markets multiple trading sessions on multiple-markets occurring (morning and evening sessions for instance), this message is able to provide information on what products are trading on what market during what trading session.\",\n        \"id\": \"41\",\n        \"msgType\": \"h\",\n        \"name\": \"TradingSessionStatus\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = h (lowercase)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = h (lowercase)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Identifier for trading session\"] }],\n                \"data\": {\n                    \"abbrName\": \"SesID\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"336\",\n                    \"name\": \"TradingSessionID\",\n                    \"type\": \"TradingSessionIDCodeSet\",\n                    \"unionDataType\": \"Reserved100Plus\",\n                    \"updated\": \"FIX.5.0SP2\",\n                    \"updatedEP\": \"190\"\n                },\n                \"description\": \"Identifier for trading session\",\n                \"id\": \"336\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"190\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Stat\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"340\",\n                    \"name\": \"TradSesStatus\",\n                    \"type\": \"TradSesStatusCodeSet\",\n                    \"unionDataType\": \"Reserved100Plus\"\n                },\n                \"id\": \"340\",\n                \"presence\": \"required\",\n                \"updated\": \"FIX.5.0SP2\",\n                \"updatedEP\": \"190\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"i\": {\n        \"abbrName\": \"MassQuot\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"quotation\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"QuotationNegotiation\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Mass Quote message can contain quotes for multiple securities to support applications that allow for the mass quoting of an option series. Two levels of repeating groups have been provided to minimize the amount of data required to submit a set of quotes for a class of options (e.g. all option series for IBM).\",\n        \"id\": \"42\",\n        \"msgType\": \"i\",\n        \"name\": \"MassQuote\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = i (lowercase)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = i (lowercase)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": { \"abbrName\": \"QID\", \"added\": \"FIX.4.0\", \"id\": \"117\", \"name\": \"QuoteID\", \"type\": \"String\" },\n                \"id\": \"117\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            The number of sets of quotes in the message\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"QuotSet\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"QuotationNegotiation\",\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"SetID\",\n                            \"added\": \"FIX.4.2\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Sequential number for the Quote Set. For a given QuoteID - assumed to start at 1.\",\n                                        \"\\n                        Must be the first field in the repeating group.\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"Sequential number for the Quote Set. For a given QuoteID - assumed to start at 1.\\n\\n\\n                        Must be the first field in the repeating group.\",\n                            \"id\": \"302\",\n                            \"name\": \"QuoteSetID\",\n                            \"presence\": \"required\",\n                            \"type\": \"String\"\n                        },\n                        {\n                            \"abbrName\": \"TotNoQuotEntries\",\n                            \"added\": \"FIX.4.2\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Total number of quotes for the quote set across all messages. Should be the sum of all NoQuoteEntries in each message that has repeating quotes that are part of the same quote set.\"\n                                    ]\n                                }\n                            ],\n                            \"description\": \"Total number of quotes for the quote set across all messages. Should be the sum of all NoQuoteEntries in each message that has repeating quotes that are part of the same quote set.\",\n                            \"id\": \"304\",\n                            \"name\": \"TotNoQuoteEntries\",\n                            \"presence\": \"required\",\n                            \"type\": \"int\",\n                            \"updated\": \"FIX.5.0SP1\",\n                            \"updatedEP\": \"95\"\n                        }\n                    ],\n                    \"groupRef\": [\n                        {\n                            \"abbrName\": \"QuotEntry\",\n                            \"added\": \"FIX.4.4\",\n                            \"category\": \"QuotationNegotiation\",\n                            \"id\": \"2043\",\n                            \"name\": \"QuotEntryGrp\",\n                            \"presence\": \"required\"\n                        }\n                    ],\n                    \"id\": \"2049\",\n                    \"name\": \"QuotSetGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"The number of sets of quotes in the message\",\n                \"id\": \"2049\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"j\": {\n        \"abbrName\": \"BizMsgRej\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"businessreject\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"BusinessReject\",\n            \"section\": \"Infrastructure\"\n        },\n        \"description\": \"The Business Message Reject message can reject an application-level message which fulfills session-level rules and cannot be rejected via any other means. Note if the message fails a session-level rule (e.g. body length is incorrect), a session-level Reject message should be issued.\",\n        \"id\": \"43\",\n        \"msgType\": \"j\",\n        \"name\": \"BusinessMessageReject\",\n        \"section\": {\n            \"FIXMLFileName\": \"infrastructure\",\n            \"description\": \"Infrastructure messages for application sequencing, business reject, network and user management\",\n            \"displayOrder\": \"4\",\n            \"name\": \"Infrastructure\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = j (lowercase)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = j (lowercase)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The MsgType of the FIX message being referenced.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RefMsgTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"372\",\n                    \"name\": \"RefMsgType\",\n                    \"type\": \"MsgTypeCodeSet\"\n                },\n                \"description\": \"The MsgType of the FIX message being referenced.\",\n                \"id\": \"372\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Code to identify reason for a Business Message Reject message.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"BizRejRsn\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"380\",\n                    \"name\": \"BusinessRejectReason\",\n                    \"type\": \"BusinessRejectReasonCodeSet\"\n                },\n                \"description\": \"Code to identify reason for a Business Message Reject message.\",\n                \"id\": \"380\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"k\": {\n        \"abbrName\": \"BidReq\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"listorders\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"ProgramTrading\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The BidRequest Message can be used in one of two ways depending on which market conventions are being followed.\\n\\nIn the \\\"Non disclosed\\\" convention (e.g. US/European model) the BidRequest message can be used to request a bid based on the sector, country, index and liquidity information contained within the message itself. In the \\\"Non disclosed\\\" convention the entry repeating group is used to define liquidity of the program. See \\\" Program/Basket/List Trading\\\" for an example.\\n\\nIn the \\\"Disclosed\\\" convention (e.g. Japanese model) the BidRequest message can be used to request bids based on the ListOrderDetail messages sent in advance of BidRequest message. In the \\\"Disclosed\\\" convention the list repeating group is used to define which ListOrderDetail messages a bid is being sort for and the directions of the required bids.\",\n        \"id\": \"44\",\n        \"msgType\": \"k\",\n        \"name\": \"BidRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = k (lowercase)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = k (lowercase)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Identifies the Bid Request message transaction type\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"BidReqTransTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"374\",\n                    \"name\": \"BidRequestTransType\",\n                    \"type\": \"BidRequestTransTypeCodeSet\"\n                },\n                \"description\": \"Identifies the Bid Request message transaction type\",\n                \"id\": \"374\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"ClBidID\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"391\",\n                    \"name\": \"ClientBidID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"391\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"TotNoReltdSym\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"393\",\n                    \"name\": \"TotNoRelatedSym\",\n                    \"type\": \"int\"\n                },\n                \"id\": \"393\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            e.g. \\\"Non Disclosed\\\", \\\"Disclosed\\\", No Bidding Process\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"BidTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"394\",\n                    \"name\": \"BidType\",\n                    \"type\": \"BidTypeCodeSet\"\n                },\n                \"description\": \"e.g. \\\"Non Disclosed\\\", \\\"Disclosed\\\", No Bidding Process\",\n                \"id\": \"394\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"BidTrdTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"418\",\n                    \"name\": \"BidTradeType\",\n                    \"type\": \"BidTradeTypeCodeSet\"\n                },\n                \"id\": \"418\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"BasisPxTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"419\",\n                    \"name\": \"BasisPxType\",\n                    \"type\": \"BasisPxTypeCodeSet\"\n                },\n                \"id\": \"419\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"l\": {\n        \"abbrName\": \"BidRsp\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"listorders\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"ProgramTrading\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The Bid Response message can be used in one of two ways depending on which market conventions are being followed.\\n\\nIn the \\\"Non disclosed\\\" convention the Bid Response message can be used to supply a bid based on the sector, country, index and liquidity information contained within the corresponding bid request message. See \\\"Program/Basket/List Trading\\\" for an example.\\n\\nIn the \\\"Disclosed\\\" convention the Bid Response message can be used to supply bids based on the List Order Detail messages sent in advance of the corresponding Bid Request message.\",\n        \"id\": \"45\",\n        \"msgType\": \"l\",\n        \"name\": \"BidResponse\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = l (lowercase L)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = l (lowercase L)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Number of bid repeating groups\"] }],\n                \"data\": {\n                    \"abbrName\": \"CompRsp\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"ProgramTrading\",\n                    \"componentRef\": [\n                        {\n                            \"abbrName\": \"Comm\",\n                            \"added\": \"FIX.4.3\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        First element Commission required if NoBidComponents > 0.\"\n                                    ]\n                                }\n                            ],\n                            \"category\": \"Common\",\n                            \"description\": \"First element Commission required if NoBidComponents > 0.\",\n                            \"id\": \"1000\",\n                            \"name\": \"CommissionData\",\n                            \"presence\": \"required\",\n                            \"updated\": \"FIX.5.0SP2\",\n                            \"updatedEP\": \"204\"\n                        }\n                    ],\n                    \"id\": \"2005\",\n                    \"name\": \"BidCompRspGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Number of bid repeating groups\",\n                \"id\": \"2005\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"m\": {\n        \"abbrName\": \"ListStrkPx\",\n        \"added\": \"FIX.4.2\",\n        \"category\": {\n            \"FIXMLFileName\": \"listorders\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"ProgramTrading\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The strike price message is used to exchange strike price information for principal trades. It can also be used to exchange reference prices for agency trades.\",\n        \"id\": \"46\",\n        \"msgType\": \"m\",\n        \"name\": \"ListStrikePrice\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = m (lowercase)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = m (lowercase)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"ListID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"ProgramTrading\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"66\",\n                    \"name\": \"ListID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"66\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Used to support fragmentation. Sum of NoStrikes across all messages with the same ListID.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TotNoStrks\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"422\",\n                    \"name\": \"TotNoStrikes\",\n                    \"type\": \"int\"\n                },\n                \"description\": \"Used to support fragmentation. Sum of NoStrikes across all messages with the same ListID.\",\n                \"id\": \"422\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Number of strike price entries\"] }],\n                \"data\": {\n                    \"abbrName\": \"StrkPX\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"ProgramTrading\",\n                    \"componentRef\": [\n                        {\n                            \"abbrName\": \"Instrmt\",\n                            \"added\": \"FIX.4.3\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                                        \"\\n                        Required if NoStrikes > 0. Must be first field in repeating group.\"\n                                    ]\n                                }\n                            ],\n                            \"category\": \"Common\",\n                            \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\\n\\n\\n                        Required if NoStrikes > 0. Must be first field in repeating group.\",\n                            \"id\": \"1003\",\n                            \"name\": \"Instrument\",\n                            \"presence\": \"required\"\n                        }\n                    ],\n                    \"id\": \"2023\",\n                    \"name\": \"InstrmtStrkPxGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Number of strike price entries\",\n                \"id\": \"2023\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.2\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"n\": {\n        \"abbrName\": \"XMLnonFIX\",\n        \"added\": \"FIX.4.3\",\n        \"category\": { \"FIXMLFileName\": \"session\", \"componentType\": \"Message\", \"name\": \"Session\", \"section\": \"Session\" },\n        \"id\": \"47\",\n        \"msgType\": \"n\",\n        \"name\": \"XMLnonFIX\",\n        \"section\": {\n            \"FIXMLFileName\": \"session\",\n            \"description\": \"Session level messages to establish and control a FIX session\",\n            \"displayOrder\": \"0\",\n            \"name\": \"Session\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"o\": {\n        \"abbrName\": \"RgstInstrctns\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"registration\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"RegistrationInstruction\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Registration Instructions message type may be used by institutions or retail intermediaries wishing to electronically submit registration information to a broker or fund manager (for CIV) for an order or for an allocation.\",\n        \"id\": \"48\",\n        \"msgType\": \"o\",\n        \"name\": \"RegistrationInstructions\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = o (lowercase O)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = o (lowercase O)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Required for Cancel and Replace RegistTransType messages\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RefID\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"RegistrationInstruction\",\n                    \"baseCategoryAbbrName\": \"RefID\",\n                    \"id\": \"508\",\n                    \"name\": \"RegistRefID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"282\"\n                },\n                \"description\": \"Required for Cancel and Replace RegistTransType messages\",\n                \"id\": \"508\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"RegistID\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"RegistrationInstruction\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"513\",\n                    \"name\": \"RegistID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"513\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"TransTyp\",\n                    \"added\": \"FIX.4.3\",\n                    \"id\": \"514\",\n                    \"name\": \"RegistTransType\",\n                    \"type\": \"RegistTransTypeCodeSet\"\n                },\n                \"id\": \"514\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"p\": {\n        \"abbrName\": \"RgstInstrctnsRsp\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"registration\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"RegistrationInstruction\",\n            \"section\": \"PostTrade\"\n        },\n        \"description\": \"The Registration Instructions Response message type may be used by broker or fund manager (for CIV) in response to a Registration Instructions message submitted by an institution or retail intermediary for an order or for an allocation.\",\n        \"id\": \"49\",\n        \"msgType\": \"p\",\n        \"name\": \"RegistrationInstructionsResponse\",\n        \"section\": {\n            \"FIXMLFileName\": \"posttrade\",\n            \"description\": \"Post trade messages including trade reporting, allocation, collateral, confirmation, position mantemenance, registration instruction, and settlement instructions\",\n            \"displayOrder\": \"3\",\n            \"name\": \"PostTrade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = p (lowercase P)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = p (lowercase P)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"RegStat\",\n                    \"added\": \"FIX.4.3\",\n                    \"id\": \"506\",\n                    \"name\": \"RegistStatus\",\n                    \"type\": \"RegistStatusCodeSet\"\n                },\n                \"id\": \"506\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Required for Cancel and Replace RegistTransType messages\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RefID\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"RegistrationInstruction\",\n                    \"baseCategoryAbbrName\": \"RefID\",\n                    \"id\": \"508\",\n                    \"name\": \"RegistRefID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"282\"\n                },\n                \"description\": \"Required for Cancel and Replace RegistTransType messages\",\n                \"id\": \"508\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique identifier of the original Registration Instructions details\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RegistID\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"RegistrationInstruction\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"513\",\n                    \"name\": \"RegistID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique identifier of the original Registration Instructions details\",\n                \"id\": \"513\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Identifies original Registration Instructions transaction type\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TransTyp\",\n                    \"added\": \"FIX.4.3\",\n                    \"id\": \"514\",\n                    \"name\": \"RegistTransType\",\n                    \"type\": \"RegistTransTypeCodeSet\"\n                },\n                \"description\": \"Identifies original Registration Instructions transaction type\",\n                \"id\": \"514\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"q\": {\n        \"abbrName\": \"OrdMassCxlReq\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"ordermasshandling\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"OrderMassHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The order mass cancel request message requests the cancellation of all of the remaining quantity of a group of orders matching criteria specified within the request. NOTE: This message can only be used to cancel order messages (reduce the full quantity).\",\n        \"id\": \"50\",\n        \"msgType\": \"q\",\n        \"name\": \"OrderMassCancelRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = q (lowercase Q)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = q (lowercase Q)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique ID of Order Mass Cancel Request as assigned by the institution.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ClOrdID\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"11\",\n                    \"name\": \"ClOrdID\",\n                    \"type\": \"String\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"282\"\n                },\n                \"description\": \"Unique ID of Order Mass Cancel Request as assigned by the institution.\",\n                \"id\": \"11\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Time this order request was initiated/released by the trader or trading system.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Time this order request was initiated/released by the trader or trading system.\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Specifies the type of cancellation requested\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MassCxlReqTyp\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"OrderMassHandling\",\n                    \"baseCategoryAbbrName\": \"ReqTyp\",\n                    \"id\": \"530\",\n                    \"name\": \"MassCancelRequestType\",\n                    \"type\": \"MassCancelRequestTypeCodeSet\"\n                },\n                \"description\": \"Specifies the type of cancellation requested\",\n                \"id\": \"530\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"r\": {\n        \"abbrName\": \"OrdMassCxlRpt\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"ordermasshandling\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"OrderMassHandling\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"The Order Mass Cancel Report is used to acknowledge an Order Mass Cancel Request. Note that each affected order that is canceled is acknowledged with a separate Execution Report or Order Cancel Reject message.\",\n        \"id\": \"51\",\n        \"msgType\": \"r\",\n        \"name\": \"OrderMassCancelReport\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = r (lowercase R)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = r (lowercase R)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique Identifier for the Order Mass Cancel Request assigned by the recipient of the Order Mass Cancel Request.\"\n                        ]\n                    }\n                ],\n                \"data\": { \"abbrName\": \"OrdID\", \"added\": \"FIX.2.7\", \"id\": \"37\", \"name\": \"OrderID\", \"type\": \"String\" },\n                \"deprecated\": \"FIX.5.0SP1\",\n                \"description\": \"Unique Identifier for the Order Mass Cancel Request assigned by the recipient of the Order Mass Cancel Request.\",\n                \"id\": \"37\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Order Mass Cancel Request Type accepted by the system\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MassCxlReqTyp\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"OrderMassHandling\",\n                    \"baseCategoryAbbrName\": \"ReqTyp\",\n                    \"id\": \"530\",\n                    \"name\": \"MassCancelRequestType\",\n                    \"type\": \"MassCancelRequestTypeCodeSet\"\n                },\n                \"description\": \"Order Mass Cancel Request Type accepted by the system\",\n                \"id\": \"530\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Indicates the action taken by the counterparty order handling system as a result of the Cancel Request\",\n                            \"\\n                            0 - Indicates Order Mass Cancel Request was rejected.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MassCxlRsp\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"OrderMassHandling\",\n                    \"baseCategoryAbbrName\": \"Rsp\",\n                    \"id\": \"531\",\n                    \"name\": \"MassCancelResponse\",\n                    \"type\": \"MassCancelResponseCodeSet\"\n                },\n                \"description\": \"Indicates the action taken by the counterparty order handling system as a result of the Cancel Request\\n\\n\\n                            0 - Indicates Order Mass Cancel Request was rejected.\",\n                \"id\": \"531\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.5.0\",\n                \"addedEP\": \"-1\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Unique Identifier for the Order Mass Cancel Report assigned by the recipient of the Order Mass Cancel Request\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"MassActionReportID\",\n                    \"added\": \"FIX.5.0\",\n                    \"addedEP\": \"58\",\n                    \"id\": \"1369\",\n                    \"name\": \"MassActionReportID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Unique Identifier for the Order Mass Cancel Report assigned by the recipient of the Order Mass Cancel Request\",\n                \"id\": \"1369\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"s\": {\n        \"abbrName\": \"NewOrdCrss\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"crossorders\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"CrossOrders\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"Used to submit a cross order into a market. The cross order contains two order sides (a buy and a sell). The cross order is identified by its CrossID.\",\n        \"id\": \"52\",\n        \"msgType\": \"s\",\n        \"name\": \"NewOrderCross\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = s (lowercase S)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = s (lowercase S)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"OrdTyp\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"Typ\",\n                    \"id\": \"40\",\n                    \"name\": \"OrdType\",\n                    \"type\": \"OrdTypeCodeSet\"\n                },\n                \"id\": \"40\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Time this order request was initiated/released by the trader, trading system, or intermediary.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Time this order request was initiated/released by the trader, trading system, or intermediary.\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"CrssID\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"CrossOrders\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"548\",\n                    \"name\": \"CrossID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"548\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"CrssTyp\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"CrossOrders\",\n                    \"baseCategoryAbbrName\": \"Typ\",\n                    \"id\": \"549\",\n                    \"name\": \"CrossType\",\n                    \"type\": \"CrossTypeCodeSet\"\n                },\n                \"id\": \"549\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"CrssPriortstn\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"CrossOrders\",\n                    \"baseCategoryAbbrName\": \"Priorty\",\n                    \"id\": \"550\",\n                    \"name\": \"CrossPrioritization\",\n                    \"type\": \"CrossPrioritizationCodeSet\"\n                },\n                \"id\": \"550\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Must be 1 or 2\",\n                            \"\\n                            1 or 2 if CrossType=1\",\n                            \"\\n                            2 otherwise\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"SideCrossMod\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"CrossOrders\",\n                    \"componentRef\": [\n                        {\n                            \"abbrName\": \"OrdQty\",\n                            \"added\": \"FIX.4.3\",\n                            \"category\": \"Common\",\n                            \"id\": \"1011\",\n                            \"name\": \"OrderQtyData\",\n                            \"presence\": \"required\"\n                        }\n                    ],\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"Side\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                { \"documentation\": [\"\\n                        Required if NoSides(552) > 0.\"] }\n                            ],\n                            \"description\": \"Required if NoSides(552) > 0.\",\n                            \"id\": \"54\",\n                            \"name\": \"Side\",\n                            \"presence\": \"required\",\n                            \"type\": \"SideCodeSet\"\n                        },\n                        {\n                            \"abbrName\": \"ClOrdID\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Unique identifier of the order as assigned by institution or by the intermediary with closest association with the investor.\"\n                                    ]\n                                }\n                            ],\n                            \"baseCategory\": \"SingleGeneralOrderHandling\",\n                            \"baseCategoryAbbrName\": \"ID\",\n                            \"description\": \"Unique identifier of the order as assigned by institution or by the intermediary with closest association with the investor.\",\n                            \"id\": \"11\",\n                            \"name\": \"ClOrdID\",\n                            \"presence\": \"required\",\n                            \"type\": \"String\",\n                            \"updated\": \"FIX.Latest\",\n                            \"updatedEP\": \"282\"\n                        }\n                    ],\n                    \"id\": \"2059\",\n                    \"name\": \"SideCrossOrdModGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Must be 1 or 2\\n\\n\\n                            1 or 2 if CrossType=1\\n\\n\\n                            2 otherwise\",\n                \"id\": \"2059\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"t\": {\n        \"abbrName\": \"CrssOrdCxlRplcReq\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"crossorders\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"CrossOrders\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"Used to modify a cross order previously submitted using the New Order - Cross message. See Order Cancel Replace Request for details concerning message usage.\",\n        \"id\": \"53\",\n        \"msgType\": \"t\",\n        \"name\": \"CrossOrderCancelReplaceRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = t (lowercase T)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = t (lowercase T)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"OrdTyp\",\n                    \"added\": \"FIX.2.7\",\n                    \"baseCategory\": \"SingleGeneralOrderHandling\",\n                    \"baseCategoryAbbrName\": \"Typ\",\n                    \"id\": \"40\",\n                    \"name\": \"OrdType\",\n                    \"type\": \"OrdTypeCodeSet\"\n                },\n                \"id\": \"40\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Time this order request was initiated/released by the trader, trading system, or intermediary.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Time this order request was initiated/released by the trader, trading system, or intermediary.\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            CrossID for the replacement order\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"CrssID\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"CrossOrders\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"548\",\n                    \"name\": \"CrossID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"CrossID for the replacement order\",\n                \"id\": \"548\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"CrssTyp\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"CrossOrders\",\n                    \"baseCategoryAbbrName\": \"Typ\",\n                    \"id\": \"549\",\n                    \"name\": \"CrossType\",\n                    \"type\": \"CrossTypeCodeSet\"\n                },\n                \"id\": \"549\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"CrssPriortstn\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"CrossOrders\",\n                    \"baseCategoryAbbrName\": \"Priorty\",\n                    \"id\": \"550\",\n                    \"name\": \"CrossPrioritization\",\n                    \"type\": \"CrossPrioritizationCodeSet\"\n                },\n                \"id\": \"550\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Must match the CrossID of the previous cross order. Same order chaining mechanism as ClOrdID/OrigClOrdID with single order Cancel/Replace.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"OrigCrssID\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"CrossOrders\",\n                    \"baseCategoryAbbrName\": \"OrigID\",\n                    \"id\": \"551\",\n                    \"name\": \"OrigCrossID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Must match the CrossID of the previous cross order. Same order chaining mechanism as ClOrdID/OrigClOrdID with single order Cancel/Replace.\",\n                \"id\": \"551\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Must be 1 or 2\"] }],\n                \"data\": {\n                    \"abbrName\": \"SideCrossMod\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"CrossOrders\",\n                    \"id\": \"2059\",\n                    \"name\": \"SideCrossOrdModGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Must be 1 or 2\",\n                \"id\": \"2059\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"u\": {\n        \"abbrName\": \"CrssOrdCxlReq\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"crossorders\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"CrossOrders\",\n            \"section\": \"Trade\"\n        },\n        \"description\": \"Used to fully cancel the remaining open quantity of a cross order.\",\n        \"id\": \"54\",\n        \"msgType\": \"u\",\n        \"name\": \"CrossOrderCancelRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"trade\",\n            \"description\": \"Order handling and execution messages\",\n            \"displayOrder\": \"2\",\n            \"name\": \"Trade\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = u (lowercase U)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = u (lowercase U)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Time this order request was initiated/released by the trader, trading system, or intermediary.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"TxnTm\",\n                    \"added\": \"FIX.2.7\",\n                    \"id\": \"60\",\n                    \"name\": \"TransactTime\",\n                    \"type\": \"UTCTimestamp\",\n                    \"updated\": \"FIX.5.0SP1\",\n                    \"updatedEP\": \"94\"\n                },\n                \"description\": \"Time this order request was initiated/released by the trader, trading system, or intermediary.\",\n                \"id\": \"60\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            CrossID for the replacement order\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"CrssID\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"CrossOrders\",\n                    \"baseCategoryAbbrName\": \"ID\",\n                    \"id\": \"548\",\n                    \"name\": \"CrossID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"CrossID for the replacement order\",\n                \"id\": \"548\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"CrssTyp\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"CrossOrders\",\n                    \"baseCategoryAbbrName\": \"Typ\",\n                    \"id\": \"549\",\n                    \"name\": \"CrossType\",\n                    \"type\": \"CrossTypeCodeSet\"\n                },\n                \"id\": \"549\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"CrssPriortstn\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"CrossOrders\",\n                    \"baseCategoryAbbrName\": \"Priorty\",\n                    \"id\": \"550\",\n                    \"name\": \"CrossPrioritization\",\n                    \"type\": \"CrossPrioritizationCodeSet\"\n                },\n                \"id\": \"550\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Must match the CrossID of previous cross order. Same order chaining mechanism as ClOrdID/OrigClOrdID with single order Cancel/Replace.\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"OrigCrssID\",\n                    \"added\": \"FIX.4.3\",\n                    \"baseCategory\": \"CrossOrders\",\n                    \"baseCategoryAbbrName\": \"OrigID\",\n                    \"id\": \"551\",\n                    \"name\": \"OrigCrossID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Must match the CrossID of previous cross order. Same order chaining mechanism as ClOrdID/OrigClOrdID with single order Cancel/Replace.\",\n                \"id\": \"551\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.4\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            Must be 1 or 2\"] }],\n                \"data\": {\n                    \"abbrName\": \"SideCrossCxl\",\n                    \"added\": \"FIX.4.4\",\n                    \"category\": \"CrossOrders\",\n                    \"componentRef\": [\n                        {\n                            \"abbrName\": \"OrdQty\",\n                            \"added\": \"FIX.4.3\",\n                            \"category\": \"Common\",\n                            \"id\": \"1011\",\n                            \"name\": \"OrderQtyData\",\n                            \"presence\": \"required\"\n                        }\n                    ],\n                    \"fieldRef\": [\n                        {\n                            \"abbrName\": \"Side\",\n                            \"added\": \"FIX.2.7\",\n                            \"id\": \"54\",\n                            \"name\": \"Side\",\n                            \"presence\": \"required\",\n                            \"type\": \"SideCodeSet\"\n                        },\n                        {\n                            \"abbrName\": \"ClOrdID\",\n                            \"added\": \"FIX.2.7\",\n                            \"annotation\": [\n                                {\n                                    \"documentation\": [\n                                        \"\\n                        Unique identifier of the order as assigned by institution or by the intermediary with closest association with the investor.\"\n                                    ]\n                                }\n                            ],\n                            \"baseCategory\": \"SingleGeneralOrderHandling\",\n                            \"baseCategoryAbbrName\": \"ID\",\n                            \"description\": \"Unique identifier of the order as assigned by institution or by the intermediary with closest association with the investor.\",\n                            \"id\": \"11\",\n                            \"name\": \"ClOrdID\",\n                            \"presence\": \"required\",\n                            \"type\": \"String\",\n                            \"updated\": \"FIX.Latest\",\n                            \"updatedEP\": \"282\"\n                        }\n                    ],\n                    \"id\": \"2058\",\n                    \"name\": \"SideCrossOrdCxlGrp\",\n                    \"type\": \"group\"\n                },\n                \"description\": \"Must be 1 or 2\",\n                \"id\": \"2058\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"Instrmt\",\n                    \"added\": \"FIX.4.3\",\n                    \"category\": \"Common\",\n                    \"id\": \"1003\",\n                    \"name\": \"Instrument\",\n                    \"type\": \"component\"\n                },\n                \"description\": \"Insert here the set of \\\"Instrument\\\" (symbology) fields defined in \\\"Common Components of Application Messages\\\"\",\n                \"id\": \"1003\",\n                \"presence\": \"required\"\n            }\n        ]\n    },\n    \"v\": {\n        \"abbrName\": \"SecTypReq\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Security Type Request message is used to return a list of security types available from a counterparty or market.\",\n        \"id\": \"55\",\n        \"msgType\": \"v\",\n        \"name\": \"SecurityTypeRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = v (lowercase V)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = v (lowercase V)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"320\",\n                    \"name\": \"SecurityReqID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"320\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"w\": {\n        \"abbrName\": \"SecTyps\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Security Type Request message is used to return a list of security types available from a counterparty or market.\",\n        \"id\": \"56\",\n        \"msgType\": \"w\",\n        \"name\": \"SecurityTypes\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = w (lowercase W)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = w (lowercase W)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"320\",\n                    \"name\": \"SecurityReqID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"320\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Identifier for the security response message\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RspID\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"322\",\n                    \"name\": \"SecurityResponseID\",\n                    \"type\": \"String\"\n                },\n                \"description\": \"Identifier for the security response message\",\n                \"id\": \"322\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    {\n                        \"documentation\": [\n                            \"\\n                            The result of the security request identified by SecurityReqID\"\n                        ]\n                    }\n                ],\n                \"data\": {\n                    \"abbrName\": \"RspTyp\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"323\",\n                    \"name\": \"SecurityResponseType\",\n                    \"type\": \"SecurityResponseTypeCodeSet\"\n                },\n                \"description\": \"The result of the security request identified by SecurityReqID\",\n                \"id\": \"323\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"x\": {\n        \"abbrName\": \"SecListReq\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Security List Request message is used to return a list of securities from the counterparty that match criteria provided on the request\",\n        \"id\": \"57\",\n        \"msgType\": \"x\",\n        \"name\": \"SecurityListRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = x (lowercase X)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = x (lowercase X)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"320\",\n                    \"name\": \"SecurityReqID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"320\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [\n                    { \"documentation\": [\"\\n                            Type of Security List Request being made\"] }\n                ],\n                \"data\": {\n                    \"abbrName\": \"ListReqTyp\",\n                    \"added\": \"FIX.4.3\",\n                    \"id\": \"559\",\n                    \"name\": \"SecurityListRequestType\",\n                    \"type\": \"SecurityListRequestTypeCodeSet\"\n                },\n                \"description\": \"Type of Security List Request being made\",\n                \"id\": \"559\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"y\": {\n        \"abbrName\": \"SecList\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Security List message is used to return a list of securities that matches the criteria specified in a Security List Request.\",\n        \"id\": \"58\",\n        \"msgType\": \"y\",\n        \"name\": \"SecurityList\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = y (lowercase Y)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = y (lowercase Y)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    },\n    \"z\": {\n        \"abbrName\": \"DerivSecListReq\",\n        \"added\": \"FIX.4.3\",\n        \"category\": {\n            \"FIXMLFileName\": \"securitiesreference\",\n            \"added\": \"FIX.5.0SP1\",\n            \"addedEP\": \"97\",\n            \"componentType\": \"Message\",\n            \"includeFile\": \"components\",\n            \"name\": \"SecuritiesReferenceData\",\n            \"section\": \"PreTrade\"\n        },\n        \"description\": \"The Derivative Security List Request message is used to return a list of securities from the counterparty that match criteria provided on the request\",\n        \"id\": \"59\",\n        \"msgType\": \"z\",\n        \"name\": \"DerivativeSecurityListRequest\",\n        \"section\": {\n            \"FIXMLFileName\": \"pretrade\",\n            \"description\": \"Pre trade messages including reference data, market data, quoting, news and email, indication of interest.\",\n            \"displayOrder\": \"1\",\n            \"name\": \"PreTrade\",\n            \"updated\": \"FIX.Latest\",\n            \"updatedEP\": \"271\"\n        },\n        \"structure\": [\n            {\n                \"added\": \"FIX.4.3\",\n                \"annotation\": [{ \"documentation\": [\"\\n                            MsgType = z (lowercase Z)\"] }],\n                \"data\": {\n                    \"abbrName\": \"Hdr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1024\",\n                    \"name\": \"StandardHeader\",\n                    \"type\": \"component\",\n                    \"updated\": \"FIX.Latest\",\n                    \"updatedEP\": \"271\"\n                },\n                \"description\": \"MsgType = z (lowercase Z)\",\n                \"id\": \"1024\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"ReqID\",\n                    \"added\": \"FIX.4.2\",\n                    \"id\": \"320\",\n                    \"name\": \"SecurityReqID\",\n                    \"type\": \"String\"\n                },\n                \"id\": \"320\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"ListReqTyp\",\n                    \"added\": \"FIX.4.3\",\n                    \"id\": \"559\",\n                    \"name\": \"SecurityListRequestType\",\n                    \"type\": \"SecurityListRequestTypeCodeSet\"\n                },\n                \"id\": \"559\",\n                \"presence\": \"required\"\n            },\n            {\n                \"added\": \"FIX.4.3\",\n                \"data\": {\n                    \"abbrName\": \"Trlr\",\n                    \"added\": \"FIX.4.0\",\n                    \"category\": \"Session\",\n                    \"id\": \"1025\",\n                    \"name\": \"StandardTrailer\",\n                    \"type\": \"component\"\n                },\n                \"id\": \"1025\",\n                \"presence\": \"required\"\n            }\n        ],\n        \"updated\": \"FIX.5.0SP1\",\n        \"updatedEP\": \"97\"\n    }\n}\n", "import type { Field } from '../fields/Field.ts';\nimport type { Message } from '../message/Message.ts';\nimport prebuiltMap from '../spec/MessageType.json';\nimport type { ISpecDatatypes } from '../spec/SpecDatatypes.ts';\n\n/**\n * Reference types from the FIX specification.\n *\n * @public\n */\nexport type RefType = {\n    id: string;\n    name: string;\n    presence?: string;\n    added?: string;\n    addedEP?: string;\n    updated?: string;\n    updatedEP?: string;\n    annotation?: {\n        documentation: string;\n    };\n};\n\n/**\n * Represents a code set in the FIX specification.\n * Contains information about valid values for a field.\n */\nexport type CodeSet = {\n    name: string;\n    id: string;\n    value: string;\n    sort: string;\n    added?: string;\n    addedEP?: string;\n    updated?: string;\n    updatedEP?: string;\n    description: string;\n};\n\n/**\n * Represents a data structure in the FIX specification.\n * Contains information about fields, groups, and components that make up a message type.\n */\nexport type DataStructure = {\n    id: string;\n    added?: string;\n    category: string;\n    abbrName: string;\n    name: string;\n    type: string;\n    numInGroup?: {\n        id: string;\n        added: string;\n        description: string;\n    };\n    fieldRef: RefType[];\n    groupRef: RefType[];\n    componentRef: RefType[];\n    datatype: ISpecDatatypes;\n    codeSet: {\n        name: string;\n        id: string;\n        type: string;\n        added?: string;\n        addedEP?: string;\n        updated?: string;\n        updatedEP?: string;\n        description: string;\n        code: CodeSet[];\n    };\n    description: string;\n};\n\n/**\n * Represents a structure in the FIX specification.\n * Can be a component reference, field reference, or group reference.\n */\nexport type Structure = {\n    id: string;\n    added: string;\n    addedEP?: string;\n    updated?: string;\n    updatedEP?: string;\n    deprecated?: string;\n    presence?: string;\n    description?: string;\n    type: 'componentRef' | 'fieldRef' | 'groupRef';\n    data: DataStructure;\n};\n\n/**\n * Represents a message type structure in the FIX specification.\n * Contains information about a specific FIX message type, including its structure and metadata.\n */\nexport type MessageTypeStructure = {\n    id: string;\n    msgType: string;\n    abbrName: string;\n    name: string;\n    description?: string;\n    added?: string;\n    addedEP?: string;\n    updated?: string;\n    updatedEP?: string;\n    category: {\n        section: string;\n        added?: string;\n        addedEP?: string;\n        FIXMLFileName: string;\n        componentType: string;\n        name: string;\n        description?: string;\n    };\n    section: any;\n    structure: Structure[];\n};\n\n/**\n * Class for managing FIX message types.\n * Provides functionality to set message types and sequences for FIX messages.\n */\nexport class MessageType {\n    /** Cache map for storing message type structures */\n    public cacheMap: Map<string, MessageTypeStructure>;\n\n    /**\n     * Creates a new MessageType instance and initializes the cache map\n     * with prebuilt message type structures.\n     */\n    constructor() {\n        const map = Object.entries(prebuiltMap);\n        this.cacheMap = new Map<string, MessageTypeStructure>(map as unknown as Map<string, MessageTypeStructure>);\n    }\n\n    /**\n     * Sets the message type and related information for a FIX message.\n     * Updates the message's type, description, and structure based on the field value.\n     *\n     * @param {Message} message - The FIX message to update\n     * @param {Field} field - The field containing the message type value\n     */\n    public setMessageType(message: Message, field: Field): void {\n        const messageType: MessageTypeStructure | undefined = this.cacheMap.get(field.value as string);\n        if (messageType) {\n            if (messageType.msgType) {\n                message.messageType = messageType.msgType;\n            }\n            if (messageType.name) {\n                message.description = messageType.name;\n            }\n            if (messageType.description) {\n                message.messageTypeDescription = messageType.description;\n            }\n            message.structure = messageType.structure;\n        }\n    }\n\n    /**\n     * Sets the message sequence number for a FIX message.\n     *\n     * @param {Message} message - The FIX message to update\n     * @param {number} messageSequence - The sequence number to set\n     */\n    public setMessageSequence(message: Message, messageSequence: number): void {\n        message.messageSequence = messageSequence;\n    }\n}\n", "export interface ISpecFields {\n    id: number;\n    type: string;\n    name: string;\n    description?: string;\n    abbrName?: string;\n    added?: string;\n    addedEP?: string;\n    updated?: string;\n    updatedEP?: string;\n    deprecated?: string;\n    deprecatedEP?: string;\n    baseCategory?: string;\n    baseCategoryAbbrName?: string;\n    unionDataType?: string;\n    lengthId?: string;\n    discriminatorId?: string;\n}\nconst batch1: ISpecFields[] = [\n    {\n        id: 1,\n        name: 'Account',\n        abbrName: 'Acct',\n        type: 'String',\n        added: 'FIX.2.7',\n        description:\n            'Account mnemonic as agreed between buy and sell sides, e.g. broker and institution or investor/intermediary and fund manager.',\n    },\n    {\n        id: 2,\n        name: 'AdvId',\n        abbrName: 'AdvId',\n        type: 'String',\n        added: 'FIX.2.7',\n        description: 'Unique identifier of advertisement message.\\n\\n(Prior to FIX 4.1 this field was of type int)',\n    },\n    {\n        id: 3,\n        name: 'AdvRefID',\n        abbrName: 'AdvRefID',\n        type: 'String',\n        added: 'FIX.2.7',\n        description:\n            'Reference identifier used with CANCEL and REPLACE transaction types.\\n\\n(Prior to FIX 4.1 this field was of type int)',\n    },\n    {\n        id: 4,\n        name: 'AdvSide',\n        abbrName: 'AdvSide',\n        type: 'AdvSideCodeSet',\n        added: 'FIX.2.7',\n        description: \"Broker's side of advertised trade\",\n    },\n    {\n        id: 5,\n        name: 'AdvTransType',\n        abbrName: 'AdvTransTyp',\n        type: 'AdvTransTypeCodeSet',\n        added: 'FIX.2.7',\n        description: 'Identifies advertisement message transaction type',\n    },\n    {\n        id: 6,\n        name: 'AvgPx',\n        abbrName: 'AvgPx',\n        type: 'Price',\n        added: 'FIX.2.7',\n        description:\n            'Calculated average price of all fills on this order.\\n\\nFor Fixed Income trades AvgPx is always expressed as percent-of-par, regardless of the PriceType (423) of LastPx (31). I.e., AvgPx will contain an average of percent-of-par values (see LastParPx (669)) for issues traded in Yield, Spread or Discount.',\n    },\n    {\n        id: 7,\n        name: 'BeginSeqNo',\n        abbrName: 'BeginSeqNo',\n        type: 'SeqNum',\n        added: 'FIX.2.7',\n        description: 'Message sequence number of first message in range to be resent',\n    },\n    {\n        id: 8,\n        name: 'BeginString',\n        abbrName: 'BeginString',\n        type: 'BeginStringCodeSet',\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '270',\n        description:\n            'Identifies beginning of new message and session protocol version by means of a session profile identifier (see FIX Session Layer for details). ALWAYS FIRST FIELD IN MESSAGE. (Always unencrypted).',\n    },\n    {\n        id: 9,\n        name: 'BodyLength',\n        abbrName: 'BodyLength',\n        type: 'Length',\n        added: 'FIX.2.7',\n        description:\n            'Message length, in bytes, forward to the CheckSum field. ALWAYS SECOND FIELD IN MESSAGE. (Always unencrypted)',\n    },\n    {\n        id: 10,\n        name: 'CheckSum',\n        abbrName: 'CheckSum',\n        type: 'String',\n        added: 'FIX.2.7',\n        description:\n            'Three byte, simple checksum (see Volume 2: \"Checksum Calculation\" for description). ALWAYS LAST FIELD IN MESSAGE; i.e. serves, with the trailing <SOH>, as the end-of-message delimiter. Always defined as three characters. (Always unencrypted)',\n    },\n    {\n        id: 11,\n        name: 'ClOrdID',\n        abbrName: 'ClOrdID',\n        type: 'String',\n        baseCategory: 'SingleGeneralOrderHandling',\n        baseCategoryAbbrName: 'ID',\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc.) (identified by SenderCompID(49) or OnBehalfOfCompID(115) as appropriate). Uniqueness must be guaranteed within a single trading day. Firms, particularly those which electronically submit multi-day orders, trade globally or throughout market close periods, should ensure uniqueness across days, for example by embedding a date within the ClOrdID(11) field.',\n    },\n    {\n        id: 12,\n        name: 'Commission',\n        abbrName: 'Comm',\n        type: 'Amt',\n        added: 'FIX.2.7',\n        description: 'Commission. Note if CommType (13) is percentage, Commission of 5% should be represented as .05.',\n    },\n    {\n        id: 13,\n        name: 'CommType',\n        abbrName: 'CommTyp',\n        type: 'CommTypeCodeSet',\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Specifies the basis or unit used to calculate the total commission based on the rate.',\n    },\n    {\n        id: 14,\n        name: 'CumQty',\n        abbrName: 'CumQty',\n        type: 'Qty',\n        added: 'FIX.2.7',\n        description: 'Total quantity (e.g. number of shares) filled.\\n\\n(Prior to FIX 4.2 this field was of type int)',\n    },\n    {\n        id: 15,\n        name: 'Currency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Identifies currency used for price or quantity fields, depending on the asset class being traded. CurrencyCodeSource(2897) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\\n\\nAbsence of this field is interpreted as the default currency for the security as defined by the respective reference data. It is recommended that systems provide the currency value whenever possible.\\n\\nFor securities trading and digital assets traded securities-style, identifies the currency used to denote the price. Absence of this field is interpreted as the default for the security. For Foreign Exchange (FX) and digital assets traded FX-style, identifies the dealt currency used to denominate the quantity related field(s).',\n    },\n    {\n        id: 16,\n        name: 'EndSeqNo',\n        abbrName: 'EndSeqNo',\n        type: 'SeqNum',\n        added: 'FIX.2.7',\n        description:\n            'Message sequence number of last message in range to be resent. If request is for a single message BeginSeqNo (7) = EndSeqNo. If request is for all messages subsequent to a particular message, EndSeqNo = \"0\" (representing infinity).',\n    },\n    {\n        id: 17,\n        name: 'ExecID',\n        abbrName: 'ExecID',\n        type: 'String',\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description:\n            'Unique identifier of execution message as assigned by sell-side (broker, exchange, ECN) (will be 0 (zero) for ExecType (150)=I (Order Status)).\\n\\nUniqueness must be guaranteed within a single trading day or the life of a multi-day order. Firms which accept multi-day orders should consider embedding a date within the ExecID field to assure uniqueness across days.\\n\\n(Prior to FIX 4.1 this field was of type int).',\n    },\n    {\n        id: 18,\n        name: 'ExecInst',\n        abbrName: 'ExecInst',\n        type: 'ExecInstCodeSet',\n        added: 'FIX.2.7',\n        description:\n            'Instructions for order handling on exchange trading floor. If more than one instruction is applicable to an order, this field can contain multiple instructions separated by space. *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" *** (see Volume : \"Glossary\" for value definitions)',\n    },\n    {\n        id: 19,\n        name: 'ExecRefID',\n        abbrName: 'ExecRefID',\n        type: 'String',\n        added: 'FIX.2.7',\n        description:\n            'Reference identifier used with Trade, Trade Cancel and Trade Correct execution types.\\n\\n(Prior to FIX 4.1 this field was of type int)',\n    },\n    {\n        id: 21,\n        name: 'HandlInst',\n        abbrName: 'HandlInst',\n        type: 'HandlInstCodeSet',\n        added: 'FIX.2.7',\n        description: 'Instructions for order handling on Broker trading floor',\n    },\n    {\n        id: 22,\n        name: 'SecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '161',\n        description: 'Identifies class or source of the SecurityID(48) value.',\n    },\n    {\n        id: 23,\n        name: 'IOIID',\n        abbrName: 'IOIID',\n        type: 'String',\n        baseCategory: 'Indication',\n        baseCategoryAbbrName: 'ID',\n        added: 'FIX.2.7',\n        description: 'Unique identifier of IOI message.\\n\\n(Prior to FIX 4.1 this field was of type int)',\n    },\n    {\n        id: 25,\n        name: 'IOIQltyInd',\n        abbrName: 'QltyInd',\n        type: 'IOIQltyIndCodeSet',\n        added: 'FIX.2.7',\n        description: 'Relative quality of indication',\n    },\n    {\n        id: 26,\n        name: 'IOIRefID',\n        abbrName: 'RefID',\n        type: 'String',\n        added: 'FIX.2.7',\n        description:\n            'Reference identifier used with CANCEL and REPLACE, transaction types.\\n\\n(Prior to FIX 4.1 this field was of type int)',\n    },\n    {\n        id: 27,\n        name: 'IOIQty',\n        abbrName: 'Qty',\n        type: 'IOIQtyCodeSet',\n        unionDataType: 'Qty',\n        added: 'FIX.2.7',\n        description: 'Quantity (e.g. number of shares) in numeric form or relative size.',\n    },\n    {\n        id: 28,\n        name: 'IOITransType',\n        abbrName: 'TransTyp',\n        type: 'IOITransTypeCodeSet',\n        added: 'FIX.2.7',\n        description: 'Identifies IOI message transaction type',\n    },\n    {\n        id: 29,\n        name: 'LastCapacity',\n        abbrName: 'LastCpcty',\n        type: 'LastCapacityCodeSet',\n        added: 'FIX.2.7',\n        description: 'Broker capacity in order execution',\n    },\n    {\n        id: 30,\n        name: 'LastMkt',\n        abbrName: 'LastMkt',\n        type: 'Exchange',\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '228',\n        description:\n            'Market of execution for last fill, or an indication of the market where an order was routed\\n\\nValid values:\\n\\nSee \"Appendix 6-C\"\\n\\nIn the context of ESMA RTS 1 Annex I, Table 3, Field 6 \"Venue of Execution\" it is required that the \"venue where the transaction was executed\" be identified using ISO 10383 (MIC). Additionally, ESMA requires the use of \"MIC code \\'XOFF\\' for financial instruments admitted to trading or traded on a trading venue, where the transaction on that financial instrument is not executed on a trading venue, systematic internaliser or organized trading platform outside of the Union. Use \\'SINT\\' for financial instruments admitted to trading or traded on a trading venue, where the transaction is executed on a systematic internaliser.\"',\n    },\n    {\n        id: 31,\n        name: 'LastPx',\n        abbrName: 'LastPx',\n        type: 'Price',\n        added: 'FIX.2.7',\n        description: 'Price of this (last) fill.',\n    },\n    {\n        id: 32,\n        name: 'LastQty',\n        abbrName: 'LastQty',\n        type: 'Qty',\n        added: 'FIX.2.7',\n        description:\n            'Quantity (e.g. shares) bought/sold on this (last) fill.\\n\\n(Prior to FIX 4.2 this field was of type int)',\n    },\n    {\n        id: 33,\n        name: 'NoLinesOfText',\n        type: 'NumInGroup',\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Identifies number of lines of text body',\n    },\n    {\n        id: 34,\n        name: 'MsgSeqNum',\n        abbrName: 'SeqNum',\n        type: 'SeqNum',\n        added: 'FIX.2.7',\n        description: 'Integer message sequence number.',\n    },\n    {\n        id: 35,\n        name: 'MsgType',\n        abbrName: 'MsgTyp',\n        type: 'MsgTypeCodeSet',\n        added: 'FIX.2.7',\n        description:\n            'Defines message type ALWAYS THIRD FIELD IN MESSAGE. (Always unencrypted)\\n\\nNote: A \"U\" as the first character in the MsgType field (i.e. U, U2, etc) indicates that the message format is privately defined between the sender and receiver.\\n\\n*** Note the use of lower case letters ***',\n    },\n    {\n        id: 36,\n        name: 'NewSeqNo',\n        abbrName: 'NewSeqNo',\n        type: 'SeqNum',\n        added: 'FIX.2.7',\n        description: 'New sequence number',\n    },\n    {\n        id: 37,\n        name: 'OrderID',\n        abbrName: 'OrdID',\n        type: 'String',\n        added: 'FIX.2.7',\n        description:\n            'Unique identifier for Order as assigned by sell-side (broker, exchange, ECN). Uniqueness must be guaranteed within a single trading day. Firms which accept multi-day orders should consider embedding a date within the OrderID field to assure uniqueness across days.',\n    },\n    {\n        id: 38,\n        name: 'OrderQty',\n        abbrName: 'Qty',\n        type: 'Qty',\n        added: 'FIX.2.7',\n        description:\n            'Quantity ordered. This represents the number of shares for equities or par, face or nominal value for FI instruments.\\n\\n(Prior to FIX 4.2 this field was of type int)',\n    },\n    {\n        id: 39,\n        name: 'OrdStatus',\n        abbrName: 'OrdStat',\n        type: 'OrdStatusCodeSet',\n        baseCategory: 'SingleGeneralOrderHandling',\n        baseCategoryAbbrName: 'Stat',\n        added: 'FIX.2.7',\n        description:\n            'Identifies current status of order. *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" *** (see Volume : \"Glossary\" for value definitions)',\n    },\n    {\n        id: 40,\n        name: 'OrdType',\n        abbrName: 'OrdTyp',\n        type: 'OrdTypeCodeSet',\n        baseCategory: 'SingleGeneralOrderHandling',\n        baseCategoryAbbrName: 'Typ',\n        added: 'FIX.2.7',\n        description:\n            'Order type. *** SOME VALUES ARE NO LONGER USED - See \"Deprecated (Phased-out) Features and Supported Approach\" *** (see Volume : \"Glossary\" for value definitions)',\n    },\n    {\n        id: 41,\n        name: 'OrigClOrdID',\n        abbrName: 'OrigClOrdID',\n        type: 'String',\n        baseCategory: 'SingleGeneralOrderHandling',\n        baseCategoryAbbrName: 'OrigID',\n        added: 'FIX.2.7',\n        description:\n            'ClOrdID (11) of the previous order (NOT the initial order of the day) as assigned by the institution, used to identify the previous order in cancel and cancel/replace requests.',\n    },\n    {\n        id: 42,\n        name: 'OrigTime',\n        abbrName: 'OrigTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.2.7',\n        description:\n            'Time of message origination (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\"))',\n    },\n    {\n        id: 43,\n        name: 'PossDupFlag',\n        abbrName: 'PosDup',\n        type: 'PossDupFlagCodeSet',\n        added: 'FIX.2.7',\n        description: 'Indicates possible retransmission of message with this sequence number',\n    },\n    {\n        id: 44,\n        name: 'Price',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.2.7',\n        description: 'Price per unit of quantity (e.g. per share)',\n    },\n    {\n        id: 45,\n        name: 'RefSeqNum',\n        abbrName: 'RefSeqNum',\n        type: 'SeqNum',\n        added: 'FIX.2.7',\n        description: 'Reference message sequence number',\n    },\n    {\n        id: 48,\n        name: 'SecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '22',\n        added: 'FIX.2.7',\n        description:\n            'Security identifier value of SecurityIDSource (22) type (e.g. CUSIP, SEDOL, ISIN, etc). Requires SecurityIDSource.',\n    },\n    {\n        id: 49,\n        name: 'SenderCompID',\n        abbrName: 'SID',\n        type: 'String',\n        added: 'FIX.2.7',\n        description: 'Assigned value used to identify firm sending message.',\n    },\n    {\n        id: 50,\n        name: 'SenderSubID',\n        abbrName: 'SSub',\n        type: 'String',\n        added: 'FIX.2.7',\n        description: 'Assigned value used to identify specific message originator (desk, trader, etc.)',\n    },\n    {\n        id: 52,\n        name: 'SendingTime',\n        abbrName: 'Snt',\n        type: 'UTCTimestamp',\n        added: 'FIX.2.7',\n        description:\n            'Time of message transmission (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")',\n    },\n    {\n        id: 53,\n        name: 'Quantity',\n        abbrName: 'Qty',\n        type: 'Qty',\n        added: 'FIX.2.7',\n        description: 'Overall/total quantity (e.g. number of shares)\\n\\n(Prior to FIX 4.2 this field was of type int)',\n    },\n    {\n        id: 54,\n        name: 'Side',\n        abbrName: 'Side',\n        type: 'SideCodeSet',\n        added: 'FIX.2.7',\n        description: 'Side of order (see Volume : \"Glossary\" for value definitions)',\n    },\n    {\n        id: 55,\n        name: 'Symbol',\n        abbrName: 'Sym',\n        type: 'String',\n        added: 'FIX.2.7',\n        description:\n            'Ticker symbol. Common, \"human understood\" representation of the security. SecurityID (48) value can be specified if no symbol exists (e.g. non-exchange traded Collective Investment Vehicles)\\n\\nUse \"[N/A]\" for products which do not have a symbol.',\n    },\n    {\n        id: 56,\n        name: 'TargetCompID',\n        abbrName: 'TID',\n        type: 'String',\n        added: 'FIX.2.7',\n        description: 'Assigned value used to identify receiving firm.',\n    },\n    {\n        id: 57,\n        name: 'TargetSubID',\n        abbrName: 'TSub',\n        type: 'String',\n        added: 'FIX.2.7',\n        description:\n            'Assigned value used to identify specific individual or unit intended to receive message. \"ADMIN\" reserved for administrative messages not intended for a specific user.',\n    },\n    {\n        id: 58,\n        name: 'Text',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.2.7',\n        description: 'Free format text string\\n\\n(Note: this field does not have a specified maximum length)',\n    },\n    {\n        id: 59,\n        name: 'TimeInForce',\n        abbrName: 'TmInForce',\n        type: 'TimeInForceCodeSet',\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Specifies how long the order remains in effect. Absence of this field is interpreted as DAY. NOTE not applicable to CIV Orders.',\n    },\n    {\n        id: 60,\n        name: 'TransactTime',\n        abbrName: 'TxnTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '94',\n        description: 'Timestamp when the business transaction represented by the message occurred.',\n    },\n    {\n        id: 61,\n        name: 'Urgency',\n        abbrName: 'Urgency',\n        type: 'UrgencyCodeSet',\n        added: 'FIX.2.7',\n        description: 'Urgency flag',\n    },\n    {\n        id: 62,\n        name: 'ValidUntilTime',\n        abbrName: 'ValidUntilTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.2.7',\n        description:\n            'Indicates expiration time of indication message (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")',\n    },\n    {\n        id: 63,\n        name: 'SettlType',\n        abbrName: 'SettlTyp',\n        type: 'SettlTypeCodeSet',\n        unionDataType: 'Tenor',\n        added: 'FIX.2.7',\n        description:\n            'Indicates order settlement period. If present, SettlDate (64) overrides this field. If both SettlType (63) and SettDate (64) are omitted, the default for SettlType (63) is 0 (Regular)\\n\\nRegular is defined as the default settlement period for the particular security on the exchange of execution.\\n\\nIn Fixed Income the contents of this field may influence the instrument definition if the SecurityID (48) is ambiguous. In the US an active Treasury offering may be re-opened, and for a time one CUSIP will apply to both the current and \"when-issued\" securities. Supplying a value of \"7\" clarifies the instrument description; any other value or the absence of this field should cause the respondent to default to the active issue.\\n\\nAdditionally the following patterns may be uses as well as enum values\\n\\nDx = FX tenor expression for \"days\", e.g. \"D5\", where \"x\" is any integer > 0\\n\\nMx = FX tenor expression for \"months\", e.g. \"M3\", where \"x\" is any integer > 0\\n\\nWx = FX tenor expression for \"weeks\", e.g. \"W13\", where \"x\" is any integer > 0\\n\\nYx = FX tenor expression for \"years\", e.g. \"Y1\", where \"x\" is any integer > 0\\n\\nNoted that for FX the tenors expressed using Dx, Mx, Wx, and Yx values do not denote business days, but calendar days.',\n    },\n    {\n        id: 64,\n        name: 'SettlDate',\n        abbrName: 'SettlDt',\n        type: 'LocalMktDate',\n        added: 'FIX.2.7',\n        description:\n            'Specific date of trade settlement (SettlementDate) in YYYYMMDD format.\\n\\nIf present, this field overrides SettlType (63). This field is required if the value of SettlType (63) is 6 (Future) or 8 (Sellers Option). This field must be omitted if the value of SettlType (63) is 7 (When and If Issued)\\n\\n(expressed in local time at place of settlement)',\n    },\n    {\n        id: 65,\n        name: 'SymbolSfx',\n        abbrName: 'Sfx',\n        type: 'SymbolSfxCodeSet',\n        added: 'FIX.2.7',\n        description:\n            'Additional information about the security (e.g. preferred, warrants, etc.). Note also see SecurityType (167).\\n\\nAs defined in the NYSE Stock and bond Symbol Directory and in the AMEX Fitch Directory.',\n    },\n    {\n        id: 66,\n        name: 'ListID',\n        abbrName: 'ListID',\n        type: 'String',\n        baseCategory: 'ProgramTrading',\n        baseCategoryAbbrName: 'ID',\n        added: 'FIX.2.7',\n        description:\n            'Unique identifier for list as assigned by institution, used to associate multiple individual orders. Uniqueness must be guaranteed within a single trading day. Firms which generate multi-day orders should consider embedding a date within the ListID field to assure uniqueness across days.',\n    },\n    {\n        id: 67,\n        name: 'ListSeqNo',\n        abbrName: 'ListSeqNo',\n        type: 'int',\n        baseCategory: 'ProgramTrading',\n        baseCategoryAbbrName: 'SeqNo',\n        added: 'FIX.2.7',\n        description:\n            'Sequence of individual order within list (i.e. ListSeqNo of TotNoOrders (68), 2 of 25, 3 of 25, . . . )',\n    },\n    {\n        id: 68,\n        name: 'TotNoOrders',\n        abbrName: 'TotNoOrds',\n        type: 'int',\n        added: 'FIX.2.7',\n        description:\n            'Total number of list order entries across all messages. Should be the sum of all NoOrders (73) in each message that has repeating list order entries related to the same ListID (66). Used to support fragmentation.\\n\\n(Prior to FIX 4.2 this field was named \"ListNoOrds\")',\n    },\n    {\n        id: 69,\n        name: 'ListExecInst',\n        abbrName: 'ListExecInst',\n        type: 'String',\n        added: 'FIX.2.7',\n        description: 'Free format text message containing list handling and execution instructions.',\n    },\n    {\n        id: 70,\n        name: 'AllocID',\n        abbrName: 'AllocID',\n        type: 'String',\n        baseCategory: 'Allocation',\n        baseCategoryAbbrName: 'ID',\n        added: 'FIX.2.7',\n        description: 'Unique identifier for allocation message.\\n\\n(Prior to FIX 4.1 this field was of type int)',\n    },\n    {\n        id: 71,\n        name: 'AllocTransType',\n        abbrName: 'TransTyp',\n        type: 'AllocTransTypeCodeSet',\n        added: 'FIX.2.7',\n        description:\n            'Identifies allocation transaction type *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" ***',\n    },\n    {\n        id: 72,\n        name: 'RefAllocID',\n        abbrName: 'RefAllocID',\n        type: 'String',\n        baseCategory: 'Allocation',\n        baseCategoryAbbrName: 'RefID',\n        added: 'FIX.2.7',\n        description:\n            'Reference identifier to be used with AllocTransType (71) = Replace or Cancel.\\n\\n(Prior to FIX 4.1 this field was of type int)',\n    },\n    {\n        id: 73,\n        name: 'NoOrders',\n        type: 'NumInGroup',\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Indicates number of orders to be combined for average pricing and allocation.',\n    },\n    {\n        id: 74,\n        name: 'AvgPxPrecision',\n        abbrName: 'AvgPxPrcsn',\n        type: 'int',\n        added: 'FIX.2.7',\n        description:\n            'Indicates number of decimal places to be used for average pricing. Absence of this field indicates that default precision arranged by the broker/institution is to be used.',\n    },\n    {\n        id: 75,\n        name: 'TradeDate',\n        abbrName: 'TrdDt',\n        type: 'LocalMktDate',\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '190',\n        description:\n            'Indicates date of trading day. Absence of this field indicates current day (expressed in local time at place of trade).',\n    },\n    {\n        id: 77,\n        name: 'PositionEffect',\n        abbrName: 'PosEfct',\n        type: 'PositionEffectCodeSet',\n        added: 'FIX.2.7',\n        description:\n            'Indicates whether the resulting position after a trade should be an opening position or closing position. Used for omnibus accounting - where accounts are held on a gross basis instead of being netted together.',\n    },\n    {\n        id: 78,\n        name: 'NoAllocs',\n        type: 'NumInGroup',\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of repeating AllocAccount (79)/AllocPrice (366) entries.',\n    },\n    {\n        id: 79,\n        name: 'AllocAccount',\n        abbrName: 'Acct',\n        type: 'String',\n        added: 'FIX.2.7',\n        description: 'Sub-account mnemonic',\n    },\n    {\n        id: 80,\n        name: 'AllocQty',\n        abbrName: 'Qty',\n        type: 'Qty',\n        added: 'FIX.2.7',\n        description:\n            'Quantity to be allocated to specific sub-account\\n\\n(Prior to FIX 4.2 this field was of type int)',\n    },\n    {\n        id: 81,\n        name: 'ProcessCode',\n        abbrName: 'ProcCode',\n        type: 'ProcessCodeCodeSet',\n        added: 'FIX.2.7',\n        description:\n            'Processing code for sub-account. Absence of this field in AllocAccount (79) / AllocPrice (366) /AllocQty (80) / ProcessCode instance indicates regular trade.',\n    },\n    {\n        id: 82,\n        name: 'NoRpts',\n        abbrName: 'NoRpts',\n        type: 'int',\n        added: 'FIX.2.7',\n        description: 'Total number of reports within series.',\n    },\n    {\n        id: 83,\n        name: 'RptSeq',\n        abbrName: 'RptSeq',\n        type: 'int',\n        added: 'FIX.2.7',\n        description:\n            'Sequence number of message within report series. Used to carry reporting sequence number of the fill as represented on the Trade Report Side.',\n    },\n    {\n        id: 84,\n        name: 'CxlQty',\n        abbrName: 'CxlQty',\n        type: 'Qty',\n        added: 'FIX.2.7',\n        description: 'Total quantity canceled for this order.\\n\\n(Prior to FIX 4.2 this field was of type int)',\n    },\n    {\n        id: 85,\n        name: 'NoDlvyInst',\n        type: 'NumInGroup',\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'Number of delivery instruction fields in repeating group.\\n\\nNote this field was removed in FIX 4.1 and reinstated in FIX 4.4.',\n    },\n    {\n        id: 87,\n        name: 'AllocStatus',\n        abbrName: 'Stat',\n        type: 'AllocStatusCodeSet',\n        baseCategory: 'Allocation',\n        baseCategoryAbbrName: 'Stat',\n        added: 'FIX.2.7',\n        description: 'Identifies status of allocation.',\n    },\n    {\n        id: 88,\n        name: 'AllocRejCode',\n        abbrName: 'RejCode',\n        type: 'AllocRejCodeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Identifies reason for rejection.',\n    },\n    {\n        id: 89,\n        name: 'Signature',\n        abbrName: 'Signature',\n        type: 'data',\n        lengthId: '93',\n        added: 'FIX.2.7',\n        deprecated: 'FIXT.1.1',\n        description: 'Electronic signature',\n    },\n    {\n        id: 90,\n        name: 'SecureDataLen',\n        abbrName: 'SecureDataLen',\n        type: 'Length',\n        added: 'FIX.2.7',\n        deprecated: 'FIXT.1.1',\n        description: 'Length of encrypted message',\n    },\n    {\n        id: 91,\n        name: 'SecureData',\n        abbrName: 'SecureData',\n        type: 'data',\n        lengthId: '90',\n        added: 'FIX.2.7',\n        deprecated: 'FIXT.1.1',\n        description: 'Actual encrypted data stream',\n    },\n    {\n        id: 93,\n        name: 'SignatureLength',\n        abbrName: 'SignatureLength',\n        type: 'Length',\n        added: 'FIX.2.7',\n        deprecated: 'FIXT.1.1',\n        description: 'Number of bytes in signature field',\n    },\n    {\n        id: 94,\n        name: 'EmailType',\n        abbrName: 'EmailTyp',\n        type: 'EmailTypeCodeSet',\n        added: 'FIX.2.7',\n        description: 'Email message type.',\n    },\n    {\n        id: 95,\n        name: 'RawDataLength',\n        abbrName: 'RawDataLength',\n        type: 'Length',\n        added: 'FIX.2.7',\n        description: 'Number of bytes in raw data field.',\n    },\n    {\n        id: 96,\n        name: 'RawData',\n        abbrName: 'RawData',\n        type: 'data',\n        lengthId: '95',\n        added: 'FIX.2.7',\n        description: 'Unformatted raw data, can include bitmaps, word processor documents, etc.',\n    },\n    {\n        id: 97,\n        name: 'PossResend',\n        abbrName: 'PosRsnd',\n        type: 'PossResendCodeSet',\n        added: 'FIX.2.7',\n        description: 'Indicates that message may contain information that has been sent under another sequence number.',\n    },\n    {\n        id: 98,\n        name: 'EncryptMethod',\n        abbrName: 'EncryptMethod',\n        type: 'EncryptMethodCodeSet',\n        added: 'FIX.2.7',\n        description: 'Method of encryption.',\n    },\n    {\n        id: 99,\n        name: 'StopPx',\n        abbrName: 'StopPx',\n        type: 'Price',\n        added: 'FIX.2.7',\n        description: 'Price per unit of quantity (e.g. per share)',\n    },\n    {\n        id: 100,\n        name: 'ExDestination',\n        abbrName: 'ExDest',\n        type: 'Exchange',\n        added: 'FIX.2.7',\n        description:\n            'Execution destination as defined by institution when order is entered.\\n\\nValid values:\\n\\nSee \"Appendix 6-C\"',\n    },\n    {\n        id: 102,\n        name: 'CxlRejReason',\n        abbrName: 'CxlRejRsn',\n        type: 'CxlRejReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.2.7',\n        description: 'Code to identify reason for cancel rejection.',\n    },\n    {\n        id: 103,\n        name: 'OrdRejReason',\n        abbrName: 'RejRsn',\n        type: 'OrdRejReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.2.7',\n        description:\n            'Code to identify reason for order rejection. Note: Values 3, 4, and 5 will be used when rejecting an order due to pre-allocation information errors.',\n    },\n    {\n        id: 104,\n        name: 'IOIQualifier',\n        abbrName: 'Qual',\n        type: 'IOIQualifierCodeSet',\n        added: 'FIX.3.0',\n        description: 'Code to qualify IOI use. (see Volume : \"Glossary\" for value definitions)',\n    },\n    {\n        id: 106,\n        name: 'Issuer',\n        abbrName: 'Issr',\n        type: 'String',\n        added: 'FIX.3.0',\n        description:\n            'Name of security issuer (e.g. International Business Machines, GNMA).\\n\\nsee also Volume 7: \"PRODUCT: FIXED INCOME - Euro Issuer Values\"',\n    },\n    {\n        id: 107,\n        name: 'SecurityDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.3.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '232',\n        description:\n            'Can be used by the venue or one of the trading parties to provide a non-normative textual description for the financial instrument.',\n    },\n    {\n        id: 108,\n        name: 'HeartBtInt',\n        abbrName: 'HeartBtInt',\n        type: 'int',\n        added: 'FIX.3.0',\n        description: 'Heartbeat interval (seconds)',\n    },\n    {\n        id: 110,\n        name: 'MinQty',\n        abbrName: 'MinQty',\n        type: 'Qty',\n        added: 'FIX.3.0',\n        description: 'Minimum quantity of an order to be executed.\\n\\n(Prior to FIX 4.2 this field was of type int)',\n    },\n    {\n        id: 111,\n        name: 'MaxFloor',\n        abbrName: 'MaxFloor',\n        type: 'Qty',\n        added: 'FIX.3.0',\n        deprecated: 'FIX.5.0',\n        description:\n            'The quantity to be displayed . Required for reserve orders. On orders specifies the qty to be displayed, on execution reports the currently displayed quantity.',\n    },\n    {\n        id: 112,\n        name: 'TestReqID',\n        abbrName: 'TestReqID',\n        type: 'String',\n        added: 'FIX.3.0',\n        description: 'Identifier included in Test Request message to be returned in resulting Heartbeat',\n    },\n    {\n        id: 113,\n        name: 'ReportToExch',\n        abbrName: 'RptToExch',\n        type: 'ReportToExchCodeSet',\n        added: 'FIX.3.0',\n        description: 'Identifies party of trade responsible for exchange reporting.',\n    },\n    {\n        id: 114,\n        name: 'LocateReqd',\n        abbrName: 'LocReqd',\n        type: 'LocateReqdCodeSet',\n        added: 'FIX.4.0',\n        description: 'Indicates whether the broker is to locate the stock in conjunction with a short sell order.',\n    },\n    {\n        id: 115,\n        name: 'OnBehalfOfCompID',\n        abbrName: 'OBID',\n        type: 'String',\n        added: 'FIX.4.0',\n        description:\n            'Assigned value used to identify firm originating message if the message was delivered by a third party i.e. the third party firm identifier would be delivered in the SenderCompID field and the firm originating the message in this field.',\n    },\n    {\n        id: 116,\n        name: 'OnBehalfOfSubID',\n        abbrName: 'OBSub',\n        type: 'String',\n        added: 'FIX.4.0',\n        description:\n            'Assigned value used to identify specific message originator (i.e. trader) if the message was delivered by a third party',\n    },\n    {\n        id: 117,\n        name: 'QuoteID',\n        abbrName: 'QID',\n        type: 'String',\n        added: 'FIX.4.0',\n        description: 'Unique identifier for quote',\n    },\n    {\n        id: 118,\n        name: 'NetMoney',\n        abbrName: 'NetMny',\n        type: 'Amt',\n        added: 'FIX.4.0',\n        description:\n            'Total amount due as the result of the transaction (e.g. for Buy order - principal + commission + fees) reported in currency of execution.',\n    },\n    {\n        id: 119,\n        name: 'SettlCurrAmt',\n        abbrName: 'SettlCurrAmt',\n        type: 'Amt',\n        added: 'FIX.4.0',\n        description: 'Total amount due expressed in settlement currency (includes the effect of the forex transaction)',\n    },\n    {\n        id: 120,\n        name: 'SettlCurrency',\n        abbrName: 'SettlCcy',\n        type: 'Currency',\n        added: 'FIX.4.0',\n        description: 'Currency code of settlement denomination.',\n    },\n    {\n        id: 121,\n        name: 'ForexReq',\n        abbrName: 'ForexReq',\n        type: 'ForexReqCodeSet',\n        added: 'FIX.4.0',\n        description: 'Indicates request for forex accommodation trade to be executed along with security transaction.',\n    },\n    {\n        id: 122,\n        name: 'OrigSendingTime',\n        abbrName: 'OrigSnt',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.0',\n        description:\n            'Original time of message transmission (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\") when transmitting orders as the result of a resend request.',\n    },\n    {\n        id: 123,\n        name: 'GapFillFlag',\n        abbrName: 'GapFillFlag',\n        type: 'GapFillFlagCodeSet',\n        added: 'FIX.4.0',\n        description:\n            'Indicates that the Sequence Reset message is replacing administrative or application messages which will not be resent.',\n    },\n    {\n        id: 124,\n        name: 'NoExecs',\n        type: 'NumInGroup',\n        added: 'FIX.4.0',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of executions or trades.',\n    },\n    {\n        id: 126,\n        name: 'ExpireTime',\n        abbrName: 'ExpireTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '171',\n        description:\n            'Time/Date of order expiration (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")\\n\\nThe meaning of expiration is specific to the context where the field is used.\\n\\nFor orders, this is the expiration time of a Good Til Date TimeInForce.\\n\\nFor Quotes - this is the expiration of the quote.\\n\\nExpiration time is provided across the quote message dialog to control the length of time of the overall quoting process.\\n\\nFor collateral requests, this is the time by which collateral must be assigned.\\n\\nFor collateral assignments, this is the time by which a response to the assignment is expected.\\n\\nFor credit/risk limit checks, this is the time when the reserved credit limit will expire for the requested transaction.',\n    },\n    {\n        id: 127,\n        name: 'DKReason',\n        abbrName: 'DkRsn',\n        type: 'DKReasonCodeSet',\n        added: 'FIX.4.0',\n        description: 'Reason for execution rejection.',\n    },\n    {\n        id: 128,\n        name: 'DeliverToCompID',\n        abbrName: 'D2ID',\n        type: 'String',\n        added: 'FIX.4.0',\n        description:\n            'Assigned value used to identify the firm targeted to receive the message if the message is delivered by a third party i.e. the third party firm identifier would be delivered in the TargetCompID (56) field and the ultimate receiver firm ID in this field.',\n    },\n    {\n        id: 129,\n        name: 'DeliverToSubID',\n        abbrName: 'D2Sub',\n        type: 'String',\n        added: 'FIX.4.0',\n        description:\n            'Assigned value used to identify specific message recipient (i.e. trader) if the message is delivered by a third party',\n    },\n    {\n        id: 130,\n        name: 'IOINaturalFlag',\n        abbrName: 'NatFlag',\n        type: 'IOINaturalFlagCodeSet',\n        added: 'FIX.4.0',\n        description:\n            'Indicates that IOI is the result of an existing agency order or a facilitation position resulting from an agency order, not from principal trading or order solicitation activity.',\n    },\n    {\n        id: 131,\n        name: 'QuoteReqID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.4.0',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '143',\n        description: 'Unique identifier for a QuoteRequest(35=R).',\n    },\n    { id: 132, name: 'BidPx', abbrName: 'BidPx', type: 'Price', added: 'FIX.4.0', description: 'Bid price/rate' },\n    { id: 133, name: 'OfferPx', abbrName: 'OfrPx', type: 'Price', added: 'FIX.4.0', description: 'Offer price/rate' },\n    {\n        id: 134,\n        name: 'BidSize',\n        abbrName: 'BidSz',\n        type: 'Qty',\n        added: 'FIX.4.0',\n        description: 'Quantity of bid\\n\\n(Prior to FIX 4.2 this field was of type int)',\n    },\n    {\n        id: 135,\n        name: 'OfferSize',\n        abbrName: 'OfrSz',\n        type: 'Qty',\n        added: 'FIX.4.0',\n        description: 'Quantity of offer\\n\\n(Prior to FIX 4.2 this field was of type int)',\n    },\n    {\n        id: 136,\n        name: 'NoMiscFees',\n        type: 'NumInGroup',\n        added: 'FIX.4.0',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of repeating groups of miscellaneous fees',\n    },\n    {\n        id: 137,\n        name: 'MiscFeeAmt',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.4.0',\n        description: 'Miscellaneous fee value',\n    },\n    {\n        id: 138,\n        name: 'MiscFeeCurr',\n        abbrName: 'Curr',\n        type: 'Currency',\n        added: 'FIX.4.0',\n        description: 'Currency of miscellaneous fee',\n    },\n    {\n        id: 139,\n        name: 'MiscFeeType',\n        abbrName: 'Typ',\n        type: 'MiscFeeTypeCodeSet',\n        added: 'FIX.4.0',\n        description: 'Indicates type of miscellaneous fee.',\n    },\n    {\n        id: 140,\n        name: 'PrevClosePx',\n        abbrName: 'PrevClsPx',\n        type: 'Price',\n        added: 'FIX.4.0',\n        description: 'Previous closing price of security.',\n    },\n    {\n        id: 141,\n        name: 'ResetSeqNumFlag',\n        abbrName: 'ResetSeqNumFlag',\n        type: 'ResetSeqNumFlagCodeSet',\n        added: 'FIX.4.1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Indicates that both sides of the FIX session should reset sequence numbers.',\n    },\n    {\n        id: 142,\n        name: 'SenderLocationID',\n        abbrName: 'SLoc',\n        type: 'String',\n        added: 'FIX.4.1',\n        description:\n            \"Assigned value used to identify specific message originator's location (i.e. geographic location and/or desk, trader)\",\n    },\n    {\n        id: 143,\n        name: 'TargetLocationID',\n        abbrName: 'TLoc',\n        type: 'String',\n        added: 'FIX.4.1',\n        description:\n            \"Assigned value used to identify specific message destination's location (i.e. geographic location and/or desk, trader)\",\n    },\n    {\n        id: 144,\n        name: 'OnBehalfOfLocationID',\n        abbrName: 'OBLoc',\n        type: 'String',\n        added: 'FIX.4.1',\n        description:\n            \"Assigned value used to identify specific message originator's location (i.e. geographic location and/or desk, trader) if the message was delivered by a third party\",\n    },\n    {\n        id: 145,\n        name: 'DeliverToLocationID',\n        abbrName: 'D2Loc',\n        type: 'String',\n        added: 'FIX.4.1',\n        description:\n            \"Assigned value used to identify specific message recipient's location (i.e. geographic location and/or desk, trader) if the message was delivered by a third party\",\n    },\n    {\n        id: 146,\n        name: 'NoRelatedSym',\n        type: 'NumInGroup',\n        added: 'FIX.4.1',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Specifies the number of repeating symbols specified.',\n    },\n    {\n        id: 147,\n        name: 'Subject',\n        abbrName: 'Subject',\n        type: 'String',\n        added: 'FIX.4.1',\n        description: 'The subject of an Email message',\n    },\n    {\n        id: 148,\n        name: 'Headline',\n        abbrName: 'Headline',\n        type: 'String',\n        added: 'FIX.4.1',\n        description: 'The headline of a News message',\n    },\n    {\n        id: 149,\n        name: 'URLLink',\n        abbrName: 'URL',\n        type: 'String',\n        added: 'FIX.4.1',\n        description:\n            'A URI (Uniform Resource Identifier) or URL (Uniform Resource Locator) link to additional information (i.e. http://www.XYZ.com/research.html)\\n\\nSee \"Appendix 6-B FIX Fields Based Upon Other Standards\"',\n    },\n    {\n        id: 150,\n        name: 'ExecType',\n        abbrName: 'ExecTyp',\n        type: 'ExecTypeCodeSet',\n        added: 'FIX.4.1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description:\n            'Describes the specific ExecutionRpt (e.g. Pending Cancel) while OrdStatus(39) will always identify the current order status (e.g. Partially Filled).',\n    },\n    {\n        id: 151,\n        name: 'LeavesQty',\n        abbrName: 'LeavesQty',\n        type: 'Qty',\n        added: 'FIX.4.1',\n        description:\n            'Quantity open for further execution. If the OrdStatus (39) is Canceled, DoneForTheDay, Expired, Calculated, or Rejected (in which case the order is no longer active) then LeavesQty could be 0, otherwise LeavesQty = OrderQty (38) - CumQty (14).\\n\\n(Prior to FIX 4.2 this field was of type int)',\n    },\n    {\n        id: 152,\n        name: 'CashOrderQty',\n        abbrName: 'Cash',\n        type: 'Qty',\n        added: 'FIX.4.1',\n        description:\n            'Specifies the approximate order quantity desired in total monetary units vs. as tradeable units (e.g. number of shares). The broker or fund manager (for CIV orders) would be responsible for converting and calculating a tradeable unit (e.g. share) quantity (OrderQty (38)) based upon this amount to be used for the actual order and subsequent messages.',\n    },\n    {\n        id: 153,\n        name: 'AllocAvgPx',\n        abbrName: 'AvgPx',\n        type: 'Price',\n        added: 'FIX.4.1',\n        description:\n            'AvgPx (6) for a specific AllocAccount (79)\\n\\nFor Fixed Income this is always expressed as \"percent of par\" price type.',\n    },\n    {\n        id: 154,\n        name: 'AllocNetMoney',\n        abbrName: 'NetMny',\n        type: 'Amt',\n        added: 'FIX.4.1',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'NetMoney(118) for a specific AllocAccount(79).',\n    },\n    {\n        id: 155,\n        name: 'SettlCurrFxRate',\n        abbrName: 'SettlCurrFxRt',\n        type: 'float',\n        added: 'FIX.4.1',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Foreign exchange rate used to compute SettlCurrAmt(119) from Currency(15) to SettlCurrency(120).',\n    },\n    {\n        id: 156,\n        name: 'SettlCurrFxRateCalc',\n        abbrName: 'SettlCurrFxRtCalc',\n        type: 'SettlCurrFxRateCalcCodeSet',\n        added: 'FIX.4.1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '179',\n        description: 'Specifies whether or not SettlCurrFxRate (155) should be multiplied or divided.',\n    },\n    {\n        id: 157,\n        name: 'NumDaysInterest',\n        abbrName: 'NumDaysInt',\n        type: 'int',\n        added: 'FIX.4.1',\n        description: 'Number of Days of Interest for convertible bonds and fixed income. Note value may be negative.',\n    },\n    {\n        id: 158,\n        name: 'AccruedInterestRate',\n        abbrName: 'AcrdIntRt',\n        type: 'Percentage',\n        added: 'FIX.4.1',\n        description:\n            'The amount the buyer compensates the seller for the portion of the next coupon interest payment the seller has earned but will not receive from the issuer because the issuer will send the next coupon payment to the buyer. Accrued Interest Rate is the annualized Accrued Interest amount divided by the purchase price of the bond.',\n    },\n    {\n        id: 159,\n        name: 'AccruedInterestAmt',\n        abbrName: 'AcrdIntAmt',\n        type: 'Amt',\n        added: 'FIX.4.1',\n        description: 'Amount of Accrued Interest for convertible bonds and fixed income',\n    },\n    {\n        id: 160,\n        name: 'SettlInstMode',\n        abbrName: 'SettlInstMode',\n        type: 'SettlInstModeCodeSet',\n        added: 'FIX.4.1',\n        description:\n            'Indicates mode used for Settlement Instructions message. *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" ***',\n    },\n    {\n        id: 161,\n        name: 'AllocText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.4.1',\n        description: 'Free format text related to a specific AllocAccount (79).',\n    },\n    {\n        id: 162,\n        name: 'SettlInstID',\n        abbrName: 'SettlInstID',\n        type: 'String',\n        added: 'FIX.4.1',\n        description: 'Unique identifier for Settlement Instruction.',\n    },\n    {\n        id: 163,\n        name: 'SettlInstTransType',\n        abbrName: 'SettlInstTransTyp',\n        type: 'SettlInstTransTypeCodeSet',\n        added: 'FIX.4.1',\n        description: 'Settlement Instructions message transaction type',\n    },\n    {\n        id: 164,\n        name: 'EmailThreadID',\n        abbrName: 'EmailThreadID',\n        type: 'String',\n        added: 'FIX.4.1',\n        description: 'Unique identifier for an email thread (new and chain of replies)',\n    },\n    {\n        id: 165,\n        name: 'SettlInstSource',\n        abbrName: 'InstSrc',\n        type: 'SettlInstSourceCodeSet',\n        added: 'FIX.4.1',\n        description: 'Indicates source of Settlement Instructions',\n    },\n    {\n        id: 167,\n        name: 'SecurityType',\n        abbrName: 'SecTyp',\n        type: 'SecurityTypeCodeSet',\n        added: 'FIX.4.1',\n        description:\n            'Indicates type of security. Security type enumerations are grouped by Product(460) field value. NOTE: Additional values may be used by mutual agreement of the counterparties.',\n    },\n    {\n        id: 168,\n        name: 'EffectiveTime',\n        abbrName: 'EfctvTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.1',\n        description:\n            'Time the details within the message should take effect (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")',\n    },\n    {\n        id: 169,\n        name: 'StandInstDbType',\n        abbrName: 'StandInstDbTyp',\n        type: 'StandInstDbTypeCodeSet',\n        added: 'FIX.4.1',\n        description: 'Identifies the Standing Instruction database used',\n    },\n    {\n        id: 170,\n        name: 'StandInstDbName',\n        abbrName: 'StandInstDbName',\n        type: 'String',\n        added: 'FIX.4.1',\n        description:\n            \"Name of the Standing Instruction database represented with StandInstDbType (169) (i.e. the Global Custodian's name).\",\n    },\n    {\n        id: 171,\n        name: 'StandInstDbID',\n        abbrName: 'StandInstDbID',\n        type: 'String',\n        added: 'FIX.4.1',\n        description:\n            'Unique identifier used on the Standing Instructions database for the Standing Instructions to be referenced.',\n    },\n    {\n        id: 172,\n        name: 'SettlDeliveryType',\n        abbrName: 'DlvryTyp',\n        type: 'SettlDeliveryTypeCodeSet',\n        added: 'FIX.4.1',\n        description: 'Identifies type of settlement',\n    },\n    {\n        id: 188,\n        name: 'BidSpotRate',\n        abbrName: 'BidSpotRt',\n        type: 'Price',\n        added: 'FIX.4.1',\n        description: 'Bid F/X spot rate.',\n    },\n    {\n        id: 189,\n        name: 'BidForwardPoints',\n        abbrName: 'BidFwdPnts',\n        type: 'PriceOffset',\n        added: 'FIX.4.1',\n        description: 'Bid F/X forward points added to spot rate. May be a negative value.',\n    },\n    {\n        id: 190,\n        name: 'OfferSpotRate',\n        abbrName: 'OfrSpotRt',\n        type: 'Price',\n        added: 'FIX.4.1',\n        description: 'Offer F/X spot rate.',\n    },\n    {\n        id: 191,\n        name: 'OfferForwardPoints',\n        abbrName: 'OfrFwdPnts',\n        type: 'PriceOffset',\n        added: 'FIX.4.1',\n        description: 'Offer F/X forward points added to spot rate. May be a negative value.',\n    },\n    {\n        id: 192,\n        name: 'OrderQty2',\n        abbrName: 'Qty2',\n        type: 'Qty',\n        added: 'FIX.4.1',\n        deprecated: 'FIX.5.0',\n        description: 'OrderQty (38) of the future part of a F/X swap order.',\n    },\n    {\n        id: 193,\n        name: 'SettlDate2',\n        abbrName: 'SettlDt2',\n        type: 'LocalMktDate',\n        added: 'FIX.4.1',\n        deprecated: 'FIX.5.0',\n        description: 'SettDate (64) of the future part of a F/X swap order.',\n    },\n    {\n        id: 194,\n        name: 'LastSpotRate',\n        abbrName: 'LastSpotRt',\n        type: 'Price',\n        added: 'FIX.4.1',\n        description: 'F/X spot rate.',\n    },\n    {\n        id: 195,\n        name: 'LastForwardPoints',\n        abbrName: 'LastFwdPnts',\n        type: 'PriceOffset',\n        added: 'FIX.4.1',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'F/X forward points added to LastSpotRate(194). May be a negative value. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199.',\n    },\n    {\n        id: 196,\n        name: 'AllocLinkID',\n        abbrName: 'LinkID',\n        type: 'String',\n        baseCategory: 'Allocation',\n        baseCategoryAbbrName: 'LinkID',\n        added: 'FIX.4.1',\n        description:\n            'Can be used to link two different Allocation messages (each with unique AllocID (70)) together, i.e. for F/X \"Netting\" or \"Swaps\". Should be unique.',\n    },\n    {\n        id: 197,\n        name: 'AllocLinkType',\n        abbrName: 'LinkTyp',\n        type: 'AllocLinkTypeCodeSet',\n        added: 'FIX.4.1',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Identifies the type of Allocation linkage when AllocLinkID(196) is used.',\n    },\n    {\n        id: 198,\n        name: 'SecondaryOrderID',\n        abbrName: 'OrdID2',\n        type: 'String',\n        added: 'FIX.4.1',\n        description:\n            'Assigned by the party which accepts the order. Can be used to provide the OrderID (37) used by an exchange or executing system.',\n    },\n    {\n        id: 199,\n        name: 'NoIOIQualifiers',\n        type: 'NumInGroup',\n        added: 'FIX.4.1',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of repeating groups of IOIQualifiers (04).',\n    },\n    {\n        id: 200,\n        name: 'MaturityMonthYear',\n        abbrName: 'MMY',\n        type: 'MonthYear',\n        added: 'FIX.4.1',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'Can be used with standardized derivatives vs. the MaturityDate (541) field. Month and Year of the maturity (used for standardized futures and options).\\n\\nFormat:\\n\\nYYYYMM (e.g. 199903)\\n\\nYYYYMMDD (e.g. 20030323)\\n\\nYYYYMMwN (e.g. 200303w) for week\\n\\nA specific date or can be appended to the MaturityMonthYear. For instance, if multiple standard products exist that mature in the same Year and Month, but actually mature at a different time, a value can be appended, such as \"w\" or \"w2\" to indicate week as opposed to week 2 expiration. Likewise, the date (0-3) can be appended to indicate a specific expiration (maturity date).',\n    },\n    {\n        id: 201,\n        name: 'PutOrCall',\n        abbrName: 'PutCall',\n        type: 'PutOrCallCodeSet',\n        added: 'FIX.4.1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description: 'Indicates whether an option contract is a put, call, chooser or undetermined.',\n    },\n    {\n        id: 202,\n        name: 'StrikePrice',\n        abbrName: 'StrkPx',\n        type: 'Price',\n        added: 'FIX.4.1',\n        description: 'Strike Price for an Option.',\n    },\n    {\n        id: 203,\n        name: 'CoveredOrUncovered',\n        abbrName: 'Covered',\n        type: 'CoveredOrUncoveredCodeSet',\n        added: 'FIX.4.1',\n        description: 'Used for derivative products, such as options',\n    },\n    {\n        id: 206,\n        name: 'OptAttribute',\n        abbrName: 'OptAt',\n        type: 'char',\n        added: 'FIX.4.1',\n        description:\n            'Provided to support versioning of option contracts as a result of corporate actions or events. Use of this field is defined by counterparty agreement or market conventions.',\n    },\n    {\n        id: 207,\n        name: 'SecurityExchange',\n        abbrName: 'Exch',\n        type: 'Exchange',\n        added: 'FIX.4.1',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Market used to help identify a security.\\n\\nProvides the place of listing in the context of order placement or market data to uniquely identify the given instrument. Identifies the primary listing (\u201Cofficial place of listing\u201D) when using the Instrument component as part of reference data messages.',\n    },\n    {\n        id: 208,\n        name: 'NotifyBrokerOfCredit',\n        abbrName: 'NotifyBrkrOfCredit',\n        type: 'NotifyBrokerOfCreditCodeSet',\n        added: 'FIX.4.1',\n        description: 'Indicates whether or not details should be communicated to BrokerOfCredit (i.e. step-in broker).',\n    },\n    {\n        id: 209,\n        name: 'AllocHandlInst',\n        abbrName: 'HandlInst',\n        type: 'AllocHandlInstCodeSet',\n        baseCategory: 'SingleGeneralOrderHandling',\n        baseCategoryAbbrName: 'HndInst',\n        added: 'FIX.4.1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '245',\n        description:\n            'Indicates how the receiver (i.e. third party) of allocation information should handle/process the account details.',\n    },\n    {\n        id: 210,\n        name: 'MaxShow',\n        abbrName: 'MaxShow',\n        type: 'Qty',\n        added: 'FIX.4.1',\n        deprecated: 'FIX.5.0',\n        description:\n            'Maximum quantity (e.g. number of shares) within an order to be shown to other customers (i.e. sent via an IOI).\\n\\n(Prior to FIX 4.2 this field was of type int)',\n    },\n    {\n        id: 211,\n        name: 'PegOffsetValue',\n        abbrName: 'OfstVal',\n        type: 'float',\n        added: 'FIX.4.1',\n        description:\n            'Amount (signed) added to the peg for a pegged order in the context of the PegOffsetType (836)\\n\\n(Prior to FIX 4.4 this field was of type PriceOffset)',\n    },\n    {\n        id: 212,\n        name: 'XmlDataLen',\n        abbrName: 'XmlDataLen',\n        type: 'Length',\n        added: 'FIX.4.2',\n        description: 'Length of the XmlData data block.',\n    },\n    {\n        id: 213,\n        name: 'XmlData',\n        abbrName: 'XmlData',\n        type: 'XMLData',\n        lengthId: '212',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Actual XML data stream (e.g. FIXML). See appropriate XML reference (e.g. FIXML). Note: may contain embedded SOH characters.',\n    },\n    {\n        id: 214,\n        name: 'SettlInstRefID',\n        abbrName: 'SettlInstRefID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description:\n            'Reference identifier for the SettlInstID (162) with Cancel and Replace SettlInstTransType (163) transaction types.',\n    },\n    {\n        id: 215,\n        name: 'NoRoutingIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'Number of repeating groups of RoutingID (217) and RoutingType (216) values.\\n\\nSee Volume 3: \"Pre-Trade Message Targeting/Routing\"',\n    },\n    {\n        id: 216,\n        name: 'RoutingType',\n        abbrName: 'RtgTyp',\n        type: 'RoutingTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Indicates the type of RoutingID (217) specified.',\n    },\n    {\n        id: 217,\n        name: 'RoutingID',\n        abbrName: 'RtgID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'Assigned value used to identify a specific routing destination.',\n    },\n    {\n        id: 218,\n        name: 'Spread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'For Fixed Income. Either Swap Spread or Spread to Benchmark depending upon the order type.\\n\\nSpread to Benchmark: Basis points relative to a benchmark. To be expressed as count of basis points (vs. an absolute value). E.g. High Grade Corporate Bonds may express price as basis points relative to benchmark (the BenchmarkCurveName(221) field). Note: Basis points can be negative.\\n\\nSwap Spread: Target spread for a swap.',\n    },\n    {\n        id: 220,\n        name: 'BenchmarkCurveCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies currency used for benchmark curve.\\n\\nBenchmarkCurveCurrencyCodeSource(2950) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.',\n    },\n    {\n        id: 221,\n        name: 'BenchmarkCurveName',\n        abbrName: 'Name',\n        type: 'BenchmarkCurveNameCodeSet',\n        added: 'FIX.4.2',\n        description: 'Name of benchmark curve.\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n    },\n    {\n        id: 222,\n        name: 'BenchmarkCurvePoint',\n        abbrName: 'Point',\n        type: 'String',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description:\n            'Point on benchmark curve. Free form values: e.g. \"Y\", \"7Y\", \"INTERPOLATED\".\\n\\nSample values:\\n\\nM = combination of a number between 1-12 and a \"M\" for month\\n\\nY = combination of number between 1-100 and a \"Y\" for year}\\n\\n10Y-OLD = see above, then add \"-OLD\" when appropriate\\n\\nINTERPOLATED = the point is mathematically derived\\n\\n2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon\\n\\nSee Fixed Income-specific documentation at http://www.fixtradingcommunity.org for additional values.\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n    },\n    {\n        id: 223,\n        name: 'CouponRate',\n        abbrName: 'CpnRt',\n        type: 'Percentage',\n        added: 'FIX.4.2',\n        description:\n            \"The rate of interest that, when multiplied by the principal, par value, or face value of a bond, provides the currency amount of the periodic interest payment. The coupon is always cited, along with maturity, in any quotation of a bond's price.\",\n    },\n    {\n        id: 224,\n        name: 'CouponPaymentDate',\n        abbrName: 'CpnPmt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.2',\n        description:\n            'Date interest is to be paid. Used in identifying Corporate Bond issues.\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n\\n(prior to FIX 4.4 field was of type UTCDate)',\n    },\n    {\n        id: 225,\n        name: 'IssueDate',\n        abbrName: 'Issued',\n        type: 'LocalMktDate',\n        added: 'FIX.4.2',\n        description:\n            'The date on which a bond or stock offering is issued. It may or may not be the same as the effective date (\"Dated Date\") or the date on which interest begins to accrue (\"Interest Accrual Date\")\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n\\n(prior to FIX 4.4 field was of type UTCDate)',\n    },\n    {\n        id: 226,\n        name: 'RepurchaseTerm',\n        abbrName: 'RepoTrm',\n        type: 'int',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        description:\n            'Number of business days before repurchase of a repo. (Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n    },\n    {\n        id: 227,\n        name: 'RepurchaseRate',\n        abbrName: 'RepoRt',\n        type: 'Percentage',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        description:\n            'Percent of par at which a Repo will be repaid. Represented as a percent, e.g. .9525 represents 95-/4 percent of par. (Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n    },\n    {\n        id: 228,\n        name: 'Factor',\n        abbrName: 'Fctr',\n        type: 'float',\n        added: 'FIX.4.2',\n        description:\n            'For Fixed Income: Amorization Factor for deriving Current face from Original face for ABS or MBS securities, note the fraction may be greater than, equal to or less than . In TIPS securities this is the Inflation index.\\n\\nQty * Factor * Price = Gross Trade Amount\\n\\nFor Derivatives: Contract Value Factor by which price must be adjusted to determine the true nominal value of one futures/options contract.\\n\\n(Qty * Price) * Factor = Nominal Value\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n    },\n    {\n        id: 229,\n        name: 'TradeOriginationDate',\n        abbrName: 'OrignDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.2',\n        description:\n            'Used with Fixed Income for Muncipal New Issue Market. Agreement in principal between counter-parties prior to actual trade date.\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n\\n(prior to FIX 4.4 field was of type UTCDate)',\n    },\n    {\n        id: 230,\n        name: 'ExDate',\n        abbrName: 'ExDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.2',\n        description:\n            'The date when a distribution of interest is deducted from a securities assets or set aside for payment to bondholders. On the ex-date, the securities price drops by the amount of the distribution (plus or minus any market activity).\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n\\n(prior to FIX 4.4 field was of type UTCDate)',\n    },\n    {\n        id: 231,\n        name: 'ContractMultiplier',\n        abbrName: 'Mult',\n        type: 'float',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description:\n            'Specifies the ratio or multiply factor to convert from \"nominal\" units (e.g. contracts) to total units (e.g. shares) (e.g. 1.0, 100, 1000, etc). Applicable For Fixed Income, Convertible Bonds, Derivatives, etc.\\n\\nIn general quantities for all classes should be expressed in the basic unit of the instrument, e.g. shares for equities, nominal or par amount for bonds, currency for foreign exchange. When quantity is expressed in contracts, e.g. financing transactions and bond trade reporting, ContractMultiplier(231) should contain the number of units in one contract and can be omitted if the multiplier is the default amount for the instrument, i.e. 1,000 par of bonds, 1,000,000 par for financing transactions.',\n    },\n    {\n        id: 232,\n        name: 'NoStipulations',\n        type: 'NumInGroup',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of stipulation entries\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3).',\n    },\n    {\n        id: 233,\n        name: 'StipulationType',\n        abbrName: 'Typ',\n        type: 'StipulationTypeCodeSet',\n        added: 'FIX.4.2',\n        description:\n            'For Fixed Income.\\n\\nType of Stipulation.\\n\\nOther types may be used by mutual agreement of the counterparties.\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n    },\n    {\n        id: 234,\n        name: 'StipulationValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.4.2',\n        description:\n            'For Fixed Income. Value of stipulation.\\n\\nThe expression can be an absolute single value or a combination of values and logical operators:\\n\\n< value\\n\\n> value\\n\\n<= value\\n\\n>= value\\n\\nvalue\\n\\nvalue - value2\\n\\nvalue OR value2\\n\\nvalue AND value2\\n\\nYES\\n\\nNO\\n\\nBargain conditions recognized by the London Stock Exchange - to be used when StipulationType is \"BGNCON\".\\n\\nCD = Special cum Dividend\\n\\nXD = Special ex Dividend\\n\\nCC = Special cum Coupon\\n\\nXC = Special ex Coupon\\n\\nCB = Special cum Bonus\\n\\nXB = Special ex Bonus\\n\\nCR = Special cum Rights\\n\\nXR = Special ex Rights\\n\\nCP = Special cum Capital Repayments\\n\\nXP = Special ex Capital Repayments\\n\\nCS = Cash Settlement\\n\\nSP = Special Price\\n\\nTR = Report for European Equity Market Securities in accordance with Chapter 8 of the Rules.\\n\\nGD = Guaranteed Delivery\\n\\nValues for StipulationType = \"PXSOURCE\":\\n\\nBB GENERIC\\n\\nBB FAIRVALUE\\n\\nBROKERTEC\\n\\nESPEED\\n\\nGOVPX\\n\\nHILLIARD FARBER\\n\\nICAP\\n\\nTRADEWEB\\n\\nTULLETT LIBERTY\\n\\nIf a particular side of the market is wanted append /BID /OFFER or /MID.\\n\\nplus appropriate combinations of the above and other expressions by mutual agreement of the counterparties.\\n\\nExamples: \">=60\", \".25\", \"ORANGE OR CONTRACOSTA\", etc.\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n    },\n    {\n        id: 235,\n        name: 'YieldType',\n        abbrName: 'Typ',\n        type: 'YieldTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Type of yield. (Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n    },\n    {\n        id: 236,\n        name: 'Yield',\n        abbrName: 'Yld',\n        type: 'Percentage',\n        added: 'FIX.4.2',\n        description: 'Yield percentage.\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n    },\n    {\n        id: 237,\n        name: 'TotalTakedown',\n        abbrName: 'TotTakedown',\n        type: 'Amt',\n        added: 'FIX.4.2',\n        description:\n            \"The price at which the securities are distributed to the different members of an underwriting group for the primary market in Municipals, total gross underwriter's spread.\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n    },\n    {\n        id: 238,\n        name: 'Concession',\n        abbrName: 'Concession',\n        type: 'Amt',\n        added: 'FIX.4.2',\n        description:\n            'Provides the reduction in price for the secondary market in Muncipals.\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n    },\n    {\n        id: 239,\n        name: 'RepoCollateralSecurityType',\n        abbrName: 'RepoCollSecTyp',\n        type: 'String',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Identifies the collateral used in the transaction.\\n\\nValid values: see SecurityType (167) field (Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n    },\n    {\n        id: 240,\n        name: 'RedemptionDate',\n        abbrName: 'Redeem',\n        type: 'LocalMktDate',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        description:\n            \"Return of investor's principal in a security. Bond redemption can occur before maturity date.(Note tag # was reserved in FIX 4.1, added in FIX 4.3) (prior to FIX 4.4 field was of type UTCDate)\",\n    },\n    {\n        id: 241,\n        name: 'UnderlyingCouponPaymentDate',\n        abbrName: 'CpnPmt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.2',\n        description:\n            \"Underlying security's CouponPaymentDate.\\n\\nSee CouponPaymentDate (224) field for description\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n\\n(prior to FIX 4.4 field was of type UTCDate)\",\n    },\n    {\n        id: 242,\n        name: 'UnderlyingIssueDate',\n        abbrName: 'Issued',\n        type: 'LocalMktDate',\n        added: 'FIX.4.2',\n        description:\n            \"Underlying security's IssueDate.\\n\\nSee IssueDate (225) field for description\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n\\n(prior to FIX 4.4 field was of type UTCDate)\",\n    },\n    {\n        id: 243,\n        name: 'UnderlyingRepoCollateralSecurityType',\n        abbrName: 'RepoCollSecTyp',\n        type: 'String',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            \"Underlying security's RepoCollateralSecurityType. See RepoCollateralSecurityType (239) field for description.(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n    },\n    {\n        id: 244,\n        name: 'UnderlyingRepurchaseTerm',\n        abbrName: 'RepoTrm',\n        type: 'int',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        description:\n            \"Underlying security's RepurchaseTerm. See RepurchaseTerm (226) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n    },\n    {\n        id: 245,\n        name: 'UnderlyingRepurchaseRate',\n        abbrName: 'RepoRt',\n        type: 'Percentage',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        description:\n            \"Underlying security's RepurchaseRate. See RepurchaseRate (227) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n    },\n    {\n        id: 246,\n        name: 'UnderlyingFactor',\n        abbrName: 'Fctr',\n        type: 'float',\n        added: 'FIX.4.2',\n        description:\n            \"Underlying security's Factor.\\n\\nSee Factor (228) field for description\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n    },\n    {\n        id: 247,\n        name: 'UnderlyingRedemptionDate',\n        abbrName: 'Redeem',\n        type: 'LocalMktDate',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        description:\n            \"Underlying security's RedemptionDate. See RedemptionDate (240) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3) (prior to FIX 4.4 field was of type UTCDate)\",\n    },\n    {\n        id: 248,\n        name: 'LegCouponPaymentDate',\n        abbrName: 'CpnPmt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.2',\n        description:\n            \"Multileg instrument's individual leg security's CouponPaymentDate.\\n\\nSee CouponPaymentDate (224) field for description\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n\\n(prior to FIX 4.4 field was of type UTCDate)\",\n    },\n    {\n        id: 249,\n        name: 'LegIssueDate',\n        abbrName: 'Issued',\n        type: 'LocalMktDate',\n        added: 'FIX.4.2',\n        description:\n            \"Multileg instrument's individual leg security's IssueDate.\\n\\nSee IssueDate (225) field for description\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n\\n(prior to FIX 4.4 field was of type UTCDate)\",\n    },\n    {\n        id: 250,\n        name: 'LegRepoCollateralSecurityType',\n        abbrName: 'RepoCollSecTyp',\n        type: 'String',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            \"Multileg instrument's individual leg security's RepoCollateralSecurityType. See RepoCollateralSecurityType (239) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n    },\n    {\n        id: 251,\n        name: 'LegRepurchaseTerm',\n        abbrName: 'RepoTrm',\n        type: 'int',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        description:\n            \"Multileg instrument's individual leg security's RepurchaseTerm. See RepurchaseTerm (226) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n    },\n    {\n        id: 252,\n        name: 'LegRepurchaseRate',\n        abbrName: 'RepoRt',\n        type: 'Percentage',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        description:\n            \"Multileg instrument's individual leg security's RepurchaseRate. See RepurchaseRate (227) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n    },\n    {\n        id: 253,\n        name: 'LegFactor',\n        abbrName: 'Fctr',\n        type: 'float',\n        added: 'FIX.4.2',\n        description:\n            \"Multileg instrument's individual leg security's Factor.\\n\\nSee Factor (228) field for description\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n    },\n    {\n        id: 254,\n        name: 'LegRedemptionDate',\n        abbrName: 'Redeem',\n        type: 'LocalMktDate',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        description:\n            \"Multileg instrument's individual leg security's RedemptionDate. See RedemptionDate (240) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3) (prior to FIX 4.4 field was of type UTCDate)\",\n    },\n    {\n        id: 255,\n        name: 'CreditRating',\n        abbrName: 'CrdRtg',\n        type: 'String',\n        added: 'FIX.4.2',\n        description:\n            \"An evaluation of a company's ability to repay obligations or its likelihood of not defaulting. These evaluation are provided by Credit Rating Agencies, i.e. S&P, Moody's.\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n    },\n    {\n        id: 256,\n        name: 'UnderlyingCreditRating',\n        abbrName: 'CrdRtg',\n        type: 'String',\n        added: 'FIX.4.2',\n        description:\n            \"Underlying security's CreditRating.\\n\\nSee CreditRating (255) field for description\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n    },\n    {\n        id: 257,\n        name: 'LegCreditRating',\n        abbrName: 'CrdRtg',\n        type: 'String',\n        added: 'FIX.4.2',\n        description:\n            \"Multileg instrument's individual leg security's CreditRating.\\n\\nSee CreditRating (255) field for description\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n    },\n    {\n        id: 258,\n        name: 'TradedFlatSwitch',\n        abbrName: 'TrddFlatSwitch',\n        type: 'TradedFlatSwitchCodeSet',\n        added: 'FIX.4.2',\n        description:\n            'Driver and part of trade in the event that the Security Master file was wrong at the point of entry(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n    },\n    {\n        id: 259,\n        name: 'BasisFeatureDate',\n        abbrName: 'BasisFeatureDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.2',\n        description:\n            'BasisFeatureDate allows requesting firms within fixed income the ability to request an alternative yield-to-worst, -maturity, -extended or other call. This flows through the confirm process.\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n\\n(prior to FIX 4.4 field was of type UTCDate)',\n    },\n    {\n        id: 260,\n        name: 'BasisFeaturePrice',\n        abbrName: 'BasisFeaturePx',\n        type: 'Price',\n        added: 'FIX.4.2',\n        description:\n            'Price for BasisFeatureDate.\\n\\nSee BasisFeatureDate (259)\\n\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n    },\n    {\n        id: 262,\n        name: 'MDReqID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'Unique identifier for Market Data Request',\n    },\n    {\n        id: 263,\n        name: 'SubscriptionRequestType',\n        abbrName: 'SubReqTyp',\n        type: 'SubscriptionRequestTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Subscription Request Type',\n    },\n    {\n        id: 264,\n        name: 'MarketDepth',\n        abbrName: 'MktDepth',\n        type: 'int',\n        added: 'FIX.4.2',\n        description:\n            'Depth of market for Book Snapshot / Incremental updates\\n\\n0 - full book depth\\n\\n1 - top of book\\n\\n2 and above - book depth (number of levels)',\n    },\n    {\n        id: 265,\n        name: 'MDUpdateType',\n        abbrName: 'UpdtTyp',\n        type: 'MDUpdateTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Specifies the type of Market Data update.',\n    },\n    {\n        id: 266,\n        name: 'AggregatedBook',\n        abbrName: 'AggBook',\n        type: 'AggregatedBookCodeSet',\n        added: 'FIX.4.2',\n        description: 'Specifies whether or not book entries should be aggregated. (Not specified) = broker option',\n    },\n    {\n        id: 267,\n        name: 'NoMDEntryTypes',\n        type: 'NumInGroup',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of MDEntryType (269) fields requested.',\n    },\n    {\n        id: 268,\n        name: 'NoMDEntries',\n        type: 'NumInGroup',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of entries in Market Data message.',\n    },\n    {\n        id: 269,\n        name: 'MDEntryType',\n        abbrName: 'Typ',\n        type: 'MDEntryTypeCodeSet',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '174',\n        description: 'Type of market data entry.',\n    },\n    {\n        id: 270,\n        name: 'MDEntryPx',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.4.2',\n        description: 'Price of the Market Data Entry.',\n    },\n    {\n        id: 271,\n        name: 'MDEntrySize',\n        abbrName: 'Sz',\n        type: 'Qty',\n        added: 'FIX.4.2',\n        description: 'Quantity or volume represented by the Market Data Entry.',\n    },\n    {\n        id: 272,\n        name: 'MDEntryDate',\n        abbrName: 'Dt',\n        type: 'UTCDateOnly',\n        added: 'FIX.4.2',\n        description: 'Date of Market Data Entry.\\n\\n(prior to FIX 4.4 field was of type UTCDate)',\n    },\n    {\n        id: 273,\n        name: 'MDEntryTime',\n        abbrName: 'Tm',\n        type: 'UTCTimeOnly',\n        added: 'FIX.4.2',\n        description: 'Time of Market Data Entry.',\n    },\n    {\n        id: 274,\n        name: 'TickDirection',\n        abbrName: 'TickDirctn',\n        type: 'TickDirectionCodeSet',\n        added: 'FIX.4.2',\n        description: 'Direction of the \"tick\".',\n    },\n    {\n        id: 275,\n        name: 'MDMkt',\n        abbrName: 'Mkt',\n        type: 'Exchange',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        description: 'Market posting quote / trade.\\n\\nValid values:\\n\\nSee \"Appendix 6-C\"',\n    },\n    {\n        id: 276,\n        name: 'QuoteCondition',\n        abbrName: 'QCond',\n        type: 'QuoteConditionCodeSet',\n        added: 'FIX.4.2',\n        description: 'Space-delimited list of conditions describing a quote.',\n    },\n    {\n        id: 277,\n        name: 'TradeCondition',\n        abbrName: 'TrdCond',\n        type: 'TradeConditionCodeSet',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '190',\n        description: 'Type of market data entry.',\n    },\n    {\n        id: 278,\n        name: 'MDEntryID',\n        abbrName: 'MDID',\n        type: 'String',\n        baseCategory: 'MarketData',\n        baseCategoryAbbrName: 'ID',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '125',\n        description: 'Unique Market Data Entry identifier.',\n    },\n    {\n        id: 279,\n        name: 'MDUpdateAction',\n        abbrName: 'UpdtAct',\n        type: 'MDUpdateActionCodeSet',\n        added: 'FIX.4.2',\n        description: 'Type of Market Data update action.',\n    },\n    {\n        id: 280,\n        name: 'MDEntryRefID',\n        abbrName: 'RefID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'Refers to a previous MDEntryID (278).',\n    },\n    {\n        id: 281,\n        name: 'MDReqRejReason',\n        abbrName: 'ReqRejResn',\n        type: 'MDReqRejReasonCodeSet',\n        added: 'FIX.4.2',\n        description: 'Reason for the rejection of a Market Data request.',\n    },\n    {\n        id: 282,\n        name: 'MDEntryOriginator',\n        abbrName: 'Orig',\n        type: 'String',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        description: 'Originator of a Market Data Entry',\n    },\n    {\n        id: 283,\n        name: 'LocationID',\n        abbrName: 'LctnID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: \"Identification of a Market Maker's location\",\n    },\n    {\n        id: 284,\n        name: 'DeskID',\n        abbrName: 'DeskID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: \"Identification of a Market Maker's desk\",\n    },\n    {\n        id: 285,\n        name: 'DeleteReason',\n        abbrName: 'DelRsn',\n        type: 'DeleteReasonCodeSet',\n        added: 'FIX.4.2',\n        description: 'Reason for deletion.',\n    },\n    {\n        id: 286,\n        name: 'OpenCloseSettlFlag',\n        abbrName: 'OpenClsSettlFlag',\n        type: 'OpenCloseSettlFlagCodeSet',\n        added: 'FIX.4.2',\n        description: 'Flag that identifies a market data entry. (Prior to FIX 4.3 this field was of type char)',\n    },\n    {\n        id: 287,\n        name: 'SellerDays',\n        abbrName: 'SellerDays',\n        type: 'int',\n        added: 'FIX.4.2',\n        description: 'Specifies the number of days that may elapse before delivery of the security',\n    },\n    {\n        id: 288,\n        name: 'MDEntryBuyer',\n        abbrName: 'Buyer',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'Buying party in a trade',\n    },\n    {\n        id: 289,\n        name: 'MDEntrySeller',\n        abbrName: 'Seller',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'Selling party in a trade',\n    },\n    {\n        id: 290,\n        name: 'MDEntryPositionNo',\n        abbrName: 'PosNo',\n        type: 'int',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Display position of a bid or offer, numbered from most competitive to least competitive, per market side, beginning with 1.',\n    },\n    {\n        id: 291,\n        name: 'FinancialStatus',\n        abbrName: 'FinclStat',\n        type: 'FinancialStatusCodeSet',\n        added: 'FIX.4.2',\n        description: \"Identifies a firm's or a security's financial status\",\n    },\n    {\n        id: 292,\n        name: 'CorporateAction',\n        abbrName: 'CorpActn',\n        type: 'CorporateActionCodeSet',\n        added: 'FIX.4.2',\n        description: 'Identifies the type of Corporate Action.',\n    },\n    {\n        id: 293,\n        name: 'DefBidSize',\n        abbrName: 'DefBidSz',\n        type: 'Qty',\n        added: 'FIX.4.2',\n        description: 'Default Bid Size.',\n    },\n    {\n        id: 294,\n        name: 'DefOfferSize',\n        abbrName: 'DefOfrSz',\n        type: 'Qty',\n        added: 'FIX.4.2',\n        description: 'Default Offer Size.',\n    },\n    {\n        id: 295,\n        name: 'NoQuoteEntries',\n        type: 'NumInGroup',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'The number of quote entries for a QuoteSet.',\n    },\n    {\n        id: 296,\n        name: 'NoQuoteSets',\n        type: 'NumInGroup',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'The number of sets of quotes in the message.',\n    },\n    {\n        id: 297,\n        name: 'QuoteStatus',\n        abbrName: 'Stat',\n        type: 'QuoteStatusCodeSet',\n        added: 'FIX.4.2',\n        description: 'Identifies the status of the quote acknowledgement.',\n    },\n    {\n        id: 298,\n        name: 'QuoteCancelType',\n        abbrName: 'CxlTyp',\n        type: 'QuoteCancelTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '85',\n        description: 'Identifies the type of quote cancel.',\n    },\n    {\n        id: 299,\n        name: 'QuoteEntryID',\n        abbrName: 'EntryID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description:\n            'Unique identifier for a quote. The QuoteEntryID stays with the quote as a static identifier even if the quote is updated.',\n    },\n    {\n        id: 300,\n        name: 'QuoteRejectReason',\n        abbrName: 'RejRsn',\n        type: 'QuoteRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description: 'Reason quote was rejected.',\n    },\n    {\n        id: 301,\n        name: 'QuoteResponseLevel',\n        abbrName: 'RspLvl',\n        type: 'QuoteResponseLevelCodeSet',\n        added: 'FIX.4.2',\n        description:\n            'Level of Response requested from receiver of quote messages. A default value should be bilaterally agreed.',\n    },\n    {\n        id: 302,\n        name: 'QuoteSetID',\n        abbrName: 'SetID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'Unique id for the Quote Set.',\n    },\n    {\n        id: 303,\n        name: 'QuoteRequestType',\n        abbrName: 'ReqTyp',\n        type: 'QuoteRequestTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Indicates the type of Quote Request being generated',\n    },\n    {\n        id: 304,\n        name: 'TotNoQuoteEntries',\n        abbrName: 'TotNoQuotEntries',\n        type: 'int',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Total number of quotes for the quote set.',\n    },\n    {\n        id: 305,\n        name: 'UnderlyingSecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Identifies class or source of the UnderlyingSecurityID(309) value.',\n    },\n    {\n        id: 306,\n        name: 'UnderlyingIssuer',\n        abbrName: 'Issr',\n        type: 'String',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: \"Underlying security's Issuer.\\n\\nSee Issuer(106) field for description.\",\n    },\n    {\n        id: 307,\n        name: 'UnderlyingSecurityDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '232',\n        description:\n            'Description of the underlying security.\\n\\nCan be used by the venue or one of the trading parties to provide an optional non-normative textual description of the financial instrument.',\n    },\n    {\n        id: 308,\n        name: 'UnderlyingSecurityExchange',\n        abbrName: 'Exch',\n        type: 'Exchange',\n        added: 'FIX.4.2',\n        description:\n            \"Underlying security's SecurityExchange. Can be used to identify the underlying security.\\n\\nValid values: see SecurityExchange (207)\",\n    },\n    {\n        id: 309,\n        name: 'UnderlyingSecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '305',\n        added: 'FIX.4.2',\n        description: \"Underlying security's SecurityID.\\n\\nSee SecurityID (48) field for description\",\n    },\n    {\n        id: 310,\n        name: 'UnderlyingSecurityType',\n        abbrName: 'SecTyp',\n        type: 'SecurityTypeCodeSet',\n        added: 'FIX.4.2',\n        description:\n            \"Underlying security's SecurityType.\\n\\nValid values: see SecurityType (167) field\\n\\n(see below for details concerning this fields use in conjunction with SecurityType=REPO)\\n\\nThe following applies when used in conjunction with SecurityType=REPO\\n\\nRepresents the general or specific type of security that underlies a financing agreement\\n\\nValid values for SecurityType=REPO:\\n\\nIf bonds of a particular issuer or country are wanted in an Order or are in the basket of an Execution and the SecurityType is not granular enough, include the UnderlyingIssuer (306), UnderlyingCountryOfIssue (592), UnderlyingProgram, UnderlyingRegType and/or < UnderlyingStipulations > block e.g.:\",\n    },\n    {\n        id: 311,\n        name: 'UnderlyingSymbol',\n        abbrName: 'Sym',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: \"Underlying security's Symbol.\\n\\nSee Symbol (55) field for description\",\n    },\n    {\n        id: 312,\n        name: 'UnderlyingSymbolSfx',\n        abbrName: 'Sfx',\n        type: 'SymbolSfxCodeSet',\n        added: 'FIX.4.2',\n        description: \"Underlying security's SymbolSfx.\\n\\nSee SymbolSfx (65) field for description\",\n    },\n    {\n        id: 313,\n        name: 'UnderlyingMaturityMonthYear',\n        abbrName: 'MMY',\n        type: 'MonthYear',\n        added: 'FIX.4.2',\n        description:\n            \"Underlying security's MaturityMonthYear. Can be used with standardized derivatives vs. the UnderlyingMaturityDate (542) field.\\n\\nSee MaturityMonthYear (200) field for description\",\n    },\n    {\n        id: 315,\n        name: 'UnderlyingPutOrCall',\n        abbrName: 'PutCall',\n        type: 'PutOrCallCodeSet',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description: 'Indicates whether an underlying option contract is a put, call, chooser or undetermined.',\n    },\n    {\n        id: 316,\n        name: 'UnderlyingStrikePrice',\n        abbrName: 'StrkPx',\n        type: 'Price',\n        added: 'FIX.4.2',\n        description: \"Underlying security's StrikePrice.\\n\\nSee StrikePrice (202) field for description\",\n    },\n    {\n        id: 317,\n        name: 'UnderlyingOptAttribute',\n        abbrName: 'OptA',\n        type: 'char',\n        added: 'FIX.4.2',\n        description: \"Underlying security's OptAttribute.\\n\\nSee OptAttribute (206) field for description\",\n    },\n    {\n        id: 318,\n        name: 'UnderlyingCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description: \"Underlying security's currency.\",\n    },\n    {\n        id: 320,\n        name: 'SecurityReqID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'Unique ID of a Security Definition Request.',\n    },\n    {\n        id: 321,\n        name: 'SecurityRequestType',\n        abbrName: 'ReqTyp',\n        type: 'SecurityRequestTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Type of Security Definition Request.',\n    },\n    {\n        id: 322,\n        name: 'SecurityResponseID',\n        abbrName: 'RspID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'Unique ID of a Security Definition message.',\n    },\n    {\n        id: 323,\n        name: 'SecurityResponseType',\n        abbrName: 'RspTyp',\n        type: 'SecurityResponseTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Type of Security Definition message response.',\n    },\n    {\n        id: 324,\n        name: 'SecurityStatusReqID',\n        abbrName: 'StatReqID',\n        type: 'String',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '106',\n        description: 'Unique ID of a Security Status Request or a Security Mass Status Request message.',\n    },\n    {\n        id: 325,\n        name: 'UnsolicitedIndicator',\n        abbrName: 'Unsol',\n        type: 'UnsolicitedIndicatorCodeSet',\n        added: 'FIX.4.2',\n        description: 'Indicates whether or not message is being sent as a result of a subscription request or not.',\n    },\n    {\n        id: 326,\n        name: 'SecurityTradingStatus',\n        abbrName: 'TrdgStat',\n        type: 'SecurityTradingStatusCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.2',\n        description: 'Identifies the trading status applicable to the transaction.',\n    },\n    {\n        id: 327,\n        name: 'HaltReason',\n        abbrName: 'HaltRsn',\n        type: 'HaltReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '86',\n        description: 'Denotes the reason for the Opening Delay or Trading Halt.',\n    },\n    {\n        id: 328,\n        name: 'InViewOfCommon',\n        abbrName: 'InViewOfCmn',\n        type: 'InViewOfCommonCodeSet',\n        added: 'FIX.4.2',\n        description: 'Indicates whether or not the halt was due to Common Stock trading being halted.',\n    },\n    {\n        id: 329,\n        name: 'DueToRelated',\n        abbrName: 'DueToReltd',\n        type: 'DueToRelatedCodeSet',\n        added: 'FIX.4.2',\n        description: 'Indicates whether or not the halt was due to the Related Security being halted.',\n    },\n    { id: 330, name: 'BuyVolume', abbrName: 'BuyVol', type: 'Qty', added: 'FIX.4.2', description: 'Quantity bought.' },\n    { id: 331, name: 'SellVolume', abbrName: 'SellVol', type: 'Qty', added: 'FIX.4.2', description: 'Quantity sold.' },\n    {\n        id: 332,\n        name: 'HighPx',\n        abbrName: 'HighPx',\n        type: 'Price',\n        added: 'FIX.4.2',\n        description:\n            'Represents an indication of the high end of the price range for a security prior to the open or reopen',\n    },\n    {\n        id: 333,\n        name: 'LowPx',\n        abbrName: 'LowPx',\n        type: 'Price',\n        added: 'FIX.4.2',\n        description:\n            'Represents an indication of the low end of the price range for a security prior to the open or reopen',\n    },\n    {\n        id: 334,\n        name: 'Adjustment',\n        abbrName: 'Adjmt',\n        type: 'AdjustmentCodeSet',\n        added: 'FIX.4.2',\n        description: 'Identifies the type of adjustment.',\n    },\n    {\n        id: 335,\n        name: 'TradSesReqID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'Unique ID of a Trading Session Status message.',\n    },\n    {\n        id: 336,\n        name: 'TradingSessionID',\n        abbrName: 'SesID',\n        type: 'TradingSessionIDCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '190',\n        description:\n            'Identifier for a trading session.\\n\\nA trading session spans an extended period of time that can also be expressed informally in terms of the trading day. Usage is determined by market or counterparties.\\n\\nTo specify good for session where session spans more than one calendar day, use TimeInForce = 0 (Day) in conjunction with TradingSessionID(336).\\n\\nBilaterally agreed values of data type \"String\" that start with a character can be used for backward compatibility.',\n    },\n    {\n        id: 337,\n        name: 'ContraTrader',\n        abbrName: 'CntraTrdr',\n        type: 'String',\n        baseCategory: 'SingleGeneralOrderHandling',\n        baseCategoryAbbrName: 'Trdr',\n        added: 'FIX.4.2',\n        description: 'Identifies the trader (e.g. \"badge number\") of the ContraBroker.',\n    },\n    {\n        id: 338,\n        name: 'TradSesMethod',\n        abbrName: 'Method',\n        type: 'TradSesMethodCodeSet',\n        added: 'FIX.4.2',\n        description: 'Method of trading',\n    },\n    {\n        id: 339,\n        name: 'TradSesMode',\n        abbrName: 'Mode',\n        type: 'TradSesModeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Trading Session Mode',\n    },\n    {\n        id: 340,\n        name: 'TradSesStatus',\n        abbrName: 'Stat',\n        type: 'TradSesStatusCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.2',\n        description: 'State of the trading session.',\n    },\n    {\n        id: 341,\n        name: 'TradSesStartTime',\n        abbrName: 'StartTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.2',\n        description: 'Starting time of the trading session',\n    },\n    {\n        id: 342,\n        name: 'TradSesOpenTime',\n        abbrName: 'OpenTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.2',\n        description: 'Time of the opening of the trading session',\n    },\n    {\n        id: 343,\n        name: 'TradSesPreCloseTime',\n        abbrName: 'PreClsTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.2',\n        description: 'Time of the pre-closed of the trading session',\n    },\n    {\n        id: 344,\n        name: 'TradSesCloseTime',\n        abbrName: 'ClsTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.2',\n        description: 'Closing time of the trading session',\n    },\n    {\n        id: 345,\n        name: 'TradSesEndTime',\n        abbrName: 'EndTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.2',\n        description: 'End time of the trading session',\n    },\n    {\n        id: 346,\n        name: 'NumberOfOrders',\n        abbrName: 'NumOfOrds',\n        type: 'int',\n        added: 'FIX.4.2',\n        description: 'Number of orders in the market.',\n    },\n    {\n        id: 347,\n        name: 'MessageEncoding',\n        abbrName: 'MsgEncd',\n        type: 'String',\n        added: 'FIX.4.2',\n        description:\n            'Type of message encoding (non-ASCII (non-English) characters) used in a message\\'s \"Encoded\" fields.',\n    },\n    {\n        id: 348,\n        name: 'EncodedIssuerLen',\n        abbrName: 'EncIssrLen',\n        type: 'Length',\n        added: 'FIX.4.2',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedIssuer (349) field.',\n    },\n    {\n        id: 349,\n        name: 'EncodedIssuer',\n        abbrName: 'EncIssr',\n        type: 'data',\n        lengthId: '348',\n        added: 'FIX.4.2',\n        description:\n            'Encoded (non-ASCII characters) representation of the Issuer field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the Issuer field.',\n    },\n    {\n        id: 350,\n        name: 'EncodedSecurityDescLen',\n        abbrName: 'EncSecDescLen',\n        type: 'Length',\n        added: 'FIX.4.2',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedSecurityDesc (351) field.',\n    },\n    {\n        id: 351,\n        name: 'EncodedSecurityDesc',\n        abbrName: 'EncSecDesc',\n        type: 'data',\n        lengthId: '350',\n        added: 'FIX.4.2',\n        description:\n            'Encoded (non-ASCII characters) representation of the SecurityDesc (107) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the SecurityDesc field.',\n    },\n    {\n        id: 352,\n        name: 'EncodedListExecInstLen',\n        abbrName: 'EncListExecInstLen',\n        type: 'Length',\n        added: 'FIX.4.2',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedListExecInst (353) field.',\n    },\n    {\n        id: 353,\n        name: 'EncodedListExecInst',\n        abbrName: 'EncListExecInst',\n        type: 'data',\n        lengthId: '352',\n        added: 'FIX.4.2',\n        description:\n            'Encoded (non-ASCII characters) representation of the ListExecInst (69) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the ListExecInst field.',\n    },\n    {\n        id: 354,\n        name: 'EncodedTextLen',\n        abbrName: 'EncTxtLen',\n        type: 'Length',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedText (355) field.',\n    },\n    {\n        id: 355,\n        name: 'EncodedText',\n        abbrName: 'EncTxt',\n        type: 'data',\n        lengthId: '354',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description:\n            'Encoded (non-ASCII characters) representation of the Text (58) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the Text(58) field.',\n    },\n    {\n        id: 356,\n        name: 'EncodedSubjectLen',\n        abbrName: 'EncSubjectLen',\n        type: 'Length',\n        added: 'FIX.4.2',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedSubject (357) field.',\n    },\n    {\n        id: 357,\n        name: 'EncodedSubject',\n        abbrName: 'EncSubject',\n        type: 'data',\n        lengthId: '356',\n        added: 'FIX.4.2',\n        description:\n            'Encoded (non-ASCII characters) representation of the Subject (147) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the Subject field.',\n    },\n    {\n        id: 358,\n        name: 'EncodedHeadlineLen',\n        abbrName: 'EncHeadlineLen',\n        type: 'Length',\n        added: 'FIX.4.2',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedHeadline (359) field.',\n    },\n    {\n        id: 359,\n        name: 'EncodedHeadline',\n        abbrName: 'EncHeadline',\n        type: 'data',\n        lengthId: '358',\n        added: 'FIX.4.2',\n        description:\n            'Encoded (non-ASCII characters) representation of the Headline (148) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the Headline field.',\n    },\n    {\n        id: 360,\n        name: 'EncodedAllocTextLen',\n        abbrName: 'EncAllocTextLen',\n        type: 'Length',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedAllocText (361) field.',\n    },\n    {\n        id: 361,\n        name: 'EncodedAllocText',\n        abbrName: 'EncAllocText',\n        type: 'data',\n        lengthId: '360',\n        added: 'FIX.4.2',\n        description:\n            'Encoded (non-ASCII characters) representation of the AllocText (161) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the AllocText field.',\n    },\n    {\n        id: 362,\n        name: 'EncodedUnderlyingIssuerLen',\n        abbrName: 'EncUndIssrLen',\n        type: 'Length',\n        added: 'FIX.4.2',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedUnderlyingIssuer (363) field.',\n    },\n    {\n        id: 363,\n        name: 'EncodedUnderlyingIssuer',\n        abbrName: 'EncUndIssr',\n        type: 'data',\n        lengthId: '362',\n        added: 'FIX.4.2',\n        description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingIssuer (306) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingIssuer field.',\n    },\n    {\n        id: 364,\n        name: 'EncodedUnderlyingSecurityDescLen',\n        abbrName: 'EncUndSecDescLen',\n        type: 'Length',\n        added: 'FIX.4.2',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedUnderlyingSecurityDesc (365) field.',\n    },\n    {\n        id: 365,\n        name: 'EncodedUnderlyingSecurityDesc',\n        abbrName: 'EncUndSecDesc',\n        type: 'data',\n        lengthId: '364',\n        added: 'FIX.4.2',\n        description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingSecurityDesc (307) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingSecurityeDesc field.',\n    },\n    {\n        id: 366,\n        name: 'AllocPrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.4.2',\n        description:\n            'Executed price for an AllocAccount (79) entry used when using \"executed price\" vs. \"average price\" allocations (e.g. Japan).',\n    },\n    {\n        id: 367,\n        name: 'QuoteSetValidUntilTime',\n        abbrName: 'ValidTil',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.2',\n        description:\n            'Indicates expiration time of this particular QuoteSet (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")',\n    },\n    {\n        id: 368,\n        name: 'QuoteEntryRejectReason',\n        abbrName: 'EntryRejRsn',\n        type: 'QuoteRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.2',\n        description: 'Reason Quote Entry was rejected:',\n    },\n    {\n        id: 369,\n        name: 'LastMsgSeqNumProcessed',\n        abbrName: 'LastMsgSeqNumProced',\n        type: 'SeqNum',\n        added: 'FIX.4.2',\n        description:\n            'The last MsgSeqNum (34) value received by the FIX engine and processed by downstream application, such as trading engine or order routing system. Can be specified on every message sent. Useful for detecting a backlog with a counterparty.',\n    },\n    {\n        id: 371,\n        name: 'RefTagID',\n        abbrName: 'RefTagID',\n        type: 'int',\n        added: 'FIX.4.2',\n        description: 'The tag number of the FIX field being referenced.',\n    },\n    {\n        id: 372,\n        name: 'RefMsgType',\n        abbrName: 'RefMsgTyp',\n        type: 'MsgTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'The MsgType (35) of the FIX message being referenced.',\n    },\n    {\n        id: 373,\n        name: 'SessionRejectReason',\n        abbrName: 'SessRejRsn',\n        type: 'SessionRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.2',\n        description: 'Code to identify reason for a session-level Reject message.',\n    },\n    {\n        id: 374,\n        name: 'BidRequestTransType',\n        abbrName: 'BidReqTransTyp',\n        type: 'BidRequestTransTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Identifies the Bid Request message type.',\n    },\n    {\n        id: 375,\n        name: 'ContraBroker',\n        abbrName: 'CntraBrkr',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'Identifies contra broker. Standard NASD market-maker mnemonic is preferred.',\n    },\n    {\n        id: 376,\n        name: 'ComplianceID',\n        abbrName: 'ComplianceID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'ID used to represent this transaction for compliance purposes (e.g. OATS reporting).',\n    },\n    {\n        id: 377,\n        name: 'SolicitedFlag',\n        abbrName: 'SolFlag',\n        type: 'SolicitedFlagCodeSet',\n        added: 'FIX.4.2',\n        description: 'Indicates whether or not the order was solicited.',\n    },\n    {\n        id: 378,\n        name: 'ExecRestatementReason',\n        abbrName: 'ExecRstmtRsn',\n        type: 'ExecRestatementReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description:\n            'The reason for restatement when an ExecutionReport(35=8) or TradeCaptureReport(35=AE) message is sent with ExecType(150) = D (Restated) or used when communicating an unsolicited cancel.',\n    },\n    {\n        id: 379,\n        name: 'BusinessRejectRefID',\n        abbrName: 'BizRejRefID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'The value of the business-level \"ID\" field on the message being referenced.',\n    },\n    {\n        id: 380,\n        name: 'BusinessRejectReason',\n        abbrName: 'BizRejRsn',\n        type: 'BusinessRejectReasonCodeSet',\n        added: 'FIX.4.2',\n        description: 'Code to identify reason for a Business Message Reject message.',\n    },\n    {\n        id: 381,\n        name: 'GrossTradeAmt',\n        abbrName: 'GrossTrdAmt',\n        type: 'Amt',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '258',\n        description:\n            'Total amount traded expressed in units of currency - usually quantity * price. For FX Futures this is used to express the notional value of a fill when quantity fields are expressed in terms of contract size (i.e. quantity * price * contract size).',\n    },\n    {\n        id: 382,\n        name: 'NoContraBrokers',\n        type: 'NumInGroup',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'The number of ContraBroker (375) entries.',\n    },\n    {\n        id: 383,\n        name: 'MaxMessageSize',\n        abbrName: 'MaxMsgSz',\n        type: 'Length',\n        added: 'FIX.4.2',\n        description: 'Maximum number of bytes supported for a single message.',\n    },\n    {\n        id: 384,\n        name: 'NoMsgTypes',\n        type: 'NumInGroup',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of MsgTypes (35) in repeating group.',\n    },\n    {\n        id: 385,\n        name: 'MsgDirection',\n        abbrName: 'MsgDirctn',\n        type: 'MsgDirectionCodeSet',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Specifies the direction of the message.',\n    },\n    {\n        id: 386,\n        name: 'NoTradingSessions',\n        type: 'NumInGroup',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of TradingSessionIDs (336) in repeating group.',\n    },\n    {\n        id: 387,\n        name: 'TotalVolumeTraded',\n        abbrName: 'TotVolTrdd',\n        type: 'Qty',\n        added: 'FIX.4.2',\n        description: 'Total volume (quantity) traded.',\n    },\n    {\n        id: 388,\n        name: 'DiscretionInst',\n        abbrName: 'DsctnInst',\n        type: 'DiscretionInstCodeSet',\n        added: 'FIX.4.2',\n        description:\n            'Code to identify the price a DiscretionOffsetValue (389) is related to and should be mathematically added to.',\n    },\n    {\n        id: 389,\n        name: 'DiscretionOffsetValue',\n        abbrName: 'OfstValu',\n        type: 'float',\n        added: 'FIX.4.2',\n        description:\n            'Amount (signed) added to the \"related to\" price specified via DiscretionInst (388), in the context of DiscretionOffsetType (842)\\n\\n(Prior to FIX 4.4 this field was of type PriceOffset)',\n    },\n    {\n        id: 390,\n        name: 'BidID',\n        abbrName: 'BidID',\n        type: 'String',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '144',\n        description:\n            'For bid lists, unique identifier for BidResponse(35=I) as assigned by sell-side (broker, exchange, ECN). Uniqueness must be guaranteed within a single trading day.\\n\\nFor quotes, unique identifier for the bid side of the quote assigned by the quote issuer.',\n    },\n    {\n        id: 391,\n        name: 'ClientBidID',\n        abbrName: 'ClBidID',\n        type: 'String',\n        added: 'FIX.4.2',\n        description:\n            'Unique identifier for a Bid Request as assigned by institution. Uniqueness must be guaranteed within a single trading day.',\n    },\n    {\n        id: 392,\n        name: 'ListName',\n        abbrName: 'ListName',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'Descriptive name for list order.',\n    },\n    {\n        id: 393,\n        name: 'TotNoRelatedSym',\n        abbrName: 'TotNoReltdSym',\n        type: 'int',\n        added: 'FIX.4.2',\n        description: 'Total number of securities.\\n\\n(Prior to FIX 4.4 this field was named TotalNumSecurities)',\n    },\n    {\n        id: 394,\n        name: 'BidType',\n        abbrName: 'BidTyp',\n        type: 'BidTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Code to identify the type of Bid Request.',\n    },\n    {\n        id: 395,\n        name: 'NumTickets',\n        abbrName: 'NumTkts',\n        type: 'int',\n        added: 'FIX.4.2',\n        description: 'Total number of tickets.',\n    },\n    {\n        id: 396,\n        name: 'SideValue1',\n        abbrName: 'SideValu1',\n        type: 'Amt',\n        added: 'FIX.4.2',\n        description: 'Amounts in currency',\n    },\n    {\n        id: 397,\n        name: 'SideValue2',\n        abbrName: 'SideValu2',\n        type: 'Amt',\n        added: 'FIX.4.2',\n        description: 'Amounts in currency',\n    },\n    {\n        id: 398,\n        name: 'NoBidDescriptors',\n        type: 'NumInGroup',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of BidDescriptor (400) entries.',\n    },\n    {\n        id: 399,\n        name: 'BidDescriptorType',\n        abbrName: 'BidDescptrTyp',\n        type: 'BidDescriptorTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Code to identify the type of BidDescriptor (400).',\n    },\n    {\n        id: 400,\n        name: 'BidDescriptor',\n        abbrName: 'BidDescptr',\n        type: 'String',\n        added: 'FIX.4.2',\n        description:\n            'BidDescriptor value. Usage depends upon BidDescriptorTyp (399).\\n\\nIf BidDescriptorType = 1\\n\\nIndustrials etc - Free text\\n\\nIf BidDescriptorType = 2\\n\\n\"FR\" etc - ISO Country Codes\\n\\nIf BidDescriptorType = 3\\n\\nFT00, FT250, STOX - Free text',\n    },\n    {\n        id: 401,\n        name: 'SideValueInd',\n        abbrName: 'SideValuInd',\n        type: 'SideValueIndCodeSet',\n        added: 'FIX.4.2',\n        description:\n            'Code to identify which \"SideValue\" the value refers to. SideValue1 and SideValue2 are used as opposed to Buy or Sell so that the basket can be quoted either way as Buy or Sell.',\n    },\n    {\n        id: 402,\n        name: 'LiquidityPctLow',\n        abbrName: 'LqdtyPctLow',\n        type: 'Percentage',\n        added: 'FIX.4.2',\n        description: 'Liquidity indicator or lower limit if TotalNumSecurities (393) > 1. Represented as a percentage.',\n    },\n    {\n        id: 403,\n        name: 'LiquidityPctHigh',\n        abbrName: 'LqdtyPctHigh',\n        type: 'Percentage',\n        added: 'FIX.4.2',\n        description: 'Upper liquidity indicator if TotalNumSecurities (393) > 1. Represented as a percentage.',\n    },\n    {\n        id: 404,\n        name: 'LiquidityValue',\n        abbrName: 'LqdtyValu',\n        type: 'Amt',\n        added: 'FIX.4.2',\n        description: 'Value between LiquidityPctLow (402) and LiquidityPctHigh (403) in Currency',\n    },\n    {\n        id: 405,\n        name: 'EFPTrackingError',\n        abbrName: 'EFPTrkngErr',\n        type: 'Percentage',\n        added: 'FIX.4.2',\n        description: 'Eg Used in EFP trades 2% (EFP - Exchange for Physical ). Represented as a percentage.',\n    },\n    {\n        id: 406,\n        name: 'FairValue',\n        abbrName: 'FairValu',\n        type: 'Amt',\n        added: 'FIX.4.2',\n        description: 'Used in EFP trades',\n    },\n    {\n        id: 407,\n        name: 'OutsideIndexPct',\n        abbrName: 'OutsideNdxPct',\n        type: 'Percentage',\n        added: 'FIX.4.2',\n        description: 'Used in EFP trades. Represented as a percentage.',\n    },\n    {\n        id: 408,\n        name: 'ValueOfFutures',\n        abbrName: 'ValuOfFuts',\n        type: 'Amt',\n        added: 'FIX.4.2',\n        description: 'Used in EFP trades',\n    },\n    {\n        id: 409,\n        name: 'LiquidityIndType',\n        abbrName: 'LqdtyIndTyp',\n        type: 'LiquidityIndTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Code to identify the type of liquidity indicator.',\n    },\n    {\n        id: 410,\n        name: 'WtAverageLiquidity',\n        abbrName: 'WtAvgLqdty',\n        type: 'Percentage',\n        added: 'FIX.4.2',\n        description:\n            'Overall weighted average liquidity expressed as a % of average daily volume. Represented as a percentage.',\n    },\n    {\n        id: 411,\n        name: 'ExchangeForPhysical',\n        abbrName: 'EFP',\n        type: 'ExchangeForPhysicalCodeSet',\n        added: 'FIX.4.2',\n        description: 'Indicates whether or not to exchange for phsyical.',\n    },\n    {\n        id: 412,\n        name: 'OutMainCntryUIndex',\n        abbrName: 'OutMainCntryUNdx',\n        type: 'Amt',\n        added: 'FIX.4.2',\n        description: 'Value of stocks in Currency',\n    },\n    {\n        id: 413,\n        name: 'CrossPercent',\n        abbrName: 'CrssPct',\n        type: 'Percentage',\n        baseCategory: 'CrossOrders',\n        baseCategoryAbbrName: 'Pct',\n        added: 'FIX.4.2',\n        description: 'Percentage of program that crosses in Currency. Represented as a percentage.',\n    },\n    {\n        id: 414,\n        name: 'ProgRptReqs',\n        abbrName: 'ProgRptReqs',\n        type: 'ProgRptReqsCodeSet',\n        added: 'FIX.4.2',\n        description: 'Code to identify the desired frequency of progress reports.',\n    },\n    {\n        id: 415,\n        name: 'ProgPeriodInterval',\n        abbrName: 'ProgPeriodIntvl',\n        type: 'int',\n        added: 'FIX.4.2',\n        description: \"Time in minutes between each ListStatus report sent by SellSide. Zero means don't send status.\",\n    },\n    {\n        id: 416,\n        name: 'IncTaxInd',\n        abbrName: 'IncTaxInd',\n        type: 'IncTaxIndCodeSet',\n        added: 'FIX.4.2',\n        description: 'Code to represent whether value is net (inclusive of tax) or gross.',\n    },\n    {\n        id: 417,\n        name: 'NumBidders',\n        abbrName: 'NumBidders',\n        type: 'int',\n        added: 'FIX.4.2',\n        description: 'Indicates the total number of bidders on the list',\n    },\n    {\n        id: 418,\n        name: 'BidTradeType',\n        abbrName: 'BidTrdTyp',\n        type: 'BidTradeTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Code to represent the type of trade.\\n\\n(Prior to FIX 4.4 this field was named \"TradeType\")',\n    },\n    {\n        id: 419,\n        name: 'BasisPxType',\n        abbrName: 'BasisPxTyp',\n        type: 'BasisPxTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Code to represent the basis price type.',\n    },\n    {\n        id: 420,\n        name: 'NoBidComponents',\n        type: 'NumInGroup',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Indicates the number of list entries.',\n    },\n    {\n        id: 421,\n        name: 'Country',\n        abbrName: 'Ctry',\n        type: 'Country',\n        added: 'FIX.4.2',\n        description: 'ISO Country Code in field',\n    },\n    {\n        id: 422,\n        name: 'TotNoStrikes',\n        abbrName: 'TotNoStrks',\n        type: 'int',\n        added: 'FIX.4.2',\n        description:\n            'Total number of strike price entries across all messages. Should be the sum of all NoStrikes (428) in each message that has repeating strike price entries related to the same ListID (66). Used to support fragmentation.',\n    },\n    {\n        id: 423,\n        name: 'PriceType',\n        abbrName: 'PxTyp',\n        type: 'PriceTypeCodeSet',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Code to represent the price type.',\n    },\n    {\n        id: 424,\n        name: 'DayOrderQty',\n        abbrName: 'DayOrdQty',\n        type: 'Qty',\n        added: 'FIX.4.2',\n        description:\n            'For GT orders, the OrderQty (38) less all quantity (adjusted for stock splits) that traded on previous days. DayOrderQty (424) = OrderQty - (CumQty (14) - DayCumQty (425))',\n    },\n    {\n        id: 425,\n        name: 'DayCumQty',\n        abbrName: 'DayCumQty',\n        type: 'Qty',\n        added: 'FIX.4.2',\n        description: 'Quantity on a GT order that has traded today.',\n    },\n    {\n        id: 426,\n        name: 'DayAvgPx',\n        abbrName: 'DayAvgPx',\n        type: 'Price',\n        added: 'FIX.4.2',\n        description: 'The average price for quantity on a GT order that has traded today.',\n    },\n    {\n        id: 427,\n        name: 'GTBookingInst',\n        abbrName: 'GTBkngInst',\n        type: 'GTBookingInstCodeSet',\n        added: 'FIX.4.2',\n        description:\n            'Code to identify whether to book out executions on a part-filled GT order on the day of execution or to accumulate.',\n    },\n    {\n        id: 428,\n        name: 'NoStrikes',\n        type: 'NumInGroup',\n        added: 'FIX.4.2',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of list strike price entries.',\n    },\n    {\n        id: 429,\n        name: 'ListStatusType',\n        abbrName: 'ListStatTyp',\n        type: 'ListStatusTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Code to represent the status type.',\n    },\n    {\n        id: 430,\n        name: 'NetGrossInd',\n        abbrName: 'NetGrossInd',\n        type: 'NetGrossIndCodeSet',\n        added: 'FIX.4.2',\n        description: 'Code to represent whether value is net (inclusive of tax) or gross.',\n    },\n    {\n        id: 431,\n        name: 'ListOrderStatus',\n        abbrName: 'ListOrdStat',\n        type: 'ListOrderStatusCodeSet',\n        added: 'FIX.4.2',\n        description: 'Code to represent the status of a list order.',\n    },\n    {\n        id: 432,\n        name: 'ExpireDate',\n        abbrName: 'ExpireDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.2',\n        description:\n            \"Date of order expiration (last day the order can trade), always expressed in terms of the local market date. The time at which the order expires is determined by the local market's business practices\",\n    },\n    {\n        id: 433,\n        name: 'ListExecInstType',\n        abbrName: 'ListExecInstTyp',\n        type: 'ListExecInstTypeCodeSet',\n        added: 'FIX.4.2',\n        description: 'Identifies the type of ListExecInst (69).',\n    },\n    {\n        id: 434,\n        name: 'CxlRejResponseTo',\n        abbrName: 'CxlRejRspTo',\n        type: 'CxlRejResponseToCodeSet',\n        added: 'FIX.4.2',\n        description: 'Identifies the type of request that a Cancel Reject is in response to.',\n    },\n    {\n        id: 435,\n        name: 'UnderlyingCouponRate',\n        abbrName: 'CpnRt',\n        type: 'Percentage',\n        added: 'FIX.4.2',\n        description: \"Underlying security's CouponRate.\\n\\nSee CouponRate (223) field for description\",\n    },\n    {\n        id: 436,\n        name: 'UnderlyingContractMultiplier',\n        abbrName: 'Mult',\n        type: 'float',\n        added: 'FIX.4.2',\n        description: \"Underlying security's ContractMultiplier.\\n\\nSee ContractMultiplier (231) field for description\",\n    },\n    {\n        id: 437,\n        name: 'ContraTradeQty',\n        abbrName: 'CntraTrdQty',\n        type: 'Qty',\n        baseCategory: 'SingleGeneralOrderHandling',\n        baseCategoryAbbrName: 'TrdQty',\n        added: 'FIX.4.2',\n        description: 'Quantity traded with the ContraBroker (375).',\n    },\n    {\n        id: 438,\n        name: 'ContraTradeTime',\n        abbrName: 'CntraTrdTm',\n        type: 'UTCTimestamp',\n        baseCategory: 'SingleGeneralOrderHandling',\n        baseCategoryAbbrName: 'TrdTm',\n        added: 'FIX.4.2',\n        description:\n            'Identifes the time of the trade with the ContraBroker (375). (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")',\n    },\n    {\n        id: 441,\n        name: 'LiquidityNumSecurities',\n        abbrName: 'LqdtyNumSecurities',\n        type: 'int',\n        added: 'FIX.4.2',\n        description: 'Number of Securites between LiquidityPctLow (402) and LiquidityPctHigh (403) in Currency.',\n    },\n    {\n        id: 442,\n        name: 'MultiLegReportingType',\n        abbrName: 'MLegRptTyp',\n        type: 'MultiLegReportingTypeCodeSet',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '150',\n        description:\n            'Used to indicate how the multi-legged security (e.g. option strategies, spreads, etc.) is being reported.',\n    },\n    {\n        id: 443,\n        name: 'StrikeTime',\n        abbrName: 'StrkTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '226',\n        description:\n            'The time at which current market prices are used to determine the value of a basket.\\n\\nIn negotiation workflows where a spread-to-benchmark price is negotiated, this is the pre-determined time at which the benchmark is to be spotted.',\n    },\n    {\n        id: 444,\n        name: 'ListStatusText',\n        abbrName: 'ListStatText',\n        type: 'String',\n        added: 'FIX.4.2',\n        description: 'Free format text string related to List Status.',\n    },\n    {\n        id: 445,\n        name: 'EncodedListStatusTextLen',\n        abbrName: 'EncListStatTextLen',\n        type: 'Length',\n        added: 'FIX.4.2',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedListStatusText (446) field.',\n    },\n    {\n        id: 446,\n        name: 'EncodedListStatusText',\n        abbrName: 'EncListStatText',\n        type: 'data',\n        lengthId: '445',\n        added: 'FIX.4.2',\n        description:\n            'Encoded (non-ASCII characters) representation of the ListStatusText (444) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the ListStatusText field.',\n    },\n    {\n        id: 447,\n        name: 'PartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'Identifies class or source of the PartyID (448) value. Required if PartyID is specified. Note: applicable values depend upon PartyRole (452) specified.\\n\\nSee \"Appendix 6-G - Use of <Parties> Component Block\"',\n    },\n    {\n        id: 448,\n        name: 'PartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '447',\n        added: 'FIX.4.3',\n        description:\n            'Party identifier/code. See PartyIDSource (447) and PartyRole (452).\\n\\nSee \"Appendix 6-G - Use of <Parties> Component Block\"',\n    },\n    {\n        id: 451,\n        name: 'NetChgPrevDay',\n        abbrName: 'NetChgPrevDay',\n        type: 'PriceOffset',\n        added: 'FIX.4.3',\n        description: \"Net change from previous day's closing price vs. last traded price.\",\n    },\n    {\n        id: 452,\n        name: 'PartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '256',\n        description: 'Identifies the type or role of the PartyID (448) specified.',\n    },\n    {\n        id: 453,\n        name: 'NoPartyIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of PartyID (448), PartyIDSource (447), and PartyRole (452) entries',\n    },\n    {\n        id: 454,\n        name: 'NoSecurityAltID',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of SecurityAltID (455) entries.',\n    },\n    {\n        id: 455,\n        name: 'SecurityAltID',\n        abbrName: 'AltID',\n        type: 'String',\n        discriminatorId: '456',\n        added: 'FIX.4.3',\n        description:\n            'Alternate Security identifier value for this security of SecurityAltIDSource (456) type (e.g. CUSIP, SEDOL, ISIN, etc). Requires SecurityAltIDSource.',\n    },\n    {\n        id: 456,\n        name: 'SecurityAltIDSource',\n        abbrName: 'AltIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Identifies class or source of the SecurityAltID(455) value.',\n    },\n    {\n        id: 457,\n        name: 'NoUnderlyingSecurityAltID',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of UnderlyingSecurityAltID (458) entries.',\n    },\n    {\n        id: 458,\n        name: 'UnderlyingSecurityAltID',\n        abbrName: 'AltID',\n        type: 'String',\n        discriminatorId: '459',\n        added: 'FIX.4.3',\n        description:\n            'Alternate Security identifier value for this underlying security of UnderlyingSecurityAltIDSource (459) type (e.g. CUSIP, SEDOL, ISIN, etc). Requires UnderlyingSecurityAltIDSource.',\n    },\n    {\n        id: 459,\n        name: 'UnderlyingSecurityAltIDSource',\n        abbrName: 'AltIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Identifies class or source of the UnderlyingSecurityAltID(458) value.\\n\\nRequired if UnderlyingSecurityAltID is specified.',\n    },\n    {\n        id: 460,\n        name: 'Product',\n        abbrName: 'Prod',\n        type: 'ProductCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'Indicates the type of product the security is associated with. See also the CFICode (461) and SecurityType (167) fields.',\n    },\n    {\n        id: 461,\n        name: 'CFICode',\n        abbrName: 'CFI',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            'Indicates the type of security using ISO 10962 standard, Classification of Financial Instruments (CFI code) values. ISO 10962 is maintained by ANNA (Association of National Numbering Agencies) acting as Registration Authority. See \"Appendix 6-B FIX Fields Based Upon Other Standards\". See also the Product (460) and SecurityType (167) fields. It is recommended that CFICode be used instead of SecurityType (167) for non-Fixed Income instruments.\\n\\nA subset of possible values applicable to FIX usage are identified in \"Appendix 6-D CFICode Usage - ISO 10962 Classification of Financial Instruments (CFI code)\"',\n    },\n    {\n        id: 462,\n        name: 'UnderlyingProduct',\n        abbrName: 'Prod',\n        type: 'ProductCodeSet',\n        added: 'FIX.4.3',\n        description: \"Underlying security's Product.\\n\\nValid values: see Product(460) field\",\n    },\n    {\n        id: 463,\n        name: 'UnderlyingCFICode',\n        abbrName: 'CFI',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: \"Underlying security's CFICode.\\n\\nValid values: see CFICode (461) field\",\n    },\n    {\n        id: 464,\n        name: 'TestMessageIndicator',\n        abbrName: 'TestMsgInd',\n        type: 'TestMessageIndicatorCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'Indicates whether or not this FIX Session is a \"test\" vs. \"production\" connection. Useful for preventing \"accidents\".',\n    },\n    {\n        id: 466,\n        name: 'BookingRefID',\n        abbrName: 'BkngRefID',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Common reference passed to a post-trade booking process (e.g. industry matching utility).',\n    },\n    {\n        id: 467,\n        name: 'IndividualAllocID',\n        abbrName: 'IndAllocID',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            'Unique identifier for a specific NoAllocs (78) repeating group instance (e.g. for an AllocAccount).',\n    },\n    {\n        id: 468,\n        name: 'RoundingDirection',\n        abbrName: 'RndDir',\n        type: 'RoundingDirectionCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'Specifies which direction to round For CIV - indicates whether or not the quantity of shares/units is to be rounded and in which direction where CashOrdQty (152) or (for CIV only) OrderPercent (516) are specified on an order.\\n\\nThe default is for rounding to be at the discretion of the executing broker or fund manager.\\n\\ne.g. for an order specifying CashOrdQty or OrderPercent if the calculated number of shares/units was 325.76 and RoundingModulus (469) was 0 - \"round down\" would give 320 units, 1 - \"round up\" would give 330 units and \"round to nearest\" would give 320 units.',\n    },\n    {\n        id: 469,\n        name: 'RoundingModulus',\n        abbrName: 'RndMod',\n        type: 'float',\n        added: 'FIX.4.3',\n        description:\n            'For CIV - a float value indicating the value to which rounding is required.\\n\\ni.e. 0 means round to a multiple of 0 units/shares; 0.5 means round to a multiple of 0.5 units/shares.\\n\\nThe default, if RoundingDirection (468) is specified without RoundingModulus, is to round to a whole unit/share.',\n    },\n    {\n        id: 470,\n        name: 'CountryOfIssue',\n        abbrName: 'IssuCtry',\n        type: 'Country',\n        added: 'FIX.4.3',\n        description:\n            'ISO Country code of instrument issue (e.g. the country portion typically used in ISIN). Can be used in conjunction with non-ISIN SecurityID (48) (e.g. CUSIP for Municipal Bonds without ISIN) to provide uniqueness.',\n    },\n    {\n        id: 471,\n        name: 'StateOrProvinceOfIssue',\n        abbrName: 'StPrv',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'A two-character state or province abbreviation.',\n    },\n    {\n        id: 472,\n        name: 'LocaleOfIssue',\n        abbrName: 'Lcl',\n        type: 'String',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description:\n            'Identifies the locale or region of issue.\\n\\nFor Municipal Security Issuers other than state or province. Refer to http://www.atmos.albany.edu/cgi/stagrep-cgi. Reference the IATA city codes for values. Note IATA (International Air Transport Association) maintains the codes at www.iata.org. For other securities the value may be a region of the issuer, e.g. North America.',\n    },\n    {\n        id: 473,\n        name: 'NoRegistDtls',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'The number of registration details on a Registration Instructions message',\n    },\n    {\n        id: 474,\n        name: 'MailingDtls',\n        abbrName: 'MailingDtls',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Set of Correspondence address details, possibly including phone, fax, etc.',\n    },\n    {\n        id: 475,\n        name: 'InvestorCountryOfResidence',\n        abbrName: 'InvestorCtryOfResidence',\n        type: 'Country',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'The ISO 3166 Country code (2 character) identifying which country the beneficial investor is resident for tax purposes.',\n    },\n    {\n        id: 476,\n        name: 'PaymentRef',\n        abbrName: 'PmtRef',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            '\"Settlement Payment Reference\" - A free format Payment reference to assist with reconciliation, e.g. a Client and/or Order ID number.',\n    },\n    {\n        id: 477,\n        name: 'DistribPaymentMethod',\n        abbrName: 'DistribPmtMethod',\n        type: 'DistribPaymentMethodCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Identifies the payment method for a (fractional) distribution. Used for CIV.',\n    },\n    {\n        id: 478,\n        name: 'CashDistribCurr',\n        abbrName: 'CshDistribCurr',\n        type: 'Currency',\n        added: 'FIX.4.3',\n        description: 'Specifies currency to be used for Cash Distributions see \"Appendix 6-A Valid Currency Codes\".',\n    },\n    {\n        id: 479,\n        name: 'CommCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies currency to be used for Commission(12) if the commission currency is different from the deal currency.\\n\\nCommCurrencyCodeSource(2922) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.',\n    },\n    {\n        id: 480,\n        name: 'CancellationRights',\n        abbrName: 'CxllationRights',\n        type: 'CancellationRightsCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'For CIV - A one character code identifying whether Cancellation rights/Cooling off period applies.',\n    },\n    {\n        id: 481,\n        name: 'MoneyLaunderingStatus',\n        abbrName: 'MnyLaunderingStat',\n        type: 'MoneyLaunderingStatusCodeSet',\n        added: 'FIX.4.3',\n        description: 'A one character code identifying Money laundering status.',\n    },\n    {\n        id: 482,\n        name: 'MailingInst',\n        abbrName: 'MailingInst',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Free format text to specify mailing instruction requirements, e.g. \"no third party mailings\".',\n    },\n    {\n        id: 483,\n        name: 'TransBkdTime',\n        abbrName: 'TransBkdTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.3',\n        description:\n            'For CIV A date and time stamp to indicate the time a CIV order was booked by the fund manager.\\n\\nFor derivatives a date and time stamp to indicate when this order was booked with the agent prior to submission to the VMU. Indicates the time at which the order was finalized between the buyer and seller prior to submission.',\n    },\n    {\n        id: 484,\n        name: 'ExecPriceType',\n        abbrName: 'ExecPxTyp',\n        type: 'ExecPriceTypeCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'For CIV - Identifies how the execution price LastPx (31) was calculated from the fund unit/share price(s) calculated at the fund valuation point.',\n    },\n    {\n        id: 485,\n        name: 'ExecPriceAdjustment',\n        abbrName: 'ExecPxAdjment',\n        type: 'float',\n        added: 'FIX.4.3',\n        description:\n            'For CIV the amount or percentage by which the fund unit/share price was adjusted, as indicated by ExecPriceType (484)',\n    },\n    {\n        id: 486,\n        name: 'DateOfBirth',\n        abbrName: 'DtOfBirth',\n        type: 'LocalMktDate',\n        added: 'FIX.4.3',\n        description:\n            'The date of birth applicable to the individual, e.g. required to open some types of tax-exempt account.',\n    },\n    {\n        id: 487,\n        name: 'TradeReportTransType',\n        abbrName: 'TransTyp',\n        type: 'TradeReportTransTypeCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'Identifies Trade Report message transaction type\\n\\n(Prior to FIX 4.4 this field was of type char)',\n    },\n    {\n        id: 488,\n        name: 'CardHolderName',\n        abbrName: 'CardHolderName',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'The name of the payment card holder as specified on the card being used for payment.',\n    },\n    {\n        id: 489,\n        name: 'CardNumber',\n        abbrName: 'CardNum',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'The number of the payment card as specified on the card being used for payment.',\n    },\n    {\n        id: 490,\n        name: 'CardExpDate',\n        abbrName: 'CardExpDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.3',\n        description: 'The expiry date of the payment card as specified on the card being used for payment.',\n    },\n    {\n        id: 491,\n        name: 'CardIssNum',\n        abbrName: 'CardIssNum',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            'The issue number of the payment card as specified on the card being used for payment. This is only applicable to certain types of card.',\n    },\n    {\n        id: 492,\n        name: 'PaymentMethod',\n        abbrName: 'PmtMethod',\n        type: 'PaymentMethodCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Identifies the settlement payment method.',\n    },\n    {\n        id: 493,\n        name: 'RegistAcctType',\n        abbrName: 'AcctTyp',\n        type: 'String',\n        baseCategory: 'RegistrationInstruction',\n        baseCategoryAbbrName: 'AcctTyp',\n        added: 'FIX.4.3',\n        description:\n            \"For CIV - a fund manager-defined code identifying which of the fund manager's account types is required.\",\n    },\n    {\n        id: 494,\n        name: 'Designation',\n        abbrName: 'Designation',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            \"Free format text defining the designation to be associated with a holding on the register. Used to identify assets of a specific underlying investor using a common registration, e.g. a broker's nominee or street name.\",\n    },\n    {\n        id: 495,\n        name: 'TaxAdvantageType',\n        abbrName: 'TaxAdvantageTyp',\n        type: 'TaxAdvantageTypeCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Identifies the type of tax exempt account in which purchases shares/units are to be held. Used for CIV.',\n    },\n    {\n        id: 496,\n        name: 'RegistRejReasonText',\n        abbrName: 'RejRsnTxt',\n        type: 'String',\n        baseCategory: 'RegistrationInstruction',\n        baseCategoryAbbrName: 'Dtls',\n        added: 'FIX.4.3',\n        description: 'Text indicating reason(s) why a Registration Instruction has been rejected.',\n    },\n    {\n        id: 497,\n        name: 'FundRenewWaiv',\n        abbrName: 'FundRenewWaiv',\n        type: 'FundRenewWaivCodeSet',\n        added: 'FIX.4.3',\n        description: 'A one character code identifying whether the Fund based renewal commission is to be waived.',\n    },\n    {\n        id: 498,\n        name: 'CashDistribAgentName',\n        abbrName: 'CshDistribAgentName',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Name of local agent bank if for cash distributions',\n    },\n    {\n        id: 499,\n        name: 'CashDistribAgentCode',\n        abbrName: 'CshDistribAgentCode',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'BIC (Bank Identification Code--Swift managed) code of agent bank for cash distributions',\n    },\n    {\n        id: 500,\n        name: 'CashDistribAgentAcctNumber',\n        abbrName: 'CshDistribAgentAcctNum',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Account number at agent bank for distributions.',\n    },\n    {\n        id: 501,\n        name: 'CashDistribPayRef',\n        abbrName: 'CshDistribPayRef',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Free format Payment reference to assist with reconciliation of distributions.',\n    },\n    {\n        id: 502,\n        name: 'CashDistribAgentAcctName',\n        abbrName: 'CshDistribAgentAcctName',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Name of account at agent bank for distributions.',\n    },\n    {\n        id: 503,\n        name: 'CardStartDate',\n        abbrName: 'CardStartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.3',\n        description: 'The start date of the card as specified on the card being used for payment.',\n    },\n    {\n        id: 504,\n        name: 'PaymentDate',\n        abbrName: 'PmtDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.3',\n        description:\n            'The date written on a cheque or date payment should be submitted to the relevant clearing system.',\n    },\n    {\n        id: 505,\n        name: 'PaymentRemitterID',\n        abbrName: 'PmtRemtrID',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Identifies sender of a payment, e.g. the payment remitter or a customer reference number.',\n    },\n    {\n        id: 506,\n        name: 'RegistStatus',\n        abbrName: 'RegStat',\n        type: 'RegistStatusCodeSet',\n        added: 'FIX.4.3',\n        description: 'Registration status as returned by the broker or (for CIV) the fund manager:',\n    },\n    {\n        id: 507,\n        name: 'RegistRejReasonCode',\n        abbrName: 'RejRsnCd',\n        type: 'RegistRejReasonCodeCodeSet',\n        baseCategory: 'RegistrationInstruction',\n        baseCategoryAbbrName: 'RejRsnCd',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.3',\n        description:\n            'Reason(s) why Registration Instructions has been rejected.\\n\\nThe reason may be further amplified in the RegistRejReasonCode field.\\n\\nPossible values of reason code include:',\n    },\n    {\n        id: 508,\n        name: 'RegistRefID',\n        abbrName: 'RefID',\n        type: 'String',\n        baseCategory: 'RegistrationInstruction',\n        baseCategoryAbbrName: 'RefID',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'Reference identifier for the RegistID(513) with Cancel and Replace RegistTransType(514) transaction types.',\n    },\n    {\n        id: 509,\n        name: 'RegistDtls',\n        abbrName: 'Dtls',\n        type: 'String',\n        baseCategory: 'RegistrationInstruction',\n        baseCategoryAbbrName: 'RejRsnTxt',\n        added: 'FIX.4.3',\n        description: 'Set of Registration name and address details, possibly including phone, fax etc.',\n    },\n    {\n        id: 510,\n        name: 'NoDistribInsts',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'The number of Distribution Instructions on a Registration Instructions message',\n    },\n    {\n        id: 511,\n        name: 'RegistEmail',\n        abbrName: 'Email',\n        type: 'String',\n        baseCategory: 'RegistrationInstruction',\n        baseCategoryAbbrName: 'Email',\n        added: 'FIX.4.3',\n        description: 'Email address relating to Registration name and address details',\n    },\n    {\n        id: 512,\n        name: 'DistribPercentage',\n        abbrName: 'DistribPctage',\n        type: 'Percentage',\n        added: 'FIX.4.3',\n        description: 'The amount of each distribution to go to this beneficiary, expressed as a percentage',\n    },\n    {\n        id: 513,\n        name: 'RegistID',\n        abbrName: 'RegistID',\n        type: 'String',\n        baseCategory: 'RegistrationInstruction',\n        baseCategoryAbbrName: 'ID',\n        added: 'FIX.4.3',\n        description: 'Unique identifier of the registration details as assigned by institution or intermediary.',\n    },\n    {\n        id: 514,\n        name: 'RegistTransType',\n        abbrName: 'TransTyp',\n        type: 'RegistTransTypeCodeSet',\n        added: 'FIX.4.3',\n        description: 'Identifies Registration Instructions transaction type',\n    },\n    {\n        id: 515,\n        name: 'ExecValuationPoint',\n        abbrName: 'ExecValuationPoint',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.3',\n        description:\n            'For CIV - a date and time stamp to indicate the fund valuation point with respect to which a order was priced by the fund manager.',\n    },\n    {\n        id: 516,\n        name: 'OrderPercent',\n        abbrName: 'Pct',\n        type: 'Percentage',\n        added: 'FIX.4.3',\n        description:\n            \"For CIV specifies the approximate order quantity desired. For a CIV Sale it specifies percentage of investor's total holding to be sold. For a CIV switch/exchange it specifies percentage of investor's cash realised from sales to be re-invested. The executing broker, intermediary or fund manager is responsible for converting and calculating OrderQty (38) in shares/units for subsequent messages.\",\n    },\n    {\n        id: 517,\n        name: 'OwnershipType',\n        abbrName: 'OwnershipTyp',\n        type: 'OwnershipTypeCodeSet',\n        added: 'FIX.4.3',\n        description: 'The relationship between Registration parties.',\n    },\n    {\n        id: 518,\n        name: 'NoContAmts',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'The number of Contract Amount details on an Execution Report message',\n    },\n    {\n        id: 519,\n        name: 'ContAmtType',\n        abbrName: 'ContAmtTyp',\n        type: 'ContAmtTypeCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'Type of ContAmtValue (520).\\n\\nNOTE That Commission Amount / % in Contract Amounts is the commission actually charged, rather than the commission instructions given in Fields 2/3.',\n    },\n    {\n        id: 520,\n        name: 'ContAmtValue',\n        abbrName: 'ContAmtValu',\n        type: 'float',\n        added: 'FIX.4.3',\n        description:\n            'Value of Contract Amount, e.g. a financial amount or percentage as indicated by ContAmtType (519).',\n    },\n    {\n        id: 521,\n        name: 'ContAmtCurr',\n        abbrName: 'ContAmtCurr',\n        type: 'Currency',\n        added: 'FIX.4.3',\n        description:\n            'Specifies currency for the Contract amount if different from the Deal Currency - see \"Appendix 6-A; Valid Currency Codes\".',\n    },\n    {\n        id: 522,\n        name: 'OwnerType',\n        abbrName: 'OwnerTyp',\n        type: 'OwnerTypeCodeSet',\n        added: 'FIX.4.3',\n        description: 'Identifies the type of owner.',\n    },\n    {\n        id: 523,\n        name: 'PartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            'Sub-identifier (e.g. Clearing Account for PartyRole (452)=Clearing Firm, Locate ID # for PartyRole=Locate/Lending Firm, etc). Not required when using PartyID (448), PartyIDSource (447), and PartyRole.',\n    },\n    {\n        id: 524,\n        name: 'NestedPartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '525',\n        added: 'FIX.4.3',\n        description: 'PartyID value within a nested repeating group.\\n\\nSame values as PartyID (448)',\n    },\n    {\n        id: 525,\n        name: 'NestedPartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.4.3',\n        description: 'PartyIDSource value within a nested repeating group.\\n\\nSame values as PartyIDSource (447)',\n    },\n    {\n        id: 526,\n        name: 'SecondaryClOrdID',\n        abbrName: 'ClOrdID2',\n        type: 'String',\n        baseCategory: 'SingleGeneralOrderHandling',\n        baseCategoryAbbrName: 'ID2',\n        added: 'FIX.4.3',\n        description:\n            'Assigned by the party which originates the order. Can be used to provide the ClOrdID (11) used by an exchange or executing system.',\n    },\n    {\n        id: 527,\n        name: 'SecondaryExecID',\n        abbrName: 'ExecID2',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            'Assigned by the party which accepts the order. Can be used to provide the ExecID (17) used by an exchange or executing system.',\n    },\n    {\n        id: 528,\n        name: 'OrderCapacity',\n        abbrName: 'Cpcty',\n        type: 'OrderCapacityCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'Designates the capacity of the firm placing the order.\\n\\n(as of FIX 4.3, this field replaced Rule80A (tag 47) --used in conjunction with OrderRestrictions (529) field)\\n\\n(see Volume : \"Glossary\" for value definitions)',\n    },\n    {\n        id: 529,\n        name: 'OrderRestrictions',\n        abbrName: 'Rstctions',\n        type: 'OrderRestrictionsCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'Restrictions associated with an order. If more than one restriction is applicable to an order, this field can contain multiple instructions separated by space.',\n    },\n    {\n        id: 530,\n        name: 'MassCancelRequestType',\n        abbrName: 'MassCxlReqTyp',\n        type: 'MassCancelRequestTypeCodeSet',\n        baseCategory: 'OrderMassHandling',\n        baseCategoryAbbrName: 'ReqTyp',\n        added: 'FIX.4.3',\n        description: 'Specifies scope of Order Mass Cancel Request.',\n    },\n    {\n        id: 531,\n        name: 'MassCancelResponse',\n        abbrName: 'MassCxlRsp',\n        type: 'MassCancelResponseCodeSet',\n        baseCategory: 'OrderMassHandling',\n        baseCategoryAbbrName: 'Rsp',\n        added: 'FIX.4.3',\n        description:\n            'Specifies the action taken by counterparty order handling system as a result of the Order Mass Cancel Request',\n    },\n    {\n        id: 532,\n        name: 'MassCancelRejectReason',\n        abbrName: 'MassCxlRejRsn',\n        type: 'MassCancelRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.3',\n        description: 'Reason Order Mass Cancel Request was rejected',\n    },\n    {\n        id: 533,\n        name: 'TotalAffectedOrders',\n        abbrName: 'TotAffctdOrds',\n        type: 'int',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description:\n            'Total number of orders affected by either the OrderMassActionRequest(MsgType=CA) or OrderMassCancelRequest(MsgType=Q).',\n    },\n    {\n        id: 534,\n        name: 'NoAffectedOrders',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of affected orders in the repeating group of order ids.',\n    },\n    {\n        id: 535,\n        name: 'AffectedOrderID',\n        abbrName: 'OrdID',\n        type: 'String',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description: 'OrderID(37) of an order affected by a mass cancel or mass action request.',\n    },\n    {\n        id: 536,\n        name: 'AffectedSecondaryOrderID',\n        abbrName: 'OrdID2',\n        type: 'String',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description: 'SecondaryOrderID(198) of an order affected by a mass cancel or mass action request.',\n    },\n    {\n        id: 537,\n        name: 'QuoteType',\n        abbrName: 'Typ',\n        type: 'QuoteTypeCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'Identifies the type of quote.\\n\\nAn indicative quote is used to inform a counterparty of a market. An indicative quote does not result directly in a trade.\\n\\nA tradeable quote is submitted to a market and will result directly in a trade against other orders and quotes in a market.\\n\\nA restricted tradeable quote is submitted to a market and within a certain restriction (possibly based upon price or quantity) will automatically trade against orders. Order that do not comply with restrictions are sent to the quote issuer who can choose to accept or decline the order.\\n\\nA counter quote is used in the negotiation model. See Volume 7 - Product: Fixed Income for example usage.',\n    },\n    {\n        id: 538,\n        name: 'NestedPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.4.3',\n        description: 'PartyRole value within a nested repeating group.\\n\\nSame values as PartyRole (452)',\n    },\n    {\n        id: 539,\n        name: 'NoNestedPartyIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of NestedPartyID (524), NestedPartyIDSource (525), and NestedPartyRole (538) entries',\n    },\n    {\n        id: 540,\n        name: 'TotalAccruedInterestAmt',\n        abbrName: 'TotAcrdIntAmt',\n        type: 'Amt',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.4.4',\n        description: 'Total Amount of Accrued Interest for convertible bonds and fixed income',\n    },\n    {\n        id: 541,\n        name: 'MaturityDate',\n        abbrName: 'MatDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.3',\n        description: 'Date of maturity.',\n    },\n    {\n        id: 542,\n        name: 'UnderlyingMaturityDate',\n        abbrName: 'Mat',\n        type: 'LocalMktDate',\n        added: 'FIX.4.3',\n        description: \"Underlying security's maturity date.\\n\\nSee MaturityDate (541) field for description\",\n    },\n    {\n        id: 543,\n        name: 'InstrRegistry',\n        abbrName: 'Rgstry',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            'Values may include BIC for the depository or custodian who maintain ownership records, the ISO country code for the location of the record, or the value \"ZZ\" to specify physical ownership of the security (e.g. stock certificate).',\n    },\n    {\n        id: 544,\n        name: 'CashMargin',\n        abbrName: 'CshMgn',\n        type: 'CashMarginCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'Identifies whether an order is a margin order or a non-margin order. This is primarily used when sending orders to Japanese exchanges to indicate sell margin or buy to cover. The same tag could be assigned also by buy-side to indicate the intent to sell or buy margin and the sell-side to accept or reject (base on some validation criteria) the margin request.',\n    },\n    {\n        id: 545,\n        name: 'NestedPartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'PartySubID value within a nested repeating group.\\n\\nSame values as PartySubID (523)',\n    },\n    {\n        id: 546,\n        name: 'Scope',\n        abbrName: 'Scope',\n        type: 'ScopeCodeSet',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Specifies the market scope of the market data.',\n    },\n    {\n        id: 547,\n        name: 'MDImplicitDelete',\n        abbrName: 'ImplctDel',\n        type: 'MDImplicitDeleteCodeSet',\n        added: 'FIX.4.3',\n        description: 'Defines how a server handles distribution of a truncated book. Defaults to broker option.',\n    },\n    {\n        id: 548,\n        name: 'CrossID',\n        abbrName: 'CrssID',\n        type: 'String',\n        baseCategory: 'CrossOrders',\n        baseCategoryAbbrName: 'ID',\n        added: 'FIX.4.3',\n        description:\n            'Identifier for a cross order. Must be unique during a given trading day. Recommend that firms use the order date as part of the CrossID for Good Till Cancel (GT) orders.',\n    },\n    {\n        id: 549,\n        name: 'CrossType',\n        abbrName: 'CrssTyp',\n        type: 'CrossTypeCodeSet',\n        baseCategory: 'CrossOrders',\n        baseCategoryAbbrName: 'Typ',\n        added: 'FIX.4.3',\n        description: 'Type of cross being submitted to a market',\n    },\n    {\n        id: 550,\n        name: 'CrossPrioritization',\n        abbrName: 'CrssPriortstn',\n        type: 'CrossPrioritizationCodeSet',\n        baseCategory: 'CrossOrders',\n        baseCategoryAbbrName: 'Priorty',\n        added: 'FIX.4.3',\n        description:\n            'Indicates if one side or the other of a cross order should be prioritized.\\n\\nThe definition of prioritization is left to the market. In some markets prioritization means which side of the cross order is applied to the market first. In other markets - prioritization may mean that the prioritized side is fully executed (sometimes referred to as the side being protected).',\n    },\n    {\n        id: 551,\n        name: 'OrigCrossID',\n        abbrName: 'OrigCrssID',\n        type: 'String',\n        baseCategory: 'CrossOrders',\n        baseCategoryAbbrName: 'OrigID',\n        added: 'FIX.4.3',\n        description:\n            'CrossID of the previous cross order (NOT the initial cross order of the day) as assigned by the institution, used to identify the previous cross order in Cross Cancel and Cross Cancel/Replace Requests.',\n    },\n    {\n        id: 552,\n        name: 'NoSides',\n        abbrName: 'NoSides',\n        type: 'NoSidesCodeSet',\n        added: 'FIX.4.3',\n        description: 'Number of Side repeating group instances.',\n    },\n    {\n        id: 553,\n        name: 'Username',\n        abbrName: 'Username',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Userid or username.',\n    },\n    {\n        id: 554,\n        name: 'Password',\n        abbrName: 'Password',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Password or passphrase.',\n    },\n    {\n        id: 555,\n        name: 'NoLegs',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of InstrumentLeg repeating group instances.',\n    },\n    {\n        id: 556,\n        name: 'LegCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.4.3',\n        description: \"Currency associated with a particular Leg's quantity\",\n    },\n    {\n        id: 557,\n        name: 'TotNoSecurityTypes',\n        abbrName: 'TotNoSecTyps',\n        type: 'int',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description:\n            'Used to support fragmentation. Indicates total number of security types when multiple Security Type messages are used to return results.',\n    },\n    {\n        id: 558,\n        name: 'NoSecurityTypes',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of Security Type repeating group instances.',\n    },\n    {\n        id: 559,\n        name: 'SecurityListRequestType',\n        abbrName: 'ListReqTyp',\n        type: 'SecurityListRequestTypeCodeSet',\n        added: 'FIX.4.3',\n        description: 'Identifies the type/criteria of Security List Request',\n    },\n    {\n        id: 560,\n        name: 'SecurityRequestResult',\n        abbrName: 'ReqRslt',\n        type: 'SecurityRequestResultCodeSet',\n        added: 'FIX.4.3',\n        description: 'The results returned to a Security Request message',\n    },\n    {\n        id: 561,\n        name: 'RoundLot',\n        abbrName: 'RndLot',\n        type: 'Qty',\n        added: 'FIX.4.3',\n        description: 'The trading lot size of a security',\n    },\n    {\n        id: 562,\n        name: 'MinTradeVol',\n        abbrName: 'MinTrdVol',\n        type: 'Qty',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '130',\n        description:\n            'The minimum order quantity (as expressed by TradeVolType(1786)) that can be submitted for a security.',\n    },\n    {\n        id: 563,\n        name: 'MultiLegRptTypeReq',\n        abbrName: 'MLEGRptTypReq',\n        type: 'MultiLegRptTypeReqCodeSet',\n        added: 'FIX.4.3',\n        description: 'Indicates the method of execution reporting requested by issuer of the order.',\n    },\n    {\n        id: 564,\n        name: 'LegPositionEffect',\n        abbrName: 'PosEfct',\n        type: 'PositionEffectCodeSet',\n        added: 'FIX.4.3',\n        description: 'PositionEffect for leg of a multileg\\n\\nSee PositionEffect (77) field for description',\n    },\n    {\n        id: 565,\n        name: 'LegCoveredOrUncovered',\n        abbrName: 'Cover',\n        type: 'CoveredOrUncoveredCodeSet',\n        added: 'FIX.4.3',\n        description: 'CoveredOrUncovered for leg of a multileg\\n\\nSee CoveredOrUncovered (203) field for description',\n    },\n    {\n        id: 566,\n        name: 'LegPrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.4.3',\n        description: 'Price for leg of a multileg\\n\\nSee Price (44) field for description',\n    },\n    {\n        id: 567,\n        name: 'TradSesStatusRejReason',\n        abbrName: 'StatRejRsn',\n        type: 'TradSesStatusRejReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.3',\n        description: 'Indicates the reason a Trading Session Status Request was rejected.',\n    },\n    {\n        id: 568,\n        name: 'TradeRequestID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Trade Capture Report Request ID',\n    },\n    {\n        id: 569,\n        name: 'TradeRequestType',\n        abbrName: 'ReqTyp',\n        type: 'TradeRequestTypeCodeSet',\n        added: 'FIX.4.3',\n        description: 'Type of Trade Capture Report.',\n    },\n    {\n        id: 570,\n        name: 'PreviouslyReported',\n        abbrName: 'PrevlyRpted',\n        type: 'PreviouslyReportedCodeSet',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description: 'Indicates if the transaction was previously reported to the counterparty or market.',\n    },\n    {\n        id: 571,\n        name: 'TradeReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Unique identifier of trade capture report',\n    },\n    {\n        id: 572,\n        name: 'TradeReportRefID',\n        abbrName: 'RptRefID',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Reference identifier used with CANCEL and REPLACE transaction types.',\n    },\n    {\n        id: 573,\n        name: 'MatchStatus',\n        abbrName: 'MtchStat',\n        type: 'MatchStatusCodeSet',\n        added: 'FIX.4.3',\n        description: 'The status of this trade with respect to matching or comparison.',\n    },\n    {\n        id: 574,\n        name: 'MatchType',\n        abbrName: 'MtchTyp',\n        type: 'MatchTypeCodeSet',\n        added: 'FIX.4.3',\n        description: 'The point in the matching process at which this trade was matched.',\n    },\n    {\n        id: 575,\n        name: 'OddLot',\n        abbrName: 'OddLot',\n        type: 'OddLotCodeSet',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.5.0',\n        description:\n            'This trade is to be treated as an odd lot\\n\\nIf this field is not specified, the default will be \"N\"',\n    },\n    {\n        id: 576,\n        name: 'NoClearingInstructions',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of clearing instructions',\n    },\n    {\n        id: 577,\n        name: 'ClearingInstruction',\n        abbrName: 'ClrngInstrctn',\n        type: 'ClearingInstructionCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Eligibility of this trade for clearing and central counterparty processing.',\n    },\n    {\n        id: 578,\n        name: 'TradeInputSource',\n        abbrName: 'InptSrc',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Type of input device or system from which the trade was entered.',\n    },\n    {\n        id: 579,\n        name: 'TradeInputDevice',\n        abbrName: 'InptDev',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Specific device number, terminal number or station where trade was entered',\n    },\n    {\n        id: 580,\n        name: 'NoDates',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of Date fields provided in date range',\n    },\n    {\n        id: 581,\n        name: 'AccountType',\n        abbrName: 'AcctTyp',\n        type: 'AccountTypeCodeSet',\n        added: 'FIX.4.3',\n        description: 'Type of account associated with an order',\n    },\n    {\n        id: 582,\n        name: 'CustOrderCapacity',\n        abbrName: 'CustCpcty',\n        type: 'CustOrderCapacityCodeSet',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '205',\n        description:\n            'Capacity of customer placing the order.\\n\\nUsed by futures exchanges to indicate the CTICode (customer type indicator) as required by the US CFTC (Commodity Futures Trading Commission). May be used as required by other regulatory commissions for similar purposes.',\n    },\n    {\n        id: 583,\n        name: 'ClOrdLinkID',\n        abbrName: 'ClOrdLinkID',\n        type: 'String',\n        baseCategory: 'SingleGeneralOrderHandling',\n        baseCategoryAbbrName: 'LnkID',\n        added: 'FIX.4.3',\n        description:\n            'Permits order originators to tie together groups of orders in which trades resulting from orders are associated for a specific purpose, for example the calculation of average execution price for a customer or to associate lists submitted to a broker as waves of a larger program trade.',\n    },\n    {\n        id: 584,\n        name: 'MassStatusReqID',\n        abbrName: 'MassStatReqID',\n        type: 'String',\n        baseCategory: 'OrderMassHandling',\n        baseCategoryAbbrName: 'ReqID',\n        added: 'FIX.4.3',\n        description: 'Value assigned by issuer of Mass Status Request to uniquely identify the request',\n    },\n    {\n        id: 585,\n        name: 'MassStatusReqType',\n        abbrName: 'MassStatReqTyp',\n        type: 'MassStatusReqTypeCodeSet',\n        baseCategory: 'OrderMassHandling',\n        baseCategoryAbbrName: 'ReqTyp',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Specifies the type or scope of the mass order status request.',\n    },\n    {\n        id: 586,\n        name: 'OrigOrdModTime',\n        abbrName: 'OrigOrdModTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.3',\n        description:\n            'The most recent (or current) modification TransactTime (tag 60) reported on an Execution Report for the order. The OrigOrdModTime is provided as an optional field on Order Cancel Request and Order Cancel Replace Requests to identify that the state of the order has not changed since the request was issued. The use of this approach is not recommended.',\n    },\n    {\n        id: 587,\n        name: 'LegSettlType',\n        abbrName: 'SettlTyp',\n        type: 'SettlTypeCodeSet',\n        unionDataType: 'Tenor',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description:\n            'Indicates order settlement period. If present, LegSettlDate (588) overrides this field. If both LegSettlType (587) and LegSettDate (588) are omitted, the default for LegSettlType (587) is 0 (Regular)\\n\\nRegular is defined as the default settlement period for the particular security on the exchange of execution.\\n\\nIn Fixed Income the contents of this field may influence the instrument definition if the LegSecurityID (602) is ambiguous. In the US an active Treasury offering may be re-opened, and for a time one CUSIP will apply to both the current and \"when-issued\" securities. Supplying a value of \"7\" clarifies the instrument description; any other value or the absence of this field should cause the respondent to default to the active issue.\\n\\nAdditionally the following patterns may be uses as well as enum values\\n\\nDx = FX tenor expression for \"days\", e.g. \"D5\", where \"x\" is any integer > 0\\n\\nMx = FX tenor expression for \"months\", e.g. \"M3\", where \"x\" is any integer > 0\\n\\nWx = FX tenor expression for \"weeks\", e.g. \"W13\", where \"x\" is any integer > 0\\n\\nYx = FX tenor expression for \"years\", e.g. \"Y1\", where \"x\" is any integer > 0.\\n\\nNote that for FX the tenors expressed using Dx, Mx, Wx, and Yx values do not denote business days, but calendar days.',\n    },\n    {\n        id: 588,\n        name: 'LegSettlDate',\n        abbrName: 'SettlDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.3',\n        description: 'Refer to description for SettlDate[64]',\n    },\n    {\n        id: 589,\n        name: 'DayBookingInst',\n        abbrName: 'DayBkngInst',\n        type: 'DayBookingInstCodeSet',\n        added: 'FIX.4.3',\n        description: 'Indicates whether or not automatic booking can occur.',\n    },\n    {\n        id: 590,\n        name: 'BookingUnit',\n        abbrName: 'BkngUnit',\n        type: 'BookingUnitCodeSet',\n        added: 'FIX.4.3',\n        description: 'Indicates what constitutes a bookable unit.',\n    },\n    {\n        id: 591,\n        name: 'PreallocMethod',\n        abbrName: 'PreallocMeth',\n        type: 'PreallocMethodCodeSet',\n        added: 'FIX.4.3',\n        description: 'Indicates the method of preallocation.',\n    },\n    {\n        id: 592,\n        name: 'UnderlyingCountryOfIssue',\n        abbrName: 'Ctry',\n        type: 'Country',\n        added: 'FIX.4.3',\n        description: \"Underlying security's CountryOfIssue.\\n\\nSee CountryOfIssue (470) field for description\",\n    },\n    {\n        id: 593,\n        name: 'UnderlyingStateOrProvinceOfIssue',\n        abbrName: 'StOrProvnc',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            \"Underlying security's StateOrProvinceOfIssue.\\n\\nSee StateOrProvinceOfIssue (471) field for description\",\n    },\n    {\n        id: 594,\n        name: 'UnderlyingLocaleOfIssue',\n        abbrName: 'Lcl',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: \"Underlying security's LocaleOfIssue.\\n\\nSee LocaleOfIssue (472) field for description\",\n    },\n    {\n        id: 595,\n        name: 'UnderlyingInstrRegistry',\n        abbrName: 'Rgstry',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: \"Underlying security's InstrRegistry.\\n\\nSee InstrRegistry (543) field for description\",\n    },\n    {\n        id: 596,\n        name: 'LegCountryOfIssue',\n        abbrName: 'Ctry',\n        type: 'Country',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual leg security's CountryOfIssue.\\n\\nSee CountryOfIssue (470) field for description\",\n    },\n    {\n        id: 597,\n        name: 'LegStateOrProvinceOfIssue',\n        abbrName: 'StOrProvnc',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual leg security's StateOrProvinceOfIssue.\\n\\nSee StateOrProvinceOfIssue (471) field for description\",\n    },\n    {\n        id: 598,\n        name: 'LegLocaleOfIssue',\n        abbrName: 'Lcl',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual leg security's LocaleOfIssue.\\n\\nSee LocaleOfIssue (472) field for description\",\n    },\n    {\n        id: 599,\n        name: 'LegInstrRegistry',\n        abbrName: 'Rgstry',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual leg security's InstrRegistry.\\n\\nSee InstrRegistry (543) field for description\",\n    },\n    {\n        id: 600,\n        name: 'LegSymbol',\n        abbrName: 'Sym',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: \"Multileg instrument's individual security's Symbol.\\n\\nSee Symbol (55) field for description\",\n    },\n    {\n        id: 601,\n        name: 'LegSymbolSfx',\n        abbrName: 'Sfx',\n        type: 'SymbolSfxCodeSet',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual security's SymbolSfx.\\n\\nSee SymbolSfx (65) field for description\",\n    },\n    {\n        id: 602,\n        name: 'LegSecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '603',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual security's SecurityID.\\n\\nSee SecurityID (48) field for description\",\n    },\n    {\n        id: 603,\n        name: 'LegSecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '265',\n        description:\n            \"Multileg instrument's individual security's SecurityIDSource.\\n\\nSee SecurityIDSource (22) field for description\",\n    },\n    {\n        id: 604,\n        name: 'NoLegSecurityAltID',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            \"Multileg instrument's individual security's NoSecurityAltID.\\n\\nSee NoSecurityAltID (454) field for description\",\n    },\n    {\n        id: 605,\n        name: 'LegSecurityAltID',\n        abbrName: 'SecAltID',\n        type: 'String',\n        discriminatorId: '606',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual security's SecurityAltID.\\n\\nSee SecurityAltID (455) field for description\",\n    },\n    {\n        id: 606,\n        name: 'LegSecurityAltIDSource',\n        abbrName: 'SecAltIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Alternate identifier for individual leg security of a multileg instrument.\\n\\nSee SecurityAltIDSource(456) field for complete definition.',\n    },\n    {\n        id: 607,\n        name: 'LegProduct',\n        abbrName: 'Prod',\n        type: 'ProductCodeSet',\n        added: 'FIX.4.3',\n        description: \"Multileg instrument's individual security's Product.\\n\\nSee Product (460) field for description\",\n    },\n    {\n        id: 608,\n        name: 'LegCFICode',\n        abbrName: 'CFI',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: \"Multileg instrument's individual security's CFICode.\\n\\nSee CFICode (461) field for description\",\n    },\n    {\n        id: 609,\n        name: 'LegSecurityType',\n        abbrName: 'SecTyp',\n        type: 'SecurityTypeCodeSet',\n        added: 'FIX.4.3',\n        description: 'Refer to definition of SecurityType(167)',\n    },\n    {\n        id: 610,\n        name: 'LegMaturityMonthYear',\n        abbrName: 'MMY',\n        type: 'MonthYear',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual security's MaturityMonthYear.\\n\\nSee MaturityMonthYear (200) field for description\",\n    },\n    {\n        id: 611,\n        name: 'LegMaturityDate',\n        abbrName: 'Mat',\n        type: 'LocalMktDate',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            \"Multileg instrument's individual security's MaturityDate.\\n\\nSee MaturityDate(541) field for description.\",\n    },\n    {\n        id: 612,\n        name: 'LegStrikePrice',\n        abbrName: 'Strk',\n        type: 'Price',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual security's StrikePrice.\\n\\nSee StrikePrice (202) field for description\",\n    },\n    {\n        id: 613,\n        name: 'LegOptAttribute',\n        abbrName: 'OptA',\n        type: 'char',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual security's OptAttribute.\\n\\nSee OptAttribute (206) field for description\",\n    },\n    {\n        id: 614,\n        name: 'LegContractMultiplier',\n        abbrName: 'Cmult',\n        type: 'float',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual security's ContractMultiplier.\\n\\nSee ContractMultiplier (23) field for description\",\n    },\n    {\n        id: 615,\n        name: 'LegCouponRate',\n        abbrName: 'CpnRt',\n        type: 'Percentage',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual security's CouponRate.\\n\\nSee CouponRate (223) field for description\",\n    },\n    {\n        id: 616,\n        name: 'LegSecurityExchange',\n        abbrName: 'Exch',\n        type: 'Exchange',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual security's SecurityExchange.\\n\\nSee SecurityExchange (207) field for description\",\n    },\n    {\n        id: 617,\n        name: 'LegIssuer',\n        abbrName: 'Issr',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: \"Multileg instrument's individual security's Issuer.\\n\\nSee Issuer (106) field for description\",\n    },\n    {\n        id: 618,\n        name: 'EncodedLegIssuerLen',\n        abbrName: 'EncLegIssrLen',\n        type: 'Length',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual security's EncodedIssuerLen.\\n\\nSee EncodedIssuerLen (348) field for description\",\n    },\n    {\n        id: 619,\n        name: 'EncodedLegIssuer',\n        abbrName: 'EncLegIssr',\n        type: 'data',\n        lengthId: '618',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual security's EncodedIssuer.\\n\\nSee EncodedIssuer (349) field for description\",\n    },\n    {\n        id: 620,\n        name: 'LegSecurityDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '232',\n        description:\n            'Description of a multileg instrument.\\n\\nCan be used by the venue or one of the trading parties to provide an optional non-normative textual description of the financial instrument.',\n    },\n    {\n        id: 621,\n        name: 'EncodedLegSecurityDescLen',\n        abbrName: 'EncLegSecDescLen',\n        type: 'Length',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual security's EncodedSecurityDescLen.\\n\\nSee EncodedSecurityDescLen (350) field for description\",\n    },\n    {\n        id: 622,\n        name: 'EncodedLegSecurityDesc',\n        abbrName: 'EncLegSecDesc',\n        type: 'data',\n        lengthId: '621',\n        added: 'FIX.4.3',\n        description:\n            \"Multileg instrument's individual security's EncodedSecurityDesc.\\n\\nSee EncodedSecurityDesc (35) field for description\",\n    },\n    {\n        id: 623,\n        name: 'LegRatioQty',\n        abbrName: 'RatioQty',\n        type: 'float',\n        added: 'FIX.4.3',\n        description: 'The ratio of quantity for this individual leg relative to the entire multileg security.',\n    },\n    {\n        id: 624,\n        name: 'LegSide',\n        abbrName: 'Side',\n        type: 'SideCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'The side of this individual leg (multileg security).\\n\\nSee Side (54) field for description and values',\n    },\n    {\n        id: 625,\n        name: 'TradingSessionSubID',\n        abbrName: 'SesSub',\n        type: 'TradingSessionSubIDCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.3',\n        description:\n            'Optional market assigned sub identifier for a trading phase within a trading session. Usage is determined by market or counterparties. Used by US based futures markets to identify exchange specific execution time bracket codes as required by US market regulations. Bilaterally agreed values of data type \"String\" that start with a character can be used for backward compatibility',\n    },\n    {\n        id: 626,\n        name: 'AllocType',\n        abbrName: 'AllocType',\n        type: 'AllocTypeCodeSet',\n        baseCategory: 'Allocation',\n        baseCategoryAbbrName: 'Typ',\n        added: 'FIX.4.3',\n        description:\n            'Describes the specific type or purpose of an Allocation message (i.e. \"Buyside Calculated\")\\n\\n(see Volume : \"Glossary\" for value definitions)\\n\\n*** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" ***',\n    },\n    {\n        id: 627,\n        name: 'NoHops',\n        type: 'NumInGroup',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of HopCompID entries in repeating group.',\n    },\n    {\n        id: 628,\n        name: 'HopCompID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            'Assigned value used to identify the third party firm which delivered a specific message either from the firm which originated the message or from another third party (if multiple \"hops\" are performed). It is recommended that this value be the SenderCompID (49) of the third party.\\n\\nApplicable when messages are communicated/re-distributed via third parties which function as service bureaus or \"hubs\". Only applicable if OnBehalfOfCompID (115) is being used.',\n    },\n    {\n        id: 629,\n        name: 'HopSendingTime',\n        abbrName: 'Snt',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.3',\n        description:\n            'Time that HopCompID (628) sent the message. It is recommended that this value be the SendingTime (52) of the message sent by the third party.\\n\\nApplicable when messages are communicated/re-distributed via third parties which function as service bureaus or \"hubs\". Only applicable if OnBehalfOfCompID (115) is being used.',\n    },\n    {\n        id: 630,\n        name: 'HopRefID',\n        abbrName: 'Ref',\n        type: 'SeqNum',\n        added: 'FIX.4.3',\n        description:\n            'Reference identifier assigned by HopCompID (628) associated with the message sent. It is recommended that this value be the MsgSeqNum (34) of the message sent by the third party.\\n\\nApplicable when messages are communicated/re-distributed via third parties which function as service bureaus or \"hubs\". Only applicable if OnBehalfOfCompID (115) is being used.',\n    },\n    {\n        id: 631,\n        name: 'MidPx',\n        abbrName: 'MidPx',\n        type: 'Price',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '175',\n        description:\n            'Mid price/rate.\\n\\nFor OTC swaps this is the mid-market mark (for example, as defined by CFTC).\\n\\nFor uncleared OTC swaps, LegMidPx(2346) and the MidPx(631) fields are mutually exclusive.',\n    },\n    { id: 632, name: 'BidYield', abbrName: 'BidYld', type: 'Percentage', added: 'FIX.4.3', description: 'Bid yield' },\n    { id: 633, name: 'MidYield', abbrName: 'MidYld', type: 'Percentage', added: 'FIX.4.3', description: 'Mid yield' },\n    {\n        id: 634,\n        name: 'OfferYield',\n        abbrName: 'OfrYld',\n        type: 'Percentage',\n        added: 'FIX.4.3',\n        description: 'Offer yield',\n    },\n    {\n        id: 635,\n        name: 'ClearingFeeIndicator',\n        abbrName: 'ClrFeeInd',\n        type: 'ClearingFeeIndicatorCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'Indicates type of fee being assessed of the customer for trade executions at an exchange. Applicable for futures markets only at this time.\\n\\n(Values source CBOT, CME, NYBOT, and NYMEX):',\n    },\n    {\n        id: 636,\n        name: 'WorkingIndicator',\n        abbrName: 'WorkingInd',\n        type: 'WorkingIndicatorCodeSet',\n        added: 'FIX.4.3',\n        description:\n            'Indicates if the order is currently being worked. Applicable only for OrdStatus = \"New\". For open outcry markets this indicates that the order is being worked in the crowd. For electronic markets it indicates that the order has transitioned from a contingent order to a market order.',\n    },\n    {\n        id: 637,\n        name: 'LegLastPx',\n        abbrName: 'LastPx',\n        type: 'Price',\n        added: 'FIX.4.3',\n        description:\n            'Execution price assigned to a leg of a multileg instrument.\\n\\nSee LastPx (31) field for description and values',\n    },\n    {\n        id: 638,\n        name: 'PriorityIndicator',\n        abbrName: 'PriInd',\n        type: 'PriorityIndicatorCodeSet',\n        added: 'FIX.4.3',\n        description: 'Indicates if a Cancel/Replace has caused an order to lose book priority.',\n    },\n    {\n        id: 639,\n        name: 'PriceImprovement',\n        abbrName: 'PxImprvmnt',\n        type: 'PriceOffset',\n        added: 'FIX.4.3',\n        description: 'Amount of price improvement.',\n    },\n    {\n        id: 640,\n        name: 'Price2',\n        abbrName: 'Px2',\n        type: 'Price',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.5.0',\n        description: 'Price of the future part of a F/X swap order.\\n\\nSee Price (44) for description.',\n    },\n    {\n        id: 641,\n        name: 'LastForwardPoints2',\n        abbrName: 'LastFwdPnts2',\n        type: 'PriceOffset',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.5.0',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'F/X forward points of the future part of a F/X swap order added to LastSpotRate(194). May be a negative value.',\n    },\n    {\n        id: 642,\n        name: 'BidForwardPoints2',\n        abbrName: 'BidFwdPnts2',\n        type: 'PriceOffset',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.5.0',\n        description:\n            'Bid F/X forward points of the future portion of a F/X swap quote added to spot rate. May be a negative value.',\n    },\n    {\n        id: 643,\n        name: 'OfferForwardPoints2',\n        abbrName: 'OfrFwdPnts2',\n        type: 'PriceOffset',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.5.0',\n        description:\n            'Offer F/X forward points of the future portion of a F/X swap quote added to spot rate. May be a negative value.',\n    },\n    {\n        id: 644,\n        name: 'RFQReqID',\n        abbrName: 'RFQReqID',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'RFQ Request ID - used to identify an RFQ Request.',\n    },\n    {\n        id: 645,\n        name: 'MktBidPx',\n        abbrName: 'MktBidPx',\n        type: 'Price',\n        added: 'FIX.4.3',\n        description: 'Used to indicate the best bid in a market',\n    },\n    {\n        id: 646,\n        name: 'MktOfferPx',\n        abbrName: 'MktOfrPx',\n        type: 'Price',\n        added: 'FIX.4.3',\n        description: 'Used to indicate the best offer in a market',\n    },\n    {\n        id: 647,\n        name: 'MinBidSize',\n        abbrName: 'MinBidSz',\n        type: 'Qty',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Used to indicate a minimum quantity for a bid.',\n    },\n    {\n        id: 648,\n        name: 'MinOfferSize',\n        abbrName: 'MinOfrSz',\n        type: 'Qty',\n        added: 'FIX.4.3',\n        description:\n            'Used to indicate a minimum quantity for an offer. If this field is used the OfferSize (135) field is interpreted as the maximum offer size.',\n    },\n    {\n        id: 649,\n        name: 'QuoteStatusReqID',\n        abbrName: 'StatReqID',\n        type: 'String',\n        added: 'FIX.4.3',\n        description: 'Unique identifier for Quote Status Request.',\n    },\n    {\n        id: 650,\n        name: 'LegalConfirm',\n        abbrName: 'LegalCnfm',\n        type: 'LegalConfirmCodeSet',\n        added: 'FIX.4.3',\n        description: 'Indicates that this message is to serve as the final and legal confirmation.',\n    },\n    {\n        id: 651,\n        name: 'UnderlyingLastPx',\n        abbrName: 'UndLastPx',\n        type: 'Price',\n        added: 'FIX.4.3',\n        description:\n            'The calculated or traded price for the underlying instrument that corresponds to a derivative. Used for transactions that include the cash instrument and the derivative.',\n    },\n    {\n        id: 652,\n        name: 'UnderlyingLastQty',\n        abbrName: 'UndLastQty',\n        type: 'Qty',\n        added: 'FIX.4.3',\n        description:\n            'The calculated or traded quantity for the underlying instrument that corresponds to a derivative. Used for transactions that include the cash instrument and the derivative.',\n    },\n    {\n        id: 654,\n        name: 'LegRefID',\n        abbrName: 'RefID',\n        type: 'String',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description:\n            'Unique identifier for a specific leg (uniqueness not defined as part of the FIX specification). LegRefID(654) be used to reference the value from LegID(1788).',\n    },\n    {\n        id: 655,\n        name: 'ContraLegRefID',\n        abbrName: 'CntraLegRefID',\n        type: 'String',\n        baseCategory: 'SingleGeneralOrderHandling',\n        baseCategoryAbbrName: 'LegRefID',\n        added: 'FIX.4.3',\n        description: 'Unique indicator for a specific leg for the ContraBroker (375).',\n    },\n    {\n        id: 656,\n        name: 'SettlCurrBidFxRate',\n        abbrName: 'SettlCurrBidFxRt',\n        type: 'float',\n        added: 'FIX.4.3',\n        description:\n            'Foreign exchange rate used to compute the bid \"SettlCurrAmt\" (119) from Currency (15) to SettlCurrency (120)',\n    },\n    {\n        id: 657,\n        name: 'SettlCurrOfferFxRate',\n        abbrName: 'SettlCurrOfrFxRt',\n        type: 'float',\n        added: 'FIX.4.3',\n        description:\n            'Foreign exchange rate used to compute the offer \"SettlCurrAmt\" (119) from Currency (15) to SettlCurrency (120)',\n    },\n    {\n        id: 658,\n        name: 'QuoteRequestRejectReason',\n        abbrName: 'ReqRejRsn',\n        type: 'QuoteRequestRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '290',\n        description: 'Reason quote request was rejected.',\n    },\n    {\n        id: 659,\n        name: 'SideComplianceID',\n        abbrName: 'SideComplianceID',\n        type: 'String',\n        added: 'FIX.4.3',\n        description:\n            'ID within repeating group of sides which is used to represent this transaction for compliance purposes (e.g. OATS reporting).',\n    },\n    {\n        id: 660,\n        name: 'AcctIDSource',\n        abbrName: 'AcctIDSrc',\n        type: 'AcctIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        description:\n            'Used to identify the source of the Account (1) code. This is especially useful if the account is a new account that the Respondent may not have setup yet in their system.',\n    },\n    {\n        id: 661,\n        name: 'AllocAcctIDSource',\n        abbrName: 'ActIDSrc',\n        type: 'AcctIDSourceCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'Used to identify the source of the AllocAccount (79) code.\\n\\nSee AcctIDSource (660) for valid values.',\n    },\n    {\n        id: 662,\n        name: 'BenchmarkPrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description: 'Specifies the price of the benchmark.',\n    },\n    {\n        id: 663,\n        name: 'BenchmarkPriceType',\n        abbrName: 'PxTyp',\n        type: 'PriceTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Identifies type of BenchmarkPrice (662).\\n\\nSee PriceType (423) for valid values.',\n    },\n    {\n        id: 664,\n        name: 'ConfirmID',\n        abbrName: 'CnfmID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Message reference for Confirmation',\n    },\n    {\n        id: 665,\n        name: 'ConfirmStatus',\n        abbrName: 'CnfmStat',\n        type: 'ConfirmStatusCodeSet',\n        added: 'FIX.4.4',\n        description: 'Identifies the status of the Confirmation.',\n    },\n    {\n        id: 666,\n        name: 'ConfirmTransType',\n        abbrName: 'CnfmTransTyp',\n        type: 'ConfirmTransTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Identifies the Confirmation transaction type.',\n    },\n    {\n        id: 667,\n        name: 'ContractSettlMonth',\n        abbrName: 'CSetMo',\n        type: 'MonthYear',\n        added: 'FIX.4.4',\n        description: 'Specifies when the contract (i.e. MBS/TBA) will settle.',\n    },\n    {\n        id: 668,\n        name: 'DeliveryForm',\n        abbrName: 'DlvryForm',\n        type: 'DeliveryFormCodeSet',\n        added: 'FIX.4.4',\n        description: 'Identifies the form of delivery.',\n    },\n    {\n        id: 669,\n        name: 'LastParPx',\n        abbrName: 'LastParPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description:\n            'Last price expressed in percent-of-par. Conditionally required for Fixed Income trades when LastPx (31) is expressed in Yield, Spread, Discount or any other type.\\n\\nUsage: Execution Report and Allocation Report repeating executions block (from sellside).',\n    },\n    {\n        id: 670,\n        name: 'NoLegAllocs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of Allocations for the leg',\n    },\n    {\n        id: 671,\n        name: 'LegAllocAccount',\n        abbrName: 'AllocAcct',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Allocation Account for the leg\\n\\nSee AllocAccount (79) for description and valid values.',\n    },\n    {\n        id: 672,\n        name: 'LegIndividualAllocID',\n        abbrName: 'IndAllocID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description:\n            'Reference for the individual allocation ticket\\n\\nSee IndividualAllocID (467) for description and valid values.',\n    },\n    {\n        id: 673,\n        name: 'LegAllocQty',\n        abbrName: 'AllocQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        description: 'Leg allocation quantity.\\n\\nSee AllocQty (80) for description and valid values.',\n    },\n    {\n        id: 674,\n        name: 'LegAllocAcctIDSource',\n        abbrName: 'AllocAcctIDSrc',\n        type: 'AcctIDSourceCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Identifies the source of the LegAllocAccount(671).',\n    },\n    {\n        id: 675,\n        name: 'LegSettlCurrency',\n        abbrName: 'SettlCcy',\n        type: 'Currency',\n        added: 'FIX.4.4',\n        description:\n            'Identifies settlement currency for the Leg.\\n\\nSee SettlCurrency (20) for description and valid values',\n    },\n    {\n        id: 676,\n        name: 'LegBenchmarkCurveCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.4.4',\n        description:\n            'LegBenchmarkPrice (679) currency\\n\\nSee BenchmarkCurveCurrency (220) for description and valid values.',\n    },\n    {\n        id: 677,\n        name: 'LegBenchmarkCurveName',\n        abbrName: 'Name',\n        type: 'BenchmarkCurveNameCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'Name of the Leg Benchmark Curve.\\n\\nSee BenchmarkCurveName (22) for description and valid values.',\n    },\n    {\n        id: 678,\n        name: 'LegBenchmarkCurvePoint',\n        abbrName: 'Point',\n        type: 'String',\n        added: 'FIX.4.4',\n        description:\n            'Identifies the point on the Leg Benchmark Curve.\\n\\nSee BenchmarkCurvePoint (222) for description and valid values.',\n    },\n    {\n        id: 679,\n        name: 'LegBenchmarkPrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description:\n            'Used to identify the price of the benchmark security.\\n\\nSee BenchmarkPrice (662) for description and valid values.',\n    },\n    {\n        id: 680,\n        name: 'LegBenchmarkPriceType',\n        abbrName: 'PxTyp',\n        type: 'PriceTypeCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'The price type of the LegBenchmarkPrice(679).',\n    },\n    {\n        id: 681,\n        name: 'LegBidPx',\n        abbrName: 'BidPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description: 'Bid price of this leg.\\n\\nSee BidPx (32) for description and valid values.',\n    },\n    {\n        id: 682,\n        name: 'LegIOIQty',\n        abbrName: 'IOIQty',\n        type: 'IOIQtyCodeSet',\n        unionDataType: 'Qty',\n        added: 'FIX.4.4',\n        description: 'Leg-specific IOI quantity.\\n\\nSee IOIQty (27) for description and valid values',\n    },\n    {\n        id: 683,\n        name: 'NoLegStipulations',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of leg stipulation entries',\n    },\n    {\n        id: 684,\n        name: 'LegOfferPx',\n        abbrName: 'OfrPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description: 'Offer price of this leg.\\n\\nSee OfferPx (133) for description and valid values',\n    },\n    {\n        id: 685,\n        name: 'LegOrderQty',\n        abbrName: 'OrdQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        description: 'Quantity ordered of this leg.\\n\\nSee OrderQty (38) for description and valid values',\n    },\n    {\n        id: 686,\n        name: 'LegPriceType',\n        abbrName: 'PxTyp',\n        type: 'PriceTypeCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'The price type of the LegBidPx (681) and/or LegOfferPx (684).\\n\\nSee PriceType (423) for description and valid values',\n    },\n    {\n        id: 687,\n        name: 'LegQty',\n        abbrName: 'Qty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0SP1',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'This field is deprecated and has been replaced by LegOrderQty(685). This field will likely be removed from the FIX standard in a future version.',\n    },\n    {\n        id: 688,\n        name: 'LegStipulationType',\n        abbrName: 'StipTyp',\n        type: 'StipulationTypeCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'For Fixed Income, type of Stipulation for this leg.\\n\\nSee StipulationType (233) for description and valid values',\n    },\n    {\n        id: 689,\n        name: 'LegStipulationValue',\n        abbrName: 'StipVal',\n        type: 'String',\n        added: 'FIX.4.4',\n        description:\n            'For Fixed Income, value of stipulation.\\n\\nSee StipulationValue (234) for description and valid values',\n    },\n    {\n        id: 690,\n        name: 'LegSwapType',\n        abbrName: 'SwapTyp',\n        type: 'LegSwapTypeCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description:\n            'For Fixed Income, used instead of LegOrderQty(685) to requests the respondent to calculate the quantity based on the quantity on the opposite side of the swap.',\n    },\n    {\n        id: 691,\n        name: 'Pool',\n        abbrName: 'Pool',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'For Fixed Income, identifies MBS / ABS pool.',\n    },\n    {\n        id: 692,\n        name: 'QuotePriceType',\n        abbrName: 'QuotPxTyp',\n        type: 'QuotePriceTypeCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '207',\n        description:\n            'Code to represent price type requested in Quote.\\n\\nIf the Quote Request is for a Swap, values 1-8 apply to all legs.',\n    },\n    {\n        id: 693,\n        name: 'QuoteRespID',\n        abbrName: 'RspID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Message reference for Quote Response',\n    },\n    {\n        id: 694,\n        name: 'QuoteRespType',\n        abbrName: 'RspTyp',\n        type: 'QuoteRespTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Identifies the type of Quote Response.',\n    },\n    {\n        id: 695,\n        name: 'QuoteQualifier',\n        abbrName: 'Qual',\n        type: 'IOIQualifierCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '226',\n        description: 'Code to qualify Quote use and other aspects of price negotiation.',\n    },\n    {\n        id: 696,\n        name: 'YieldRedemptionDate',\n        abbrName: 'RedDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        description:\n            'Date to which the yield has been calculated (i.e. maturity, par call or current call, pre-refunded date).',\n    },\n    {\n        id: 697,\n        name: 'YieldRedemptionPrice',\n        abbrName: 'RedPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description: 'Price to which the yield has been calculated.',\n    },\n    {\n        id: 698,\n        name: 'YieldRedemptionPriceType',\n        abbrName: 'RedPxTyp',\n        type: 'PriceTypeCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'The price type of the YieldRedemptionPrice (697)\\n\\nSee PriceType (423) for description and valid values.',\n    },\n    {\n        id: 699,\n        name: 'BenchmarkSecurityID',\n        abbrName: 'SecID',\n        type: 'String',\n        discriminatorId: '761',\n        added: 'FIX.4.4',\n        description:\n            'The identifier of the benchmark security, e.g. Treasury against Corporate bond.\\n\\nSee SecurityID (tag 48) for description and valid values.',\n    },\n    {\n        id: 700,\n        name: 'ReversalIndicator',\n        abbrName: 'ReversalInd',\n        type: 'Boolean',\n        added: 'FIX.4.4',\n        description: 'Indicates a trade that reverses a previous trade.',\n    },\n    {\n        id: 701,\n        name: 'YieldCalcDate',\n        abbrName: 'CalcDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        description:\n            'Include as needed to clarify yield irregularities associated with date, e.g. when it falls on a non-business day.',\n    },\n    {\n        id: 702,\n        name: 'NoPositions',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of position entries.',\n    },\n    {\n        id: 703,\n        name: 'PosType',\n        abbrName: 'Typ',\n        type: 'PosTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Used to identify the type of quantity that is being returned.',\n    },\n    {\n        id: 704,\n        name: 'LongQty',\n        abbrName: 'Long',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Long quantity.',\n    },\n    {\n        id: 705,\n        name: 'ShortQty',\n        abbrName: 'Short',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Short quantity.',\n    },\n    {\n        id: 706,\n        name: 'PosQtyStatus',\n        abbrName: 'Stat',\n        type: 'PosQtyStatusCodeSet',\n        added: 'FIX.4.4',\n        description: 'Status of this position.',\n    },\n    {\n        id: 707,\n        name: 'PosAmtType',\n        abbrName: 'Typ',\n        type: 'PosAmtTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Type of Position amount',\n    },\n    { id: 708, name: 'PosAmt', abbrName: 'Amt', type: 'Amt', added: 'FIX.4.4', description: 'Position amount' },\n    {\n        id: 709,\n        name: 'PosTransType',\n        abbrName: 'TxnTyp',\n        type: 'PosTransTypeCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '199',\n        description: 'Identifies the type of position transaction.',\n    },\n    {\n        id: 710,\n        name: 'PosReqID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Unique identifier for the position maintenance request as assigned by the submitter',\n    },\n    {\n        id: 711,\n        name: 'NoUnderlyings',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of underlying legs that make up the security.',\n    },\n    {\n        id: 712,\n        name: 'PosMaintAction',\n        abbrName: 'Actn',\n        type: 'PosMaintActionCodeSet',\n        added: 'FIX.4.4',\n        description: 'Maintenance Action to be performed.',\n    },\n    {\n        id: 713,\n        name: 'OrigPosReqRefID',\n        abbrName: 'OrigPosReqRefID',\n        type: 'String',\n        baseCategory: 'PositionMaintenance',\n        baseCategoryAbbrName: 'OrigReqRefID',\n        added: 'FIX.4.4',\n        description:\n            'Reference to the PosReqID (710) of a previous maintenance request that is being replaced or canceled.',\n    },\n    {\n        id: 714,\n        name: 'PosMaintRptRefID',\n        abbrName: 'RptRefID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description:\n            'Reference to a PosMaintRptID (721) from a previous Position Maintenance Report that is being replaced or canceled.',\n    },\n    {\n        id: 715,\n        name: 'ClearingBusinessDate',\n        abbrName: 'BizDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '150',\n        description: 'The business date for which the trade is expected to be cleared.',\n    },\n    {\n        id: 716,\n        name: 'SettlSessID',\n        abbrName: 'SetSesID',\n        type: 'SettlSessIDCodeSet',\n        added: 'FIX.4.4',\n        description: 'Identifies a specific settlement session',\n    },\n    {\n        id: 717,\n        name: 'SettlSessSubID',\n        abbrName: 'SetSesSub',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'SubID value associated with SettlSessID(716)',\n    },\n    {\n        id: 718,\n        name: 'AdjustmentType',\n        abbrName: 'AdjTyp',\n        type: 'AdjustmentTypeCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '155',\n        description:\n            'Type of adjustment to be applied. Used for Position Change Submission (PCS), Position Adjustment (PAJ), and Customer Gross Margin (CGM).',\n    },\n    {\n        id: 719,\n        name: 'ContraryInstructionIndicator',\n        abbrName: 'CntraryInstrctnInd',\n        type: 'Boolean',\n        baseCategory: 'SingleGeneralOrderHandling',\n        baseCategoryAbbrName: 'InstrctnInd',\n        added: 'FIX.4.4',\n        description: 'Used to indicate when a contrary instruction for exercise or abandonment is being submitted',\n    },\n    {\n        id: 720,\n        name: 'PriorSpreadIndicator',\n        abbrName: 'PriorSpreadInd',\n        type: 'Boolean',\n        added: 'FIX.4.4',\n        description: \"Indicates if requesting a rollover of prior day's spread submissions.\",\n    },\n    {\n        id: 721,\n        name: 'PosMaintRptID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Unique identifier for this position report',\n    },\n    {\n        id: 722,\n        name: 'PosMaintStatus',\n        abbrName: 'Stat',\n        type: 'PosMaintStatusCodeSet',\n        added: 'FIX.4.4',\n        description: 'Status of Position Maintenance Request',\n    },\n    {\n        id: 723,\n        name: 'PosMaintResult',\n        abbrName: 'Rslt',\n        type: 'PosMaintResultCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Result of Position Maintenance Request.',\n    },\n    {\n        id: 724,\n        name: 'PosReqType',\n        abbrName: 'ReqTyp',\n        type: 'PosReqTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Used to specify the type of position request being made.',\n    },\n    {\n        id: 725,\n        name: 'ResponseTransportType',\n        abbrName: 'RspTransportTyp',\n        type: 'ResponseTransportTypeCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Identifies how the response to the request should be transmitted.',\n    },\n    {\n        id: 726,\n        name: 'ResponseDestination',\n        abbrName: 'RspDest',\n        type: 'String',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'URI (Uniform Resource Identifier) for details or other pre-arranged value. Used in conjunction with ResponseTransportType (725) value of Out-of-Band to identify the out-of-band destination.\\n\\n\\nSee Appendix 6-B FIX Fields Based Upon Other Standards',\n    },\n    {\n        id: 727,\n        name: 'TotalNumPosReports',\n        abbrName: 'TotRpts',\n        type: 'int',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '102',\n        description: 'Total number of Position Reports being returned.',\n    },\n    {\n        id: 728,\n        name: 'PosReqResult',\n        abbrName: 'Rslt',\n        type: 'PosReqResultCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Result of Request for Positions.',\n    },\n    {\n        id: 729,\n        name: 'PosReqStatus',\n        abbrName: 'Stat',\n        type: 'PosReqStatusCodeSet',\n        added: 'FIX.4.4',\n        description: 'Status of Request for Positions',\n    },\n    {\n        id: 730,\n        name: 'SettlPrice',\n        abbrName: 'SetPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description: 'Settlement price',\n    },\n    {\n        id: 731,\n        name: 'SettlPriceType',\n        abbrName: 'SetPxTyp',\n        type: 'SettlPriceTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Type of settlement price',\n    },\n    {\n        id: 732,\n        name: 'UnderlyingSettlPrice',\n        abbrName: 'UndSetPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description: \"Underlying security's SettlPrice.\\n\\nSee SettlPrice (730) field for description\",\n    },\n    {\n        id: 733,\n        name: 'UnderlyingSettlPriceType',\n        abbrName: 'UndSetPxTyp',\n        type: 'SettlPriceTypeCodeSet',\n        added: 'FIX.4.4',\n        description: \"Underlying security's SettlPriceType.\\n\\nSee SettlPriceType (731) field for description\",\n    },\n    {\n        id: 734,\n        name: 'PriorSettlPrice',\n        abbrName: 'PriSetPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description: 'Previous settlement price',\n    },\n    {\n        id: 735,\n        name: 'NoQuoteQualifiers',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of repeating groups of QuoteQualifiers (695).',\n    },\n    {\n        id: 736,\n        name: 'AllocSettlCurrency',\n        abbrName: 'AllocSettlCcy',\n        type: 'Currency',\n        added: 'FIX.4.4',\n        description: 'Currency code of settlement denomination for a specific AllocAccount (79).',\n    },\n    {\n        id: 737,\n        name: 'AllocSettlCurrAmt',\n        abbrName: 'AllocSettlCurrAmt',\n        type: 'Amt',\n        baseCategory: 'Allocation',\n        baseCategoryAbbrName: 'SettlCcyAmt',\n        added: 'FIX.4.4',\n        description:\n            'Total amount due expressed in settlement currency (includes the effect of the forex transaction) for a specific AllocAccount (79).',\n    },\n    {\n        id: 738,\n        name: 'InterestAtMaturity',\n        abbrName: 'IntAtMat',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description: 'Amount of interest (i.e. lump-sum) at maturity.',\n    },\n    {\n        id: 739,\n        name: 'LegDatedDate',\n        abbrName: 'Dated',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        description:\n            'The effective date of a new securities issue determined by its underwriters. Often but not always the same as the Issue Date and the Interest Accrual Date',\n    },\n    {\n        id: 740,\n        name: 'LegPool',\n        abbrName: 'Pool',\n        type: 'String',\n        added: 'FIX.4.4',\n        description:\n            'For Fixed Income, identifies MBS / ABS pool for a specific leg of a multi-leg instrument.\\n\\nSee Pool (691) for description and valid values.',\n    },\n    {\n        id: 741,\n        name: 'AllocInterestAtMaturity',\n        abbrName: 'IntAtMat',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description: 'Amount of interest (i.e. lump-sum) at maturity at the account-level.',\n    },\n    {\n        id: 742,\n        name: 'AllocAccruedInterestAmt',\n        abbrName: 'AcrdIntAmt',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description: 'Amount of Accrued Interest for convertible bonds and fixed income at the allocation-level.',\n    },\n    {\n        id: 743,\n        name: 'DeliveryDate',\n        abbrName: 'DlvDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        description: 'Date of delivery.',\n    },\n    {\n        id: 744,\n        name: 'AssignmentMethod',\n        abbrName: 'AsgnMeth',\n        type: 'AssignmentMethodCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'Method by which short positions are assigned to an exercise notice during exercise and assignment processing',\n    },\n    {\n        id: 745,\n        name: 'AssignmentUnit',\n        abbrName: 'Unit',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        description: 'Quantity Increment used in performing assignment.',\n    },\n    {\n        id: 746,\n        name: 'OpenInterest',\n        abbrName: 'OpenInt',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description: 'Open interest that was eligible for assignment.',\n    },\n    {\n        id: 747,\n        name: 'ExerciseMethod',\n        abbrName: 'ExrMethod',\n        type: 'ExerciseMethodCodeSet',\n        added: 'FIX.4.4',\n        description: 'Exercise Method used to in performing assignment.',\n    },\n    {\n        id: 748,\n        name: 'TotNumTradeReports',\n        abbrName: 'TotNumTrdRpts',\n        type: 'int',\n        added: 'FIX.4.4',\n        description: 'Total number of trade reports returned.',\n    },\n    {\n        id: 749,\n        name: 'TradeRequestResult',\n        abbrName: 'ReqRslt',\n        type: 'TradeRequestResultCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        description: 'Result of Trade Request',\n    },\n    {\n        id: 750,\n        name: 'TradeRequestStatus',\n        abbrName: 'ReqStat',\n        type: 'TradeRequestStatusCodeSet',\n        added: 'FIX.4.4',\n        description: 'Status of Trade Request.',\n    },\n    {\n        id: 751,\n        name: 'TradeReportRejectReason',\n        abbrName: 'RejRsn',\n        type: 'TradeReportRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '107',\n        description:\n            'Reason Trade Capture Request was rejected.\\n\\n100+ Reserved and available for bi-laterally agreed upon user-defined values.',\n    },\n    {\n        id: 752,\n        name: 'SideMultiLegReportingType',\n        abbrName: 'MLegRptTyp',\n        type: 'SideMultiLegReportingTypeCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'Used to indicate if the side being reported on Trade Capture Report represents a leg of a multileg instrument or a single security.',\n    },\n    {\n        id: 753,\n        name: 'NoPosAmt',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of position amount entries.',\n    },\n    {\n        id: 754,\n        name: 'AutoAcceptIndicator',\n        abbrName: 'AutoAcceptInd',\n        type: 'Boolean',\n        added: 'FIX.4.4',\n        description:\n            'Identifies whether or not an allocation has been automatically accepted on behalf of the Carry Firm by the Clearing House.',\n    },\n    {\n        id: 755,\n        name: 'AllocReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Unique identifier for Allocation Report message.',\n    },\n    {\n        id: 756,\n        name: 'NoNested2PartyIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of Nested2PartyID (757), Nested2PartyIDSource (758), and Nested2PartyRole (759) entries',\n    },\n    {\n        id: 757,\n        name: 'Nested2PartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '758',\n        added: 'FIX.4.4',\n        description: 'PartyID value within a \"second instance\" Nested repeating group.\\n\\nSame values as PartyID (448)',\n    },\n    {\n        id: 758,\n        name: 'Nested2PartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'PartyIDSource value within a \"second instance\" Nested repeating group.\\n\\nSame values as PartyIDSource (447)',\n    },\n    {\n        id: 759,\n        name: 'Nested2PartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'PartyRole value within a \"second instance\" Nested repeating group.\\n\\nSame values as PartyRole (452)',\n    },\n    {\n        id: 760,\n        name: 'Nested2PartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description:\n            'PartySubID value within a \"second instance\" Nested repeating group.\\n\\nSame values as PartySubID (523)',\n    },\n    {\n        id: 761,\n        name: 'BenchmarkSecurityIDSource',\n        abbrName: 'SecIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Identifies class or source of the BenchmarkSecurityID(699) value.\\n\\nRequired if BenchmarkSecurityID is specified.',\n    },\n    {\n        id: 762,\n        name: 'SecuritySubType',\n        abbrName: 'SubTyp',\n        type: 'String',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description:\n            'Sub-type qualification/identification of the SecurityType. As an example for SecurityType(167)=\"REPO\", the SecuritySubType=\"General Collateral\" can be used to further specify the type of REPO.\\n\\nIf SecuritySubType is used, then SecurityType is required.\\n\\nFor SecurityType=\"MLEG\" a name of the option or futures strategy name can be specified, such as \"Calendar\", \"Vertical\", \"Butterfly\".\\n\\nFor SecurityType(167)=\"OPT\" the subclassification can be specified, such as \"Asian\".\\n\\nFor SecurityType(167)=\"SWAPTION\" a value of \"Straddle\" is used to identify a straddle swaption.\\n\\nIn the context of EU SFTR reporting use the appropriate 4-character code noted in the regulations - \"GENE\" for general collateral or \"SPEC\" for specific collateral (without quote marks).',\n    },\n    {\n        id: 763,\n        name: 'UnderlyingSecuritySubType',\n        abbrName: 'SubTyp',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: \"Underlying security's SecuritySubType.\\n\\nSee SecuritySubType (762) field for description\",\n    },\n    {\n        id: 764,\n        name: 'LegSecuritySubType',\n        abbrName: 'SecSubTyp',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'SecuritySubType of the leg instrument.\\n\\nSee SecuritySubType (762) field for description',\n    },\n    {\n        id: 765,\n        name: 'AllowableOneSidednessPct',\n        abbrName: 'AOSPct',\n        type: 'Percentage',\n        added: 'FIX.4.4',\n        description:\n            'The maximum percentage that execution of one side of a program trade can exceed execution of the other.',\n    },\n    {\n        id: 766,\n        name: 'AllowableOneSidednessValue',\n        abbrName: 'AOSValu',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description:\n            'The maximum amount that execution of one side of a program trade can exceed execution of the other.',\n    },\n    {\n        id: 767,\n        name: 'AllowableOneSidednessCurr',\n        abbrName: 'AOSCurr',\n        type: 'Currency',\n        added: 'FIX.4.4',\n        description:\n            'The currency that AllowableOneSidednessValue (766) is expressed in if AllowableOneSidednessValue is used.',\n    },\n    {\n        id: 768,\n        name: 'NoTrdRegTimestamps',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of timestamp entries.',\n    },\n    {\n        id: 769,\n        name: 'TrdRegTimestamp',\n        abbrName: 'TS',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '291',\n        description:\n            'Traded / Regulatory timestamp value.\\n\\nUse to store time information required by government regulators or self-regulatory organizations (such as an exchange or clearing house).',\n    },\n    {\n        id: 770,\n        name: 'TrdRegTimestampType',\n        abbrName: 'Typ',\n        type: 'TrdRegTimestampTypeCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '291',\n        description:\n            'Trading / Regulatory timestamp type.\\n\\nNote of applicability: Values are required in various regulatory environments: required for US futures markets to support computerized trade reconstruction, required by MiFID II / MiFIR for transaction reporting and publication, required by FINRA for reporting to the Consolidated Audit Trail (CAT), and required by SEC for recordkeeping requirements in the context of T+1.',\n    },\n    {\n        id: 771,\n        name: 'TrdRegTimestampOrigin',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '291',\n        description:\n            'Text which identifies the \"origin\" (i.e. system which was used to generate the timestamp) for the Traded / Regulatory timestamp value.',\n    },\n    {\n        id: 772,\n        name: 'ConfirmRefID',\n        abbrName: 'CnfmRefID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Reference identifier to be used with ConfirmTransType (666) = Replace or Cancel',\n    },\n    {\n        id: 773,\n        name: 'ConfirmType',\n        abbrName: 'CnfmTyp',\n        type: 'ConfirmTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Identifies the type of Confirmation message being sent.',\n    },\n    {\n        id: 774,\n        name: 'ConfirmRejReason',\n        abbrName: 'CnfmRejRsn',\n        type: 'ConfirmRejReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        description: 'Identifies the reason for rejecting a Confirmation.',\n    },\n    {\n        id: 775,\n        name: 'BookingType',\n        abbrName: 'BkngTyp',\n        type: 'BookingTypeCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'Method for booking out this order. Used when notifying a broker that an order to be settled by that broker is to be booked out as an OTC derivative (e.g. CFD or similar).',\n    },\n    {\n        id: 776,\n        name: 'IndividualAllocRejCode',\n        abbrName: 'IndAllocRejCode',\n        type: 'AllocRejCodeCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'Identified reason for rejecting an individual AllocAccount (79) detail.\\n\\nSame values as AllocRejCode (88)',\n    },\n    {\n        id: 777,\n        name: 'SettlInstMsgID',\n        abbrName: 'SettlInstMsgID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Unique identifier for Settlement Instruction message.',\n    },\n    {\n        id: 778,\n        name: 'NoSettlInst',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of settlement instructions within repeating group.',\n    },\n    {\n        id: 779,\n        name: 'LastUpdateTime',\n        abbrName: 'LastUpdateTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.4',\n        description: 'Timestamp of last update to data item (or creation if no updates made since creation).',\n    },\n    {\n        id: 780,\n        name: 'AllocSettlInstType',\n        abbrName: 'SettlInstTyp',\n        type: 'AllocSettlInstTypeCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'Used to indicate whether settlement instructions are provided on an allocation instruction message, and if not, how they are to be derived.',\n    },\n    {\n        id: 781,\n        name: 'NoSettlPartyIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of SettlPartyID (782), SettlPartyIDSource (783), and SettlPartyRole (784) entries',\n    },\n    {\n        id: 782,\n        name: 'SettlPartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '783',\n        added: 'FIX.4.4',\n        description:\n            'PartyID value within a settlement parties component. Nested repeating group.\\n\\nSame values as PartyID (448)',\n    },\n    {\n        id: 783,\n        name: 'SettlPartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.4.4',\n        description: 'PartyIDSource value within a settlement parties component.\\n\\nSame values as PartyIDSource (447)',\n    },\n    {\n        id: 784,\n        name: 'SettlPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.4.4',\n        description: 'PartyRole value within a settlement parties component.\\n\\nSame values as PartyRole (452)',\n    },\n    {\n        id: 785,\n        name: 'SettlPartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'PartySubID value within a settlement parties component.\\n\\nSame values as PartySubID (523)',\n    },\n    {\n        id: 786,\n        name: 'SettlPartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Type of SettlPartySubID (785) value.\\n\\nSame values as PartySubIDType (803)',\n    },\n    {\n        id: 787,\n        name: 'DlvyInstType',\n        abbrName: 'InstTyp',\n        type: 'DlvyInstTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Used to indicate whether a delivery instruction is used for securities or cash settlement.',\n    },\n    {\n        id: 788,\n        name: 'TerminationType',\n        abbrName: 'TrmTyp',\n        type: 'TerminationTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Type of financing termination.',\n    },\n    {\n        id: 789,\n        name: 'NextExpectedMsgSeqNum',\n        abbrName: 'NextExpectedMsgSeqNum',\n        type: 'SeqNum',\n        added: 'FIX.4.4',\n        description: 'Next expected MsgSeqNum value to be received.',\n    },\n    {\n        id: 790,\n        name: 'OrdStatusReqID',\n        abbrName: 'StatReqID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Can be used to uniquely identify a specific Order Status Request message.',\n    },\n    {\n        id: 791,\n        name: 'SettlInstReqID',\n        abbrName: 'SettlInstReqID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Unique ID of settlement instruction request message',\n    },\n    {\n        id: 792,\n        name: 'SettlInstReqRejCode',\n        abbrName: 'SettlInstReqRejCode',\n        type: 'SettlInstReqRejCodeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        description: 'Identifies reason for rejection (of a settlement instruction request message).',\n    },\n    {\n        id: 793,\n        name: 'SecondaryAllocID',\n        abbrName: 'AllocID2',\n        type: 'String',\n        baseCategory: 'Allocation',\n        baseCategoryAbbrName: 'ID2',\n        added: 'FIX.4.4',\n        description:\n            'Secondary allocation identifier. Unlike the AllocID (70), this can be shared across a number of allocation instruction or allocation report messages, thereby making it possible to pass an identifier for an original allocation message on multiple messages (e.g. from one party to a second to a third, across cancel and replace messages etc.).',\n    },\n    {\n        id: 794,\n        name: 'AllocReportType',\n        abbrName: 'RptTyp',\n        type: 'AllocReportTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Describes the specific type or purpose of an Allocation Report message',\n    },\n    {\n        id: 795,\n        name: 'AllocReportRefID',\n        abbrName: 'RptRefID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Reference identifier to be used with AllocTransType (7) = Replace or Cancel',\n    },\n    {\n        id: 796,\n        name: 'AllocCancReplaceReason',\n        abbrName: 'CxlRplcRsn',\n        type: 'AllocCancReplaceReasonCodeSet',\n        baseCategory: 'Allocation',\n        baseCategoryAbbrName: 'CxlRplcRsn',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        description: 'Reason for cancelling or replacing an Allocation Instruction or Allocation Report message',\n    },\n    {\n        id: 797,\n        name: 'CopyMsgIndicator',\n        abbrName: 'CopyMsgInd',\n        type: 'Boolean',\n        added: 'FIX.4.4',\n        description: 'Indicates whether or not this message is a drop copy of another message.',\n    },\n    {\n        id: 798,\n        name: 'AllocAccountType',\n        abbrName: 'AcctTyp',\n        type: 'AllocAccountTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Type of account associated with a confirmation or other trade-level message',\n    },\n    {\n        id: 799,\n        name: 'OrderAvgPx',\n        abbrName: 'AvgPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description: 'Average price for a specific order',\n    },\n    {\n        id: 800,\n        name: 'OrderBookingQty',\n        abbrName: 'BkngQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        description:\n            'Quantity of the order that is being booked out as part of an Allocation Instruction or Allocation Report message',\n    },\n    {\n        id: 801,\n        name: 'NoSettlPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of SettlPartySubID (785) and SettlPartySubIDType (786) entries',\n    },\n    {\n        id: 802,\n        name: 'NoPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of PartySubID (523)and PartySubIDType (803) entries',\n    },\n    {\n        id: 803,\n        name: 'PartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Type of PartySubID(523) value.',\n    },\n    {\n        id: 804,\n        name: 'NoNestedPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of NestedPartySubID (545) and NestedPartySubIDType (805) entries',\n    },\n    {\n        id: 805,\n        name: 'NestedPartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Type of NestedPartySubID (545) value.\\n\\nSame values as PartySubIDType (803)',\n    },\n    {\n        id: 806,\n        name: 'NoNested2PartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'Number of Nested2PartySubID (760) and Nested2PartySubIDType (807) entries. Second instance of <NestedParties>.',\n    },\n    {\n        id: 807,\n        name: 'Nested2PartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'Type of Nested2PartySubID (760) value. Second instance of <NestedParties>.\\n\\nSame values as PartySubIDType (803)',\n    },\n    {\n        id: 808,\n        name: 'AllocIntermedReqType',\n        abbrName: 'IntermedReqTyp',\n        type: 'AllocIntermedReqTypeCodeSet',\n        baseCategory: 'Allocation',\n        baseCategoryAbbrName: 'ImReqTyp',\n        added: 'FIX.4.4',\n        description:\n            'Response to allocation to be communicated to a counterparty through an intermediary, i.e. clearing house. Used in conjunction with AllocType = \"Request to Intermediary\" and AllocReportType = \"Request to Intermediary\"',\n    },\n    {\n        id: 809,\n        name: 'NoUsernames',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of Usernames to which this this response is directed',\n    },\n    {\n        id: 810,\n        name: 'UnderlyingPx',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description: 'Underlying price associate with a derivative instrument.',\n    },\n    {\n        id: 811,\n        name: 'PriceDelta',\n        abbrName: 'PxDelta',\n        type: 'float',\n        added: 'FIX.4.4',\n        description:\n            'The rate of change in the price of a derivative with respect to the movement in the price of the underlying instrument(s) upon which the derivative instrument price is based.\\n\\nThis value is normally between -1.0 and 1.0.',\n    },\n    {\n        id: 812,\n        name: 'ApplQueueMax',\n        abbrName: 'ApplQuMax',\n        type: 'int',\n        added: 'FIX.4.4',\n        description:\n            'Used to specify the maximum number of application messages that can be queued bedore a corrective action needs to take place to resolve the queuing issue.',\n    },\n    {\n        id: 813,\n        name: 'ApplQueueDepth',\n        abbrName: 'ApplQuDepth',\n        type: 'int',\n        added: 'FIX.4.4',\n        description:\n            'Current number of application messages that were queued at the time that the message was created by the counterparty.',\n    },\n    {\n        id: 814,\n        name: 'ApplQueueResolution',\n        abbrName: 'ApplQuResolution',\n        type: 'ApplQueueResolutionCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'Resolution taken when ApplQueueDepth (813) exceeds ApplQueueMax (812) or system specified maximum queue size.',\n    },\n    {\n        id: 815,\n        name: 'ApplQueueAction',\n        abbrName: 'ApplQuActn',\n        type: 'ApplQueueActionCodeSet',\n        added: 'FIX.4.4',\n        description: 'Action to take to resolve an application message queue (backlog).',\n    },\n];\n\nconst batch2: ISpecFields[] = [\n    {\n        id: 816,\n        name: 'NoAltMDSource',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of alternative market data sources',\n    },\n    {\n        id: 817,\n        name: 'AltMDSourceID',\n        abbrName: 'AltMDSrcID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description:\n            'Session layer source for market data\\n\\n(For the standard FIX session layer, this would be the TargetCompID (56) where market data can be obtained).',\n    },\n    {\n        id: 818,\n        name: 'SecondaryTradeReportID',\n        abbrName: 'TrdRptID2',\n        type: 'String',\n        baseCategory: 'TradeCapture',\n        baseCategoryAbbrName: 'RptID2',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        description:\n            'Secondary trade report identifier - can be used to associate an additional identifier with a trade.',\n    },\n    {\n        id: 819,\n        name: 'AvgPxIndicator',\n        abbrName: 'AvgPxInd',\n        type: 'AvgPxIndicatorCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '239',\n        description: 'Average pricing indicator.',\n    },\n    {\n        id: 820,\n        name: 'TradeLinkID',\n        abbrName: 'LinkID',\n        type: 'String',\n        baseCategory: 'TradeCapture',\n        baseCategoryAbbrName: 'LinkID',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Used to link a group of trades together.',\n    },\n    {\n        id: 821,\n        name: 'OrderInputDevice',\n        abbrName: 'OrdInptDev',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Specific device number, terminal number or station where order was entered',\n    },\n    {\n        id: 822,\n        name: 'UnderlyingTradingSessionID',\n        abbrName: 'UndSesID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Trading Session in which the underlying instrument trades',\n    },\n    {\n        id: 823,\n        name: 'UnderlyingTradingSessionSubID',\n        abbrName: 'UndSesSub',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Trading Session sub identifier in which the underlying instrument trades',\n    },\n    {\n        id: 824,\n        name: 'TradeLegRefID',\n        abbrName: 'TrdLegRefID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Reference to the leg of a multileg instrument to which this trade refers',\n    },\n    {\n        id: 825,\n        name: 'ExchangeRule',\n        abbrName: 'ExchRule',\n        type: 'String',\n        added: 'FIX.4.4',\n        description:\n            'Used to report any exchange rules that apply to this trade.\\n\\nPrimarily intended for US futures markets. Certain trading practices are permitted by the CFTC, such as large lot trading, block trading, all or none trades. If the rules are used, the exchanges are required to indicate these rules on the trade.',\n    },\n    {\n        id: 826,\n        name: 'TradeAllocIndicator',\n        abbrName: 'AllocInd',\n        type: 'TradeAllocIndicatorCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'Identifies if, and how, the trade is to be allocated or split.',\n    },\n    {\n        id: 827,\n        name: 'ExpirationCycle',\n        abbrName: 'ExpirationCycle',\n        type: 'ExpirationCycleCodeSet',\n        added: 'FIX.4.4',\n        description: 'Part of trading cycle when an instrument expires. Field is applicable for derivatives.',\n    },\n    {\n        id: 828,\n        name: 'TrdType',\n        abbrName: 'TrdTyp',\n        type: 'TrdTypeCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '289',\n        description:\n            'Type of trade assigned to a trade. SecondaryTrdType(855) and TertiaryTrdType(2896) may be used in addition to TrdType(828) to assign up to three different trade types to a single trade.\\n\\nNote: several enumerations of this field duplicate the enumerations in TradePriceCondition(1839) field. These may be deprecated from TrdType(828) in the future. TradePriceCondition(1839) is preferred in messages that support it.',\n    },\n    {\n        id: 829,\n        name: 'TrdSubType',\n        abbrName: 'TrdSubTyp',\n        type: 'TrdSubTypeCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '289',\n        description: 'Further qualification to the trade type defined in TrdType(828).',\n    },\n    {\n        id: 830,\n        name: 'TransferReason',\n        abbrName: 'TrnsfrRsn',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Reason trade is being transferred',\n    },\n    {\n        id: 832,\n        name: 'TotNumAssignmentReports',\n        abbrName: 'TotNumAsgnRpts',\n        type: 'int',\n        added: 'FIX.4.4',\n        description: 'Total Number of Assignment Reports being returned to a firm',\n    },\n    {\n        id: 833,\n        name: 'AsgnRptID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Unique identifier for the Assignment Report',\n    },\n    {\n        id: 834,\n        name: 'ThresholdAmount',\n        abbrName: 'ThresholdAmt',\n        type: 'PriceOffset',\n        added: 'FIX.4.4',\n        description: 'Amount that a position has to be in the money before it is exercised.',\n    },\n    {\n        id: 835,\n        name: 'PegMoveType',\n        abbrName: 'MoveTyp',\n        type: 'PegMoveTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Describes whether peg is static or floats',\n    },\n    {\n        id: 836,\n        name: 'PegOffsetType',\n        abbrName: 'OfstTyp',\n        type: 'PegOffsetTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Type of Peg Offset value',\n    },\n    {\n        id: 837,\n        name: 'PegLimitType',\n        abbrName: 'LmtTyp',\n        type: 'PegLimitTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Type of Peg Limit',\n    },\n    {\n        id: 838,\n        name: 'PegRoundDirection',\n        abbrName: 'RndDir',\n        type: 'PegRoundDirectionCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'If the calculated peg price is not a valid tick price, specifies whether to round the price to be more or less aggressive',\n    },\n    {\n        id: 839,\n        name: 'PeggedPrice',\n        abbrName: 'PeggedPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description: 'The price the order is currently pegged at',\n    },\n    {\n        id: 840,\n        name: 'PegScope',\n        abbrName: 'Scope',\n        type: 'PegScopeCodeSet',\n        added: 'FIX.4.4',\n        description: 'The scope of the peg',\n    },\n    {\n        id: 841,\n        name: 'DiscretionMoveType',\n        abbrName: 'MoveTyp',\n        type: 'DiscretionMoveTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Describes whether discretionay price is static or floats',\n    },\n    {\n        id: 842,\n        name: 'DiscretionOffsetType',\n        abbrName: 'OfstTyp',\n        type: 'DiscretionOffsetTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Type of Discretion Offset value',\n    },\n    {\n        id: 843,\n        name: 'DiscretionLimitType',\n        abbrName: 'LimitTyp',\n        type: 'DiscretionLimitTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Type of Discretion Limit',\n    },\n    {\n        id: 844,\n        name: 'DiscretionRoundDirection',\n        abbrName: 'RndDir',\n        type: 'DiscretionRoundDirectionCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'If the calculated discretionary price is not a valid tick price, specifies whether to round the price to be more or less aggressive',\n    },\n    {\n        id: 845,\n        name: 'DiscretionPrice',\n        abbrName: 'DsctnPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description: 'The current discretionary price of the order',\n    },\n    {\n        id: 846,\n        name: 'DiscretionScope',\n        abbrName: 'Scope',\n        type: 'DiscretionScopeCodeSet',\n        added: 'FIX.4.4',\n        description: 'The scope of the discretion',\n    },\n    {\n        id: 847,\n        name: 'TargetStrategy',\n        abbrName: 'TgtStrategy',\n        type: 'TargetStrategyCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.4.4',\n        description:\n            'The target strategy of the order\\n\\n1000+ = Reserved and available for bi-laterally agreed upon user defined values',\n    },\n    {\n        id: 848,\n        name: 'TargetStrategyParameters',\n        abbrName: 'TgtStrategyParameters',\n        type: 'String',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'Field to allow further specification of the TargetStrategy - usage to be agreed between counterparties\\n\\nThe StrategyParametersGrp repeating group is used instead to convey target strategy parameters and values.',\n    },\n    {\n        id: 849,\n        name: 'ParticipationRate',\n        abbrName: 'ParticipationRt',\n        type: 'Percentage',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'For a TargetStrategy=Participate order specifies the target particpation rate. For other order types this is a volume limit (i.e. do not be more than this percent of the market volume)\\n\\nThe StrategyParametersGrp repeating group is used instead to convey target strategy parameters and values.',\n    },\n    {\n        id: 850,\n        name: 'TargetStrategyPerformance',\n        abbrName: 'TgtStrategyPerformance',\n        type: 'float',\n        added: 'FIX.4.4',\n        description: 'For communication of the performance of the order versus the target strategy',\n    },\n    {\n        id: 851,\n        name: 'LastLiquidityInd',\n        abbrName: 'LastLqdtyInd',\n        type: 'LastLiquidityIndCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description:\n            'Indicator to identify whether this fill was a result of a liquidity provider providing or liquidity taker taking the liquidity.',\n    },\n    {\n        id: 852,\n        name: 'PublishTrdIndicator',\n        abbrName: 'PubTrdInd',\n        type: 'PublishTrdIndicatorCodeSet',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        description: 'Indicates if a trade should be reported via a market reporting service.',\n    },\n    {\n        id: 853,\n        name: 'ShortSaleReason',\n        abbrName: 'ShrtSaleRsn',\n        type: 'ShortSaleReasonCodeSet',\n        added: 'FIX.4.4',\n        description: 'Reason for short sale.',\n    },\n    {\n        id: 854,\n        name: 'QtyType',\n        abbrName: 'QtyTyp',\n        type: 'QtyTypeCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '107',\n        description:\n            'Type of quantity specified in quantity field. ContractMultiplier (tag 231) is required when QtyType = 1 (Contracts). UnitOfMeasure (tag 996) and TimeUnit (tag 997) are required when QtyType = 2 (Units of Measure per Time Unit).',\n    },\n    {\n        id: 855,\n        name: 'SecondaryTrdType',\n        abbrName: 'TrdTyp2',\n        type: 'TrdTypeCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '268',\n        description:\n            'Type of trade assigned to a trade. Used in addition to TrdType(828). Must not be used when only one trade type needs to be assigned.',\n    },\n    {\n        id: 856,\n        name: 'TradeReportType',\n        abbrName: 'RptTyp',\n        type: 'TradeReportTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Type of Trade Report',\n    },\n    {\n        id: 857,\n        name: 'AllocNoOrdersType',\n        abbrName: 'NoOrdsTyp',\n        type: 'AllocNoOrdersTypeCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '118',\n        description:\n            'Indicates how the orders being booked and allocated by an AllocationInstruction or AllocationReport message are identified, e.g. by explicit definition in the OrdAllocGrp or ExecAllocGrp components, or not identified explicitly.',\n    },\n    {\n        id: 858,\n        name: 'SharedCommission',\n        abbrName: 'SharedComm',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description:\n            'Commission to be shared with a third party, e.g. as part of a directed brokerage commission sharing arrangement.',\n    },\n    {\n        id: 859,\n        name: 'ConfirmReqID',\n        abbrName: 'CnfmReqID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Unique identifier for a Confirmation Request message',\n    },\n    {\n        id: 860,\n        name: 'AvgParPx',\n        abbrName: 'AvgParPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description:\n            'Used to express average price as percent of par (used where AvgPx field is expressed in some other way)',\n    },\n    {\n        id: 861,\n        name: 'ReportedPx',\n        abbrName: 'RptedPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description:\n            'Reported price (used to differentiate from AvgPx on a confirmation of a marked-up or marked-down principal trade)',\n    },\n    {\n        id: 862,\n        name: 'NoCapacities',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of repeating OrderCapacity entries.',\n    },\n    {\n        id: 863,\n        name: 'OrderCapacityQty',\n        abbrName: 'CpctyQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        description:\n            'Quantity executed under a specific OrderCapacity (e.g. quantity executed as agent, quantity executed as principal)',\n    },\n    {\n        id: 864,\n        name: 'NoEvents',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of repeating EventType entries.',\n    },\n    {\n        id: 865,\n        name: 'EventType',\n        abbrName: 'EventTyp',\n        type: 'EventTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        description: 'Code to represent the type of event',\n    },\n    {\n        id: 866,\n        name: 'EventDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        description: 'Date of event',\n    },\n    {\n        id: 867,\n        name: 'EventPx',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description: 'Predetermined price of issue at event, if applicable',\n    },\n    {\n        id: 868,\n        name: 'EventText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Comments related to the event.',\n    },\n    {\n        id: 869,\n        name: 'PctAtRisk',\n        abbrName: 'PctAtRisk',\n        type: 'Percentage',\n        added: 'FIX.4.4',\n        description: 'Percent at risk due to lowest possible call.',\n    },\n    {\n        id: 870,\n        name: 'NoInstrAttrib',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of repeating InstrAttribType entries.',\n    },\n    {\n        id: 871,\n        name: 'InstrAttribType',\n        abbrName: 'Typ',\n        type: 'InstrAttribTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        description: 'Code to represent the type of instrument attribute',\n    },\n    {\n        id: 872,\n        name: 'InstrAttribValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Attribute value appropriate to the InstrAttribType (871) field.',\n    },\n    {\n        id: 873,\n        name: 'DatedDate',\n        abbrName: 'Dated',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        description:\n            'The effective date of a new securities issue determined by its underwriters. Often but not always the same as the Issue Date and the Interest Accrual Date',\n    },\n    {\n        id: 874,\n        name: 'InterestAccrualDate',\n        abbrName: 'IntAcrl',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        description:\n            'The start date used for calculating accrued interest on debt instruments which are being sold between interest payment dates. Often but not always the same as the Issue Date and the Dated Date',\n    },\n    {\n        id: 875,\n        name: 'CPProgram',\n        abbrName: 'CPPgm',\n        type: 'CPProgramCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '201',\n        description:\n            'The program under which a commercial paper offering is exempt from SEC registration identified by the paragraph number(s) within the US Securities Act of 1933 or as identified below.',\n    },\n    {\n        id: 876,\n        name: 'CPRegType',\n        abbrName: 'CPRegT',\n        type: 'String',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '201',\n        description:\n            'The description of commercial paper registration or rule under which exempt commercial paper is offered. For example \"144a\", \"Tax Exempt\" or \"REG. S\".',\n    },\n    {\n        id: 877,\n        name: 'UnderlyingCPProgram',\n        abbrName: 'CPPgm',\n        type: 'CPProgramCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description: 'The program under which the underlying commercial paper is issued',\n    },\n    {\n        id: 878,\n        name: 'UnderlyingCPRegType',\n        abbrName: 'CPRegTyp',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'The registration type of the underlying commercial paper issuance',\n    },\n    {\n        id: 879,\n        name: 'UnderlyingQty',\n        abbrName: 'Qty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        description: 'Unit amount of the underlying security (par, shares, currency, etc.)',\n    },\n    {\n        id: 880,\n        name: 'TrdMatchID',\n        abbrName: 'MtchID',\n        type: 'String',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '279',\n        description:\n            'Identifier assigned by a matching system to a match event that results in multiple executions or trades.',\n    },\n    {\n        id: 881,\n        name: 'SecondaryTradeReportRefID',\n        abbrName: 'TrdRptRefID2',\n        type: 'String',\n        baseCategory: 'TradeCapture',\n        baseCategoryAbbrName: 'RptRefID2',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        description:\n            'Used to refer to a previous SecondaryTradeReportRefID when amending the transaction (cancel, replace, release, or reversal).',\n    },\n    {\n        id: 882,\n        name: 'UnderlyingDirtyPrice',\n        abbrName: 'DirtPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description:\n            'Price (percent-of-par or per unit) of the underlying security or basket. \"Dirty\" means it includes accrued interest',\n    },\n    {\n        id: 883,\n        name: 'UnderlyingEndPrice',\n        abbrName: 'EndPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        description:\n            'Price (percent-of-par or per unit) of the underlying security or basket at the end of the agreement.',\n    },\n    {\n        id: 884,\n        name: 'UnderlyingStartValue',\n        abbrName: 'StartVal',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description: 'Currency value attributed to this collateral at the start of the agreement',\n    },\n    {\n        id: 885,\n        name: 'UnderlyingCurrentValue',\n        abbrName: 'CurVal',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description: 'Currency value currently attributed to this collateral',\n    },\n    {\n        id: 886,\n        name: 'UnderlyingEndValue',\n        abbrName: 'EndVal',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description: 'Currency value attributed to this collateral at the end of the agreement',\n    },\n    {\n        id: 887,\n        name: 'NoUnderlyingStips',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of underlying stipulation entries',\n    },\n    {\n        id: 888,\n        name: 'UnderlyingStipType',\n        abbrName: 'Typ',\n        type: 'StipulationTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Type of stipulation.\\n\\nSame values as StipulationType (233)',\n    },\n    {\n        id: 889,\n        name: 'UnderlyingStipValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Value of stipulation.\\n\\nSame values as StipulationValue (234)',\n    },\n    {\n        id: 890,\n        name: 'MaturityNetMoney',\n        abbrName: 'MatNetMny',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description: 'Net Money at maturity if Zero Coupon and maturity value is different from par value',\n    },\n    {\n        id: 891,\n        name: 'MiscFeeBasis',\n        abbrName: 'Basis',\n        type: 'MiscFeeBasisCodeSet',\n        added: 'FIX.4.4',\n        description: 'Defines the unit for a miscellaneous fee.',\n    },\n    {\n        id: 892,\n        name: 'TotNoAllocs',\n        abbrName: 'TotNoAllocs',\n        type: 'int',\n        added: 'FIX.4.4',\n        description:\n            'Total number of NoAlloc entries across all messages. Should be the sum of all NoAllocs in each message that has repeating NoAlloc entries related to the same AllocID or AllocReportID. Used to support fragmentation.',\n    },\n    {\n        id: 893,\n        name: 'LastFragment',\n        abbrName: 'LastFragment',\n        type: 'LastFragmentCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'Indicates whether this message is the last in a sequence of messages for those messages that support fragmentation, such as Allocation Instruction, Mass Quote, Security List, Derivative Security List',\n    },\n    {\n        id: 894,\n        name: 'CollReqID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Collateral Request Identifier',\n    },\n    {\n        id: 895,\n        name: 'CollAsgnReason',\n        abbrName: 'AsgnRsn',\n        type: 'CollAsgnReasonCodeSet',\n        added: 'FIX.4.4',\n        description: 'Reason for Collateral Assignment',\n    },\n    {\n        id: 896,\n        name: 'CollInquiryQualifier',\n        abbrName: 'Qual',\n        type: 'CollInquiryQualifierCodeSet',\n        added: 'FIX.4.4',\n        description: 'Collateral inquiry qualifiers:',\n    },\n    {\n        id: 897,\n        name: 'NoTrades',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of trades in repeating group.',\n    },\n    {\n        id: 898,\n        name: 'MarginRatio',\n        abbrName: 'MgnRatio',\n        type: 'Percentage',\n        added: 'FIX.4.4',\n        description:\n            'The fraction of the cash consideration that must be collateralized, expressed as a percent. A MarginRatio of 02% indicates that the value of the collateral (after deducting for \"haircut\") must exceed the cash consideration by 2%.',\n    },\n    {\n        id: 899,\n        name: 'MarginExcess',\n        abbrName: 'MgnExcess',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description: 'Excess margin amount (deficit if value is negative)',\n    },\n    {\n        id: 900,\n        name: 'TotalNetValue',\n        abbrName: 'TotNetValu',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description:\n            'TotalNetValue is determined as follows:\\n\\nAt the initial collateral assignment TotalNetValue is the sum of (UnderlyingStartValue * (1-haircut)).\\n\\nIn a collateral substitution TotalNetValue is the sum of (UnderlyingCurrentValue * (1-haircut)).\\n\\nFor listed derivatives clearing margin management, this is the collateral value which equals (Market value * haircut)',\n    },\n    {\n        id: 901,\n        name: 'CashOutstanding',\n        abbrName: 'CshOutstanding',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description: 'Starting consideration less repayments',\n    },\n    {\n        id: 902,\n        name: 'CollAsgnID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Collateral Assignment Identifier',\n    },\n    {\n        id: 903,\n        name: 'CollAsgnTransType',\n        abbrName: 'TransTyp',\n        type: 'CollAsgnTransTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Collateral Assignment Transaction Type',\n    },\n    {\n        id: 904,\n        name: 'CollRespID',\n        abbrName: 'RespID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Collateral Response Identifier',\n    },\n    {\n        id: 905,\n        name: 'CollAsgnRespType',\n        abbrName: 'RespTyp',\n        type: 'CollAsgnRespTypeCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description: 'Type of collateral assignment response.',\n    },\n    {\n        id: 906,\n        name: 'CollAsgnRejectReason',\n        abbrName: 'RejRsn',\n        type: 'CollAsgnRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        description: 'Collateral Assignment Reject Reason',\n    },\n    {\n        id: 907,\n        name: 'CollAsgnRefID',\n        abbrName: 'RefID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Collateral Assignment Identifier to which a transaction refers',\n    },\n    {\n        id: 908,\n        name: 'CollRptID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Collateral Report Identifier',\n    },\n    {\n        id: 909,\n        name: 'CollInquiryID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Collateral Inquiry Identifier',\n    },\n    {\n        id: 910,\n        name: 'CollStatus',\n        abbrName: 'Stat',\n        type: 'CollStatusCodeSet',\n        added: 'FIX.4.4',\n        description: 'Collateral Status',\n    },\n    {\n        id: 911,\n        name: 'TotNumReports',\n        abbrName: 'TotNumRpts',\n        type: 'int',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Total number of reports returned in response to a request.',\n    },\n    {\n        id: 912,\n        name: 'LastRptRequested',\n        abbrName: 'LastRptReqed',\n        type: 'LastRptRequestedCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description:\n            'Indicates whether this message is the last report message in response to a request message, e.g. OrderMassStatusRequest(35=AF), TradeCaptureReportRequest(35=AD).',\n    },\n    {\n        id: 913,\n        name: 'AgreementDesc',\n        abbrName: 'AgmtDesc',\n        type: 'String',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description:\n            'The full name of the base standard agreement, annexes and amendments in place between the principals applicable to a financing transaction. See http://www.fpml.org/coding-scheme/master-agreement-type for derivative values.\\n\\nFor EU SFTR reporting use the appropriate 4-character code noted in the regulations. See SFTR ITS \"Commission Implementing Regulation (EU) 2019/363\" Annexes 1 to 2 for values. For other agreement type use OTHR and the name of the agreement concatenated with a hyphen, e.g. OTHR-<IndexName>.',\n    },\n    {\n        id: 914,\n        name: 'AgreementID',\n        abbrName: 'AgmtID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description:\n            'A common reference to the applicable standing agreement between the counterparties to a financing transaction.',\n    },\n    {\n        id: 915,\n        name: 'AgreementDate',\n        abbrName: 'AgmtDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        description:\n            'A reference to the date the underlying agreement specified by AgreementID and AgreementDesc was executed.',\n    },\n    {\n        id: 916,\n        name: 'StartDate',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        description:\n            'Start date of a financing deal, i.e. the date the buyer pays the seller cash and takes control of the collateral',\n    },\n    {\n        id: 917,\n        name: 'EndDate',\n        abbrName: 'EndDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        description:\n            'End date of a financing deal, i.e. the date the seller reimburses the buyer and takes back control of the collateral',\n    },\n    {\n        id: 918,\n        name: 'AgreementCurrency',\n        abbrName: 'AgmtCcy',\n        type: 'Currency',\n        added: 'FIX.4.4',\n        description:\n            'Contractual currency forming the basis of a financing agreement and associated transactions. Usually, but not always, the same as the trade currency.',\n    },\n    {\n        id: 919,\n        name: 'DeliveryType',\n        abbrName: 'DlvryTyp',\n        type: 'DeliveryTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Identifies type of settlement',\n    },\n    {\n        id: 920,\n        name: 'EndAccruedInterestAmt',\n        abbrName: 'EndAcrdIntAmt',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description: 'Accrued Interest Amount applicable to a financing transaction on the End Date.',\n    },\n    {\n        id: 921,\n        name: 'StartCash',\n        abbrName: 'StartCsh',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description:\n            'Starting dirty cash consideration of a financing deal, i.e. paid to the seller on the Start Date.',\n    },\n    {\n        id: 922,\n        name: 'EndCash',\n        abbrName: 'EndCsh',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        description:\n            'Ending dirty cash consideration of a financing deal. i.e. reimbursed to the buyer on the End Date.',\n    },\n    {\n        id: 923,\n        name: 'UserRequestID',\n        abbrName: 'UserReqID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Unique identifier for a User Request.',\n    },\n    {\n        id: 924,\n        name: 'UserRequestType',\n        abbrName: 'UserReqTyp',\n        type: 'UserRequestTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Indicates the action required by a User Request Message',\n    },\n    {\n        id: 925,\n        name: 'NewPassword',\n        abbrName: 'NewPassword',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'New Password or passphrase',\n    },\n    {\n        id: 926,\n        name: 'UserStatus',\n        abbrName: 'UserStat',\n        type: 'UserStatusCodeSet',\n        added: 'FIX.4.4',\n        description: 'Indicates the status of a user',\n    },\n    {\n        id: 927,\n        name: 'UserStatusText',\n        abbrName: 'UserStatText',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'A text description associated with a user status.',\n    },\n    {\n        id: 928,\n        name: 'StatusValue',\n        abbrName: 'StatValu',\n        type: 'StatusValueCodeSet',\n        added: 'FIX.4.4',\n        description: 'Indicates the status of a network connection',\n    },\n    {\n        id: 929,\n        name: 'StatusText',\n        abbrName: 'StatText',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'A text description associated with a network status.',\n    },\n    {\n        id: 930,\n        name: 'RefCompID',\n        abbrName: 'RefCompID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Assigned value used to identify a firm.',\n    },\n    {\n        id: 931,\n        name: 'RefSubID',\n        abbrName: 'RefSubID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Assigned value used to identify specific elements within a firm.',\n    },\n    {\n        id: 932,\n        name: 'NetworkResponseID',\n        abbrName: 'NtwkRspID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Unique identifier for a network response.',\n    },\n    {\n        id: 933,\n        name: 'NetworkRequestID',\n        abbrName: 'NtwkReqID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description: 'Unique identifier for a network resquest.',\n    },\n    {\n        id: 934,\n        name: 'LastNetworkResponseID',\n        abbrName: 'LastNtwkRspID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description:\n            'Identifier of the previous Network Response message sent to a counterparty, used to allow incremental updates.',\n    },\n    {\n        id: 935,\n        name: 'NetworkRequestType',\n        abbrName: 'NtwkReqTyp',\n        type: 'NetworkRequestTypeCodeSet',\n        added: 'FIX.4.4',\n        description:\n            \"Indicates the type and level of details required for a Network Status Request Message\\n\\nBoolean logic applies EG If you want to subscribe for changes to certain id's then UserRequestType =0 (8+2), Snapshot for certain ID's = 9 (8+1)\",\n    },\n    {\n        id: 936,\n        name: 'NoCompIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of CompID entries in a repeating group.',\n    },\n    {\n        id: 937,\n        name: 'NetworkStatusResponseType',\n        abbrName: 'NtwkStatRspTyp',\n        type: 'NetworkStatusResponseTypeCodeSet',\n        added: 'FIX.4.4',\n        description: 'Indicates the type of Network Response Message.',\n    },\n    {\n        id: 938,\n        name: 'NoCollInquiryQualifier',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of CollInquiryQualifier entries in a repeating group.',\n    },\n    {\n        id: 939,\n        name: 'TrdRptStatus',\n        abbrName: 'TrdRptStat',\n        type: 'TrdRptStatusCodeSet',\n        added: 'FIX.4.4',\n        description: 'Trade Report Status',\n    },\n    {\n        id: 940,\n        name: 'AffirmStatus',\n        abbrName: 'AffirmStat',\n        type: 'AffirmStatusCodeSet',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '215',\n        description: 'Specifies the affirmation status of the confirmation.',\n    },\n    {\n        id: 941,\n        name: 'UnderlyingStrikeCurrency',\n        abbrName: 'StrkCcy',\n        type: 'Currency',\n        added: 'FIX.4.4',\n        description: 'Currency in which the strike price of an underlying instrument is denominated',\n    },\n    {\n        id: 942,\n        name: 'LegStrikeCurrency',\n        abbrName: 'StrkCcy',\n        type: 'Currency',\n        added: 'FIX.4.4',\n        description: 'Currency in which the strike price of a instrument leg of a multileg instrument is denominated',\n    },\n    {\n        id: 943,\n        name: 'TimeBracket',\n        abbrName: 'TmBkt',\n        type: 'String',\n        added: 'FIX.4.4',\n        description:\n            'A code that represents a time interval in which a fill or trade occurred.\\n\\nRequired for US futures markets.',\n    },\n    {\n        id: 944,\n        name: 'CollAction',\n        abbrName: 'Actn',\n        type: 'CollActionCodeSet',\n        added: 'FIX.4.4',\n        description: 'Action proposed for an Underlying Instrument instance.',\n    },\n    {\n        id: 945,\n        name: 'CollInquiryStatus',\n        abbrName: 'Stat',\n        type: 'CollInquiryStatusCodeSet',\n        added: 'FIX.4.4',\n        description: 'Status of Collateral Inquiry',\n    },\n    {\n        id: 946,\n        name: 'CollInquiryResult',\n        abbrName: 'Rslt',\n        type: 'CollInquiryResultCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        description:\n            'Result returned in response to Collateral Inquiry\\n\\n4000+ Reserved and available for bi-laterally agreed upon user-defined values',\n    },\n    {\n        id: 947,\n        name: 'StrikeCurrency',\n        abbrName: 'StrkCcy',\n        type: 'Currency',\n        added: 'FIX.4.4',\n        description: 'Currency in which the StrikePrice is denominated.',\n    },\n    {\n        id: 948,\n        name: 'NoNested3PartyIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of Nested3PartyID (949), Nested3PartyIDSource (950), and Nested3PartyRole (95) entries',\n    },\n    {\n        id: 949,\n        name: 'Nested3PartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '950',\n        added: 'FIX.4.4',\n        description: 'PartyID value within a \"third instance\" Nested repeating group.\\n\\nSame values as PartyID (448)',\n    },\n    {\n        id: 950,\n        name: 'Nested3PartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'PartyIDSource value within a \"third instance\" Nested repeating group.\\n\\nSame values as PartyIDSource (447)',\n    },\n    {\n        id: 951,\n        name: 'Nested3PartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.4.4',\n        description:\n            'PartyRole value within a \"third instance\" Nested repeating group.\\n\\nSame values as PartyRole (452)',\n    },\n    {\n        id: 952,\n        name: 'NoNested3PartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of Nested3PartySubIDs (953) entries',\n    },\n    {\n        id: 953,\n        name: 'Nested3PartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.4.4',\n        description:\n            'PartySubID value within a \"third instance\" Nested repeating group.\\n\\nSame values as PartySubID (523)',\n    },\n    {\n        id: 954,\n        name: 'Nested3PartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'PartySubIDType value within a \"third instance\" Nested repeating group.\\n\\nSame values as PartySubIDType (803)',\n    },\n    {\n        id: 955,\n        name: 'LegContractSettlMonth',\n        abbrName: 'CSetMo',\n        type: 'MonthYear',\n        added: 'FIX.4.4',\n        description: 'Specifies when the contract (i.e. MBS/TBA) will settle.',\n    },\n    {\n        id: 956,\n        name: 'LegInterestAccrualDate',\n        abbrName: 'IntAcrl',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        description:\n            'The start date used for calculating accrued interest on debt instruments which are being sold between interest payment dates. Often but not always the same as the Issue Date and the Dated Date',\n    },\n    {\n        id: 957,\n        name: 'NoStrategyParameters',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        addedEP: '2',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Indicates number of strategy parameters',\n    },\n    {\n        id: 958,\n        name: 'StrategyParameterName',\n        abbrName: 'StrtPrmNme',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '2',\n        description: 'Name of parameter',\n    },\n    {\n        id: 959,\n        name: 'StrategyParameterType',\n        abbrName: 'StrtPrmTyp',\n        type: 'StrategyParameterTypeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '2',\n        description: 'Datatype of the parameter',\n    },\n    {\n        id: 960,\n        name: 'StrategyParameterValue',\n        abbrName: 'StrtPrmVal',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '2',\n        description: 'Value of the parameter',\n    },\n    {\n        id: 961,\n        name: 'HostCrossID',\n        abbrName: 'HstCxID',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '3',\n        description:\n            'Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + legs. Used as the primary key with which to refer to the Cross Order for cancellation and replace. The HostCrossID will also be used to link together components of the Cross Order. For example, each individual Execution Report associated with the order will carry HostCrossID in order to tie back to the original cross order.',\n    },\n    {\n        id: 962,\n        name: 'SideTimeInForce',\n        abbrName: 'SideTmFrc',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.4',\n        addedEP: '3',\n        description:\n            'Indicates how long the order as specified in the side stays in effect. SideTimeInForce allows a two-sided cross order to specify order behavior separately for each side. Absence of this field indicates that TimeInForce should be referenced. SideTimeInForce will override TimeInForce if both are provided.',\n    },\n    {\n        id: 963,\n        name: 'MDReportID',\n        abbrName: 'RptID',\n        type: 'int',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Unique identifier for the Market Data Report.',\n    },\n    {\n        id: 964,\n        name: 'SecurityReportID',\n        abbrName: 'RptID',\n        type: 'int',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '87',\n        description: 'Identifies a Security List message.',\n    },\n    {\n        id: 965,\n        name: 'SecurityStatus',\n        abbrName: 'Status',\n        type: 'SecurityStatusCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Indicates the current state of the instrument.',\n    },\n    {\n        id: 966,\n        name: 'SettleOnOpenFlag',\n        abbrName: 'SettlOnOpenFlag',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Indicator to determine if instrument is settle on open',\n    },\n    {\n        id: 967,\n        name: 'StrikeMultiplier',\n        abbrName: 'StrkMult',\n        type: 'float',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description:\n            'Used for derivatives. Multiplier applied to the strike price for the purpose of calculating the settlement value.',\n    },\n    {\n        id: 968,\n        name: 'StrikeValue',\n        abbrName: 'StrkValu',\n        type: 'float',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description:\n            'Used for derivatives. The number of shares/units for the financial instrument involved in the option trade.',\n    },\n    {\n        id: 969,\n        name: 'MinPriceIncrement',\n        abbrName: 'MinPxIncr',\n        type: 'float',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Minimum price increase for a given exchange-traded Instrument',\n    },\n    {\n        id: 970,\n        name: 'PositionLimit',\n        abbrName: 'PosLmt',\n        type: 'int',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Position Limit for a given exchange-traded product.',\n    },\n    {\n        id: 971,\n        name: 'NTPositionLimit',\n        abbrName: 'NTPosLmt',\n        type: 'int',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Position Limit in the near-term contract for a given exchange-traded product.',\n    },\n    {\n        id: 972,\n        name: 'UnderlyingAllocationPercent',\n        abbrName: 'AllocPct',\n        type: 'Percentage',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Percent of the Strike Price that this underlying represents.',\n    },\n    {\n        id: 973,\n        name: 'UnderlyingCashAmount',\n        abbrName: 'CashAmt',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Cash amount associated with the underlying component.',\n    },\n    {\n        id: 974,\n        name: 'UnderlyingCashType',\n        abbrName: 'CashTyp',\n        type: 'UnderlyingCashTypeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Used for derivatives that deliver into cash underlying.',\n    },\n    {\n        id: 975,\n        name: 'UnderlyingSettlementType',\n        abbrName: 'SettlTyp',\n        type: 'UnderlyingSettlementTypeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Indicates order settlement period for the underlying instrument.',\n    },\n    {\n        id: 976,\n        name: 'QuantityDate',\n        abbrName: 'QtyDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Date associated to the quantity that is being reported for the position.',\n    },\n    {\n        id: 977,\n        name: 'ContIntRptID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Unique identifier for the Contrary Intention report',\n    },\n    {\n        id: 978,\n        name: 'LateIndicator',\n        abbrName: 'LateInd',\n        type: 'Boolean',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Indicates if the contrary intention was received after the exchange imposed cutoff time',\n    },\n    {\n        id: 979,\n        name: 'InputSource',\n        abbrName: 'InptSrc',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '148',\n        description: 'Originating source of the request.',\n    },\n    {\n        id: 980,\n        name: 'SecurityUpdateAction',\n        abbrName: 'UpdActn',\n        type: 'SecurityUpdateActionCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Specifies the action taken or to be taken for the specified instrument or list of instruments.',\n    },\n    {\n        id: 981,\n        name: 'NoExpiration',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of Expiration Qty entries',\n    },\n    {\n        id: 982,\n        name: 'ExpirationQtyType',\n        abbrName: 'ExpTyp',\n        type: 'ExpirationQtyTypeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Expiration Quantity type',\n    },\n    {\n        id: 983,\n        name: 'ExpQty',\n        abbrName: 'ExpQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Expiration Quantity associated with the Expiration Type',\n    },\n    {\n        id: 984,\n        name: 'NoUnderlyingAmounts',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Total number of occurrences of Amount to pay in order to receive the underlying instrument',\n    },\n    {\n        id: 985,\n        name: 'UnderlyingPayAmount',\n        abbrName: 'PayAmt',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Amount to pay in order to receive the underlying instrument',\n    },\n    {\n        id: 986,\n        name: 'UnderlyingCollectAmount',\n        abbrName: 'ColAmt',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Amount to collect in order to deliver the underlying instrument',\n    },\n    {\n        id: 987,\n        name: 'UnderlyingSettlementDate',\n        abbrName: 'StlDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description:\n            'Date the underlying instrument will settle. Used for derivatives that deliver into more than one underlying instrument. Settlement dates can vary across underlying instruments.',\n    },\n    {\n        id: 988,\n        name: 'UnderlyingSettlementStatus',\n        abbrName: 'SetStat',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description:\n            'Settlement status of the underlying instrument. Used for derivatives that deliver into more than one underlying instrument. Settlement can be delayed for an underlying instrument.',\n    },\n    {\n        id: 989,\n        name: 'SecondaryIndividualAllocID',\n        abbrName: 'IndAllocID2',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Will allow the intermediary to specify an allocation ID generated by their system.',\n    },\n    {\n        id: 990,\n        name: 'LegReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Additional attribute to store the Trade ID of the Leg.',\n    },\n    {\n        id: 991,\n        name: 'RndPx',\n        abbrName: 'RndPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Specifies average price rounded to quoted precision.',\n    },\n    {\n        id: 992,\n        name: 'IndividualAllocType',\n        abbrName: 'Typ',\n        type: 'IndividualAllocTypeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Identifies whether the allocation is to be sub-allocated or allocated to a third party',\n    },\n    {\n        id: 993,\n        name: 'AllocCustomerCapacity',\n        abbrName: 'CustCpcty',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Capacity of customer in the allocation block.',\n    },\n    {\n        id: 994,\n        name: 'TierCode',\n        abbrName: 'TierCD',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'The Tier the trade was matched by the clearing system.',\n    },\n    {\n        id: 996,\n        name: 'UnitOfMeasure',\n        abbrName: 'UOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '122',\n        description:\n            \"The unit of measure of the underlying commodity upon which the contract is based. Two groups of units of measure enumerations are supported.\\n\\nFixed Magnitude UOMs are primarily used in energy derivatives and specify a magnitude (such as, MM, Kilo, M, etc.) and the dimension (such as, watt hours, BTU's) to produce standard fixed measures (such as MWh - Megawatt-hours, MMBtu - One million BTUs).\\n\\nThe second group, Variable Quantity UOMs, specifies the dimension as a single unit without a magnitude (or more accurately a magnitude of one) and uses the UnitOfMeasureQty(1147) field to define the quantity of units per contract. Variable Quantity UOMs are used for both commodities (such as lbs of lean cattle, bushels of corn, ounces of gold) and financial futures.\\n\\nExamples:\\n\\nFor lean cattle futures contracts, a UnitOfMeasure of 'lbs' with a UnitOfMeasureQty(1147) of 40,000, means each lean cattle futures contract represents 40,000 lbs of lean cattle.\\n\\nFor Eurodollars futures contracts, a UnitOfMeasure of Ccy with a UnitOfMeasureCurrency(1716) of USD and a UnitOfMeasureQty(1147) of 1,000,000, means a Eurodollar futures contract represents 1,000,000 USD.\\n\\nFor gold futures contracts, a UnitOfMeasure is oz_tr (Troy ounce) with a UnitOfMeasureQty(1147) of 1,000, means each gold futures contract represents 1,000 troy ounces of gold.\",\n    },\n    {\n        id: 997,\n        name: 'TimeUnit',\n        abbrName: 'TmUnit',\n        type: 'TimeUnitCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.Latest',\n        updatedEP: '287',\n        description:\n            'Unit of time associated with the contract.\\n\\nNOTE: Additional values may be used by mutual agreement of the counterparties.',\n    },\n    {\n        id: 998,\n        name: 'UnderlyingUnitOfMeasure',\n        abbrName: 'UOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Underlying unit of measure.\\n\\nSee UnitOfMeasure(996) for complete definition.',\n    },\n    {\n        id: 999,\n        name: 'LegUnitOfMeasure',\n        abbrName: 'UOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Multileg instrument unit of measure.\\n\\nSee UnitOfMeasure(996) for complete definition.',\n    },\n    {\n        id: 1000,\n        name: 'UnderlyingTimeUnit',\n        abbrName: 'TmUnit',\n        type: 'TimeUnitCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.Latest',\n        updatedEP: '287',\n        description: 'See TimeUnit(997) for complete definition.',\n    },\n    {\n        id: 1001,\n        name: 'LegTimeUnit',\n        abbrName: 'TmUnit',\n        type: 'TimeUnitCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.Latest',\n        updatedEP: '287',\n        description: 'See TimeUnit(997) for complete definition.',\n    },\n    {\n        id: 1002,\n        name: 'AllocMethod',\n        abbrName: 'Meth',\n        type: 'AllocMethodCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Specifies the method under which a trade quantity was allocated.',\n    },\n    {\n        id: 1003,\n        name: 'TradeID',\n        abbrName: 'TrdID',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '11',\n        description:\n            'The unique ID assigned to the trade entity once it is received or matched by the exchange or central counterparty.',\n    },\n    {\n        id: 1005,\n        name: 'SideTradeReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Used on a multi-sided trade to designate the ReportID',\n    },\n    {\n        id: 1006,\n        name: 'SideFillStationCd',\n        abbrName: 'FillStationCd',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Used on a multi-sided trade to convey order routing information',\n    },\n    {\n        id: 1007,\n        name: 'SideReasonCd',\n        abbrName: 'RsnCD',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description: 'Used on a multi-sided trade to convey reason for execution',\n    },\n    {\n        id: 1008,\n        name: 'SideTrdSubType',\n        abbrName: 'TrdSubTyp',\n        type: 'TrdSubTypeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Used on a multi-sided trade to specify the type of trade for a given side. Same values as TrdSubType (829).',\n    },\n    {\n        id: 1009,\n        name: 'SideLastQty',\n        abbrName: 'SideQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '161',\n        description: 'Used to indicate the quantity on one side of a multi-sided trade.',\n    },\n    {\n        id: 1011,\n        name: 'MessageEventSource',\n        abbrName: 'MsgEvtSrc',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        description:\n            'Used to identify the event or source which gave rise to a message.\\n\\nValid values will be based on an exchange\\'s implementation.\\n\\nExample values are:\\n\\n\"MQM\" (originated at Firm Back Office)\\n\\n\"Clear\" (originated in Clearing System)\\n\\n\"Reg\" (static data generated via Register request)',\n    },\n    {\n        id: 1012,\n        name: 'SideTrdRegTimestamp',\n        abbrName: 'TS',\n        type: 'UTCTimestamp',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.Latest',\n        updatedEP: '291',\n        description:\n            'Same as TrdRegTimestamp(769). Used in a multi-sided message to indicate relevant trade-side timestamp.',\n    },\n    {\n        id: 1013,\n        name: 'SideTrdRegTimestampType',\n        abbrName: 'Typ',\n        type: 'TrdRegTimestampTypeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.Latest',\n        updatedEP: '291',\n        description:\n            'Same as TrdRegTimeStampType(770). Used in a multi-sided message to indicate relevant trade-side timestamp type.',\n    },\n    {\n        id: 1014,\n        name: 'SideTrdRegTimestampSrc',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.Latest',\n        updatedEP: '291',\n        description:\n            'Same as TrdRegTimestampOrigin(771). Used in a multi-sided message to indicate relevant trade-side origin or source of timestamp.',\n    },\n    {\n        id: 1015,\n        name: 'AsOfIndicator',\n        abbrName: 'AsOfInd',\n        type: 'AsOfIndicatorCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description:\n            'A trade that is being submitted for a trade date prior to the current trade or clearing date, e.g. in an open outcry market an out trade being submitted for the previous trading session or trading day.',\n    },\n    {\n        id: 1016,\n        name: 'NoSideTrdRegTS',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        addedEP: '5',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of timestamp entries.',\n    },\n    {\n        id: 1017,\n        name: 'LegOptionRatio',\n        abbrName: 'LegOptionRatio',\n        type: 'float',\n        added: 'FIX.4.4',\n        addedEP: '18',\n        description:\n            'Expresses the risk of an option leg\\n\\nValue must be between -1 and 1.\\n\\nA Call Option will require a ratio value between 0 and 1\\n\\nA Put Option will require a ratio value between -1 and 0',\n    },\n    {\n        id: 1018,\n        name: 'NoInstrumentParties',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Identifies the number of parties identified with an instrument',\n    },\n    {\n        id: 1019,\n        name: 'InstrumentPartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1050',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'PartyID value within an instrument party repeating group. Same values as PartyID (448)',\n    },\n    {\n        id: 1020,\n        name: 'TradeVolume',\n        abbrName: 'TrdVol',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Used to report volume with a trade',\n    },\n    {\n        id: 1021,\n        name: 'MDBookType',\n        abbrName: 'MDBkTyp',\n        type: 'MDBookTypeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description:\n            'Describes the type of book for which the feed is intended. Used when multiple feeds are provided over the same connection',\n    },\n    {\n        id: 1022,\n        name: 'MDFeedType',\n        abbrName: 'MDFeedTyp',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description:\n            'Describes a class of service for a given data feed, ie Regular and Market Maker, Bandwidth Intensive or Bandwidth Conservative',\n    },\n    {\n        id: 1023,\n        name: 'MDPriceLevel',\n        abbrName: 'MDPxLvl',\n        type: 'int',\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Integer to convey the level of a bid or offer at a given price level. This is in contrast to MDEntryPositionNo(290) which is used to convey the position of an order within a price level.',\n    },\n    {\n        id: 1024,\n        name: 'MDOriginType',\n        abbrName: 'MDOrigTyp',\n        type: 'MDOriginTypeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '216',\n        description: 'Used to describe the origin of the market data entry.',\n    },\n    {\n        id: 1025,\n        name: 'FirstPx',\n        abbrName: 'FirstPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'Indicates the first trade price of the day/session',\n    },\n    {\n        id: 1026,\n        name: 'MDEntrySpotRate',\n        abbrName: 'MDEntrySpotRt',\n        type: 'float',\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description: 'The spot rate for an FX entry',\n    },\n    {\n        id: 1027,\n        name: 'MDEntryForwardPoints',\n        abbrName: 'MDEntryFwdPnts',\n        type: 'PriceOffset',\n        added: 'FIX.4.4',\n        addedEP: '7',\n        description:\n            'Used for an F/X entry. The forward points to be added to or subtracted from the spot rate to get the \"all-in\" rate in MDEntryPx. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199',\n    },\n    {\n        id: 1028,\n        name: 'ManualOrderIndicator',\n        abbrName: 'ManOrdInd',\n        type: 'Boolean',\n        added: 'FIX.4.4',\n        addedEP: '9',\n        updated: 'FIX.Latest',\n        updatedEP: '264',\n        description:\n            'Indicates if an order, quote or trade was initially received manually (as opposed to electronically) or if it was entered manually (as opposed to entered by automated trading software).',\n    },\n    {\n        id: 1029,\n        name: 'CustDirectedOrder',\n        abbrName: 'CustDrctdOrd',\n        type: 'Boolean',\n        added: 'FIX.4.4',\n        addedEP: '9',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description:\n            'Indicates if the customer directed this order to a specific execution venue \"Y\" or not \"N\".\\n\\nA default of \"N\" customer did not direct this order should be used in the case where the information is both missing and essential.',\n    },\n    {\n        id: 1030,\n        name: 'ReceivedDeptID',\n        abbrName: 'RcvdDptID',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '9',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '135',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Identifies the broker-dealer department that first took the order.',\n    },\n    {\n        id: 1031,\n        name: 'CustOrderHandlingInst',\n        abbrName: 'CustOrdHdlInst',\n        type: 'CustOrderHandlingInstCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '9',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description:\n            'Codes that apply special information that the Broker / Dealer needs to report, as specified by the customer.\\n\\nNOTE: This field and its values have no bearing on the ExecInst and TimeInForce fields. These values should not be used instead of ExecInst or TimeInForce. This field and its values are intended for compliance reporting and/or billing purposes only.\\n\\nFor OrderHandlingInstSrc(1032) = 1 (FINRA OATS), valid values are (as of OATS Phase 3 as provided by FINRA. See also http://www.finra.org/Industry/Compliance/MarketTransparency/OATS/PhaseIII/index.htm for a complete list.\\n\\nFor OrderHandlingInstSrc(1032) = 2 (FIA Execution Source Code), only one enumeration value may be specified.',\n    },\n    {\n        id: 1032,\n        name: 'OrderHandlingInstSource',\n        abbrName: 'OrdHndlInstSrc',\n        type: 'OrderHandlingInstSourceCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '9',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description:\n            'Identifies the class or source of the order handling instruction values. \u00A0Scope of this will apply to both CustOrderHandlingInst(1031) and DeskOrderHandlingInst(1035).\\n\\nConditionally required when CustOrderHandlingInst(1031) or DeskOrderHandlingInst(1035) is specified.',\n    },\n    {\n        id: 1033,\n        name: 'DeskType',\n        abbrName: 'DskTyp',\n        type: 'DeskTypeCodeSet',\n        discriminatorId: '1034',\n        added: 'FIX.4.4',\n        addedEP: '9',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description:\n            'Identifies the type of Trading Desk.\\n\\nConditionally required when InformationBarrierID(1727) is specified for OATS.',\n    },\n    {\n        id: 1034,\n        name: 'DeskTypeSource',\n        abbrName: 'DskTypSrc',\n        type: 'DeskTypeSourceCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '9',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description:\n            'Identifies the class or source of DeskType(1033) values. Conditionally required when DeskType(1033) is specified.',\n    },\n    {\n        id: 1035,\n        name: 'DeskOrderHandlingInst',\n        abbrName: 'DskOrdHndlInst',\n        type: 'CustOrderHandlingInstCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '9',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '135',\n        description: 'Codes that apply special information that the broker-dealer needs to report.',\n    },\n    {\n        id: 1036,\n        name: 'ExecAckStatus',\n        abbrName: 'ExecAckStat',\n        type: 'ExecAckStatusCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '10',\n        description: 'The status of this execution acknowledgement message.',\n    },\n    {\n        id: 1037,\n        name: 'UnderlyingDeliveryAmount',\n        abbrName: 'UndlyDlvAmt',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Indicates the underlying position amount to be delivered',\n    },\n    {\n        id: 1038,\n        name: 'UnderlyingCapValue',\n        abbrName: 'CapValu',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'Maximum notional value for a capped financial instrument',\n    },\n    {\n        id: 1039,\n        name: 'UnderlyingSettlMethod',\n        abbrName: 'SetMeth',\n        type: 'SettlMethodCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '8',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'Settlement method for a contract or instrument. Additional values may be used with bilateral agreement.',\n    },\n    {\n        id: 1040,\n        name: 'SecondaryTradeID',\n        abbrName: 'TrdID2',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '11',\n        description: 'Used to carry an internal trade entity ID which may or may not be reported to the firm',\n    },\n    {\n        id: 1041,\n        name: 'FirmTradeID',\n        abbrName: 'FirmTrdID',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '11',\n        description:\n            'The ID assigned to a trade by the Firm to track a trade within the Firm system. This ID can be assigned either before or after submission to the exchange or central counterpary',\n    },\n    {\n        id: 1042,\n        name: 'SecondaryFirmTradeID',\n        abbrName: 'FirmTrdID2',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '11',\n        description:\n            'Used to carry an internal firm assigned ID which may or may not be reported to the exchange or central counterpary',\n    },\n    {\n        id: 1043,\n        name: 'CollApplType',\n        abbrName: 'ApplTyp',\n        type: 'CollApplTypeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '12',\n        description: 'conveys how the collateral should be/has been applied',\n    },\n    {\n        id: 1044,\n        name: 'UnderlyingAdjustedQuantity',\n        abbrName: 'AdjQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '12',\n        description:\n            'Unit amount of the underlying security (shares) adjusted for pending corporate action not yet allocated.',\n    },\n    {\n        id: 1045,\n        name: 'UnderlyingFXRate',\n        abbrName: 'FxRate',\n        type: 'float',\n        added: 'FIX.4.4',\n        addedEP: '12',\n        description:\n            'Foreign exchange rate used to compute UnderlyingCurrentValue(885) (or market value) from UnderlyingCurrency(318) to Currency(15).',\n    },\n    {\n        id: 1046,\n        name: 'UnderlyingFXRateCalc',\n        abbrName: 'FxRateCalc',\n        type: 'UnderlyingFXRateCalcCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '12',\n        description: 'Specifies whether the UnderlyingFxRate(1045) should be multiplied or divided.',\n    },\n    {\n        id: 1047,\n        name: 'AllocPositionEffect',\n        abbrName: 'AllocPosEfct',\n        type: 'AllocPositionEffectCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '17',\n        description:\n            'Indicates whether the resulting position after a trade should be an opening position or closing position. Used for omnibus accounting - where accounts are held on a gross basis instead of being netted together.',\n    },\n    {\n        id: 1048,\n        name: 'DealingCapacity',\n        abbrName: 'DealingCpcty',\n        type: 'DealingCapacityCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description: 'Identifies role of dealer in the trade.',\n    },\n    {\n        id: 1049,\n        name: 'InstrmtAssignmentMethod',\n        abbrName: 'AsgnMeth',\n        type: 'InstrmtAssignmentMethodCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'Method under which assignment was conducted',\n    },\n    {\n        id: 1050,\n        name: 'InstrumentPartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description:\n            'PartyIDSource value within an instrument partyrepeating group.\\n\\nSame values as PartyIDSource (447)',\n    },\n    {\n        id: 1051,\n        name: 'InstrumentPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'PartyRole value within an instrument partyepeating group.\\n\\nSame values as PartyRole (452)',\n    },\n    {\n        id: 1052,\n        name: 'NoInstrumentPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of InstrumentPartySubID (1053) and InstrumentPartySubIDType (1054) entries',\n    },\n    {\n        id: 1053,\n        name: 'InstrumentPartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        description: 'PartySubID value within an instrument party repeating group.\\n\\nSame values as PartySubID (523)',\n    },\n    {\n        id: 1054,\n        name: 'InstrumentPartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.4.4',\n        addedEP: '4',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Type of InstrumentPartySubID (1053) value.\\n\\nSame values as PartySubIDType (803)',\n    },\n    {\n        id: 1055,\n        name: 'PositionCurrency',\n        abbrName: 'Ccy',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '8',\n        description: 'The Currency in which the position Amount is denominated',\n    },\n    {\n        id: 1056,\n        name: 'CalculatedCcyLastQty',\n        abbrName: 'CalcCcyLastQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description:\n            'Used for the calculated quantity of the other side of the currency trade. Can be derived from LastQty and LastPx.',\n    },\n    {\n        id: 1057,\n        name: 'AggressorIndicator',\n        abbrName: 'AgrsrInd',\n        type: 'AggressorIndicatorCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description: 'Used to identify whether the order initiator is an aggressor or not in the trade.',\n    },\n    {\n        id: 1058,\n        name: 'NoUndlyInstrumentParties',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        addedEP: '8',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Identifies the number of parties identified with an underlying instrument',\n    },\n    {\n        id: 1059,\n        name: 'UnderlyingInstrumentPartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1060',\n        added: 'FIX.4.4',\n        addedEP: '8',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description:\n            'PartyID value within an underlying instrument party repeating group.\\n\\nSame values as PartyID (448)',\n    },\n    {\n        id: 1060,\n        name: 'UnderlyingInstrumentPartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '8',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description:\n            'PartyIDSource value within an underlying instrument partyrepeating group.\\n\\nSame values as PartyIDSource (447)',\n    },\n    {\n        id: 1061,\n        name: 'UnderlyingInstrumentPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '8',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description:\n            'PartyRole value within an underlying instrument partyepeating group.\\n\\nSame values as PartyRole (452)',\n    },\n    {\n        id: 1062,\n        name: 'NoUndlyInstrumentPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        addedEP: '8',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of Underlying InstrumentPartySubID (1053) and InstrumentPartySubIDType (1054) entries',\n    },\n    {\n        id: 1063,\n        name: 'UnderlyingInstrumentPartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '8',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description:\n            'PartySubID value within an underlying instrument party repeating group.\\n\\nSame values as PartySubID (523)',\n    },\n    {\n        id: 1064,\n        name: 'UnderlyingInstrumentPartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.4.4',\n        addedEP: '8',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Type of underlying InstrumentPartySubID (1053) value.\\n\\nSame values as PartySubIDType (803)',\n    },\n    {\n        id: 1065,\n        name: 'BidSwapPoints',\n        abbrName: 'BidSwapPnts',\n        type: 'PriceOffset',\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description:\n            'The bid FX Swap points for an FX Swap. It is the \"far bid forward points - near offer forward point\". Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199',\n    },\n    {\n        id: 1066,\n        name: 'OfferSwapPoints',\n        abbrName: 'OfrSwapPnts',\n        type: 'PriceOffset',\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description:\n            'The offer FX Swap points for an FX Swap. It is the \"far offer forward points - near bid forward points\". Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199',\n    },\n    {\n        id: 1067,\n        name: 'LegBidForwardPoints',\n        abbrName: 'LegBidFwdPnts',\n        type: 'PriceOffset',\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description:\n            'The bid FX forward points for the leg of an FX Swap. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199',\n    },\n    {\n        id: 1068,\n        name: 'LegOfferForwardPoints',\n        abbrName: 'LegOfrFwdPnts',\n        type: 'PriceOffset',\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description:\n            'The offer FX forward points for the leg of an FX Swap. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199',\n    },\n    {\n        id: 1069,\n        name: 'SwapPoints',\n        abbrName: 'SwapPnts',\n        type: 'PriceOffset',\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description:\n            \"For FX Swap, this is used to express the differential between the far leg's bid/offer and the near leg's bid/offer. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199\",\n    },\n    {\n        id: 1070,\n        name: 'MDQuoteType',\n        abbrName: 'MDQteTyp',\n        type: 'QuoteTypeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '7',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Identifies market data quote type.',\n    },\n    {\n        id: 1071,\n        name: 'LastSwapPoints',\n        abbrName: 'LastSwapPnts',\n        type: 'PriceOffset',\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description:\n            \"For FX Swap, this is used to express the last market event for the differential between the far leg's bid/offer and the near leg's bid/offer in a fill or partial fill. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199\",\n    },\n    {\n        id: 1072,\n        name: 'SideGrossTradeAmt',\n        abbrName: 'SideGrossTradeAmt',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        addedEP: '25',\n        description:\n            'The gross trade amount for this side of the trade. See also GrossTradeAmt (381) for additional definition.',\n    },\n    {\n        id: 1073,\n        name: 'LegLastForwardPoints',\n        abbrName: 'LegLastFwdPnts',\n        type: 'PriceOffset',\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description:\n            \"The forward points for this leg's fill event. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199\",\n    },\n    {\n        id: 1074,\n        name: 'LegCalculatedCcyLastQty',\n        abbrName: 'LegCalcCcyLastQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description:\n            'Used for the calculated quantity of the other side of the currency for this leg. Can be derived from LegQty and LegLastPx.',\n    },\n    {\n        id: 1075,\n        name: 'LegGrossTradeAmt',\n        abbrName: 'LegGrossTrdAmt',\n        type: 'Amt',\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description:\n            'The gross trade amount of the leg. For FX Futures this is used to express the notional value of a fill when LegLastQty and other quantity fields are express in terms of contract size.',\n    },\n    {\n        id: 1079,\n        name: 'MaturityTime',\n        abbrName: 'MatTm',\n        type: 'TZTimeOnly',\n        added: 'FIX.4.4',\n        addedEP: '21',\n        description: \"Time of security's maturity expressed in local time with offset to UTC specified\",\n    },\n    {\n        id: 1080,\n        name: 'RefOrderID',\n        abbrName: 'RefOrdID',\n        type: 'String',\n        discriminatorId: '1081',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '171',\n        description:\n            'The ID reference to the order being hit or taken.\\n\\nFor pre-trade credit/risk limit check process, this is the reference to the placed order, quote request or quote for the credit/risk limit check.',\n    },\n    {\n        id: 1081,\n        name: 'RefOrderIDSource',\n        abbrName: 'RefOrdIDSrc',\n        type: 'RefOrderIDSourceCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        description:\n            'Used to specify the source for the identifier in RefOrderID(1080). This can be an identifier provided in order depth market data when hitting (taking) a specific order or to identify what type of order or quote reference is being provided when seeking credit limit check. In the context of US CAT this can be used to identify related orders and quotes which are parent, previous, or manual orders or quotes. Previous relates to orders changing their unique system assigned order identifier.',\n    },\n    {\n        id: 1082,\n        name: 'SecondaryDisplayQty',\n        abbrName: 'SecDspQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description:\n            'Used for reserve orders when DisplayQty applies to the primary execution market (e.g.an ECN) and another quantity is to be shown at other markets (e.g. the exchange). On orders specifies the qty to be displayed, on execution reports the currently displayed quantity.',\n    },\n    {\n        id: 1083,\n        name: 'DisplayWhen',\n        abbrName: 'DspWhn',\n        type: 'DisplayWhenCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Instructs when to refresh DisplayQty (1138).',\n    },\n    {\n        id: 1084,\n        name: 'DisplayMethod',\n        abbrName: 'DspMthd',\n        type: 'DisplayMethodCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description:\n            'Defines what value to use in DisplayQty (1138). If not specified the default DisplayMethod is \"1\"',\n    },\n    {\n        id: 1085,\n        name: 'DisplayLowQty',\n        abbrName: 'DsplLwQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Defines the lower quantity limit to a randomized refresh of DisplayQty.',\n    },\n    {\n        id: 1086,\n        name: 'DisplayHighQty',\n        abbrName: 'DisplayHighQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Defines the upper quantity limit to a randomized refresh of DisplayQty.',\n    },\n    {\n        id: 1087,\n        name: 'DisplayMinIncr',\n        abbrName: 'DspMinIncr',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description:\n            'Defines the minimum increment to be used when calculating a random refresh of DisplayQty. A user specifies this when he wants a larger increment than the standard provided by the market (e.g. the round lot size).',\n    },\n    {\n        id: 1088,\n        name: 'RefreshQty',\n        abbrName: 'RfrshQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Defines the quantity used to refresh DisplayQty.',\n    },\n    {\n        id: 1089,\n        name: 'MatchIncrement',\n        abbrName: 'MtchInc',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description:\n            'Allows orders to specify a minimum quantity that applies to every execution (one execution could be for multiple counter-orders). The order may still fill against smaller orders, but the cumulative quantity of the execution must be in multiples of the MatchIncrement.',\n    },\n    {\n        id: 1090,\n        name: 'MaxPriceLevels',\n        abbrName: 'MxPxLvls',\n        type: 'int',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description:\n            'Allows an order to specify a maximum number of price levels to trade through. Only valid for aggressive orders and during continuous (autoexecution) trading sessions. Property lost when order is put on book. A partially filled order is assigned last trade price as limit price. Non-filled order behaves as ordinary Market or Limit.',\n    },\n    {\n        id: 1091,\n        name: 'PreTradeAnonymity',\n        abbrName: 'PrTrdAnon',\n        type: 'Boolean',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description:\n            'Allows trader to explicitly request anonymity or disclosure in pre-trade market data feeds. Anonymity is relevant in markets where counterparties are regularly disclosed in order depth feeds. Disclosure is relevant when counterparties are not normally visible.',\n    },\n    {\n        id: 1092,\n        name: 'PriceProtectionScope',\n        abbrName: 'PxPrtScp',\n        type: 'PriceProtectionScopeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Defines the type of price protection the customer requires on their order.',\n    },\n    {\n        id: 1093,\n        name: 'LotType',\n        abbrName: 'LotTyp',\n        type: 'LotTypeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Defines the lot type assigned to the order.',\n    },\n    {\n        id: 1094,\n        name: 'PegPriceType',\n        abbrName: 'PegPxTyp',\n        type: 'PegPriceTypeCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Defines the type of peg.',\n    },\n    {\n        id: 1095,\n        name: 'PeggedRefPrice',\n        abbrName: 'PggdRefPx',\n        type: 'Price',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description:\n            'The value of the reference price that the order is pegged to. PeggedRefPrice + PegOffsetValue (211) = PeggedPrice (839) unless the limit price (44, Price) is breached. The values may not be exact due to rounding.',\n    },\n    {\n        id: 1096,\n        name: 'PegSecurityIDSource',\n        abbrName: 'PegSecurityIDSource',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        updated: 'FIX.Latest',\n        updatedEP: '265',\n        description:\n            'Defines the identity of the security off whose prices the order will peg. Same values as SecurityIDSource (22)',\n    },\n    {\n        id: 1097,\n        name: 'PegSecurityID',\n        abbrName: 'PegSecID',\n        type: 'String',\n        discriminatorId: '1096',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Defines the identity of the security off whose prices the order will peg.',\n    },\n    {\n        id: 1098,\n        name: 'PegSymbol',\n        abbrName: 'PgSymbl',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description:\n            \"Defines the common, 'human understood' representation of the security off whose prices the order will Peg.\",\n    },\n    {\n        id: 1099,\n        name: 'PegSecurityDesc',\n        abbrName: 'PegSecDesc',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Security description of the security off whose prices the order will Peg.',\n    },\n    {\n        id: 1100,\n        name: 'TriggerType',\n        abbrName: 'TrgrTyp',\n        type: 'TriggerTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description:\n            'Defines when the trigger will hit, i.e. the action specified by the trigger instructions will come into effect.',\n    },\n    {\n        id: 1101,\n        name: 'TriggerAction',\n        abbrName: 'TrgrActn',\n        type: 'TriggerActionCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Defines the type of action to take when the trigger hits.',\n    },\n    {\n        id: 1102,\n        name: 'TriggerPrice',\n        abbrName: 'TrgrPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'The price at which the trigger should hit.',\n    },\n    {\n        id: 1103,\n        name: 'TriggerSymbol',\n        abbrName: 'TrgrSym',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description:\n            \"Defines the common, 'human understood' representation of the security whose prices will be tracked by the trigger logic.\",\n    },\n    {\n        id: 1104,\n        name: 'TriggerSecurityID',\n        abbrName: 'TrgrSecID',\n        type: 'String',\n        discriminatorId: '1105',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Defines the identity of the security whose prices will be tracked by the trigger logic.',\n    },\n    {\n        id: 1105,\n        name: 'TriggerSecurityIDSource',\n        abbrName: 'TrgrSecIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        updated: 'FIX.Latest',\n        updatedEP: '265',\n        description:\n            'Defines the identity of the security whose prices will be tracked by the trigger logic. Same values as SecurityIDSource (22).',\n    },\n    {\n        id: 1106,\n        name: 'TriggerSecurityDesc',\n        abbrName: 'TrgrSecDesc',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description:\n            'Defines the security description of the security whose prices will be tracked by the trigger logic.',\n    },\n    {\n        id: 1107,\n        name: 'TriggerPriceType',\n        abbrName: 'TrgrPxTyp',\n        type: 'TriggerPriceTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'The type of price that the trigger is compared to.',\n    },\n    {\n        id: 1108,\n        name: 'TriggerPriceTypeScope',\n        abbrName: 'TrgrPxTypScp',\n        type: 'TriggerPriceTypeScopeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'Defines the type of price protection the customer requires on their order.',\n    },\n    {\n        id: 1109,\n        name: 'TriggerPriceDirection',\n        abbrName: 'TrgrPxDir',\n        type: 'TriggerPriceDirectionCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'The side from which the trigger price is reached.',\n    },\n    {\n        id: 1110,\n        name: 'TriggerNewPrice',\n        abbrName: 'TrgrNewPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description:\n            'The Price that the order should have after the trigger has hit. Could be applicable for any trigger type, but must be specified for Trigger Type 1.',\n    },\n    {\n        id: 1111,\n        name: 'TriggerOrderType',\n        abbrName: 'TrgrOrdTyp',\n        type: 'TriggerOrderTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description:\n            'The OrdType the order should have after the trigger has hit. Required to express orders that change from Limit to Market. Other values from OrdType (40) may be used if appropriate and bilaterally agreed upon.',\n    },\n    {\n        id: 1112,\n        name: 'TriggerNewQty',\n        abbrName: 'TrgrNewQty',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        description: 'The Quantity the order should have after the trigger has hit.',\n    },\n    {\n        id: 1113,\n        name: 'TriggerTradingSessionID',\n        abbrName: 'TrgrTrdSessID',\n        type: 'TradingSessionIDCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Defines the trading session at which the order will be activated.',\n    },\n    {\n        id: 1114,\n        name: 'TriggerTradingSessionSubID',\n        abbrName: 'TrgrTrdSessSubID',\n        type: 'TradingSessionSubIDCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'Defines the subordinate trading session at which the order will be activated.',\n    },\n    {\n        id: 1115,\n        name: 'OrderCategory',\n        abbrName: 'OrdCat',\n        type: 'OrderCategoryCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'Defines the type of interest behind a trade (fill or partial fill).',\n    },\n    {\n        id: 1116,\n        name: 'NoRootPartyIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of RootPartyID (1117), RootPartyIDSource (1118), and RootPartyRole (1119) entries',\n    },\n    {\n        id: 1117,\n        name: 'RootPartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1118',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'PartyID value within a root parties component. Same values as PartyID (448)',\n    },\n    {\n        id: 1118,\n        name: 'RootPartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'PartyIDSource value within a root parties component. Same values as PartyIDSource (447)',\n    },\n    {\n        id: 1119,\n        name: 'RootPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'PartyRole value within a root parties component. Same values as PartyRole (452)',\n    },\n    {\n        id: 1120,\n        name: 'NoRootPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of RootPartySubID (1121) and RootPartySubIDType (1122) entries',\n    },\n    {\n        id: 1121,\n        name: 'RootPartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description: 'PartySubID value within a root parties component. Same values as PartySubID (523)',\n    },\n    {\n        id: 1122,\n        name: 'RootPartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Type of RootPartySubID (1121) value. Same values as PartySubIDType (803)',\n    },\n    {\n        id: 1123,\n        name: 'TradeHandlingInstr',\n        abbrName: 'TrdHandlInst',\n        type: 'TradeHandlingInstrCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '23',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '136',\n        description: 'Specified how the TradeCaptureReport(35=AE) should be handled by the respondent.',\n    },\n    {\n        id: 1124,\n        name: 'OrigTradeHandlingInstr',\n        abbrName: 'OrigTrdHandlInst',\n        type: 'TradeHandlingInstrCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '23',\n        description:\n            'Optionally used with TradeHandlingInstr = 0 to relay the trade handling instruction used when reporting the trade to the marketplace. Same values as TradeHandlingInstr (1123)',\n    },\n    {\n        id: 1125,\n        name: 'OrigTradeDate',\n        abbrName: 'OrigTrdDt',\n        type: 'LocalMktDate',\n        added: 'FIX.4.4',\n        addedEP: '23',\n        description:\n            'Used to preserve original trade date when original trade is being referenced in a subsequent trade transaction such as a transfer',\n    },\n    {\n        id: 1126,\n        name: 'OrigTradeID',\n        abbrName: 'OrigTrdID',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '23',\n        description:\n            'Used to preserve original trade id when original trade is being referenced in a subsequent trade transaction such as a transfer',\n    },\n    {\n        id: 1127,\n        name: 'OrigSecondaryTradeID',\n        abbrName: 'OrignTrdID2',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '23',\n        description:\n            'Used to preserve original secondary trade id when original trade is being referenced in a subsequent trade transaction such as a transfer',\n    },\n    {\n        id: 1128,\n        name: 'ApplVerID',\n        abbrName: 'ApplVerID',\n        type: 'ApplVerIDCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '16',\n        updated: 'FIX.Latest',\n        updatedEP: '270',\n        description: 'Specifies the application layer version being applied at the message level.',\n    },\n    {\n        id: 1129,\n        name: 'CstmApplVerID',\n        abbrName: 'CstmApplVerID',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '16',\n        description: 'Specifies a custom extension to a message being applied at the message level. Enumerated field',\n    },\n    {\n        id: 1130,\n        name: 'RefApplVerID',\n        abbrName: 'RefApplVerID',\n        type: 'ApplVerIDCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '16',\n        description:\n            'Specifies the service pack release being applied to a message at the session level. Enumerated field with values assigned at time of service pack release. Uses same values as ApplVerID',\n    },\n    {\n        id: 1131,\n        name: 'RefCstmApplVerID',\n        abbrName: 'RefCstmApplVerID',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '16',\n        description: 'Specifies a custom extension to a message being applied at the session level.',\n    },\n    {\n        id: 1132,\n        name: 'TZTransactTime',\n        abbrName: 'TZTransactTime',\n        type: 'TZTimestamp',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Transact time in the local date-time stamp with a TZ offset to UTC identified',\n    },\n    {\n        id: 1133,\n        name: 'ExDestinationIDSource',\n        abbrName: 'ExDestIDSrc',\n        type: 'ExDestinationIDSourceCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'The ID source of ExDestination',\n    },\n    {\n        id: 1134,\n        name: 'ReportedPxDiff',\n        abbrName: 'ReportedPxDiff',\n        type: 'Boolean',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description:\n            'Indicates that the reported price that is different from the market price. The price difference should be stated by using field 828 TrdType and, if required, field 829 TrdSubType',\n    },\n    {\n        id: 1135,\n        name: 'RptSys',\n        abbrName: 'RptSys',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '26',\n        description: 'Indicates the system or medium on which the report has been published',\n    },\n    {\n        id: 1136,\n        name: 'AllocClearingFeeIndicator',\n        abbrName: 'ClrFeeInd',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '25',\n        description: 'ClearingFeeIndicator(635) for Allocation, see ClearingFeeIndicator(635) for permitted values.',\n    },\n    {\n        id: 1137,\n        name: 'DefaultApplVerID',\n        abbrName: 'DefApplVerID',\n        type: 'ApplVerIDCodeSet',\n        added: 'FIX.4.4',\n        addedEP: '16',\n        description:\n            'Specifies the service pack release being applied, by default, to message at the session level. Enumerated field with values assigned at time of service pack release. Uses same values as ApplVerID',\n    },\n    {\n        id: 1138,\n        name: 'DisplayQty',\n        abbrName: 'DisplayQty',\n        type: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '22',\n        description:\n            'The quantity to be displayed . Required for reserve orders. On orders specifies the qty to be displayed, on execution reports the currently displayed quantity.',\n    },\n    {\n        id: 1139,\n        name: 'ExchangeSpecialInstructions',\n        abbrName: 'ExchSpeclInstr',\n        type: 'String',\n        added: 'FIX.4.4',\n        addedEP: '29',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description: 'Free format text string related to exchange.',\n    },\n    {\n        id: 1140,\n        name: 'MaxTradeVol',\n        abbrName: 'MaxTrdVol',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '42',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '130',\n        description:\n            'The maximum order quantity (as expressed by TradeVolType(1786)) that can be submitted for a security.',\n    },\n    {\n        id: 1141,\n        name: 'NoMDFeedTypes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '42',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'The number of feed types and corresponding book depths associated with a security',\n    },\n    {\n        id: 1142,\n        name: 'MatchAlgorithm',\n        abbrName: 'MtchAlgo',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description:\n            'The types of algorithm used to match orders in a specific security. Possilbe value types are FIFO, Allocation, Pro-rata, Lead Market Maker, Currency Calender.',\n    },\n    {\n        id: 1143,\n        name: 'MaxPriceVariation',\n        abbrName: 'MxPxVar',\n        type: 'float',\n        added: 'FIX.5.0',\n        addedEP: '42',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description:\n            'The maximum price variation of an execution from one event to the next for a given security. Expressed in absolute price terms.',\n    },\n    {\n        id: 1144,\n        name: 'ImpliedMarketIndicator',\n        abbrName: 'ImpldMktInd',\n        type: 'ImpliedMarketIndicatorCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description:\n            'Indicates that an implied market should be created for either the legs of a multi-leg instrument (Implied-in) or for the multi-leg instrument based on the existence of the legs (Implied-out). Determination as to whether implied markets should be created is generally done at the level of the multi-leg instrument. Commonly used in listed derivatives.',\n    },\n    {\n        id: 1145,\n        name: 'EventTime',\n        abbrName: 'Tm',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description: 'Specific time of event. To be used in combination with EventDate [866]',\n    },\n    {\n        id: 1146,\n        name: 'MinPriceIncrementAmount',\n        abbrName: 'MinPxIncrAmt',\n        type: 'Amt',\n        added: 'FIX.5.0',\n        addedEP: '42',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Minimum price increment amount associated with MinPriceIncrement(969). For listed derivatives, the value can be calculated by multiplying MinPriceIncrement(969) with ContractMultiplier(231).',\n    },\n    {\n        id: 1147,\n        name: 'UnitOfMeasureQty',\n        abbrName: 'UOMQty',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description:\n            'Used to indicate the quantity of the underlying commodity unit of measure on which the contract is based, such as, 2500 lbs of lean cattle, 1000 barrels of crude oil, 1000 bushels of corn, etc. UnitOfMeasureQty is required for UnitOfMeasure(996) Variable Quantity UOMs enumerations. Refer to the definition of UnitOfMeasure(996) for more information on the use of UnitOfMeasureQty.',\n    },\n    {\n        id: 1148,\n        name: 'LowLimitPrice',\n        abbrName: 'LowLmtPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description:\n            'Allowable low limit price for the trading day. A key parameter in validating order price. Used as the lower band for validating order prices. Orders submitted with prices below the lower limit will be rejected',\n    },\n    {\n        id: 1149,\n        name: 'HighLimitPrice',\n        abbrName: 'HiLmtPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '42',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '76',\n        description:\n            'Allowable high limit price for the trading day. A key parameter in validating order price. Used as the upper band for validating order prices. Orders submitted with prices above the upper limit will be rejected',\n    },\n    {\n        id: 1150,\n        name: 'TradingReferencePrice',\n        abbrName: 'TrdgRefPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description:\n            'Reference price for the current trading price range usually representing the mid price between the HighLimitPrice and LowLimitPrice. The value may be the settlement price or closing price of the prior trading day.',\n    },\n    {\n        id: 1151,\n        name: 'SecurityGroup',\n        abbrName: 'SecGrp',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '42',\n        description:\n            'An exchange specific name assigned to a group of related securities which may be concurrently affected by market events and actions.',\n    },\n    {\n        id: 1152,\n        name: 'LegNumber',\n        abbrName: 'LegNo',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Allow sequencing of Legs for a Strategy to be captured',\n    },\n    {\n        id: 1153,\n        name: 'SettlementCycleNo',\n        abbrName: 'CycleNo',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Settlement cycle in which the settlement obligation was generated',\n    },\n    {\n        id: 1154,\n        name: 'SideCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Used to identify the trading currency on the Trade Capture Report Side',\n    },\n    {\n        id: 1155,\n        name: 'SideSettlCurrency',\n        abbrName: 'SettlCcy',\n        type: 'Currency',\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Used to identify the settlement currency on the Trade Capture Report Side',\n    },\n    {\n        id: 1156,\n        name: 'ApplExtID',\n        abbrName: 'ApplExtID',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'The extension pack number associated with an application message.',\n    },\n    {\n        id: 1157,\n        name: 'CcyAmt',\n        abbrName: 'CcyAmt',\n        type: 'Amt',\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Net flow of Currency 1',\n    },\n    {\n        id: 1158,\n        name: 'NoSettlDetails',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '44',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Used to group Each Settlement Party',\n    },\n    {\n        id: 1159,\n        name: 'SettlObligMode',\n        abbrName: 'SettlMode',\n        type: 'SettlObligModeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description:\n            'Used to identify the reporting mode of the settlement obligation which is either preliminary or final',\n    },\n    {\n        id: 1160,\n        name: 'SettlObligMsgID',\n        abbrName: 'SettlMsgID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Message identifier for Settlement Obligation Report',\n    },\n    {\n        id: 1161,\n        name: 'SettlObligID',\n        abbrName: 'SettlID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Unique ID for this settlement instruction.',\n    },\n    {\n        id: 1162,\n        name: 'SettlObligTransType',\n        abbrName: 'SettlTransTyp',\n        type: 'SettlObligTransTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Transaction Type - required except where SettlInstMode is 5=Reject SSI request',\n    },\n    {\n        id: 1163,\n        name: 'SettlObligRefID',\n        abbrName: 'SettlRefID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Required where SettlInstTransType is Cancel or Replace',\n    },\n    {\n        id: 1164,\n        name: 'SettlObligSource',\n        abbrName: 'SettlSrc',\n        type: 'SettlObligSourceCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '44',\n        description: 'Used to identify whether these delivery instructions are for the buyside or the sellside.',\n    },\n    {\n        id: 1165,\n        name: 'NoSettlOblig',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '44',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of settlement obligations',\n    },\n    {\n        id: 1166,\n        name: 'QuoteMsgID',\n        abbrName: 'QtMsgID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Unique identifier for a quote message.',\n    },\n    {\n        id: 1167,\n        name: 'QuoteEntryStatus',\n        abbrName: 'QtEntSts',\n        type: 'QuoteEntryStatusCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '45',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        description:\n            'Identifies the status of an individual quote. See also QuoteStatus(297) which is used for single Quotes.',\n    },\n    {\n        id: 1168,\n        name: 'TotNoCxldQuotes',\n        abbrName: 'TotNoCxldQts',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Specifies the number of canceled quotes',\n    },\n    {\n        id: 1169,\n        name: 'TotNoAccQuotes',\n        abbrName: 'TotNoAccQts',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Specifies the number of accepted quotes',\n    },\n    {\n        id: 1170,\n        name: 'TotNoRejQuotes',\n        abbrName: 'TotNoRejQts',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '45',\n        description: 'Specifies the number of rejected quotes',\n    },\n    {\n        id: 1171,\n        name: 'PrivateQuote',\n        abbrName: 'PrvtQt',\n        type: 'PrivateQuoteCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '46',\n        description:\n            'Specifies whether a quote is public, i.e. available to the market, or private, i.e. available to a specified counterparty only.',\n    },\n    {\n        id: 1172,\n        name: 'RespondentType',\n        abbrName: 'RspdntTyp',\n        type: 'RespondentTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '46',\n        description: 'Specifies the type of respondents requested.',\n    },\n    {\n        id: 1173,\n        name: 'MDSubBookType',\n        abbrName: 'MDSubBkTyp',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description:\n            'Describes a class of sub book, e.g. for the separation of various lot types. The Sub Book Type indicates that the following Market Data Entries belong to a non-integrated Sub Book. Whenever provided the Sub Book must be used together with MDPriceLevel and MDEntryPositionNo in order to sort the order properly.\\n\\nValues are bilaterally agreed.',\n    },\n    {\n        id: 1174,\n        name: 'SecurityTradingEvent',\n        abbrName: 'SecTrdEvnt',\n        type: 'SecurityTradingEventCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description:\n            'Identifies an event related to a SecurityTradingStatus(326). An event occurs and is gone, it is not a state that applies for a period of time.',\n    },\n    {\n        id: 1175,\n        name: 'NoStatsIndicators',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '47',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of statistics indicator repeating group entries',\n    },\n    {\n        id: 1176,\n        name: 'StatsType',\n        abbrName: 'StatsTyp',\n        type: 'StatsTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Type of statistics',\n    },\n    {\n        id: 1177,\n        name: 'NoOfSecSizes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '47',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'The number of secondary sizes specifies in this entry',\n    },\n    {\n        id: 1178,\n        name: 'MDSecSizeType',\n        abbrName: 'MDSecSizeType',\n        type: 'MDSecSizeTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description: 'Specifies the type of secondary size.',\n    },\n    {\n        id: 1179,\n        name: 'MDSecSize',\n        abbrName: 'MDSecSize',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '47',\n        description:\n            'A part of the MDEntrySize(271) that represents secondary interest as specified by MDSecSizeType(1178).',\n    },\n    {\n        id: 1180,\n        name: 'ApplID',\n        abbrName: 'ApplID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '48',\n        description:\n            'Identifies the application with which a message is associated. Used only if application sequencing is in effect.',\n    },\n    {\n        id: 1181,\n        name: 'ApplSeqNum',\n        abbrName: 'ApplSeqNum',\n        type: 'SeqNum',\n        added: 'FIX.5.0',\n        addedEP: '48',\n        description: 'Data sequence number to be used when FIX session is not in effect',\n    },\n    {\n        id: 1182,\n        name: 'ApplBegSeqNum',\n        abbrName: 'ApplBegSeqNum',\n        type: 'SeqNum',\n        added: 'FIX.5.0',\n        addedEP: '48',\n        description: 'Beginning range of application sequence numbers',\n    },\n    {\n        id: 1183,\n        name: 'ApplEndSeqNum',\n        abbrName: 'ApplEndSeq',\n        type: 'SeqNum',\n        added: 'FIX.5.0',\n        addedEP: '48',\n        description: 'Ending range of application sequence numbers',\n    },\n    {\n        id: 1184,\n        name: 'SecurityXMLLen',\n        abbrName: 'SecXMLLen',\n        type: 'Length',\n        added: 'FIX.5.0',\n        addedEP: '49',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '145',\n        description: 'The length of the SecurityXML(1185) data block.',\n    },\n    {\n        id: 1185,\n        name: 'SecurityXML',\n        abbrName: 'SecXML',\n        type: 'XMLData',\n        lengthId: '1184',\n        added: 'FIX.5.0',\n        addedEP: '49',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'XML definition for the security.',\n    },\n    {\n        id: 1186,\n        name: 'SecurityXMLSchema',\n        abbrName: 'Schema',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '49',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '145',\n        description: 'The schema used to validate the contents of SecurityXML(1185).',\n    },\n    {\n        id: 1187,\n        name: 'RefreshIndicator',\n        abbrName: 'RefInd',\n        type: 'Boolean',\n        added: 'FIX.5.0',\n        addedEP: '50',\n        description:\n            \"Set by the sender to tell the receiver to perform an immediate refresh of the book due to disruptions in the accompanying real-time feed\\n\\n'Y' - Mandatory refresh by all participants\\n\\n'N' - Process as required\",\n    },\n    {\n        id: 1188,\n        name: 'Volatility',\n        abbrName: 'Vol',\n        type: 'float',\n        added: 'FIX.5.0',\n        addedEP: '51',\n        description: 'Annualized volatility for option model calculations',\n    },\n    {\n        id: 1189,\n        name: 'TimeToExpiration',\n        abbrName: 'TmToExp',\n        type: 'float',\n        added: 'FIX.5.0',\n        addedEP: '51',\n        description:\n            'Time to expiration in years calculated as the number of days remaining to expiration divided by 365 days per year.',\n    },\n    {\n        id: 1190,\n        name: 'RiskFreeRate',\n        abbrName: 'RFR',\n        type: 'float',\n        added: 'FIX.5.0',\n        addedEP: '51',\n        description: 'Interest rate. Usually some form of short term rate.',\n    },\n    {\n        id: 1191,\n        name: 'PriceUnitOfMeasure',\n        abbrName: 'PxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description:\n            'Used to express the UOM of the price if different from the contract. In futures, this can be different for cross-rate products in which the price is quoted in units differently from the contract',\n    },\n    {\n        id: 1192,\n        name: 'PriceUnitOfMeasureQty',\n        abbrName: 'PxUOMQty',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description:\n            'Used to express the UOM Quantity of the price if different from the contract. In futures, this can be different for physically delivered products in which price is quoted in a unit size different from the contract, i.e. a Cattle Future contract has a UOMQty of 40,000 and a PriceUOMQty of 100.',\n    },\n    {\n        id: 1193,\n        name: 'SettlMethod',\n        abbrName: 'SettlMeth',\n        type: 'SettlMethodCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'Settlement method for a contract or instrument. Additional values may be used with bilateral agreement.',\n    },\n    {\n        id: 1194,\n        name: 'ExerciseStyle',\n        abbrName: 'ExerStyle',\n        type: 'ExerciseStyleCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '161',\n        description: 'Type of exercise of a derivatives security',\n    },\n    {\n        id: 1195,\n        name: 'OptPayoutAmount',\n        abbrName: 'OptPayAmt',\n        type: 'Amt',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'Cash amount indicating the pay out associated with an option. For binary options this is a fixed amount.',\n    },\n    {\n        id: 1196,\n        name: 'PriceQuoteMethod',\n        abbrName: 'PxQteMeth',\n        type: 'PriceQuoteMethodCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Method for price quotation',\n    },\n    {\n        id: 1197,\n        name: 'ValuationMethod',\n        abbrName: 'ValMeth',\n        type: 'ValuationMethodCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '83',\n        description: 'Specifies the type of valuation method applied.',\n    },\n    {\n        id: 1198,\n        name: 'ListMethod',\n        abbrName: 'ListMeth',\n        type: 'ListMethodCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Indicates whether instruments are pre-listed only or can also be defined via user request',\n    },\n    {\n        id: 1199,\n        name: 'CapPrice',\n        abbrName: 'CapPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Used to express the ceiling price of a capped call',\n    },\n    {\n        id: 1200,\n        name: 'FloorPrice',\n        abbrName: 'FlrPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Used to express the floor price of a capped put',\n    },\n    {\n        id: 1201,\n        name: 'NoStrikeRules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description:\n            'Number of strike rule entries. This block specifies the rules for determining how new strikes should be listed within the stated price range of the underlying instrument',\n    },\n    {\n        id: 1202,\n        name: 'StartStrikePxRange',\n        abbrName: 'StartStrkPxRng',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description:\n            'Starting price for the range to which the StrikeIncrement applies. Price refers to the price of the underlying',\n    },\n    {\n        id: 1203,\n        name: 'EndStrikePxRange',\n        abbrName: 'EndStrkPxRng',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description:\n            'Ending price of the range to which the StrikeIncrement applies. Price refers to the price of the underlying',\n    },\n    {\n        id: 1204,\n        name: 'StrikeIncrement',\n        abbrName: 'StrkIncr',\n        type: 'float',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Value by which strike price should be incremented within the specified price range.',\n    },\n    {\n        id: 1205,\n        name: 'NoTickRules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description:\n            'Number of tick rules. This block specifies the rules for determining how a security ticks, i.e. the price increments at which it can be quoted and traded, depending on the current price of the security',\n    },\n    {\n        id: 1206,\n        name: 'StartTickPriceRange',\n        abbrName: 'StartTickPxRng',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Starting price range for specified tick increment',\n    },\n    {\n        id: 1207,\n        name: 'EndTickPriceRange',\n        abbrName: 'EndTickPxRng',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Ending price range for the specified tick increment',\n    },\n    {\n        id: 1208,\n        name: 'TickIncrement',\n        abbrName: 'TickIncr',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description:\n            'Tick increment for stated price range. Specifies the valid price increments at which a security can be quoted and traded',\n    },\n    {\n        id: 1209,\n        name: 'TickRuleType',\n        abbrName: 'TickRuleTyp',\n        type: 'TickRuleTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Specifies the type of tick rule which is being described',\n    },\n    {\n        id: 1210,\n        name: 'NestedInstrAttribType',\n        abbrName: 'Typ',\n        type: 'InstrAttribTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Code to represent the type of instrument attribute',\n    },\n    {\n        id: 1211,\n        name: 'NestedInstrAttribValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Attribute value appropriate to the NestedInstrAttribType field',\n    },\n    {\n        id: 1212,\n        name: 'LegMaturityTime',\n        abbrName: 'MatTm',\n        type: 'TZTimeOnly',\n        added: 'FIX.5.0',\n        addedEP: '41',\n        description: \"Time of security's maturity expressed in local time with offset to UTC specified\",\n    },\n    {\n        id: 1213,\n        name: 'UnderlyingMaturityTime',\n        abbrName: 'MatTm',\n        type: 'TZTimeOnly',\n        added: 'FIX.5.0',\n        addedEP: '41',\n        description: \"Time of security's maturity expressed in local time with offset to UTC specified\",\n    },\n    {\n        id: 1214,\n        name: 'DerivativeSymbol',\n        abbrName: 'Sym',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Ticker symbol. Common, human understood representation of the security.\\n\\nSee Symbol(55) for complete definition.',\n    },\n    {\n        id: 1215,\n        name: 'DerivativeSymbolSfx',\n        abbrName: 'Sfx',\n        type: 'SymbolSfxCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Additional information about the security (e.g. preferred, warrants, etc.).\\n\\nSee SymbolSfx(65) for complete definition.',\n    },\n    {\n        id: 1216,\n        name: 'DerivativeSecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1217',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Security identifier value (e.g. CUSIP, SEDOL, ISIN, etc).\\n\\nRequires DerivativeSecurityIDSource(1217).\\n\\nSee SecurityID(48) for complete definition.',\n    },\n    {\n        id: 1217,\n        name: 'DerivativeSecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Identifies class or source of the DerivativeSecurityID(1217) value.\\n\\nSee SecurityIDSource(22) for complete definition.',\n    },\n    {\n        id: 1218,\n        name: 'NoDerivativeSecurityAltID',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of alternate derivative security IDs.',\n    },\n    {\n        id: 1219,\n        name: 'DerivativeSecurityAltID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1220',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Alternate derivative security identifier value of DerivativeSecurityAltIDSource(1220) type.\\n\\nRequires DerivativeSecurityAltIDSource(1220).',\n    },\n    {\n        id: 1220,\n        name: 'DerivativeSecurityAltIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Identifies class or source of the DerivativeSecurityAltID(1219) value.',\n    },\n    {\n        id: 1221,\n        name: 'SecondaryLowLimitPrice',\n        abbrName: 'LowLmtPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Refer to definition of LowLimitPrice(1148)',\n    },\n    {\n        id: 1222,\n        name: 'MaturityRuleID',\n        abbrName: 'MatRuleID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description:\n            'Allows maturity rule to be referenced via an identifier so that rules do not need to be explicitly enumerated',\n    },\n    {\n        id: 1223,\n        name: 'StrikeRuleID',\n        abbrName: 'StrkRule',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description:\n            'Allows strike rule to be referenced via an identifier so that rules do not need to be explicitly enumerated',\n    },\n    {\n        id: 1224,\n        name: 'LegUnitOfMeasureQty',\n        abbrName: 'UOMQty',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Refer to definition of UnitOfMeasureQty(1147)',\n    },\n    {\n        id: 1225,\n        name: 'DerivativeOptPayoutAmount',\n        abbrName: 'OptPayAmt',\n        type: 'Amt',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'Cash amount indicating the pay out associated with an option. For binary options this is a fixed amount.\\n\\nSee OptPayoutAmount(1195) for complete definition.',\n    },\n    {\n        id: 1226,\n        name: 'EndMaturityMonthYear',\n        abbrName: 'EndMMY',\n        type: 'MonthYear',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Ending maturity month year for an option class',\n    },\n    {\n        id: 1227,\n        name: 'ProductComplex',\n        abbrName: 'ProdCmplx',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description:\n            'Identifies an entire suite of products for a given market. In Futures this may be \"interest rates\", \"agricultural\", \"equity indexes\", etc.',\n    },\n    {\n        id: 1228,\n        name: 'DerivativeProductComplex',\n        abbrName: 'ProdCmplx',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Identifies an entire suite of products for a given market.\\n\\nSee ProductComplex(1227) for complete definition.',\n    },\n    {\n        id: 1229,\n        name: 'MaturityMonthYearIncrement',\n        abbrName: 'MMYIncr',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Increment between successive maturities for an option class',\n    },\n    {\n        id: 1230,\n        name: 'SecondaryHighLimitPrice',\n        abbrName: 'HiLmtPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Refer to definition of HighLimitPrice(1149)',\n    },\n    {\n        id: 1231,\n        name: 'MinLotSize',\n        abbrName: 'MinLotSz',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Minimum lot size allowed based on lot type specified in LotType(1093)',\n    },\n    {\n        id: 1232,\n        name: 'NoExecInstRules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of execution instructions',\n    },\n    {\n        id: 1233,\n        name: 'CommRate',\n        abbrName: 'Rt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description:\n            'The commission rate when Commission(12) is based on a percentage of quantity, amount per unit or a factor of \"unit of measure\". If the rate is a percentage, use the decimalized form, e.g. \"0.05\" for a 5% commission or \"0.005\" for 50 basis points.',\n    },\n    {\n        id: 1234,\n        name: 'NoLotTypeRules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of Lot Type Rules',\n    },\n    {\n        id: 1235,\n        name: 'NoMatchRules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of Match Rules',\n    },\n    {\n        id: 1236,\n        name: 'NoMaturityRules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of maturity rules in MarurityRules component block',\n    },\n    {\n        id: 1237,\n        name: 'NoOrdTypeRules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of order types',\n    },\n    {\n        id: 1238,\n        name: 'CommUnitOfMeasure',\n        abbrName: 'UOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'The commission rate unit of measure.',\n    },\n    {\n        id: 1239,\n        name: 'NoTimeInForceRules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of time in force techniques',\n    },\n    {\n        id: 1240,\n        name: 'SecondaryTradingReferencePrice',\n        abbrName: 'TrdgRefPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Refer to definition for TradingReferencePrice(1150)',\n    },\n    {\n        id: 1241,\n        name: 'StartMaturityMonthYear',\n        abbrName: 'StartMMY',\n        type: 'MonthYear',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Starting maturity month year for an option class',\n    },\n    {\n        id: 1242,\n        name: 'FlexProductEligibilityIndicator',\n        abbrName: 'FlexProdElig',\n        type: 'Boolean',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Used to indicate if a product or group of product supports the creation of flexible securities',\n    },\n    {\n        id: 1243,\n        name: 'DerivFlexProductEligibilityIndicator',\n        abbrName: 'FlexProdElig',\n        type: 'Boolean',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Used to indicate if a product or group of product supports the creation of flexible securities.\\n\\nSee FlexProductEligibilityIndicator(1242) for complete definition.',\n    },\n    {\n        id: 1244,\n        name: 'FlexibleIndicator',\n        abbrName: 'FlexInd',\n        type: 'Boolean',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description:\n            'Used to indicate a derivatives security that can be defined using flexible terms. The terms commonly permitted to be defined by market participants are expiration date and strike price. FlexibleIndicator is an alternative CFICode(461) Standard/Non-standard attribute.',\n    },\n    {\n        id: 1245,\n        name: 'TradingCurrency',\n        abbrName: 'TrdCcy',\n        type: 'Currency',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Used when the trading currency can differ from the price currency',\n    },\n    {\n        id: 1246,\n        name: 'DerivativeProduct',\n        abbrName: 'Prod',\n        type: 'ProductCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'The type of product the security is associated with.\\n\\nSee Product(460) for complete definition.',\n    },\n    {\n        id: 1247,\n        name: 'DerivativeSecurityGroup',\n        abbrName: 'SecGrp',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'An exchange specific name assigned to a group of related securities which may be concurrently affected by market events and actions.\\n\\nSee SecurityGroup(1151) for complete definition.',\n    },\n    {\n        id: 1248,\n        name: 'DerivativeCFICode',\n        abbrName: 'CFI',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'The type of security using ISO 10962 standard, Classification of Financial Instruments (CFI code) values.\\n\\nSee CFICode(461) for complete definition.',\n    },\n    {\n        id: 1249,\n        name: 'DerivativeSecurityType',\n        abbrName: 'SecTyp',\n        type: 'SecurityTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'The type of security.\\n\\nSee SecurityType(167) for complete definition.',\n    },\n    {\n        id: 1250,\n        name: 'DerivativeSecuritySubType',\n        abbrName: 'SecSubTyp',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Sub-type qualification/identification of the security type.\\n\\nSee SecuritySubType(762) for complete definition.',\n    },\n    {\n        id: 1251,\n        name: 'DerivativeMaturityMonthYear',\n        abbrName: 'MMY',\n        type: 'MonthYear',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Month and Year of the maturity (used for standardized futures and options).\\n\\nSee MaturityMonthYear(200) for complete definition.',\n    },\n    {\n        id: 1252,\n        name: 'DerivativeMaturityDate',\n        abbrName: 'MatDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Date of maturity.\\n\\nSee MaturityDate(541) for complete definition.',\n    },\n    {\n        id: 1253,\n        name: 'DerivativeMaturityTime',\n        abbrName: 'MatTm',\n        type: 'TZTimeOnly',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            \"Time of security's maturity expressed in local time with offset to UTC specified.\\n\\nSee MaturityTime(1079) for complete definition.\",\n    },\n    {\n        id: 1254,\n        name: 'DerivativeSettleOnOpenFlag',\n        abbrName: 'SettlOnOpenFlag',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'Indicator to determine if instrument is settle on open.\\n\\nSee SettleOnOpenFlag(966) for complete definition.',\n    },\n    {\n        id: 1255,\n        name: 'DerivativeInstrmtAssignmentMethod',\n        abbrName: 'AsgnMeth',\n        type: 'InstrmtAssignmentMethodCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Method under which assignment was conducted.\\n\\nSee InstrmtAssignmentMethod(1049) for complete definition.',\n    },\n    {\n        id: 1256,\n        name: 'DerivativeSecurityStatus',\n        abbrName: 'Status',\n        type: 'SecurityStatusCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Indicates the current state of the derivative instrument.\\n\\nSee SecurityStatus(965) for complete definition.',\n    },\n    {\n        id: 1257,\n        name: 'DerivativeInstrRegistry',\n        abbrName: 'Rgstry',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Values may include BIC for the depository or custodian who maintain ownership records, the ISO country code for the location of the record, or the value ZZ to specify physical ownership of the security (e.g. stock certificate).\\n\\nSee InstrRegistry(543) for complete definition.',\n    },\n    {\n        id: 1258,\n        name: 'DerivativeCountryOfIssue',\n        abbrName: 'Ctry',\n        type: 'Country',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'ISO Country code of instrument issue (e.g. the country portion typically used in ISIN).\\n\\nSee CountryOfIssue(470) for complete definition.',\n    },\n    {\n        id: 1259,\n        name: 'DerivativeStateOrProvinceOfIssue',\n        abbrName: 'StPrv',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'A two-character state or province abbreviation.\\n\\nSee StateOrProvinceOfIssue(471) for complete definition.',\n    },\n    {\n        id: 1260,\n        name: 'DerivativeLocaleOfIssue',\n        abbrName: 'Lcl',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Identifies the locale or region of issue.\\n\\nSee LocaleOfIssue(472) for complete definition.',\n    },\n    {\n        id: 1261,\n        name: 'DerivativeStrikePrice',\n        abbrName: 'StrkPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Strike price for an option.\\n\\nSee StrikePrice(202) for complete definition.',\n    },\n    {\n        id: 1262,\n        name: 'DerivativeStrikeCurrency',\n        abbrName: 'StrkCcy',\n        type: 'Currency',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Currency in which the strike price is denominated.\\n\\nSee StrikeCurrency(947) for complete definition.',\n    },\n    {\n        id: 1263,\n        name: 'DerivativeStrikeMultiplier',\n        abbrName: 'StrkMult',\n        type: 'float',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Multiplier applied to the strike price for the purpose of calculating the settlement value.\\n\\nSee StrikeMultiplier(967) for complete definition.',\n    },\n    {\n        id: 1264,\n        name: 'DerivativeStrikeValue',\n        abbrName: 'StrkValu',\n        type: 'float',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'The number of shares/units for the financial instrument involved in the option trade.\\n\\nSee StrikeValue(968) for complete definition.',\n    },\n    {\n        id: 1265,\n        name: 'DerivativeOptAttribute',\n        abbrName: 'OptAt',\n        type: 'char',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Provided to support versioning of option contracts as a result of corporate actions or events. Use of this field is defined by counterparty agreement or market conventions.\\n\\nSee OptAttribute(206) for complete definition.',\n    },\n    {\n        id: 1266,\n        name: 'DerivativeContractMultiplier',\n        abbrName: 'Mult',\n        type: 'float',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Specifies the ratio or multiply factor to convert from nominal units (e.g. contracts) to total units (e.g. shares) (e.g. 1.0, 100, 1000, etc.).\\n\\nSee ContractMultiplier(231) for complete definition.',\n    },\n    {\n        id: 1267,\n        name: 'DerivativeMinPriceIncrement',\n        abbrName: 'MinPxIncr',\n        type: 'float',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Minimum price increase for a given exchange-traded Instrument.\\n\\nSee MinPriceIncrement(969) for complete definition.',\n    },\n    {\n        id: 1268,\n        name: 'DerivativeMinPriceIncrementAmount',\n        abbrName: 'MinPxIncrAmt',\n        type: 'Amt',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Minimum price increment amount associated with the minimum price increment.\\n\\nSee MinPriceIncrementAmount(1146) for complete definition.',\n    },\n    {\n        id: 1269,\n        name: 'DerivativeUnitOfMeasure',\n        abbrName: 'UOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'The unit of measure of the underlying commodity upon which the contract is based.\\n\\nSee UnitOfMeasure(996) for complete definition.',\n    },\n    {\n        id: 1270,\n        name: 'DerivativeUnitOfMeasureQty',\n        abbrName: 'UOMQty',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Used to indicate the quantity of the underlying commodity unit of measure on which the contract is based.\\n\\nSee UnitOfMeasureQty(1147) for complete definition.',\n    },\n    {\n        id: 1271,\n        name: 'DerivativeTimeUnit',\n        abbrName: 'TmUnit',\n        type: 'TimeUnitCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Unit of time associated with the contract.\\n\\nNOTE: Additional values may be used by mutual agreement of the counterparties.\\n\\nSee TimeUnit(997) for complete definition.',\n    },\n    {\n        id: 1272,\n        name: 'DerivativeSecurityExchange',\n        abbrName: 'Exch',\n        type: 'Exchange',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Market used to help identify a security.\\n\\nSee SecurityExchange(207) for complete definition.',\n    },\n    {\n        id: 1273,\n        name: 'DerivativePositionLimit',\n        abbrName: 'PosLmt',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Position limit for a given exchange-traded product.\\n\\nSee PositionLimit(970) for complete definition.',\n    },\n    {\n        id: 1274,\n        name: 'DerivativeNTPositionLimit',\n        abbrName: 'NTPosLmt',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Position limit in the near-term contract for a given exchange-traded product.\\n\\nSee NTPositionLimit(971) for complete definition.',\n    },\n    {\n        id: 1275,\n        name: 'DerivativeIssuer',\n        abbrName: 'Issr',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Name of security issuer.\\n\\nSee Issuer(106) for complete definition.',\n    },\n    {\n        id: 1276,\n        name: 'DerivativeIssueDate',\n        abbrName: 'IssDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'The date on which the security is issued.\\n\\nSee IssueDate(225) for complete definition.',\n    },\n    {\n        id: 1277,\n        name: 'DerivativeEncodedIssuerLen',\n        abbrName: 'EncIssrLen',\n        type: 'Length',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Byte length of encoded (non-ASCII characters) DerivativeEncodedSecurityDesc (1281) field.\\n\\nSee EncodedIssuerLen(348) for complete definition.',\n    },\n    {\n        id: 1278,\n        name: 'DerivativeEncodedIssuer',\n        abbrName: 'EncIssr',\n        type: 'data',\n        lengthId: '1277',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Encoded (non-ASCII characters) representation of the DerivativeIssuer(1275) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the DerivativeIssuer(1275) field.\\n\\nSee EncodedIssuer(349) for complete definition.',\n    },\n    {\n        id: 1279,\n        name: 'DerivativeSecurityDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Can be used by the venue or one of the trading parties to provide a non-normative textual description for the financial instrument.\\n\\nSee SecurityDesc(107) for complete definition.',\n    },\n    {\n        id: 1280,\n        name: 'DerivativeEncodedSecurityDescLen',\n        abbrName: 'EncSecDescLen',\n        type: 'Length',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Byte length of encoded (non-ASCII characters) DerivativeEncodedSecurityDesc (1281) field.\\n\\nSee EncodedSecurityDescLen(350) for complete definition.',\n    },\n    {\n        id: 1281,\n        name: 'DerivativeEncodedSecurityDesc',\n        abbrName: 'EncSecDesc',\n        type: 'data',\n        lengthId: '1280',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Encoded (non-ASCII characters) representation of the DerivativeSecurityDesc(1279) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the DerivativeSecurityDesc(1279) field.\\n\\nSee EncodedSecurityDesc(351) for complete definition.',\n    },\n    {\n        id: 1282,\n        name: 'DerivativeSecurityXMLLen',\n        abbrName: 'SecXMLLen',\n        type: 'Length',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'The length of the DerivativeSecurityXML(1283) data block.\\n\\nSee SecurityXMLLen(1184) for complete definition.',\n    },\n    {\n        id: 1283,\n        name: 'DerivativeSecurityXML',\n        abbrName: 'SecXML',\n        type: 'XMLData',\n        lengthId: '1282',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'XML definition for the security.\\n\\nSee SecurityXML(1185) for complete definition.',\n    },\n    {\n        id: 1284,\n        name: 'DerivativeSecurityXMLSchema',\n        abbrName: 'Schema',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'The schema used to validate the contents of DerivativeSecurityXML(1283).\\n\\nSee SecurityXMLSchema(1186) for complete definition.',\n    },\n    {\n        id: 1285,\n        name: 'DerivativeContractSettlMonth',\n        abbrName: 'CSetMo',\n        type: 'MonthYear',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Specifies when the contract (i.e. MBS/TBA) will settle.\\n\\nSee ContractSettlMonth(667) for complete definition.',\n    },\n    {\n        id: 1286,\n        name: 'NoDerivativeEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of repeating DerivativeEventType entries.',\n    },\n    {\n        id: 1287,\n        name: 'DerivativeEventType',\n        abbrName: 'EventTyp',\n        type: 'EventTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Code to represent the type of event.\\n\\nSee EventType(865) for complete definition.',\n    },\n    {\n        id: 1288,\n        name: 'DerivativeEventDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Date of event.\\n\\nSee EventDate(866) for complete definition.',\n    },\n    {\n        id: 1289,\n        name: 'DerivativeEventTime',\n        abbrName: 'Tm',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Specific time of event. To be used in combination with DerivativeEventDate(1288).\\n\\nSee EventTime(1145) for complete definition.',\n    },\n    {\n        id: 1290,\n        name: 'DerivativeEventPx',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Predetermined price of issue at event.\\n\\nSee EventPx(867) for complete definition.',\n    },\n    {\n        id: 1291,\n        name: 'DerivativeEventText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Comments related to the event.\\n\\nSee EventText(868) for complete definition.',\n    },\n    {\n        id: 1292,\n        name: 'NoDerivativeInstrumentParties',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Number of repeating derivative instrument party entries.',\n    },\n    {\n        id: 1293,\n        name: 'DerivativeInstrumentPartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1294',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Party identifier/code.\\n\\nSee PartyID(448) for complete definition.',\n    },\n    {\n        id: 1294,\n        name: 'DerivativeInstrumentPartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Identifies class or source of the DerivativeInstrumentPartyID (1293) value.\\n\\nRequired if DerivativeInstrumentPartyID(1293) is specified.\\n\\nSee PartyIDSource(447) for complete definition.',\n    },\n    {\n        id: 1295,\n        name: 'DerivativeInstrumentPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Identifies the type or role of the DerivativeInstrumentPartyID (1293) specified.\\n\\nSee PartyRole(452) for complete definition.',\n    },\n    {\n        id: 1296,\n        name: 'NoDerivativeInstrumentPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Number of derivative instrument party sub IDs.',\n    },\n    {\n        id: 1297,\n        name: 'DerivativeInstrumentPartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Party sub-identifier.\\n\\nSee PartySubID(523) for complete definition.',\n    },\n    {\n        id: 1298,\n        name: 'DerivativeInstrumentPartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Type of party sub-identifier.\\n\\nSee PartySubIDType(803) for complete definition.',\n    },\n    {\n        id: 1299,\n        name: 'DerivativeExerciseStyle',\n        abbrName: 'ExerStyle',\n        type: 'ExerciseStyleCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Type of exercise.\\n\\nSee ExerciseStyle(1194) for complete definition.',\n    },\n    {\n        id: 1300,\n        name: 'MarketSegmentID',\n        abbrName: 'MktSegID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Identifies the market segment',\n    },\n    {\n        id: 1301,\n        name: 'MarketID',\n        abbrName: 'MktID',\n        type: 'Exchange',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '190',\n        description: 'Identifies the market',\n    },\n    {\n        id: 1302,\n        name: 'MaturityMonthYearIncrementUnits',\n        abbrName: 'MMYIncrUnits',\n        type: 'MaturityMonthYearIncrementUnitsCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Unit of measure for the Maturity Month Year Increment',\n    },\n    {\n        id: 1303,\n        name: 'MaturityMonthYearFormat',\n        abbrName: 'MMYFmt',\n        type: 'MaturityMonthYearFormatCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Format used to generate the MaturityMonthYear for each option',\n    },\n    {\n        id: 1304,\n        name: 'StrikeExerciseStyle',\n        abbrName: 'StrkExrStyle',\n        type: 'ExerciseStyleCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Expiration Style for an option class:',\n    },\n    {\n        id: 1305,\n        name: 'SecondaryPriceLimitType',\n        abbrName: 'PxLmtTyp',\n        type: 'PriceLimitTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Describes the how the price limits are expressed',\n    },\n    {\n        id: 1306,\n        name: 'PriceLimitType',\n        abbrName: 'PxLmtTyp',\n        type: 'PriceLimitTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Describes the how the price limits are expressed.',\n    },\n    {\n        id: 1308,\n        name: 'ExecInstValue',\n        abbrName: 'ExecInstValu',\n        type: 'ExecInstCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Indicates execution instructions that are valid for the specified market segment',\n    },\n    {\n        id: 1309,\n        name: 'NoTradingSessionRules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Allows trading rules to be expressed by trading session',\n    },\n    {\n        id: 1310,\n        name: 'NoMarketSegments',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Number of Market Segments on which a security may trade.',\n    },\n    {\n        id: 1311,\n        name: 'NoDerivativeInstrAttrib',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Number of instrument attributes.',\n    },\n    { id: 1312, name: 'NoNestedInstrAttrib', type: 'NumInGroup', added: 'FIX.5.0', addedEP: '52' },\n    {\n        id: 1313,\n        name: 'DerivativeInstrAttribType',\n        abbrName: 'Typ',\n        type: 'InstrAttribTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Type of instrument attribute.\\n\\nSee InstrAttribType(871) for complete definition.',\n    },\n    {\n        id: 1314,\n        name: 'DerivativeInstrAttribValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Attribute value appropriate to the DerivativeInstrAttribValue(1313) field.\\n\\nSee InstrAttribValue(872) for complete definition.',\n    },\n    {\n        id: 1315,\n        name: 'DerivativePriceUnitOfMeasure',\n        abbrName: 'PxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Used to express the UOM of the price if different from the contract.\\n\\nSee PriceUnitOfMeasureQty(1191) for complete definition.',\n    },\n    {\n        id: 1316,\n        name: 'DerivativePriceUnitOfMeasureQty',\n        abbrName: 'PxUOMQty',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Used to express the UOM Quantity of the price if different from the contract.\\n\\nSee PriceUnitOfMeasureQty(1192) for complete definition.',\n    },\n    {\n        id: 1317,\n        name: 'DerivativeSettlMethod',\n        abbrName: 'SettlMeth',\n        type: 'SettlMethodCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Settlement method for a contract or instrument.\\n\\nSee SettlMethod(1193) for complete definition.',\n    },\n    {\n        id: 1318,\n        name: 'DerivativePriceQuoteMethod',\n        abbrName: 'PxQteMeth',\n        type: 'PriceQuoteMethodCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Specifies the method for price quotation.\\n\\nSee PriceQuoteMethod(1196) for complete definition.',\n    },\n    {\n        id: 1319,\n        name: 'DerivativeValuationMethod',\n        abbrName: 'ValMeth',\n        type: 'ValuationMethodCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Specifies the method for price quotation.\\n\\nSee ValuationMethod(1197) for complete definition.',\n    },\n    {\n        id: 1320,\n        name: 'DerivativeListMethod',\n        abbrName: 'ListMeth',\n        type: 'ListMethodCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Indicates whether instruments are pre-listed only or can also be defined via user request.\\n\\nSee ListMethod(1198) for complete definition.',\n    },\n    {\n        id: 1321,\n        name: 'DerivativeCapPrice',\n        abbrName: 'CapPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Used to express the ceiling price of a capped call.\\n\\nSee CapPrice(1199) for complete definition.',\n    },\n    {\n        id: 1322,\n        name: 'DerivativeFloorPrice',\n        abbrName: 'FlrPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Used to express the floor price of a capped put.\\n\\nSee FloorPrice(1200) for complete definition.',\n    },\n    {\n        id: 1323,\n        name: 'DerivativePutOrCall',\n        abbrName: 'PutCall',\n        type: 'PutOrCallCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Indicates whether an option contract is a put, call, chooser or undetermined.\\n\\nSee PutOrCall(201) for complete definition.',\n    },\n    {\n        id: 1324,\n        name: 'ListUpdateAction',\n        abbrName: 'ListUpdActn',\n        type: 'ListUpdateActionCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '128',\n        description: 'If provided, then Instrument occurrence has explicitly changed',\n    },\n    {\n        id: 1325,\n        name: 'ParentMktSegmID',\n        abbrName: 'ParentMktSegmID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '53',\n        description: 'Reference to a parent Market Segment. See MarketSegmentID(1300)',\n    },\n    {\n        id: 1326,\n        name: 'TradingSessionDesc',\n        abbrName: 'TradingSessionDesc',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '53',\n        description: 'Trading Session description',\n    },\n    {\n        id: 1327,\n        name: 'TradSesUpdateAction',\n        abbrName: 'TradSesUpdtActn',\n        type: 'SecurityUpdateActionCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '53',\n        description: 'Specifies the action taken for the specified trading sessions.',\n    },\n    {\n        id: 1328,\n        name: 'RejectText',\n        abbrName: 'RejTxt',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '103',\n        description: 'Identifies the reason for rejection.',\n    },\n    {\n        id: 1329,\n        name: 'FeeMultiplier',\n        abbrName: 'FeeMult',\n        type: 'float',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        description:\n            'This is a multiplier that Clearing (Fee system) will use to calculate fees and will be sent to the firms on their confirms.',\n    },\n    {\n        id: 1330,\n        name: 'UnderlyingLegSymbol',\n        abbrName: 'Sym',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition for Symbol(55)',\n    },\n    {\n        id: 1331,\n        name: 'UnderlyingLegSymbolSfx',\n        abbrName: 'Sfx',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition for SymbolSfx(65)',\n    },\n    {\n        id: 1332,\n        name: 'UnderlyingLegSecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1333',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition for SecurityID(48)',\n    },\n    {\n        id: 1333,\n        name: 'UnderlyingLegSecurityIDSource',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition for SecurityIDSource(22)',\n    },\n    {\n        id: 1334,\n        name: 'NoUnderlyingLegSecurityAltID',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Refer to definition for NoSecurityAltID(454)',\n    },\n    {\n        id: 1335,\n        name: 'UnderlyingLegSecurityAltID',\n        abbrName: 'AltID',\n        type: 'String',\n        discriminatorId: '1336',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition for SecurityAltID(455)',\n    },\n    {\n        id: 1336,\n        name: 'UnderlyingLegSecurityAltIDSource',\n        abbrName: 'AltIDSrc',\n        type: 'String',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Refer to definition for SecurityAltIDSource(456)',\n    },\n    {\n        id: 1337,\n        name: 'UnderlyingLegSecurityType',\n        abbrName: 'SecType',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition for SecurityType(167)',\n    },\n    {\n        id: 1338,\n        name: 'UnderlyingLegSecuritySubType',\n        abbrName: 'SubType',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition for SecuritySubType(762)',\n    },\n    {\n        id: 1339,\n        name: 'UnderlyingLegMaturityMonthYear',\n        abbrName: 'MMY',\n        type: 'MonthYear',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition for MaturityMonthYear(200)',\n    },\n    {\n        id: 1340,\n        name: 'UnderlyingLegStrikePrice',\n        abbrName: 'StrkPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition for StrikePrice(202)',\n    },\n    {\n        id: 1341,\n        name: 'UnderlyingLegSecurityExchange',\n        abbrName: 'Exch',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition for SecurityExchange(207)',\n    },\n    {\n        id: 1342,\n        name: 'NoOfLegUnderlyings',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of Underlyings, Identifies the Underlying of the Leg',\n    },\n    {\n        id: 1343,\n        name: 'UnderlyingLegPutOrCall',\n        abbrName: 'PutCall',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition for PutOrCall(201)',\n    },\n    {\n        id: 1344,\n        name: 'UnderlyingLegCFICode',\n        abbrName: 'CFI',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition for CFICode(461)',\n    },\n    {\n        id: 1345,\n        name: 'UnderlyingLegMaturityDate',\n        abbrName: 'MatDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Date of maturity.',\n    },\n    {\n        id: 1346,\n        name: 'ApplReqID',\n        abbrName: 'ApplReqID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Unique identifier for request',\n    },\n    {\n        id: 1347,\n        name: 'ApplReqType',\n        abbrName: 'ApplReqTyp',\n        type: 'ApplReqTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Type of Application Message Request being made.',\n    },\n    {\n        id: 1348,\n        name: 'ApplResponseType',\n        abbrName: 'ApplRespTyp',\n        type: 'ApplResponseTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Used to indicate the type of acknowledgement being sent.',\n    },\n    {\n        id: 1349,\n        name: 'ApplTotalMessageCount',\n        abbrName: 'ApplTotMsgCnt',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Total number of messages included in transmission.',\n    },\n    {\n        id: 1350,\n        name: 'ApplLastSeqNum',\n        abbrName: 'ApplLastSeqNum',\n        type: 'SeqNum',\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Application sequence number of last message in transmission',\n    },\n    {\n        id: 1351,\n        name: 'NoApplIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '63',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Specifies number of application id occurrences',\n    },\n    {\n        id: 1352,\n        name: 'ApplResendFlag',\n        abbrName: 'ApplResendFlag',\n        type: 'Boolean',\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description:\n            \"Used to indicate that a message is being sent in response to an Application Message Request. It is possible for both ApplResendFlag and PossDupFlag to be set on the same message if the Sender's cache size is greater than zero and the message is being resent due to a session level resend request\",\n    },\n    {\n        id: 1353,\n        name: 'ApplResponseID',\n        abbrName: 'ApplRespID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Identifier for the Applicaton Message Request Ack',\n    },\n    {\n        id: 1354,\n        name: 'ApplResponseError',\n        abbrName: 'ApplRespErr',\n        type: 'ApplResponseErrorCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Used to return an error code or text associated with a response to an Application Request.',\n    },\n    {\n        id: 1355,\n        name: 'RefApplID',\n        abbrName: 'RefApplID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description:\n            'Reference to the unique application identifier which corresponds to ApplID(1180) from the Application Sequence Group component',\n    },\n    {\n        id: 1356,\n        name: 'ApplReportID',\n        abbrName: 'ApplRptID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Identifier for the Application Sequence Reset',\n    },\n    {\n        id: 1357,\n        name: 'RefApplLastSeqNum',\n        abbrName: 'RefApplLastSeqNum',\n        type: 'SeqNum',\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Application sequence number of last message in transmission.',\n    },\n    {\n        id: 1358,\n        name: 'LegPutOrCall',\n        abbrName: 'PutCall',\n        type: 'PutOrCallCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description: 'Indicates whether a leg option contract is a put, call, chooser or undetermined.',\n    },\n    {\n        id: 1361,\n        name: 'TotNoFills',\n        abbrName: 'TotNoFills',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description:\n            'Total number of fill entries across all messages. Should be the sum of all NoFills(1362) in each message that has repeating list of fill entries related to the same ExecID(17). Used to support fragmentation.',\n    },\n    {\n        id: 1362,\n        name: 'NoFills',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n    },\n    {\n        id: 1363,\n        name: 'FillExecID',\n        abbrName: 'FillExecID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description:\n            'Refer to ExecID(17). Used when multiple partial fills are reported in single Execution Report. ExecID and FillExecID should not overlap,',\n    },\n    {\n        id: 1364,\n        name: 'FillPx',\n        abbrName: 'FillPx',\n        type: 'Price',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Price of Fill. Refer to LastPx(31).',\n    },\n    {\n        id: 1365,\n        name: 'FillQty',\n        abbrName: 'FillQty',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Quantity of Fill. Refer to LastQty(32).',\n    },\n    {\n        id: 1366,\n        name: 'LegAllocID',\n        abbrName: 'LegAllocID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'The AllocID(70) of an individual leg of a multileg order.',\n    },\n    {\n        id: 1367,\n        name: 'LegAllocSettlCurrency',\n        abbrName: 'AllocSettlCcy',\n        type: 'Currency',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Identifies settlement currency for the leg level allocation.',\n    },\n    {\n        id: 1368,\n        name: 'TradSesEvent',\n        abbrName: 'TradSesEvent',\n        type: 'TradSesEventCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description:\n            'Identifies an event related to a TradSesStatus(340). An event occurs and is gone, it is not a state that applies for a period of time.',\n    },\n    {\n        id: 1369,\n        name: 'MassActionReportID',\n        abbrName: 'MassActionReportID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description:\n            'Unique identifier of Order Mass Cancel Report or Order Mass Action Report message as assigned by sell-side (broker, exchange, ECN)',\n    },\n    {\n        id: 1370,\n        name: 'NoNotAffectedOrders',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of not affected orders in the repeating group of order ids.',\n    },\n    {\n        id: 1371,\n        name: 'NotAffectedOrderID',\n        abbrName: 'OrdID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description: 'OrderID(37) of an order not affected by a mass cancel or mass action request.',\n    },\n    {\n        id: 1372,\n        name: 'NotAffOrigClOrdID',\n        abbrName: 'OrigClOrdID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        description: 'ClOrdID(11) of an order not affected by a mass cancel or mass action request.',\n    },\n    {\n        id: 1373,\n        name: 'MassActionType',\n        abbrName: 'MassActionType',\n        type: 'MassActionTypeCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Specifies the type of action requested',\n    },\n    {\n        id: 1374,\n        name: 'MassActionScope',\n        abbrName: 'MassActionScope',\n        type: 'MassActionScopeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '85',\n        description: 'Specifies scope of Order Mass Action Request.',\n    },\n    {\n        id: 1375,\n        name: 'MassActionResponse',\n        abbrName: 'MassActionResponse',\n        type: 'MassActionResponseCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description:\n            'Specifies the action taken by counterparty order handling system as a result of the action type indicated in MassActionType of the Order Mass Action Request.',\n    },\n    {\n        id: 1376,\n        name: 'MassActionRejectReason',\n        abbrName: 'MassActionRejectReason',\n        type: 'MassActionRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '58',\n        description: 'Reason Order Mass Action Request was rejected',\n    },\n    {\n        id: 1377,\n        name: 'MultilegModel',\n        abbrName: 'MlegModel',\n        type: 'MultilegModelCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '59',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description:\n            'Specifies the type of multileg order. Defines whether the security is pre-defined or user-defined. Note that MultilegModel(1377)=2(User-defined, Non-Securitized, Multileg) does not apply for Securities.',\n    },\n    {\n        id: 1378,\n        name: 'MultilegPriceMethod',\n        abbrName: 'MlegPxMeth',\n        type: 'MultilegPriceMethodCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description:\n            'Code to represent how the multileg price is to be interpreted when applied to the legs.\\n\\n(See Volume : \"Glossary\" for further value definitions)',\n    },\n    {\n        id: 1379,\n        name: 'LegVolatility',\n        abbrName: 'LegVolatility',\n        type: 'float',\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'Specifies the volatility of an instrument leg.',\n    },\n    {\n        id: 1380,\n        name: 'DividendYield',\n        abbrName: 'DividendYield',\n        type: 'Percentage',\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description:\n            'The continuously-compounded annualized dividend yield of the underlying(s) of an option. Used as a parameter to theoretical option pricing models.',\n    },\n    {\n        id: 1381,\n        name: 'LegDividendYield',\n        abbrName: 'LegDividendYield',\n        type: 'Percentage',\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'Refer to definition for DividendYield(1380).',\n    },\n    {\n        id: 1382,\n        name: 'CurrencyRatio',\n        abbrName: 'CurrencyRatio',\n        type: 'float',\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description:\n            'Specifies the currency ratio between the currency used for a multileg price and the currency used by the outright book defined by the leg. Example: Multileg quoted in EUR, outright leg in USD and 1 EUR = 0,7 USD then CurrencyRatio = 0.7',\n    },\n    {\n        id: 1383,\n        name: 'LegCurrencyRatio',\n        abbrName: 'LegCurrencyRatio',\n        type: 'float',\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description:\n            'Specifies the currency ratio between the currency used for a multileg price and the currency used by the outright book defined by the leg. Example: Multileg quoted in EUR, outright leg in USD and 1 EUR = 0,7 USD then LegCurrencyRatio = 0.7',\n    },\n    {\n        id: 1384,\n        name: 'LegExecInst',\n        abbrName: 'LegExecInst',\n        type: 'ExecInstCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '59',\n        description: 'Refer to ExecInst(18)\\n\\nSame values as ExecInst(18)',\n    },\n    {\n        id: 1385,\n        name: 'ContingencyType',\n        abbrName: 'ContingencyType',\n        type: 'ContingencyTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '60',\n        description: 'Defines the type of contingency.',\n    },\n    {\n        id: 1386,\n        name: 'ListRejectReason',\n        abbrName: 'ListRejectReason',\n        type: 'ListRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '60',\n        description:\n            'Identifies the reason for rejection of a New Order List message. Note that OrdRejReason(103) is used if the rejection is based on properties of an individual order part of the List.',\n    },\n    {\n        id: 1387,\n        name: 'NoTrdRepIndicators',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '61',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of trade reporting indicators',\n    },\n    {\n        id: 1388,\n        name: 'TrdRepPartyRole',\n        abbrName: 'PtyRole',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '61',\n        description: 'Identifies the type of party for trade reporting. Same values as PartyRole(452).',\n    },\n    {\n        id: 1389,\n        name: 'TrdRepIndicator',\n        abbrName: 'TrdRepInd',\n        type: 'Boolean',\n        added: 'FIX.5.0',\n        addedEP: '61',\n        description:\n            'Specifies whether the trade should be reported (or not) to parties of the provided TrdRepPartyRole(1388). Used to override standard reporting behavior by the receiver of the trade report and thereby complements the PublTrdIndicator( tag1390).',\n    },\n    {\n        id: 1390,\n        name: 'TradePublishIndicator',\n        abbrName: 'TrdPubInd',\n        type: 'TradePublishIndicatorCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '61',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description:\n            'Indicates if a trade should be or has been published via a market publication service. The indicator governs all publication services of the recipient. Replaces PublishTrdIndicator(852).',\n    },\n    {\n        id: 1391,\n        name: 'UnderlyingLegOptAttribute',\n        abbrName: 'OptAt',\n        type: 'char',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition of OptAttribute(206)',\n    },\n    {\n        id: 1392,\n        name: 'UnderlyingLegSecurityDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: 'Refer to definition of SecurityDesc(107)',\n    },\n    {\n        id: 1393,\n        name: 'MarketReqID',\n        abbrName: 'MktReqID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '53',\n        description: 'Unique ID of a Market Definition Request message.',\n    },\n    {\n        id: 1394,\n        name: 'MarketReportID',\n        abbrName: 'MktRptID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '53',\n        description: 'Market Definition message identifier.',\n    },\n    {\n        id: 1395,\n        name: 'MarketUpdateAction',\n        abbrName: 'MktUpdtActn',\n        type: 'SecurityUpdateActionCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '53',\n        description: 'Specifies the action taken for the specified MarketID(1301) + MarketSegmentID(1300).',\n    },\n    {\n        id: 1396,\n        name: 'MarketSegmentDesc',\n        abbrName: 'MarketSegmentDesc',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '53',\n        description: 'Description or name of Market Segment',\n    },\n    {\n        id: 1397,\n        name: 'EncodedMktSegmDescLen',\n        abbrName: 'EncodedMktSegmDescLen',\n        type: 'Length',\n        added: 'FIX.5.0',\n        addedEP: '53',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedMktSegmDesc(1324) field.',\n    },\n    {\n        id: 1398,\n        name: 'EncodedMktSegmDesc',\n        abbrName: 'EncodedMktSegmDesc',\n        type: 'data',\n        lengthId: '1397',\n        added: 'FIX.5.0',\n        addedEP: '53',\n        description:\n            'Encoded (non-ASCII characters) representation of the MarketSegmDesc(1396) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the MarketSegmDesc field.',\n    },\n    {\n        id: 1399,\n        name: 'ApplNewSeqNum',\n        abbrName: 'ApplNewSeqNum',\n        type: 'SeqNum',\n        added: 'FIX.5.0',\n        addedEP: '63',\n        description: 'Used to specify a new application sequence number.',\n    },\n    {\n        id: 1400,\n        name: 'EncryptedPasswordMethod',\n        abbrName: 'EncPwdMethod',\n        type: 'int',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description:\n            'Enumeration defining the encryption method used to encrypt password fields.\\n\\nAt this time there are no encryption methods defined by FPL.',\n    },\n    {\n        id: 1401,\n        name: 'EncryptedPasswordLen',\n        abbrName: 'EncPwdLen',\n        type: 'Length',\n        added: 'FIX.5.0',\n        addedEP: '56',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Length of the EncryptedPassword(1402) field',\n    },\n    {\n        id: 1402,\n        name: 'EncryptedPassword',\n        abbrName: 'EncPwd',\n        type: 'data',\n        lengthId: '1401',\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description:\n            'Encrypted password - encrypted via the method specified in the field EncryptedPasswordMethod(1400)',\n    },\n    {\n        id: 1403,\n        name: 'EncryptedNewPasswordLen',\n        abbrName: 'EncNewPwdLen',\n        type: 'Length',\n        added: 'FIX.5.0',\n        addedEP: '56',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Length of the EncryptedNewPassword(1404) field',\n    },\n    {\n        id: 1404,\n        name: 'EncryptedNewPassword',\n        abbrName: 'EncNewPwd',\n        type: 'data',\n        lengthId: '1403',\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description:\n            'Encrypted new password - encrypted via the method specified in the field EncryptedPasswordMethod(1400)',\n    },\n    {\n        id: 1405,\n        name: 'UnderlyingLegMaturityTime',\n        abbrName: 'MatTm',\n        type: 'TZTimeOnly',\n        added: 'FIX.5.0',\n        addedEP: '55',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        description: \"Time of security's maturity expressed in local time with offset to UTC specified\",\n    },\n    {\n        id: 1406,\n        name: 'RefApplExtID',\n        abbrName: 'RefApplExtID',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'The extension pack number associated with an application message.',\n    },\n    {\n        id: 1407,\n        name: 'DefaultApplExtID',\n        abbrName: 'DfltApplExtID',\n        type: 'int',\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'The extension pack number that is the default for a FIX session.',\n    },\n    {\n        id: 1408,\n        name: 'DefaultCstmApplVerID',\n        abbrName: 'DefaultCstmApplVerID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'The default custom application version ID that is the default for a session.',\n    },\n    {\n        id: 1409,\n        name: 'SessionStatus',\n        abbrName: 'SessStat',\n        type: 'SessionStatusCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0',\n        addedEP: '56',\n        description: 'Status of a FIX session',\n    },\n    {\n        id: 1410,\n        name: 'DefaultVerIndicator',\n        abbrName: 'DfltVerInd',\n        type: 'Boolean',\n        added: 'FIX.5.0',\n        addedEP: '56',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description:\n            'Indicates that the application version identified in the fields RefApplVerID(1130), RefApplExtID(1406), and RefCstmApplVerID(1131) is the default for the message type identified in RefMsgType(372) field.',\n    },\n    {\n        id: 1411,\n        name: 'Nested4PartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0',\n        addedEP: '69',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Refer to definition of PartySubIDType(803)',\n    },\n    {\n        id: 1412,\n        name: 'Nested4PartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0',\n        addedEP: '69',\n        description: 'Refer to definition of PartySubID(523)',\n    },\n    {\n        id: 1413,\n        name: 'NoNested4PartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '69',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Refer to definition of NoPartySubIDs(802)',\n    },\n    {\n        id: 1414,\n        name: 'NoNested4PartyIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0',\n        addedEP: '69',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Refer to definition of NoPartyIDs(453)',\n    },\n    {\n        id: 1415,\n        name: 'Nested4PartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1416',\n        added: 'FIX.5.0',\n        addedEP: '69',\n        description: 'Refer to definition of PartyID(448)',\n    },\n    {\n        id: 1416,\n        name: 'Nested4PartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '69',\n        description: 'Refer to definition of PartyIDSource(447)',\n    },\n    {\n        id: 1417,\n        name: 'Nested4PartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '69',\n        description: 'Refer to definition of PartyRole(452)',\n    },\n    {\n        id: 1418,\n        name: 'LegLastQty',\n        abbrName: 'LastQty',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '72',\n        description: 'Fill quantity for the leg instrument',\n    },\n    {\n        id: 1419,\n        name: 'UnderlyingExerciseStyle',\n        abbrName: 'ExerStyle',\n        type: 'ExerciseStyleCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Type of exercise of a derivatives security',\n    },\n    {\n        id: 1420,\n        name: 'LegExerciseStyle',\n        abbrName: 'ExerStyle',\n        type: 'ExerciseStyleCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Type of exercise of a derivatives security',\n    },\n    {\n        id: 1421,\n        name: 'LegPriceUnitOfMeasure',\n        abbrName: 'PxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Refer to definition for PriceUnitOfMeasure(1191)',\n    },\n    {\n        id: 1422,\n        name: 'LegPriceUnitOfMeasureQty',\n        abbrName: 'PxUOMQty',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Refer to definition of PriceUnitOfMeasureQty(1192)',\n    },\n    {\n        id: 1423,\n        name: 'UnderlyingUnitOfMeasureQty',\n        abbrName: 'UOMQty',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Refer to definition of UnitOfMeasureQty(1147)',\n    },\n    {\n        id: 1424,\n        name: 'UnderlyingPriceUnitOfMeasure',\n        abbrName: 'PxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Refer to definition for PriceUnitOfMeasure(1191)',\n    },\n    {\n        id: 1425,\n        name: 'UnderlyingPriceUnitOfMeasureQty',\n        abbrName: 'PxUOMQty',\n        type: 'Qty',\n        added: 'FIX.5.0',\n        addedEP: '52',\n        description: 'Refer to definition of PriceUnitOfMeasureQty(1192)',\n    },\n    {\n        id: 1426,\n        name: 'ApplReportType',\n        abbrName: 'ApplRptTyp',\n        type: 'ApplReportTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        description: 'Type of report',\n    },\n    {\n        id: 1427,\n        name: 'SideExecID',\n        abbrName: 'SideExecID',\n        type: 'String',\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description:\n            'When reporting trades, used to reference the identifier of the execution (ExecID) being reported if different ExecIDs were assigned to each side of the trade.',\n    },\n    {\n        id: 1428,\n        name: 'OrderDelay',\n        abbrName: 'OrdDelay',\n        type: 'int',\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description:\n            'Time lapsed from order entry until match, based on the unit of time specified in OrderDelayUnit. Default is seconds if OrderDelayUnit is not specified. Value = 0, indicates the aggressor (the initiating side of the trade).',\n    },\n    {\n        id: 1429,\n        name: 'OrderDelayUnit',\n        abbrName: 'OrdDelayUnit',\n        type: 'OrderDelayUnitCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'Time unit in which the OrderDelay(1428) is expressed',\n    },\n    {\n        id: 1430,\n        name: 'VenueType',\n        abbrName: 'VenuTyp',\n        type: 'VenueTypeCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        updated: 'FIX.Latest',\n        updatedEP: '286',\n        description: 'Identifies the type of venue where a trade was executed.',\n    },\n    {\n        id: 1431,\n        name: 'RefOrdIDReason',\n        abbrName: 'RefOrdIDRsn',\n        type: 'RefOrdIDReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description: 'The reason for updating the RefOrdID',\n    },\n    {\n        id: 1432,\n        name: 'OrigCustOrderCapacity',\n        abbrName: 'OrigCustOrdCpcty',\n        type: 'OrigCustOrderCapacityCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        description:\n            'The customer capacity for this trade at the time of the order/execution.\\n\\nPrimarily used by futures exchanges to indicate the CTICode (customer type indicator) as required by the US CFTC (Commodity Futures Trading Commission).',\n    },\n    {\n        id: 1433,\n        name: 'RefApplReqID',\n        abbrName: 'RefID',\n        type: 'String',\n        added: 'FIX.5.0SP1',\n        addedEP: '78',\n        description:\n            'Used to reference a previously submitted ApplReqID (1346) from within a subsequent ApplicationMessageRequest(MsgType=BW)',\n    },\n    {\n        id: 1434,\n        name: 'ModelType',\n        abbrName: 'ModelTyp',\n        type: 'ModelTypeCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '79',\n        description: 'Type of pricing model used',\n    },\n    {\n        id: 1435,\n        name: 'ContractMultiplierUnit',\n        abbrName: 'MultTyp',\n        type: 'ContractMultiplierUnitCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        description:\n            'Indicates the type of multiplier being applied to the contract. Can be optionally used to further define what unit ContractMultiplier(tag 231) is expressed in.',\n    },\n    {\n        id: 1436,\n        name: 'LegContractMultiplierUnit',\n        abbrName: 'MultTyp',\n        type: 'ContractMultiplierUnitCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Indicates the type of multiplier being applied to the contract. Can be optionally used to further define what unit LegContractMultiplier(614) is expressed in.',\n    },\n    {\n        id: 1437,\n        name: 'UnderlyingContractMultiplierUnit',\n        abbrName: 'MultTyp',\n        type: 'ContractMultiplierUnitCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description:\n            'Indicates the type of multiplier being applied to the contract.\\n\\nCan be optionally used to further define what unit UnderlyingContractMultiplier(436) is expressed in.',\n    },\n    {\n        id: 1438,\n        name: 'DerivativeContractMultiplierUnit',\n        abbrName: 'MultTyp',\n        type: 'ContractMultiplierUnitCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Indicates the type of multiplier being applied to the contract. Can be optionally used to further define what unit DerivativeContractMultiplier(1266)is expressed in.\\n\\nSee ContractMultiplierUnit(1435) for complete definition.',\n    },\n    {\n        id: 1439,\n        name: 'FlowScheduleType',\n        abbrName: 'FlowSchedTyp',\n        type: 'FlowScheduleTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description:\n            'The industry standard flow schedule by which electricity or natural gas is traded. Schedules may exist by regions and on-peak and off-peak status, such as \"Western Peak\".',\n    },\n    {\n        id: 1440,\n        name: 'LegFlowScheduleType',\n        abbrName: 'FlowSchedTyp',\n        type: 'FlowScheduleTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        description:\n            'The industry standard flow schedule by which electricity or natural gas is traded. Schedules exist by regions and on-peak and off-peak status, such as \"Western Peak\".',\n    },\n    {\n        id: 1441,\n        name: 'UnderlyingFlowScheduleType',\n        abbrName: 'FlowSchedTyp',\n        type: 'FlowScheduleTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        description:\n            'The industry standard flow schedule by which electricity or natural gas is traded. Schedules exist by regions and on-peak and off-peak status, such as \"Western Peak\".',\n    },\n    {\n        id: 1442,\n        name: 'DerivativeFlowScheduleType',\n        abbrName: 'FlowSchedTyp',\n        type: 'FlowScheduleTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP1',\n        addedEP: '80',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'The industry standard flow schedule by which electricity or natural gas is traded. Schedules exist by regions and on-peak and off-peak status, such as \"Western Peak\".\\n\\nSee FlowScheduleType(1439) for complete definition.',\n    },\n    {\n        id: 1443,\n        name: 'FillLiquidityInd',\n        abbrName: 'LqdtyInd',\n        type: 'LastLiquidityIndCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '81',\n        description:\n            'Indicator to identify whether this fill was a result of a liquidity provider providing or liquidity taker taking the liquidity. Applicable only for OrdStatus of Partial or Filled',\n    },\n    {\n        id: 1444,\n        name: 'SideLiquidityInd',\n        abbrName: 'LqdtyInd',\n        type: 'LastLiquidityIndCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '81',\n        description:\n            'Indicator to identify whether this fill was a result of a liquidity provider providing or liquidity taker taking the liquidity. Applicable only for OrdStatus of Partial or Filled.',\n    },\n    {\n        id: 1445,\n        name: 'NoRateSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Number of rate sources being specified.',\n    },\n    {\n        id: 1446,\n        name: 'RateSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        updated: 'FIX.Latest',\n        updatedEP: '293',\n        description:\n            'Identifies the source of rate information.\\n\\nFor FX, the reference source to be used for the FX spot rate.\\n\\nThis is where to look up the rate information and is not necessarily the entity that sets the rate.',\n    },\n    {\n        id: 1447,\n        name: 'RateSourceType',\n        abbrName: 'RtSrcTyp',\n        type: 'RateSourceTypeCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        description: 'Indicates whether the rate source specified is a primary or secondary source.',\n    },\n    {\n        id: 1448,\n        name: 'ReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '161',\n        description:\n            'Identifies the reference \"page\" from the rate source.\\n\\nFor FX, the reference page to the spot rate to be used for the reference FX spot rate.\\n\\nWhen RateSource(1446) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option',\n    },\n    {\n        id: 1449,\n        name: 'RestructuringType',\n        abbrName: 'RestrctTyp',\n        type: 'RestructuringTypeCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'A category of CDS credit event in which the underlying bond experiences a restructuring.\\n\\nUsed to define a CDS instrument.',\n    },\n    {\n        id: 1450,\n        name: 'Seniority',\n        abbrName: 'Snrty',\n        type: 'SeniorityCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '235',\n        description:\n            'Specifies which issue (underlying bond) will receive payment priority in the event of a default.\\n\\nUsed to define a CDS instrument.\\n\\nThe payment priority is this: Senior Secured (SD), Senior (SR), Senior Non-Preferred (SN), Subordinated (SB), Mezzanine (MZ), Junior (JR).',\n    },\n    {\n        id: 1451,\n        name: 'NotionalPercentageOutstanding',\n        abbrName: 'NotlPctOut',\n        type: 'Percentage',\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description:\n            'Indicates the notional percentage of the deal that is still outstanding based on the remaining components of the index.\\n\\nUsed to calculate the true value of a CDS trade or position.',\n    },\n    {\n        id: 1452,\n        name: 'OriginalNotionalPercentageOutstanding',\n        abbrName: 'OrigNotlPctOut',\n        type: 'Percentage',\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description:\n            'Used to reflect the Original value prior to the application of a credit event. See NotionalPercentageOutstanding(1451).',\n    },\n    {\n        id: 1453,\n        name: 'UnderlyingRestructuringType',\n        abbrName: 'RestrctTyp',\n        type: 'RestructuringTypeCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'See RestructuringType(1449)',\n    },\n    {\n        id: 1454,\n        name: 'UnderlyingSeniority',\n        abbrName: 'Snrty',\n        type: 'SeniorityCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'See Seniority(1450)',\n    },\n    {\n        id: 1455,\n        name: 'UnderlyingNotionalPercentageOutstanding',\n        abbrName: 'NotlPctOut',\n        type: 'Percentage',\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'See NotionalPercentageOutstanding(1451)',\n    },\n    {\n        id: 1456,\n        name: 'UnderlyingOriginalNotionalPercentageOutstanding',\n        abbrName: 'OrigNotlPctOut',\n        type: 'Percentage',\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'See OriginalNotionalPercentageOutstanding(1452)',\n    },\n    {\n        id: 1457,\n        name: 'AttachmentPoint',\n        abbrName: 'AttchPnt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'Lower bound percentage of the loss that the tranche can endure.',\n    },\n    {\n        id: 1458,\n        name: 'DetachmentPoint',\n        abbrName: 'DetchPnt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'Upper bound percentage of the loss the tranche can endure.',\n    },\n    {\n        id: 1459,\n        name: 'UnderlyingAttachmentPoint',\n        abbrName: 'AttchPnt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'See AttachmentPoint(1457).',\n    },\n    {\n        id: 1460,\n        name: 'UnderlyingDetachmentPoint',\n        abbrName: 'DetchPnt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP1',\n        addedEP: '83',\n        description: 'See DetachmentPoint(1458).',\n    },\n    {\n        id: 1461,\n        name: 'NoTargetPartyIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        description: 'Identifies the number of target parties identified in a mass action.',\n    },\n    {\n        id: 1462,\n        name: 'TargetPartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1463',\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        description: 'PartyID value within an target party repeating group.',\n    },\n    {\n        id: 1463,\n        name: 'TargetPartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        description:\n            'PartyIDSource value within an target party repeating group.\\n\\nSame values as PartyIDSource (447)',\n    },\n    {\n        id: 1464,\n        name: 'TargetPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        description: 'PartyRole value within an target party repeating group.\\n\\nSame values as PartyRole (452)',\n    },\n    {\n        id: 1465,\n        name: 'SecurityListID',\n        abbrName: 'ListID',\n        type: 'String',\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        description: 'Specifies an identifier for a Security List',\n    },\n    {\n        id: 1466,\n        name: 'SecurityListRefID',\n        abbrName: 'ListRefID',\n        type: 'String',\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        description:\n            'Specifies a reference from one Security List to another. Used to support a hierarchy of Security Lists.',\n    },\n    {\n        id: 1467,\n        name: 'SecurityListDesc',\n        abbrName: 'ListDesc',\n        type: 'String',\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        description: 'Specifies a description or name of a Security List.',\n    },\n    {\n        id: 1468,\n        name: 'EncodedSecurityListDescLen',\n        abbrName: 'EncListDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedSecurityListDesc(1469) field.',\n    },\n    {\n        id: 1469,\n        name: 'EncodedSecurityListDesc',\n        abbrName: 'EncListDesc',\n        type: 'data',\n        lengthId: '1468',\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Encoded (non-ASCII characters) representation of the SecurityListDesc(1467) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the SecurityListDesc(1467) field.',\n    },\n    {\n        id: 1470,\n        name: 'SecurityListType',\n        abbrName: 'ListTyp',\n        type: 'SecurityListTypeCodeSet',\n        discriminatorId: '1471',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        description: 'Specifies a type of Security List.',\n    },\n    {\n        id: 1471,\n        name: 'SecurityListTypeSource',\n        abbrName: 'LstTypSrc',\n        type: 'SecurityListTypeSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP1',\n        addedEP: '87',\n        description:\n            'Specifies a specific source for a SecurityListType. Relevant when a certain type can be provided from various sources.',\n    },\n    {\n        id: 1472,\n        name: 'NewsID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        description: 'Unique identifier for a News message',\n    },\n    {\n        id: 1473,\n        name: 'NewsCategory',\n        abbrName: 'NewsCatgy',\n        type: 'NewsCategoryCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Category of news message.',\n    },\n    {\n        id: 1474,\n        name: 'LanguageCode',\n        abbrName: 'LangCd',\n        type: 'Language',\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        description: 'The national language in which the news item is provided.',\n    },\n    {\n        id: 1475,\n        name: 'NoNewsRefIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        description: 'Number of News reference items',\n    },\n    {\n        id: 1476,\n        name: 'NewsRefID',\n        abbrName: 'RefID',\n        type: 'String',\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        description: 'Reference to another News message identified by NewsID(1474).',\n    },\n    {\n        id: 1477,\n        name: 'NewsRefType',\n        abbrName: 'RefTyp',\n        type: 'NewsRefTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '190',\n        description: 'Type of reference to another News(35=B) message item.',\n    },\n    {\n        id: 1478,\n        name: 'StrikePriceDeterminationMethod',\n        abbrName: 'StrkPxDtrmnMeth',\n        type: 'StrikePriceDeterminationMethodCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'Specifies how the strike price is determined at the point of option exercise. The strike may be fixed throughout the life of the option, set at expiration to the value of the underlying, set to the average value of the underlying , or set to the optimal value of the underlying.',\n    },\n    {\n        id: 1479,\n        name: 'StrikePriceBoundaryMethod',\n        abbrName: 'StrkPxBndryMeth',\n        type: 'StrikePriceBoundaryMethodCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description:\n            'Specifies the boundary condition to be used for the strike price relative to the underlying price at the point of option exercise.',\n    },\n    {\n        id: 1480,\n        name: 'StrikePriceBoundaryPrecision',\n        abbrName: 'StrkPxBndryPrcsn',\n        type: 'Percentage',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description:\n            'Used in combination with StrikePriceBoundaryMethod to specify the percentage of the strike price in relation to the underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls.',\n    },\n    {\n        id: 1481,\n        name: 'UnderlyingPriceDeterminationMethod',\n        abbrName: 'PxDtrmnMeth',\n        type: 'UnderlyingPriceDeterminationMethodCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description:\n            'Specifies how the underlying price is determined at the point of option exercise. The underlying price may be set to the current settlement price, set to a special reference, set to the optimal value of the underlying during the defined period (\"Look-back\") or set to the average value of the underlying during the defined period (\"Asian option\").',\n    },\n    {\n        id: 1482,\n        name: 'OptPayoutType',\n        abbrName: 'OptPayoutTyp',\n        type: 'OptPayoutTypeCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description: 'Indicates the type of valuation method or payout trigger for an in-the-money option.',\n    },\n    {\n        id: 1483,\n        name: 'NoComplexEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Number of complex event occurrences.',\n    },\n    {\n        id: 1484,\n        name: 'ComplexEventType',\n        abbrName: 'Typ',\n        type: 'ComplexEventTypeCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Identifies the type of complex event.',\n    },\n    {\n        id: 1485,\n        name: 'ComplexOptPayoutAmount',\n        abbrName: 'OptPayAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description:\n            'Cash amount indicating the pay out associated with an event. For binary options this is a fixed amount.',\n    },\n    {\n        id: 1486,\n        name: 'ComplexEventPrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description:\n            'Specifies the price at which the complex event takes effect. Impact of the event price is determined by the ComplexEventType(1484).',\n    },\n    {\n        id: 1487,\n        name: 'ComplexEventPriceBoundaryMethod',\n        abbrName: 'PxBndryMeth',\n        type: 'ComplexEventPriceBoundaryMethodCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description:\n            'Specifies the boundary condition to be used for the event price relative to the underlying price at the point the complex event outcome takes effect as determined by the ComplexEventPriceTimeType.',\n    },\n    {\n        id: 1488,\n        name: 'ComplexEventPriceBoundaryPrecision',\n        abbrName: 'PxBndryPrcsn',\n        type: 'Percentage',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description:\n            'Used in combination with ComplexEventPriceBoundaryMethod to specify the percentage of the strike price in relation to the underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls.',\n    },\n    {\n        id: 1489,\n        name: 'ComplexEventPriceTimeType',\n        abbrName: 'PxTmTyp',\n        type: 'ComplexEventPriceTimeTypeCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'Specifies when the complex event outcome takes effect. The outcome of a complex event is a payout or barrier action as specified by the ComplexEventType(1484).',\n    },\n    {\n        id: 1490,\n        name: 'ComplexEventCondition',\n        abbrName: 'Cond',\n        type: 'ComplexEventConditionCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description:\n            'Specifies the condition between complex events when more than one event is specified.\\n\\nMultiple barrier events would use an \"or\" condition since only one can be effective at a given time. A set of digital range events would use an \"and\" condition since both conditions must be in effect for a payout to result.',\n    },\n    {\n        id: 1491,\n        name: 'NoComplexEventDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description: 'Number of complex event date occurrences for a given complex event.',\n    },\n    {\n        id: 1492,\n        name: 'ComplexEventStartDate',\n        abbrName: 'StartDt',\n        type: 'UTCDateOnly',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description:\n            'Specifies the start date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options\\n\\nComplexEventStartDate must always be less than or equal to ComplexEventEndDate.',\n    },\n    {\n        id: 1493,\n        name: 'ComplexEventEndDate',\n        abbrName: 'EndDt',\n        type: 'UTCDateOnly',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description:\n            'Specifies the end date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options\\n\\nComplexEventEndDate must always be greater than or equal to ComplexEventStartDate.',\n    },\n    {\n        id: 1494,\n        name: 'NoComplexEventTimes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description:\n            'Number of complex event time occurrences for a given complex event date\\n\\nThe default in case of an absence of time fields is 00:00:00-23:59:59.',\n    },\n    {\n        id: 1495,\n        name: 'ComplexEventStartTime',\n        abbrName: 'StartTm',\n        type: 'UTCTimeOnly',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description:\n            'Specifies the start time of the time range on which a complex event date is effective.\\n\\nComplexEventStartTime must always be less than or equal to ComplexEventEndTime.',\n    },\n    {\n        id: 1496,\n        name: 'ComplexEventEndTime',\n        abbrName: 'EndTm',\n        type: 'UTCTimeOnly',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        description:\n            'Specifies the end time of the time range on which a complex event date is effective.\\n\\nComplexEventEndTime must always be greater than or equal to ComplexEventStartTime.',\n    },\n    {\n        id: 1497,\n        name: 'StreamAsgnReqID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Unique identifier for the stream assignment request provided by the requester.',\n    },\n    {\n        id: 1498,\n        name: 'StreamAsgnReqType',\n        abbrName: 'AsgnReqTyp',\n        type: 'StreamAsgnReqTypeCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Type of stream assignment request.',\n    },\n    {\n        id: 1499,\n        name: 'NoAsgnReqs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Number of assignment requests.',\n    },\n    {\n        id: 1500,\n        name: 'MDStreamID',\n        abbrName: 'MDStrmID',\n        type: 'String',\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'The identifier or name of the price stream.',\n    },\n    {\n        id: 1501,\n        name: 'StreamAsgnRptID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Unique identifier of the stream assignment report provided by the respondent.',\n    },\n    {\n        id: 1502,\n        name: 'StreamAsgnRejReason',\n        abbrName: 'RejRsn',\n        type: 'StreamAsgnRejReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Reason code for stream assignment request reject.',\n    },\n    {\n        id: 1503,\n        name: 'StreamAsgnAckType',\n        abbrName: 'ActTyp',\n        type: 'StreamAsgnAckTypeCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'Type of acknowledgement.',\n    },\n    {\n        id: 1504,\n        name: 'RelSymTransactTime',\n        abbrName: 'TxnTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP1',\n        addedEP: '94',\n        description: 'See TransactTime(60)',\n    },\n    {\n        id: 1505,\n        name: 'PartyDetailsListRequestID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Unique identifier for PartyDetailsListRequest.',\n    },\n    {\n        id: 1506,\n        name: 'SideTradeID',\n        abbrName: 'TrdID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Used to represent the trade ID for each side of the trade assigned by an intermediary.',\n    },\n    {\n        id: 1507,\n        name: 'SideOrigTradeID',\n        abbrName: 'OrigTrdID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description:\n            'Used to capture the original trade id for each side of a trade undergoing novation to a standardized model.',\n    },\n    {\n        id: 1508,\n        name: 'NoRequestedPartyRoles',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of requested party roles.',\n    },\n    {\n        id: 1509,\n        name: 'RequestedPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Identifies the type or role of party that has been requested.',\n    },\n    {\n        id: 1510,\n        name: 'PartyDetailsListReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Identifier for the PartyDetailsListReport and the PartyDetailsListUpdateReport.',\n    },\n    {\n        id: 1511,\n        name: 'RequestResult',\n        abbrName: 'ReqRslt',\n        type: 'RequestResultCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Result of a request as identified by the appropriate request ID field',\n    },\n    {\n        id: 1512,\n        name: 'TotNoParties',\n        abbrName: 'TotNoPtys',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Total number of PartyListGrp returned.',\n    },\n    {\n        id: 1513,\n        name: 'DocumentationText',\n        abbrName: 'DcmntnTxt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'A sentence or phrase pertenant to the trade, not a reference to an external document. E.g. \"To be registered with the U.S. Environmental Protection Agency, Acid Rain Division, SO2 Allowance Tracking System\"',\n    },\n    {\n        id: 1514,\n        name: 'NoPartyRelationships',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of party relationships.',\n    },\n    {\n        id: 1515,\n        name: 'PartyRelationship',\n        abbrName: 'Rltnshp',\n        type: 'PartyRelationshipCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Used to specify the type of the party relationship.',\n    },\n    {\n        id: 1516,\n        name: 'NoPartyDetailAltID',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of party alternative identifiers.',\n    },\n    {\n        id: 1517,\n        name: 'PartyDetailAltID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1518',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'An alternate party identifier for the party specified in PartyDetailID(1691)',\n    },\n    {\n        id: 1518,\n        name: 'PartyDetailAltIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Identifies the source of the PartyDetailAltID(1517) value.',\n    },\n    {\n        id: 1519,\n        name: 'NoPartyDetailAltSubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of party detail alternate sub-identifiers.',\n    },\n    {\n        id: 1520,\n        name: 'PartyDetailAltSubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Sub-identifier for the party specified in PartyDetailAltID(1517).',\n    },\n    {\n        id: 1521,\n        name: 'PartyDetailAltSubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Type of PartyDetailAltSubID(1520) value.',\n    },\n    {\n        id: 1522,\n        name: 'DifferentialPrice',\n        abbrName: 'DiffPx',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '217',\n        description:\n            'Used to specify the differential price when reporting the individual leg of a spread trade. Both leg price and differential price may be provided on such a report. Note that MultiLegReportingType(442) will be set to 2 (Individual leg of a multi-leg security) in this case.\\n\\nAlso used in pricing Trade at Settlement (TAS) and Trade At Marker (TAM) contracts for which the value is the negotiated currency offset either at settlement (TAS) or at time specified in the product definition (TAM). The final contract price is specified in LastPx(31).',\n    },\n    {\n        id: 1523,\n        name: 'TrdAckStatus',\n        abbrName: 'TrdAckStat',\n        type: 'TrdAckStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Used to indicate the status of the trade submission (not the trade report)',\n    },\n    {\n        id: 1524,\n        name: 'PriceQuoteCurrency',\n        abbrName: 'PxQteCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description:\n            'Default currency in which the price is quoted. Defined at the instrument level. Used in place of Currency (tag 15) to express the currency of a product when the former is implemented as the FX dealt currency.',\n    },\n    {\n        id: 1525,\n        name: 'EncodedDocumentationTextLen',\n        abbrName: 'EncDcmntnTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedDocumentationText(1527) field.',\n    },\n    {\n        id: 1526,\n        name: 'UnderlyingPriceQuoteCurrency',\n        abbrName: 'PxQteCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description:\n            'Default currency in which the price is quoted. Defined at the instrument level. Used in place of Currency (tag 15) to express the currency of a product when the former is implemented as the FX dealt currency.',\n    },\n    {\n        id: 1527,\n        name: 'EncodedDocumentationText',\n        abbrName: 'EncDcmntnTxt',\n        type: 'data',\n        lengthId: '1525',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the DocumentationText(1513) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the DocumentationText(1513) field.',\n    },\n    {\n        id: 1528,\n        name: 'LegPriceQuoteCurrency',\n        abbrName: 'PxQteCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description:\n            'Default currency in which the price is quoted. Defined at the instrument level. Used in place of Currency (tag 15) to express the currency of a product when the former is implemented as the FX dealt currency.',\n    },\n    {\n        id: 1529,\n        name: 'NoRiskLimitTypes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of risk limits with associated warning levels.',\n    },\n    {\n        id: 1530,\n        name: 'RiskLimitType',\n        abbrName: 'Typ',\n        type: 'RiskLimitTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description:\n            'Used to specify the type of risk limit amount or position limit quantity or margin requirement amounts.',\n    },\n    {\n        id: 1531,\n        name: 'RiskLimitAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Specifies the risk limit amount.',\n    },\n    {\n        id: 1532,\n        name: 'RiskLimitCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Used to specify the currency of the risk limit amount.',\n    },\n    {\n        id: 1533,\n        name: 'RiskLimitPlatform',\n        abbrName: 'Pltfm',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'The area to which risk limit is applicable. This can be a trading platform or an offering.',\n    },\n    {\n        id: 1534,\n        name: 'NoRiskInstrumentScopes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of risk instrument scopes.',\n    },\n    {\n        id: 1535,\n        name: 'InstrumentScopeOperator',\n        abbrName: 'Oper',\n        type: 'InstrumentScopeOperatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Operator to perform on the instrument(s) specified',\n    },\n    {\n        id: 1536,\n        name: 'InstrumentScopeSymbol',\n        abbrName: 'Sym',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Used to limit instrument scope to specified symbol.\\n\\nSee Symbol(55) field for description.',\n    },\n    {\n        id: 1537,\n        name: 'InstrumentScopeSymbolSfx',\n        abbrName: 'Sfx',\n        type: 'SymbolSfxCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'Used to limit instrument scope to specified symbol suffix.\\n\\nSee SymbolSfx(65) field for description.',\n    },\n    {\n        id: 1538,\n        name: 'InstrumentScopeSecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1539',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified security identifier.\\n\\nSee SecurityID(48) field for description.',\n    },\n    {\n        id: 1539,\n        name: 'InstrumentScopeSecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.Latest',\n        updatedEP: '265',\n        description:\n            'Used to limit instrument scope to specified security identifier source.\\n\\nSee SecurityIDSource(22) field for description.',\n    },\n    {\n        id: 1540,\n        name: 'NoInstrumentScopeSecurityAltID',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of alternate security identifier for the specified InstrumentScopeSecurityID(1538).',\n    },\n    {\n        id: 1541,\n        name: 'InstrumentScopeSecurityAltID',\n        abbrName: 'AltID',\n        type: 'String',\n        discriminatorId: '1542',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified security alternate identifier.\\n\\nSee SecurityAltID(455) field for description.',\n    },\n    {\n        id: 1542,\n        name: 'InstrumentScopeSecurityAltIDSource',\n        abbrName: 'AltIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Used to limit instrument scope to specified security alternate identifier source.\\n\\nSee SecurityAltIDSource(456) field for complete definition.',\n    },\n    {\n        id: 1543,\n        name: 'InstrumentScopeProduct',\n        abbrName: 'Prod',\n        type: 'ProductCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified instrument product category.\\n\\nSee Product (460) field for description.',\n    },\n    {\n        id: 1544,\n        name: 'InstrumentScopeProductComplex',\n        abbrName: 'ProdCmplx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified product complex.\\n\\nSee ProductComplex(1227) field for description.',\n    },\n    {\n        id: 1545,\n        name: 'InstrumentScopeSecurityGroup',\n        abbrName: 'SecGrp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified security group.\\n\\nSee SecurityGroup(1151) field for description.',\n    },\n    {\n        id: 1546,\n        name: 'InstrumentScopeCFICode',\n        abbrName: 'CFI',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Used to limit instrument scope to specified CFICode.\\n\\nSee CFICode(461) field for description.',\n    },\n    {\n        id: 1547,\n        name: 'InstrumentScopeSecurityType',\n        abbrName: 'SecTyp',\n        type: 'SecurityTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified security type.\\n\\nSee SecurityType(167) field for description).',\n    },\n    {\n        id: 1548,\n        name: 'InstrumentScopeSecuritySubType',\n        abbrName: 'SecSubTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified security sub-type.\\n\\nSee SecuritySubType(762) field for description.',\n    },\n    {\n        id: 1549,\n        name: 'InstrumentScopeMaturityMonthYear',\n        abbrName: 'MMY',\n        type: 'MonthYear',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified maturity month and year.\\n\\nSee MaturityMonthYear(200) field for description.',\n    },\n    {\n        id: 1550,\n        name: 'InstrumentScopeMaturityTime',\n        abbrName: 'MatTm',\n        type: 'TZTimeOnly',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified maturity time.\\n\\nSee MaturityTime(1079) field for description.',\n    },\n    {\n        id: 1551,\n        name: 'InstrumentScopeRestructuringType',\n        abbrName: 'RstrctTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified restructuring type.\\n\\nSee RestructuringType(1449) field for description.',\n    },\n    {\n        id: 1552,\n        name: 'InstrumentScopeSeniority',\n        abbrName: 'Snrty',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified seniority type.\\n\\nSee Seniority(1450) field for description.',\n    },\n    {\n        id: 1553,\n        name: 'InstrumentScopePutOrCall',\n        abbrName: 'PutCall',\n        type: 'PutOrCallCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Used to limit instrument scope to puts or calls.\\n\\nSee PutOrCall(201) field for description.',\n    },\n    {\n        id: 1554,\n        name: 'InstrumentScopeFlexibleIndicator',\n        abbrName: 'FlexInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to securities that can be defined using flexible terms or not.\\n\\nSee FlexibleIndicator(1244) field for description.',\n    },\n    {\n        id: 1555,\n        name: 'InstrumentScopeCouponRate',\n        abbrName: 'CpnRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified coupon rate.\\n\\nSee CouponRate(223) field for description.',\n    },\n    {\n        id: 1556,\n        name: 'InstrumentScopeSecurityDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified security description.\\n\\nSee SecurityDesc(107) field for description.',\n    },\n    {\n        id: 1557,\n        name: 'InstrumentScopeSettlType',\n        abbrName: 'SettlTyp',\n        type: 'SettlTypeCodeSet',\n        unionDataType: 'Tenor',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified settlement type.\\n\\nSee SettlType(63) field for description.',\n    },\n    {\n        id: 1558,\n        name: 'RiskInstrumentMultiplier',\n        abbrName: 'Mult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Multiplier applied to the transaction amount for comparison with risk limits. Default if not specified is 1.0.',\n    },\n    {\n        id: 1559,\n        name: 'NoRiskWarningLevels',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of risk warning levels.',\n    },\n    {\n        id: 1560,\n        name: 'RiskWarningLevelPercent',\n        abbrName: 'Pct',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Percent of risk limit at which a warning is issued.',\n    },\n    {\n        id: 1561,\n        name: 'RiskWarningLevelName',\n        abbrName: 'Nme',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Name or error message associated with the risk warning level.',\n    },\n    {\n        id: 1562,\n        name: 'NoRelatedPartyDetailID',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of related party detail identifiers.',\n    },\n    {\n        id: 1563,\n        name: 'RelatedPartyDetailID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1564',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Party identifier for the party related to the party specified in PartyDetailID(1691).',\n    },\n    {\n        id: 1564,\n        name: 'RelatedPartyDetailIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Identifies the source of the RelatedPartyDetailID(1563).',\n    },\n    {\n        id: 1565,\n        name: 'RelatedPartyDetailRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Identifies the type or role of the RelatedPartyDetailID(1563) specified.',\n    },\n    {\n        id: 1566,\n        name: 'NoRelatedPartyDetailSubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of related party detail sub-identifiers.',\n    },\n    {\n        id: 1567,\n        name: 'RelatedPartyDetailSubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Sub-identifier for the party specified in RelatedPartyID(1563).',\n    },\n    {\n        id: 1568,\n        name: 'RelatedPartyDetailSubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Type of RelatedPartyDetailSubID(1567) value.',\n    },\n    {\n        id: 1569,\n        name: 'NoRelatedPartyDetailAltID',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of related party detail alternate identifiers.',\n    },\n    {\n        id: 1570,\n        name: 'RelatedPartyDetailAltID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1571',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'An alternate party identifier for the party specified in RelatedPartyID(1563).',\n    },\n    {\n        id: 1571,\n        name: 'RelatedPartyDetailAltIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Identifies the source of the RelatedPartyDetailAltID(1570) value.',\n    },\n    {\n        id: 1572,\n        name: 'NoRelatedPartyDetailAltSubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of related party detail alternate sub-identifiers.',\n    },\n    {\n        id: 1573,\n        name: 'RelatedPartyDetailAltSubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Sub-identifier for the party specified in RelatedPartyDetailAltID(1570).',\n    },\n    {\n        id: 1574,\n        name: 'RelatedPartyDetailAltSubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Type of RelatedPartyDetailAltSubID(1573) value.',\n    },\n    {\n        id: 1575,\n        name: 'SwapSubClass',\n        abbrName: 'SwapSubClss',\n        type: 'SwapSubClassCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description: 'The sub-classification or notional schedule type of the swap.',\n    },\n    {\n        id: 1576,\n        name: 'DerivativePriceQuoteCurrency',\n        abbrName: 'PxQteCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Default currency in which the price is quoted. Defined at the instrument level. Used in place of Currency(tag 15) to express the currency of a product when the former is implemented as the FX dealt currency.\\n\\nSee PriceQuoteCurrency(1524) for complete definition.',\n    },\n    {\n        id: 1577,\n        name: 'SettlRateIndex',\n        abbrName: 'SettlNdx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'In an outright or forward commodity trade that is cash settled this is the index used to determine the cash payment.',\n    },\n    {\n        id: 1578,\n        name: 'EncodedEventTextLen',\n        abbrName: 'EncTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedEventText(868) fied.',\n    },\n    {\n        id: 1579,\n        name: 'EncodedEventText',\n        abbrName: 'EncTxt',\n        type: 'data',\n        lengthId: '1578',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Encoded (non-ASCII characters) representation of the EventText(868) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the EventText(868) field.',\n    },\n    {\n        id: 1580,\n        name: 'SettlRateIndexLocation',\n        abbrName: 'SettlNdxLctn',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'This is an optional qualifying attribute of SettlRateIndex(1577) such as the delivery zone for an electricity contract.',\n    },\n    {\n        id: 1581,\n        name: 'OptionExpirationDesc',\n        abbrName: 'ExpDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Description of the option expiration.',\n    },\n    {\n        id: 1582,\n        name: 'NoSecurityClassifications',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Number of Security Classifications.',\n    },\n    {\n        id: 1583,\n        name: 'SecurityClassificationReason',\n        abbrName: 'Rsn',\n        type: 'SecurityClassificationReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description:\n            'Allows classification of instruments according to a set of high level reasons. Classification reasons describe the classes in which the instrument participates.',\n    },\n    {\n        id: 1584,\n        name: 'SecurityClassificationValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description:\n            'Specifies the product classification value which further details the manner in which the instrument participates in the class.',\n    },\n    {\n        id: 1585,\n        name: 'PosAmtReason',\n        abbrName: 'Rsn',\n        type: 'PosAmtReasonCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description:\n            'Specifies the reason for an amount type when reported on a position. Useful when multiple instances of the same amount type are reported.',\n    },\n    {\n        id: 1586,\n        name: 'NoLegPosAmt',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Number of TrdInstrmtLegPosAmt values.',\n    },\n    {\n        id: 1587,\n        name: 'LegPosAmt',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Leg position amount.',\n    },\n    {\n        id: 1588,\n        name: 'LegPosAmtType',\n        abbrName: 'Typ',\n        type: 'PosAmtTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Type of leg position amount.',\n    },\n    {\n        id: 1589,\n        name: 'LegPosCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Leg position currency.',\n    },\n    {\n        id: 1590,\n        name: 'LegPosAmtReason',\n        abbrName: 'Rsn',\n        type: 'PosAmtReasonCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description:\n            'Specifies the reason for an amount type when reported on a position. Useful when multiple instances of the same amount type are reported.',\n    },\n    {\n        id: 1591,\n        name: 'LegQtyType',\n        abbrName: 'QtyTyp',\n        type: 'QtyTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description:\n            'Type of quantity specified in LegQty field. LegContractMultiplier (614) is required when LegQtyType = 1 (Contracts). LegUnitOfMeasure (tag 999) and LegTimeUnit (tag 1001) are required when LegQtyType = 2 (Units of Measure per Time Unit). LegQtyType can be different for each leg.',\n    },\n    {\n        id: 1592,\n        name: 'DiscountFactor',\n        abbrName: 'DiscFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description: 'Used to calculate the present value of an amount to be paid in the future.',\n    },\n    {\n        id: 1593,\n        name: 'ParentAllocID',\n        abbrName: 'ParentAllocID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description:\n            'Contains the IndividualAllocId (tag 467) value of the allocation that is being offset as a result of a new allocation. This would be an optional field that would only be populated in the case of an allocation of an allocation (as well as any subsequent allocations). This wouldn\u2019t be populated for an initial allocation since an allocation id is not supplied on default (initial) allocations.',\n    },\n    {\n        id: 1594,\n        name: 'LegSecurityGroup',\n        abbrName: 'SecGrp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        description:\n            'Represents the product group of a leg.This is useful in conveying multi-leg instruments where the legs may participate in separate security groups.',\n    },\n    {\n        id: 1595,\n        name: 'PositionContingentPrice',\n        abbrName: 'CntgPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '109',\n        description: 'Risk adjusted price used to calculate variation margin on a position.',\n    },\n    {\n        id: 1596,\n        name: 'ClearingTradePrice',\n        abbrName: 'ClrTrdPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '111',\n        description: 'Alternate clearing price',\n    },\n    {\n        id: 1597,\n        name: 'SideClearingTradePrice',\n        abbrName: 'ClrTrdPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '111',\n        description: 'Alternate clearing price for the side being reported.',\n    },\n    {\n        id: 1598,\n        name: 'SideClearingTradePriceType',\n        abbrName: 'ClrTrdPxType',\n        type: 'SideClearingTradePriceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '111',\n        description:\n            'Indicates to recipient whether trade is clearing at execution prices LastPx(tag 31) or alternate clearing prices SideClearingTradePrice(tag 1597).',\n    },\n    {\n        id: 1599,\n        name: 'SidePriceDifferential',\n        abbrName: 'SidePxDiff',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '111',\n        description: 'Price Differential between the front and back leg of a spread or complex instrument.',\n    },\n];\n\nconst batch3: ISpecFields[] = [\n    {\n        id: 1600,\n        name: 'FIXEngineName',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '113',\n        description:\n            'Provides the name of the infrastructure component being used for session level communication. Normally this would be the FIX Engine or FIX Gateway product name.',\n    },\n    {\n        id: 1601,\n        name: 'FIXEngineVersion',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '113',\n        description: 'Provides the version of the infrastructure component.',\n    },\n    {\n        id: 1602,\n        name: 'FIXEngineVendor',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '113',\n        description: 'Provides the name of the vendor providing the infrastructure component.',\n    },\n    {\n        id: 1603,\n        name: 'ApplicationSystemName',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '113',\n        description:\n            'Provides the name of the application system being used to generate FIX application messages. This will normally be a trading system, OMS, or EMS.',\n    },\n    {\n        id: 1604,\n        name: 'ApplicationSystemVersion',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '113',\n        description: 'Provides the version of the application system being used to initiate FIX application messages.',\n    },\n    {\n        id: 1605,\n        name: 'ApplicationSystemVendor',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '113',\n        description: 'Provides the vendor of the application system.',\n    },\n    {\n        id: 1606,\n        name: 'NumOfSimpleInstruments',\n        abbrName: 'NumSimplInstrmt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description:\n            'Represents the total number of simple instruments that make up a multi-legged security. Complex spread instruments may be constructed of legs which themselves are multi-leg instruments.',\n    },\n    {\n        id: 1607,\n        name: 'SecurityRejectReason',\n        abbrName: 'SecRejRsn',\n        type: 'SecurityRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '114',\n        description: 'Identifies the reason a security definition request is being rejected.',\n    },\n    {\n        id: 1608,\n        name: 'InitialDisplayQty',\n        abbrName: 'InitDsplyQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '115',\n        description:\n            'Used to convey the initially requested display quantity specified in DisplayQty(1138) on order entry and modification messages in ExecutionReport message. Applicable only in ExecutionReport message where DisplayQty(1138) is the currently displayed quantity and the requested display quantity of the order also needs to be conveyed. The values of the two fields are different as soon as the order is partially filled and also after a refresh of the order whenever DisplayMethod(1084) is not 1=Initial.',\n    },\n    {\n        id: 1609,\n        name: 'ThrottleStatus',\n        abbrName: 'ThrttlStat',\n        type: 'ThrottleStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Indicates whether a message was queued as a result of throttling.',\n    },\n    {\n        id: 1610,\n        name: 'NoThrottles',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Indicates number of repeating groups to follow.',\n    },\n    {\n        id: 1611,\n        name: 'ThrottleAction',\n        abbrName: 'Actn',\n        type: 'ThrottleActionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Action to take should throttle limit be exceeded.',\n    },\n    {\n        id: 1612,\n        name: 'ThrottleType',\n        abbrName: 'Typ',\n        type: 'ThrottleTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Type of throttle.',\n    },\n    {\n        id: 1613,\n        name: 'ThrottleNoMsgs',\n        abbrName: 'NoMsgs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description:\n            'Maximum number of messages allowed by the throttle. May be a rate limit or a limit on the number of outstanding requests.',\n    },\n    {\n        id: 1614,\n        name: 'ThrottleTimeInterval',\n        abbrName: 'TmIntvl',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Value of the time interval in which the rate throttle is applied.',\n    },\n    {\n        id: 1615,\n        name: 'ThrottleTimeUnit',\n        abbrName: 'TmUnit',\n        type: 'OrderDelayUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description:\n            'Units in which ThrottleTimeInterval is expressed. Uses same enumerations as OrderDelayUnit(1429).',\n    },\n    {\n        id: 1616,\n        name: 'InstrumentScopeSecurityExchange',\n        abbrName: 'Exch',\n        type: 'Exchange',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description:\n            'Used to limit instrument scope to specified security exchange.\\n\\nSee SecurityExchange(207) field for description.',\n    },\n    {\n        id: 1617,\n        name: 'StreamAsgnType',\n        abbrName: 'AsgnTyp',\n        type: 'StreamAsgnTypeCodeSet',\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        description: 'The type of assignment being affected in the Stream Assignment Report.',\n    },\n    {\n        id: 1618,\n        name: 'NoThrottleMsgType',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Number of ThrottleMsgType fields.',\n    },\n    {\n        id: 1619,\n        name: 'ThrottleMsgType',\n        abbrName: 'MsgTyp',\n        type: 'MsgTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'The MsgType (35) of the FIX message being referenced.',\n    },\n    {\n        id: 1620,\n        name: 'InstrumentScopeEncodedSecurityDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Byte length of encoded (non-ASCII characters) InstrumentScopeEncodedSecurityDesc (1621) field',\n    },\n    {\n        id: 1621,\n        name: 'InstrumentScopeEncodedSecurityDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '1620',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Encoded (non-ASCII characters) representation of the InstrumentScopeSecurityDesc(1556) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the InstrumentScopeSecurityDesc(1556) field.',\n    },\n    {\n        id: 1622,\n        name: 'FillYieldType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '98',\n        description: 'Yield Type, using same values as YieldType (235)',\n    },\n    {\n        id: 1623,\n        name: 'FillYield',\n        abbrName: 'Yld',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '98',\n        description: 'Yield Percentage, using same values as Yield (236)',\n    },\n    {\n        id: 1624,\n        name: 'NoMatchInst',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '99',\n        description: 'Number of Instructions in the <MatchingInstructions> repeating group.',\n    },\n    {\n        id: 1625,\n        name: 'MatchInst',\n        abbrName: 'Inst',\n        type: 'MatchInstCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '99',\n        description: 'Matching Instruction for the order.',\n    },\n    {\n        id: 1626,\n        name: 'MatchAttribTagID',\n        abbrName: 'ID',\n        type: 'TagNum',\n        added: 'FIX.5.0SP2',\n        addedEP: '99',\n        description:\n            'Existing FIX field to be applied as a matching criteria to the instruction, bilaterally agreed between parties.',\n    },\n    {\n        id: 1627,\n        name: 'MatchAttribValue',\n        abbrName: 'Valu',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '99',\n        description: 'Value of MatchAttribTagID(1626) on which to apply the matching instruction.',\n    },\n    {\n        id: 1628,\n        name: 'TriggerScope',\n        abbrName: 'TrgrScope',\n        type: 'TriggerScopeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Defines the scope of TriggerAction(1101) when it is set to \"cancel\" (3).',\n    },\n    {\n        id: 1629,\n        name: 'ExposureDuration',\n        abbrName: 'ExpsreDur',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '159',\n        description:\n            'This is the time in seconds of a \"Good for Time\" (GFT) TimeInForce.\\n\\nPositive integer value which represents the time is seconds in which the new order remains active in the market before it is automatically cancelled (e.g. expired).\\n\\nBi-lateral agreements will dictate the maximum value of this field. It is assumed that most systems will impose a max limit of 86,400 seconds (i.e. 24 hours).\\n\\nFor Quotes: The period of time a quoted price is tradable(i.e. on-the-wire) before it becomes indicative (i.e. off-the-wire).',\n    },\n    {\n        id: 1630,\n        name: 'NoLimitAmts',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'The number of limit amount entries.',\n    },\n    {\n        id: 1631,\n        name: 'LimitAmtType',\n        abbrName: 'LmtAmtTyp',\n        type: 'LimitAmtTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description: 'Identifies the type of limit amount expressed in LastLimitAmt(1632) and LimitAmtRemaining(1633).',\n    },\n    {\n        id: 1632,\n        name: 'LastLimitAmt',\n        abbrName: 'LastLmtAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description:\n            'The amount that has been drawn down against the counterparty for a given trade. The type of limit is specified in LimitAmtType(1631).\\n\\nBilateral agreements dictate the units and maximum value of this field.',\n    },\n    {\n        id: 1633,\n        name: 'LimitAmtRemaining',\n        abbrName: 'LmtAmtRem',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        description:\n            'The remaining limit amount available between the counterparties. The type of limit is specified in LimitAmtType(1631).\\n\\nBilateral agreements dictate the units and maximum value of this field.',\n    },\n    {\n        id: 1634,\n        name: 'LimitAmtCurrency',\n        abbrName: 'LmtAmtCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description: 'Indicates the currency that the limit amount is specified in.',\n    },\n    {\n        id: 1635,\n        name: 'MarginReqmtInqID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Unique identifier of the MarginRequirementInquiry.',\n    },\n    {\n        id: 1636,\n        name: 'NoMarginReqmtInqQualifier',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Number of margin requirement inquiry qualifiers.',\n    },\n    {\n        id: 1637,\n        name: 'MarginReqmtInqQualifier',\n        abbrName: 'Qual',\n        type: 'MarginReqmtInqQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Qualifier for MarginRequirementInquiry to identify a specific report.',\n    },\n    {\n        id: 1638,\n        name: 'MarginReqmtRptType',\n        abbrName: 'RptTyp',\n        type: 'MarginReqmtRptTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Type of MarginRequirementReport.',\n    },\n    {\n        id: 1639,\n        name: 'MarginClass',\n        abbrName: 'Clss',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Identifier for group of instruments with similar risk profile.',\n    },\n    {\n        id: 1640,\n        name: 'MarginReqmtInqStatus',\n        abbrName: 'Stat',\n        type: 'CollInquiryStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Status of MarginRequirementInquiry.',\n    },\n    {\n        id: 1641,\n        name: 'MarginReqmtInqResult',\n        abbrName: 'Rslt',\n        type: 'MarginReqmtInqResultCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Result returned in response to MarginRequirementInquiry.',\n    },\n    {\n        id: 1642,\n        name: 'MarginReqmtRptID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Identifier for the MarginRequirementReport message.',\n    },\n    {\n        id: 1643,\n        name: 'NoMarginAmt',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Number of margin requirement amounts.',\n    },\n    {\n        id: 1644,\n        name: 'MarginAmtType',\n        abbrName: 'Typ',\n        type: 'MarginAmtTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Type of margin requirement amount being specified.',\n    },\n    {\n        id: 1645,\n        name: 'MarginAmt',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Amount of margin requirement.',\n    },\n    {\n        id: 1646,\n        name: 'MarginAmtCcy',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        description: 'Currency of the MarginAmt(1645).',\n    },\n    {\n        id: 1647,\n        name: 'NoRelatedInstruments',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'Number of related instruments',\n    },\n    {\n        id: 1648,\n        name: 'RelatedInstrumentType',\n        abbrName: 'InstrmtTyp',\n        type: 'RelatedInstrumentTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        description: 'The type of instrument relationship',\n    },\n    {\n        id: 1649,\n        name: 'RelatedSymbol',\n        abbrName: 'Sym',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description: 'Ticker symbol of the related security. Common \"human understood\" representation of the security.',\n    },\n    {\n        id: 1650,\n        name: 'RelatedSecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1651',\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description: 'Related security identifier value of RelatedSecurityIDSource(1651) type.',\n    },\n    {\n        id: 1651,\n        name: 'RelatedSecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description: 'Identifies class or source of the RelatedSecurityID (1650) value.',\n    },\n    {\n        id: 1652,\n        name: 'RelatedSecurityType',\n        abbrName: 'SecTyp',\n        type: 'SecurityTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Security type of the related instrument.',\n    },\n    {\n        id: 1653,\n        name: 'RelatedMaturityMonthYear',\n        abbrName: 'MMY',\n        type: 'MonthYear',\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description: 'Expiration date for the related instrument contract.',\n    },\n    {\n        id: 1654,\n        name: 'CoveredQty',\n        abbrName: 'CvrdQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description:\n            'Used to specify the portion of the short contract quantity that is considered covered (e.g. used for short option position).',\n    },\n    {\n        id: 1655,\n        name: 'MarketMakerActivity',\n        abbrName: 'MktMkrActvty',\n        type: 'MarketMakerActivityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '104',\n        description: 'Indicates market maker participation in security.',\n    },\n    {\n        id: 1656,\n        name: 'NoInstrumentScopes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of instrument scopes.',\n    },\n    {\n        id: 1657,\n        name: 'NoRequestingPartyIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of requesting party identifiers.',\n    },\n    {\n        id: 1658,\n        name: 'RequestingPartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1659',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Party identifier for the requesting party.',\n    },\n    {\n        id: 1659,\n        name: 'RequestingPartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Identifies the source of the RequestingPartyID(1658) value.',\n    },\n    {\n        id: 1660,\n        name: 'RequestingPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Identifies the type or role of the RequestingPartyID(1658) specified.',\n    },\n    {\n        id: 1661,\n        name: 'NoRequestingPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of requesting party sub-identifiers.',\n    },\n    {\n        id: 1662,\n        name: 'RequestingPartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Sub-identifier for the party specified in RequestingPartyID(1658).',\n    },\n    {\n        id: 1663,\n        name: 'RequestingPartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Type of RequestingPartySubID(1662) value.',\n    },\n    {\n        id: 1664,\n        name: 'EncodedRejectTextLen',\n        abbrName: 'EncRejTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedRejectText(1665) field.',\n    },\n    {\n        id: 1665,\n        name: 'EncodedRejectText',\n        abbrName: 'EncRejTxt',\n        type: 'data',\n        lengthId: '1664',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description:\n            'Encoded (non-ASCII characters) representation of the RejectText(1328) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the RejectText(1328) field.',\n    },\n    {\n        id: 1666,\n        name: 'RiskLimitRequestID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Unique identifier for the PartyRiskLimitsRequest',\n    },\n    {\n        id: 1667,\n        name: 'RiskLimitReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Identifier for the PartyRiskLimitsReport',\n    },\n    {\n        id: 1668,\n        name: 'NoRequestedRiskLimitType',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of risk limit types requested.',\n    },\n    {\n        id: 1669,\n        name: 'NoRiskLimits',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of risk limits for different instrument scopes.',\n    },\n    {\n        id: 1670,\n        name: 'RiskLimitID',\n        abbrName: 'RiskLmtID',\n        type: 'String',\n        baseCategory: 'PartiesReferenceData',\n        baseCategoryAbbrName: 'ID',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '171',\n        description: 'Unique reference identifier for a specific risk limit defined for the specified party.',\n    },\n    {\n        id: 1671,\n        name: 'NoPartyDetails',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of party details.',\n    },\n    {\n        id: 1672,\n        name: 'PartyDetailStatus',\n        abbrName: 'Stat',\n        type: 'PartyDetailStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Indicates the status of the party identified with PartyDetailID(1691).',\n    },\n    {\n        id: 1673,\n        name: 'MatchInstMarketID',\n        abbrName: 'MktID',\n        type: 'Exchange',\n        added: 'FIX.5.0SP2',\n        addedEP: '99',\n        description: 'Identifies the market to which the matching instruction applies.',\n    },\n    {\n        id: 1674,\n        name: 'PartyDetailRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'Qualifies the value of PartyDetailRole(1693).',\n    },\n    {\n        id: 1675,\n        name: 'RelatedPartyDetailRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '173',\n        description: 'Qualifies the value of RelatedPartyRole(1565)',\n    },\n    {\n        id: 1676,\n        name: 'NoPartyUpdates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of party updates.',\n    },\n    {\n        id: 1677,\n        name: 'NoPartyRiskLimits',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of party risk limits.',\n    },\n    {\n        id: 1678,\n        name: 'EncodedOptionExpirationDescLen',\n        abbrName: 'EncExpDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedOptionExpirationDesc(1697) field.',\n    },\n    {\n        id: 1679,\n        name: 'SecurityMassTradingStatus',\n        abbrName: 'TrdgStat',\n        type: 'SecurityTradingStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '106',\n        description: 'Identifies the trading status applicable to a group of instruments.',\n    },\n    {\n        id: 1680,\n        name: 'SecurityMassTradingEvent',\n        abbrName: 'SecTrdEvnt',\n        type: 'SecurityTradingEventCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '106',\n        description: 'Identifies an event related to the mass trading status.',\n    },\n    {\n        id: 1681,\n        name: 'MassHaltReason',\n        abbrName: 'HaltRsn',\n        type: 'HaltReasonCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '106',\n        description: 'Denotes the reason for the Opening Delay or Trading halt of a group of securities.',\n    },\n    {\n        id: 1682,\n        name: 'MDSecurityTradingStatus',\n        abbrName: 'TrdgStat',\n        type: 'SecurityTradingStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '106',\n        description: 'Identifies the trading status applicable to the instrument in the market data message.',\n    },\n    {\n        id: 1683,\n        name: 'MDSubFeedType',\n        abbrName: 'MDSubFeedTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '106',\n        description: 'Describes a sub-class for a given class of service defined by MDFeedType (1022)',\n    },\n    {\n        id: 1684,\n        name: 'MDHaltReason',\n        abbrName: 'HaltRsn',\n        type: 'HaltReasonCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '106',\n        description: 'Denotes the reason for the Opening Delay or Trading Halt.',\n    },\n    {\n        id: 1685,\n        name: 'ThrottleInst',\n        abbrName: 'ThrttlInst',\n        type: 'ThrottleInstCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description: 'Describes action recipient should take if a throttle limit were exceeded.',\n    },\n    {\n        id: 1686,\n        name: 'ThrottleCountIndicator',\n        abbrName: 'ThrttlCntInd',\n        type: 'ThrottleCountIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        description:\n            'Indicates whether a message decrements the number of outstanding requests, e.g. one where ThrottleType = Outstanding Requests.',\n    },\n    {\n        id: 1687,\n        name: 'ShortSaleRestriction',\n        abbrName: 'ShrtRstctn',\n        type: 'ShortSaleRestrictionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '120',\n        description: 'Indicates whether a restriction applies to short selling a security.',\n    },\n    {\n        id: 1688,\n        name: 'ShortSaleExemptionReason',\n        abbrName: 'ShrtSaleExmptnRsn',\n        type: 'ShortSaleExemptionReasonCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '121',\n        description:\n            'Indicates the reason a short sale order is exempted from applicable regulation (e.g. Reg SHO addendum (b)(1) in the U.S.).',\n    },\n    {\n        id: 1689,\n        name: 'LegShortSaleExemptionReason',\n        abbrName: 'ShrtSaleExmptnRsn',\n        type: 'ShortSaleExemptionReasonCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '121',\n        description:\n            'Indicates the reason a short sale is exempted from applicable regulation (e.g. Reg SHO addendum (b)(1) in the U.S.)',\n    },\n    {\n        id: 1690,\n        name: 'SideShortSaleExemptionReason',\n        abbrName: 'ShrtSaleExmptnRsn',\n        type: 'ShortSaleExemptionReasonCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '121',\n        description:\n            'Indicates the reason a short sale is exempted from applicable regulation (e.g. Reg SHO addendum (b)(1) in the U.S.)',\n    },\n    {\n        id: 1691,\n        name: 'PartyDetailID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1692',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Party identifier within Parties Reference Data messages.',\n    },\n    {\n        id: 1692,\n        name: 'PartyDetailIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Source of the identifier of the PartyDetailID(1691) specified.',\n    },\n    {\n        id: 1693,\n        name: 'PartyDetailRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Identifies the type or role of PartyDetailID(1691) specified.',\n    },\n    {\n        id: 1694,\n        name: 'NoPartyDetailSubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Number of party detail sub-identifiers.',\n    },\n    {\n        id: 1695,\n        name: 'PartyDetailSubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        description: 'Sub-identifier for the party specified in PartyDetailID(1691).',\n    },\n    {\n        id: 1696,\n        name: 'PartyDetailSubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Type of PartyDetailSubID(1695) value.',\n    },\n    {\n        id: 1697,\n        name: 'EncodedOptionExpirationDesc',\n        abbrName: 'EncExpDesc',\n        type: 'data',\n        lengthId: '1678',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the OptionExpirationDesc(1581) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the OptionExpirationDesc(1581).',\n    },\n    {\n        id: 1698,\n        name: 'StrikeUnitOfMeasure',\n        abbrName: 'StrkUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Used to express the unit of measure (UOM) of the price if different from the contract.',\n    },\n    {\n        id: 1699,\n        name: 'AccountSummaryReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Unique identifier for the AccountSummaryReport(35=CQ).',\n    },\n    {\n        id: 1700,\n        name: 'NoSettlementAmounts',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Number of settlement amount entries.',\n    },\n    {\n        id: 1701,\n        name: 'SettlementAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'The amount of settlement.',\n    },\n    {\n        id: 1702,\n        name: 'SettlementAmountCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'The currency of the reported settlement amount.',\n    },\n    {\n        id: 1703,\n        name: 'NoCollateralAmounts',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Number of collateral amount entries.',\n    },\n    {\n        id: 1704,\n        name: 'CurrentCollateralAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '227',\n        description: 'Currency value currently attributed to the collateral.',\n    },\n    {\n        id: 1705,\n        name: 'CollateralCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Currency of the collateral; optional, defaults to the Settlement Currency if not specified.',\n    },\n    {\n        id: 1706,\n        name: 'CollateralType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Type of collateral on deposit being reported.',\n    },\n    {\n        id: 1707,\n        name: 'NoPayCollects',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Number of pay collect entries.',\n    },\n    {\n        id: 1708,\n        name: 'PayCollectType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Category describing the reason for funds paid to, or the funds collected from the clearing firm.',\n    },\n    {\n        id: 1709,\n        name: 'PayCollectCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description:\n            'Currency denomination of value in PayAmount(1710) and CollectAmount(1711). If not specified, default to currency specified in SettlementAmountCurrency(1702).',\n    },\n    {\n        id: 1710,\n        name: 'PayAmount',\n        abbrName: 'PayAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Amount to be paid by the clearinghouse to the clearing firm.',\n    },\n    {\n        id: 1711,\n        name: 'CollectAmount',\n        abbrName: 'ColAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Amount to be collected by the clearinghouse from the clearing firm.',\n    },\n    {\n        id: 1712,\n        name: 'PayCollectMarketSegmentID',\n        abbrName: 'MktSegID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Market segment associated with the pay collect amount.',\n    },\n    {\n        id: 1713,\n        name: 'PayCollectMarketID',\n        abbrName: 'MktID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Market associated with the pay collect amount.',\n    },\n    {\n        id: 1714,\n        name: 'MarginAmountMarketSegmentID',\n        abbrName: 'MktSegID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Market segment associated with the margin amount.',\n    },\n    {\n        id: 1715,\n        name: 'MarginAmountMarketID',\n        abbrName: 'MktID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Market associated with the margin amount',\n    },\n    {\n        id: 1716,\n        name: 'UnitOfMeasureCurrency',\n        abbrName: 'UOMCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        description:\n            'Indicates the currency of the unit of measure. Conditionally required when UnitOfMeasure(996) = Ccy',\n    },\n    {\n        id: 1717,\n        name: 'PriceUnitOfMeasureCurrency',\n        abbrName: 'PxUOMCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        description:\n            'Indicates the currency of the price unit of measure. Conditionally required when PriceUnitOfMeasure(1191) = Ccy',\n    },\n    {\n        id: 1718,\n        name: 'UnderlyingUnitOfMeasureCurrency',\n        abbrName: 'UOMCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        description:\n            'Indicates the currency of the underlying unit of measure. Conditionally required when UnderlyingUnitOfMeasure(998) = Ccy',\n    },\n    {\n        id: 1719,\n        name: 'UnderlyingPriceUnitOfMeasureCurrency',\n        abbrName: 'PxUOMCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        description:\n            'Indicates the currency of the underlying price unit of measure. Conditionally required when UnderlyingPriceUnitOfMeasure(1424) = Ccy',\n    },\n    {\n        id: 1720,\n        name: 'LegUnitOfMeasureCurrency',\n        abbrName: 'UOMCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        description:\n            'Indicates the currency of the unit of measure. Conditionally required when LegUnitOfMeasure(999) = Ccy',\n    },\n    {\n        id: 1721,\n        name: 'LegPriceUnitOfMeasureCurrency',\n        abbrName: 'PxUOMCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        description:\n            'Indicates the currency of the price unit of measure. Conditionally required when LegPriceUnitOfMeasure(1421) = Ccy',\n    },\n    {\n        id: 1722,\n        name: 'DerivativeUnitOfMeasureCurrency',\n        abbrName: 'UOMCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Indicates the currency of the unit of measure.\\n\\nConditionally required when DerivativeUnitOfMeasure(1269) = Ccy.\\n\\nSee UnitOfMeasureCurrency(1716) for complete definition.',\n    },\n    {\n        id: 1723,\n        name: 'DerivativePriceUnitOfMeasureCurrency',\n        abbrName: 'PxUOMCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '122',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Indicates the currency of the price unit of measure.\\n\\nConditionally required when DerivativePriceUnitOfMeasure(1315) = Ccy.\\n\\nSee PriceUnitOfMeasureCurrency(1717) for complete definition.',\n    },\n    {\n        id: 1724,\n        name: 'OrderOrigination',\n        abbrName: 'OrdOrigntn',\n        type: 'OrderOriginationCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '222',\n        description: 'Identifies the origin of the order.',\n    },\n    {\n        id: 1725,\n        name: 'OriginatingDeptID',\n        abbrName: 'OrigntngDeptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'An identifier representing the department or desk within the firm that originated the order.',\n    },\n    {\n        id: 1726,\n        name: 'ReceivingDeptID',\n        abbrName: 'RcvgDeptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description: 'An identifier representing the department or desk within the firm that received the order.',\n    },\n    {\n        id: 1727,\n        name: 'InformationBarrierID',\n        abbrName: 'InfoBrrID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '135',\n        description:\n            'The identifier of the information barrier in place for a trading unit that will meet the criteria of the \"no-knowledge\" exception in FINRA Rule 5320.02.',\n    },\n    {\n        id: 1728,\n        name: 'FirmGroupID',\n        abbrName: 'FirmGrpID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Firm assigned group allocation entity identifier.',\n    },\n    {\n        id: 1729,\n        name: 'FirmMnemonic',\n        abbrName: 'FirmMnem',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description:\n            'Allocation identifier assigned by the Firm submitting the allocation for an individual allocation instruction (as opposed to the overall message level identifier).',\n    },\n    {\n        id: 1730,\n        name: 'AllocGroupID',\n        abbrName: 'GrpID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description:\n            'Intended to be used by a central counterparty to assign an identifier to allocations of trades for the same instrument traded at the same price.',\n    },\n    {\n        id: 1731,\n        name: 'AvgPxGroupID',\n        abbrName: 'AvgPxGrpID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description:\n            'Used by submitting firm to group trades being allocated into an average price group. The trades in average price group will be used to calculate an average price for the group.',\n    },\n    {\n        id: 1732,\n        name: 'FirmAllocText',\n        abbrName: 'FirmTxt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description:\n            'Firm reference information, usually internal information, that is part of the initial message. The information would not be carried forward (e.g to Take-up Firm) and preserved with the transaction.',\n    },\n    {\n        id: 1733,\n        name: 'EncodedFirmAllocTextLen',\n        abbrName: 'EncFirmTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedFirmAllocText(1734) field.',\n    },\n    {\n        id: 1734,\n        name: 'EncodedFirmAllocText',\n        abbrName: 'EncFirmTxt',\n        type: 'data',\n        lengthId: '1733',\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Encoded (non-ASCII characters) representation of the FirmAllocText(1732) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) represention should also be specified in FirmAllocText(1732) field.',\n    },\n    {\n        id: 1735,\n        name: 'AllocationRollupInstruction',\n        abbrName: 'AllocRollupInst',\n        type: 'AllocationRollupInstructionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        description: 'An indicator to override the normal procedure to roll up allocations for the same take-up firm.',\n    },\n    {\n        id: 1736,\n        name: 'AllocGroupQuantity',\n        abbrName: 'GrpQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Indicates the total quantity of an allocation group. Includes any allocated quantity.',\n    },\n    {\n        id: 1737,\n        name: 'AllocGroupRemainingQuantity',\n        abbrName: 'RemQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Indicates the remaining quantity of an allocation group that has not yet been allocated.',\n    },\n    {\n        id: 1738,\n        name: 'AllocReversalStatus',\n        abbrName: 'RvrslStat',\n        type: 'AllocReversalStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '118',\n        description: 'Identifies the status of a reversal transaction.',\n    },\n    {\n        id: 1739,\n        name: 'ObligationType',\n        abbrName: 'ObligTyp',\n        type: 'ObligationTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Type of reference obligation for credit derivatives contracts.',\n    },\n    {\n        id: 1740,\n        name: 'TradePriceNegotiationMethod',\n        abbrName: 'TrdPxNegottnMeth',\n        type: 'TradePriceNegotiationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Method used for negotiation of contract price.',\n    },\n    {\n        id: 1741,\n        name: 'UpfrontPriceType',\n        abbrName: 'UpfrontPxTyp',\n        type: 'UpfrontPriceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Type of price used to determine upfront payment for swaps contracts.',\n    },\n    {\n        id: 1742,\n        name: 'UpfrontPrice',\n        abbrName: 'UpfrontPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Price used to determine upfront payment for swaps contracts.',\n    },\n    {\n        id: 1743,\n        name: 'LastUpfrontPrice',\n        abbrName: 'LastUpfrontPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '119',\n        description: 'Price used to determine upfront payment for swaps contracts reported for a deal (trade).',\n    },\n    {\n        id: 1744,\n        name: 'ApplLevelRecoveryIndicator',\n        type: 'ApplLevelRecoveryIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '124',\n        description: 'Indicates whether application level recovery is needed.',\n    },\n    {\n        id: 1745,\n        name: 'BidMDEntryID',\n        abbrName: 'BidMDID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '125',\n        description: 'The market data entry identifier of the bid side of a quote',\n    },\n    {\n        id: 1746,\n        name: 'OfferMDEntryID',\n        abbrName: 'OfrMDID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '125',\n        description: 'The market data entry identifier of the offer side of a quote.',\n    },\n    {\n        id: 1747,\n        name: 'BidQuoteID',\n        abbrName: 'BidQID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '125',\n        description: 'Marketplace assigned quote identifier for the bid side. Can be used to indicate priority.',\n    },\n    {\n        id: 1748,\n        name: 'OfferQuoteID',\n        abbrName: 'OfrQID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '125',\n        description: 'Marketplace assigned quote identifier for the offer side. Can be used to indicate priority.',\n    },\n    {\n        id: 1749,\n        name: 'TotalBidSize',\n        abbrName: 'TotBidSz',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '126',\n        description: 'Specifies the total bid size.',\n    },\n    {\n        id: 1750,\n        name: 'TotalOfferSize',\n        abbrName: 'TotOfrSz',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '126',\n        description: 'Specifies the total offer size.',\n    },\n    {\n        id: 1751,\n        name: 'SecondaryQuoteID',\n        abbrName: 'QID2',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '126',\n        description:\n            'Assigned by the party which accepts the quote. Can be used to provide the quote identifier assigned by an exchange, marketplace or executing system.',\n    },\n    {\n        id: 1752,\n        name: 'CustodialLotID',\n        abbrName: 'CstdlLotID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '127',\n        description:\n            'An opaque identifier used to communicate the custodian\u2019s identifier for the lot. It is expected that this information would be provided by the custodian as part of a reconciliation process that occurs before trading.',\n    },\n    {\n        id: 1753,\n        name: 'VersusPurchaseDate',\n        abbrName: 'VSPDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '127',\n        description:\n            'The effective acquisition date of the lot that would be used for gain-loss trade lot reporting. The versus purchase date used to identify the lot in situations where a custodial lot identifier is not available.',\n    },\n    {\n        id: 1754,\n        name: 'VersusPurchasePrice',\n        abbrName: 'VSPPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '127',\n        description:\n            'The versus purchase price used to identify the lot in situations where a custodial lot identifier is not available. The value should be calculated based on current cost basis / quantity held.',\n    },\n    {\n        id: 1755,\n        name: 'CurrentCostBasis',\n        abbrName: 'CurCostBasis',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '127',\n        description:\n            'The amount that the current shares are worth. If this lot was liquidated, the total gain/loss for a trade is equal to the trade amount minus the current cost basis.',\n    },\n    {\n        id: 1756,\n        name: 'LegCustodialLotID',\n        abbrName: 'CstdlLotID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '127',\n        description:\n            'An opaque identifier used to communicate the custodian\u2019s identifier for the lot. It is expected that this information would be provided by the custodian as part of a reconciliation process that occurs before trading.',\n    },\n    {\n        id: 1757,\n        name: 'LegVersusPurchaseDate',\n        abbrName: 'VSPDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '127',\n        description:\n            'The effective acquisition date of the lot that would be used for gain-loss trade lot reporting. The versus purchase date used to identify the lot in situations where a custodial lot identifier is not available.',\n    },\n    {\n        id: 1758,\n        name: 'LegVersusPurchasePrice',\n        abbrName: 'VSPPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '127',\n        description:\n            'The versus purchase price used to identify the lot in situations where a custodial lot identifier is not available.The value should be calculated based on current cost basis / quantity held.',\n    },\n    {\n        id: 1759,\n        name: 'LegCurrentCostBasis',\n        abbrName: 'CurCostBasis',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '127',\n        description:\n            'The amount that the current shares are worth. If this lot was liquidated, the total gain/loss for a trade is equal to the trade amount minus the current cost basis.',\n    },\n    {\n        id: 1760,\n        name: 'RiskLimitRequestType',\n        abbrName: 'ReqTyp',\n        type: 'RiskLimitRequestTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Type of risk limit information.',\n    },\n    {\n        id: 1761,\n        name: 'RiskLimitRequestResult',\n        abbrName: 'ReqRslt',\n        type: 'RiskLimitRequestResultCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Result of risk limit definition request.',\n    },\n    {\n        id: 1762,\n        name: 'RiskLimitRequestStatus',\n        abbrName: 'ReqStat',\n        type: 'PartyDetailRequestStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '146',\n        description: 'Status of risk limit definition request.',\n    },\n    {\n        id: 1763,\n        name: 'RiskLimitStatus',\n        abbrName: 'Stat',\n        type: 'PartyDetailDefinitionStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '146',\n        description: 'Status of risk limit definition for one party.',\n    },\n    {\n        id: 1764,\n        name: 'RiskLimitResult',\n        abbrName: 'Rslt',\n        type: 'RiskLimitRequestResultCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Result of risk limit definition for one party.',\n    },\n    {\n        id: 1765,\n        name: 'RiskLimitUtilizationPercent',\n        abbrName: 'UtilztnPct',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: \"Percentage of utilization of a party's set risk limit.\",\n    },\n    {\n        id: 1766,\n        name: 'RiskLimitUtilizationAmount',\n        abbrName: 'UtilztnAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: \"Absolute amount of utilization of a party's set risk limit.\",\n    },\n    {\n        id: 1767,\n        name: 'RiskLimitAction',\n        abbrName: 'Actn',\n        type: 'RiskLimitActionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '171',\n        description:\n            'Identifies the action to take or risk model to assume should risk limit be exceeded or breached for the specified party.',\n    },\n    {\n        id: 1768,\n        name: 'RiskWarningLevelAmount',\n        abbrName: 'Amt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        description: 'Amount at which a warning is issued.',\n    },\n    {\n        id: 1769,\n        name: 'RiskWarningLevelAction',\n        abbrName: 'Actn',\n        type: 'RiskLimitActionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '171',\n        description: 'Action to take should warning level be exceeded.',\n    },\n    {\n        id: 1770,\n        name: 'EntitlementRequestID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Unique identifier for PartyEntitlementsRequest(35=CU).',\n    },\n    {\n        id: 1771,\n        name: 'EntitlementReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Identifier for the PartyEntitlementsReport(35=CV).',\n    },\n    {\n        id: 1772,\n        name: 'NoPartyEntitlements',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Number of party entitlement values.',\n    },\n    {\n        id: 1773,\n        name: 'NoEntitlements',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Number of entitlement values.',\n    },\n    {\n        id: 1774,\n        name: 'EntitlementIndicator',\n        abbrName: 'Ind',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description:\n            'Used to indicate if a party is entitled to an entitlement type specified in the EntitlementType(1775) field.',\n    },\n    {\n        id: 1775,\n        name: 'EntitlementType',\n        abbrName: 'Typ',\n        type: 'EntitlementTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Type of entitlement.',\n    },\n    {\n        id: 1776,\n        name: 'EntitlementID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Unique identifier for a specific NoEntitlements(1773) repeating group instance.',\n    },\n    {\n        id: 1777,\n        name: 'NoEntitlementAttrib',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Number of entitlement attributes.',\n    },\n    {\n        id: 1778,\n        name: 'EntitlementAttribType',\n        abbrName: 'Typ',\n        type: 'int',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description:\n            'Name of the entitlement attribute type. A code list of allowed values will be maintained on the FIX Protocol website.\\n\\nValues \"4000\" and above are reserved for bilaterally agreed upon user defined enumerations.',\n    },\n    {\n        id: 1779,\n        name: 'EntitlementAttribDatatype',\n        abbrName: 'Datatyp',\n        type: 'EntitlementAttribDatatypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Datatype of the entitlement attribute.',\n    },\n    {\n        id: 1780,\n        name: 'EntitlementAttribValue',\n        abbrName: 'Value',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Value of the entitlement attribute.',\n    },\n    {\n        id: 1781,\n        name: 'EntitlementAttribCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description:\n            'Currency for EntitlementAttribValue(1780). Can be used if these fields represent a price, price offset, or amount.',\n    },\n    {\n        id: 1782,\n        name: 'EntitlementStartDate',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'Indicates the starting date of the entitlement.',\n    },\n    {\n        id: 1783,\n        name: 'EntitlementEndDate',\n        abbrName: 'EndDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        description: 'Indicates the ending date of the entitlement.',\n    },\n    {\n        id: 1784,\n        name: 'EntitlementPlatform',\n        abbrName: 'Pltfm',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        description: 'The area to which the entitlement is applicable. This can be a trading platform or an offering.',\n    },\n    {\n        id: 1785,\n        name: 'TradSesControl',\n        abbrName: 'TrdgSesCtrl',\n        type: 'TradSesControlCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '130',\n        description: 'Indicates how control of trading session and subsession transitions are performed.',\n    },\n    {\n        id: 1786,\n        name: 'TradeVolType',\n        abbrName: 'TrdVolTyp',\n        type: 'TradeVolTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '130',\n        description: 'Define the type of trade volume applicable for the MinTradeVol(562) and MaxTradeVol(1140)',\n    },\n    {\n        id: 1787,\n        name: 'RefTickTableID',\n        abbrName: 'RefTickTblID',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '130',\n        description: 'Spread table code referred by the security or symbol.',\n    },\n    {\n        id: 1788,\n        name: 'LegID',\n        abbrName: 'LegID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description:\n            'Unique identifier for the leg within the context of a message (the scope of uniqueness to be defined by counterparty agreement). The LegID(1788) can be referenced using LegRefID(654).',\n    },\n    {\n        id: 1789,\n        name: 'NoTargetMarketSegments',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Number of market segments upon which a mass action is to be taken.',\n    },\n    {\n        id: 1790,\n        name: 'TargetMarketSegmentID',\n        abbrName: 'MktSegID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Market segment within a target market segment repeating group.',\n    },\n    {\n        id: 1791,\n        name: 'NoAffectedMarketSegments',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Number of market segments affected by a mass action.',\n    },\n    {\n        id: 1792,\n        name: 'AffectedMarketSegmentID',\n        abbrName: 'MktSegID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Market segment within an affected market repeating segment group.',\n    },\n    {\n        id: 1793,\n        name: 'NoNotAffectedMarketSegments',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Number of market segments left unaffected by a mass action.',\n    },\n    {\n        id: 1794,\n        name: 'NotAffectedMarketSegmentID',\n        abbrName: 'MktSegID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Market segment within an unaffected market repeating segment group.',\n    },\n    {\n        id: 1795,\n        name: 'NoOrderEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Number of order events.',\n    },\n    {\n        id: 1796,\n        name: 'OrderEventType',\n        abbrName: 'Typ',\n        type: 'OrderEventTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description:\n            'The type of event affecting an order. The last event type within the OrderEventGrp component indicates the ExecType(150) value resulting from the series of events (ExecType(150) values are shown in brackets).',\n    },\n    {\n        id: 1797,\n        name: 'OrderEventExecID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description:\n            'Refer to ExecID(17). Used when multiple different events are reported in single Execution Report. ExecID(17) and OrderEventExecID(1797) values should not overlap.',\n    },\n    {\n        id: 1798,\n        name: 'OrderEventReason',\n        abbrName: 'Rsn',\n        type: 'OrderEventReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Action that caused the event to occur.',\n    },\n    {\n        id: 1799,\n        name: 'OrderEventPx',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Price associated with the event.',\n    },\n    {\n        id: 1800,\n        name: 'OrderEventQty',\n        abbrName: 'Qty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Quantity associated with the event.',\n    },\n    {\n        id: 1801,\n        name: 'OrderEventLiquidityIndicator',\n        abbrName: 'LqdtyInd',\n        type: 'LastLiquidityIndCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description:\n            'Indicator to identify whether this fill was a result of a liquidity provider providing or liquidity taker taking the liquidity. Applicable only for OrderEventType(1796) values of 4(Partially Filled) or 5(Filled).',\n    },\n    {\n        id: 1802,\n        name: 'OrderEventText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Additional information about the event.',\n    },\n    {\n        id: 1803,\n        name: 'AuctionType',\n        abbrName: 'AuctTyp',\n        type: 'AuctionTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Type of auction order.',\n    },\n    {\n        id: 1804,\n        name: 'AuctionAllocationPct',\n        abbrName: 'AuctPct',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description:\n            'Percentage of matched quantity to be allocated to the submitter of the response to an auction order.',\n    },\n    {\n        id: 1805,\n        name: 'AuctionInstruction',\n        abbrName: 'AuctInst',\n        type: 'AuctionInstructionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Instruction related to system generated auctions, e.g. flash order auctions.',\n    },\n    {\n        id: 1806,\n        name: 'RefClOrdID',\n        abbrName: 'RefClOrdID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Used to reference an order via ClOrdID(11).',\n    },\n    {\n        id: 1807,\n        name: 'LockType',\n        abbrName: 'LckTyp',\n        type: 'LockTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Indicates whether an order is locked and for what reason.',\n    },\n    {\n        id: 1808,\n        name: 'LockedQty',\n        abbrName: 'LckQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Locked order quantity.',\n    },\n    {\n        id: 1809,\n        name: 'SecondaryLockedQty',\n        abbrName: 'LckQty2',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description:\n            'Locked order quantity in addition to LockedQty (1808), e.g. to distinguish total locked quantity from currently locked quantity.',\n    },\n    {\n        id: 1810,\n        name: 'ReleaseInstruction',\n        abbrName: 'RlsInst',\n        type: 'ReleaseInstructionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Instruction to define conditions under which to release a locked order or parts of it.',\n    },\n    {\n        id: 1811,\n        name: 'ReleaseQty',\n        abbrName: 'RlsQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Quantity to be made available, i.e. released from a lock.',\n    },\n    {\n        id: 1812,\n        name: 'NoDisclosureInstructions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Number of disclosure instructions.',\n    },\n    {\n        id: 1813,\n        name: 'DisclosureType',\n        abbrName: 'Typ',\n        type: 'DisclosureTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Information subject to disclosure.',\n    },\n    {\n        id: 1814,\n        name: 'DisclosureInstruction',\n        abbrName: 'Inst',\n        type: 'DisclosureInstructionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Instruction to disclose information or to use default value of the receiver.',\n    },\n    {\n        id: 1815,\n        name: 'TradingCapacity',\n        abbrName: 'TrdgCpcty',\n        type: 'TradingCapacityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Designates the capacity in which the order is submitted for trading by the market participant.',\n    },\n    {\n        id: 1816,\n        name: 'ClearingAccountType',\n        abbrName: 'ClrAcctTyp',\n        type: 'ClearingAccountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Designates the account type to be used for the order when submitted to clearing.',\n    },\n    {\n        id: 1817,\n        name: 'LegClearingAccountType',\n        abbrName: 'ClrAcctTyp',\n        type: 'ClearingAccountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Designates the capacity in which the order will be submitted to clearing.',\n    },\n    {\n        id: 1818,\n        name: 'TargetPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Qualifies the value of TargetPartyRole (1464).',\n    },\n    {\n        id: 1819,\n        name: 'RelatedHighPrice',\n        abbrName: 'ReltdHiPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description:\n            'Upper boundary for the price of a related entity, e.g. price of the underlying instrument in an Underlying Price Contingency (UPC) order.',\n    },\n    {\n        id: 1820,\n        name: 'RelatedLowPrice',\n        abbrName: 'ReltdLowPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description:\n            'Lower boundary for the price of a related entity, e.g. price of the underlying instrument in an Underlying Price Contingency (UPC) order.',\n    },\n    {\n        id: 1821,\n        name: 'RelatedPriceSource',\n        abbrName: 'ReltdPxSrc',\n        type: 'RelatedPriceSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description:\n            'Source for the price of a related entity, e.g. price of the underlying instrument in an Underlying Price Contingency (UPC) order. Can be used together with RelatedHighPrice (1819) and/or RelatedLowPrice (1820).',\n    },\n    {\n        id: 1822,\n        name: 'MinQtyMethod',\n        abbrName: 'MinQtyMeth',\n        type: 'MinQtyMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Indicates how the minimum quantity should be applied when executing the order.',\n    },\n    {\n        id: 1823,\n        name: 'Triggered',\n        abbrName: 'Trgrd',\n        type: 'TriggeredCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description:\n            'Indicates whether order has been triggered during its lifetime. Applies to cases where original information, e.g. OrdType(40), is modified when the order is triggered.',\n    },\n    {\n        id: 1824,\n        name: 'AffectedOrigClOrdID',\n        abbrName: 'OrigClOrdID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'OrigClOrdID(41) of an order affected by a mass cancel or mass action request.',\n    },\n    {\n        id: 1825,\n        name: 'NotAffSecondaryOrderID',\n        abbrName: 'OrdID2',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'SecondaryOrderID (198) of an order not affected by a mass cancel or mass action request.',\n    },\n    {\n        id: 1826,\n        name: 'EventTimePeriod',\n        abbrName: 'TmPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '161',\n        description: 'Time unit multiplier for the event.',\n    },\n    {\n        id: 1827,\n        name: 'EventTimeUnit',\n        abbrName: 'TmUnit',\n        type: 'EventTimeUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '161',\n        description: 'Time unit associated with the event.',\n    },\n    {\n        id: 1828,\n        name: 'LastQtyVariance',\n        abbrName: 'LastQtyVarnc',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '132',\n        description:\n            'When LastQty is an estimated value, e.g. for a Repo \u201Ccircled\u201D trade, LastQtyVariance specifies the absolute amount that the size may vary up or down when finalized. Omitted when LastQty(32) is already final.',\n    },\n    {\n        id: 1829,\n        name: 'NoCrossLegs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        description: 'Number of legs in the side of a cross order.',\n    },\n    {\n        id: 1830,\n        name: 'SettlPriceIncrement',\n        abbrName: 'SettlPxIncr',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '138',\n        description: 'Settlement price increment for stated price range.',\n    },\n    {\n        id: 1831,\n        name: 'SettlPriceSecondaryIncrement',\n        abbrName: 'SettlPxIncr2',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '138',\n        description:\n            'Secondary settlement price increment for stated price range. The meaning of secondary is left to bilateral agreement, e.g. it may refer to final settlement for a contract.',\n    },\n    {\n        id: 1832,\n        name: 'ClearedIndicator',\n        abbrName: 'Clrd',\n        type: 'ClearedIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '196',\n        description:\n            'Indicates whether the trade or position being reported was cleared through a clearing organization.',\n    },\n    {\n        id: 1833,\n        name: 'ContractRefPosType',\n        abbrName: 'ConRefPosTyp',\n        type: 'ContractRefPosTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description:\n            'Additional information related to the pricing of a commodity swaps position, specifically an indicator referring to the position type.',\n    },\n    {\n        id: 1834,\n        name: 'PositionCapacity',\n        abbrName: 'PosCpcty',\n        type: 'PositionCapacityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Used to describe the ownership of the position.',\n    },\n    {\n        id: 1835,\n        name: 'PosQtyUnitOfMeasureCurrency',\n        abbrName: 'UOMCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description:\n            'Indicates the currency of the unit of measure if position quantity is expressed in valuation rather than contracts. Conditionally required when PosQtyUnitOfMeasure(1836)=Ccy.',\n    },\n    {\n        id: 1836,\n        name: 'PosQtyUnitOfMeasure',\n        abbrName: 'UOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description: 'Indicates the unit of measure of the position quantity when not expressed in contracts.',\n    },\n    {\n        id: 1837,\n        name: 'UnderlyingContractPriceRefMonth',\n        abbrName: 'PxRefMo',\n        type: 'MonthYear',\n        added: 'FIX.5.0SP2',\n        addedEP: '140',\n        description:\n            'Reference month if there is no applicable UnderlyingMaturityMonth(313) value for the contract or security.',\n    },\n    {\n        id: 1838,\n        name: 'NoTradePriceConditions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Number of trade price conditions.',\n    },\n    {\n        id: 1839,\n        name: 'TradePriceCondition',\n        abbrName: 'TrdPxCond',\n        type: 'TradePriceConditionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description:\n            'Price conditions in effect at the time of the trade. Multiple price conditions can be in effect at the same time. Price conditions are usually required to be reported in markets that have regulations on price execution at a market or national best bid or offer, and the trade price differs from the best bid or offer.',\n    },\n    {\n        id: 1840,\n        name: 'TradeAllocStatus',\n        abbrName: 'Stat',\n        type: 'TradeAllocStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description:\n            'Identifies the status of an allocation when using a pre-clear workflow.\\n\\nNote: This is different from the give-up process where a trade is cleared and then given up and goes through the allocation flow.',\n    },\n    {\n        id: 1841,\n        name: 'NoTradeQtys',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Number of trade quantities.',\n    },\n    {\n        id: 1842,\n        name: 'TradeQtyType',\n        abbrName: 'Typ',\n        type: 'TradeQtyTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Indicates the type of trade quantity in TradeQty(1843).',\n    },\n    {\n        id: 1843,\n        name: 'TradeQty',\n        abbrName: 'Qty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Trade quantity.',\n    },\n    {\n        id: 1844,\n        name: 'NoTradeAllocAmts',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Number of trade allocation amount entries.',\n    },\n    {\n        id: 1845,\n        name: 'TradeAllocAmtType',\n        abbrName: 'Typ',\n        type: 'PosAmtTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Type of the amount associated with a trade allocation.',\n    },\n    {\n        id: 1846,\n        name: 'TradeAllocAmt',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'The amount associated with a trade allocation.',\n    },\n    {\n        id: 1847,\n        name: 'TradeAllocCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Currency denomination of the trade allocation amount.',\n    },\n    {\n        id: 1848,\n        name: 'TradeAllocGroupInstruction',\n        abbrName: 'AllocGrpInst',\n        type: 'TradeAllocGroupInstructionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Instruction on how to add a trade to an allocation group when it is being given-up.',\n    },\n    {\n        id: 1849,\n        name: 'OffsetInstruction',\n        abbrName: 'OfstInst',\n        type: 'OffsetInstructionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Indicates the trade is a result of an offset or onset.',\n    },\n    {\n        id: 1850,\n        name: 'TradeAllocAmtReason',\n        abbrName: 'Rsn',\n        type: 'PosAmtReasonCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description:\n            'Specifies the reason for an amount type when reported on an allocation. Useful when multiple instances of the same amount type are reported.',\n    },\n    {\n        id: 1851,\n        name: 'StrategyLinkID',\n        abbrName: 'StrategyLinkID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description:\n            'Identifies the multileg strategy (e.g. spread) to which the trade belongs. This links together trade legs executed as part of a strategy during a single match event.',\n    },\n    {\n        id: 1852,\n        name: 'SideAvgPx',\n        abbrName: 'AvgPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'Calculated average price for this side of the trade.',\n    },\n    {\n        id: 1853,\n        name: 'SideAvgPxIndicator',\n        abbrName: 'AvgPxInd',\n        type: 'AvgPxIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description:\n            'Used to indicate whether a trade or a sub-allocation should be allocated at the trade price (e.g. no average pricing), or whether it should be grouped with other trades/sub-allocations and allocated at the average price of the group.',\n    },\n    {\n        id: 1854,\n        name: 'SideAvgPxGroupID',\n        abbrName: 'AvgPxGrpID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        description: 'The identifier for the average price group for the trade side. See also AvgPxGroupID(1731).',\n    },\n    {\n        id: 1855,\n        name: 'NoRelatedTrades',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Number of related trades.',\n    },\n    {\n        id: 1856,\n        name: 'RelatedTradeID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1857',\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        description: 'Identifier of a related trade.',\n    },\n    {\n        id: 1857,\n        name: 'RelatedTradeIDSource',\n        abbrName: 'Src',\n        type: 'RelatedTradeIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        description: 'Describes the source of the identifier that RelatedTradeID(1856) represents.',\n    },\n    {\n        id: 1858,\n        name: 'RelatedTradeDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        description: 'Date of a related trade.',\n    },\n    {\n        id: 1859,\n        name: 'RelatedTradeMarketID',\n        abbrName: 'MktID',\n        type: 'Exchange',\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        description: 'Market of execution of related trade.',\n    },\n    {\n        id: 1860,\n        name: 'RelatedTradeQuantity',\n        abbrName: 'Qty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        description:\n            'Quantity of the related trade which can be less than or equal to the actual quantity of the related trade. For example, when one trade offsets another across asset classes.',\n    },\n    {\n        id: 1861,\n        name: 'NoRelatedPositions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Number of related positions.',\n    },\n    {\n        id: 1862,\n        name: 'RelatedPositionID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1863',\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        description: 'Identifier of a related position.',\n    },\n    {\n        id: 1863,\n        name: 'RelatedPositionIDSource',\n        abbrName: 'Src',\n        type: 'RelatedPositionIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        description: 'Describes the source of the identifier that RelatedPositionID(1862) represents.',\n    },\n    {\n        id: 1864,\n        name: 'RelatedPositionDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        description:\n            'Used to help identify the position when RelatedPositionID(1862) is not unique across multiple days. This date is generally the creation date of the identifier.',\n    },\n    {\n        id: 1865,\n        name: 'QuoteAckStatus',\n        abbrName: 'QtAckStat',\n        type: 'QuoteAckStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '143',\n        description: 'Acknowledgement status of a Quote(35=S) or QuoteCancel(35=Z) message submission.',\n    },\n    {\n        id: 1866,\n        name: 'StrikeIndex',\n        abbrName: 'StrkNdx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the index used to calculate the strike price.',\n    },\n    {\n        id: 1867,\n        name: 'OfferID',\n        abbrName: 'OfrID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '144',\n        description: 'Unique identifier for the ask side of the quote assigned by the quote issuer.',\n    },\n    {\n        id: 1868,\n        name: 'NoValueChecks',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '144',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Number of value check entries.',\n    },\n    {\n        id: 1869,\n        name: 'ValueCheckType',\n        abbrName: 'Typ',\n        type: 'ValueCheckTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '144',\n        description: 'Type of value to be checked.',\n    },\n    {\n        id: 1870,\n        name: 'ValueCheckAction',\n        abbrName: 'Actn',\n        type: 'ValueCheckActionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '144',\n        description: 'Action to be taken for the ValueCheckType(1869).',\n    },\n    {\n        id: 1871,\n        name: 'LegSecurityXMLLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '145',\n        description: 'The length of the LegSecurityXML(1872) data block.',\n    },\n    {\n        id: 1872,\n        name: 'LegSecurityXML',\n        abbrName: 'SecXML',\n        type: 'XMLData',\n        lengthId: '1871',\n        added: 'FIX.5.0SP2',\n        addedEP: '145',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'XML definition for the leg security.',\n    },\n    {\n        id: 1873,\n        name: 'LegSecurityXMLSchema',\n        abbrName: 'Schema',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '145',\n        description: 'The schema used to validate the contents of LegSecurityXML(1872).',\n    },\n    {\n        id: 1874,\n        name: 'UnderlyingSecurityXMLLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '145',\n        description: 'The length of the UnderlyingSecurityXML(1875) data block.',\n    },\n    {\n        id: 1875,\n        name: 'UnderlyingSecurityXML',\n        abbrName: 'SecXML',\n        type: 'XMLData',\n        lengthId: '1874',\n        added: 'FIX.5.0SP2',\n        addedEP: '145',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'XML definition for the underlying security.',\n    },\n    {\n        id: 1876,\n        name: 'UnderlyingSecurityXMLSchema',\n        abbrName: 'Schema',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '145',\n        description: 'The schema used to validate the contents of UnderlyingSecurityXML(1875).',\n    },\n    {\n        id: 1877,\n        name: 'PartyDetailRequestResult',\n        abbrName: 'ReqRslt',\n        type: 'PartyDetailRequestResultCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Result party detail definition request.',\n    },\n    {\n        id: 1878,\n        name: 'PartyDetailRequestStatus',\n        abbrName: 'ReqStat',\n        type: 'PartyDetailRequestStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Status of party details definition request.',\n    },\n    {\n        id: 1879,\n        name: 'PartyDetailDefinitionStatus',\n        abbrName: 'Stat',\n        type: 'PartyDetailDefinitionStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Status of party detail definition for one party.',\n    },\n    {\n        id: 1880,\n        name: 'PartyDetailDefinitionResult',\n        abbrName: 'Rslt',\n        type: 'PartyDetailRequestResultCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Result of party detail definition for one party.',\n    },\n    {\n        id: 1881,\n        name: 'EntitlementRequestResult',\n        abbrName: 'ReqRslt',\n        type: 'EntitlementRequestResultCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Result of risk limit definition request.',\n    },\n    {\n        id: 1882,\n        name: 'EntitlementRequestStatus',\n        abbrName: 'ReqStat',\n        type: 'PartyDetailRequestStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Status of party entitlements definition request.',\n    },\n    {\n        id: 1883,\n        name: 'EntitlementStatus',\n        abbrName: 'Stat',\n        type: 'EntitlementStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '173',\n        description: 'Status of entitlement definition for one party.',\n    },\n    {\n        id: 1884,\n        name: 'EntitlementResult',\n        abbrName: 'Rslt',\n        type: 'EntitlementRequestResultCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Result of entitlement definition for one party.',\n    },\n    {\n        id: 1885,\n        name: 'EntitlementRefID',\n        abbrName: 'RefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        description: 'Reference to an EntitlementID(1776). Used for modification or deletion of an entitlement.',\n    },\n    {\n        id: 1886,\n        name: 'SettlPriceUnitOfMeasure',\n        abbrName: 'SetPxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '147',\n        description: 'Used to express the unit of measure of the settlement price if different from the contract.',\n    },\n    {\n        id: 1887,\n        name: 'SettlPriceUnitOfMeasureCurrency',\n        abbrName: 'SetPxUOMCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '147',\n        description:\n            'Indicates the currency of the settlement price unit of measure if expressed in another currency than the base currency.\\n\\nConditionally required when SettlPriceUnitOfMeasure(1886)=Ccy.',\n    },\n    {\n        id: 1888,\n        name: 'TradeMatchTimestamp',\n        abbrName: 'MtchTS',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description:\n            'Timestamp of the match event. For off-exchange trades the time at which the deal was matched by the exchange.\\n\\nThis timestamp will be the same on all the trades and will not change when a trade is modified.',\n    },\n    {\n        id: 1889,\n        name: 'NoInstrmtMatchSides',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Number of instrument match sides.',\n    },\n    {\n        id: 1890,\n        name: 'NoTrdMatchSides',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Number of trade match sides.',\n    },\n    {\n        id: 1891,\n        name: 'TrdMatchSubID',\n        abbrName: 'MtchSubID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '215',\n        description:\n            'Used to identify each price level, step or clip within a match event.\\n\\nThe identifier may represent a grouping of matched resting orders at a given price level that was matched by an aggressor order. For example, an aggressive order sweeping through 2 price levels that included 3 resting orders would have two different TrdMatchSubID(1891) values.',\n    },\n    {\n        id: 1892,\n        name: 'NoLegExecs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Number of instrument leg executions.',\n    },\n    {\n        id: 1893,\n        name: 'LegExecID',\n        abbrName: 'ExecID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'The ExecID(17) value corresponding to a trade leg.',\n    },\n    {\n        id: 1894,\n        name: 'LegTradeID',\n        abbrName: 'TrdID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'The TradeID(1003) value corresponding to a trade leg.',\n    },\n    {\n        id: 1895,\n        name: 'LegTradeReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'The TradeReportID(571) value corresponding to a trade leg.',\n    },\n    {\n        id: 1896,\n        name: 'TradeMatchAckStatus',\n        abbrName: 'MtchAckStat',\n        type: 'TradeMatchAckStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Used to indicate the status of the trade match report submission.',\n    },\n    {\n        id: 1897,\n        name: 'TradeMatchRejectReason',\n        abbrName: 'RejRsn',\n        type: 'TradeMatchRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Reason the trade match report submission was rejected.',\n    },\n    {\n        id: 1898,\n        name: 'SideMarketSegmentID',\n        abbrName: 'MktSegID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Identifies the market segment of the side.',\n    },\n    {\n        id: 1899,\n        name: 'SideVenueType',\n        abbrName: 'VenuTyp',\n        type: 'VenueTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Identifies the type of venue where the trade was executed for the side.',\n    },\n    {\n        id: 1900,\n        name: 'SideExecRefID',\n        abbrName: 'ExecRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Used to reference the value from SideExecID(1427).',\n    },\n    {\n        id: 1901,\n        name: 'LegExecRefID',\n        abbrName: 'ExecRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        description: 'Used to reference the value from LegExecID(1893).',\n    },\n    {\n        id: 1902,\n        name: 'HaircutIndicator',\n        abbrName: 'HrctInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '157',\n        description:\n            'Indicates, if \"Y\", that a stated valuation includes a haircut, e.g. that the stated value reflects the subtraction of the haircut. Note that a value of \"N\" does not imply a haircut is not applicable, only that the haircut (if any) is not reflected in the stated valuation.',\n    },\n    {\n        id: 1903,\n        name: 'RegulatoryTradeID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1905',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Trade identifier required by government regulators or other regulatory organizations for regulatory reporting purposes. For example, unique swap identifer (USI) as required by the U.S. Commodity Futures Trading Commission.',\n    },\n    {\n        id: 1904,\n        name: 'RegulatoryTradeIDEvent',\n        abbrName: 'Evnt',\n        type: 'RegulatoryTradeIDEventCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the event which caused origination of the identifier in RegulatoryTradeID(1903). When more than one event is the cause, use the higher enumeration value. For example, if the identifier is originated due to an allocated trade which was cleared and reported, use the enumeration value 2 (Clearing).',\n    },\n    {\n        id: 1905,\n        name: 'RegulatoryTradeIDSource',\n        abbrName: 'Src',\n        type: 'RegulatoryTradeIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description:\n            'Identifies the reporting entity that originated the value in RegulatoryTradeID(1903). The reporting entity identifier may be assigned by a regulator or from a supported standard identifier source scheme.\\n\\nIn the context of CFTC usage for Unique Swap Identifier (USI), this field is required to convey the namespace of the entity creating the USI, in accordance to the USI Data Standard (https://www.cftc.gov/sites/default/files/idc/groups/public/@swaps/documents/dfsubmission/usidatastandards100112.pdf). For standardized identifier source schemes, such as the Unique Transaction Identifier (UTI), the source scheme is identified using supported code values.',\n    },\n    {\n        id: 1906,\n        name: 'RegulatoryTradeIDType',\n        abbrName: 'Typ',\n        type: 'RegulatoryTradeIDTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '222',\n        description:\n            'Specifies the type of trade identifier provided in RegulatoryTradeID(1903).\\n\\nContextual hierarchy of events for the same trade or transaction maybe captured through use of the different RegulatoryTradeIDType(1906) values using multiple instances of the repeating group as needed for regulatory reporting.',\n    },\n    {\n        id: 1907,\n        name: 'NoRegulatoryTradeIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of regulatory IDs in the repeating group.',\n    },\n    {\n        id: 1908,\n        name: 'NoAllocRegulatoryTradeIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of regulatory IDs in the repeating group.',\n    },\n    {\n        id: 1909,\n        name: 'AllocRegulatoryTradeID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1910',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Trade identifier required by government regulators or other regulatory organizations for regulatory reporting purposes. For example, unique swap identifer (USI) as required by the U.S. Commodity Futures Trading Commission.',\n    },\n    {\n        id: 1910,\n        name: 'AllocRegulatoryTradeIDSource',\n        abbrName: 'Src',\n        type: 'RegulatoryTradeIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description:\n            'Identifies the reporting entity that originated the value in RegulatoryTradeID(1903). The reporting entity identifier may be assigned by a regulator or from a supported standard identifier source scheme.\\n\\nIn the context of CFTC usage for Unique Swap Identifier (USI), this field is required to convey the namespace of the entity creating the USI, in accordance to the USI Data Standard (https://www.cftc.gov/sites/default/files/idc/groups/public/@swaps/documents/dfsubmission/usidatastandards100112.pdf). For standardized identifier source schemes, such as the Unique Transaction Identifier (UTI), the source scheme is identified using supported code values.',\n    },\n    {\n        id: 1911,\n        name: 'AllocRegulatoryTradeIDEvent',\n        abbrName: 'Evnt',\n        type: 'RegulatoryTradeIDEventCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the event which caused the origination of the identifier in AllocRegulatoryTradeID(1909). When more than one event is the cause, use the higher enumeration value. For example, if the identifier is originated due to an allocated trade which was cleared and reported, use the enumeration value 2(Clearing).',\n    },\n    {\n        id: 1912,\n        name: 'AllocRegulatoryTradeIDType',\n        abbrName: 'Typ',\n        type: 'RegulatoryTradeIDTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the type of trade identifier provided in AllocRegulatoryTradeID(1909), within the context of the hierarchy of trade events.',\n    },\n    {\n        id: 1913,\n        name: 'NumOfCompetitors',\n        abbrName: 'NumCmptors',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '159',\n        description:\n            'The number of competing Respondents (e.g. dealers) to receive a quote request (either via the QuoteRequest(35=R) or via other means).',\n    },\n    {\n        id: 1914,\n        name: 'ResponseTime',\n        abbrName: 'RspTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '159',\n        description:\n            'The time by which a meaningful response should arrive back (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\").\\n\\nThe meaning of the response time is specific to the context where the field is used.\\n\\nFor a QuoteRequest(35=R) message, this is the time by which the Quote(35=S) message should arrive to the initiator of the QuoteRequest(35=R) message.',\n    },\n    {\n        id: 1915,\n        name: 'QuoteDisplayTime',\n        abbrName: 'QuotDsplyTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '159',\n        description:\n            'Time by which the quote will be displayed.\\n\\nFor example, the time the execution venue will display dealer(s) submitted quotes to market participant(s).',\n    },\n    {\n        id: 1916,\n        name: 'ExposureDurationUnit',\n        abbrName: 'ExpsreDurUnit',\n        type: 'OrderDelayUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '159',\n        description: 'Time unit in which the ExposureDuration(1629) is expressed.',\n    },\n    {\n        id: 1917,\n        name: 'CoverPrice',\n        abbrName: 'CoverPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '159',\n        description: 'The best quoted price received among those not traded.',\n    },\n    {\n        id: 1918,\n        name: 'NoClearingAccountTypes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '160',\n        description: 'Number of clearing account type entries.',\n    },\n    {\n        id: 1919,\n        name: 'NoPriceMovements',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '160',\n        description: 'Number of price movement entries.',\n    },\n    {\n        id: 1920,\n        name: 'NoPriceMovementValues',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '160',\n        description: 'Number of price movement value entries.',\n    },\n    {\n        id: 1921,\n        name: 'PriceMovementValue',\n        abbrName: 'Valu',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '160',\n        description: 'Value at specific price movement point.',\n    },\n    {\n        id: 1922,\n        name: 'PriceMovementPoint',\n        abbrName: 'Pnt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '160',\n        description:\n            'Price movement point up (positive integer) or down (negative integer) relative to the underlying price of the instrument.',\n    },\n    {\n        id: 1923,\n        name: 'PriceMovementType',\n        abbrName: 'Typ',\n        type: 'PriceMovementTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '160',\n        description: 'Describes the format of the PriceMovementValue(1921).',\n    },\n    {\n        id: 1924,\n        name: 'ClearingIntention',\n        abbrName: 'ClrIntn',\n        type: 'ClearingIntentionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Specifies the party's or parties' intention to clear the trade.\",\n    },\n    {\n        id: 1925,\n        name: 'TradeClearingInstruction',\n        abbrName: 'ClrngInstrctn',\n        type: 'ClearingInstructionCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the eligibility of this trade for clearing and central counterparty processing.',\n    },\n    {\n        id: 1926,\n        name: 'BackloadedTradeIndicator',\n        abbrName: 'BackTrdInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates that the trade being reported occurred in the past and is still in effect or active.',\n    },\n    {\n        id: 1927,\n        name: 'ConfirmationMethod',\n        abbrName: 'CnfmMeth',\n        type: 'ConfirmationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies how a trade was confirmed.',\n    },\n    {\n        id: 1928,\n        name: 'MandatoryClearingIndicator',\n        abbrName: 'MandClrInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'An indication that the trade is flagged for mandatory clearing.',\n    },\n    {\n        id: 1929,\n        name: 'MixedSwapIndicator',\n        abbrName: 'MixedSwapInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '193',\n        description:\n            'An indication that the trade is a mixed swap.\\n\\nIn the context of CFTC , a \"Mixed swap\" is defined in the Commodity Exchange Act (CEA) section 1a(47)(D) as an instrument that is in part a swap subject to the jurisdiction of the CFTC, and in part a security-based swap subject to the jurisdiction of the SEC. When reporting the additional Swap Data Repositories must be identified in the appropriate Parties component with PartyRole(452) = 102 (Data repository), PartyRoleQualifier(2376) = 12 (Additional domestic trade repository) and PartySub-IDType(803) = 70 (Location or jurisdiction).',\n    },\n    {\n        id: 1930,\n        name: 'OffMarketPriceIndicator',\n        abbrName: 'OffMktPxInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'An indication that the price is off-market.',\n    },\n    {\n        id: 1931,\n        name: 'VerificationMethod',\n        abbrName: 'VerfctnMeth',\n        type: 'VerificationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indication of how a trade was verified.',\n    },\n    {\n        id: 1932,\n        name: 'ClearingRequirementException',\n        abbrName: 'ClrReqmtExcptn',\n        type: 'ClearingRequirementExceptionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '177',\n        description:\n            \"Specifies whether a party to a swap is using an exception to a clearing requirement. In the US, one such clearing requirement is CFTC's rule pursuant to CEA Section 2(h)(1).\",\n    },\n    {\n        id: 1933,\n        name: 'IRSDirection',\n        abbrName: 'IRSDirctn',\n        type: 'IRSDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used to specify whether the principal is paying or receiving the fixed rate in an interest rate swap.',\n    },\n    {\n        id: 1934,\n        name: 'RegulatoryReportType',\n        abbrName: 'RegRptTyp',\n        type: 'RegulatoryReportTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Type of regulatory report.',\n    },\n    {\n        id: 1935,\n        name: 'VoluntaryRegulatoryReport',\n        abbrName: 'VolntyRegRpt',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description:\n            'Used in conjunction with RegulatoryReportType(1934) to indicate whether the trade report is a voluntary regulatory report. If not specified, the default for a regulatory report is \"N\".\\n\\nWhen VoluntaryRegulatoryReport(1935)=Y it is recommended that one of the parties to the trade be identified as the voluntary reporting party through PartySubIDType(803) = 63 (Voluntary reporting entity).',\n    },\n    {\n        id: 1936,\n        name: 'TradeCollateralization',\n        abbrName: 'TrdCollztn',\n        type: 'TradeCollateralizationCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        description:\n            'Specifies how the trade is collateralized.\\n\\nIn the context of Dodd-Frank, all values shown except for 4 (Net exposure) apply.\\n\\nIn the context of ESMA EU SFTR reporting only the values 1 (Uncollateralized), 3 (Fully collateralized) and 4 (Net exposure) apply.',\n    },\n    {\n        id: 1937,\n        name: 'TradeContinuation',\n        abbrName: 'TrdContntn',\n        type: 'TradeContinuationCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '179',\n        description:\n            'Specifies the post-execution trade continuation or lifecycle event. Additional values may be used by mutual agreement of the counterparties.',\n    },\n    {\n        id: 1938,\n        name: 'AssetClass',\n        abbrName: 'AssetClss',\n        type: 'AssetClassCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The broad asset category for assessing risk exposure.',\n    },\n    {\n        id: 1939,\n        name: 'AssetSubClass',\n        abbrName: 'AssetSubClss',\n        type: 'AssetSubClassCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The subcategory description of the asset class.',\n    },\n    {\n        id: 1940,\n        name: 'AssetType',\n        abbrName: 'AssetTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '235',\n        description:\n            \"Used to provide more specific description of the asset specified in AssetSubClass(1939).\\n\\nSee https://www.fixtrading.org/codelists/AssetType for code list of applicable values. ISO 4721 Currency Code values are to be used when specific currency as an asset type is to be expressed.\\n\\nOther values may be used by mutual agreement of the counterparties.\\n\\nIn the context of MiFID II's this may indicate the value needed in ESMA RTS 2 Annex IV Table 2 Field 16, or ESMA RTS 23 Annex I Table 2 'Sub product' field.\",\n    },\n    {\n        id: 1941,\n        name: 'SwapClass',\n        abbrName: 'SwapClss',\n        type: 'SwapClassCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The classification or type of swap. Additional values may be used by mutual agreement of the counterparties.',\n    },\n    {\n        id: 1942,\n        name: 'NthToDefault',\n        abbrName: 'NthDflt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The Nth reference obligation to default in a CDS reference basket. If specified without MthToDefault(1943) the default will trigger a CDS payout. If MthToDefault(1943) is also present then payout occurs between the Nth and Mth obligations to default.',\n    },\n    {\n        id: 1943,\n        name: 'MthToDefault',\n        abbrName: 'MthDflt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The Mth reference obligation to default in a CDS reference basket. When NthToDefault(1942) and MthToDefault(1943) are represented then the CDS payout occurs between the Nth and Mth obligations to default.',\n    },\n    {\n        id: 1944,\n        name: 'SettledEntityMatrixSource',\n        abbrName: 'SettldMtrxSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Relevant settled entity matrix source.',\n    },\n    {\n        id: 1945,\n        name: 'SettledEntityMatrixPublicationDate',\n        abbrName: 'SettldMtrxDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The publication date of the applicable version of the matrix. If not specified, the Standard Terms Supplement defines rules for which version of the matrix is applicable.',\n    },\n    {\n        id: 1946,\n        name: 'CouponType',\n        abbrName: 'CpnTyp',\n        type: 'CouponTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Coupon type of the bond.',\n    },\n    {\n        id: 1947,\n        name: 'TotalIssuedAmount',\n        abbrName: 'TotIssuedAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the total amount of the issue. Corresponds to the par value multiplied by the number of issued securities.',\n    },\n    {\n        id: 1948,\n        name: 'CouponFrequencyPeriod',\n        abbrName: 'CpnPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Time unit multiplier for the frequency of the bond's coupon payment.\",\n    },\n    {\n        id: 1949,\n        name: 'CouponFrequencyUnit',\n        abbrName: 'CpnUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Time unit associated with the frequency of the bond's coupon payment.\",\n    },\n    {\n        id: 1950,\n        name: 'CouponDayCount',\n        abbrName: 'CpnDayCnt',\n        type: 'CouponDayCountCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '200',\n        description:\n            'The day count convention used in interest calculations for a bond or an interest bearing security. Absence of this field for a bond or an interest bearing security transaction implies a \"flat\" trade, i.e. no accrued interest determined at time of the transaction.',\n    },\n    {\n        id: 1951,\n        name: 'ConvertibleBondEquityID',\n        abbrName: 'CnvrtBondEqtyID',\n        type: 'String',\n        discriminatorId: '1952',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the equity in which a convertible bond can be converted to.',\n    },\n    {\n        id: 1952,\n        name: 'ConvertibleBondEquityIDSource',\n        abbrName: 'CnvrtBondEqtyIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies class or source of the ConvertibleBondEquityID(1951) value.\\n\\n100+ are reserved for private security.',\n    },\n    {\n        id: 1953,\n        name: 'ContractPriceRefMonth',\n        abbrName: 'PxRefMo',\n        type: 'MonthYear',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Reference month if there is no applicable MaturityMonthYear(200) value for the contract or security.',\n    },\n    {\n        id: 1954,\n        name: 'LienSeniority',\n        abbrName: 'LienSnrty',\n        type: 'LienSeniorityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates the seniority level of the lien in a loan.',\n    },\n    {\n        id: 1955,\n        name: 'LoanFacility',\n        abbrName: 'LoanFclty',\n        type: 'LoanFacilityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Specifies the type of loan when the credit default swap's reference obligation is a loan.\",\n    },\n    {\n        id: 1956,\n        name: 'ReferenceEntityType',\n        abbrName: 'RefEntityTyp',\n        type: 'ReferenceEntityTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description: 'Specifies the type of reference entity for first-to-default CDS basket contracts.',\n    },\n    {\n        id: 1957,\n        name: 'IndexSeries',\n        abbrName: 'NdxSeries',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The series identifier of a credit default swap index.',\n    },\n    {\n        id: 1958,\n        name: 'IndexAnnexVersion',\n        abbrName: 'NdxAnxVer',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The version of a credit default swap index annex.',\n    },\n    {\n        id: 1959,\n        name: 'IndexAnnexDate',\n        abbrName: 'NdxAnxDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The date of a credit default swap index series annex.',\n    },\n    {\n        id: 1960,\n        name: 'IndexAnnexSource',\n        abbrName: 'NdxAnxSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The source of a credit default swap series annex.',\n    },\n    {\n        id: 1961,\n        name: 'AgreementVersion',\n        abbrName: 'AgmtVer',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The version of the master agreement',\n    },\n    {\n        id: 1962,\n        name: 'MasterConfirmationDesc',\n        abbrName: 'CnfmDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The type of master confirmation executed between the parties.\\n\\nSee http://www.fpml.org/coding-scheme/master-confirmation-type for values.',\n    },\n    {\n        id: 1963,\n        name: 'MasterConfirmationDate',\n        abbrName: 'CnfmDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Alternative to broker confirmation. The date of the confirmation executed between the parties and intended to govern all relevant transactions between those parties.',\n    },\n    {\n        id: 1964,\n        name: 'MasterConfirmationAnnexDesc',\n        abbrName: 'CnfmAnxDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The type of master confirmation annex executed between the parties.\\n\\nSee http://www.fpml.org/coding-scheme/master-confirmation-annex-type for values.',\n    },\n    {\n        id: 1965,\n        name: 'MasterConfirmationAnnexDate',\n        abbrName: 'CnfmAnxDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The date that an annex to the master confirmation was executed between the parties.',\n    },\n    {\n        id: 1966,\n        name: 'BrokerConfirmationDesc',\n        abbrName: 'BrkrCnfmDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Describes the type of broker confirmation executed between the parites. Can be used as an alterative to MasterConfirmationDesc(1962). See http://www.fpml.org/coding-scheme/broker-confirmation-type for values.',\n    },\n    {\n        id: 1967,\n        name: 'CreditSupportAgreementDesc',\n        abbrName: 'CrdSuprtDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The type of ISDA Credit Support Agreement. See http://www.fpml.org/coding-scheme/credit-support-agreement-type for values.',\n    },\n    {\n        id: 1968,\n        name: 'CreditSupportAgreementDate',\n        abbrName: 'CrdSuprtDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The date of the ISDA Credit Support Agreement executed between the parties and intended to govern collateral arrangements for all OTC derivatives transactions between those parties.',\n    },\n    {\n        id: 1969,\n        name: 'CreditSupportAgreementID',\n        abbrName: 'CrdSuprtID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A common reference or unique identifier to identify the ISDA Credit Support Agreement executed between the parties.',\n    },\n    {\n        id: 1970,\n        name: 'GoverningLaw',\n        abbrName: 'Law',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identification of the law governing the transaction. See http://www.fpml.org/coding-scheme/governing-law for values.',\n    },\n    {\n        id: 1971,\n        name: 'NoSideRegulatoryTradeIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of regulatory IDs in the repeating group.',\n    },\n    {\n        id: 1972,\n        name: 'SideRegulatoryTradeID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '1973',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Trade identifier required by government regulators or other regulatory organziations for regulatory reporting purposes. For example, unique swap identifier (USI) as required by the U.S. Commodity Futures Trading Commission.',\n    },\n    {\n        id: 1973,\n        name: 'SideRegulatoryTradeIDSource',\n        abbrName: 'Src',\n        type: 'RegulatoryTradeIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description:\n            'Identifies the reporting entity that originated the value in RegulatoryTradeID(1903). The reporting entity identifier may be assigned by a regulator or from a supported standard identifier source scheme.\\n\\nIn the context of CFTC usage for Unique Swap Identifier (USI), this field is required to convey the namespace of the entity creating the USI, in accordance to the USI Data Standard (https://www.cftc.gov/sites/default/files/idc/groups/public/@swaps/documents/dfsubmission/usidatastandards100112.pdf). For standardized identifier source schemes, such as the Unique Transaction Identifier (UTI), the source scheme is identified using supported code values.',\n    },\n    {\n        id: 1974,\n        name: 'SideRegulatoryTradeIDEvent',\n        abbrName: 'Evnt',\n        type: 'RegulatoryTradeIDEventCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the event which caused origination of the identifier in SideRegulatoryTradeID(1972). When more than one event is the cause, use the higher enumeration value. For example, if the identifier is originated due to an allocated trade which was cleared and reported, use the enumeration value 2 (Clearing).',\n    },\n    {\n        id: 1975,\n        name: 'SideRegulatoryTradeIDType',\n        abbrName: 'Typ',\n        type: 'RegulatoryTradeIDTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the type of trade identifier provided in SideRegulatoryTradeID(1972), within the context of the hierarchy of trade events.',\n    },\n    {\n        id: 1976,\n        name: 'NoSecondaryAssetClasses',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of secondary asset classes in the repeating group.',\n    },\n    {\n        id: 1977,\n        name: 'SecondaryAssetClass',\n        abbrName: 'Clss',\n        type: 'AssetClassCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The broad asset category for assessing risk exposure for a multi-asset trade.',\n    },\n    {\n        id: 1978,\n        name: 'SecondaryAssetSubClass',\n        abbrName: 'SubClss',\n        type: 'AssetSubClassCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'An indication of the general description of the asset class.',\n    },\n    {\n        id: 1979,\n        name: 'SecondaryAssetType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '235',\n        description:\n            \"Used to provide more specific description of the asset specified in SecondaryAssetSubClass(1978).\\n\\nSee https://www.fixtrading.org/codelists/AssetType for code list of applicable values. ISO 4721 Currency Code values are to be used when specific currency as an asset type is to be expressed.\\n\\nOther values may be used by mutual agreement of the counterparties.\\n\\nIn the context of MiFID II's this may indicate the value needed in ESMA RTS 2 Annex IV Table 2 Field 16, or ESMA RTS 23 Annex I Table 2 'Sub product' field.\",\n    },\n    {\n        id: 1980,\n        name: 'BlockTrdAllocIndicator',\n        abbrName: 'BlckTrdAllocInd',\n        type: 'BlockTrdAllocIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indication that a block trade will be allocated.',\n    },\n    {\n        id: 1981,\n        name: 'NoUnderlyingEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of events in the repeating group.',\n    },\n    {\n        id: 1982,\n        name: 'UnderlyingEventType',\n        abbrName: 'Typ',\n        type: 'EventTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Code to represent the type of event.',\n    },\n    {\n        id: 1983,\n        name: 'UnderlyingEventDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The date of the event.',\n    },\n    {\n        id: 1984,\n        name: 'UnderlyingEventTime',\n        abbrName: 'Tm',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The time of the event. To be used in combination with UnderlyingEventDate(1983).',\n    },\n    {\n        id: 1985,\n        name: 'UnderlyingEventTimeUnit',\n        abbrName: 'TmUnit',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the event.',\n    },\n    {\n        id: 1986,\n        name: 'UnderlyingEventTimePeriod',\n        abbrName: 'TmPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the event.',\n    },\n    {\n        id: 1987,\n        name: 'UnderlyingEventPx',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Predetermined price of issue at event, if applicable.',\n    },\n    {\n        id: 1988,\n        name: 'UnderlyingConstituentWeight',\n        abbrName: 'ConstuentWt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'For a basket, or pool, describes the weight of each of the constituents within the basket. If not provided, it is assumed to be equal weighted.',\n    },\n    {\n        id: 1989,\n        name: 'UnderlyingCouponType',\n        abbrName: 'CpnTyp',\n        type: 'CouponTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the coupon type of the underlying bond.',\n    },\n    {\n        id: 1990,\n        name: 'UnderlyingTotalIssuedAmount',\n        abbrName: 'TotIssuedAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the total amount of the issue. Corresponds to the par value multiplied by the number of issued security.',\n    },\n    {\n        id: 1991,\n        name: 'UnderlyingCouponFrequencyPeriod',\n        abbrName: 'CpnPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Time unit multiplier for the frequency of the bond's coupon payment.\",\n    },\n    {\n        id: 1992,\n        name: 'UnderlyingCouponFrequencyUnit',\n        abbrName: 'CpnUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Time unit associated with the frequency of the bond's coupon payment.\",\n    },\n    {\n        id: 1993,\n        name: 'UnderlyingCouponDayCount',\n        abbrName: 'CpnDayCnt',\n        type: 'CouponDayCountCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The day count convention used in interest calculations for a bond or an interest bearing security.',\n    },\n    {\n        id: 1994,\n        name: 'UnderlyingObligationID',\n        abbrName: 'ObligID',\n        type: 'String',\n        discriminatorId: '1995',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'For a CDS basket or pool identifies the reference obligation.\\n\\nUnderlyingObligationID(1994) is reserved for the reference entity for baskets or pools. In a CDS single name the reference entity is identified in instrument ID and the obligations are identified in UnderlyingObligationID(1994).',\n    },\n    {\n        id: 1995,\n        name: 'UnderlyingObligationIDSource',\n        abbrName: 'ObligIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source scheme of the UnderlyingObligationID(1994).',\n    },\n    {\n        id: 1996,\n        name: 'UnderlyingEquityID',\n        abbrName: 'EqtyID',\n        type: 'String',\n        discriminatorId: '1997',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the equity in which a convertible bond can be converted.',\n    },\n    {\n        id: 1997,\n        name: 'UnderlyingEquityIDSource',\n        abbrName: 'EqtyIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source of the UnderlyingEquityID(1996).',\n    },\n    {\n        id: 1998,\n        name: 'UnderlyingLienSeniority',\n        abbrName: 'LienSnrty',\n        type: 'LienSeniorityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates the seniority level of the lien in a loan.',\n    },\n    {\n        id: 1999,\n        name: 'UnderlyingLoanFacility',\n        abbrName: 'LoanFclty',\n        type: 'LoanFacilityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Specifies the type of loan when the credit default swap's reference obligation is a loan.\",\n    },\n    {\n        id: 2000,\n        name: 'UnderlyingReferenceEntityType',\n        abbrName: 'RefEntityTyp',\n        type: 'ReferenceEntityTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description: 'Specifies the type of reference entity for first-to-default CDS basket contracts.',\n    },\n    {\n        id: 2001,\n        name: 'StrikeIndexSpread',\n        abbrName: 'StrkSpread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the strike price offset from the named index.',\n    },\n    {\n        id: 2002,\n        name: 'ValuationSource',\n        abbrName: 'ValSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the source of trade valuation data.',\n    },\n    {\n        id: 2003,\n        name: 'UnderlyingIndexSeries',\n        abbrName: 'NdxSeries',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The series identifier of a credit default swap index.',\n    },\n    {\n        id: 2004,\n        name: 'UnderlyingIndexAnnexVersion',\n        abbrName: 'NdxAnxVer',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The version identifier of a credit default swap index annex.',\n    },\n    {\n        id: 2005,\n        name: 'UnderlyingIndexAnnexDate',\n        abbrName: 'NdxAnxDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The date of a credit default swap index series annex.',\n    },\n    {\n        id: 2006,\n        name: 'UnderlyingIndexAnnexSource',\n        abbrName: 'NdxAnxSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The source of a credit default swap index series annex.',\n    },\n    {\n        id: 2007,\n        name: 'UnderlyingProductComplex',\n        abbrName: 'ProdCmplx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies an entire suite of products for a given market. In Futures this may be \"interest rates\", \"agricultural\", \"equity indexes\", etc',\n    },\n    {\n        id: 2008,\n        name: 'UnderlyingSecurityGroup',\n        abbrName: 'SecGrp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'An exchange specific name assigned to a group of related securities which may be concurrently affected by market events and actions.',\n    },\n    {\n        id: 2009,\n        name: 'UnderlyingSettleOnOpenFlag',\n        abbrName: 'SettlOnOpenFlag',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicator to determine if Instrument is Settle on Open.',\n    },\n    {\n        id: 2010,\n        name: 'UnderlyingAssignmentMethod',\n        abbrName: 'AsgnMeth',\n        type: 'InstrmtAssignmentMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Method under which assignment was conducted',\n    },\n    {\n        id: 2011,\n        name: 'UnderlyingSecurityStatus',\n        abbrName: 'Status',\n        type: 'SecurityStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Indicates the current state of the underlying instrument.',\n    },\n    {\n        id: 2012,\n        name: 'UnderlyingObligationType',\n        abbrName: 'ObligTyp',\n        type: 'UnderlyingObligationTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Type of reference obligation for credit derivatives contracts.',\n    },\n    {\n        id: 2013,\n        name: 'UnderlyingAssetClass',\n        abbrName: 'AssetClss',\n        type: 'AssetClassCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The broad asset category for assessing risk exposure.',\n    },\n    {\n        id: 2014,\n        name: 'UnderlyingAssetSubClass',\n        abbrName: 'AssetSubClss',\n        type: 'AssetSubClassCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'An indication of the general description of the asset class.',\n    },\n    {\n        id: 2015,\n        name: 'UnderlyingAssetType',\n        abbrName: 'AssetTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '235',\n        description:\n            \"Used to provide more specific description of the asset specified in UnderlyingAssetSubClass(2082).\\n\\nSee https://www.fixtrading.org/codelists/AssetType for code list of applicable values. ISO 4721 Currency Code values are to be used when specific currency as an asset type is to be expressed.\\n\\nOther values may be used by mutual agreement of the counterparties.\\n\\nIn the context of MiFID II's this may indicate the value needed in ESMA RTS 2 Annex IV Table 2 Field 16, or ESMA RTS 23 Annex I Table 2 'Sub product' field.\",\n    },\n    {\n        id: 2016,\n        name: 'UnderlyingSwapClass',\n        abbrName: 'SwapClss',\n        type: 'SwapClassCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The type or classification of swap. Additional values may be used by mutual agreement of the counterparties.',\n    },\n    {\n        id: 2017,\n        name: 'UnderlyingNthToDefault',\n        abbrName: 'NthDflt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The Nth reference obligation to default in a CDS reference basket. If specified without UnderlyingMthToDefault(2018) the default will trigger a CDS payout. If UnderlyingMthToDefault(2018) is also present then payout occurs between the Nth and Mth obligations to default.',\n    },\n    {\n        id: 2018,\n        name: 'UnderlyingMthToDefault',\n        abbrName: 'MthDflt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The Mth reference obligation to default in a CDS reference basket. When UnderlyingNthToDefault(2017) and UnderlyingMthToDefault(2018) are represented then the CDS payout occurs between the Nth and Mth obligations to default.',\n    },\n    {\n        id: 2019,\n        name: 'UnderlyingSettledEntityMatrixSource',\n        abbrName: 'SettldMtrxSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Relevant settled entity matrix source.',\n    },\n    {\n        id: 2020,\n        name: 'UnderlyingSettledEntityMatrixPublicationDate',\n        abbrName: 'SettldMtrxDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the publication date of the applicable version of the matrix. If not specified, the Standard Terms Supplement defines rules for which version of the matrix is applicable.',\n    },\n    {\n        id: 2021,\n        name: 'UnderlyingStrikeMultiplier',\n        abbrName: 'StrkMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used for derivatives. Multiplier applied to the strike price for the purpose of calculating the settlement value.',\n    },\n    {\n        id: 2022,\n        name: 'UnderlyingStrikeValue',\n        abbrName: 'StrkValu',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used for derivatives. The number of shares/units for the financial instrument involved in the option trade.',\n    },\n    {\n        id: 2023,\n        name: 'UnderlyingStrikePriceDeterminationMethod',\n        abbrName: 'StrkPxDtrmnMeth',\n        type: 'StrikePriceDeterminationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'Specifies how the strike price is determined at the point of option exercise. The strike may be fixed throughout the life of the option, set at expiration to the value of the underlying, set to the average value of the underlying , or set to the optimal value of the underlying.',\n    },\n    {\n        id: 2024,\n        name: 'UnderlyingStrikePriceBoundaryMethod',\n        abbrName: 'StrkPxBndryMeth',\n        type: 'StrikePriceBoundaryMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the boundary condition to be used for the strike price relative to the underlying price at the point of option exercise.',\n    },\n    {\n        id: 2025,\n        name: 'UnderlyingStrikePriceBoundaryPrecision',\n        abbrName: 'StrkPxBndryPrcsn',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used in combination with StrikePriceBoundaryMethod(1479) to specify the percentage of the strike price in relation to the underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls.',\n    },\n    {\n        id: 2026,\n        name: 'UnderlyingMinPriceIncrement',\n        abbrName: 'MinPxIncr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Minimum price increment for the instrument. Could also be used to represent tick value.',\n    },\n    {\n        id: 2027,\n        name: 'UnderlyingMinPriceIncrementAmount',\n        abbrName: 'MinPxIncrAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Minimum price increment amount associated with the UnderlyingMinPriceIncrement(2026). For listed derivatives, the value can be calculated by multiplying UnderlyingMinPriceIncrement(2026) by UnderlyingContractMultiplier(436).',\n    },\n    {\n        id: 2028,\n        name: 'UnderlyingOptPayoutType',\n        abbrName: 'OptPayoutTyp',\n        type: 'OptPayoutTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description: 'Indicates the type of valuation method or payout trigger for an in-the-money option.',\n    },\n    {\n        id: 2029,\n        name: 'UnderlyingOptPayoutAmount',\n        abbrName: 'OptPayAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Cash amount indicating the pay out associated with an option. For binary options this is a fixed amount.',\n    },\n    {\n        id: 2030,\n        name: 'UnderlyingPriceQuoteMethod',\n        abbrName: 'PxQteMeth',\n        type: 'PriceQuoteMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Method for price quotation.',\n    },\n    {\n        id: 2031,\n        name: 'UnderlyingValuationMethod',\n        abbrName: 'ValMeth',\n        type: 'ValuationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates type of valuation method used.',\n    },\n    {\n        id: 2032,\n        name: 'UnderlyingListMethod',\n        abbrName: 'ListMeth',\n        type: 'ListMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates whether the instruments are pre-listed only or can also be defined via user request.',\n    },\n    {\n        id: 2033,\n        name: 'UnderlyingCapPrice',\n        abbrName: 'CapPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Used to express the ceiling price of a capped call.',\n    },\n    {\n        id: 2034,\n        name: 'UnderlyingFloorPrice',\n        abbrName: 'FlrPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Used to express the floor price of a capped put.',\n    },\n    {\n        id: 2035,\n        name: 'UnderlyingFlexibleIndicator',\n        abbrName: 'FlexInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used to indicate if a security has been defined as flexible according to \"non-standard\" means. Analog to CFICode Standard/Non-standard indicator.',\n    },\n    {\n        id: 2036,\n        name: 'UnderlyingFlexProductEligibilityIndicator',\n        abbrName: 'FlexProdElig',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Used to indicate if a product or group of product supports the creation of flexible securities.',\n    },\n    {\n        id: 2037,\n        name: 'UnderlyingPositionLimit',\n        abbrName: 'PosLmt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Position limit for the instrument.',\n    },\n    {\n        id: 2038,\n        name: 'UnderlyingNTPositionLimit',\n        abbrName: 'NTPosLmt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Position Limit in the near-term contract for a given exchange-traded product.',\n    },\n    {\n        id: 2039,\n        name: 'UnderlyingPool',\n        abbrName: 'Pool',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the mortgage backed security (MBS) / asset backed security (ABS) pool.',\n    },\n    {\n        id: 2040,\n        name: 'UnderlyingContractSettlMonth',\n        abbrName: 'CSetMo',\n        type: 'MonthYear',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies when the contract (i.e. MBS/TBA) will settle. Must be present for MBS/TBA.',\n    },\n    {\n        id: 2041,\n        name: 'UnderlyingDatedDate',\n        abbrName: 'Dated',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'If different from IssueDate()',\n    },\n    {\n        id: 2042,\n        name: 'UnderlyingInterestAccrualDate',\n        abbrName: 'IntAcrl',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'If different from IssueDate and DatedDate',\n    },\n    {\n        id: 2043,\n        name: 'UnderlyingShortSaleRestriction',\n        abbrName: 'ShrtRstctn',\n        type: 'ShortSaleRestrictionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates whether a restriction applies to short selling a security.',\n    },\n    {\n        id: 2044,\n        name: 'UnderlyingRefTickTableID',\n        abbrName: 'RefTickTblID',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Spread table code referred by the security or symbol.',\n    },\n    {\n        id: 2045,\n        name: 'NoUnderlyingComplexEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of complex events in the repeating group.',\n    },\n    {\n        id: 2046,\n        name: 'UnderlyingComplexEventType',\n        abbrName: 'Typ',\n        type: 'ComplexEventTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the type of complex event.',\n    },\n    {\n        id: 2047,\n        name: 'UnderlyingComplexOptPayoutAmount',\n        abbrName: 'OptPayAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Cash amount indicating the pay out associated with an event. For binary options this is a fixed amount.',\n    },\n    {\n        id: 2048,\n        name: 'UnderlyingComplexEventPrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the price at which the complex event takes effect. Impact of the event price is determined by the UnderlyingComplexEventType(2046).',\n    },\n    {\n        id: 2049,\n        name: 'UnderlyingComplexEventPriceBoundaryMethod',\n        abbrName: 'PxBndryMeth',\n        type: 'ComplexEventPriceBoundaryMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the boundary condition to be used for the event price relative to the UnderlyingComplexEventPrice(2048) at the point the complex event outcome takes effect as determined by the UnderlyingComplexEventPriceTimeType(2051).',\n    },\n    {\n        id: 2050,\n        name: 'UnderlyingComplexEventPriceBoundaryPrecision',\n        abbrName: 'PxBndryPrcsn',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used in combination with UnderlyingComplexEventPriceBoundaryMethod(2049) to specify the percentage of the strike price in relation to the underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls.',\n    },\n    {\n        id: 2051,\n        name: 'UnderlyingComplexEventPriceTimeType',\n        abbrName: 'PxTmTyp',\n        type: 'ComplexEventPriceTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'Specifies when the complex event outcome takes effect. The outcome of a complex event is a payout or barrier action as specified by the UnderlyingComplexEventType(2046).',\n    },\n    {\n        id: 2052,\n        name: 'UnderlyingComplexEventCondition',\n        abbrName: 'Cond',\n        type: 'ComplexEventConditionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the condition between complex events when more than one event is specified.\\n\\nMultiple barrier events would use an \"or\" condition since only one can be effective at a given time. A set of digital range events would use an \"and\" condition since both conditions must be in effect for a payout to result.',\n    },\n    {\n        id: 2053,\n        name: 'NoUnderlyingComplexEventDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of underlying complex event dates in the repeating group.',\n    },\n    {\n        id: 2054,\n        name: 'UnderlyingComplexEventStartDate',\n        abbrName: 'StartDt',\n        type: 'UTCDateOnly',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description:\n            'The start date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options.\\n\\nThe start date must always be less than or equal to end date.',\n    },\n    {\n        id: 2055,\n        name: 'UnderlyingComplexEventEndDate',\n        abbrName: 'EndDt',\n        type: 'UTCDateOnly',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description:\n            'The end date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options.\\n\\nUnderlyingComplexEventEndDate(2056) must always be greater than or equal to UnderlyingComplexEventStartDate(2055).',\n    },\n    {\n        id: 2056,\n        name: 'NoUnderlyingComplexEventTimes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of complex event times in the repeating group.',\n    },\n    {\n        id: 2057,\n        name: 'UnderlyingComplexEventStartTime',\n        abbrName: 'StartTm',\n        type: 'UTCTimeOnly',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The start time of the time range on which a complex event date is effective.\\n\\nUnderlyingComplexEventStartTime(2057) must always be less than or equal to UndelryingComplexEventEndTime(2058).',\n    },\n    {\n        id: 2058,\n        name: 'UnderlyingComplexEventEndTime',\n        abbrName: 'EndTm',\n        type: 'UTCTimeOnly',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The end time of the time range on which a complex event date is effective.\\n\\nUnderlyingComplexEventEndTime(2058) must always be greater than or equal to UnderlyingComplexEventStartTime(2057).',\n    },\n    {\n        id: 2059,\n        name: 'NoLegEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of events in the repeating group',\n    },\n    {\n        id: 2060,\n        name: 'LegEventType',\n        abbrName: 'Typ',\n        type: 'EventTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Code to represent the type of event.',\n    },\n    {\n        id: 2061,\n        name: 'LegEventDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The date of the event.',\n    },\n    {\n        id: 2062,\n        name: 'LegEventTime',\n        abbrName: 'Tm',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specific time of event. To be used in combination with LegEventDate(2061).',\n    },\n    {\n        id: 2063,\n        name: 'LegEventTimeUnit',\n        abbrName: 'TmUnit',\n        type: 'EventTimeUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the event.',\n    },\n    {\n        id: 2064,\n        name: 'LegEventTimePeriod',\n        abbrName: 'TmPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the event.',\n    },\n    {\n        id: 2065,\n        name: 'LegEventPx',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Predetermined price of issue at event, if applicable.',\n    },\n    {\n        id: 2066,\n        name: 'LegEventText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Free form text to specify additional information or enumeration description when a standard value does not apply.',\n    },\n    {\n        id: 2067,\n        name: 'LegAssetClass',\n        abbrName: 'AssetClss',\n        type: 'AssetClassCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The broad asset category for assessing risk exposure.',\n    },\n    {\n        id: 2068,\n        name: 'LegAssetSubClass',\n        abbrName: 'AssetSubClss',\n        type: 'AssetSubClassCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The general subcategory description of the asset class.',\n    },\n    {\n        id: 2069,\n        name: 'LegAssetType',\n        abbrName: 'AssetTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '235',\n        description:\n            \"Used to provide more specific description of the asset specified in LegAssetSubClass(2068).\\n\\nSee https://www.fixtrading.org/codelists/AssetType for code list of applicable values. ISO 4721 Currency Code values are to be used when specific currency as an asset type is to be expressed.\\n\\nOther values may be used by mutual agreement of the counterparties.\\n\\nIn the context of MiFID II's this may indicate the value needed in ESMA RTS 2 Annex IV Table 2 Field 16, or ESMA RTS 23 Annex I Table 2 'Sub product' field.\",\n    },\n    {\n        id: 2070,\n        name: 'LegSwapClass',\n        abbrName: 'SwapClss',\n        type: 'SwapClassCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Swap type.',\n    },\n    {\n        id: 2071,\n        name: 'UnderlyingEventText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Free form text to specify comments related to the event.',\n    },\n    {\n        id: 2072,\n        name: 'EncodedUnderlyingEventTextLen',\n        abbrName: 'EncTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedUnderlyingEventText(2073) field.',\n    },\n    {\n        id: 2073,\n        name: 'EncodedUnderlyingEventText',\n        abbrName: 'EncTxt',\n        type: 'data',\n        lengthId: '2072',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingEventText(2071) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingEventText(2071) field.',\n    },\n    {\n        id: 2074,\n        name: 'EncodedLegEventTextLen',\n        abbrName: 'EncTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedLegEventText(2075) field.',\n    },\n    {\n        id: 2075,\n        name: 'EncodedLegEventText',\n        abbrName: 'EncTxt',\n        type: 'data',\n        lengthId: '2074',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Encoded (non-ASCII characters) representation of the LegEventText(2066) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegEventText(2066) field.',\n    },\n    {\n        id: 2076,\n        name: 'NoLegSecondaryAssetClasses',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of secondary asset classes in the repeating group.',\n    },\n    {\n        id: 2077,\n        name: 'LegSecondaryAssetClass',\n        abbrName: 'Clss',\n        type: 'AssetClassCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The broad asset category for assessing risk exposure for a multi-asset trade.',\n    },\n    {\n        id: 2078,\n        name: 'LegSecondaryAssetSubClass',\n        abbrName: 'SubClss',\n        type: 'AssetSubClassCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'An indication of the general description of the asset class.',\n    },\n    {\n        id: 2079,\n        name: 'LegSecondaryAssetType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '235',\n        description:\n            \"Used to provide more specific description of the asset specified in LegSecondaryAssetSubClass(2078).\\n\\nSee https://www.fixtrading.org/codelists/AssetType for code list of applicable values. ISO 4721 Currency Code values are to be used when specific currency as an asset type is to be expressed.\\n\\nOther values may be used by mutual agreement of the counterparties.\\n\\nIn the context of MiFID II's this may indicate the value needed in ESMA RTS 2 Annex IV Table 2 Field 16, or ESMA RTS 23 Annex I Table 2 'Sub product' field.\",\n    },\n    {\n        id: 2080,\n        name: 'NoUnderlyingSecondaryAssetClasses',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of secondary asset classes in the repeating group.',\n    },\n    {\n        id: 2081,\n        name: 'UnderlyingSecondaryAssetClass',\n        abbrName: 'Clss',\n        type: 'AssetClassCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The broad asset category for assessing risk exposure for a multi-asset trade.',\n    },\n    {\n        id: 2082,\n        name: 'UnderlyingSecondaryAssetSubClass',\n        abbrName: 'SubClss',\n        type: 'AssetSubClassCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'An indication of the general description of the asset class.',\n    },\n    {\n        id: 2083,\n        name: 'UnderlyingSecondaryAssetType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '235',\n        description:\n            \"Used to provide more specific description of the asset specified in UnderlyingSecondaryAssetSubClass(2082).\\n\\nSee https://www.fixtrading.org/codelists/AssetType for code list of applicable values. ISO 4721 Currency Code values are to be used when specific currency as an asset type is to be expressed.\\n\\nOther values may be used by mutual agreement of the counterparties.\\n\\nIn the context of MiFID II's this may indicate the value needed in ESMA RTS 2 Annex IV Table 2 Field 16, or ESMA RTS 23 Annex I Table 2 'Sub product' field.\",\n    },\n    {\n        id: 2084,\n        name: 'PreviousClearingBusinessDate',\n        abbrName: 'PrevBizDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'The date of the previous clearing business day.',\n    },\n    {\n        id: 2085,\n        name: 'ValuationDate',\n        abbrName: 'ValDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'The valuation date of the trade.',\n    },\n    {\n        id: 2086,\n        name: 'ValuationTime',\n        abbrName: 'ValTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'The valuation time of the trade.',\n    },\n    {\n        id: 2087,\n        name: 'ValuationBusinessCenter',\n        abbrName: 'ValBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Identifies the business center whose calendar is used for valuation, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 2088,\n        name: 'MarginAmtFXRate',\n        abbrName: 'FxRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Foreign exchange rate used to compute the MarginAmt(1645) from the MarginAmtCcy(1646) and the Currency(15).',\n    },\n    {\n        id: 2089,\n        name: 'MarginAmtFXRateCalc',\n        abbrName: 'FxRtCalc',\n        type: 'UnderlyingFXRateCalcCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Specifies whether or not MarginAmtFXRate(2088) should be multipled or divided.',\n    },\n    {\n        id: 2090,\n        name: 'CollateralFXRate',\n        abbrName: 'FxRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Foreign exchange rate used to compute the CurrentCollateralAmount(1704) from the CollateralCurrency(1646) and the Currency(15).',\n    },\n    {\n        id: 2091,\n        name: 'CollateralFXRateCalc',\n        abbrName: 'FxRtCalc',\n        type: 'UnderlyingFXRateCalcCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Specifies whether or not CollateralFXRate(2090) should be multipled or divided.',\n    },\n    {\n        id: 2092,\n        name: 'CollateralAmountMarketSegmentID',\n        abbrName: 'MktSegID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Market segment associated with the collateral amount.',\n    },\n    {\n        id: 2093,\n        name: 'CollateralAmountMarketID',\n        abbrName: 'MktID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Market associated with the collateral amount.',\n    },\n    {\n        id: 2094,\n        name: 'PayCollectFXRate',\n        abbrName: 'FxRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Foreign exchange rate used to compute the PayAmount(1710) or CollectAmount(1711) from the PayCollectCurrency(1709) and the Currency(15).',\n    },\n    {\n        id: 2095,\n        name: 'PayCollectFXRateCalc',\n        abbrName: 'FxRtCalc',\n        type: 'UnderlyingFXRateCalcCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Specifies whether or not PayCollectFXRate(2094) should be multipled or divided.',\n    },\n    {\n        id: 2096,\n        name: 'PosAmtStreamDesc',\n        abbrName: 'StrmDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Corresponds to the value in StreamDesc(40051) in the StreamGrp component.',\n    },\n    {\n        id: 2097,\n        name: 'PositionFXRate',\n        abbrName: 'FxRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description:\n            'Foreign exchange rate used to compute the PosAmt(708) from the PositionCurrency(1055) and the Currency (15).',\n    },\n    {\n        id: 2098,\n        name: 'PositionFXRateCalc',\n        abbrName: 'FxRtCalc',\n        type: 'UnderlyingFXRateCalcCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Specifies whether or not PositionFXRate(2097) should be multipled or divided.',\n    },\n    {\n        id: 2099,\n        name: 'PosAmtMarketSegmentID',\n        abbrName: 'MktSegID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Market segment associated with the position amount.',\n    },\n    {\n        id: 2100,\n        name: 'PosAmtMarketID',\n        abbrName: 'MktID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Market associated with the position amount.',\n    },\n    {\n        id: 2101,\n        name: 'TerminatedIndicator',\n        abbrName: 'TrmtdInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '162',\n        description: 'Indicates if the position has been terminated.',\n    },\n    {\n        id: 2102,\n        name: 'ShortMarkingExemptIndicator',\n        abbrName: 'SMEInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '164',\n        description:\n            'Indicates whether the originating account is exempt (Y) from marking orders as short or not (N). This designation may be used on both buy and sell orders.',\n    },\n    {\n        id: 2103,\n        name: 'RelatedRegulatoryTradeIDSource',\n        abbrName: 'RegSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '165',\n        description: 'Specifies the identifier of the reporting entity as assigned by regulatory agency.',\n    },\n    {\n        id: 2104,\n        name: 'NoAttachments',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        description: 'The number of attached files.',\n    },\n    {\n        id: 2105,\n        name: 'AttachmentName',\n        abbrName: 'Name',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        description: 'Specifies the file name of the attachment.',\n    },\n    {\n        id: 2106,\n        name: 'AttachmentMediaType',\n        abbrName: 'MediaTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        description:\n            'The MIME media type (and optional subtype) of the attachment. The values used are those assigned, listed and maintained by IANA (www.iana.org) [RFC2046]. See http://www.iana.org/assignments/media-types/index.html for available types.\\n\\nExamples values (RFC number provided for reference here only):\\n\\n\"application/pdf\" (see [RFC3778])\\n\\n\"application/msword\" (for .doc files)\\n\\n\"multipart/signed\" (see [RFC1847])\\n\\n\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" (for .docx files)',\n    },\n    {\n        id: 2107,\n        name: 'AttachmentClassification',\n        abbrName: 'Clsfn',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        description:\n            'Specifies semantically the type of the attached document from a business perspective. The default classification scheme reuses the FIX standard classification scheme of a high level section (pretrade, trade, posttrade, etc.) and a category, then a specific application or document type. The expression follows {\"section/category/application type\"}.\\n\\nThe goal here is to map the attachment into the sections and categories of the FIX business messages if possible. The classification scheme can be expanded or replaced by counterparty agreement. This approach permits the introduction and reference to other business ontologies.\\n\\nExample:\\n\\nposttrade/confirmation/confirm\\n\\npretrade//termsheet',\n    },\n    {\n        id: 2108,\n        name: 'AttachmentExternalURL',\n        abbrName: 'URL',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        description: 'Used to specify an external URL where the attachment can be obtained.',\n    },\n    {\n        id: 2109,\n        name: 'AttachmentEncodingType',\n        abbrName: 'EncTyp',\n        type: 'AttachmentEncodingTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'The encoding type of the content provided in EncodedAttachment(2112).\\n\\nThe AttachmentEncodingType(2109) is a distinct and separate concept from MessageEncoding(347) that defines how FIX fields of type data are encoded. The MessageEncoding(347) is used to embed text in another character set (e.g. Unicode or Shift-JIS) within FIX.',\n    },\n    {\n        id: 2110,\n        name: 'UnencodedAttachmentLen',\n        abbrName: 'UnencAttchmntLen',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        description: 'Unencoded content length in bytes. Can be used to validate successful unencoding.',\n    },\n    {\n        id: 2111,\n        name: 'EncodedAttachmentLen',\n        abbrName: 'EncAttchmntLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        description: 'Byte length of encoded the EncodedAttachment(2112) field.',\n    },\n    {\n        id: 2112,\n        name: 'EncodedAttachment',\n        abbrName: 'EncAttchmnt',\n        type: 'data',\n        lengthId: '2111',\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        description:\n            'The content of the attachment in the encoding format specified in the AttachmentEncodingType(2109) field.',\n    },\n    {\n        id: 2113,\n        name: 'NoAttachmentKeywords',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        description: 'The number of attachment keywords.',\n    },\n    {\n        id: 2114,\n        name: 'AttachmentKeyword',\n        abbrName: 'Keywd',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        description: 'Can be used to provide data or keyword tagging of the content of the attachment.',\n    },\n    {\n        id: 2115,\n        name: 'NegotiationMethod',\n        abbrName: 'NegottnMeth',\n        type: 'NegotiationMethodCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '168',\n        description: 'Specifies the negotiation method to be used.',\n    },\n    {\n        id: 2116,\n        name: 'NextAuctionTime',\n        abbrName: 'NxtAuctTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '168',\n        description: 'The time of the next auction.',\n    },\n    {\n        id: 2117,\n        name: 'ComplexOptPayoutPaySide',\n        abbrName: 'OptPay',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Trade side of payout payer.',\n    },\n    {\n        id: 2118,\n        name: 'ComplexOptPayoutReceiveSide',\n        abbrName: 'OptRcv',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Trade side of payout receiver.',\n    },\n    {\n        id: 2119,\n        name: 'ComplexOptPayoutUnderlier',\n        abbrName: 'OptUndlr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to the underlier whose payments are being passed through.',\n    },\n    {\n        id: 2120,\n        name: 'ComplexOptPayoutPercentage',\n        abbrName: 'OptPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Percentage of observed price for calculating the payout associated with the event.',\n    },\n    {\n        id: 2121,\n        name: 'ComplexOptPayoutTime',\n        abbrName: 'OptTm',\n        type: 'ComplexOptPayoutTimeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies when the payout is to occur.',\n    },\n    {\n        id: 2122,\n        name: 'ComplexOptPayoutCurrency',\n        abbrName: 'OptCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies the currency of the payout amount.\\n\\nComplexOptPayoutCurrencyCodeSource(2941) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.',\n    },\n    {\n        id: 2123,\n        name: 'ComplexEventPricePercentage',\n        abbrName: 'PxPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the price percentage at which the complex event takes effect. Impact of the event price is determined by the ComplexEventType(1484).',\n    },\n    {\n        id: 2124,\n        name: 'ComplexEventCurrencyOne',\n        abbrName: 'Ccy1',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies the first or only reference currency of the trade.\\n\\nComplexEventCurrencyOneCodeSource(2942) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\\n\\nApplicable for complex FX option strategies.',\n    },\n    {\n        id: 2125,\n        name: 'ComplexEventCurrencyTwo',\n        abbrName: 'Ccy2',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies the second reference currency of the trade.\\n\\nComplexEventCurrencyTwoCodeSource(2943) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\\n\\nApplicable for complex FX option strategies.',\n    },\n    {\n        id: 2126,\n        name: 'ComplexEventQuoteBasis',\n        abbrName: 'QteBasis',\n        type: 'ComplexEventQuoteBasisCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'For foreign exchange Quanto option feature.',\n    },\n    {\n        id: 2127,\n        name: 'ComplexEventFixedFXRate',\n        abbrName: 'Rt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the fixed FX rate alternative for FX Quantro options.',\n    },\n    {\n        id: 2128,\n        name: 'ComplexEventDeterminationMethod',\n        abbrName: 'Meth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the method according to which an amount or a date is determined.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 2129,\n        name: 'ComplexEventCalculationAgent',\n        abbrName: 'CalcAgent',\n        type: 'ProvisionCalculationAgentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Used to identify the calculation agent.',\n    },\n    {\n        id: 2130,\n        name: 'ComplexEventStrikePrice',\n        abbrName: 'StrkPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Upper strike price for Asian option feature. Strike percentage for a Strike Spread.',\n    },\n    {\n        id: 2131,\n        name: 'ComplexEventStrikeFactor',\n        abbrName: 'StrkFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Strike factor for Asian option feature. Upper strike percentage for a Strike Spread.',\n    },\n    {\n        id: 2132,\n        name: 'ComplexEventStrikeNumberOfOptions',\n        abbrName: 'StrkNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Upper string number of options for a Strike Spread.',\n    },\n    {\n        id: 2133,\n        name: 'ComplexEventCreditEventsXIDRef',\n        abbrName: 'CdtEvntXIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to credit event table elsewhere in the message.',\n    },\n    {\n        id: 2134,\n        name: 'ComplexEventCreditEventNotifyingParty',\n        abbrName: 'NotifygPty',\n        type: 'ComplexEventCreditEventNotifyingPartyCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring.',\n    },\n    {\n        id: 2135,\n        name: 'ComplexEventCreditEventBusinessCenter',\n        abbrName: 'BizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The local business center for which the credit event is to be determined. The inclusion of this business center implies that Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions is replaced by the local time of the specified business center.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 2136,\n        name: 'ComplexEventCreditEventStandardSources',\n        abbrName: 'StdSrcs',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"When this element is specified and set to 'Y', indicates that ISDA defined Standard Public Sources are applicable.\",\n    },\n    {\n        id: 2137,\n        name: 'ComplexEventCreditEventMinimumSources',\n        abbrName: 'MinSrcs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two.\\n\\nISDA 2003 Term: Specified Number.',\n    },\n    {\n        id: 2138,\n        name: 'ComplexEventXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this complex event for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 2139,\n        name: 'ComplexEventXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to a complex event elsewhere in the message.',\n    },\n    {\n        id: 2140,\n        name: 'ValuationReferenceModel',\n        abbrName: 'ValRefModel',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the methodology and/or assumptions used to generate the trade value.',\n    },\n    {\n        id: 2141,\n        name: 'StrategyType',\n        abbrName: 'StrtTyp',\n        type: 'StrategyTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the type of trade strategy.',\n    },\n    {\n        id: 2142,\n        name: 'CommonPricingIndicator',\n        abbrName: 'CmnPxng',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"When this element is specified and set to 'Y', it indicates that common pricing applies. Common pricing may be relevant for a transaction that references more than one commodity reference price.\",\n    },\n    {\n        id: 2143,\n        name: 'SettlDisruptionProvision',\n        abbrName: 'SettlDsrptnProv',\n        type: 'SettlDisruptionProvisionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the consequences of bullion settlement disruption events.',\n    },\n    {\n        id: 2144,\n        name: 'InstrumentRoundingDirection',\n        abbrName: 'RndDirctn',\n        type: 'RoundingDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the rounding direction if not overridden elsewhere.',\n    },\n    {\n        id: 2145,\n        name: 'InstrumentRoundingPrecision',\n        abbrName: 'RndPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7.',\n    },\n    {\n        id: 2146,\n        name: 'LegSettleOnOpenFlag',\n        abbrName: 'SettlOnOpenFlag',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Indicator to determine if the instrument is to settle on open.',\n    },\n    {\n        id: 2147,\n        name: 'LegInstrmtAssignmentMethod',\n        abbrName: 'AsgnMeth',\n        type: 'InstrmtAssignmentMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the method under which assignment was conducted.',\n    },\n    {\n        id: 2148,\n        name: 'LegSecurityStatus',\n        abbrName: 'Status',\n        type: 'SecurityStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Indicates the current state of the leg instrument.',\n    },\n    {\n        id: 2149,\n        name: 'LegRestructuringType',\n        abbrName: 'RestrctTyp',\n        type: 'RestructuringTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'A category of CDS credit event in which the underlying bond experiences a restructuring.\\n\\nUsed to define a CDS instrument.',\n    },\n    {\n        id: 2150,\n        name: 'LegSeniority',\n        abbrName: 'Snrty',\n        type: 'SeniorityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies which issue (underlying bond) will receive payment priority in the event of a default.\\n\\nUsed to define a CDS instrument.',\n    },\n    {\n        id: 2151,\n        name: 'LegNotionalPercentageOutstanding',\n        abbrName: 'NotlPctOut',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates the notional percentage of the deal that is still outstanding based on the remaining components of the index.\\n\\nUsed to calculate the true value of a CDS trade or position.',\n    },\n    {\n        id: 2152,\n        name: 'LegOriginalNotionalPercentageOutstanding',\n        abbrName: 'OrigNotlPctOut',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Used to reflect the Original value prior to the application of a credit event. See LegNotionalPercentageOutstanding(2151).',\n    },\n    {\n        id: 2153,\n        name: 'LegAttachmentPoint',\n        abbrName: 'AttchPnt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Lower bound percentage of the loss that the tranche can endure.',\n    },\n    {\n        id: 2154,\n        name: 'LegDetachmentPoint',\n        abbrName: 'DetchPnt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Upper bound percentage of the loss the tranche can endure.',\n    },\n    {\n        id: 2155,\n        name: 'LegObligationType',\n        abbrName: 'ObligTyp',\n        type: 'ObligationTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Type of reference obligation for credit derivatives contracts.',\n    },\n    {\n        id: 2156,\n        name: 'LegSwapSubClass',\n        abbrName: 'SwapSubClss',\n        type: 'SwapSubClassCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description: 'The sub-classification or notional schedule type of the swap.',\n    },\n    {\n        id: 2157,\n        name: 'LegNthToDefault',\n        abbrName: 'NthDflt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The Nth reference obligation in a CDS reference basket. If specified without LegMthToDefault(2158) the default will trigger a CDS payout. If LegMthToDefault(2158) is also present then payout occurs between the Nth and Mth obligations to default.',\n    },\n    {\n        id: 2158,\n        name: 'LegMthToDefault',\n        abbrName: 'MthDflt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The Mth reference obligation to default in a CDS reference basket. When an NthToDefault(2157) to MthToDefault(2158) are represented then the CDS payout occurs between the Nth and Mth obligations to default.',\n    },\n    {\n        id: 2159,\n        name: 'LegSettledEntityMatrixSource',\n        abbrName: 'SettldMtrxSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Relevant settled entity matrix source.',\n    },\n    {\n        id: 2160,\n        name: 'LegSettledEntityMatrixPublicationDate',\n        abbrName: 'SettldMtrxDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The publication date of the applicable version of the matrix. When this element is omitted, the Standard Terms Supplement defines rules for which version of the matrix is applicable.',\n    },\n    {\n        id: 2161,\n        name: 'LegCouponType',\n        abbrName: 'CpnTyp',\n        type: 'CouponTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the coupon type of the bond.',\n    },\n    {\n        id: 2162,\n        name: 'LegTotalIssuedAmount',\n        abbrName: 'TotAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the total amount of the issue. Corresponds to the par value multiplied by the number of issued security.',\n    },\n    {\n        id: 2163,\n        name: 'LegCouponFrequencyPeriod',\n        abbrName: 'CpnPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Time unit multiplier for the frequency of the bond's coupon payment.\",\n    },\n    {\n        id: 2164,\n        name: 'LegCouponFrequencyUnit',\n        abbrName: 'CpnUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Time unit associated with the frequency of the bond's coupon payment.\",\n    },\n    {\n        id: 2165,\n        name: 'LegCouponDayCount',\n        abbrName: 'CpnDayCnt',\n        type: 'CouponDayCountCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The day count convention used in interest calculations for a bond or an interest bearing security.',\n    },\n    {\n        id: 2166,\n        name: 'LegConvertibleBondEquityID',\n        abbrName: 'CnvrtBondEqtyID',\n        type: 'String',\n        discriminatorId: '2167',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the equity in which a convertible bond can be converted to.',\n    },\n    {\n        id: 2167,\n        name: 'LegConvertibleBondEquityIDSource',\n        abbrName: 'CnvrtBondEqtyIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies class or source of the LegConvertibleBondEquitySecurityID(2166) value.',\n    },\n    {\n        id: 2168,\n        name: 'LegContractPriceRefMonth',\n        abbrName: 'PxRefMo',\n        type: 'MonthYear',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Reference month if there is no applicable LegMaturityMonthYear(610) value for the contract or security.',\n    },\n    {\n        id: 2169,\n        name: 'LegLienSeniority',\n        abbrName: 'LienSnrty',\n        type: 'LienSeniorityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Indicates the seniority level of the lien in a loan.',\n    },\n    {\n        id: 2170,\n        name: 'LegLoanFacility',\n        abbrName: 'LoanFclty',\n        type: 'LoanFacilityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Specifies the type of loan when the credit default swap's reference obligation is a loan.\",\n    },\n    {\n        id: 2171,\n        name: 'LegReferenceEntityType',\n        abbrName: 'RefEntityTyp',\n        type: 'ReferenceEntityTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description: 'Specifies the type of reference entity for first-to-default CDS basket contracts.',\n    },\n    {\n        id: 2172,\n        name: 'LegIndexSeries',\n        abbrName: 'NdxSeries',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The series identifier of a credit default swap index.',\n    },\n    {\n        id: 2173,\n        name: 'LegIndexAnnexVersion',\n        abbrName: 'NdxAnxVer',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The version of a credit default swap index annex.',\n    },\n    {\n        id: 2174,\n        name: 'LegIndexAnnexDate',\n        abbrName: 'NdxAnxDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The date of a credit default swap index series annex.',\n    },\n    {\n        id: 2175,\n        name: 'LegIndexAnnexSource',\n        abbrName: 'NdxAnxSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The source of a credit default swap series annex.',\n    },\n    {\n        id: 2176,\n        name: 'LegSettlRateIndex',\n        abbrName: 'SettlNdx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'In an outright or forward commodity trade that is cash settled this is the index used to determine the cash payment.',\n    },\n    {\n        id: 2177,\n        name: 'LegSettlRateIndexLocation',\n        abbrName: 'SettlNdxLctn',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'This is an optional qualifying attribute of LegSettlementRateIndex(2176) such as the delivery zone for an electricity contract.',\n    },\n    {\n        id: 2178,\n        name: 'LegOptionExpirationDesc',\n        abbrName: 'ExpDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Description of the option expiration.',\n    },\n    {\n        id: 2179,\n        name: 'EncodedLegOptionExpirationDescLen',\n        abbrName: 'EncExpDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedLegOptionExpirationDesc(2180) field.',\n    },\n    {\n        id: 2180,\n        name: 'EncodedLegOptionExpirationDesc',\n        abbrName: 'EncExpDesc',\n        type: 'data',\n        lengthId: '2179',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the LegOptionExpirationDesc(2178) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegOptionExpirationDesc(2178).',\n    },\n    {\n        id: 2181,\n        name: 'LegStrikeMultiplier',\n        abbrName: 'StrkMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Used for derivatives. Multiplier applied to the strike price for the purpose of calculating the settlement value.',\n    },\n    {\n        id: 2182,\n        name: 'LegStrikeValue',\n        abbrName: 'StrkValu',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The number of shares/units for the financial instrument involved in the option trade. Used for derivatives.',\n    },\n    {\n        id: 2183,\n        name: 'LegStrikeUnitOfMeasure',\n        abbrName: 'StrkUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Used to express the unit of measure (UOM) of the price if different from the contract.',\n    },\n    {\n        id: 2184,\n        name: 'LegStrikeIndex',\n        abbrName: 'StrkNdx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the index used to calculate the strike price.',\n    },\n    {\n        id: 2185,\n        name: 'LegStrikeIndexSpread',\n        abbrName: 'StrkSpread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the strike price offset from the named index.',\n    },\n    {\n        id: 2186,\n        name: 'LegStrikePriceDeterminationMethod',\n        abbrName: 'StrkPxDtrmnMeth',\n        type: 'StrikePriceDeterminationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies how the strike price is determined at the point of option exercise. The strike may be fixed throughout the life of the option, set at expiration to the value of the underlying, set to the average value of the underlying , or set to the optimal value of the underlying.',\n    },\n    {\n        id: 2187,\n        name: 'LegStrikePriceBoundaryMethod',\n        abbrName: 'StrkPxBndryMeth',\n        type: 'StrikePriceBoundaryMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the boundary condition to be used for the strike price relative to the underlying price at the point of option exercise.',\n    },\n    {\n        id: 2188,\n        name: 'LegStrikePriceBoundaryPrecision',\n        abbrName: 'StrkPxBndryPrcsn',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Used in combination with StrikePriceBoundaryMethod(2187) to specify the percentage of the strike price in relation to the underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls.',\n    },\n    {\n        id: 2189,\n        name: 'LegUnderlyingPriceDeterminationMethod',\n        abbrName: 'PxDtrmnMeth',\n        type: 'UnderlyingPriceDeterminationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies how the underlying price is determined at the point of option exercise. The underlying price may be set to the current settlement price, set to a special reference, set to the optimal value of the underlying during the defined period (\"Look-back\") or set to the average value of the underlying during the defined period (\"Asian option\").',\n    },\n    {\n        id: 2190,\n        name: 'LegMinPriceIncrement',\n        abbrName: 'MinPxIncr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Minimum price increment for a given exchange-traded instrument. Could also be used to represent tick value.',\n    },\n    {\n        id: 2191,\n        name: 'LegMinPriceIncrementAmount',\n        abbrName: 'MinPxIncrAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Minimum price increment amount associated with the LegMinPriceIncrement(2190). For listed derivatives, the value can be calculated by multiplying LegMinPriceIncrement(2190) by LegContractMultiplier(614).',\n    },\n    {\n        id: 2192,\n        name: 'LegSettlMethod',\n        abbrName: 'SettlMeth',\n        type: 'SettlMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Settlement method for a contract or instrument. Additional values may be used with bilateral agreement.',\n    },\n    {\n        id: 2193,\n        name: 'LegOptPayoutType',\n        abbrName: 'OptPayoutTyp',\n        type: 'OptPayoutTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description: 'Indicates the type of valuation method or trigger payout for an in-the-money option.',\n    },\n    {\n        id: 2194,\n        name: 'LegOptPayoutAmount',\n        abbrName: 'OptPayAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Cash amount indicating the pay out associated with an option. For binary options this is a fixed amount.',\n    },\n    {\n        id: 2195,\n        name: 'LegPriceQuoteMethod',\n        abbrName: 'PxQteMeth',\n        type: 'PriceQuoteMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the method for price quotation.',\n    },\n    {\n        id: 2196,\n        name: 'LegValuationMethod',\n        abbrName: 'ValMeth',\n        type: 'ValuationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the type of valuation method applied.',\n    },\n    {\n        id: 2197,\n        name: 'LegValuationSource',\n        abbrName: 'ValSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the source of trade valuation data.',\n    },\n    {\n        id: 2198,\n        name: 'LegValuationReferenceModel',\n        abbrName: 'ValRefModel',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the methodology and/or assumptions used to generate the trade value.',\n    },\n    {\n        id: 2199,\n        name: 'LegListMethod',\n        abbrName: 'ListMeth',\n        type: 'ListMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Indicates whether instruments are pre-listed only or can also be defined via user request.',\n    },\n    {\n        id: 2200,\n        name: 'LegCapPrice',\n        abbrName: 'CapPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Used to express the ceiling price of a capped call.',\n    },\n    {\n        id: 2201,\n        name: 'LegFloorPrice',\n        abbrName: 'FlrPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Used to express the floor price of a capped put.',\n    },\n    {\n        id: 2202,\n        name: 'LegFlexibleIndicator',\n        abbrName: 'FlexInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Used to indicate a derivatives security that can be defined using flexible terms. The terms commonly permitted to be defined by market participants are expiration date and strike price. FlexibleIndicator is an alternative to LegCFICode(608) Standard/Non-standard attribute.',\n    },\n    {\n        id: 2203,\n        name: 'LegFlexProductEligibilityIndicator',\n        abbrName: 'FlexProdElig',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Used to indicate if a product or group of product supports the creation of flexible securities.',\n    },\n    {\n        id: 2204,\n        name: 'LegComplexEventStartTime',\n        abbrName: 'StartTm',\n        type: 'UTCTimeOnly',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The start time of the time range on which a complex event date is effective.\\n\\nThe start time must always be less than or equal to the end time.',\n    },\n    {\n        id: 2205,\n        name: 'LegPositionLimit',\n        abbrName: 'PosLmt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Position Limit for a given exchange-traded product.',\n    },\n    {\n        id: 2206,\n        name: 'LegNTPositionLimit',\n        abbrName: 'NTPosLmt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Position limit in the near-term contract for a given exchange-traded product.',\n    },\n    {\n        id: 2207,\n        name: 'LegCPProgram',\n        abbrName: 'CPPgm',\n        type: 'CPProgramCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The program under which a commercial paper is issued.',\n    },\n    {\n        id: 2208,\n        name: 'LegCPRegType',\n        abbrName: 'CPRegTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The registration type of a commercial paper issuance.',\n    },\n    {\n        id: 2209,\n        name: 'LegShortSaleRestriction',\n        abbrName: 'ShrtRstctn',\n        type: 'ShortSaleRestrictionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Indicates whether a restriction applies to short selling a security.',\n    },\n    {\n        id: 2210,\n        name: 'AssetGroup',\n        abbrName: 'AssetGrp',\n        type: 'AssetGroupCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Indicates the broad product or asset classification. May be used to provide grouping for the product taxonomy (Product(460), SecurityType(167), etc.) and/or the risk taxonomy (AssetClass(1938), AssetSubClass(1939), AssetType(1940), etc.).',\n    },\n    {\n        id: 2211,\n        name: 'LegStrategyType',\n        abbrName: 'StrtTyp',\n        type: 'StrategyTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the type of trade strategy.',\n    },\n    {\n        id: 2212,\n        name: 'LegCommonPricingIndicator',\n        abbrName: 'CmnPxng',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"When this element is specified and set to 'Y', it indicates that common pricing applies. Common pricing may be relevant for a transaction that references more than one commodity reference price.\",\n    },\n    {\n        id: 2213,\n        name: 'LegSettlDisruptionProvision',\n        abbrName: 'SettlDsrptnProv',\n        type: 'SettlDisruptionProvisionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the consequences of bullion settlement disruption events.',\n    },\n    {\n        id: 2214,\n        name: 'LegInstrumentRoundingDirection',\n        abbrName: 'RndDirctn',\n        type: 'RoundingDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Specifies the rounding direction if not overridden elsewhere.\\n\\nApplicable for complex FX option strategies.',\n    },\n    {\n        id: 2215,\n        name: 'LegInstrumentRoundingPrecision',\n        abbrName: 'RndPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7.',\n    },\n    {\n        id: 2216,\n        name: 'MiscFeeRate',\n        abbrName: 'Rt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The fee rate when MiscFeeAmt(137) is a percentage of trade quantity.',\n    },\n    {\n        id: 2217,\n        name: 'MiscFeeAmountDue',\n        abbrName: 'AmtDue',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The fee amount due if different from MiscFeeAmt(137).',\n    },\n    {\n        id: 2218,\n        name: 'NoLegComplexEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of complex events in the repeating group.',\n    },\n    {\n        id: 2219,\n        name: 'LegComplexEventType',\n        abbrName: 'Typ',\n        type: 'ComplexEventTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the type of complex event.',\n    },\n    {\n        id: 2220,\n        name: 'LegComplexOptPayoutPaySide',\n        abbrName: 'OptPay',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Trade side of payout payer.',\n    },\n    {\n        id: 2221,\n        name: 'LegComplexOptPayoutReceiveSide',\n        abbrName: 'OptRcv',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Trade side of payout receiver.',\n    },\n    {\n        id: 2222,\n        name: 'LegComplexOptPayoutUnderlier',\n        abbrName: 'OptUndlr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to the underlier whose payments are being passed through.',\n    },\n    {\n        id: 2223,\n        name: 'LegComplexOptPayoutAmount',\n        abbrName: 'OptPayAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Cash amount indicating the pay out associated with an event. For binary options this is a fixed amount.',\n    },\n    {\n        id: 2224,\n        name: 'LegComplexOptPayoutPercentage',\n        abbrName: 'OptPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Percentage of observed price for calculating the payout associated with the event.',\n    },\n    {\n        id: 2225,\n        name: 'LegComplexOptPayoutTime',\n        abbrName: 'OptTm',\n        type: 'ComplexOptPayoutTimeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies when the payout is to occur.',\n    },\n    {\n        id: 2226,\n        name: 'LegComplexOptPayoutCurrency',\n        abbrName: 'OptCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies the currency of the payout amount.\\n\\nLegComplexOptPayoutCurrencyCodeSource(2944) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.',\n    },\n    {\n        id: 2227,\n        name: 'LegComplexEventPrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the price at which the complex event takes effect. Impact of the event price is determined by the LegComplexEventType(2219).',\n    },\n    {\n        id: 2228,\n        name: 'LegComplexEventPricePercentage',\n        abbrName: 'PxPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the price percentage at which the complex event takes effect. Impact of the event price is determined by the LegComplexEventType(2219).',\n    },\n    {\n        id: 2229,\n        name: 'LegComplexEventPriceBoundaryMethod',\n        abbrName: 'PxBndryMeth',\n        type: 'ComplexEventPriceBoundaryMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the boundary condition to be used for the event price relative to the complex event price at the point the complex event outcome takes effect as determined by the LegComplexEventPriceTimeType(2231).',\n    },\n    {\n        id: 2230,\n        name: 'LegComplexEventPriceBoundaryPrecision',\n        abbrName: 'PxBndryPrcsn',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Used in combination with LegComplexEventPriceBoundaryMethod(2229) to specify the percentage of the strike price in relation to the underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls.',\n    },\n    {\n        id: 2231,\n        name: 'LegComplexEventPriceTimeType',\n        abbrName: 'PxTmTyp',\n        type: 'ComplexEventPriceTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies when the complex event outcome takes effect. The outcome of a complex event is a payout or barrier action as specified by the LegComplexEventType(2219).',\n    },\n    {\n        id: 2232,\n        name: 'LegComplexEventCondition',\n        abbrName: 'Cond',\n        type: 'ComplexEventConditionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the condition between complex events when more than one event is specified.\\n\\nMultiple barrier events would use an \"or\" condition since only one can be effective at a given time. A set of digital range events would use an \"and\" condition since both conditions must be in effect for a payout to result.',\n    },\n    {\n        id: 2233,\n        name: 'LegComplexEventCurrencyOne',\n        abbrName: 'Ccy1',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies the first or only reference currency of the trade.\\n\\nLegComplexEventCurrencyOneCodeSource(2945) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\\n\\nApplicable for complex FX option strategies.',\n    },\n    {\n        id: 2234,\n        name: 'LegComplexEventCurrencyTwo',\n        abbrName: 'Ccy2',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies the second reference currency of the trade.\\n\\nLegComplexEventCurrencyTwoCodeSource(2946) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\\n\\nApplicable for complex FX option strategies.',\n    },\n    {\n        id: 2235,\n        name: 'LegComplexEventQuoteBasis',\n        abbrName: 'QteBasis',\n        type: 'ComplexEventQuoteBasisCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'For foreign exchange Quanto option feature.',\n    },\n    {\n        id: 2236,\n        name: 'LegComplexEventFixedFXRate',\n        abbrName: 'Rt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the fixed FX rate alternative for FX Quantro options.',\n    },\n    {\n        id: 2237,\n        name: 'LegComplexEventDeterminationMethod',\n        abbrName: 'Meth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the method according to which an amount or a date is determined.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 2238,\n        name: 'LegComplexEventCalculationAgent',\n        abbrName: 'CalcAgent',\n        type: 'ProvisionCalculationAgentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Used to identify the calculation agent.',\n    },\n    {\n        id: 2239,\n        name: 'LegComplexEventStrikePrice',\n        abbrName: 'StrkPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Upper strike price for Asian option feature. Strike percentage for a Strike Spread.',\n    },\n    {\n        id: 2240,\n        name: 'LegComplexEventStrikeFactor',\n        abbrName: 'StrkFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Strike factor for Asian option feature. Upper strike percentage for a Strike Spread.',\n    },\n    {\n        id: 2241,\n        name: 'LegComplexEventStrikeNumberOfOptions',\n        abbrName: 'StrkNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Upper string number of options for a Strike Spread.',\n    },\n    {\n        id: 2242,\n        name: 'LegComplexEventCreditEventsXIDRef',\n        abbrName: 'CdtEvntXIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to credit event table elsewhere in the message.',\n    },\n    {\n        id: 2243,\n        name: 'LegComplexEventCreditEventNotifyingParty',\n        abbrName: 'NotifygPty',\n        type: 'ComplexEventCreditEventNotifyingPartyCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring.',\n    },\n    {\n        id: 2244,\n        name: 'LegComplexEventCreditEventBusinessCenter',\n        abbrName: 'BizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the local business center for which the credit event is to be determined. The inclusion of this business center implies that Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions is replaced by the local time of the specified business center.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 2245,\n        name: 'LegComplexEventCreditEventStandardSources',\n        abbrName: 'StdSrcs',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"When this element is specified and set to 'Y', indicates that ISDA defined Standard Public Sources are applicable.\",\n    },\n    {\n        id: 2246,\n        name: 'LegComplexEventCreditEventMinimumSources',\n        abbrName: 'MinSrcs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two.\\n\\nISDA 2003 Term: Specified Number.',\n    },\n    {\n        id: 2247,\n        name: 'LegComplexEventEndTime',\n        abbrName: 'EndTm',\n        type: 'UTCTimeOnly',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The end time of the time range on which a complex event date is effective.\\n\\nThe end time must always be greater than or equal to the start time.',\n    },\n    {\n        id: 2248,\n        name: 'LegComplexEventXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this complex event for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 2249,\n        name: 'LegComplexEventXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to a complex event elsewhere in the message.',\n    },\n    {\n        id: 2250,\n        name: 'NoLegComplexEventDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of complex event dates in the repeating group.',\n    },\n    {\n        id: 2251,\n        name: 'LegComplexEventStartDate',\n        abbrName: 'StartDt',\n        type: 'UTCDateOnly',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description:\n            'The start date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options.\\n\\nThe start date must always be less than or equal to end date.',\n    },\n    {\n        id: 2252,\n        name: 'LegComplexEventEndDate',\n        abbrName: 'EndDt',\n        type: 'UTCDateOnly',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description:\n            'The end date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options.\\n\\nThe end date must always be greater than or equal to start date.',\n    },\n    {\n        id: 2253,\n        name: 'NoLegComplexEventTimes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of complex event times in the repeating group.',\n    },\n    {\n        id: 2254,\n        name: 'NoLegInstrumentParties',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of parties in the repeating group.',\n    },\n    {\n        id: 2255,\n        name: 'LegInstrumentPartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '2256',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Used to identify party id related to instrument.',\n    },\n    {\n        id: 2256,\n        name: 'LegInstrumentPartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Used to identify source of instrument party id.',\n    },\n    {\n        id: 2257,\n        name: 'LegInstrumentPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Used to identify the role of instrument party id.',\n    },\n    {\n        id: 2258,\n        name: 'NoLegInstrumentPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of parties sub-IDs in the repeating group.',\n    },\n    {\n        id: 2259,\n        name: 'LegInstrumentPartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'PartySubID value within an instrument party repeating group.',\n    },\n    {\n        id: 2260,\n        name: 'LegInstrumentPartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Type of LegInstrumentPartySubID (2259) value.',\n    },\n    {\n        id: 2261,\n        name: 'UnderlyingComplexOptPayoutPaySide',\n        abbrName: 'OptPay',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Trade side of payout payer.',\n    },\n    {\n        id: 2262,\n        name: 'UnderlyingComplexOptPayoutReceiveSide',\n        abbrName: 'OptRcv',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Trade side of payout receiver.',\n    },\n    {\n        id: 2263,\n        name: 'UnderlyingComplexOptPayoutUnderlier',\n        abbrName: 'OptUndlr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to the underlier whose payments are being passed through.',\n    },\n    {\n        id: 2264,\n        name: 'UnderlyingComplexOptPayoutPercentage',\n        abbrName: 'OptPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Percentage of observed price for calculating the payout associated with the event.',\n    },\n    {\n        id: 2265,\n        name: 'UnderlyingComplexOptPayoutTime',\n        abbrName: 'OptTm',\n        type: 'ComplexOptPayoutTimeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The time when the payout is to occur.',\n    },\n    {\n        id: 2266,\n        name: 'UnderlyingComplexOptPayoutCurrency',\n        abbrName: 'OptCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies the currency of the payout amount.\\n\\nUnderlyingComplexOptPayoutCurrencyCodeSource(2947) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.',\n    },\n    {\n        id: 2267,\n        name: 'UnderlyingComplexEventPricePercentage',\n        abbrName: 'PxPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the price percentage at which the complex event takes effect. Impact of the event price is determined by the UnderlyingComplexEventType(2046).',\n    },\n    {\n        id: 2268,\n        name: 'UnderlyingComplexEventCurrencyOne',\n        abbrName: 'Ccy1',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies the first or only reference currency of the trade.\\n\\nUnderlyingComplexEventCurrencyOneCodeSource(2948) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\\n\\nApplicable for complex FX option strategies.',\n    },\n    {\n        id: 2269,\n        name: 'UnderlyingComplexEventCurrencyTwo',\n        abbrName: 'Ccy2',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies the second reference currency of the trade.\\n\\nUnderlyingComplexEventCurrencyTwoCodeSource(2949) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\\n\\nApplicable for complex FX option strategies.',\n    },\n    {\n        id: 2270,\n        name: 'UnderlyingComplexEventQuoteBasis',\n        abbrName: 'QteBasis',\n        type: 'ComplexEventQuoteBasisCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency pairing for the quote.',\n    },\n    {\n        id: 2271,\n        name: 'UnderlyingComplexEventFixedFXRate',\n        abbrName: 'Rt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the fixed FX rate alternative for FX Quantro options.',\n    },\n    {\n        id: 2272,\n        name: 'UnderlyingComplexEventDeterminationMethod',\n        abbrName: 'Meth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the method according to which an amount or a date is determined.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 2273,\n        name: 'UnderlyingComplexEventCalculationAgent',\n        abbrName: 'CalcAgent',\n        type: 'ProvisionCalculationAgentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Used to identify the calculation agent.',\n    },\n    {\n        id: 2274,\n        name: 'UnderlyingComplexEventStrikePrice',\n        abbrName: 'StrkPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Upper strike price for Asian option feature. Strike percentage for a Strike Spread.',\n    },\n    {\n        id: 2275,\n        name: 'UnderlyingComplexEventStrikeFactor',\n        abbrName: 'StrkFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Strike factor for Asian option feature. Upper strike percentage for a Strike Spread.',\n    },\n    {\n        id: 2276,\n        name: 'UnderlyingComplexEventStrikeNumberOfOptions',\n        abbrName: 'StrkNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Upper string number of options for a Strike Spread.',\n    },\n    {\n        id: 2277,\n        name: 'UnderlyingComplexEventCreditEventsXIDRef',\n        abbrName: 'CdtEvntXIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to credit event table elsewhere in the message.',\n    },\n    {\n        id: 2278,\n        name: 'UnderlyingComplexEventCreditEventNotifyingParty',\n        abbrName: 'NotifygPty',\n        type: 'ComplexEventCreditEventNotifyingPartyCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring.',\n    },\n    {\n        id: 2279,\n        name: 'UnderlyingComplexEventCreditEventBusinessCenter',\n        abbrName: 'BizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the local business center for which the credit event is to be determined. The inclusion of this business center implies that Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions is replaced by the local time of the specified business center.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 2280,\n        name: 'UnderlyingComplexEventCreditEventStandardSources',\n        abbrName: 'StdSrcs',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"When this element is specified and set to 'Y', indicates that ISDA defined Standard Public Sources are applicable.\",\n    },\n    {\n        id: 2281,\n        name: 'UnderlyingComplexEventCreditEventMinimumSources',\n        abbrName: 'MinSrcs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two.\\n\\nISDA 2003 Term: Specified Number.',\n    },\n    {\n        id: 2282,\n        name: 'UnderlyingComplexEventXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this complex event for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 2283,\n        name: 'UnderlyingComplexEventXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to a complex event elsewhere in the message.',\n    },\n    {\n        id: 2284,\n        name: 'UnderlyingSettlRateIndex',\n        abbrName: 'SettlNdx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'In an outright or forward commodity trade that is cash settled this is the index used to determine the cash payment.',\n    },\n    {\n        id: 2285,\n        name: 'UnderlyingSettlRateIndexLocation',\n        abbrName: 'SettlNdxLctn',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'This is an optional qualifying attribute of UnderlyingSettlementRateIndex(2284) such as the delivery zone for an electricity contract.',\n    },\n    {\n        id: 2286,\n        name: 'UnderlyingOptionExpirationDesc',\n        abbrName: 'ExpDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Description of the option expiration.',\n    },\n    {\n        id: 2287,\n        name: 'EncodedUnderlyingOptionExpirationDescLen',\n        abbrName: 'EncExpDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedUnderlyingOptionExpirationDesc(2288) field.',\n    },\n    {\n        id: 2288,\n        name: 'EncodedUnderlyingOptionExpirationDesc',\n        abbrName: 'EncExpDesc',\n        type: 'data',\n        lengthId: '2287',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingOptionExpirationDesc(2286) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingOptionExpirationDesc(2286).',\n    },\n    {\n        id: 2289,\n        name: 'UnderlyingSwapSubClass',\n        abbrName: 'SwapSubClss',\n        type: 'SwapSubClassCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '238',\n        description: 'The sub-classification or notional schedule type of the swap.',\n    },\n    {\n        id: 2290,\n        name: 'UnderlyingStrikeUnitOfMeasure',\n        abbrName: 'StrkUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Used to express the unit of measure (UOM) of the price if different from the contract.',\n    },\n    {\n        id: 2291,\n        name: 'UnderlyingStrikeIndex',\n        abbrName: 'StrkNdx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the index used to calculate the strike price.',\n    },\n    {\n        id: 2292,\n        name: 'UnderlyingStrikeIndexSpread',\n        abbrName: 'StrkSpread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the strike price offset from the named index.',\n    },\n    {\n        id: 2293,\n        name: 'UnderlyingValuationSource',\n        abbrName: 'ValSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the source of trade valuation data.',\n    },\n    {\n        id: 2294,\n        name: 'UnderlyingValuationReferenceModel',\n        abbrName: 'ValRefModel',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the methodology and/or assumptions used to generate the trade value.',\n    },\n    {\n        id: 2295,\n        name: 'UnderlyingStrategyType',\n        abbrName: 'StrtTyp',\n        type: 'StrategyTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the type of trade strategy.',\n    },\n    {\n        id: 2296,\n        name: 'UnderlyingCommonPricingIndicator',\n        abbrName: 'CmnPxng',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"When this element is specified and set to 'Y', it indicates that common pricing applies. Common pricing may be relevant for a transaction that references more than one commodity reference price.\",\n    },\n    {\n        id: 2297,\n        name: 'UnderlyingSettlDisruptionProvision',\n        abbrName: 'SettlDsrptnProv',\n        type: 'SettlDisruptionProvisionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the consequences of settlement disruption events.',\n    },\n    {\n        id: 2298,\n        name: 'UnderlyingInstrumentRoundingDirection',\n        abbrName: 'RndDirctn',\n        type: 'RoundingDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the rounding direction if not overridden elsewhere.',\n    },\n    {\n        id: 2299,\n        name: 'UnderlyingInstrumentRoundingPrecision',\n        abbrName: 'RndPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7.',\n    },\n    {\n        id: 2300,\n        name: 'AllocGrossTradeAmt',\n        abbrName: 'GrossTrdAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '170',\n        description: 'Total amount traded for this account (i.e. quantity * price) expressed in units of currency.',\n    },\n    {\n        id: 2301,\n        name: 'LastQtyChanged',\n        abbrName: 'QtyChngd',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The positive or negative change in quantity when this report is a trade correction or continuation.',\n    },\n    {\n        id: 2302,\n        name: 'TradeVersion',\n        abbrName: 'TrdVer',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the version of a trade or contract. This is used by systems or trading platforms in conjunction with TradeID(1003) to uniquely identify the version of a trade or contract. If used the conditions for a change of version are subject to bilateral agreement. It is recommended to change the version only for significant updates to the business entity rather than for minor changes to trade details or systematic distribution of reports. Examples where the version would change are trade quantity modification, customer account assignment or trade novation.',\n    },\n    {\n        id: 2303,\n        name: 'HistoricalReportIndicator',\n        abbrName: 'HistrclRpt',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates that the trade or event being reported occurred in the past and the trade is terminated or no longer active.',\n    },\n    {\n        id: 2304,\n        name: 'NoAssetAttributes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of asset attribute entries in the group.',\n    },\n    {\n        id: 2305,\n        name: 'AssetAttributeType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the name of the attribute.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Asset_Attribute_Types for code list of applicable asset attribute types.',\n    },\n    {\n        id: 2306,\n        name: 'AssetAttributeValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the value of the asset attribute.',\n    },\n    {\n        id: 2307,\n        name: 'AssetAttributeLimit',\n        abbrName: 'Lmt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Limit or lower acceptable value of the attribute.',\n    },\n    {\n        id: 2308,\n        name: 'NoLegAssetAttributes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of asset attribute entries in the group.',\n    },\n    {\n        id: 2309,\n        name: 'LegAssetAttributeType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the name of the attribute.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Asset_Attribute_Types for code list of applicable asset attribute types.',\n    },\n    {\n        id: 2310,\n        name: 'LegAssetAttributeValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the value of the attribute.',\n    },\n    {\n        id: 2311,\n        name: 'LegAssetAttributeLimit',\n        abbrName: 'Lmt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Limit or lower acceptable value of the attribute.',\n    },\n    {\n        id: 2312,\n        name: 'NoUnderlyingAssetAttributes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of asset attribute entries in the group.',\n    },\n    {\n        id: 2313,\n        name: 'UnderlyingAssetAttributeType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the name of the attribute.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Asset_Attribute_Types for code list of applicable asset attribute types.',\n    },\n    {\n        id: 2314,\n        name: 'UnderlyingAssetAttributeValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the value of the attribute.',\n    },\n    {\n        id: 2315,\n        name: 'UnderlyingAssetAttributeLimit',\n        abbrName: 'Lmt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Limit or lower acceptable value of the attribute.',\n    },\n    {\n        id: 2316,\n        name: 'RiskLimitReportStatus',\n        abbrName: 'RptStat',\n        type: 'RiskLimitReportStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Status of risk limit report.',\n    },\n    {\n        id: 2317,\n        name: 'RiskLimitReportRejectReason',\n        abbrName: 'RejRsn',\n        type: 'RiskLimitReportRejectReasonCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'The reason for rejecting the PartyRiskLimitsReport(35=CM) or PartyRiskLimitsUpdateReport(35=CR).',\n    },\n    {\n        id: 2318,\n        name: 'RiskLimitCheckRequestID',\n        abbrName: 'ChkReqID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'The unique identifier of the PartyRiskLimitCheckRequest(35=DF) message.',\n    },\n    {\n        id: 2319,\n        name: 'RiskLimitCheckID',\n        abbrName: 'LmtChkID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'The unique and static identifier, at the business entity level, of a risk limit check request.',\n    },\n    {\n        id: 2320,\n        name: 'RiskLimitCheckTransType',\n        abbrName: 'TransTyp',\n        type: 'RiskLimitCheckTransTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Specifies the transaction type of the risk limit check request.',\n    },\n    {\n        id: 2321,\n        name: 'RiskLimitCheckType',\n        abbrName: 'ChkTyp',\n        type: 'RiskLimitCheckTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Specifies the type of limit check message.',\n    },\n    {\n        id: 2322,\n        name: 'RiskLimitCheckRequestRefID',\n        abbrName: 'ReqRefID',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Specifies the message reference identifier of the risk limit check request message.',\n    },\n    {\n        id: 2323,\n        name: 'RiskLimitCheckRequestType',\n        abbrName: 'ChkReqTyp',\n        type: 'RiskLimitCheckRequestTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Specifies the type of limit amount check being requested.',\n    },\n    {\n        id: 2324,\n        name: 'RiskLimitCheckAmount',\n        abbrName: 'LmtChkAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Specifies the amount being requested for approval.',\n    },\n    {\n        id: 2325,\n        name: 'RiskLimitCheckRequestStatus',\n        abbrName: 'ReqStat',\n        type: 'RiskLimitCheckRequestStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Indicates the status of the risk limit check request.',\n    },\n    {\n        id: 2326,\n        name: 'RiskLimitCheckRequestResult',\n        abbrName: 'ReqRslt',\n        type: 'RiskLimitCheckRequestResultCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Result of the credit limit check request.',\n    },\n    {\n        id: 2327,\n        name: 'RiskLimitApprovedAmount',\n        abbrName: 'LmtAprvdAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'The credit/risk limit amount approved.',\n    },\n    {\n        id: 2328,\n        name: 'PartyActionRequestID',\n        abbrName: 'ActnReqID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'The unique identifier of the PartyActionRequest(35=DH) message.',\n    },\n    {\n        id: 2329,\n        name: 'PartyActionType',\n        abbrName: 'ActnTyp',\n        type: 'PartyActionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Specifies the type of action to take or was taken for a given party.',\n    },\n    {\n        id: 2330,\n        name: 'ApplTestMessageIndicator',\n        abbrName: 'ApplTstMsgInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Used to indicate whether the message being sent is to test the receiving application\\'s availability to process the message. When set to \"Y\" the message is a test message. If not specified, the message is by default not a test message.',\n    },\n    {\n        id: 2331,\n        name: 'PartyActionReportID',\n        abbrName: 'ActnRptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'The unique identifier of the PartyActionReport(35=DI) message as assigned by the message sender.',\n    },\n    {\n        id: 2332,\n        name: 'PartyActionResponse',\n        abbrName: 'ActnRsp',\n        type: 'PartyActionResponseCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'Specifies the action taken as a result of the PartyActionType(2239) of the PartyActionRequest(35=DH) message.',\n    },\n    {\n        id: 2333,\n        name: 'PartyActionRejectReason',\n        abbrName: 'RejRsn',\n        type: 'PartyActionRejectReasonCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Specifies the reason the PartyActionRequest(35=DH) was rejected.',\n    },\n    {\n        id: 2334,\n        name: 'RefRiskLimitCheckID',\n        abbrName: 'RefRiskLmtChkID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '180',\n        description:\n            'The reference identifier of the PartyRiskLimitCheckRequest(35=DF) message, or a similar out of band message, that contained the approval for the risk/credit limit check request.',\n    },\n    {\n        id: 2335,\n        name: 'RefRiskLimitCheckIDType',\n        abbrName: 'RefRiskLmtChkIDTyp',\n        type: 'RefRiskLimitCheckIDTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Specifies which type of identifier is specified in RefRiskLimitCheckID(2334) field.',\n    },\n    {\n        id: 2336,\n        name: 'RiskLimitVelocityPeriod',\n        abbrName: 'Velcty',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'The time interval for which the clip size limit applies. The velocity time unit is expressed in RiskLimitVelocityUnit(2337).',\n    },\n    {\n        id: 2337,\n        name: 'RiskLimitVelocityUnit',\n        abbrName: 'VelctyUnit',\n        type: 'TimeUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Unit of time in which RiskLimitVelocityPeriod(2336) is expressed.',\n    },\n    {\n        id: 2338,\n        name: 'RequestingPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Qualifies the value of RequestingPartyRole(1660).',\n    },\n    {\n        id: 2339,\n        name: 'RiskLimitCheckModelType',\n        abbrName: 'ChkModelTyp',\n        type: 'RiskLimitCheckModelTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description: 'Specifies the type of credit limit check model workflow to apply for the specified party',\n    },\n    {\n        id: 2340,\n        name: 'EventMonthYear',\n        abbrName: 'MoYr',\n        type: 'MonthYear',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used with derivatives when an event is express as a month-year with optional day or month or week of month.\\n\\nFormat:\\n\\nYYYYMM (e.g. 199903)\\n\\nYYYYMMDD (e.g. 20030323)\\n\\nYYYYMMwN (e.g. 200303w2) for week\\n\\nA specific date can be appended to the month-year. For instance, if multiple event types exist in the same Year and Month, but actually at a different time, a value can be appended, such as \"w\" or \"w2\" to indicate week. Likewise, the day of monty (0-31) can be appended to indicate a specific event date.',\n    },\n    {\n        id: 2341,\n        name: 'LegEventMonthYear',\n        abbrName: 'MoYr',\n        type: 'MonthYear',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used with derivatives when an event is express as a month-year with optional day or month or week of month.\\n\\nFormat:\\n\\nYYYYMM (e.g. 199903)\\n\\nYYYYMMDD (e.g. 20030323)\\n\\nYYYYMMwN (e.g. 200303w2) for week\\n\\nA specific date can be appended to the month-year. For instance, if multiple event types exist in the same Year and Month, but actually at a different time, a value can be appended, such as \"w\" or \"w2\" to indicate week. Likewise, the day of monty (0-31) can be appended to indicate a specific event date.',\n    },\n    {\n        id: 2342,\n        name: 'UnderlyingEventMonthYear',\n        abbrName: 'MoYr',\n        type: 'MonthYear',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used with derivatives when an event is express as a month-year with optional day or month or week of month.\\n\\nFormat:\\n\\nYYYYMM (e.g. 199903)\\n\\nYYYYMMDD (e.g. 20030323)\\n\\nYYYYMMwN (e.g. 200303w2) for week\\n\\nA specific date can be appended to the month-year. For instance, if multiple event types exist in the same Year and Month, but actually at a different time, a value can be appended, such as \"w\" or \"w2\" to indicate week. Likewise, the day of monty (0-31) can be appended to indicate a specific event date.',\n    },\n    {\n        id: 2343,\n        name: 'RiskLimitCheckStatus',\n        abbrName: 'RiskLmtChkStat',\n        type: 'RiskLimitCheckStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '172',\n        description: 'Indicates the status of the risk limit check performed on a trade.',\n    },\n    {\n        id: 2344,\n        name: 'SideRiskLimitCheckStatus',\n        abbrName: 'RiskLmtChkStat',\n        type: 'RiskLimitCheckStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '172',\n        description: 'Indicates the status of the risk limit check performed on the side of a trade.',\n    },\n    {\n        id: 2345,\n        name: 'NoEntitlementTypes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '173',\n        description: 'Number of entitlement types in the repeating group.',\n    },\n    {\n        id: 2346,\n        name: 'LegMidPx',\n        abbrName: 'MidPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '175',\n        description:\n            'Leg Mid price/rate.\\n\\nFor OTC swaps, this is the mid-market mark (for example, as defined by CFTC).\\n\\nFor uncleared OTC swaps, LegMidPx(2346) and the MidPx(631) fields are mutually exclusive.',\n    },\n    {\n        id: 2347,\n        name: 'RegulatoryTransactionType',\n        abbrName: 'RegTxnTyp',\n        type: 'RegulatoryTransactionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '176',\n        description: 'Specifies the regulatory mandate or rule that the transaction complies with.',\n    },\n    {\n        id: 2348,\n        name: 'LegAssetGroup',\n        abbrName: 'AssetGrp',\n        type: 'AssetGroupCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Indicates the broad product or asset classification. May be used to provide grouping for the product taxonomy (Product(460), SecurityType(167), etc.) and/or the risk taxonomy (AssetClass(1938), AssetSubClass(1939), AssetType(1940), etc.).',\n    },\n    {\n        id: 2349,\n        name: 'PricePrecision',\n        abbrName: 'PxPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Specifies the price decimal precision of the instrument.\\n\\nFor FX, this specifies the pip size in which forward points are calculated. Point (pip) size varies by currency pair. Major currencies are all traded in points of 0.0001, with the exception of JPY which has a point size of 0.01.',\n    },\n    {\n        id: 2350,\n        name: 'CollateralPortfolioID',\n        abbrName: 'PrtflioID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Identifier of the collateral portfolio when reporting on a portfolio basis.',\n    },\n    {\n        id: 2351,\n        name: 'EncodedComplianceTextLen',\n        abbrName: 'EncComplianceTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '185',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedComplianceText(2352) field.',\n    },\n    {\n        id: 2352,\n        name: 'EncodedComplianceText',\n        abbrName: 'EncComplianceTxt',\n        type: 'data',\n        lengthId: '2351',\n        added: 'FIX.5.0SP2',\n        addedEP: '185',\n        description:\n            'Encoded (non-ASCII characters) representation of the ComplianceText(2404) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the ComplianceText(2404) field.',\n    },\n    {\n        id: 2353,\n        name: 'TradingUnitPeriodMultiplier',\n        abbrName: 'TrdgUnitPeriodMult',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Indicates the number of contract periods associated with the minimum trading unit for a given contract duration resulting in the number of total traded contracts.\\n\\nAs an example, 456 is the number of off-peak periods for a product with a minimum trading unit of 5 MWh resulting in 2280 total traded contracts.',\n    },\n    {\n        id: 2354,\n        name: 'LegTradingUnitPeriodMultiplier',\n        abbrName: 'TrdgUnitPeriodMult',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Indicates the number of contract periods associated with the minimum trading unit for a given contract duration resulting in the number of total traded contracts.\\n\\nAs an example, 456 is the number of off-peak periods for a product with a minimum trading unit of 5 MWh resulting in 2280 total traded contracts.',\n    },\n    {\n        id: 2355,\n        name: 'PartyRiskLimitStatus',\n        abbrName: 'PtyRiskLmtStat',\n        type: 'PartyRiskLimitStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '214',\n        description: 'The status of risk limits for a party.',\n    },\n    {\n        id: 2356,\n        name: 'RemunerationIndicator',\n        abbrName: 'RmntnInd',\n        type: 'RemunerationIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '209',\n        description:\n            'Indicates whether the trade price was adjusted for compensation (i.e. includes a mark-up, mark-down or commission) in the price paid.\\n\\nIn the context of MSRB and FINRA TRACE reporting requirements, this is used among firms to indicate trade remuneration.',\n    },\n    {\n        id: 2357,\n        name: 'LegTotalTradeQty',\n        abbrName: 'TotTrdQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Expresses the total quantity traded over the life of the contract when LegLastQty(1418) is to be repeated periodically over the term of the contract. The value is the product of LegLastQty(1418) and LegTradingUnitPeriodMultiplier(2353).',\n    },\n    {\n        id: 2358,\n        name: 'LegLastMultipliedQty',\n        abbrName: 'LastMultdQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Expresses the quantity bought/sold when LastQty is expressed in contracts. Used in addition to LegLastQty(1418), it is the product of LegLastQty(1418) and LegContractMultiplier(614).',\n    },\n    {\n        id: 2359,\n        name: 'LegTotalGrossTradeAmt',\n        abbrName: 'TotGrossTrdAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Expresses the full total monetary value of the traded contract. The value is the product of LegLastPx(637) and LegTotalTradeQty(2357) or LegTotalTradeMultipliedQty(2360), if priced in units instead of contracts.',\n    },\n    {\n        id: 2360,\n        name: 'LegTotalTradeMultipliedQty',\n        abbrName: 'TotTrdMultdQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Expresses the total trade quantity in units where LegContractMultiplier(614) is not 1. The value is the product of LegTotalTradeQty(2357) and LegContractMultiplier(614).',\n    },\n    {\n        id: 2361,\n        name: 'CompressionGroupID',\n        abbrName: 'CmprsnGrpID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '211',\n        description:\n            'Use to identify a netting or compression group where trades in the group were netted or compressed. This includes both terminating trades and any remnant trades that result from the operation.',\n    },\n    {\n        id: 2362,\n        name: 'SelfMatchPreventionID',\n        abbrName: 'SlfMtchPrvntnID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '211',\n        description:\n            'Identifies an order or trade that should not be matched to an opposite order or trade if both buy and sell orders for the same asset contain the same SelfMatchPreventionID(2362) and submitted by the same firm.',\n    },\n    {\n        id: 2363,\n        name: 'UnderlyingTradingUnitPeriodMultiplier',\n        abbrName: 'TrdgUnitPeriodMult',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Indicates the number of contract periods associated with the minimum trading unit for a given contract duration resulting in the number of total traded contracts.\\n\\nAs an example, 456 is the number of off-peak periods for a product with a minimum trading unit of 5 MWh resulting in 2280 total traded contracts.',\n    },\n    {\n        id: 2364,\n        name: 'PosReportAction',\n        abbrName: 'Actn',\n        type: 'PosMaintActionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Indicates action that triggered the Position Report.',\n    },\n    {\n        id: 2365,\n        name: 'SettlForwardPoints',\n        abbrName: 'SettlFwdPnts',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'FX forward points added to SettlPrice(730). The value is expressed in decimal form and may be a negative.\\n\\nAs an example, 61.99 points is expressed as 0.006199.',\n    },\n    {\n        id: 2366,\n        name: 'SettlPriceFxRateCalc',\n        abbrName: 'SettlPxFxRtCalc',\n        type: 'SettlCurrFxRateCalcCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Specifies whether LastPx(31) [TradeCaptureReport] or SettlPrice(730) [PositionReport] should be multiplied or divided.',\n    },\n    {\n        id: 2367,\n        name: 'TotalTradeQty',\n        abbrName: 'TotTrdQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Expresses the total quantity traded over the life of the contract when LastQty(32) is repeated periodically over the term of the contract. The value is the product of LastQty(32) and TradingUnitPeriodMultiplier(2353).',\n    },\n    {\n        id: 2368,\n        name: 'LastMultipliedQty',\n        abbrName: 'LastMultdQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Expresses the quantity bought or sold when LastQty(32) is expressed in number of contracts. Used in addition to LastQty(32). It is the product of LastQty(32) and ContractMultiplier(231).',\n    },\n    {\n        id: 2369,\n        name: 'TotalGrossTradeAmt',\n        abbrName: 'TotGrossTrdAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Expresses the full total monetary value of the traded contract. The value is the product of LastPx(31) and TotalTradeQty(2367) or TotalTradeMultipliedQty(2370), if priced in units instead of contracts.',\n    },\n    {\n        id: 2370,\n        name: 'TotalTradeMultipliedQty',\n        abbrName: 'TotTrdMultdQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Expresses the total trade quantity in units where ContractMultiplier(231) is not 1. The value is the product of TotalTradeQty(2367) and ContractMultiplier(231).',\n    },\n    {\n        id: 2371,\n        name: 'EncodedTradeContinuationText',\n        abbrName: 'EncTrdContntnText',\n        type: 'data',\n        lengthId: '2372',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description:\n            'Encoded (non-ASCII characters) representation of the TradeContinuationText(2374) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the TradeContinuationText(2374) field.',\n    },\n    {\n        id: 2372,\n        name: 'EncodedTradeContinuationTextLen',\n        abbrName: 'EncTrdContntnTextLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedTradeContinuationText(2371) field.',\n    },\n    {\n        id: 2373,\n        name: 'IntraFirmTradeIndicator',\n        abbrName: 'IntraFirmTrdInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '193',\n        description:\n            'Indicates whether the trade or position was entered into as an intra-group transaction, i.e. between two units of the same parent entity having majority ownership interest in both counterparties.\\n\\nIn the context of EMIR this refers to Regulation (EU) 648/2012 Article 3 \"intragroup transactions\" section 1 which states: \"In relation to a non-financial counterparty, an intragroup transaction is an OTC derivative contract entered into with another counterparty which is part of the same group provided that both counterparties are included in the same consolidation on a full basis and they are subject to an appropriate centralised risk evaluation, measurement and control procedures and that counterparty is established in the Union or, if it is established in a third country, the Commission has adopted an implementing act under Article 13(2) in respect of that third country. Canada\\'s similar requirement is under Appendix A to OSC Rule 91-507.\"',\n    },\n];\n\nconst batch4: ISpecFields[] = [\n    {\n        id: 2374,\n        name: 'TradeContinuationText',\n        abbrName: 'TrdContntnTxt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '258',\n        description: 'Free form text to specify additional trade continuation information or data.',\n    },\n    {\n        id: 2375,\n        name: 'TaxonomyType',\n        abbrName: 'TxnmyTyp',\n        type: 'TaxonomyTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'The type of identification taxonomy used to identify the security.',\n    },\n    {\n        id: 2376,\n        name: 'PartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Used to further qualify the value of PartyRole(452).',\n    },\n    {\n        id: 2377,\n        name: 'DerivativeInstrumentPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Used to further qualify the value of DerivativeInstrumentPartyRole(1295).',\n    },\n    {\n        id: 2378,\n        name: 'InstrumentPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Used to further qualify the value of InstrumentPartyRole(1051).',\n    },\n    {\n        id: 2379,\n        name: 'LegInstrumentPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Used to further qualify the value of LegInstrumentPartyRole(2257).',\n    },\n    {\n        id: 2380,\n        name: 'LegProvisionPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Used to further qualify the value of LegProvisionPartyRole(40536).',\n    },\n    {\n        id: 2381,\n        name: 'Nested2PartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Used to further qualify the value of Nested2PartyRole(759).',\n    },\n    {\n        id: 2382,\n        name: 'Nested3PartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Used to further qualify the value of Nested3PartyRole(951).',\n    },\n    {\n        id: 2383,\n        name: 'Nested4PartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Used to further qualify the value of Nested4PartyRole(1417).',\n    },\n    {\n        id: 2384,\n        name: 'NestedPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Used to further qualify the value of NestedPartyRole(538).',\n    },\n    {\n        id: 2385,\n        name: 'ProvisionPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Used to further qualify the value of ProvisionPartyRole(40177).',\n    },\n    {\n        id: 2386,\n        name: 'RequestedPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Used to further qualify the value of RequestedPartyRole(1509).',\n    },\n    {\n        id: 2387,\n        name: 'TradeContingency',\n        abbrName: 'Cntgncy',\n        type: 'TradeContingencyCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Indicates the contingency attribute for a trade in an asset class that may be contingent on the clearing of a corresponding paired trade (for example Exchange for Physical (EFP), Exchange for Swap (EFS), Exchange for Related (EFR) or Exchange for Option (EFO), collectively called EFRPs). Once the paired trade clears or fails to clear, the related trade (the trade which carries this attribute) ceases to exist.',\n    },\n    {\n        id: 2388,\n        name: 'RootPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Used to further qualify the value of RootPartyRole(1119).',\n    },\n    {\n        id: 2389,\n        name: 'SettlPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Used to further qualify the value of SettlPartyRole(784).',\n    },\n    {\n        id: 2390,\n        name: 'TradeConfirmationReferenceID',\n        abbrName: 'TrdCnfmRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '215',\n        description:\n            'A reference or control identifier or number used as a trade confirmation key.\\n\\nAn example of a control identifier is the DTC ID Control Number.',\n    },\n    {\n        id: 2391,\n        name: 'UnderlyingInstrumentPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Used to further qualify the value of UnderlyingInstrumentPartyRole(1061).',\n    },\n    {\n        id: 2392,\n        name: 'AllocRefRiskLimitCheckID',\n        abbrName: 'RefRiskLmtChkID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '180',\n        description:\n            'The reference identifier to the PartyRiskLimitCheckRequest(35=DF), or a similar out of band message, message that contained the approval or rejection for risk/credit limit check for this allocation.',\n    },\n    {\n        id: 2393,\n        name: 'AllocRefRiskLimitCheckIDType',\n        abbrName: 'RefRiskLmtChkIDTyp',\n        type: 'RefRiskLimitCheckIDTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '180',\n        description: 'Specifies which type of identifier is specified in AllocRefRiskLimitCheckID(2392) field.',\n    },\n    {\n        id: 2394,\n        name: 'LimitUtilizationAmt',\n        abbrName: 'LmtUtilztnAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '180',\n        description:\n            'The total amount of the limit that has been drawn down against the counterparty. This includes the amount for prior trades. It may or may not include the amount for the given trade, specified in LastLimitAmt(1632), depending upon whether the given trade is considered pending.',\n    },\n    {\n        id: 2395,\n        name: 'LimitAmt',\n        abbrName: 'LmtAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '180',\n        description:\n            'The limit for the counterparty. This represents the total limit amount, independent of any amount already utilized.',\n    },\n    {\n        id: 2396,\n        name: 'LimitRole',\n        abbrName: 'LmtR',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '180',\n        description:\n            'Indicates the scope of the limit by role.\\n\\nUsed to indicate whether this is a customer account limit, a clearing firm limit, etc.',\n    },\n    {\n        id: 2397,\n        name: 'RegulatoryTradeIDScope',\n        abbrName: 'Scope',\n        type: 'RegulatoryTradeIDScopeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '181',\n        description:\n            'Specifies the scope to which the RegulatoryTradeID(1903) applies. Used when a trade must be assigned more than one identifier, e.g. one for the clearing member and another for the client on a cleared trade as with the principal model in Europe.',\n    },\n    {\n        id: 2398,\n        name: 'SideRegulatoryTradeIDScope',\n        abbrName: 'Scope',\n        type: 'RegulatoryTradeIDScopeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '181',\n        description:\n            'Specifies the scope to which the SideRegulatoryTradeID(1972) applies. Used when a trade must be assigned more than one identifier, e.g. one for the clearing member and another for the client on a cleared trade as with the principal model in Europe.',\n    },\n    {\n        id: 2399,\n        name: 'AllocRegulatoryTradeIDScope',\n        abbrName: 'Scope',\n        type: 'RegulatoryTradeIDScopeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '181',\n        description:\n            'Specifies the scope to which the AllocRegulatoryTradeID(1909) applies. Used when a trade must be assigned more than one identifier, e.g. one for the clearing member and another for the client on a cleared trade as with the principal model in Europe.',\n    },\n    {\n        id: 2400,\n        name: 'EffectiveBusinessDate',\n        abbrName: 'EfctvBizDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '182',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        description:\n            'Specifies an explicit business date for associated reference data or transaction. Used when an implicit date is not sufficiently specific.',\n    },\n    {\n        id: 2401,\n        name: 'ListManualOrderIndicator',\n        abbrName: 'ListManOrdInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '182',\n        description:\n            'Indicates if the list of orders was initially received manually (as opposed to electronically) or if it was entered manually (as opposed to entered by automated trading software).',\n    },\n    {\n        id: 2402,\n        name: 'EntitlementSubType',\n        abbrName: 'SubTyp',\n        type: 'EntitlementSubTypeCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '183',\n        description: 'Subtype of an entitlement specified in EntitlementType(1775).',\n    },\n    {\n        id: 2403,\n        name: 'QuoteModelType',\n        abbrName: 'QModelTyp',\n        type: 'QuoteModelTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '184',\n        description: 'Quote model type',\n    },\n    {\n        id: 2404,\n        name: 'ComplianceText',\n        abbrName: 'ComplianceTxt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '185',\n        description: 'Free text for compliance information required for regulatory reporting.',\n    },\n    {\n        id: 2405,\n        name: 'ExecMethod',\n        abbrName: 'ExecMeth',\n        type: 'ExecMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '186',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '201',\n        description:\n            'Specifies how the transaction was executed, e.g. via an automated execution platform or other method.',\n    },\n    {\n        id: 2406,\n        name: 'AllocRegulatoryLegRefID',\n        abbrName: 'LegRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '181',\n        description: \"Identifies the leg of the trade the entry applies to by referencing the leg's LegID(1788).\",\n    },\n    {\n        id: 2407,\n        name: 'ComplexEventSpotRate',\n        abbrName: 'SpotRt',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'FX spot rate.',\n    },\n    {\n        id: 2408,\n        name: 'ComplexEventForwardPoints',\n        abbrName: 'FwdPnts',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'FX forward points added to spot rate. May be a negative value.',\n    },\n    {\n        id: 2409,\n        name: 'LegComplexEventSpotRate',\n        abbrName: 'SpotRt',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'FX spot rate.',\n    },\n    {\n        id: 2410,\n        name: 'LegComplexEventForwardPoints',\n        abbrName: 'FwdPnts',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'FX forward points added to spot rate. May be a negative value.',\n    },\n    {\n        id: 2411,\n        name: 'RegulatoryLegRefID',\n        abbrName: 'LegRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '181',\n        description: \"Identifies the leg of the trade the entry applies to by referencing the leg's LegID(1788).\",\n    },\n    {\n        id: 2412,\n        name: 'RateSourceReferencePageHeading',\n        abbrName: 'RefHdng',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.Latest',\n        updatedEP: '293',\n        description: 'Identifies the page heading from the rate source.',\n    },\n    {\n        id: 2413,\n        name: 'RelatedToSecurityID',\n        abbrName: 'ReltdID',\n        type: 'String',\n        discriminatorId: '2414',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The security identifier of the instrument, instrument leg or underlying instrument with which the related instrument has correlation.',\n    },\n    {\n        id: 2414,\n        name: 'RelatedToSecurityIDSource',\n        abbrName: 'ReltdIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Identifies class or source of the RelatedToSecurityID(2413) value.',\n    },\n    {\n        id: 2415,\n        name: 'RelatedToStreamXIDRef',\n        abbrName: 'ReltdStrmXIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'StreamXID(41303), LegStreamXID(41700) or UnderlyingStreamXID(42016) of the stream with which the related instrument has correlation.',\n    },\n    {\n        id: 2416,\n        name: 'SideRegulatoryLegRefID',\n        abbrName: 'LegRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '181',\n        description: \"Identifies the leg of the trade the entry applies to by referencing the leg's LegID(1788).\",\n    },\n    {\n        id: 2417,\n        name: 'RelatedToDividendPeriodXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The DividendPeriodXID(42293) of the stream dividend period with which the related instrument has correlation.',\n    },\n    {\n        id: 2418,\n        name: 'FirmTradeEventID',\n        abbrName: 'FirmTrdEvntID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'An identifier created by the trading party for the life cycle event associated with this report.',\n    },\n    {\n        id: 2419,\n        name: 'UnderlyingComplexEventSpotRate',\n        abbrName: 'SpotRt',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'FX spot rate.',\n    },\n    {\n        id: 2420,\n        name: 'UnderlyingComplexEventForwardPoints',\n        abbrName: 'FwdPnts',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'FX forward points added to spot rate. May be a negative value.',\n    },\n    {\n        id: 2421,\n        name: 'FillRefID',\n        abbrName: 'FillRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description:\n            'A reference to either the value of the FillExecID(1363) or an implicit position of a fills instance in the FillsGrp component.',\n    },\n    {\n        id: 2422,\n        name: 'OrderRequestID',\n        abbrName: 'OrdReqID',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Unique message identifier for an order request as assigned by the submitter of the request.',\n    },\n    {\n        id: 2423,\n        name: 'MassOrderRequestID',\n        abbrName: 'MassOrdReqID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Unique message identifier for a mass order request as assigned by the submitter of the orders.',\n    },\n    {\n        id: 2424,\n        name: 'MassOrderReportID',\n        abbrName: 'MassOrdRptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Unique message identifier for the response to a mass order request as assigned by the receiver of the orders.',\n    },\n    {\n        id: 2425,\n        name: 'MassOrderRequestStatus',\n        abbrName: 'ReqStat',\n        type: 'MassOrderRequestStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Status of mass order request.',\n    },\n    {\n        id: 2426,\n        name: 'MassOrderRequestResult',\n        abbrName: 'ReqRslt',\n        type: 'MassOrderRequestResultCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Request result of mass order request.',\n    },\n    {\n        id: 2427,\n        name: 'OrderResponseLevel',\n        abbrName: 'OrdRspLvl',\n        type: 'OrderResponseLevelCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description:\n            'The level of response requested from receiver of mass order messages. A default value should be bilaterally agreed.',\n    },\n    {\n        id: 2428,\n        name: 'NoOrderEntries',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Number of order entries.',\n    },\n    {\n        id: 2429,\n        name: 'OrderEntryAction',\n        abbrName: 'OrdEntryActn',\n        type: 'OrderEntryActionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'Specifies the action to be taken for the given order.',\n    },\n    {\n        id: 2430,\n        name: 'OrderEntryID',\n        abbrName: 'OrdEntryID',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description:\n            'Unique identifier for an order within a single MassOrder(35=DJ) message that can be used as a reference in the MassOrderAck(35=DK) message.',\n    },\n    {\n        id: 2431,\n        name: 'ExecTypeReason',\n        abbrName: 'ExecTypRsn',\n        type: 'ExecTypeReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description: 'The initiating event when an ExecutionReport(35=8) is sent.',\n    },\n    {\n        id: 2432,\n        name: 'TotNoOrderEntries',\n        abbrName: 'TotNoOrdEntries',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        description:\n            'Totals number of orders for a mass order or its acknowledgment being fragmented across multiple messages.',\n    },\n    {\n        id: 2433,\n        name: 'NoTargetPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Number of target party sub IDs in the repeating group.',\n    },\n    {\n        id: 2434,\n        name: 'TargetPartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Party sub-identifier value within a target party repeating group.',\n    },\n    {\n        id: 2435,\n        name: 'TargetPartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Type of TargetPartySubID(2434) value.',\n    },\n    {\n        id: 2436,\n        name: 'TransferInstructionID',\n        abbrName: 'InstID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Unique identifier for the transfer instruction assigned by the submitter.',\n    },\n    {\n        id: 2437,\n        name: 'TransferID',\n        abbrName: 'XferID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description:\n            'The unique identifier assigned to the transfer entity once it is received, for example, by the CCP or the party governing the transfer process. Generally this same identifier for the transfer is used by all parties involved.',\n    },\n    {\n        id: 2438,\n        name: 'TransferReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Unique identifier for the transfer report message.',\n    },\n    {\n        id: 2439,\n        name: 'TransferTransType',\n        abbrName: 'TransTyp',\n        type: 'TransferTransTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Indicates the type of transfer transaction.',\n    },\n    {\n        id: 2440,\n        name: 'TransferType',\n        abbrName: 'XferTyp',\n        type: 'TransferTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Indicates the type of transfer request.',\n    },\n    {\n        id: 2441,\n        name: 'TransferScope',\n        abbrName: 'XferScope',\n        type: 'TransferScopeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Indicates the type of transfer.',\n    },\n    {\n        id: 2442,\n        name: 'TransferStatus',\n        abbrName: 'XferStat',\n        type: 'TransferStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Status of the transfer.',\n    },\n    {\n        id: 2443,\n        name: 'TransferRejectReason',\n        abbrName: 'RejRsn',\n        type: 'TransferRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Reason the transfer instruction was rejected.',\n    },\n    {\n        id: 2444,\n        name: 'TransferReportType',\n        abbrName: 'RptTyp',\n        type: 'TransferReportTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        description: 'Indicates the type of transfer report.',\n    },\n    {\n        id: 2445,\n        name: 'AggressorTime',\n        abbrName: 'AgrsrTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Timestamp of aggressive order or quote resulting in match event.',\n    },\n    {\n        id: 2446,\n        name: 'AggressorSide',\n        abbrName: 'AgrsrSide',\n        type: 'SideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Side of aggressive order or quote resulting in match event.',\n    },\n    {\n        id: 2447,\n        name: 'FastMarketIndicator',\n        abbrName: 'FastMktInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description:\n            'Indicates if the instrument is in \"fast market\" state.\\n\\nA \"fast market\" is a state in which market rules are applied to instrument(s) or entire trading session when market events causes significant price movements due to public information.',\n    },\n    {\n        id: 2448,\n        name: 'LinkageHandlingIndicator',\n        abbrName: 'LnkgHandlInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Indicate whether linkage handling is in effect for an instrument or not.',\n    },\n    {\n        id: 2449,\n        name: 'NumberOfBuyOrders',\n        abbrName: 'NumOfBuyOrds',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Number of buy orders involved in a trade.',\n    },\n    {\n        id: 2450,\n        name: 'NumberOfSellOrders',\n        abbrName: 'NumOfSellOrds',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Number of sell orders involved in a trade.',\n    },\n    {\n        id: 2451,\n        name: 'SettlPriceDeterminationMethod',\n        abbrName: 'SettlPxDtrmnMeth',\n        type: 'SettlPriceDeterminationMethodCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '190',\n        description: 'Calculation method used to determine settlement price.',\n    },\n    {\n        id: 2452,\n        name: 'MDStatisticReqID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Message identifier for a statistics request.',\n    },\n    {\n        id: 2453,\n        name: 'MDStatisticRptID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Message identifier for a statistics report.',\n    },\n    {\n        id: 2454,\n        name: 'MDStatisticName',\n        abbrName: 'StatsNme',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'The short name or acronym for a set of statistic parameters.',\n    },\n    {\n        id: 2455,\n        name: 'MDStatisticDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Can be used to provide an optional textual description for a statistic.',\n    },\n    {\n        id: 2456,\n        name: 'MDStatisticType',\n        abbrName: 'Typ',\n        type: 'MDStatisticTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Type of statistic value.',\n    },\n    {\n        id: 2457,\n        name: 'MDStatisticScope',\n        abbrName: 'Scope',\n        type: 'MDStatisticScopeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Entities used as basis for the statistics.',\n    },\n    {\n        id: 2458,\n        name: 'MDStatisticSubScope',\n        abbrName: 'SubScope',\n        type: 'MDStatisticSubScopeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Sub-scope of the statistics to further reduce the entities used as basis for the statistics.',\n    },\n    {\n        id: 2459,\n        name: 'MDStatisticScopeType',\n        abbrName: 'ScopeTyp',\n        type: 'MDStatisticScopeTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Scope details of the statistics to reduce the number of events being used as basis for the statistics.',\n    },\n    {\n        id: 2460,\n        name: 'MDStatisticFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Dissemination frequency of statistics.\\n\\nSpecial meaning for a value of zero which represents an event-driven dissemination in real time (e.g. as soon as a new trade occurs).',\n    },\n    {\n        id: 2461,\n        name: 'MDStatisticFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'OrderDelayUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Time unit for MDStatisticFrequencyPeriod(2460).',\n    },\n    {\n        id: 2462,\n        name: 'MDStatisticDelayPeriod',\n        abbrName: 'DelayPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Number of time units between the calculation of the statistic and its dissemination. Can be used to defer or delay publication.',\n    },\n    {\n        id: 2463,\n        name: 'MDStatisticDelayUnit',\n        abbrName: 'DelayUnit',\n        type: 'OrderDelayUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Time unit for MDStatisticDelayPeriod(2462).',\n    },\n    {\n        id: 2464,\n        name: 'MDStatisticIntervalType',\n        abbrName: 'IntvlTyp',\n        type: 'MDStatisticIntervalTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Type of interval over which statistic is calculated.',\n    },\n    {\n        id: 2465,\n        name: 'MDStatisticIntervalTypeUnit',\n        abbrName: 'IntvlTypUnit',\n        type: 'TimeUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Time unit for MDStatisticIntervalType(2464).',\n    },\n    {\n        id: 2466,\n        name: 'MDStatisticIntervalPeriod',\n        abbrName: 'IntvlPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Length of time over which the statistic is calculated. Special meaning for a value of zero to express that there is no aggregation over time. Can be used with other interval types expressing relative date and time ranges to combine them with sliding window peaks, e.g. highest volume across 1 minute intervals of the previous day.',\n    },\n    {\n        id: 2467,\n        name: 'MDStatisticIntervalUnit',\n        abbrName: 'IntvlUnit',\n        type: 'OrderDelayUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Time unit for MDStatisticIntervalPeriod(2466).',\n    },\n    {\n        id: 2468,\n        name: 'MDStatisticStartDate',\n        abbrName: 'StartDt',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'First day of range for which statistical data is collected.',\n    },\n    {\n        id: 2469,\n        name: 'MDStatisticEndDate',\n        abbrName: 'EndDt',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Last day of range for which statistical data is collected.',\n    },\n    {\n        id: 2470,\n        name: 'MDStatisticStartTime',\n        abbrName: 'StartTm',\n        type: 'UTCTimeOnly',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Start time of the time range for which statistical data is collected.',\n    },\n    {\n        id: 2471,\n        name: 'MDStatisticEndTime',\n        abbrName: 'EndTm',\n        type: 'UTCTimeOnly',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'End time of the time range for which statistical data is collected.',\n    },\n    {\n        id: 2472,\n        name: 'MDStatisticRatioType',\n        abbrName: 'RatioTyp',\n        type: 'MDStatisticRatioTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Ratios between various entities.',\n    },\n    {\n        id: 2473,\n        name: 'MDStatisticRequestResult',\n        abbrName: 'ReqRslt',\n        type: 'MDStatisticRequestResultCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Result returned in response to MarketDataStatisticsRequest (35=DO).',\n    },\n    {\n        id: 2474,\n        name: 'NoMDStatistics',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Number of market data statistics.',\n    },\n    {\n        id: 2475,\n        name: 'MDStatisticID',\n        abbrName: 'StatsID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Unique identifier for a statistic.',\n    },\n    {\n        id: 2476,\n        name: 'MDStatisticTime',\n        abbrName: 'Tm',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Time of calculation of a statistic.',\n    },\n    {\n        id: 2477,\n        name: 'MDStatisticStatus',\n        abbrName: 'Stat',\n        type: 'MDStatisticStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Status for a statistic to indicate its availability.',\n    },\n    {\n        id: 2478,\n        name: 'MDStatisticValue',\n        abbrName: 'Val',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Statistical value.',\n    },\n    {\n        id: 2479,\n        name: 'MDStatisticValueType',\n        abbrName: 'Typ',\n        type: 'MDStatisticValueTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description: 'Type of statistical value.',\n    },\n    {\n        id: 2480,\n        name: 'MDStatisticValueUnit',\n        abbrName: 'ValUnit',\n        type: 'OrderDelayUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Unit of time for statistical value.',\n    },\n    {\n        id: 2481,\n        name: 'EncodedMDStatisticDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedMDStatisticDesc(2482) field.',\n    },\n    {\n        id: 2482,\n        name: 'EncodedMDStatisticDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '2481',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        description:\n            'Encoded (non-ASCII characters) representation of the MDStatisticDesc(2455) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the MDStatisticDesc(2455) field.',\n    },\n    {\n        id: 2483,\n        name: 'AllocRiskLimitCheckStatus',\n        abbrName: 'RiskLmtChkStat',\n        type: 'RiskLimitCheckStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Indicates the status of the risk limit check performed on a trade for this allocation instance.',\n    },\n    {\n        id: 2484,\n        name: 'FirmTransactionID',\n        abbrName: 'FirmTxnID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'The unique transaction entity identifier assigned by the firm.',\n    },\n    {\n        id: 2485,\n        name: 'TransactionID',\n        abbrName: 'TxnID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'The unique transaction entity identifier.',\n    },\n    {\n        id: 2486,\n        name: 'WireReference',\n        abbrName: 'WreRef',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'The reference to a wire transfer associated with the transaction. Wire references done via wire services such as Fedwire Output Message Accountabilitty Data \"OMAD\" or SWIFT Output Sequence Number \"OSN\".',\n    },\n    {\n        id: 2487,\n        name: 'CollRptRejectReason',\n        abbrName: 'RejRsn',\n        type: 'CollRptRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Reject reason code for rejecting the collateral report.',\n    },\n    {\n        id: 2488,\n        name: 'CollRptStatus',\n        abbrName: 'RptStat',\n        type: 'CollRptStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'The status of the collateral report.',\n    },\n    {\n        id: 2489,\n        name: 'PackageID',\n        abbrName: 'PackageID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Identifier assigned to a collection of trades so that they can be analyzed as one atomic unit for risk assessment and clearing.',\n    },\n    {\n        id: 2490,\n        name: 'TradeNumber',\n        abbrName: 'TrdNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Ordinal number of the trade within a series of related trades.',\n    },\n    {\n        id: 2491,\n        name: 'UnderlyingAssetGroup',\n        abbrName: 'AssetGrp',\n        type: 'AssetGroupCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Indicates the broad product or asset classification. May be used to provide grouping for the product taxonomy (Product(460), SecurityType(167), etc.) and/or the risk taxonomy (AssetClass(1938), AssetSubClass(1939), AssetType(1940), etc.).',\n    },\n    {\n        id: 2492,\n        name: 'LegDifferentialPrice',\n        abbrName: 'DiffPx',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '217',\n        description:\n            'Used in pricing a group of individual Trade at Settlement (TAS) and Trade At Marker (TAM) contracts as an atomic unit. The value is the negotiated currency offset either at settlement (TAS) or at the time specified in the product definition (TAM). The final contract price is reported in LegLastPx(637).',\n    },\n    {\n        id: 2493,\n        name: 'EncodedLegDocumentationText',\n        abbrName: 'EncDcmntnTxt',\n        type: 'data',\n        lengthId: '2494',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Encoded (non-ASCII characters) representation of the LegDocumentationText(2505) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the LegDocumentationText(2505) field.',\n    },\n    {\n        id: 2494,\n        name: 'EncodedLegDocumentationTextLen',\n        abbrName: 'EncDcmntnTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedLegDocumentationText(2493) field.',\n    },\n    {\n        id: 2495,\n        name: 'LegAgreementCurrency',\n        abbrName: 'AgmtCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Contractual currency forming the basis of a financing agreement and associated transactions. Usually, but not always, the same as the trade currency.',\n    },\n    {\n        id: 2496,\n        name: 'LegAgreementDate',\n        abbrName: 'AgmtDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'A reference to the date the underlying agreement specified by LegAgreementID(2498) and LegAgreementDesc(2497) was executed.',\n    },\n    {\n        id: 2497,\n        name: 'LegAgreementDesc',\n        abbrName: 'AgmtDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'The full name of the base standard agreement, annexes and amendments in place between the principals applicable to a financing transaction. See http://www.fpml.org/coding-scheme/master-agreement-type for derivative values.',\n    },\n    {\n        id: 2498,\n        name: 'LegAgreementID',\n        abbrName: 'AgmtID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'A common reference to the applicable standing agreement between the counterparties to a financing transaction.',\n    },\n    {\n        id: 2499,\n        name: 'LegAgreementVersion',\n        abbrName: 'AgmtVer',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'The version of the master agreement.',\n    },\n    {\n        id: 2500,\n        name: 'LegBrokerConfirmationDesc',\n        abbrName: 'BrkrCnfmDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Describes the type of broker confirmation executed between the parties. Can be used as an alternative to MasterConfirmationDesc(1962). See http://www.fpml.org/coding-scheme/broker-confirmation-type for values.',\n    },\n    {\n        id: 2501,\n        name: 'LegCreditSupportAgreementDate',\n        abbrName: 'CrdSuprtDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'The date of the ISDA Credit Support Agreement executed between the parties and intended to govern collateral arrangements for all OTC derivatives transactions between those parties.',\n    },\n    {\n        id: 2502,\n        name: 'LegCreditSupportAgreementDesc',\n        abbrName: 'CrdSuprtDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'The type of ISDA Credit Support Agreement. See http://www.fpml.org/coding-scheme/credit-support-agreement-type for values.',\n    },\n    {\n        id: 2503,\n        name: 'LegCreditSupportAgreementID',\n        abbrName: 'CrdSuprtID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'A common reference or unique identifier to identify the ISDA Credit Support Agreement executed between the parties.',\n    },\n    {\n        id: 2504,\n        name: 'LegDeliveryType',\n        abbrName: 'DlvryTyp',\n        type: 'DeliveryTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Identifies type of settlement.',\n    },\n    {\n        id: 2505,\n        name: 'LegDocumentationText',\n        abbrName: 'DcmntnTxt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'A sentence or phrase pertinent to the trade, not a reference to an external document. E.g. \"To be registered with the U.S. Environmental Protection Agency, Acid Rain Division, SO2 Allowance Tracking System\".',\n    },\n    {\n        id: 2506,\n        name: 'LegEndDate',\n        abbrName: 'EndDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'End date of a financing deal, i.e. the date the seller reimburses the buyer and takes back control of the collateral.',\n    },\n    {\n        id: 2507,\n        name: 'LegGoverningLaw',\n        abbrName: 'Law',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Identification of the law governing the transaction. See http://www.fpml.org/coding-scheme/governing-law for values.',\n    },\n    {\n        id: 2508,\n        name: 'LegMarginRatio',\n        abbrName: 'MgnRatio',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'The fraction of the cash consideration that must be collateralized, expressed as a percent. A MarginRatio of 2% indicates that the value of the collateral (after deducting for \"haircut\") must exceed the cash consideration by 2%.',\n    },\n    {\n        id: 2509,\n        name: 'LegMasterConfirmationAnnexDate',\n        abbrName: 'CnfmAnxDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'The date that an annexation to the master confirmation was executed between the parties.',\n    },\n    {\n        id: 2510,\n        name: 'LegMasterConfirmationDate',\n        abbrName: 'CnfmDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Alternative to broker confirmation. The date of the confirmation executed between the parties and intended to govern all relevant transactions between those parties.',\n    },\n    {\n        id: 2511,\n        name: 'LegMasterConfirmationDesc',\n        abbrName: 'CnfmDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'The type of master confirmation executed between the parties. See http://www.fpml.org/coding-scheme/master-confirmation-type for values.',\n    },\n    {\n        id: 2512,\n        name: 'LegMasterConfirmationAnnexDesc',\n        abbrName: 'CnfmAnxDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'The type of master confirmation annexation executed between the parties. See http://www.fpml.org/coding-scheme/master-confirmation-annex-type for values.',\n    },\n    {\n        id: 2513,\n        name: 'LegStartDate',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Start date of a financing deal, i.e. the date the buyer pays the seller cash and takes control of the collateral.',\n    },\n    {\n        id: 2514,\n        name: 'LegTerminationType',\n        abbrName: 'TrmTyp',\n        type: 'TerminationTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Type of financing termination.',\n    },\n    {\n        id: 2515,\n        name: 'AllocCalculatedCcyQty',\n        abbrName: 'CalcCcyQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description:\n            'Used for the calculated quantity of the other side of the currency trade applicable to the allocation instance.',\n    },\n    {\n        id: 2516,\n        name: 'CollateralRequestInstruction',\n        abbrName: 'CollReqInst',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description: 'An encoded collateral request processing instruction to the receiver.',\n    },\n    {\n        id: 2517,\n        name: 'CollateralRequestLinkID',\n        abbrName: 'CollReqLinkID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description: 'A unique identifier to link together a set or group of requests.',\n    },\n    {\n        id: 2518,\n        name: 'CollateralRequestNumber',\n        abbrName: 'CollReqNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description: 'Ordinal number of the request within a set or group of requests.',\n    },\n    {\n        id: 2519,\n        name: 'TotNumCollateralRequests',\n        abbrName: 'TotNumCollReqs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description: 'Total number of request messages within a set or group of requests.',\n    },\n    {\n        id: 2520,\n        name: 'WarningText',\n        abbrName: 'WarnTxt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description: 'Communicates the underlying condition when the request response indicates \"warning\".',\n    },\n    {\n        id: 2521,\n        name: 'EncodedWarningText',\n        abbrName: 'EncWarnTxt',\n        type: 'data',\n        lengthId: '2522',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description:\n            'Encoded (non-ASCII characters) representation of the WarningText(2520) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the WarningText(2520) field.',\n    },\n    {\n        id: 2522,\n        name: 'EncodedWarningTextLen',\n        abbrName: 'EncWarnTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedWarningtText(2521) field.',\n    },\n    {\n        id: 2523,\n        name: 'CrossedIndicator',\n        abbrName: 'CrssdInd',\n        type: 'CrossedIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '218',\n        description:\n            'Indicates whether the order or quote was crossed with another order or quote having the same context, e.g. having accounts with a common ownership.',\n    },\n    {\n        id: 2524,\n        name: 'TradeReportingIndicator',\n        abbrName: 'TrdRptngInd',\n        type: 'TradeReportingIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        updated: 'FIX.Latest',\n        updatedEP: '283',\n        description:\n            'Used between parties to convey trade reporting status.\\n\\nIn the context of regulatory reporting, this field may be used by the reporting party (e.g. party obligated to report to regulators) to inform their trading counterparty or other interested parties the trade reporting status.\\n\\nThe term \u201Cauthorised reporter\u201D represents the appropriate reporting firm under applicable regulation. In the context of ESMA reporting, this is the \"Systematic Internaliser\". In the context of FCA reporting, this is the \"Designated Reporter\".',\n    },\n    {\n        id: 2525,\n        name: 'AffiliatedFirmsTradeIndicator',\n        abbrName: 'AffltdFirmsTrdInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description:\n            'Indicates whether the transaction or position was entered into between two affiliated firms. I.e. one counterparty has an ownership interest in the other counterparty but less than the majority interest.\\n\\nThis trade attribute was identified under and applies to the Canadian CSA trade reporting regulations.',\n    },\n    {\n        id: 2526,\n        name: 'InternationalSwapIndicator',\n        abbrName: 'IntlSwapInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description:\n            'Identifies the swap trade as an \"international\" transaction.\\n\\nIn the context of CFTC Regulation 45.3(h), an international swap is required by U.S. law and the law of another jurisdiction to be reported both to a US Swaps Data Repository and to a different trade repository registered within the other jurisdiction. The additional SDRs must be identified in the appropriate Parties component with PartyRole(452) = 102 (Data repository), PartyRoleQualifier(2376) = 11 (Additional international trade repository) and PartySubIDType(803) = 70 (Location or jurisdiction).',\n    },\n    {\n        id: 2527,\n        name: 'MultiAssetSwapIndicator',\n        abbrName: 'MAsstSwapInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description:\n            \"Indicates a swap that does not have one easily identifiable primary underlying asset, but instead involves multiple underlying assets within one trade repository's jurisdiction that belong to different asset classes.\",\n    },\n    {\n        id: 2528,\n        name: 'ClearingSettlPrice',\n        abbrName: 'SetPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Clearing settlement price.',\n    },\n    {\n        id: 2529,\n        name: 'NoRelativeValues',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description: 'Number of relative value metrics entries in the repeating group.',\n    },\n    {\n        id: 2530,\n        name: 'RelativeValueType',\n        abbrName: 'Typ',\n        type: 'RelativeValueTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description: 'Indicates the type of relative value measurement being specified.',\n    },\n    {\n        id: 2531,\n        name: 'RelativeValue',\n        abbrName: 'Val',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description:\n            'The valuation of an instrument relative to a base measurement specified in RelativeValueType(2530). This value can be negative.',\n    },\n    {\n        id: 2532,\n        name: 'RelativeValueSide',\n        abbrName: 'Side',\n        type: 'RelativeValueSideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description: 'Specifies the side of the relative value.',\n    },\n    {\n        id: 2533,\n        name: 'BidSpread',\n        abbrName: 'BidSpread',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description:\n            'Basis points relative to a benchmark curve on the bid side, such as LIBOR, or a known security, such as 10Y US Treasury bond. The benchmark security or curve name is specified in the SpreadOrBenchmarkCurveData component.',\n    },\n    {\n        id: 2534,\n        name: 'OfferSpread',\n        abbrName: 'OfrSpread',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        description:\n            'Basis points relative to a benchmark curve on the offer side, such as LIBOR, or a known security, such as 10Y US Treasury bond. The benchmark security or curve name is specified in the SpreadOrBenchmarkCurveData component.',\n    },\n    {\n        id: 2535,\n        name: 'MDReportEvent',\n        abbrName: 'MDRptEvent',\n        type: 'MDReportEventCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Technical event within market data feed.',\n    },\n    {\n        id: 2536,\n        name: 'MDReportCount',\n        abbrName: 'MDRptCnt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Number of reference and market data messages in-between two MarketDataReport(35=DR) messages.',\n    },\n    {\n        id: 2537,\n        name: 'TotNoMarketSegmentReports',\n        abbrName: 'TotNoMktSegRpts',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Total number of reports related to market segments.',\n    },\n    {\n        id: 2538,\n        name: 'TotNoInstrumentReports',\n        abbrName: 'TotNoInstrmtRpts',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Total number of reports related to instruments.',\n    },\n    {\n        id: 2539,\n        name: 'TotNoPartyDetailReports',\n        abbrName: 'TotNoPtyDetlRpts',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Total number of reports related to party detail information.',\n    },\n    {\n        id: 2540,\n        name: 'TotNoEntitlementReports',\n        abbrName: 'TotNoEntlmntRpts',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Total number of reports related to party entitlement information.',\n    },\n    {\n        id: 2541,\n        name: 'TotNoRiskLimitReports',\n        abbrName: 'TotNoRiskLmtRpts',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Total number of reports related to party risk limit information.',\n    },\n    {\n        id: 2542,\n        name: 'MarketSegmentStatus',\n        abbrName: 'MktSegStat',\n        type: 'MarketSegmentStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Status of market segment.',\n    },\n    {\n        id: 2543,\n        name: 'MarketSegmentType',\n        abbrName: 'MktSegTyp',\n        type: 'MarketSegmentTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Used to classify the type of market segment.',\n    },\n    {\n        id: 2544,\n        name: 'MarketSegmentSubType',\n        abbrName: 'MktSegSubTyp',\n        type: 'MarketSegmentSubTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Used to further categorize market segments within a MarketSegmentType(2543).',\n    },\n    {\n        id: 2545,\n        name: 'NoRelatedMarketSegments',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Number of related market segments.',\n    },\n    {\n        id: 2546,\n        name: 'RelatedMarketSegmentID',\n        abbrName: 'ReltdMktSegID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Identifies a related market segment.',\n    },\n    {\n        id: 2547,\n        name: 'MarketSegmentRelationship',\n        abbrName: 'MktSegRltnshp',\n        type: 'MarketSegmentRelationshipCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Type of relationship between two or more market segments.',\n    },\n    {\n        id: 2548,\n        name: 'NoAuctionTypeRules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Number of auction order types.',\n    },\n    {\n        id: 2549,\n        name: 'AuctionTypeProductComplex',\n        abbrName: 'AuctTypProdCmplx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Identifies an entire suite of products for which the auction order type rule applies.',\n    },\n    {\n        id: 2550,\n        name: 'NoPriceRangeRules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Number of rules related to price ranges.',\n    },\n    {\n        id: 2551,\n        name: 'StartPriceRange',\n        abbrName: 'StartPxRng',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Lower boundary for price range.',\n    },\n    {\n        id: 2552,\n        name: 'EndPriceRange',\n        abbrName: 'EndPxRng',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Upper boundary for price range.',\n    },\n    {\n        id: 2553,\n        name: 'PriceRangeValue',\n        abbrName: 'PxRngValu',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Maximum range expressed as absolute value.',\n    },\n    {\n        id: 2554,\n        name: 'PriceRangePercentage',\n        abbrName: 'PxRngPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Maximum range expressed as percentage.',\n    },\n    {\n        id: 2555,\n        name: 'PriceRangeProductComplex',\n        abbrName: 'PxRngProdCmplx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Identifies an entire suite of products in the context of trading rules related to price ranges.',\n    },\n    {\n        id: 2556,\n        name: 'PriceRangeRuleID',\n        abbrName: 'PxRngRuleID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Identifier for a price range rule.',\n    },\n    {\n        id: 2557,\n        name: 'FastMarketPercentage',\n        abbrName: 'FastMktPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'The percentage factor to be applied to trading rule parameters (e.g. price ranges, size ranges, etc.) when fast market conditions are applicable.',\n    },\n    {\n        id: 2558,\n        name: 'NoQuoteSizeRules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Number of rules related to quote sizes.',\n    },\n    {\n        id: 2559,\n        name: 'QuoteSideIndicator',\n        abbrName: 'QuotSideInd',\n        type: 'QuoteSideIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Indicates whether single sided quotes are allowed.',\n    },\n    {\n        id: 2560,\n        name: 'NoFlexProductEligibilities',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Number of eligibility indicators for the creation of flexible securities.',\n    },\n    {\n        id: 2561,\n        name: 'FlexProductEligibilityComplex',\n        abbrName: 'FlexProdEligCmplx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Identifies an entire suite of products which are eligible for the creation of flexible securities.',\n    },\n    {\n        id: 2562,\n        name: 'NumOfComplexInstruments',\n        abbrName: 'NumCmplxInstrmt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Represents the total number of multileg securities or user defined securities that make up the security.',\n    },\n    {\n        id: 2563,\n        name: 'MarketDepthTimeInterval',\n        abbrName: 'MktDepthTmIntvl',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Specifies the time interval used for netting market data in a price depth feed.',\n    },\n    {\n        id: 2564,\n        name: 'MarketDepthTimeIntervalUnit',\n        abbrName: 'MktDepthTmIntvlUnit',\n        type: 'OrderDelayUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'The time unit associated with the time interval of the netting of market data in a price depth feed.',\n    },\n    {\n        id: 2565,\n        name: 'MDRecoveryTimeInterval',\n        abbrName: 'MDRcvryTmIntvl',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Specifies the time interval between two repetitions of the same market data for cyclic recovery feeds.',\n    },\n    {\n        id: 2566,\n        name: 'MDRecoveryTimeIntervalUnit',\n        abbrName: 'MDRcvryTmIntvlUnit',\n        type: 'OrderDelayUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'The time unit associated with the time interval between two cycles of the same market data in cyclic data recovery feeds.',\n    },\n    {\n        id: 2567,\n        name: 'PrimaryServiceLocationID',\n        abbrName: 'SvcLctnID1',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Primary service location identifier.',\n    },\n    {\n        id: 2568,\n        name: 'SecondaryServiceLocationID',\n        abbrName: 'SvcLctnID2',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Secondary or alternate service location identifier.',\n    },\n    {\n        id: 2569,\n        name: 'MatchRuleProductComplex',\n        abbrName: 'MtchRuleProdCmplx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Identifies an entire suite of products for which the matching rule applies.',\n    },\n    {\n        id: 2570,\n        name: 'CustomerPriority',\n        abbrName: 'CustPri',\n        type: 'CustomerPriorityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Specifies the kind of priority given to customers.',\n    },\n    {\n        id: 2571,\n        name: 'TickRuleProductComplex',\n        abbrName: 'TickRuleProdCmplx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Identifies an entire suite of products for which the price tick rule applies.',\n    },\n    {\n        id: 2572,\n        name: 'PreviousAdjustedOpenInterest',\n        abbrName: 'PrevAdjOpenInt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: \"Previous day's adjusted open interest.\",\n    },\n    {\n        id: 2573,\n        name: 'PreviousUnadjustedOpenInterest',\n        abbrName: 'PrevUnadjOpenInt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: \"Previous day's unadjusted open interest.\",\n    },\n    {\n        id: 2574,\n        name: 'LowExercisePriceOptionIndicator',\n        abbrName: 'LowExerPxOptInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Indicates if a given option instrument permits low exercise prices (LEPO).',\n    },\n    {\n        id: 2575,\n        name: 'BlockTradeEligibilityIndicator',\n        abbrName: 'BlckTrdEligInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Indicates if a given instrument is eligible for block trading.',\n    },\n    {\n        id: 2576,\n        name: 'InstrumentPricePrecision',\n        abbrName: 'PxPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Specifies the number of decimal places for instrument prices.',\n    },\n    {\n        id: 2577,\n        name: 'StrikePricePrecision',\n        abbrName: 'StrkPxPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Specifies the number of decimal places for exercise price.',\n    },\n    {\n        id: 2578,\n        name: 'OrigStrikePrice',\n        abbrName: 'OrigStrkPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Original exercise price, e.g. after corporate action requiring changes.',\n    },\n    {\n        id: 2579,\n        name: 'SettlSubMethod',\n        abbrName: 'SettlSubMeth',\n        type: 'SettlSubMethodCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Specifies a suitable settlement sub-method for a given settlement method.',\n    },\n    {\n        id: 2580,\n        name: 'NoClearingPriceParameters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Number of parameter sets for clearing prices.',\n    },\n    {\n        id: 2581,\n        name: 'BusinessDayType',\n        abbrName: 'BizDayTyp',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Relative identification of a business day.',\n    },\n    {\n        id: 2582,\n        name: 'ClearingPriceOffset',\n        abbrName: 'ClrPxOfst',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Constant value required for the calculation of the clearing price, e.g. for variance futures.',\n    },\n    {\n        id: 2583,\n        name: 'VegaMultiplier',\n        abbrName: 'VegaMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Constant value required for the calculation of the clearing quantity, e.g. for variance futures.',\n    },\n    {\n        id: 2584,\n        name: 'AnnualTradingBusinessDays',\n        abbrName: 'AnnlTrdgBizDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Number of trading business days in a year.',\n    },\n    {\n        id: 2585,\n        name: 'TotalTradingBusinessDays',\n        abbrName: 'TotTrdgBizDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Number of trading business days over the lifetime of an instrument.',\n    },\n    {\n        id: 2586,\n        name: 'TradingBusinessDays',\n        abbrName: 'TrdgBizDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Number of actual trading business days of an instrument.',\n    },\n    {\n        id: 2587,\n        name: 'RealizedVariance',\n        abbrName: 'RlzdVarnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Actual or realized variance of an instrument used to calculate settlement prices, e.g. for variance futures.',\n    },\n    {\n        id: 2588,\n        name: 'StandardVariance',\n        abbrName: 'StdVarnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description:\n            'Standard variance (over the lifetime of an instrument) or initial variance used to calculate settlement prices, e.g. for variance futures.',\n    },\n    {\n        id: 2589,\n        name: 'RelatedClosePrice',\n        abbrName: 'ReltdClsPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Closing price of the underlying required to calculate the RealizedVariance(2587).',\n    },\n    {\n        id: 2590,\n        name: 'OvernightInterestRate',\n        abbrName: 'OvrNiteIntRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Overnight interest rate.',\n    },\n    {\n        id: 2591,\n        name: 'AccumulatedReturnModifiedVariationMargin',\n        abbrName: 'ARMVM',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'The economic cost of the variation margin from one trading day to the next.',\n    },\n    {\n        id: 2592,\n        name: 'CalculationMethod',\n        abbrName: 'CalcMeth',\n        type: 'CalculationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        description: 'Specifies how the calculation will be made.',\n    },\n    {\n        id: 2593,\n        name: 'NoOrderAttributes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description: 'Number of order attribute entries.',\n    },\n    {\n        id: 2594,\n        name: 'OrderAttributeType',\n        abbrName: 'Typ',\n        type: 'OrderAttributeTypeCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description: 'The type of order attribute.',\n    },\n    {\n        id: 2595,\n        name: 'OrderAttributeValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description: 'The value associated with the order attribute type specified in OrderAttributeType(2594).',\n    },\n    {\n        id: 2596,\n        name: 'DeltaCrossed',\n        abbrName: 'DeltaCrssd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates that the party has taken a position on both a put and a call on the same underlying asset.',\n    },\n    {\n        id: 2597,\n        name: 'ComplexEventFuturesPriceValuation',\n        abbrName: 'FutPxVal',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions. Applicable only to futures contracts.',\n    },\n    {\n        id: 2598,\n        name: 'ComplexEventOptionsPriceValuation',\n        abbrName: 'OptPxVal',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions. Applicable only to options contracts.',\n    },\n    {\n        id: 2599,\n        name: 'ComplexEventPVFinalPriceElectionFallback',\n        abbrName: 'PVPxFallbck',\n        type: 'ComplexEventPVFinalPriceElectionFallbackCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the fallback provisions for the hedging party in the determination of the final settlement price.',\n    },\n    {\n        id: 2600,\n        name: 'StrikeIndexCurvePoint',\n        abbrName: 'StrkNdxPnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The point on the floating rate index curve. Sample values:\\n\\nM = combination of a number between 1-12 and an \"M\" for month, e.g. 3M\\n\\nY = combination of number between 1-100 and a \"Y\" for year, e.g. 10Y\\n\\n10Y-OLD = see above, then add \"-OLD\" when appropriate\\n\\nINTERPOLATED = the point is mathematically derived\\n\\n2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon.',\n    },\n    {\n        id: 2601,\n        name: 'StrikeIndexQuote',\n        abbrName: 'StrkNdxQte',\n        type: 'StrikeIndexQuoteCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The quote side from which the index price is to be determined.',\n    },\n    {\n        id: 2602,\n        name: 'ExtraordinaryEventAdjustmentMethod',\n        abbrName: 'ExtrordEvntAdjMeth',\n        type: 'ExtraordinaryEventAdjustmentMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Defines how adjustments will be made to the contract should one or more of the extraordinary events occur.',\n    },\n    {\n        id: 2603,\n        name: 'ExchangeLookAlike',\n        abbrName: 'ExchLookAlike',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"For a share option trade, indicates whether the instrument is to be treated as an 'exchange look-alike'.\\n\\nThis designation has significance for how share adjustments (arising from corporate actions) will be determined for the instrument. For an 'exchange look-alike' instrument the relevant share adjustments will follow that for a corresponding designated contract listed on the related exchange (referred to as Options Exchange Adjustment (ISDA defined term)), otherwise the share adjustments will be determined by the calculation agent (referred to as Calculation Agent Adjustment (ISDA defined term)).\",\n    },\n    {\n        id: 2604,\n        name: 'LegStrikeIndexCurvePoint',\n        abbrName: 'StrkNdxPnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The point on the floating rate index curve. Sample values:\\n\\nM = combination of a number between 1-12 and an \"M\" for month, e.g. 3M\\n\\nY = combination of number between 1-100 and a \"Y\" for year, e.g. 10Y\\n\\n10Y-OLD = see above, then add \"-OLD\" when appropriate\\n\\nINTERPOLATED = the point is mathematically derived\\n\\n2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon.',\n    },\n    {\n        id: 2605,\n        name: 'LegStrikeIndexQuote',\n        abbrName: 'StrkNdxQte',\n        type: 'StrikeIndexQuoteCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The quote side from which the index price is to be determined.',\n    },\n    {\n        id: 2606,\n        name: 'LegExtraordinaryEventAdjustmentMethod',\n        abbrName: 'ExtrordEvntAdjMeth',\n        type: 'ExtraordinaryEventAdjustmentMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Defines how adjustments will be made to the contract should one or more of the extraordinary events occur.',\n    },\n    {\n        id: 2607,\n        name: 'LegExchangeLookAlike',\n        abbrName: 'ExchLookAlike',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"For a share option trade, indicates whether the instrument is to be treated as an 'exchange look-alike'.\\n\\nThis designation has significance for how share adjustments (arising from corporate actions) will be determined for the instrument. For an 'exchange look-alike' instrument the relevant share adjustments will follow that for a corresponding designated contract listed on the related exchange (referred to as Options Exchange Adjustment (ISDA defined term)), otherwise the share adjustments will be determined by the calculation agent (referred to as Calculation Agent Adjustment (ISDA defined term)).\",\n    },\n    {\n        id: 2608,\n        name: 'LegComplexEventFuturesPriceValuation',\n        abbrName: 'FutPxVal',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions. Applicable only to futures contracts.',\n    },\n    {\n        id: 2609,\n        name: 'LegComplexEventOptionsPriceValuation',\n        abbrName: 'OptPxVal',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions. Applicable only to options contracts.',\n    },\n    {\n        id: 2610,\n        name: 'LegComplexEventPVFinalPriceElectionFallback',\n        abbrName: 'PVPxFallbck',\n        type: 'ComplexEventPVFinalPriceElectionFallbackCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the fallback provisions for the hedging party in the determination of the final settlement price',\n    },\n    {\n        id: 2611,\n        name: 'UnderlyingComplexEventFuturesPriceValuation',\n        abbrName: 'FutPxVal',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions. Applicable only to futures contracts.',\n    },\n    {\n        id: 2612,\n        name: 'UnderlyingComplexEventOptionsPriceValuation',\n        abbrName: 'OptPxVal',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions. Applicable only to options contracts.',\n    },\n    {\n        id: 2613,\n        name: 'UnderlyingComplexEventPVFinalPriceElectionFallback',\n        abbrName: 'PVPxFallbck',\n        type: 'ComplexEventPVFinalPriceElectionFallbackCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the fallback provisions for the hedging party in the determination of the final settlement price',\n    },\n    {\n        id: 2614,\n        name: 'UnderlyingNotional',\n        abbrName: 'Notl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Notional value for the equity or bond underlier.',\n    },\n    {\n        id: 2615,\n        name: 'UnderlyingNotionalCurrency',\n        abbrName: 'NotlCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies the currency denomination of the notional value.\\n\\nUnderlyingNotionalCurrencyCodeSource(2921) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.',\n    },\n    {\n        id: 2616,\n        name: 'UnderlyingNotionalDeterminationMethod',\n        abbrName: 'NotlDtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method of determining the notional amount.\\n\\nSee: http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 2617,\n        name: 'UnderlyingNotionalAdjustments',\n        abbrName: 'NotlAdjmts',\n        type: 'UnderlyingNotionalAdjustmentsCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the conditions that govern the adjustment to the number of units of the return swap.',\n    },\n    {\n        id: 2618,\n        name: 'PositionID',\n        abbrName: 'PosID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '199',\n        description:\n            'Unique identifier for a position entity. Refer to PosMaintRptID(721) for a unique identifier of a position report message.',\n    },\n    {\n        id: 2619,\n        name: 'UnderlyingNotionalXIDRef',\n        abbrName: 'NotlXIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Cross reference to another notional amount for duplicating its properties.',\n    },\n    {\n        id: 2620,\n        name: 'UnderlyingFutureID',\n        abbrName: 'FutID',\n        type: 'String',\n        discriminatorId: '2621',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'In the case of an index underlier specifies the unique identifier for the referenced futures contract.',\n    },\n    {\n        id: 2621,\n        name: 'UnderlyingFutureIDSource',\n        abbrName: 'FutIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Identifies the source of the UnderlyingFutureID(2620).',\n    },\n    {\n        id: 2622,\n        name: 'UnderlyingStrikeIndexCurvePoint',\n        abbrName: 'StrkNdxPnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The point on the floating rate index curve. Sample values:\\n\\nM = combination of a number between 1-12 and an \"M\" for month, e.g. 3M\\n\\nY = combination of number between 1-100 and a \"Y\" for year, e.g. 10Y\\n\\n10Y-OLD = see above, then add \"-OLD\" when appropriate\\n\\nINTERPOLATED = the point is mathematically derived\\n\\n2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon.',\n    },\n    {\n        id: 2623,\n        name: 'UnderlyingStrikeIndexQuote',\n        abbrName: 'StrkNdxQte',\n        type: 'StrikeIndexQuoteCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The quote side from which the index price is to be determined.',\n    },\n    {\n        id: 2624,\n        name: 'UnderlyingExtraordinaryEventAdjustmentMethod',\n        abbrName: 'ExtrordEvntAdjMeth',\n        type: 'ExtraordinaryEventAdjustmentMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Defines how adjustments will be made to the contract should one or more of the extraordinary events occur.',\n    },\n    {\n        id: 2625,\n        name: 'UnderlyingExchangeLookAlike',\n        abbrName: 'ExchLookAlike',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"For a share option trade, indicates whether the instrument is to be treated as an 'exchange look-alike'.\\n\\nThis designation has significance for how share adjustments (arising from corporate actions) will be determined for the instrument. For an 'exchange look-alike' instrument the relevant share adjustments will follow that for a corresponding designated contract listed on the related exchange (referred to as Options Exchange Adjustment (ISDA defined term)), otherwise the share adjustments will be determined by the calculation agent (referred to as Calculation Agent Adjustment (ISDA defined term)).\",\n    },\n    {\n        id: 2626,\n        name: 'UnderlyingAverageVolumeLimitationPercentage',\n        abbrName: 'AvgLmtPctg',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The limit of average percentage of individual securities traded in a day or a number of days.',\n    },\n    {\n        id: 2627,\n        name: 'UnderlyingAverageVolumeLimitationPeriodDays',\n        abbrName: 'AvgLmtDys',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the limitation period for average daily trading volume in number of days.',\n    },\n    {\n        id: 2628,\n        name: 'UnderlyingDepositoryReceiptIndicator',\n        abbrName: 'DpstryRcptInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the underlier is a depository receipt.\\n\\nA depository receipt is a negotiable certificate issued by a trust company or security depository.',\n    },\n    {\n        id: 2629,\n        name: 'UnderlyingOpenUnits',\n        abbrName: 'OpnUnits',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The number of units (units of the index or number of securities, par amount of a bond) that constitute the underlier. In the case of a basket swap, this is used to reference both the number of basket units, and the number of each asset components of the basket when these are expressed in absolute terms.',\n    },\n    {\n        id: 2630,\n        name: 'UnderlyingBasketDivisor',\n        abbrName: 'BsktDvsr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the basket divisor amount. This value is normally used to adjust the constituent weight for pricing or to adjust for dividends, or other corporate actions.',\n    },\n    {\n        id: 2631,\n        name: 'UnderlyingInstrumentXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Identifier for referencing this UnderlyingInstrument from a parent instrument or a convertible instrument.',\n    },\n    {\n        id: 2632,\n        name: 'CollateralAmountType',\n        abbrName: 'AmtTyp',\n        type: 'CollateralAmountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '197',\n        description: 'The type of value in CurrentCollateralAmount(1704).',\n    },\n    {\n        id: 2633,\n        name: 'NoMiscFeeSubTypes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '196',\n        description: 'Specifies the number of miscellaneous fee sub-types.',\n    },\n    {\n        id: 2634,\n        name: 'MiscFeeSubType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '196',\n        description:\n            'Used to provide more granular fee types related to a value of MiscFeeType(139).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Misc_Fee_Sub_Types for code list of applicable fees. Other fee sub-types may be used by mutual agreement of the counterparties.\\n\\nFee sub-types may include market or country specific fee.',\n    },\n    {\n        id: 2635,\n        name: 'MiscFeeSubTypeAmt',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '196',\n        description: 'The amount of the specified MiscFeeSubType(2634).',\n    },\n    {\n        id: 2636,\n        name: 'MiscFeeSubTypeDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '196',\n        description: 'Can be used to provide an optional textual description of the fee sub-type.',\n    },\n    {\n        id: 2637,\n        name: 'EncodedMiscFeeSubTypeDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '196',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedMiscFeeSubTypeDesc(2638) field.',\n    },\n    {\n        id: 2638,\n        name: 'EncodedMiscFeeSubTypeDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '2637',\n        added: 'FIX.5.0SP2',\n        addedEP: '196',\n        description:\n            'Encoded (non-ASCII characters) representation of the MiscFeeSubTypeDesc(2636) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the MiscFeeSubTypeDesc(2636) field.',\n    },\n    {\n        id: 2639,\n        name: 'NoCommissions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Number of commissions in the repeating group.',\n    },\n    {\n        id: 2640,\n        name: 'CommissionAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'The commission amount.',\n    },\n    {\n        id: 2641,\n        name: 'CommissionAmountType',\n        abbrName: 'Typ',\n        type: 'CommissionAmountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Indicates what type of commission is being expressed in CommissionAmount(2640).',\n    },\n    {\n        id: 2642,\n        name: 'CommissionBasis',\n        abbrName: 'Basis',\n        type: 'CommTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the basis or unit used to calculate the commission.',\n    },\n    {\n        id: 2643,\n        name: 'CommissionCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            \"Specifies the currency denomination of the commission amount if different from the trade's currency.\\n\\nCommissionCurrencyCodeSource(2923) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\",\n    },\n    {\n        id: 2644,\n        name: 'CommissionUnitOfMeasure',\n        abbrName: 'UOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '223',\n        description: 'The commission rate unit of measure.',\n    },\n    {\n        id: 2645,\n        name: 'CommissionUnitOfMeasureCurrency',\n        abbrName: 'UOMCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description:\n            'Indicates the currency of the unit of measure. Conditionally required when CommissionUnitOfMeasure(2644) = Ccy (Amount of currency).',\n    },\n    {\n        id: 2646,\n        name: 'CommissionRate',\n        abbrName: 'Rt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description:\n            'The commission rate when CommissionAmount(2640) is based on a percentage of quantity, amount per unit or a factor of \"unit of measure\". If the rate is a percentage or expressed in basis points, use the decimalized form, e.g. \"0.05\" for a 5% commission or \"0.005\" for 50 basis points.',\n    },\n    {\n        id: 2647,\n        name: 'CommissionSharedIndicator',\n        abbrName: 'SharedInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description:\n            'Indicates whether the amount in CommissionAmount(2640) is to be shared with a third party, e.g. as part of a directed brokerage commission sharing arrangement.',\n    },\n    {\n        id: 2648,\n        name: 'CommissionAmountShared',\n        abbrName: 'AmtShared',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description:\n            'Commission amount to be shared with a third party, e.g. as part of a directed brokerage commission sharing arrangement. If specified, this amount should not exceed the amount in CommissionAmount(2640).',\n    },\n    {\n        id: 2649,\n        name: 'CommissionLegRefID',\n        abbrName: 'LegRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: \"Identifies the leg of the trade the entry applies to by referencing the leg's LegID(1788).\",\n    },\n    {\n        id: 2650,\n        name: 'CommissionDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Description of the commission.',\n    },\n    {\n        id: 2651,\n        name: 'EncodedCommissionDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Byte length of the encoded (non-ASCII characters) EncodedCommissionDesc(2652) field.',\n    },\n    {\n        id: 2652,\n        name: 'EncodedCommissionDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '2651',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description:\n            'Encoded (non-ASCII characters) representation of the CommissionDesc(2650) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the CommissionDesc(2650) field.',\n    },\n    {\n        id: 2653,\n        name: 'NoAllocCommissions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Number of commissions in the repeating group.',\n    },\n    {\n        id: 2654,\n        name: 'AllocCommissionAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'The commission amount.',\n    },\n    {\n        id: 2655,\n        name: 'AllocCommissionAmountType',\n        abbrName: 'Typ',\n        type: 'CommissionAmountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Indicates what type of commission is being expressed in AllocCommissionAmount(2654).',\n    },\n    {\n        id: 2656,\n        name: 'AllocCommissionBasis',\n        abbrName: 'Basis',\n        type: 'CommTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the basis or unit used to calculate the commission.',\n    },\n    {\n        id: 2657,\n        name: 'AllocCommissionCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            \"Specifies the currency denomination of the commission amount if different from the trade's currency.\\n\\nAllocCommissionCurrencyCodeSource(2925) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.\",\n    },\n    {\n        id: 2658,\n        name: 'AllocCommissionUnitOfMeasure',\n        abbrName: 'UOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'The commission rate unit of measure.',\n    },\n    {\n        id: 2659,\n        name: 'AllocCommissionUnitOfMeasureCurrency',\n        abbrName: 'UOMCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description:\n            'Indicates the currency of the unit of measure. Conditionally required when AllocCommissionUnitOfMeasure(2658) = Ccy (Currency).',\n    },\n    {\n        id: 2660,\n        name: 'AllocCommissionRate',\n        abbrName: 'Rt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description:\n            'The commission rate when AllocCommissionAmount(2654) is based on a percentage of quantity, amount per unit or a factor of \"unit of measure\". If the rate is a percentage or expressed in basis points, use the decimalized form, e.g. \"0.05\" for a 5% commission or \"0.005\" for 50 basis points.',\n    },\n    {\n        id: 2661,\n        name: 'AllocCommissionSharedIndicator',\n        abbrName: 'SharedInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description:\n            'Indicates whether the amount in AllocCommissionAmount(2654) is to be shared with a third party, e.g. as part of a directed brokerage commission sharing arrangement.',\n    },\n    {\n        id: 2662,\n        name: 'AllocCommissionAmountShared',\n        abbrName: 'AmtShared',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description:\n            'Commission amount to be shared with a third party, e.g. as part of a directed brokerage commission sharing arrangement. If specified, this amount should not exceed the amount in AllocCommissionAmount(2654).',\n    },\n    {\n        id: 2663,\n        name: 'AllocCommissionLegRefID',\n        abbrName: 'LegRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: \"Identifies the leg of the trade the entry applies to by referencing the leg's LegID(1788).\",\n    },\n    {\n        id: 2664,\n        name: 'AllocCommissionDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description: 'Description of the commission.',\n    },\n    {\n        id: 2665,\n        name: 'EncodedAllocCommissionDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '229',\n        description: 'Byte length of the encoded (non-ASCII characters) EncodedAllocCommissionDesc(2666) field.',\n    },\n    {\n        id: 2666,\n        name: 'EncodedAllocCommissionDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '2665',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        description:\n            'Encoded (non-ASCII characters) representation of the AllocCommissionDesc(2664) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the AllocCommissionDesc(2664) field.',\n    },\n    {\n        id: 2667,\n        name: 'AlgorithmicTradeIndicator',\n        abbrName: 'AlgoTrdInd',\n        type: 'AlgorithmicTradeIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description:\n            'Indicates that the order or trade originates from a computer program or algorithm requiring little-to-no human intervention.',\n    },\n    {\n        id: 2668,\n        name: 'NoTrdRegPublications',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description: 'Number of regulatory publication rules in repeating group.',\n    },\n    {\n        id: 2669,\n        name: 'TrdRegPublicationType',\n        abbrName: 'Typ',\n        type: 'TrdRegPublicationTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        description:\n            'Specifies the type of regulatory trade publication.\\n\\nAdditional reasons for the publication type may be specified in TrdRegPublicationReason(2670).',\n    },\n    {\n        id: 2670,\n        name: 'TrdRegPublicationReason',\n        abbrName: 'Rsn',\n        type: 'TrdRegPublicationReasonCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        description:\n            'Additional reason for trade publication type specified in TrdRegPublicationType(2669).\\n\\nReasons may be specific to regulatory trade publication rules.',\n    },\n    {\n        id: 2671,\n        name: 'SideTradeReportingIndicator',\n        abbrName: 'TrdRptngInd',\n        type: 'TradeReportingIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        description:\n            'Used between parties to convey trade reporting status.\\n\\nIn the context of regulatory reporting, this field may be used by the reporting party (e.g. party obligated to report to regulators) to inform their trading counterparty or other interested parties the trade reporting status.',\n    },\n    {\n        id: 2672,\n        name: 'CrossRequestID',\n        abbrName: 'CrssReqID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'Unique message identifier for a cross request as assigned by the submitter of the request.',\n    },\n    {\n        id: 2673,\n        name: 'FillMatchID',\n        abbrName: 'MtchID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'Identifier assigned by a matching system to a match event containing multiple executions.',\n    },\n    {\n        id: 2674,\n        name: 'FillMatchSubID',\n        abbrName: 'MtchSubID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Identifier assigned by a matching system to a price level (e.g. match step, clip) within a match event containing multiple executions.',\n    },\n    {\n        id: 2675,\n        name: 'MassActionReason',\n        abbrName: 'MassActnRsn',\n        type: 'MassActionReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'Reason for submission of mass action.',\n    },\n    {\n        id: 2676,\n        name: 'MaximumPriceDeviation',\n        abbrName: 'MaxPxDeviatn',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Maximum deviation, in percentage terms, of an execution price from a reference price, e.g. the initial price of a match event.',\n    },\n    {\n        id: 2677,\n        name: 'NotAffectedReason',\n        abbrName: 'Rsn',\n        type: 'NotAffectedReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Reason for order being unaffected by mass action even though it belongs to the orders covered by MassActionScope(1374).',\n    },\n    {\n        id: 2678,\n        name: 'TotalNotAffectedOrders',\n        abbrName: 'TotNotAffctdOrds',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Total number of orders unaffected by either the OrderMassActionRequest(35=CA) or OrderMassCancelRequest(35=Q).',\n    },\n    {\n        id: 2679,\n        name: 'OrderOwnershipIndicator',\n        abbrName: 'OrdOwnershipInd',\n        type: 'OrderOwnershipIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description: 'Change of ownership of an order to a specific party.',\n    },\n    {\n        id: 2680,\n        name: 'LegAccount',\n        abbrName: 'Acct',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '223',\n        description:\n            'Account mnemonic as agreed between buy and sell sides, e.g. broker and institution or investor/intermediary and fund manager.',\n    },\n    {\n        id: 2681,\n        name: 'InTheMoneyCondition',\n        abbrName: 'ITMCond',\n        type: 'InTheMoneyConditionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '224',\n        description: 'Specifies an option instrument\\'s \"in the money\" condition.',\n    },\n    {\n        id: 2682,\n        name: 'LegInTheMoneyCondition',\n        abbrName: 'ITMCond',\n        type: 'InTheMoneyConditionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '224',\n        description: 'Specifies an option instrument\\'s \"in the money\" condition in general terms.',\n    },\n    {\n        id: 2683,\n        name: 'UnderlyingInTheMoneyCondition',\n        abbrName: 'ITMCond',\n        type: 'InTheMoneyConditionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '224',\n        description: 'Specifies an option instrument\\'s \"in the money\" condition in general terms.',\n    },\n    {\n        id: 2684,\n        name: 'DerivativeInTheMoneyCondition',\n        abbrName: 'ITMCond',\n        type: 'InTheMoneyConditionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '224',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Specifies an option instrument\\'s \"in the money\" condition in general terms.\\n\\nSee InTheMoneyCondition(2681) for complete definition.',\n    },\n    {\n        id: 2685,\n        name: 'ContraryInstructionEligibilityIndicator',\n        abbrName: 'CntraryInstEligInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '224',\n        description:\n            'Identifies whether the option instrument is eligible for contrary instructions at the time of exercise. The contrariness of an instruction will be determined in the context of InTheMoneyCondition(2681). When not specified, the eligibility is undefined or not applicable.',\n    },\n    {\n        id: 2686,\n        name: 'LegContraryInstructionEligibilityIndicator',\n        abbrName: 'CntraryInstEligInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '224',\n        description:\n            'Identifies whether the option instrument is eligible for contrary instructions at the time of exercise. The contrariness of an instruction will be determined in the context of LegInTheMoneyCondition(2682). When not specified, the eligibility is undefined or not applicable.',\n    },\n    {\n        id: 2687,\n        name: 'UnderlyingContraryInstructionEligibilityIndicator',\n        abbrName: 'CntraryInstEligInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '224',\n        description:\n            'Identifies whether the option instrument is eligible for contrary instructions at the time of exercise. The contrariness of an instruction will be determined in the context of UnderlyingInTheMoneyCondition(2683). When not specified, the eligibility is undefined or not applicable.',\n    },\n    {\n        id: 2688,\n        name: 'DerivativeContraryInstructionEligibilityIndicator',\n        abbrName: 'CntraryInstEligInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '224',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Identifies whether the option instrument is eligible for contrary instructions at the time of exercise. The contrariness of an instruction will be determined in the context of DerivativeInTheMoneyCondition(2684). When not specified, the eligibility is undefined or not applicable.\\n\\nSee ContraryInstructionEligibilityIndicator(2685) for complete definition.',\n    },\n    {\n        id: 2689,\n        name: 'CollateralMarketPrice',\n        abbrName: 'MktPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description: 'Market price of the collateral, either from market sources or pre-agreed by the counterparties.',\n    },\n    {\n        id: 2690,\n        name: 'CollateralPercentOverage',\n        abbrName: 'PctOvrg',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description:\n            'Percentage of over-collateralization particularly when CollateralAmountType(2632) = 4 (Additional collateral value)',\n    },\n    {\n        id: 2691,\n        name: 'NoSideCollateralAmounts',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description: 'Number of side collateral amount entries.',\n    },\n    {\n        id: 2692,\n        name: 'SideCollateralAmountMarketID',\n        abbrName: 'MktID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description: 'Market associated with the collateral amount.',\n    },\n    {\n        id: 2693,\n        name: 'SideCollateralAmountMarketSegmentID',\n        abbrName: 'MktSegID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description: 'Market segment associated with the collateral amount.',\n    },\n    {\n        id: 2694,\n        name: 'SideCollateralAmountType',\n        abbrName: 'AmtTyp',\n        type: 'CollateralAmountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description: 'The type of value in CurrentCollateralAmount(1704).',\n    },\n    {\n        id: 2695,\n        name: 'SideCollateralCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies the currency of the collateral; optional, defaults to settlement currency if not specified.\\n\\nSideCollateralCurrencyCodeSource(2930) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.',\n    },\n    {\n        id: 2696,\n        name: 'SideCollateralFXRate',\n        abbrName: 'FxRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description:\n            'Foreign exchange rate used to compute the SideCurrentCollateralAmount(2702) from the SideCollateralCurrency(2695) and the Currency(15).',\n    },\n    {\n        id: 2697,\n        name: 'SideCollateralFXRateCalc',\n        abbrName: 'FxRtCalc',\n        type: 'UnderlyingFXRateCalcCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description: 'Specifies whether or not SideCollateralFXRate(2696) should be multiplied or divided.',\n    },\n    {\n        id: 2698,\n        name: 'SideCollateralMarketPrice',\n        abbrName: 'MktPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description: 'Market price of the collateral, either from market sources or pre-agreed by the counterparties.',\n    },\n    {\n        id: 2699,\n        name: 'SideCollateralPercentOverage',\n        abbrName: 'PctOvrg',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description:\n            'Percentage of over-collateralization particularly when SideCollateralAmountType(2694) = 4 (Additional collateral value).',\n    },\n    {\n        id: 2700,\n        name: 'SideCollateralPortfolioID',\n        abbrName: 'PrtflioID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description: 'Identifier of the collateral portfolio when reporting on a portfolio basis.',\n    },\n    {\n        id: 2701,\n        name: 'SideCollateralType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description: 'Type of collateral on deposit being reported.',\n    },\n    {\n        id: 2702,\n        name: 'SideCurrentCollateralAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description: 'Currency value currently attributed to the collateral.',\n    },\n    {\n        id: 2703,\n        name: 'SideHaircutIndicator',\n        abbrName: 'HrctInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        description:\n            'Indicates, if \"Y\", that a stated valuation includes a haircut, e.g. that the stated value reflects the subtraction of the haircut. Note that a value of \"N\" does not imply a haircut is not applicable, only that the haircut (if any) is not reflected in the stated valuation.',\n    },\n    {\n        id: 2704,\n        name: 'ExDestinationType',\n        abbrName: 'ExDestTyp',\n        type: 'ExDestinationTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '228',\n        description: 'Identifies the type of execution destination for the order.',\n    },\n    {\n        id: 2705,\n        name: 'MarketCondition',\n        abbrName: 'MktCond',\n        type: 'MarketConditionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description:\n            'Market condition. In the context of ESMA RTS 8 it is important that trading venues communicate the condition of the market, particularly \"stressed\" and \"exceptional\", in order to provide incentives for firms contributing to liquidity.',\n    },\n    {\n        id: 2706,\n        name: 'NoQuoteAttributes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description: 'Number of quote attributes entries.',\n    },\n    {\n        id: 2707,\n        name: 'QuoteAttributeType',\n        abbrName: 'Typ',\n        type: 'QuoteAttributeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description: 'The type of attribute for the quote.',\n    },\n    {\n        id: 2708,\n        name: 'QuoteAttributeValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        description: 'The value associated with the quote attribute type specified in QuoteAttributeType(2707).',\n    },\n    {\n        id: 2709,\n        name: 'NoPriceQualifiers',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '230',\n        description: 'Number of price qualifiers in the repeating group.',\n    },\n    {\n        id: 2710,\n        name: 'PriceQualifier',\n        abbrName: 'Qual',\n        type: 'PriceQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '230',\n        description: 'Qualifier for price. May be used when the price needs to be explicitly qualified.',\n    },\n    {\n        id: 2711,\n        name: 'MDValueTier',\n        abbrName: 'Tier',\n        type: 'MDValueTierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Describes the reporting ranges for executed transactions.\\n\\nIn context of ESMA RTS 27 Article 9, the execution venue is required to report on transactions within several size ranges (in terms of a value and currency). The thresholds for these ranges are dependent on the type of financial instrument.',\n    },\n    {\n        id: 2712,\n        name: 'MiscFeeQualifier',\n        abbrName: 'Qual',\n        type: 'MiscFeeQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description:\n            'Identifies whether the current entry contributes to the trade or transaction economics, i.e. affects NetMoney(118).',\n    },\n    {\n        id: 2713,\n        name: 'MiscFeeDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '231',\n        description: 'Can be used to provide a textual description of the fee type.',\n    },\n    {\n        id: 2714,\n        name: 'FinancialInstrumentFullName',\n        abbrName: 'FullName',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '236',\n        description:\n            'The full normative name of the financial instrument.\\n\\nIn the context of ESMA reference data, this is used to provide the full name of the instrument as defined by the Derivatives Service Bureau (DSB).',\n    },\n    {\n        id: 2715,\n        name: 'EncodedFinancialInstrumentFullNameLen',\n        abbrName: 'EncFullNameLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '236',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedFinancialInstrumentFullName(2716) field.',\n    },\n    {\n        id: 2716,\n        name: 'EncodedFinancialInstrumentFullName',\n        abbrName: 'EncFullName',\n        type: 'data',\n        lengthId: '2715',\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '236',\n        description:\n            'Encoded (non-ASCII characters) representation of the FinancialInstrumentFullName(2714) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the FinancialInstrumentFullName(2714) field.',\n    },\n    {\n        id: 2717,\n        name: 'LegFinancialInstrumentFullName',\n        abbrName: 'FullName',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '236',\n        description:\n            \"The full normative name of the multileg's financial instrument.\\n\\nIn the context of ESMA reference data, this is used to provide the full name of the instrument as defined by the Derivatives Service Bureau (DSB).\",\n    },\n    {\n        id: 2718,\n        name: 'EncodedLegFinancialInstrumentFullNameLen',\n        abbrName: 'EncFullNameLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '236',\n        description:\n            \"Byte length of encoded (non-ASCII characters) individual multileg instrument's EncodedLegFinancialInstrumentFullName(2719).\",\n    },\n    {\n        id: 2719,\n        name: 'EncodedLegFinancialInstrumentFullName',\n        abbrName: 'EncFullName',\n        type: 'data',\n        lengthId: '2718',\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '236',\n        description:\n            'Encoded (non-ASCII characters) representation of the LegFinancialInstrumentFullName(2717) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the LegFinancialInstrumentFullName(2717) field.',\n    },\n    {\n        id: 2720,\n        name: 'UnderlyingFinancialInstrumentFullName',\n        abbrName: 'FullName',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '236',\n        description:\n            'The full normative name of the underlying financial instrument.\\n\\nIn the context of ESMA reference data, this is used to provide the full name of the instrument as defined by the Derivatives Service Bureau (DSB).',\n    },\n    {\n        id: 2721,\n        name: 'EncodedUnderlyingFinancialInstrumentFullNameLen',\n        abbrName: 'EncFullNameLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '236',\n        description:\n            \"Byte length of encoded (non-ASCII characters) underlying instrument's EncodedUnderlyingFinancialInstrumentFullName(2722).\",\n    },\n    {\n        id: 2722,\n        name: 'EncodedUnderlyingFinancialInstrumentFullName',\n        abbrName: 'EncFullName',\n        type: 'data',\n        lengthId: '2721',\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '236',\n        description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingFinancialInstrumentFullName(2720) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingFinancialInstrumentFullName(2720) field.',\n    },\n    {\n        id: 2723,\n        name: 'UnderlyingIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        description: 'Curve time unit associated with the underlying index.',\n    },\n    {\n        id: 2724,\n        name: 'UnderlyingIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '232',\n        description: 'Curve time multiplier for the underlying index.',\n    },\n    {\n        id: 2725,\n        name: 'CommissionAmountSubType',\n        abbrName: 'SubTyp',\n        type: 'CommissionAmountSubTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '233',\n        description: 'Further sub classification of the CommissionAmountType(2641).',\n    },\n    {\n        id: 2726,\n        name: 'AllocCommissionAmountSubType',\n        abbrName: 'SubTyp',\n        type: 'CommissionAmountSubTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '233',\n        description: 'Further sub classification of the AllocCommissionAmountType(2655).',\n    },\n    {\n        id: 2727,\n        name: 'AllocLegRefID',\n        abbrName: 'LegRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '234',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description:\n            'Unique identifier for a specific leg (uniqueness not defined as part of the FIX specification). AllocLegRefID(2727) references the value from LegID(1788) in the current multileg order or trade message specifying to which leg the allocation instance applies.',\n    },\n    {\n        id: 2728,\n        name: 'FloatingRateIndexCurvePeriod',\n        abbrName: 'Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Time unit multiplier for the floating rate index identified in FloatingRateIndexID(2731).',\n    },\n    {\n        id: 2729,\n        name: 'FloatingRateIndexCurveSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Spread from the floating rate index.',\n    },\n    {\n        id: 2730,\n        name: 'FloatingRateIndexCurveUnit',\n        abbrName: 'Unit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Time unit associated with the floating rate index identified in FloatingRateIndexID(2731).',\n    },\n    {\n        id: 2731,\n        name: 'FloatingRateIndexID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '2732',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Security identifier of the floating rate index.',\n    },\n    {\n        id: 2732,\n        name: 'FloatingRateIndexIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Source for the floating rate index identified in FloatingRateIndexID(2731).',\n    },\n    {\n        id: 2733,\n        name: 'IndexRollMonth',\n        abbrName: 'Mo',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Month identified in the index roll.\\n\\nUse \"1\" for January, \"2\" for February, etc.',\n    },\n    {\n        id: 2734,\n        name: 'NoIndexRollMonths',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Number of instances of the index roll month.',\n    },\n    {\n        id: 2735,\n        name: 'AssetSubType',\n        abbrName: 'AsstSubTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            \"Used to provide a more specific description of the asset specified in AssetType(1940).\\n\\nSee https://www.fixtrading.org/codelists/AssetSubType for code list of applicable values.\\n\\nIn the context of MiFID II, ESMA RTS 23 Annex I Table 2, this may indicate the 'Further sub product' or equity 'Parameter' fields.\",\n    },\n    {\n        id: 2736,\n        name: 'CommodityFinalPriceType',\n        abbrName: 'CmdtyFnlPxTyp',\n        type: 'CommodityFinalPriceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Final price type of the commodity as specified by the trading venue.',\n    },\n    {\n        id: 2737,\n        name: 'FinancialInstrumentShortName',\n        abbrName: 'ShrtName',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            'Short name of the financial instrument. Uses ISO 18774 (FINS) values.\\n\\nIn the context of MiFID II this maps to ESMA RTS 23 Annex I Table 3 Field 7 and may be used in other RTS that requires a similar field.',\n    },\n    {\n        id: 2738,\n        name: 'NextIndexRollDate',\n        abbrName: 'NxtNdxRollDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Next index roll date.',\n    },\n    {\n        id: 2739,\n        name: 'LegAssetSubType',\n        abbrName: 'AsstSubTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            \"Used to provide a more specific description of the asset specified in LegAssetType(2069).\\n\\nSee https://www.fixtrading.org/codelists/AssetSubType for code list of applicable values.\\n\\nIn the context of MiFID II, ESMA RTS 23 Annex I Table 2, this may indicate the 'Further sub product' or equity 'Parameter' fields.\",\n    },\n    {\n        id: 2740,\n        name: 'LegFinancialInstrumentShortName',\n        abbrName: 'ShrtName',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            'Short name of the financial instrument. Uses ISO 18774 (FISN) values.\\n\\nIn the context of MiFID II this maps to ESMA RTS 23 Annex I Table 3 Field 7 and may be used in other RTS that requires a similar field.',\n    },\n    {\n        id: 2741,\n        name: 'SecondaryAssetSubType',\n        abbrName: 'SubTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            \"Used to provide a more specific description of the asset specified in SecondaryAssetType(1979).\\n\\nSee https://www.fixtrading.org/codelists/AssetSubType for code list of applicable values.\\n\\nIn the context of MiFID II, ESMA RTS 23 Annex I Table 2, this may indicate the 'Further sub product' or equity 'Parameter' fields.\",\n    },\n    {\n        id: 2742,\n        name: 'UnderlyingFinancialInstrumentShortName',\n        abbrName: 'ShrtName',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            'Short name of the financial instrument. Uses ISO 18774 (FINS) values.\\n\\nIn the context of MiFID II this maps to ESMA RTS 23 Annex I Table 3 Field 7 and may be used in other RTS that requires a similar field.',\n    },\n    {\n        id: 2743,\n        name: 'LegSecondaryAssetSubType',\n        abbrName: 'SubTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            \"Used to provide a more specific description of the asset specified in LegSecondaryAssetType(2079).\\n\\nSee https://www.fixtrading.org/codelists/AssetSubType for code list of applicable values.\\n\\nIn the context of MiFID II RTS 23 Annex I Table 2, this may indicate the 'Further sub product' or equity 'Parameter' fields.\",\n    },\n    {\n        id: 2744,\n        name: 'UnderlyingAssetSubType',\n        abbrName: 'AsstSubTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            \"Used to provide a more specific description of the asset specified in UnderlyingAssetType(2015).\\n\\nSee https://www.fixtrading.org/codelists/AssetSubType for code list of applicable values.\\n\\nIn the context of MiFID II, ESMA RTS 23 Annex I Table 2, this may indicate the 'Further sub product' or equity 'Parameter' fields.\",\n    },\n    {\n        id: 2745,\n        name: 'UnderlyingSecondaryAssetSubType',\n        abbrName: 'SubTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description:\n            \"May be used to provide a more specific description of the asset specified in UnderlyingSecondaryAssetType(2083).\\n\\nSee https://www.fixtrading.org/codelists/AssetSubType for code list of applicable values.\\n\\nIn the context of MiFID II, ESMA RTS 23 Annex I Table 2, this may indicate the 'Further sub product' or equity 'Parameter' fields.\",\n    },\n    {\n        id: 2746,\n        name: 'NoReferenceDataDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Number of instances of reference data dates.',\n    },\n    {\n        id: 2747,\n        name: 'ReferenceDataDate',\n        abbrName: 'Dt',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: \"Reference data entry's date-time of the type specified in ReferenceDataDateType(2748).\",\n    },\n    {\n        id: 2748,\n        name: 'ReferenceDataDateType',\n        abbrName: 'Typ',\n        type: 'ReferenceDataDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: \"Reference data entry's date-time type.\",\n    },\n    {\n        id: 2749,\n        name: 'ExecutionTimestamp',\n        abbrName: 'ExecTS',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '237',\n        description: 'Time of the individual execution.',\n    },\n    {\n        id: 2750,\n        name: 'ReportingPx',\n        abbrName: 'RptngPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '237',\n        description:\n            'Represents the reportable price on fill when an instance of the Parties component with PartyRole(452) = 73 (Execution Venue) is present to prevent having to compute running totals.',\n    },\n    {\n        id: 2751,\n        name: 'ReportingQty',\n        abbrName: 'RptngQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '237',\n        description:\n            'Represents the reportable quantity on fill when an instance of the Parties component with PartyRole(452) = 73 (Execution Venue) is present to prevent having to compute running totals.',\n    },\n    {\n        id: 2752,\n        name: 'DeliveryRouteOrCharter',\n        abbrName: 'RteChrtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Specific delivery route or time charter average. Applicable to commodity freight contracts.',\n    },\n    {\n        id: 2753,\n        name: 'ReturnTrigger',\n        abbrName: 'RtnTrgr',\n        type: 'ReturnTriggerCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Indicates the type of return or payout trigger for the swap or forward.',\n    },\n    {\n        id: 2754,\n        name: 'LegDeliveryRouteOrCharter',\n        abbrName: 'RteChrtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Specific delivery route or time charter average. Applicable to commodity freight contracts.',\n    },\n    {\n        id: 2755,\n        name: 'LegReturnTrigger',\n        abbrName: 'RtnTrgr',\n        type: 'ReturnTriggerCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Indicates the type of return or payout trigger for the swap or forward.',\n    },\n    {\n        id: 2756,\n        name: 'UnderlyingDeliveryRouteOrCharter',\n        abbrName: 'RteChrtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Specific delivery route or time charter average. Applicable to commodity freight contracts.',\n    },\n    {\n        id: 2757,\n        name: 'UnderlyingReturnTrigger',\n        abbrName: 'RtnTrgr',\n        type: 'ReturnTriggerCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '238',\n        description: 'Indicates the type of return or payout trigger for the swap or forward.',\n    },\n    {\n        id: 2758,\n        name: 'AllocRequestID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '239',\n        description: 'Unique identifier for the request message.',\n    },\n    {\n        id: 2759,\n        name: 'GroupAmount',\n        abbrName: 'GrpAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '239',\n        description:\n            \"Indicates the total notional units or amount of an allocation group. Includes any allocated units or amount.\\n\\nWhether notional units or amount is used depends on the type of listed derivative contract and the clearinghouse. A notional unit is (price x quantity) without the derivative's contract value factor.\",\n    },\n    {\n        id: 2760,\n        name: 'GroupRemainingAmount',\n        abbrName: 'GrpRemAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '239',\n        description:\n            \"Indicates the remaining notional units or amount of an allocation group that has not yet been allocated.\\n\\nWhether notional units or amount is used depends on the type of listed derivative contract and the clearinghouse. A notional unit is (price x quantity) without the derivative's contract value factor.\",\n    },\n    {\n        id: 2761,\n        name: 'AllocGroupAmount',\n        abbrName: 'GrpAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '239',\n        description:\n            \"Indicates the notional units or amount being allocated.\\n\\nWhether notional units or amount is used depends on the type of listed derivative contract and the clearinghouse. A notional unit is (price x quantity) without the derivative's contract value factor.\",\n    },\n    {\n        id: 2762,\n        name: 'PriceMarkup',\n        abbrName: 'PxMrkup',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        description:\n            'Price offset of the markup denominated in the price type of the trade.\\n\\nThe field is expressed in a value that can simply be added to or subtracted from the (clean) price to reach the marked- up price. E.g., a percent of par price of 98 marked up to 98.5 should be 0.5, an FX rate of 1.17936 marked up to 1.19 should be 0.01064, a stock price of 22.75 marked up to 22.9 should be 0.15, etc.',\n    },\n    {\n        id: 2763,\n        name: 'AveragePriceType',\n        abbrName: 'Typ',\n        type: 'AveragePriceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        description: 'The average pricing model used for block trades.',\n    },\n    {\n        id: 2764,\n        name: 'AveragePriceStartTime',\n        abbrName: 'StartTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        description: 'Start of the time period during which price averaging occurred.',\n    },\n    {\n        id: 2765,\n        name: 'AveragePriceEndTime',\n        abbrName: 'EndTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        description: 'End of the time period during which price averaging occurred.',\n    },\n    {\n        id: 2766,\n        name: 'OrderPercentOfTotalVolume',\n        abbrName: 'TotVolPct',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        description:\n            'For Percent-of-volume (POV) average pricing this is the target percentage this order quantity represents of the total trading volume of an instrument during the specified time period. This provides the data needed to ensure that the average price is fair based on the total sum of grouped POV trades.\\n\\nFor example, if during the POV time period there are 5 trades including this one with a total volume of 5000 and this trade has a quantity of 1000 then the OrderPercentOfTotalVolume(2766) of this trade is 20 percent expressed as \"0.20\".',\n    },\n    {\n        id: 2767,\n        name: 'AllocGroupStatus',\n        abbrName: 'GrpStat',\n        type: 'AllocGroupStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        description: 'Status of the trade give-up relative to the group identified in AllocGroupID(1730).',\n    },\n    {\n        id: 2768,\n        name: 'AllocRequestStatus',\n        abbrName: 'ReqStat',\n        type: 'AllocRequestStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '241',\n        description: 'Status of the AllocationInstructionAlertRequest(35=DU).',\n    },\n    {\n        id: 2769,\n        name: 'AllocAvgPxIndicator',\n        abbrName: 'AvgPxInd',\n        type: 'AvgPxIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '241',\n        description: 'Average pricing indicator at the allocation level.',\n    },\n    {\n        id: 2770,\n        name: 'AllocAvgPxGroupID',\n        abbrName: 'AvgPxGrpID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '241',\n        description:\n            'Used by submitting firm to group trades being sub-allocated into an average price group. The trades in the average price group will be used to calculate an average price for the group.',\n    },\n    {\n        id: 2771,\n        name: 'PreviousAllocGroupID',\n        abbrName: 'PrevGrpID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '241',\n        description:\n            'When reporting a group change by the central counterparty to allocations of trades for the same instrument traded at the same price this identifies the previous group identifier.',\n    },\n    {\n        id: 2772,\n        name: 'NoMatchExceptions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Number of match exceptions in the repeating group.',\n    },\n    {\n        id: 2773,\n        name: 'MatchExceptionType',\n        abbrName: 'Typ',\n        type: 'MatchExceptionTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Type of matching exception.',\n    },\n    {\n        id: 2774,\n        name: 'MatchExceptionElementType',\n        abbrName: 'ID',\n        type: 'MatchExceptionElementTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Identifies the data point used in the matching operation which resulted in an exception.',\n    },\n    {\n        id: 2775,\n        name: 'MatchExceptionElementName',\n        abbrName: 'Name',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description:\n            'The matching exception data point name, for example: \"Trade currency\". This may be used for display purposes, providing a corresponding description for the value in MatchExceptionElementType(2774).',\n    },\n    {\n        id: 2776,\n        name: 'MatchExceptionAllocValue',\n        abbrName: 'AllocVal',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: \"The allocating party's data value used in the match operation.\",\n    },\n    {\n        id: 2777,\n        name: 'MatchExceptionConfirmValue',\n        abbrName: 'CnfmVal',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: \"The confirming party's data value used in the match operation.\",\n    },\n    {\n        id: 2778,\n        name: 'MatchExceptionToleranceValue',\n        abbrName: 'TlrncVal',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: \"The data element's tolerance value. Omitted if no tolerance is allowed or not applicable.\",\n    },\n    {\n        id: 2779,\n        name: 'MatchExceptionToleranceValueType',\n        abbrName: 'TlrncValTyp',\n        type: 'MatchExceptionToleranceValueTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description:\n            'The type of value in MatchExceptionToleranceValue(2778). Omitted if no tolerance is allowed or not applicable.\\n\\nFor example, if the tolerance for accrued interest is 0.01% of total accrued interest then MatchExceptionElementType(2774)=1 (Accrued interest), MatchExceptionToleranceValueType(2779)=2 (Percentage) and MatchExcecptionToleranceValue(2778)=0.0001. If tolerance for the exchange rate of an FX trade is \"0.001\" then MatchExceptionElementType(2774)=2 (Deal pPrice), MatchExceptionToleranceValueType(2779)=1 (Fixed amount) and MatchExcecptionToleranceValue(2778)=0.001.',\n    },\n    {\n        id: 2780,\n        name: 'MatchExceptionText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Description of the exception.',\n    },\n    {\n        id: 2781,\n        name: 'NoMatchingDataPoints',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Number of matching data points in the repeating group.',\n    },\n    {\n        id: 2782,\n        name: 'MatchingDataPointIndicator',\n        abbrName: 'Typ',\n        type: 'MatchingDataPointIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: \"Data point's matching type.\",\n    },\n    {\n        id: 2783,\n        name: 'MatchingDataPointValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Value of the matching data point.',\n    },\n    {\n        id: 2784,\n        name: 'MatchingDataPointType',\n        abbrName: 'ID',\n        type: 'MatchExceptionElementTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description:\n            'Identifies the data point used in the matching operation.\\n\\nValues may not have applicable tolerance values, in this case this means the data point was used for matching but did not match.',\n    },\n    {\n        id: 2785,\n        name: 'MatchingDataPointName',\n        abbrName: 'Name',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description:\n            'The matching data point name, for example: \"Trade currency\". This may be used for display purposes, providing a corresponding description for the value in MatchingDataPointType(2784).',\n    },\n    {\n        id: 2786,\n        name: 'TradeAggregationRequestID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'The message identifier for the trade aggregation request.',\n    },\n    {\n        id: 2787,\n        name: 'TradeAggregationRequestRefID',\n        abbrName: 'RefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'Reference identifier to a previously sent trade aggregation message being cancelled or replaced.',\n    },\n    {\n        id: 2788,\n        name: 'TradeAggregationTransType',\n        abbrName: 'TransTyp',\n        type: 'TradeAggregationTransTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'Identifies the trade aggregation transaction type.',\n    },\n    {\n        id: 2789,\n        name: 'AggregatedQty',\n        abbrName: 'AggQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'Total quantity of orders or fills quantity aggregated.',\n    },\n    {\n        id: 2790,\n        name: 'TradeAggregationRequestStatus',\n        abbrName: 'ReqStat',\n        type: 'TradeAggregationRequestStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'Status of the trade aggregation request.',\n    },\n    {\n        id: 2791,\n        name: 'TradeAggregationRejectReason',\n        abbrName: 'RejRsn',\n        type: 'TradeAggregationRejectReasonCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'Reason for trade aggregation request being rejected.',\n    },\n    {\n        id: 2792,\n        name: 'TradeAggregationReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'Unique identifier for the TradeAggregationReport(35=DX).',\n    },\n    {\n        id: 2793,\n        name: 'AvgSpotRate',\n        abbrName: 'AvgSpotRt',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'The average FX spot rate.',\n    },\n    {\n        id: 2794,\n        name: 'AvgForwardPoints',\n        abbrName: 'AvgFwdPnts',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description: 'The average forward points. May be a negative value.',\n    },\n    {\n        id: 2795,\n        name: 'OffshoreIndicator',\n        abbrName: 'OffshrInd',\n        type: 'OffshoreIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        description:\n            'Indicates the type of the currency rate being used. This is relevant for currencies that have offshore rate that different from onshore rate.',\n    },\n    {\n        id: 2796,\n        name: 'FXBenchmarkRateFix',\n        abbrName: 'BnchmkRtFix',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        deprecated: 'FIX.Latest',\n        deprecatedEP: '293',\n        description:\n            'Specifies the foreign exchange benchmark rate fixing to be used in valuing the transaction. For example \"London 4 p.m.\" or \"Tokyo 3 p.m.\"',\n    },\n    {\n        id: 2797,\n        name: 'EncodedMatchExceptionTextLen',\n        abbrName: 'EncTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedMatchExceptionText(2798) field.',\n    },\n    {\n        id: 2798,\n        name: 'EncodedMatchExceptionText',\n        abbrName: 'EncTxt',\n        type: 'data',\n        lengthId: '2797',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Encoded (non-ASCII characters) representation of the MatchExceptionText(2780) field in the encoded format specified via the MessageEncoding(347) field.\\n\\nIf used, the ASCII (English) representation should also be specified in the MatchExceptionText(2780) field.',\n    },\n    {\n        id: 2799,\n        name: 'PayReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Unique ID of the PayManagementReport(35=EA) message.',\n    },\n    {\n        id: 2800,\n        name: 'PayDisputeReason',\n        abbrName: 'DsptRsn',\n        type: 'int',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'Used to provide the reason for disputing a request or report.\\n\\nSee https://www.fixtrading.org/packages/PayDisputeReason for the list of applicable values.',\n    },\n    {\n        id: 2801,\n        name: 'EncodedReplaceText',\n        abbrName: 'EncRplcTxt',\n        type: 'data',\n        lengthId: '2802',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'Encoded (non-ASCII characters) representation of the ReplaceText(2805) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the ReplaceText(2805) field.',\n    },\n    {\n        id: 2802,\n        name: 'EncodedReplaceTextLen',\n        abbrName: 'EncRplcTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedReplaceText(2801) field.',\n    },\n    {\n        id: 2803,\n        name: 'PayReportRefID',\n        abbrName: 'RptRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'Reference identifier of the PayManagementReport(35=EA). To be used with PayReportTransType(2804)=1 (Replace).',\n    },\n    {\n        id: 2804,\n        name: 'PayReportTransType',\n        abbrName: 'TxnTyp',\n        type: 'PayReportTransTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Identifies the message transaction type.',\n    },\n    {\n        id: 2805,\n        name: 'ReplaceText',\n        abbrName: 'RplcTxt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Identifies the reason for amendment.',\n    },\n    {\n        id: 2806,\n        name: 'PayReportStatus',\n        abbrName: 'RptStat',\n        type: 'PayReportStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Identifies status of the payment report.',\n    },\n    {\n        id: 2807,\n        name: 'CancelText',\n        abbrName: 'CxlTxt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Identifies the reason for cancelation.',\n    },\n    {\n        id: 2808,\n        name: 'EncodedCancelText',\n        abbrName: 'EncCxlTxt',\n        type: 'data',\n        lengthId: '2809',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'Encoded (non-ASCII characters) representation of the CancelText(2807) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the CancelText(2807) field.',\n    },\n    {\n        id: 2809,\n        name: 'EncodedCancelTextLen',\n        abbrName: 'EncCxlTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedCancelText(2808) field.',\n    },\n    {\n        id: 2810,\n        name: 'PayRequestRefID',\n        abbrName: 'ReqRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'Reference identifier of the PayManagementRequest(35=DY). To be used with PayRequestTransType(2811)=1 (Cancel).',\n    },\n    {\n        id: 2811,\n        name: 'PayRequestTransType',\n        abbrName: 'TxnTyp',\n        type: 'PayRequestTransTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Identifies the message transaction type.',\n    },\n    {\n        id: 2812,\n        name: 'PayRequestID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Unique ID of the PayManagementRequest(35=DY) message.',\n    },\n    {\n        id: 2813,\n        name: 'PayRequestStatus',\n        abbrName: 'ReqStat',\n        type: 'PayRequestStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Identifies status of the request being responded to.',\n    },\n    {\n        id: 2814,\n        name: 'EncodedPostTradePaymentDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '2815',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'Encoded (non-ASCII characters) representation of the PostTradePaymentDesc(2820) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the PostTradePaymentDesc(2820) field.',\n    },\n    {\n        id: 2815,\n        name: 'EncodedPostTradePaymentDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedPostTradePaymentDesc(2814) field.',\n    },\n    {\n        id: 2816,\n        name: 'PostTradePaymentAccount',\n        abbrName: 'Acct',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'The cash account on the books of the receiver of the request or the sender of the report to be debited or credited.',\n    },\n    {\n        id: 2817,\n        name: 'PostTradePaymentAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'The payment amount for the specified PostTradePaymentType(2824).',\n    },\n    {\n        id: 2818,\n        name: 'PostTradePaymentCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Specifies the currency in which PostTradePaymentAmount(2817) is denominated.\\n\\nPostTradePaymentCurrencyCodeSource(2956) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.',\n    },\n    {\n        id: 2819,\n        name: 'PostTradePaymentDebitOrCredit',\n        abbrName: 'DbtCrd',\n        type: 'PostTradePaymentDebitOrCreditCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: \"Payment side of this individual payment from the requesting firm's perspective.\",\n    },\n    {\n        id: 2820,\n        name: 'PostTradePaymentDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'A short descriptive name given to the payment, e.g. Premium, Upfront, etc. The description may be used as reference.',\n    },\n    {\n        id: 2821,\n        name: 'PostTradePaymentID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'The identifier for the individual payment.',\n    },\n    {\n        id: 2822,\n        name: 'PostTradePaymentLinkID',\n        abbrName: 'LinkID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Used to link a group of payments together, e.g. cross-currency payments associated with a swap.',\n    },\n    {\n        id: 2823,\n        name: 'PostTradePaymentStatus',\n        abbrName: 'Stat',\n        type: 'PostTradePaymentStatusCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'Used to indicate the status of a post-trade payment.',\n    },\n    {\n        id: 2824,\n        name: 'PostTradePaymentType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'Type of post-trade payment.\\n\\nSee ISITC \"Payments Cash Purpose Codes\" for list of payment type codes to use available at https://isitc.org/market-practices/reference-data-and-standards-market-practice and select \"ISITC Classification Code List\".',\n    },\n    {\n        id: 2825,\n        name: 'PostTradePaymentCalculationDate',\n        abbrName: 'CalcDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'The (actual) date the periodic payments calculations are made.',\n    },\n    {\n        id: 2826,\n        name: 'PostTradePaymentValueDate',\n        abbrName: 'ValuDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'The adjusted (for holidays and other non-business days) payment date on which the payment is expected to settle.',\n    },\n    {\n        id: 2827,\n        name: 'PostTradePaymentFinalValueDate',\n        abbrName: 'FnlValuDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description: 'The actual or final payment date on which the payment was made.',\n    },\n    {\n        id: 2828,\n        name: 'CurrentDisplayPrice',\n        abbrName: 'CurDspPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Price at which the order is currently displayed to the market. Can be used on order messages, e.g. NewOrderSingle(35=D), to provide the current displayed price of a parent order when splitting it into smaller child orders.\\n\\nIn the context of US CAT this is used when reporting new child orders.',\n    },\n    {\n        id: 2829,\n        name: 'DuplicateClOrdIDIndicator',\n        abbrName: 'DupClOrdIDInd',\n        type: 'DuplicateClOrdIDIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Used to indicate that a ClOrdID(11) value is an intentional duplicate of a previously sent value. Allows to avoid the rejection of an order with OrdRejReason(103) = 6 (Duplicate Order).\\n\\nIn the context of US CAT this can be used when the recipient of a previously routed order requires the same identifier to be re-used for a new route.',\n    },\n    {\n        id: 2830,\n        name: 'EventInitiatorType',\n        abbrName: 'EvntInitrTyp',\n        type: 'EventInitiatorTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Indicates the type of entity who initiated an event, e.g. modification or cancellation of an order or quote.',\n    },\n    {\n        id: 2831,\n        name: 'NBBOEntryType',\n        abbrName: 'NBBOTyp',\n        type: 'NBBOEntryTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Type of NBBO information.',\n    },\n    {\n        id: 2832,\n        name: 'NBBOPrice',\n        abbrName: 'NBBOPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Price related to NBBO. NBBOEntryType(2831) may be used to indicate entry type, e.g. bid or offer.',\n    },\n    {\n        id: 2833,\n        name: 'NBBOQty',\n        abbrName: 'NBBOQty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Quantity related to NBBO. NBBOEntryType(2831) may be used to indicte entry type, e.g. bid or offer.',\n    },\n    {\n        id: 2834,\n        name: 'NBBOSource',\n        abbrName: 'NBBOSrc',\n        type: 'NBBOSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Source of NBBO information.',\n    },\n    {\n        id: 2835,\n        name: 'OrderOriginationFirmID',\n        abbrName: 'OrigntnFirmID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description:\n            'Identifier for the original owner of an order as part of the RelatedOrderGrp component. Use the Parties component with PartyRole(452) = 13 (Order Origination Firm) to identify the original owner of an individual order.',\n    },\n    {\n        id: 2836,\n        name: 'RelatedOrderTime',\n        abbrName: 'Tm',\n        type: 'UTCTimestamp',\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description: 'Timestamp for the assignment of a (unique) identifier to an order.',\n    },\n    {\n        id: 2837,\n        name: 'SingleQuoteIndicator',\n        abbrName: 'SnglQteInd',\n        type: 'SingleQuoteIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Used to indicate whether the quoting system allows only one quote to be active at a time for the quote issuer or market maker.',\n    },\n    {\n        id: 2838,\n        name: 'CurrentWorkingPrice',\n        abbrName: 'CurWrkngPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description:\n            'Current working price of the order relative to the state of the order.\\n\\nIn the context of US CAT this can be used for the current price of the parent order when reporting a split into new (child) orders.',\n    },\n    {\n        id: 2839,\n        name: 'TrdRegTimestampManualIndicator',\n        abbrName: 'ManInd',\n        type: 'TrdRegTimestampManualIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '253',\n        description: 'Indicates whether a given timestamp was manually captured.',\n    },\n    {\n        id: 2840,\n        name: 'CollateralReinvestmentRate',\n        abbrName: 'RnvstmntRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Interest rate received for collateral reinvestment.\\n\\nIn the context of EU SFTR this is the reinvestment interest rate received from cash collateral made by the lender. If there are multiple reinvestment types, this is an average rate.',\n    },\n    {\n        id: 2841,\n        name: 'UnderlyingRefID',\n        abbrName: 'UndlyRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            \"Identifies the underlying instrument the entity applies to by referencing the underlying instrument's UnderlyingID(2874).\",\n    },\n    {\n        id: 2842,\n        name: 'CollateralReinvestmentAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'The cash amount of the specified re-investment type.',\n    },\n    {\n        id: 2843,\n        name: 'CollateralReinvestmentCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'The currency denomination of the re-invested cash amount.\\n\\nCollateralReinvestmentCurrencyCodeSource(2931) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.',\n    },\n    {\n        id: 2844,\n        name: 'CollateralReinvestmentType',\n        abbrName: 'Typ',\n        type: 'CollateralReinvestmentTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Indicates the type of investment the cash collateral is re-invested in.',\n    },\n    {\n        id: 2845,\n        name: 'NoCollateralReinvestments',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Number of instances of CollateralReinvestmentType(2844) in the repeating group.',\n    },\n    {\n        id: 2846,\n        name: 'FundingSource',\n        abbrName: 'Src',\n        type: 'FundingSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Specifies the funding source used to finance margin or collateralized loan.',\n    },\n    {\n        id: 2847,\n        name: 'FundingSourceCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'Currency denomination of the market value of the funding source.\\n\\nFundingSourceCurrencyCodeSource(2954) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.',\n    },\n    {\n        id: 2848,\n        name: 'FundingSourceMarketValue',\n        abbrName: 'MktValu',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Market value of the funding source.',\n    },\n    {\n        id: 2849,\n        name: 'NoFundingSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Number of instances of FundingSource(2846) in the repeating group.',\n    },\n    {\n        id: 2851,\n        name: 'MarginDirection',\n        abbrName: 'Dirctn',\n        type: 'MarginDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Indicates whether the margin described is posted or received.',\n    },\n    {\n        id: 2862,\n        name: 'SideCollateralReinvestmentRate',\n        abbrName: 'RnvstmntRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Interest rate received for collateral reinvestment.\\n\\nIn the context of EU SFTR this is the reinvestment interest rate received from cash collateral made by the lender. If there are multiple reinvestment types, this is an average rate.',\n    },\n    {\n        id: 2863,\n        name: 'SideUnderlyingRefID',\n        abbrName: 'UndlyRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            \"Identifies the underlying instrument the entity applies to by referencing the underlying instrument's UnderlyingID(2874).\",\n    },\n    {\n        id: 2864,\n        name: 'NoSideCollateralReinvestments',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Number of instances of SideCollateralReinvestmentType(2867) in the repeating group.',\n    },\n    {\n        id: 2865,\n        name: 'SideCollateralReinvestmentAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'The cash amount of the specified re-investment type.',\n    },\n    {\n        id: 2866,\n        name: 'SideCollateralReinvestmentCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        updated: 'FIX.Latest',\n        updatedEP: '273',\n        description:\n            'The currency denomination of the re-invested cash amount.\\n\\nSideCollateralReinvestmentCurrencyCodeSource(2932) may be used to disambiguate the code source scheme used, and ISO 4217 is the default scheme if absent.',\n    },\n    {\n        id: 2867,\n        name: 'SideCollateralReinvestmentType',\n        abbrName: 'Typ',\n        type: 'CollateralReinvestmentTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Indicates the type of investment the cash collateral is re-invested in.',\n    },\n    {\n        id: 2868,\n        name: 'CollateralizationValueDate',\n        abbrName: 'CollztnValuDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Date when the collateral is to be assessed or assigned.',\n    },\n    {\n        id: 2869,\n        name: 'RegulatoryReportTypeBusinessDate',\n        abbrName: 'RegRptTypBizDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'The business date on which the event identified in RegulatoryReportType(1934) took place.\\n\\nIn the context of EU SFTR reports with a RegulatoryReportType(1934) value 7 (Post-trade valuation), 31 (Collateral update) or 32 (Margin update), the business date on which the business event took place, which results in the information contained in the report.',\n    },\n    {\n        id: 2870,\n        name: 'ClearingPortfolioID',\n        abbrName: 'ClrPrtflioID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'When the transaction is cleared and included in a portfolio of transactions this identifies the portfolio by its unique identifier.\\n\\nIn the context of EU SFTR reporting this applies to cleared transactions grouped in a portfolio for which margins are exchanged.',\n    },\n    {\n        id: 2871,\n        name: 'NoTransactionAttributes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Number of instances of TransactionAttributeType(2872) in the repeating group.',\n    },\n    {\n        id: 2872,\n        name: 'TransactionAttributeType',\n        abbrName: 'Typ',\n        type: 'TransactionAttributeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Type of attribute(s) or characteristic(s) associated with the transaction.',\n    },\n    {\n        id: 2873,\n        name: 'TransactionAttributeValue',\n        abbrName: 'Valu',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Value associated with the specificed TransactionAttributeType(2872).',\n    },\n    {\n        id: 2874,\n        name: 'UnderlyingID',\n        abbrName: 'UdlyID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'Unique identifier for the underlying instrument within the context of a message.\\n\\nThe UnderlyingID(2874) can be referenced by other fields, for example UnderlyingRefID(tbd2841) and SideUnderlyingRefID(2863), from other components . The scope of uniqueness is agreed upon between counterparties.',\n    },\n    {\n        id: 2876,\n        name: 'PosAmtPrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            \"The price used to calculate the PosAmt(708).\\n\\nThis may be used for certain PosAmtType(707) values where the PosAmt(708) is based on the current price of the position's security. In the context of EU SFTR reporting, this is the price used to calculate the loan value for securities loan and borrowing, and buy-sell back. The price may be expressed in units or percentage of the underlying security, yield or an absolute amount that ignores netting. For Buy/Sellback it expresses the initial spot price.\",\n    },\n    {\n        id: 2877,\n        name: 'PosAmtPriceType',\n        abbrName: 'PxTyp',\n        type: 'PriceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Specifies the type of price for PosAmtPrice(2876).',\n    },\n    {\n        id: 2878,\n        name: 'TerminationDate',\n        abbrName: 'TmntnDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            \"The date of a contract's early termination or other post-trade event when the event is prior to the contract natural end or maturity not defined as part of the security's reference data or contractual terms/agreement.\",\n    },\n    {\n        id: 2879,\n        name: 'CouponOtherDayCount',\n        abbrName: 'CpnOtherDayCnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'The industry name of the day count convention not listed in CouponDayCount(1950).',\n    },\n    {\n        id: 2880,\n        name: 'LegCouponOtherDayCount',\n        abbrName: 'CpnOtherDayCnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'The industry name of the day count convention not listed in LegCouponDayCount(2165).',\n    },\n    {\n        id: 2881,\n        name: 'UnderlyingCouponOtherDayCount',\n        abbrName: 'CpnOtherDayCnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'The industry name of the day count convention not listed in UnderlyingCouponDayCount(1993).',\n    },\n    {\n        id: 2882,\n        name: 'ContraOrderOrigination',\n        abbrName: 'CntraOrdOrigntn',\n        type: 'OrderOriginationCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '256',\n        description: 'Identifies the origin of the order from the counterparty of the execution or trade.',\n    },\n    {\n        id: 2883,\n        name: 'RoutingArrangementIndicator',\n        abbrName: 'RtgArngmntInd',\n        type: 'RoutingArrangementIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '256',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'Indicates whether a routing arrangement is in place, e.g. between two brokers. May be used together with OrderOrigination(1724) to further describe the origin of an order.\\n\\nAn arrangement under which a participant of a marketplace permits a broker to electronically transmit orders containing the identifier of the participant. This can be either through the systems of the participant for automatic onward transmission to a marketplace or directly to a marketplace without being electronically transmitted through the systems of the participant.',\n    },\n    {\n        id: 2884,\n        name: 'ContraRoutingArrangementIndicator',\n        abbrName: 'CntraRtgArngmntInd',\n        type: 'RoutingArrangementIndicatorCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '256',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'Indicates whether a routing arrangement is in place, e.g. between two brokers. May be used together with ContraOrderOrigination(2882) to further describe the origin of an order.',\n    },\n    {\n        id: 2885,\n        name: 'UnderlyingAccruedInterestAmt',\n        abbrName: 'AcrdIntAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '258',\n        description: 'Amount of accrued interest of underlying security.',\n    },\n    {\n        id: 2886,\n        name: 'UnderlyingNumDaysInterest',\n        abbrName: 'NumDaysInt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '258',\n        description: 'Number of days of interest for underlying security.',\n    },\n    {\n        id: 2887,\n        name: 'RelatedOrderID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '2888',\n        added: 'FIX.5.0SP2',\n        addedEP: '259',\n        description: 'Identifier of a related order.',\n    },\n    {\n        id: 2888,\n        name: 'RelatedOrderIDSource',\n        abbrName: 'Src',\n        type: 'RelatedOrderIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '259',\n        description: 'Describes the source of the identifier that RelatedOrderID(2887) represents.',\n    },\n    {\n        id: 2889,\n        name: 'RelatedOrderQty',\n        abbrName: 'Qty',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '259',\n        description:\n            'Quantity of the related order which can be less than its total quantity. For example, when only parts of an order contribute to an aggregated order.',\n    },\n    {\n        id: 2890,\n        name: 'OrderRelationship',\n        abbrName: 'Rltnshp',\n        type: 'OrderRelationshipCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '259',\n        description:\n            'Describes the type of relationship between the order identified by RelatedOrderID(2887) and the order outside of the RelatedOrderGrp component.',\n    },\n    {\n        id: 2891,\n        name: 'UPICode',\n        abbrName: 'UPI',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '266',\n        description:\n            'Uniquely identifies the product of a security using ISO 4914 standard, Unique Product Identifier (UPI). The DSB (Derivative Service Bureau Ltd) is acting as designated service provider for UPI System.',\n    },\n    {\n        id: 2892,\n        name: 'DerivativeUPICode',\n        abbrName: 'UPI',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '266',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Uniquely identifies the product of a derivative instrument using ISO 4914. See UPICode(2891) for complete definition.',\n    },\n    {\n        id: 2893,\n        name: 'LegUPICode',\n        abbrName: 'UPI',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '266',\n        description:\n            'Uniquely identifies the product of a leg instrument using ISO 4914. See UPICode(2891) for further detail.',\n    },\n    {\n        id: 2894,\n        name: 'UnderlyingUPICode',\n        abbrName: 'UPI',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '266',\n        description:\n            'Uniquely identifies the product of an underlying instrument using ISO 4914. See UPICode(2891) for further detail.',\n    },\n    {\n        id: 2895,\n        name: 'InstrumentScopeUPICode',\n        abbrName: 'UPI',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '266',\n        description:\n            'Uniquely identifies the product of a security using ISO 4914 as filter criteria. See UPICode(2891) for further detail.',\n    },\n    {\n        id: 2896,\n        name: 'TertiaryTrdType',\n        abbrName: 'TrdTyp3',\n        type: 'TrdTypeCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.Latest',\n        addedEP: '268',\n        description:\n            'Type of trade assigned to a trade. Used in addition to TrdType(828) and SecondaryTrdType(855). Must not be used when only one additional trade type needs to be assigned.',\n    },\n    {\n        id: 2897,\n        name: 'CurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the Currency(15) value.',\n    },\n    {\n        id: 2898,\n        name: 'LegCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LegCurrency(556) value.',\n    },\n    {\n        id: 2899,\n        name: 'SettlCurrencyCodeSource',\n        abbrName: 'SettlCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the SettlCurrency(120) value.',\n    },\n    {\n        id: 2900,\n        name: 'LegSettlCurrencyCodeSource',\n        abbrName: 'SettlCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LegSettlCurrency(675) value.',\n    },\n    {\n        id: 2901,\n        name: 'SideCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the SideCurrency(1154) value.',\n    },\n    {\n        id: 2902,\n        name: 'SideSettlCurrencyCodeSource',\n        abbrName: 'SettlCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the SideSettlCurrency(1155) value.',\n    },\n    {\n        id: 2903,\n        name: 'SettlementAmountCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the SettlementAmountCurrency(1702) value.',\n    },\n    {\n        id: 2904,\n        name: 'StrikeCurrencyCodeSource',\n        abbrName: 'StrkCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the StrikeCurrency(947) value.',\n    },\n    {\n        id: 2905,\n        name: 'UnitOfMeasureCurrencyCodeSource',\n        abbrName: 'UOMCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the UnitOfMeasureCurrency(1716) value.',\n    },\n    {\n        id: 2906,\n        name: 'PriceUnitOfMeasureCurrencyCodeSource',\n        abbrName: 'PxUOMCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the PriceUnitOfMeasureCurrency(1717) value.',\n    },\n    {\n        id: 2907,\n        name: 'PriceQuoteCurrencyCodeSource',\n        abbrName: 'PxQteCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the PriceQuoteCurrency(1524) value.',\n    },\n    {\n        id: 2908,\n        name: 'LegStrikeCurrencyCodeSource',\n        abbrName: 'StrkCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LegStrikeCurrency(942) value.',\n    },\n    {\n        id: 2909,\n        name: 'LegUnitOfMeasureCurrencyCodeSource',\n        abbrName: 'UOMCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LegUnitOfMeasureCurrency(1720) value.',\n    },\n    {\n        id: 2910,\n        name: 'LegPriceUnitOfMeasureCurrencyCodeSource',\n        abbrName: 'PxUOMCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LegPriceUnitOfMeasureCurrency(1721) value.',\n    },\n    {\n        id: 2911,\n        name: 'LegPriceQuoteCurrencyCodeSource',\n        abbrName: 'PxQteCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LegPriceQuoteCurrency(1528) value.',\n    },\n    {\n        id: 2912,\n        name: 'DerivativeStrikeCurrencyCodeSource',\n        abbrName: 'StrkCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the DerivativeStrikeCurrency(1262) value.',\n    },\n    {\n        id: 2913,\n        name: 'DerivativeUnitOfMeasureCurrencyCodeSource',\n        abbrName: 'UOMCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the DerivativeUnitOfMeasureCurrency(1722) value.',\n    },\n    {\n        id: 2914,\n        name: 'DerivativePriceUnitOfMeasureCurrencyCodeSource',\n        abbrName: 'PxUOMCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the DerivativePriceUnitOfMeasureCurrency(1723) value.',\n    },\n    {\n        id: 2915,\n        name: 'DerivativePriceQuoteCurrencyCodeSource',\n        abbrName: 'PxQteCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the DerivativePriceQuoteCurrency(1576) value.',\n    },\n    {\n        id: 2916,\n        name: 'UnderlyingCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the UnderlyingCurrency(318) value.',\n    },\n    {\n        id: 2917,\n        name: 'UnderlyingStrikeCurrencyCodeSource',\n        abbrName: 'StrkCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the UnderlyingStrikeCurrency(941) value.',\n    },\n    {\n        id: 2918,\n        name: 'UnderlyingUnitOfMeasureCurrencyCodeSource',\n        abbrName: 'UOMCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the UnderlyingUnitOfMeasureCurrency(1718) value.',\n    },\n    {\n        id: 2919,\n        name: 'UnderlyingPriceUnitOfMeasureCurrencyCodeSource',\n        abbrName: 'PxUOMCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the UnderlyingPriceUnitOfMeasureCurrency(1719) value.',\n    },\n    {\n        id: 2920,\n        name: 'UnderlyingPriceQuoteCurrencyCodeSource',\n        abbrName: 'PxQteCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the UnderlyingPriceQuoteCurrency(1526) value.',\n    },\n    {\n        id: 2921,\n        name: 'UnderlyingNotionalCurrencyCodeSource',\n        abbrName: 'NotlCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the UnderlyingNotionalCurrency(2615) value.',\n    },\n    {\n        id: 2922,\n        name: 'CommCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the CommCurrency(479) value.',\n    },\n    {\n        id: 2923,\n        name: 'CommissionCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the CommissionCurrency(2643) value.',\n    },\n    {\n        id: 2924,\n        name: 'CommissionUnitOfMeasureCurrencyCodeSource',\n        abbrName: 'UOMCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the CommissionUnitOfMeasureCurrency(2645) value.',\n    },\n    {\n        id: 2925,\n        name: 'AllocCommissionCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the AllocCommissionCurrency(2657) value.',\n    },\n    {\n        id: 2926,\n        name: 'AllocCommissionUnitOfMeasureCurrencyCodeSource',\n        abbrName: 'UOMCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the AllocCommissionUnitOfMeasureCurrency(2659) value.',\n    },\n    {\n        id: 2927,\n        name: 'AllocSettlCurrencyCodeSource',\n        abbrName: 'AllocSettlCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the AllocSettlCurrency(736) value.',\n    },\n    {\n        id: 2928,\n        name: 'LegAllocSettlCurrencyCodeSource',\n        abbrName: 'AllocSettlCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LegAllocSettlCurrency(1367) value.',\n    },\n    {\n        id: 2929,\n        name: 'CollateralCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the CollateralCurrency(1705) value.',\n    },\n    {\n        id: 2930,\n        name: 'SideCollateralCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the SideCollateralCurrency(2695) value.',\n    },\n    {\n        id: 2931,\n        name: 'CollateralReinvestmentCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the CollateralReinvestmentCurrency(2843) value.',\n    },\n    {\n        id: 2932,\n        name: 'SideCollateralReinvestmentCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the SideCollateralReinvestmentCurrency(2866) value.',\n    },\n    {\n        id: 2933,\n        name: 'TradeAllocCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the TradeAllocCurrency(1847) value.',\n    },\n    {\n        id: 2934,\n        name: 'TradingCurrencyCodeSource',\n        abbrName: 'TrdCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the TradingCurrency(1245) value.',\n    },\n    {\n        id: 2935,\n        name: 'LimitAmtCurrencyCodeSource',\n        abbrName: 'LmtAmtCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LimitAmtCurrency(1634) value.',\n    },\n    {\n        id: 2936,\n        name: 'PosQtyUnitOfMeasureCurrencyCodeSource',\n        abbrName: 'UOMCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the PosQtyUnitOfMeasureCurrency(1835) value.',\n    },\n    {\n        id: 2937,\n        name: 'PositionCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the PositionCurrency(1055) value.',\n    },\n    {\n        id: 2938,\n        name: 'LegPosCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LegPosCurrency(1589) value.',\n    },\n    {\n        id: 2939,\n        name: 'RiskLimitCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the RiskLimitCurrency(1532) value.',\n    },\n    {\n        id: 2940,\n        name: 'EntitlementAttribCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the EntitlementAttribCurrency(1781) value.',\n    },\n    {\n        id: 2941,\n        name: 'ComplexOptPayoutCurrencyCodeSource',\n        abbrName: 'OptCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the ComplexOptPayoutCurrency(2122) value.',\n    },\n    {\n        id: 2942,\n        name: 'ComplexEventCurrencyOneCodeSource',\n        abbrName: 'Ccy1Src',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the ComplexEventCurrencyOne(2124) value.',\n    },\n    {\n        id: 2943,\n        name: 'ComplexEventCurrencyTwoCodeSource',\n        abbrName: 'Ccy2Src',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the ComplexEventCurrencyTwo(2125) value.',\n    },\n    {\n        id: 2944,\n        name: 'LegComplexOptPayoutCurrencyCodeSource',\n        abbrName: 'OptCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LegComplexOptPayoutCurrency(2226) value.',\n    },\n    {\n        id: 2945,\n        name: 'LegComplexEventCurrencyOneCodeSource',\n        abbrName: 'Ccy1Src',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LegComplexEventCurrencyOne(2233) value.',\n    },\n    {\n        id: 2946,\n        name: 'LegComplexEventCurrencyTwoCodeSource',\n        abbrName: 'Ccy2Src',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LegComplexEventCurrencyTwo(2234) value.',\n    },\n    {\n        id: 2947,\n        name: 'UnderlyingComplexOptPayoutCurrencyCodeSource',\n        abbrName: 'OptCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the UnderlyingComplexOptPayoutCurrency(2266) value.',\n    },\n    {\n        id: 2948,\n        name: 'UnderlyingComplexEventCurrencyOneCodeSource',\n        abbrName: 'Ccy1Src',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the UnderlyingComplexEventCurrencyOne(2268) value.',\n    },\n    {\n        id: 2949,\n        name: 'UnderlyingComplexEventCurrencyTwoCodeSource',\n        abbrName: 'Ccy2Src',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the UnderlyingComplexEventCurrencyTwo(2269) value.',\n    },\n    {\n        id: 2950,\n        name: 'BenchmarkCurveCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the BenchmarkCurveCurrency(220) value.',\n    },\n    {\n        id: 2951,\n        name: 'LegBenchmarkCurveCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LegBenchmarkCurveCurrency(676) value.',\n    },\n    {\n        id: 2952,\n        name: 'AgreementCurrencyCodeSource',\n        abbrName: 'AgmtCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the AgreementCurrency(918) value.',\n    },\n    {\n        id: 2953,\n        name: 'LegAgreementCurrencyCodeSource',\n        abbrName: 'AgmtCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the LegAgreementCurrency(2495) value.',\n    },\n    {\n        id: 2954,\n        name: 'FundingSourceCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the FundingSourceCurrency(2847) value.',\n    },\n    {\n        id: 2955,\n        name: 'PayCollectCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the PayCollectCurrency(1709) value.',\n    },\n    {\n        id: 2956,\n        name: 'PostTradePaymentCurrencyCodeSource',\n        abbrName: 'CcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies class or source of the PostTradePaymentCurrency(2818) value.',\n    },\n    {\n        id: 2957,\n        name: 'SymbolPositionNumber',\n        abbrName: 'SymPosNum',\n        type: 'int',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description:\n            'Reference to the first or second currency or digital asset in Symbol(55) for FX-style trading.\\n\\nConditionally required when one or both symbols in Symbol(55) represent a digital asset.',\n    },\n    {\n        id: 2958,\n        name: 'LegSymbolPositionNumber',\n        abbrName: 'SymPosNum',\n        type: 'int',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description:\n            'Reference to the first or second currency or digital asset in LegSymbol(600) for FX-style trading.\\n\\nConditionally required when one or both symbols in LegSymbol(600) represent a digital asset.',\n    },\n    {\n        id: 2959,\n        name: 'UnderlyingSymbolPositionNumber',\n        abbrName: 'SymPosNum',\n        type: 'int',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description:\n            'Reference to the first or second currency or digital asset in UnderlyingSymbol(311) for FX-style trading.\\n\\nConditionally required when one or both symbols in UnderlyingSymbol(311) represent a digital asset.',\n    },\n    {\n        id: 2960,\n        name: 'SettlPriceUnitOfMeasureCurrencyCodeSource',\n        abbrName: 'SetPxUOMCcySrc',\n        type: 'CurrencyCodeSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '273',\n        description: 'Identifies the class or source of the SettlPriceUnitOfMeasureCurrency(1887) value.',\n    },\n    {\n        id: 2961,\n        name: 'AnonymousTradeIndicator',\n        abbrName: 'AnonymsTrdInd',\n        type: 'Boolean',\n        added: 'FIX.Latest',\n        addedEP: '274',\n        description: 'Indicates whether the trade or transaction was executed anonymously.',\n    },\n    {\n        id: 2962,\n        name: 'SecurityReferenceDataSupplement',\n        abbrName: 'SecRefDataSupplmnt',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '276',\n        description:\n            'May be used to generically assist in disambiguating an instrument where the security identifier and core reference data attributes are not sufficient to uniquely identify the instrument. The values used are bilaterally agreed.\\n\\nThe data used for disambiguation can be of synthetic nature (e.g. 1, 2, 3,... or A, B, C,...) or based on other characteristic of the instrument. An example of the latter is an energy futures or options contract which may have the same expiration date with different delivery dates that fall on a non-business day; in such a use case the first day of delivery date may be used to disambiguate such contract (date expression used should be bilaterally agreed).',\n    },\n    {\n        id: 2963,\n        name: 'MultiJurisdictionReportingIndicator',\n        abbrName: 'MultiJrsdctnRptInd',\n        type: 'MultiJurisdictionReportingIndicatorCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '277',\n        description:\n            'Indicate whether a trade is eligible to be reported to more than one regulatory jurisdictions, e.g. due to overlapping reporting rules that require reporting to different jurisdictions.',\n    },\n    {\n        id: 2964,\n        name: 'SelfMatchPreventionInstruction',\n        abbrName: 'SlfMtchPrvntnInst',\n        type: 'SelfMatchPreventionInstructionCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '280',\n        description:\n            'Indicate the instruction for self-match prevention when the incoming (aggressive) order has the same SelfMatchPreventionID(2362) as a resting (passive) order.',\n    },\n    {\n        id: 2965,\n        name: 'SettlStatusRequestID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description: 'Unique identifier of the SettlementStatusRequest(35=EC).',\n    },\n    {\n        id: 2966,\n        name: 'SettlStatusRequestStatus',\n        abbrName: 'ReqStat',\n        type: 'SettlStatusRequestStatusCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description: 'Status of the SettlementStatusRequest(35=EC) message being responded to.',\n    },\n    {\n        id: 2967,\n        name: 'SettlStatusReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description: 'Unique identifier of the SettlementStatusReport(35=EE).',\n    },\n    {\n        id: 2968,\n        name: 'SettlStatus',\n        abbrName: 'SettlStat',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description:\n            'The settlement status of the identified trade.\\n\\nThis field mirrors MT548 subsequence A2 field 25D Status Code. See https://www.iso20022.org/15022/uhb/mt548-10-field-25d.htm for MT548 code values.',\n    },\n    {\n        id: 2969,\n        name: 'SettlStatusReason',\n        abbrName: 'SettlStatRsn',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description:\n            'Used to provide additional reason or qualify the reason for the settlement status specified in SettlStatus(2968).\\n\\nThis field mirrors MT548 subsequence A2a field 24B Reason Code. See https://www.iso20022.org/15022/uhb/mt548-12-field-24b.htm for MT548 code values.',\n    },\n    {\n        id: 2970,\n        name: 'SettlStatusReasonText',\n        abbrName: 'SettlStatRsnTxt',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description:\n            'Text description associated with SettlStatusReason(2969).\\n\\nThis field mirrors MT548 subsequence A2a field 70D Narrative.',\n    },\n    {\n        id: 2971,\n        name: 'EncodedSettlStatusReasonTextLen',\n        abbrName: 'EncSettlStatRsnTxtLen',\n        type: 'Length',\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedSettlStatusReasonText(2972) field.',\n    },\n    {\n        id: 2972,\n        name: 'EncodedSettlStatusReasonText',\n        abbrName: 'EncSettlStatRsnTxt',\n        type: 'data',\n        lengthId: '2971',\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description:\n            'Encoded (non-ASCII characters) representation of the SettlStatusReasonText(2970) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the SettlStatusReasonText(2970) field.',\n    },\n    {\n        id: 2973,\n        name: 'SettlStatusReportStatus',\n        abbrName: 'Stat',\n        type: 'SettlStatusReportStatusCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description: 'Status of the report being responded to.',\n    },\n    {\n        id: 2974,\n        name: 'AllocGroupSubQtyID',\n        abbrName: 'GrpSubQtyID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '285',\n        description: 'Identifier for quantity subgroup assigned by the clearinghouse.',\n    },\n    {\n        id: 2975,\n        name: 'NoAllocGroupSubQtys',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '285',\n        description: 'Indicates number of subgroups in an allocation group.',\n    },\n    {\n        id: 2976,\n        name: 'AllocGroupSubQty',\n        abbrName: 'Qty',\n        type: 'Qty',\n        added: 'FIX.Latest',\n        addedEP: '285',\n        description: 'Total quantity in the subgroup of an allocation group.',\n    },\n    {\n        id: 2977,\n        name: 'AllocGroupSubQtyOffset',\n        abbrName: 'QtyOfst',\n        type: 'Qty',\n        added: 'FIX.Latest',\n        addedEP: '285',\n        description: 'Change in quantity in the subgroup of an allocation group.',\n    },\n    {\n        id: 2978,\n        name: 'AllocGroupRemainingSubQty',\n        abbrName: 'RemQty',\n        type: 'Qty',\n        added: 'FIX.Latest',\n        addedEP: '285',\n        description: 'Remaining quantity in the subgroup of an allocation group.',\n    },\n    {\n        id: 2979,\n        name: 'NoAllocGroupSubQtyAttributes',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '285',\n        description: 'Indicates number of trade attributes used to define a subgroup in an allocation group.',\n    },\n    {\n        id: 2980,\n        name: 'AllocGroupSubQtyType',\n        abbrName: 'Typ',\n        type: 'AllocGroupSubQtyTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.Latest',\n        addedEP: '285',\n        description: 'Type of trade attribute defining a subgroup in an allocation group.',\n    },\n    {\n        id: 2981,\n        name: 'AllocGroupSubQtyValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '285',\n        description: 'Value of the trade attribute defining a subgroup in an allocation group.',\n    },\n    {\n        id: 2982,\n        name: 'MaturityFrequencyUnit',\n        abbrName: 'MatFreqUnit',\n        type: 'TimeUnitCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '287',\n        description:\n            'Time unit associated with the minimum frequency of the instrument maturity intervals.\\n\\nUsage note: When FlexibleIndicator(1244)=Y and the maturity date is user-defined, set MaturityFrequencyUnit(2982)=F (Flexible).',\n    },\n    {\n        id: 2983,\n        name: 'MaturityFrequencyPeriod',\n        abbrName: 'MatFreqPeriod',\n        type: 'int',\n        added: 'FIX.Latest',\n        addedEP: '287',\n        description: 'Time unit multiplier for the minimum frequency of the instrument maturity intervals.',\n    },\n    {\n        id: 2984,\n        name: 'UnderlyingMaturityFrequencyUnit',\n        abbrName: 'MatFreqUnit',\n        type: 'TimeUnitCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '287',\n        description:\n            'Time unit associated with the minimum frequency of the instrument maturity intervals.\\n\\nUsage note: When UnderlyingFlexibleIndicator(2035)=Y and the underlying maturity is user-defined, set UnderlyingMaturityFrequencyUnit(2984)=F (Flexible).',\n    },\n    {\n        id: 2985,\n        name: 'UnderlyingMaturityFrequencyPeriod',\n        abbrName: 'MatFreqPeriod',\n        type: 'int',\n        added: 'FIX.Latest',\n        addedEP: '287',\n        description: 'Time unit multiplier for the minimum frequency of the instrument maturity intervals.',\n    },\n    {\n        id: 2986,\n        name: 'LegMaturityFrequencyUnit',\n        abbrName: 'MatFreqUnit',\n        type: 'TimeUnitCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '287',\n        description:\n            'Time unit associated with the minimum frequency of the instrument maturity intervals.\\n\\nUsage note: When LegFlexibleIndicator(2202)=Y and the leg maturity is user-defined, set LegMaturityFrequencyUnit(2986)=F (Flexible).',\n    },\n    {\n        id: 2987,\n        name: 'LegMaturityFrequencyPeriod',\n        abbrName: 'MatFreqPeriod',\n        type: 'int',\n        added: 'FIX.Latest',\n        addedEP: '287',\n        description: 'Time unit multiplier for the minimum frequency of the instrument maturity intervals.',\n    },\n    {\n        id: 2988,\n        name: 'SecurityRiskMetricsReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Unique identifier for the SecurityRiskMetricsReport(35=EG) message.',\n    },\n    {\n        id: 2989,\n        name: 'RiskMetricsSecurityGroup',\n        abbrName: 'MtrcsSecGrp',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Describes a group of related instruments for which risk metrics are provided.',\n    },\n    {\n        id: 2990,\n        name: 'RiskMetricsSecuritySubGroup',\n        abbrName: 'MtrcsSecSubGrp',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Describes a sub-group of a group identified by RiskMetricsSecurityGroup(2989).',\n    },\n    {\n        id: 2991,\n        name: 'UnderlyingBidPx',\n        abbrName: 'UndBidPx',\n        type: 'Price',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Bid price of the underlying instrument.',\n    },\n    {\n        id: 2992,\n        name: 'UnderlyingOfferPx',\n        abbrName: 'UndOfrPx',\n        type: 'Price',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Offer price of the underlying instrument.',\n    },\n    {\n        id: 2993,\n        name: 'MetricsCalculationPriceSource',\n        abbrName: 'MtrcsCalcPxSrc',\n        type: 'MetricsCalculationPriceSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description:\n            'Specifies the source of the price(s) of the security used in the calculation of the metrics or analytics data.',\n    },\n    {\n        id: 2994,\n        name: 'AssetValuationModel',\n        abbrName: 'AssetValModel',\n        type: 'AssetValuationModelCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Identifies the model used for asset valuation or pricing calculations.',\n    },\n    {\n        id: 2995,\n        name: 'NoSecurityRiskMetrics',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Number of instruments with security risk metrics data.',\n    },\n    {\n        id: 2996,\n        name: 'Gamma',\n        abbrName: 'Gamma',\n        type: 'float',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'The rate of change of Delta over time.',\n    },\n    {\n        id: 2997,\n        name: 'Rho',\n        abbrName: 'Rho',\n        type: 'float',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description:\n            \"The security's value rate of change in response to a 1% change in (risk-free) interest rate. Measures the security's sensitivity to interest rate change.\",\n    },\n    {\n        id: 2998,\n        name: 'Theta',\n        abbrName: 'Theta',\n        type: 'float',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'The security\\'s price rate of change in relation to passage of time. Also known as \"time decay\".',\n    },\n    {\n        id: 2999,\n        name: 'Vega',\n        abbrName: 'Vega',\n        type: 'float',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: \"The security's price sensitivity to change in volatility of the underlying asset price.\",\n    },\n    {\n        id: 3000,\n        name: 'VolatilityTime',\n        abbrName: 'VolTS',\n        type: 'UTCTimestamp',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Time at which volatility was computed.',\n    },\n    {\n        id: 3001,\n        name: 'BidVolatility',\n        abbrName: 'BidVol',\n        type: 'float',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Volatility based on bid prices.',\n    },\n    {\n        id: 3002,\n        name: 'OfferVolatility',\n        abbrName: 'OfrVol',\n        type: 'float',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Volatility based on offer prices.',\n    },\n    {\n        id: 3003,\n        name: 'MidVolatility',\n        abbrName: 'MidVol',\n        type: 'float',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Volatility based on mid prices.',\n    },\n    {\n        id: 3004,\n        name: 'RelativeValueTimestamp',\n        abbrName: 'TS',\n        type: 'UTCTimestamp',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        description: 'Timestamp at which the relative valuation metric or analytic is calculated or captured.',\n    },\n    {\n        id: 3005,\n        name: 'NoTradeTypes',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '289',\n        description: 'Number of trade types in repeating group.',\n    },\n    {\n        id: 3006,\n        name: 'TradeType',\n        abbrName: 'TrdTyp',\n        type: 'TrdTypeCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.Latest',\n        addedEP: '289',\n        description:\n            'Type of trade assigned to a trade.\\n\\nNote: several enumerations of this field duplicate the enumerations in TradePriceCondition(1839) field. These may be deprecated from TradeType(3006) in the future. TradePriceCondition(1839) is preferred in messages that support it.',\n    },\n    {\n        id: 3007,\n        name: 'TradeSubType',\n        abbrName: 'TrdSubTyp',\n        type: 'TrdSubTypeCodeSet',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.Latest',\n        addedEP: '289',\n        description: 'Further qualification to the trade type defined in TradeType(3006).',\n    },\n    {\n        id: 3008,\n        name: 'NoAllocTrdRegTimestamps',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '291',\n        description: 'Number of allocation timestamps.',\n    },\n    {\n        id: 3009,\n        name: 'AllocTrdRegTimestamp',\n        abbrName: 'TS',\n        type: 'UTCTimestamp',\n        added: 'FIX.Latest',\n        addedEP: '291',\n        description: 'Same as TrdRegTimestamp(769). Used to provide relevant timestamp for the allocation account.',\n    },\n    {\n        id: 3010,\n        name: 'AllocTrdRegTimestampType',\n        abbrName: 'Typ',\n        type: 'TrdRegTimestampTypeCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '291',\n        description:\n            'Same as TrdRegTimestampType(770). Used to indicate the timestamp type relevant for the allocation account.',\n    },\n    {\n        id: 3011,\n        name: 'AllocTrdRegTimestampSrc',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '291',\n        description:\n            'Same as TrdRegTimestampOrigin(771). Used to indicate the \"origin\" or source of the timestamp relevant for the allocation account.',\n    },\n    {\n        id: 3012,\n        name: 'AlgoCertificateID',\n        abbrName: 'CertID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Unique identifier for a certificate issued by an algorithmic trading firm.',\n    },\n    {\n        id: 3013,\n        name: 'AlgoCertificateDesc',\n        abbrName: 'CertDesc',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Description of a certificate issued by an algorithmic trading firm.',\n    },\n    {\n        id: 3014,\n        name: 'AlgoCertificateRequestID',\n        abbrName: 'CertReqID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Unique identifier of the AlgoCertificateRequest(35=EH).',\n    },\n    {\n        id: 3015,\n        name: 'AlgoCertificateRequestRefID',\n        abbrName: 'CertReqRefID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Reference identifier of the AlgoCertificateRequest(35=EH).',\n    },\n    {\n        id: 3016,\n        name: 'AlgoCertificateRequestTransType',\n        abbrName: 'TxnTyp',\n        type: 'AlgoCertificateRequestTransTypeCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Identifies the message transaction type.',\n    },\n    {\n        id: 3017,\n        name: 'AlgoCertificateRequestStatus',\n        abbrName: 'ReqStat',\n        type: 'AlgoCertificateRequestStatusCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Status of the AlgoCertificateRequest(35=EH) message being responded to.',\n    },\n    {\n        id: 3018,\n        name: 'AlgoCertificateReportID',\n        abbrName: 'CertRptID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Unique identifier of the AlgoCertificateReport(35=EJ).',\n    },\n    {\n        id: 3019,\n        name: 'AlgoCertificateReportRefID',\n        abbrName: 'CertRptRefID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Reference identifier of the AlgoCertificateReport(35=EJ).',\n    },\n    {\n        id: 3020,\n        name: 'AlgoCertificateReportTransType',\n        abbrName: 'TxnTyp',\n        type: 'AlgoCertificateReportTransTypeCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Identifies the message transaction type.',\n    },\n    {\n        id: 3021,\n        name: 'AlgoCertificateReportStatus',\n        abbrName: 'RptStat',\n        type: 'AlgoCertificateReportStatusCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Status of the report being responded to.',\n    },\n    {\n        id: 3022,\n        name: 'AlgoCertificateStatus',\n        abbrName: 'CertStat',\n        type: 'AlgoCertificateStatusCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        updated: 'FIX.Latest',\n        updatedEP: '303',\n        description: 'Identifies the current status of the certificate as established by the certificate issuer.',\n    },\n    {\n        id: 3023,\n        name: 'ApprovalTime',\n        abbrName: 'AprvlTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Date and time the details within the message have been approved.',\n    },\n    {\n        id: 3024,\n        name: 'AlgoTestDesc',\n        abbrName: 'TstDesc',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Description of means of testing for an algorithm.',\n    },\n    {\n        id: 3025,\n        name: 'NoAlgoSystemModules',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Number of components making up a system for algorithmic trading.',\n    },\n    {\n        id: 3026,\n        name: 'AlgoSystemModuleName',\n        abbrName: 'Name',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Name of the component of a system for algorithmic trading.',\n    },\n    {\n        id: 3027,\n        name: 'AlgoSystemModuleVersion',\n        abbrName: 'Ver',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Version (e.g. build or commit number) of the component of a system for algorithmic trading.',\n    },\n    {\n        id: 3028,\n        name: 'NoTestScenarios',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Number of test scenarios for an algorithmic trading system.',\n    },\n    {\n        id: 3029,\n        name: 'TestScenarioID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Unique identifier of a test scenario for a software system.',\n    },\n    {\n        id: 3030,\n        name: 'TestScenarioStatus',\n        abbrName: 'Stat',\n        type: 'TestSuiteStatusCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Identifies the overall result of a test scenario identified by TestScenarioID(3029).',\n    },\n    {\n        id: 3031,\n        name: 'TestScenarioStartTime',\n        abbrName: 'StartTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Starting date and time of test scenario execution for a software system.',\n    },\n    {\n        id: 3032,\n        name: 'TestScenarioEndTime',\n        abbrName: 'EndTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Ending date and time of test scenario execution for a software system.',\n    },\n    {\n        id: 3033,\n        name: 'MDOriginDesc',\n        abbrName: 'MDOrigDesc',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Description of the origin of the market data.',\n    },\n    {\n        id: 3034,\n        name: 'MDOriginTime',\n        abbrName: 'MDOrigTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Date and time of the market data.',\n    },\n    {\n        id: 3035,\n        name: 'TestStepGroupID',\n        abbrName: 'TstStepGrpID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        updated: 'FIX.Latest',\n        updatedEP: '295',\n        description: 'Unique identifier for the group of test steps constituting a test scenario.',\n    },\n    {\n        id: 3036,\n        name: 'NoTestSteps',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Number of test steps.',\n    },\n    {\n        id: 3037,\n        name: 'TestStepID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Unique identifier of a test step.',\n    },\n    {\n        id: 3038,\n        name: 'TestStepDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Description of a test step.',\n    },\n    {\n        id: 3039,\n        name: 'TestStepStartTime',\n        abbrName: 'StartTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Starting time of a test step.',\n    },\n    {\n        id: 3040,\n        name: 'TestStepStartOffsetPeriod',\n        abbrName: 'StartOfstPeriod',\n        type: 'int',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        updated: 'FIX.Latest',\n        updatedEP: '295',\n        description:\n            'Time unit multiplier for the starting time of a test step relative to the starting time of a test scenario.',\n    },\n    {\n        id: 3041,\n        name: 'TestStepStartOffsetUnit',\n        abbrName: 'StartOfstUnit',\n        type: 'OrderDelayUnitCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        updated: 'FIX.Latest',\n        updatedEP: '295',\n        description:\n            'Time unit associated with the starting time of a test step relative to the starting time of a test scenario.',\n    },\n    {\n        id: 3042,\n        name: 'TestStepEndTime',\n        abbrName: 'EndTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Ending time of a test step.',\n    },\n    {\n        id: 3043,\n        name: 'TestStepEndOffsetPeriod',\n        abbrName: 'EndOfstPeriod',\n        type: 'int',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        updated: 'FIX.Latest',\n        updatedEP: '295',\n        description:\n            'Time unit multiplier for the ending time of a test step relative to the starting time of a test scenario.',\n    },\n    {\n        id: 3044,\n        name: 'TestStepEndOffsetUnit',\n        abbrName: 'EndOfstUnit',\n        type: 'OrderDelayUnitCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        updated: 'FIX.Latest',\n        updatedEP: '295',\n        description:\n            'Time unit associated with the starting time of a test step relative to the ending time of a test scenario.',\n    },\n    {\n        id: 3045,\n        name: 'NoTestStepParameters',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Number of test step parameters.',\n    },\n    {\n        id: 3046,\n        name: 'TestStepParameterName',\n        abbrName: 'PrmName',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Name of the test step parameter.',\n    },\n    {\n        id: 3047,\n        name: 'TestStepParameterType',\n        abbrName: 'PrmTyp',\n        type: 'StrategyParameterTypeCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Datatype of the test step parameter.',\n    },\n    {\n        id: 3048,\n        name: 'TestStepParameterValue',\n        abbrName: 'PrmVal',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Value of the test step parameter.',\n    },\n    {\n        id: 3049,\n        name: 'NoTestSystemModules',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Number of components making up a testing system.',\n    },\n    {\n        id: 3050,\n        name: 'TestSystemModuleName',\n        abbrName: 'Name',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Name of the component of a testing system.',\n    },\n    {\n        id: 3051,\n        name: 'TestSystemModuleVersion',\n        abbrName: 'Ver',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Version (e.g. build or commit number) of the component of a testing system.',\n    },\n    {\n        id: 3052,\n        name: 'NoTestMeasures',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Number of results for a test scenario.',\n    },\n    {\n        id: 3053,\n        name: 'TestMeasureName',\n        abbrName: 'Name',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Name of a test measure.',\n    },\n    {\n        id: 3054,\n        name: 'TestMeasureDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Description of a test measure.',\n    },\n    {\n        id: 3055,\n        name: 'TestMeasureType',\n        abbrName: 'Typ',\n        type: 'StrategyParameterTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Datatype of the metric being used for a test.',\n    },\n    {\n        id: 3056,\n        name: 'TestMeasurePrecision',\n        abbrName: 'Prcsn',\n        type: 'int',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Number of decimal places for TestMeasureType(3055).',\n    },\n    {\n        id: 3057,\n        name: 'TestMeasureResult',\n        abbrName: 'Rslt',\n        type: 'TestSuiteStatusCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Identifies the result of an individual test based on a measure.',\n    },\n    {\n        id: 3058,\n        name: 'TestThresholdType',\n        abbrName: 'ThresholdTyp',\n        type: 'TestThresholdTypeCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description:\n            'Identifies whether the value of a measure needs to be over or under a specific threshold to be successful.',\n    },\n    {\n        id: 3059,\n        name: 'TestWarningLevelValue',\n        abbrName: 'WarnLvlVal',\n        type: 'float',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Value of the measure upon which a warning is issued for the test.',\n    },\n    {\n        id: 3060,\n        name: 'TestFailLevelValue',\n        abbrName: 'FailLvlVal',\n        type: 'float',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Value of the measure upon which the test is considered to have failed.',\n    },\n    {\n        id: 3061,\n        name: 'TestPeakLevelValue',\n        abbrName: 'PeakLvlVal',\n        type: 'float',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Peak value of the measure achieved in testing.',\n    },\n    {\n        id: 3062,\n        name: 'TestSuiteRequestID',\n        abbrName: 'TstSteReqID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Unique identifier of the TestSuiteDefinitionRequest(35=EL).',\n    },\n    {\n        id: 3063,\n        name: 'TestSuiteRequestRefID',\n        abbrName: 'TstSteReqRefID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Reference identifier of the TestSuiteDefinitionRequest(35=EL).',\n    },\n    {\n        id: 3064,\n        name: 'TestSuiteRequestTransType',\n        abbrName: 'TxnTyp',\n        type: 'TestSuiteRequestTransTypeCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Identifies the message transaction type.',\n    },\n    {\n        id: 3065,\n        name: 'TestSuiteRequestStatus',\n        abbrName: 'ReqStat',\n        type: 'TestSuiteRequestStatusCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Status of the TestSuiteDefinitionRequest(35=EL) message being responded to.',\n    },\n    {\n        id: 3066,\n        name: 'TestActionRequestID',\n        abbrName: 'ReqID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Unique identifier of the TestActionRequest(35=EN).',\n    },\n    {\n        id: 3067,\n        name: 'TestActionType',\n        abbrName: 'ActnTyp',\n        type: 'TestActionTypeCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Specifies the type of action to take or that was taken for a given test suite.',\n    },\n    {\n        id: 3068,\n        name: 'TestActionRequestStatus',\n        abbrName: 'ReqStat',\n        type: 'TestActionRequestStatusCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Status of the TestActionRequest(35=EN) message being responded to.',\n    },\n    {\n        id: 3069,\n        name: 'TestSuiteActivityState',\n        abbrName: 'TstSteActvtySt',\n        type: 'TestSuiteActivityStateCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Specifies the activity state the test suite is in.',\n    },\n    {\n        id: 3070,\n        name: 'TestSuiteStatus',\n        abbrName: 'TstSteStat',\n        type: 'TestSuiteStatusCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Identifies the overall test result of a group of individual test scenarios.',\n    },\n    {\n        id: 3071,\n        name: 'TestActionReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description: 'Identifier of the test action report.',\n    },\n    {\n        id: 3072,\n        name: 'RateSourceSymbol',\n        abbrName: 'Sym',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '293',\n        description:\n            'Identifies the currency pair/symbol that the instance of the rate source information is applicable for the fixing.',\n    },\n    {\n        id: 3073,\n        name: 'FXBenchmark',\n        abbrName: 'FxBnchmk',\n        type: 'FXBenchmarkCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '293',\n        description:\n            'The source of where to obtain the FX benchmark rate to use for fixing the rate.\\n\\nThe value in this field can be different from RateSource(1446). For example, \"Bloomberg\" can be the reference source identified in RateSource(1446), and FXBenchmark(3073) can be \"central bank\" - what this says is to use Bloomberg to look up/reference the published central bank rate. Likewise, the BFIX rate for fixing (FXBenchmark(3073)=1 (Bloomberg)) can be sourced from Reuters (RateSource(1446)=1 (Reuters)). If the source for benchmark fixing rate is the same as the reference source (RateSource(1446)), this field, FXBenchmark(3073), can be omitted.',\n    },\n    {\n        id: 3074,\n        name: 'FXBenchmarkDate',\n        abbrName: 'FxBnchmkDt',\n        type: 'LocalMktDate',\n        added: 'FIX.Latest',\n        addedEP: '293',\n        description:\n            'The local date of the FX rate fixing. The time applicable on the fixing date is specified in FXBenchmarkTime(3075).',\n    },\n    {\n        id: 3075,\n        name: 'FXBenchmarkTime',\n        abbrName: 'FxBnchmkTm',\n        type: 'LocalMktTime',\n        added: 'FIX.Latest',\n        addedEP: '293',\n        description:\n            'The local time of the FX rate fixing. The date applicable for the fixing time is specified in FXBenchmarkDate(3074).',\n    },\n    {\n        id: 3076,\n        name: 'FXBenchmarkBusinessCenter',\n        abbrName: 'FxBnchmkCtr',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '293',\n        description:\n            'A business center whose calendar is used for date/time adjustment. See https://www.fpml.org/coding-scheme/business-center to download the current (ISDA/FpML) standard 4-character code values for business center identification.',\n    },\n    {\n        id: 3077,\n        name: 'AlgoCertificateRequestType',\n        abbrName: 'ReqTyp',\n        type: 'AlgoCertificateRequestTypeCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Specifies the type of business event related to an algo certification request.',\n    },\n    {\n        id: 3078,\n        name: 'AlgoCertificateReportType',\n        abbrName: 'RptTyp',\n        type: 'AlgoCertificateReportTypeCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Specifies the type of business event related to an algo certification report.',\n    },\n    {\n        id: 3079,\n        name: 'TestScenarioGroupID',\n        abbrName: 'TstScnroGrpID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Unique identifier for the group of test scenarios constituting a test suite.',\n    },\n    {\n        id: 3080,\n        name: 'AlgoSystemModuleLastUpdateTime',\n        abbrName: 'LastUpdateTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Support Timestamp of last update to Algo System Module.',\n    },\n    {\n        id: 3081,\n        name: 'TestSystemModuleLastUpdateTime',\n        abbrName: 'LastUpdateTm',\n        type: 'UTCTimestamp',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Support Timestamp of last update to Algo Test System Module.',\n    },\n    {\n        id: 3082,\n        name: 'NoTestOrders',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Number of orders for testing.',\n    },\n    {\n        id: 3083,\n        name: 'TestOrderID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Identifier of a test order.',\n    },\n    {\n        id: 3084,\n        name: 'TestOrderSymbol',\n        abbrName: 'Sym',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Used for the security symbol of a test order.\\n\\n\\nSee Symbol(55) field for description.',\n    },\n    {\n        id: 3085,\n        name: 'TestOrderSecurityID',\n        abbrName: 'SecID',\n        type: 'String',\n        discriminatorId: '3086',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Used for the security identifier of a test order.\\n\\n\\nSee Security(48) field for description.',\n    },\n    {\n        id: 3086,\n        name: 'TestOrderSecurityIDSource',\n        abbrName: 'SecIDSrc',\n        type: 'String',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description:\n            'Used for the source of the security identifier of a test order.\\n\\n\\nSee SecurityIDSource(22) field for description.',\n    },\n    {\n        id: 3087,\n        name: 'TestOrderPrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Used for the price of a test order.\\n\\n\\nSee Price(44) field for description.',\n    },\n    {\n        id: 3088,\n        name: 'TestOrderPriceType',\n        abbrName: 'PxTyp',\n        type: 'PriceTypeCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Type of price of TestOrderPrice(3087).',\n    },\n    {\n        id: 3089,\n        name: 'TestOrderQty',\n        abbrName: 'Qty',\n        type: 'Qty',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Used for the quantity of a test order.\\n\\n\\nSee OrderQty(80) field for description.',\n    },\n    {\n        id: 3090,\n        name: 'TestOrderOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description:\n            'Time unit multiplier for the effective time of an order relative to the starting time of a test scenario.',\n    },\n    {\n        id: 3091,\n        name: 'TestOrderOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'OrderDelayUnitCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description:\n            'Time unit associated with the effective time of an order relative to the starting time of a test scenario.',\n    },\n    {\n        id: 3092,\n        name: 'NoTestGatewayDetails',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Number of test gateway details.',\n    },\n    {\n        id: 3093,\n        name: 'TestGatewayDetailName',\n        abbrName: 'Name',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Name of test gateway information.',\n    },\n    {\n        id: 3094,\n        name: 'TestGatewayDetailType',\n        abbrName: 'Typ',\n        type: 'TestGatewayDetailTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Type of test gateway information.',\n    },\n    {\n        id: 3095,\n        name: 'TestGatewayDetailValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Value of test gateway information.',\n    },\n    {\n        id: 3096,\n        name: 'TestGatewayMarketID',\n        abbrName: 'MktID',\n        type: 'Exchange',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        description: 'Execution venue of test system.',\n    },\n    {\n        id: 3097,\n        name: 'AlgoTrialID',\n        abbrName: 'AlgoTrialID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '297',\n        description:\n            'Identifies the behaviour or configuration that has been selected by the executing party for this order.\\n\\nAbsence of this field indicates that no trial is under way or that the executing party is unable to provide the information.',\n    },\n    {\n        id: 3098,\n        name: 'LastAlgoID',\n        abbrName: 'LastAlgoID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '297',\n        description: 'Identifies the algorithm a broker has opted to use when executing an order.',\n    },\n    {\n        id: 3099,\n        name: 'NoIndividualAllocSubQtyAttributes',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '298',\n        description: 'Indicates number of trade attributes used to define a subgroup in an allocation group.',\n    },\n    {\n        id: 3100,\n        name: 'IndividualAllocSubQtyType',\n        abbrName: 'Typ',\n        type: 'AllocGroupSubQtyTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.Latest',\n        addedEP: '298',\n        description: 'Type of trade attribute defining a subgroup in an allocation group.',\n    },\n    {\n        id: 3101,\n        name: 'IndividualAllocSubQtyValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '298',\n        description: 'Value of the trade attribute defining a subgroup in an allocation group.',\n    },\n    {\n        id: 3102,\n        name: 'MostLiquidMarketID',\n        abbrName: 'MostLqdMktID',\n        type: 'Exchange',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Identifies the most liquid market for a given instrument.\\n\\n In the context of the EU Consolidated Tape, this is used to identify the most relevant market in terms of liquidity (MRMTL).',\n    },\n    {\n        id: 3103,\n        name: 'MostLiquidMarketIndicator',\n        abbrName: 'MostLqdMktInd',\n        type: 'Boolean',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Identifies whether a given market is the most liquid for a given instrument.\\n\\nIn the context of the EU Consolidated Tape, this is used to indicate whether a given market is the most relevant market in terms of liquidity (MRMTL).',\n    },\n    {\n        id: 3104,\n        name: 'NumberOfTrades',\n        abbrName: 'NumOfTrds',\n        type: 'int',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Number of trades or transactions included in an aggregated trade or transaction.\\n\\nIn the context of the EU Consolidated Tape, this is used for the deferred publication of multiple transactions as a single, aggregated transaction with a weighted average price and the total volume of its individual transactions.',\n    },\n    {\n        id: 3105,\n        name: 'MDQualityIndicator',\n        abbrName: 'MDQltyInd',\n        type: 'MDQualityIndicatorCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Indicates the quality of the market data being provided.\\n\\nIn the context of the EU Consolidated Tape, this is used by the CTP to identify suspicious data coming from the data contributor.',\n    },\n    {\n        id: 3106,\n        name: 'MDEntryStatus',\n        abbrName: 'Stat',\n        type: 'MDEntryStatusCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Indicates the acceptance status of a market data entry.',\n    },\n    {\n        id: 3107,\n        name: 'MDEntryStatusText',\n        abbrName: 'StatTxt',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Free form text to specify information related to the status provided with MDEntryStatus(3106).',\n    },\n    {\n        id: 3108,\n        name: 'EncodedMDEntryStatusTextLen',\n        abbrName: 'EncStatTxtLen',\n        type: 'Length',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedMDEntryStatusText(3109) field.',\n    },\n    {\n        id: 3109,\n        name: 'EncodedMDEntryStatusText',\n        abbrName: 'EncStatTxt',\n        type: 'data',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Encoded (non-ASCII characters) representation of the MDEntryStatusText(3107) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the MDEntryStatusText(3107) field.\\nData length controlled by field EncodedMDEntryStatusTextLen(3108).',\n    },\n    {\n        id: 3110,\n        name: 'MDMsgID',\n        abbrName: 'MDMsgID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description:\n            'Unique message identifier for MarketDataSnapshotFullRefresh(35=W) or MarketDataIncrementalRefresh(35=X) message.\\n\\nTo be used in MarketDataAck(35=EQ) message as reference to market data message being acknowledged.',\n    },\n    {\n        id: 3111,\n        name: 'SecurityStatusReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Unique identifier for a SecurityStatus(35=f) message.',\n    },\n    {\n        id: 3112,\n        name: 'TradingSessionStatusReportID',\n        abbrName: 'RptID',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Unique identifier for a TradingSessionStatus(35=h) message.',\n    },\n    {\n        id: 3113,\n        name: 'ReportStatus',\n        abbrName: 'RptStat',\n        type: 'ReportStatusCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        description: 'Indicates the status of a report.',\n    },\n    {\n        id: 3114,\n        name: 'MarginPrice',\n        abbrName: 'MgnPx',\n        type: 'Price',\n        added: 'FIX.Latest',\n        addedEP: '301',\n        description: 'Specifies margined price of a security.',\n    },\n    {\n        id: 3115,\n        name: 'DividendPayoutRatio',\n        abbrName: 'DividendRatio',\n        type: 'float',\n        added: 'FIX.Latest',\n        addedEP: '301',\n        description: 'Specifies the dividend payout ratio associated with an equity or a bond security.',\n    },\n    {\n        id: 40000,\n        name: 'NoAdditionalTermBondRefs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of bonds in the repeating group.',\n    },\n    {\n        id: 40001,\n        name: 'AdditionalTermBondSecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '40002',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Security identifier of the bond.',\n    },\n    {\n        id: 40002,\n        name: 'AdditionalTermBondSecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source scheme of the AdditionalTermBondSecurityID(40001) value.',\n    },\n    {\n        id: 40003,\n        name: 'AdditionalTermBondDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Description of the bond.',\n    },\n    {\n        id: 40004,\n        name: 'EncodedAdditionalTermBondDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedAdditionalTermBondDesc(40005) field.',\n    },\n    {\n        id: 40005,\n        name: 'EncodedAdditionalTermBondDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '40004',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Encoded (non-ASCII characters) representation of the AdditionalTermBondDesc(40003) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the AdditionalTermBondDesc(40003) field.',\n    },\n    {\n        id: 40006,\n        name: 'AdditionalTermBondCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the currency the bond value is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40007,\n        name: 'AdditionalTermBondIssuer',\n        abbrName: 'Issr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Issuer of the bond.',\n    },\n    {\n        id: 40008,\n        name: 'EncodedAdditionalTermBondIssuerLen',\n        abbrName: 'EncIssrLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedAdditionalTermBondIssuer(40009) field.',\n    },\n    {\n        id: 40009,\n        name: 'EncodedAdditionalTermBondIssuer',\n        abbrName: 'EncIssr',\n        type: 'data',\n        lengthId: '40008',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Encoded (non-ASCII characters) representation of the AdditionalTermBondIssuer(40007) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the AdditionalTermBondIssuer(40007) field.',\n    },\n    {\n        id: 40010,\n        name: 'AdditionalTermBondSeniority',\n        abbrName: 'Snrty',\n        type: 'SeniorityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Specifies the bond's payment priority in the event of a default.\",\n    },\n    {\n        id: 40011,\n        name: 'AdditionalTermBondCouponType',\n        abbrName: 'CpnTyp',\n        type: 'CouponTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Coupon type of the bond.',\n    },\n    {\n        id: 40012,\n        name: 'AdditionalTermBondCouponRate',\n        abbrName: 'CpnRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Coupon rate of the bond. See also CouponRate(223).',\n    },\n    {\n        id: 40013,\n        name: 'AdditionalTermBondMaturityDate',\n        abbrName: 'MatDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The maturity date of the bond.',\n    },\n    {\n        id: 40014,\n        name: 'AdditionalTermBondParValue',\n        abbrName: 'Par',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The par value of the bond.',\n    },\n    {\n        id: 40015,\n        name: 'AdditionalTermBondCurrentTotalIssuedAmount',\n        abbrName: 'CurTotAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Total issued amount of the bond.',\n    },\n    {\n        id: 40016,\n        name: 'AdditionalTermBondCouponFrequencyPeriod',\n        abbrName: 'CpnPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Time unit multiplier for the frequency of the bond's coupon payment.\",\n    },\n    {\n        id: 40017,\n        name: 'AdditionalTermBondCouponFrequencyUnit',\n        abbrName: 'CpnUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Time unit associated with the frequency of the bond's coupon payment.\",\n    },\n    {\n        id: 40018,\n        name: 'AdditionalTermBondDayCount',\n        abbrName: 'DayCnt',\n        type: 'CouponDayCountCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The day count convention used in interest calculations for a bond or an interest bearing security.',\n    },\n    {\n        id: 40019,\n        name: 'NoAdditionalTerms',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of additional terms in the repeating group.',\n    },\n    {\n        id: 40020,\n        name: 'AdditionalTermConditionPrecedentBondIndicator',\n        abbrName: 'PrcdntInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Indicates whether the condition precedent bond is applicable. The swap contract is only valid if the bond is issued and if there is any dispute over the terms of fixed stream then the bond terms would be used.',\n    },\n    {\n        id: 40021,\n        name: 'AdditionalTermDiscrepancyClauseIndicator',\n        abbrName: 'DscrpncyInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates whether the discrepancy clause is applicable.',\n    },\n    {\n        id: 40022,\n        name: 'NoCashSettlTerms',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of elements in the repeating group.',\n    },\n    {\n        id: 40023,\n        name: 'CashSettlCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency the CashSettlAmount(40034) is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40024,\n        name: 'CashSettlValuationFirstBusinessDayOffset',\n        abbrName: 'BizDayOfst',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The number of business days after settlement conditions have been satisfied, when the calculation agent is to obtain a price quotation on the reference obligation for the purpose of cash settlement.\\n\\nAssociated with ISDA 2003 Term: Valuation Date.',\n    },\n    {\n        id: 40025,\n        name: 'CashSettlValuationTime',\n        abbrName: 'ValTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The time of valuation.',\n    },\n    {\n        id: 40026,\n        name: 'CashSettlBusinessCenter',\n        abbrName: 'BizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the business center calendar used at valuation time for cash settlement purposes e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40027,\n        name: 'CashSettlQuoteMethod',\n        abbrName: 'QteMeth',\n        type: 'CashSettlQuoteMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The type of quote used to determine the cash settlement price.',\n    },\n    {\n        id: 40028,\n        name: 'CashSettlQuoteAmount',\n        abbrName: 'QteAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'When determining the cash settlement amount, if weighted average price quotes are to be obtained for the reference obligation, this is the upper limit to the outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount equal to floating rate payer calculation amount.\\n\\nISDA 2003 Term: Quotation Amount.',\n    },\n    {\n        id: 40029,\n        name: 'CashSettlQuoteCurrency',\n        abbrName: 'QteCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency the CashSettlQuoteAmount(40028) is denominated in. Uses ISO 4217 Currency Code.',\n    },\n    {\n        id: 40030,\n        name: 'CashSettlMinimumQuoteAmount',\n        abbrName: 'MinQteAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'When determining the cash settlement amount, if weighted average price quotes are to be obtained for the reference obligation, this is the minimum intended threshold amount of outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount of the lower of either USD1,000,000 (or its equivalent in the relevant obligation currency) or the (minimum) quoted amount.\\n\\nISDA 2003 Term: Minimum Quotation Amount.',\n    },\n    {\n        id: 40031,\n        name: 'CashSettlMinimumQuoteCurrency',\n        abbrName: 'MinQteCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency the CashSettlMinimumQuoteAmount(40030) is denominated in. Uses ISO 4217 Currency Code.',\n    },\n    {\n        id: 40032,\n        name: 'CashSettlDealer',\n        abbrName: 'Dlr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the dealer from whom price quotations for the reference obligation are obtained for the purpose of cash settlement valuation calculation.\\n\\nISDA 2003 Term: Dealer.',\n    },\n    {\n        id: 40033,\n        name: 'CashSettlBusinessDays',\n        abbrName: 'BizDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The number of business days used in the determination of the cash settlement payment date.\\n\\nIf a cash settlement amount is specified, the cash settlement payment date will be this number of business days following the calculation of the final price. If a cash settlement amount is not specified, the cash settlement payment date will be this number of business days after all conditions to settlement are satisfied.\\n\\nISDA 2003 Term: Cash Settlement Date.',\n    },\n    {\n        id: 40034,\n        name: 'CashSettlAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The amount paid between the trade parties, seller to the buyer, for cash settlement on the cash settlement date.\\n\\nIf not specified this is not to be included in the message and the parties to the trade are expected to calculate the value. The value is the greater of (a) floating rate payer calculation amount x (reference price - final price) or (b) zero. Price values are all expressed as a percentage. ISDA 2003 Term: Cash Settlement Amount',\n    },\n    {\n        id: 40035,\n        name: 'CashSettlRecoveryFactor',\n        abbrName: 'RcvryFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'Used for fixed recovery, this specifies the recovery level as determined at contract inception, to be applied in the event of a default. The factor is used to calculate the amount paid by the seller to the buyer for cash settlement on the cash settlement date. The amount calculated is (1 - CashSettlRecoveryFactor(40035)) x floating rate payer calculation amount. The currency is derived from the floating rate payer calculation amount.',\n    },\n    {\n        id: 40036,\n        name: 'CashSettlFixedTermIndicator',\n        abbrName: 'FixedInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates whether fixed settlement is applicable or not applicable in a recovery lock.',\n    },\n    {\n        id: 40037,\n        name: 'CashSettlAccruedInterestIndicator',\n        abbrName: 'AcrdIntInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Indicates whether accrued interest is included or not in the value provided in CashSettlAmount(40034). For cash settlement this specifies whether quotations should be obtained inclusive or not of accrued interest.\\n\\nFor physical settlement this specifies whether the buyer should deliver the obligation with an outstanding principal balance that includes or excludes accrued interest.\\n\\nISDA 2003 Term: Include/Exclude Accrued Interest.',\n    },\n    {\n        id: 40038,\n        name: 'CashSettlValuationMethod',\n        abbrName: 'ValMeth',\n        type: 'CashSettlValuationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The ISDA defined methodology for determining the final price of the reference obligation for purposes of cash settlement.\\n\\nISDA 2003 Term: Valuation Method',\n    },\n    {\n        id: 40039,\n        name: 'CashSettlTermXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'A named string value referenced by UnderlyingSettlTermXIDRef(41315).',\n    },\n    {\n        id: 40040,\n        name: 'NoContractualDefinitions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of financing definitions in the repeating group.',\n    },\n    {\n        id: 40041,\n        name: 'ContractualDefinition',\n        abbrName: 'Def',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies which contract definition, such as those published by ISDA, will apply for the terms of the trade. See http://www.fpml.org/coding-scheme/contractual-definitions for values.',\n    },\n    {\n        id: 40042,\n        name: 'NoContractualMatrices',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of contractual matrices in the repeating group.',\n    },\n    {\n        id: 40043,\n        name: 'ContractualMatrixSource',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        description:\n            'Identifies the applicable contract matrix. See http://www.fpml.org/coding-scheme/matrix-type-1-0.xml for values.',\n    },\n];\n\nconst batch5: ISpecFields[] = [\n    {\n        id: 40044,\n        name: 'ContractualMatrixDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The publication date of the applicable version of the contract matrix. If not specified, the ISDA Standard Terms Supplement defines rules for which version of the matrix is applicable.',\n    },\n    {\n        id: 40045,\n        name: 'ContractualMatrixTerm',\n        abbrName: 'Trm',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Specifies the applicable key into the relevant contract matrix. In the case of 2000 ISDA Definitions Settlement Matrix for Early Termination and Swaptions, the ContractualMatrixTerm(40045) is not applicable and is to be omitted.\\n\\nSee http://www.fpml.org/coding-scheme/credit-matrix-transaction-type for values.',\n    },\n    {\n        id: 40046,\n        name: 'NoFinancingTermSupplements',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of financing terms supplements in the repeating group.',\n    },\n    {\n        id: 40047,\n        name: 'FinancingTermSupplementDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the applicable contractual supplement. See http://www.fpml.org/coding-scheme/contractual-supplement for values.',\n    },\n    {\n        id: 40048,\n        name: 'FinancingTermSupplementDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The publication date of the applicable version of the contractual supplement.',\n    },\n    {\n        id: 40049,\n        name: 'NoStreams',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of swap streams in the repeating group.',\n    },\n    {\n        id: 40050,\n        name: 'StreamType',\n        abbrName: 'Typ',\n        type: 'StreamTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Type of swap stream.',\n    },\n    {\n        id: 40051,\n        name: 'StreamDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A short descriptive name given to the payment stream. Eg. CDS, Fixed, Float, Float2, GBP. The description has no intrinsic meaning but should be arbitrarily chosen by the remitter as reference.',\n    },\n    {\n        id: 40052,\n        name: 'StreamPaySide',\n        abbrName: 'PaySide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party paying the stream.',\n    },\n    {\n        id: 40053,\n        name: 'StreamReceiveSide',\n        abbrName: 'RcvSide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party receiving the stream.',\n    },\n    {\n        id: 40054,\n        name: 'StreamNotional',\n        abbrName: 'Notl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Notional, or initial notional value for the payment stream. Use the PaymentScheduleGrp component to specify the rate steps.',\n    },\n    {\n        id: 40055,\n        name: 'StreamCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency the StreamNotional(40054) is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40056,\n        name: 'StreamText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Free form text to specify additional information or enumeration description when a standard value does not apply.',\n    },\n    {\n        id: 40057,\n        name: 'UnderlyingStreamEffectiveDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted effective date.',\n    },\n    {\n        id: 40058,\n        name: 'UnderlyingStreamEffectiveDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the underlying instrument's stream's effective, or relative effective, date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 40059,\n        name: 'UnderlyingStreamEffectiveDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the underlying instrument\\'s stream\\'s effective, or relative effective, date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40060,\n        name: 'UnderlyingStreamEffectiveDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the effective date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40061,\n        name: 'UnderlyingStreamEffectiveDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the relative effective date offset.',\n    },\n    {\n        id: 40062,\n        name: 'UnderlyingStreamEffectiveDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the relative effective date offset.',\n    },\n    {\n        id: 40063,\n        name: 'UnderlyingStreamEffectiveDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative effective date offset.',\n    },\n    {\n        id: 40064,\n        name: 'UnderlyingStreamEffectiveDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted effective date.',\n    },\n    {\n        id: 40065,\n        name: 'StreamTerminationDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted termination date.',\n    },\n    {\n        id: 40066,\n        name: 'StreamTerminationDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument's stream's termination, or relative termination, date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40067,\n        name: 'StreamTerminationDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument\\'s stream\\'s termination, or relative termination, date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40068,\n        name: 'StreamTerminationDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the termination date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40069,\n        name: 'StreamTerminationDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the relative termination date offset.',\n    },\n    {\n        id: 40070,\n        name: 'StreamTerminationDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the relative termination date offset.',\n    },\n    {\n        id: 40071,\n        name: 'StreamTerminationDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative termination date offset.',\n    },\n    {\n        id: 40072,\n        name: 'StreamTerminationDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted termination date.',\n    },\n    {\n        id: 40073,\n        name: 'StreamCalculationPeriodBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business day convention used to adjust calculation periods. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.',\n    },\n    {\n        id: 40074,\n        name: 'StreamCalculationPeriodBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust calculation periods, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40075,\n        name: 'StreamFirstPeriodStartDateUnadjusted',\n        abbrName: 'FirstStartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted first calculation period start date if before the effective date.',\n    },\n    {\n        id: 40076,\n        name: 'StreamFirstPeriodStartDateBusinessDayConvention',\n        abbrName: 'FirstStartDtBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument's stream's first calculation period start date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40077,\n        name: 'StreamFirstPeriodStartDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument\\'s stream\\'s first calculation period start date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40078,\n        name: 'StreamFirstPeriodStartDateAdjusted',\n        abbrName: 'FirstStartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted first calculation period start date, if it is before the effective date.',\n    },\n    {\n        id: 40079,\n        name: 'StreamFirstRegularPeriodStartDateUnadjusted',\n        abbrName: 'FirstReglrStartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The unadjusted first start date of the regular calculation period, if there is an initial stub period.',\n    },\n    {\n        id: 40080,\n        name: 'StreamFirstCompoundingPeriodEndDateUnadjusted',\n        abbrName: 'FirstCmpndgEndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted end date of the initial compounding period.',\n    },\n    {\n        id: 40081,\n        name: 'StreamLastRegularPeriodEndDateUnadjusted',\n        abbrName: 'LastReglrEndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted last regular period end date if there is a final stub period.',\n    },\n    {\n        id: 40082,\n        name: 'StreamCalculationFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the frequency at which calculation period end dates occur.',\n    },\n    {\n        id: 40083,\n        name: 'StreamCalculationFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the frequency at which calculation period end dates occur.',\n    },\n    {\n        id: 40084,\n        name: 'StreamCalculationRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The convention for determining the sequence of end dates. It is used in conjunction with a specified frequency. Used only to override the roll convention specified in the DateAdjustment component within the Instrument component.',\n    },\n    {\n        id: 40085,\n        name: 'NoSettlRateFallbacks',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of settlement rate fallbacks in the repeating group',\n    },\n    {\n        id: 40086,\n        name: 'SettlRatePostponementMaximumDays',\n        abbrName: 'MaxDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The maximum number of days to wait for a quote from the disrupted settlement rate option before proceding to this method.',\n    },\n    {\n        id: 40087,\n        name: 'LegPaymentStreamNonDeliverableSettlRateSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source of the rate information.',\n    },\n    {\n        id: 40088,\n        name: 'SettlRatePostponementSurvey',\n        abbrName: 'Survey',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates whether to request a settlement rate quote from the market.',\n    },\n    {\n        id: 40089,\n        name: 'SettlRatePostponementCalculationAgent',\n        abbrName: 'CalcAgent',\n        type: 'ProvisionCalculationAgentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Used to identify the settlement rate postponement calculation agent.',\n    },\n    {\n        id: 40090,\n        name: 'NoProvisions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of provisions in the repeating group.',\n    },\n    {\n        id: 40091,\n        name: 'ProvisionType',\n        abbrName: 'Typ',\n        type: 'ProvisionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Type of provisions.',\n    },\n    {\n        id: 40092,\n        name: 'ProvisionDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted date of the provision.',\n    },\n    {\n        id: 40093,\n        name: 'ProvisionDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument's provision's dates. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40094,\n        name: 'ProvisionDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument\\'s provision\\'s dates, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40095,\n        name: 'ProvisionDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted date of the provision.',\n    },\n    {\n        id: 40096,\n        name: 'ProvisionDateTenorPeriod',\n        abbrName: 'TenorPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Time unit multiplier for the provision's tenor period.\",\n    },\n    {\n        id: 40097,\n        name: 'ProvisionDateTenorUnit',\n        abbrName: 'TenorUnit',\n        type: 'ProvisionDateTenorUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Time unit associated with the provision's tenor period.\",\n    },\n    {\n        id: 40098,\n        name: 'ProvisionCalculationAgent',\n        abbrName: 'CalcAgent',\n        type: 'ProvisionCalculationAgentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used to identify the calculation agent. The calculation agent may be identified in ProvisionCalculationAgent(40098) or in the ProvisionParties component.',\n    },\n    {\n        id: 40099,\n        name: 'ProvisionOptionSinglePartyBuyerSide',\n        abbrName: 'BuyerSide',\n        type: 'ProvisionOptionSinglePartyBuyerSideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'If optional early termination is not available to both parties then this component identifies the buyer of the option through its side of the trade.',\n    },\n    {\n        id: 40100,\n        name: 'ProvisionOptionSinglePartySellerSide',\n        abbrName: 'SellerSide',\n        type: 'ProvisionOptionSinglePartyBuyerSideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'If optional early termination is not available to both parties then this component identifies the seller of the option through its side of the trade.',\n    },\n    {\n        id: 40101,\n        name: 'ProvisionOptionExerciseStyle',\n        abbrName: 'ExerStyle',\n        type: 'ExerciseStyleCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The instrument provision option\u2019s exercise style.',\n    },\n    {\n        id: 40102,\n        name: 'ProvisionOptionExerciseMultipleNotional',\n        abbrName: 'MultplNotl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A notional amount which restricts the amount of notional that can be exercised when partial exercise or multiple exercise is applicable. The integral multiple amount defines a lower limit of notional that can be exercised and also defines a unit multiple of notional that can be exercised, i.e. only integer multiples of this amount can be exercised.',\n    },\n    {\n        id: 40103,\n        name: 'ProvisionOptionExerciseMinimumNotional',\n        abbrName: 'MinNotl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The minimum notional amount that can be exercised on a given exercise date.',\n    },\n    {\n        id: 40104,\n        name: 'ProvisionOptionExerciseMaximumNotional',\n        abbrName: 'MaxNotl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The maximum notional amount that can be exercised on a given exercise date.',\n    },\n    {\n        id: 40105,\n        name: 'ProvisionOptionMinimumNumber',\n        abbrName: 'MinNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The minimum number of options that can be exercised on a given exercise date.',\n    },\n    {\n        id: 40106,\n        name: 'ProvisionOptionMaximumNumber',\n        abbrName: 'MaxNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The maximum number of options that can be exercised on a given exercise date. If the number is not specified, it means that the maximum number of options corresponds to the remaining unexercised options.',\n    },\n    {\n        id: 40107,\n        name: 'ProvisionOptionExerciseConfirmation',\n        abbrName: 'ExerCnfm',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Used to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent.\",\n    },\n    {\n        id: 40108,\n        name: 'ProvisionCashSettlMethod',\n        abbrName: 'SettlMeth',\n        type: 'ProvisionCashSettlMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (e).',\n    },\n    {\n        id: 40109,\n        name: 'ProvisionCashSettlCurrency',\n        abbrName: 'SettlCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the currency of settlement. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40110,\n        name: 'ProvisionCashSettlCurrency2',\n        abbrName: 'SettlCcy2',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency of settlement for a cross-currency provision. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40111,\n        name: 'ProvisionCashSettlQuoteType',\n        abbrName: 'SettlQteTyp',\n        type: 'ProvisionCashSettlQuoteTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the type of quote to be used.',\n    },\n    {\n        id: 40112,\n        name: 'ProvisionCashSettlQuoteSource',\n        abbrName: 'SettlQteSrc',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source of quote information.',\n    },\n    {\n        id: 40113,\n        name: 'ProvisionText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Free form text to specify additional information or enumeration description when a standard value does not apply.',\n    },\n    {\n        id: 40114,\n        name: 'ProvisionCashSettlValueTime',\n        abbrName: 'Tm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A time specified in 24-hour format, e.g. 11am would be represented as 11:00:00. The time of the cash settlement valuation date when the cash settlement amount will be determined according to the cash settlement method if the parties have not otherwise been able to agree to the cash settlement amount.',\n    },\n    {\n        id: 40115,\n        name: 'ProvisionCashSettlValueTimeBusinessCenter',\n        abbrName: 'TmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Identifies the business center calendar used with the provision's cash settlement valuation time. See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.\",\n    },\n    {\n        id: 40116,\n        name: 'ProvisionCashSettlValueDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description:\n            'The cash settlement valuation date adjustment business day convention. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.',\n    },\n    {\n        id: 40117,\n        name: 'ProvisionCashSettlValueDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the provision\\'s cash settlement valuation date, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40118,\n        name: 'ProvisionCashSettlValueDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the cash settlement value date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values',\n    },\n    {\n        id: 40119,\n        name: 'ProvisionCashSettlValueDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative cash settlement value date offset.',\n    },\n    {\n        id: 40120,\n        name: 'ProvisionCashSettlValueDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative cash settlement value date offset.',\n    },\n    {\n        id: 40121,\n        name: 'ProvisionCashSettlValueDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative cash settlement value date offset.\",\n    },\n    {\n        id: 40122,\n        name: 'ProvisionCashSettlValueDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted cash settlement value date.',\n    },\n    {\n        id: 40123,\n        name: 'ProvisionOptionExerciseBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument's provision's option exercise date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40124,\n        name: 'ProvisionOptionExerciseBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument\\'s provision\\'s option exercise date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40125,\n        name: 'ProvisionOptionExerciseEarliestDateOffsetPeriod',\n        abbrName: 'ErlstOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Time unit multiplier for the interval to the first (and possibly only) exercise date in the exercise period.',\n    },\n    {\n        id: 40126,\n        name: 'ProvisionOptionExerciseEarliestDateOffsetUnit',\n        abbrName: 'ErlstOfstUnit',\n        type: 'ProvisionOptionExerciseEarliestDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Time unit associated with the interval to the first (and possibly only) exercise date in the exercise period.',\n    },\n    {\n        id: 40127,\n        name: 'ProvisionOptionExerciseFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Time unit multiplier for the frequency of subsequent exercise dates in the exercise period following the earliest exercise date. An interval of 1 day should be used to indicate an American style exercise period.',\n    },\n    {\n        id: 40128,\n        name: 'ProvisionOptionExerciseFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Time unit associated with the frequency of subsequent exercise dates in the exercise period following the earliest exercise date.',\n    },\n    {\n        id: 40129,\n        name: 'ProvisionOptionExerciseStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted first day of the exercise period for an American style option.',\n    },\n    {\n        id: 40130,\n        name: 'ProvisionOptionExerciseStartDateRelativeTo',\n        abbrName: 'StartDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the option exercise start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40131,\n        name: 'ProvisionOptionExerciseStartDateOffsetPeriod',\n        abbrName: 'StartDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative option exercise start date offset.',\n    },\n    {\n        id: 40132,\n        name: 'ProvisionOptionExerciseStartDateOffsetUnit',\n        abbrName: 'StartDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative option exercise start date offset.',\n    },\n    {\n        id: 40133,\n        name: 'ProvisionOptionExerciseStartDateOffsetDayType',\n        abbrName: 'StartDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative option exercise start date offset.\",\n    },\n    {\n        id: 40134,\n        name: 'ProvisionOptionExerciseStartDateAdjusted',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted first day of the exercise period for an American style option.',\n    },\n    {\n        id: 40135,\n        name: 'ProvisionOptionExercisePeriodSkip',\n        abbrName: 'Skip',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1.',\n    },\n    {\n        id: 40136,\n        name: 'ProvisionOptionExerciseBoundsFirstDateUnadjusted',\n        abbrName: 'FirstDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The unadjusted first date of a schedule. This can be used to restrict the range of exercise dates when they are relative.',\n    },\n    {\n        id: 40137,\n        name: 'ProvisionOptionExerciseBoundsLastDateUnadjusted',\n        abbrName: 'LastDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The unadjusted last date of a schedule. This can be used to restrict the range of exercise dates when they are relative.',\n    },\n    {\n        id: 40138,\n        name: 'ProvisionOptionExerciseEarliestTime',\n        abbrName: 'ErlstTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) i) on the expriation date, in the case of a European style option, (ii) on each bermuda option exercise date and the expiration date, in the case of a Bermuda style option the commencement date to, and including, the expiration date, in the case of an American option.\",\n    },\n    {\n        id: 40139,\n        name: 'ProvisionOptionExerciseEarliestTimeBusinessCenter',\n        abbrName: 'ErlstTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Identifies the business center calendar used with the provision's earliest time for notice of exercise.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.\",\n    },\n    {\n        id: 40140,\n        name: 'ProvisionOptionExerciseLatestTime',\n        abbrName: 'LtstTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day.\",\n    },\n    {\n        id: 40141,\n        name: 'ProvisionOptionExerciseLatestTimeBusinessCenter',\n        abbrName: 'LtstTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Identifies the business center calendar used with the provision's latest time for notice of exercise.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.\",\n    },\n    {\n        id: 40142,\n        name: 'NoProvisionOptionExerciseFixedDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of provision option exercise fixed dates in the repeating group.',\n    },\n    {\n        id: 40143,\n        name: 'ProvisionOptionExerciseFixedDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A predetermined option exercise date, unadjusted or adjusted depending on ProvisionOptionExerciseFixedDateType(40144).',\n    },\n    {\n        id: 40144,\n        name: 'ProvisionOptionExerciseFixedDateType',\n        abbrName: 'Typ',\n        type: 'ProvisionOptionExerciseFixedDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the type of date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 40145,\n        name: 'ProvisionOptionExpirationDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The unadjusted last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period.',\n    },\n    {\n        id: 40146,\n        name: 'ProvisionOptionExpirationDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument's provision's option expiration date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40147,\n        name: 'ProvisionOptionExpirationDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument\\'s provision\\'s option expiration date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40148,\n        name: 'ProvisionOptionExpirationDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the option expiration date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40149,\n        name: 'ProvisionOptionExpirationDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative option expiration date offset.',\n    },\n    {\n        id: 40150,\n        name: 'ProvisionOptionExpirationDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative option expiration date offset.',\n    },\n    {\n        id: 40151,\n        name: 'ProvisionOptionExpirationDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative option expiration date offset.\",\n    },\n    {\n        id: 40152,\n        name: 'ProvisionOptionExpirationDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The adjusted last date within an exercise period for an American style option. For a European style option it is the only date within the exercise period.',\n    },\n    {\n        id: 40153,\n        name: 'ProvisionOptionExpirationTime',\n        abbrName: 'ExpTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The latest time for exercise on the expiration date.',\n    },\n    {\n        id: 40154,\n        name: 'ProvisionOptionExpirationTimeBusinessCenter',\n        abbrName: 'ExpTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Identifies the business center calendar used with the provision's latest exercise time on expiration date.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.\",\n    },\n    {\n        id: 40155,\n        name: 'ProvisionOptionRelevantUnderlyingDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The unadjusted date on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the swap effective date, in an extendible/cancelable provision it is the swap termination date).',\n    },\n    {\n        id: 40156,\n        name: 'ProvisionOptionRelevantUnderlyingDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument's provision's option underlying date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40157,\n        name: 'ProvisionOptionRelevantUnderlyingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument\\'s provision\\'s option underlying date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40158,\n        name: 'ProvisionOptionRelevantUnderlyingDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the date relevant to the underlying trade on exercise is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40159,\n        name: 'ProvisionOptionRelevantUnderlyingDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative option relevant underlying date offset.',\n    },\n    {\n        id: 40160,\n        name: 'ProvisionOptionRelevantUnderlyingDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative option relevant underlying date offset.',\n    },\n    {\n        id: 40161,\n        name: 'ProvisionOptionRelevantUnderlyingDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative option relevant underlying date offset.\",\n    },\n    {\n        id: 40162,\n        name: 'ProvisionOptionRelevantUnderlyingDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The adjusted date on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the swap effective date, in an extendible/cancelable provision it is the swap termination date).',\n    },\n    {\n        id: 40163,\n        name: 'ProvisionCashSettlPaymentDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the provisional cash settlement payment's termination or relative termination date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40164,\n        name: 'ProvisionCashSettlPaymentDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the provisional cash settlement payment\\'s termination or relative termination date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40165,\n        name: 'ProvisionCashSettlPaymentDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the cash settlement payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40166,\n        name: 'ProvisionCashSettlPaymentDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative cash settlement payment date offset.',\n    },\n    {\n        id: 40167,\n        name: 'ProvisionCashSettlPaymentDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative cash settlement payment date offset.',\n    },\n    {\n        id: 40168,\n        name: 'ProvisionCashSettlPaymentDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative cash settlement payment date offset.\",\n    },\n    {\n        id: 40169,\n        name: 'ProvisionCashSettlPaymentDateRangeFirst',\n        abbrName: 'DtFirst',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'First date in range when a settlement date range is provided.',\n    },\n    {\n        id: 40170,\n        name: 'ProvisionCashSettlPaymentDateRangeLast',\n        abbrName: 'DtLast',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The last date in range when a settlement date range is provided.',\n    },\n    {\n        id: 40171,\n        name: 'NoProvisionCashSettlPaymentDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of provision cash settlement payment dates in the repeating group.',\n    },\n    {\n        id: 40172,\n        name: 'ProvisionCashSettlPaymentDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The cash settlement payment date, unadjusted or adjusted depending on ProvisionCashSettlPaymentDateType(40173).',\n    },\n    {\n        id: 40173,\n        name: 'ProvisionCashSettlPaymentDateType',\n        abbrName: 'Typ',\n        type: 'ProvisionCashSettlPaymentDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the type of date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 40174,\n        name: 'NoProvisionPartyIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of parties identified in the contract provision.',\n    },\n    {\n        id: 40175,\n        name: 'ProvisionPartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '40176',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The party identifier/code for the payment settlement party.',\n    },\n    {\n        id: 40176,\n        name: 'ProvisionPartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies class or source of the ProvisionPartyID(40175) value.',\n    },\n    {\n        id: 40177,\n        name: 'ProvisionPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the type or role of ProvisionPartyID(40175) specified.',\n    },\n    {\n        id: 40178,\n        name: 'NoProvisionPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of sub-party IDs to be reported for the party.',\n    },\n    {\n        id: 40179,\n        name: 'ProvisionPartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Party sub-identifier, if applicable, for ProvisionPartyID(40175).',\n    },\n    {\n        id: 40180,\n        name: 'ProvisionPartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The type of ProvisionPartySubID(40179).',\n    },\n    {\n        id: 40181,\n        name: 'NoProtectionTerms',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of protection terms in the repeating group.',\n    },\n    {\n        id: 40182,\n        name: 'ProtectionTermNotional',\n        abbrName: 'Notl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The notional amount of protection coverage.\\n\\nISDA 2003 Term: Floating Rate Payer Calculation Amount.',\n    },\n    {\n        id: 40183,\n        name: 'ProtectionTermCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The currency of ProtectionTermNotional(40182). Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40184,\n        name: 'ProtectionTermSellerNotifies',\n        abbrName: 'Seller',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring.\\n\\nProtectionTermSellerNotifies(40184)=Y indicates that the seller notifies.\\n\\nISDA 2003 Term: Notifying Party.',\n    },\n    {\n        id: 40185,\n        name: 'ProtectionTermBuyerNotifies',\n        abbrName: 'Buyer',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring.\\n\\nProtectionTermBuyerNotifies(40185)=Y indicates that the buyer notifies.\\n\\nISDA 2003 Term: Notifying Party.',\n    },\n    {\n        id: 40186,\n        name: 'ProtectionTermEventBusinessCenter',\n        abbrName: 'BizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'When used, the business center indicates the local time of the business center that replaces the Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions. See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40187,\n        name: 'ProtectionTermStandardSources',\n        abbrName: 'StdSrcs',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Indicates whether ISDA defined Standard Public Sources are applicable (ProtectionTermStandardSources(40187)=Y) or not.',\n    },\n    {\n        id: 40188,\n        name: 'ProtectionTermEventMinimumSources',\n        abbrName: 'MinSrcs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two.\\n\\nISDA 2003 Term: Specified Number.',\n    },\n    {\n        id: 40189,\n        name: 'ProtectionTermEventNewsSource',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Newspaper or electronic news service or source that may publish relevant information used in the determination of whether or not a credit event has occurred.',\n    },\n    {\n        id: 40190,\n        name: 'ProtectionTermXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'A named string value referenced by UnderlyingProtectionTermXIDRef(41314).',\n    },\n    {\n        id: 40191,\n        name: 'NoProtectionTermEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of protection term events in the repeating group.',\n    },\n    {\n        id: 40192,\n        name: 'ProtectionTermEventType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description:\n            'Specifies the type of credit event applicable to the protection terms.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Protection_Term_Event_Types for code list of applicable event types.',\n    },\n    {\n        id: 40193,\n        name: 'ProtectionTermEventValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description:\n            'Protection term event value appropriate to ProtectionTermEvenType(40192).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Protection_Term_Event_Types for applicable event type values.',\n    },\n    {\n        id: 40194,\n        name: 'ProtectionTermEventCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Applicable currency if ProtectionTermEventValue(40193) is an amount. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40195,\n        name: 'ProtectionTermEventPeriod',\n        abbrName: 'Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for protection term events.',\n    },\n    {\n        id: 40196,\n        name: 'ProtectionTermEventUnit',\n        abbrName: 'Unit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with protection term events.',\n    },\n    {\n        id: 40197,\n        name: 'ProtectionTermEventDayType',\n        abbrName: 'DayTyp',\n        type: 'ProtectionTermEventDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Day type for events that specify a period and unit.',\n    },\n    {\n        id: 40198,\n        name: 'ProtectionTermEventRateSource',\n        abbrName: 'RtSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Rate source for events that specify a rate source, e.g. Floating rate interest shortfall.',\n    },\n    {\n        id: 40199,\n        name: 'NoProtectionTermEventQualifiers',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of qualifiers in the repeating group.',\n    },\n    {\n        id: 40200,\n        name: 'ProtectionTermEventQualifier',\n        abbrName: 'Qual',\n        type: 'ProtectionTermEventQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Protection term event qualifier. Used to further qualify ProtectionTermEventType(40192).',\n    },\n    {\n        id: 40201,\n        name: 'NoProtectionTermObligations',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of obligations in the repeating group.',\n    },\n    {\n        id: 40202,\n        name: 'ProtectionTermObligationType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description:\n            'Specifies the type of obligation applicable to the protection terms.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Protection_Term_Obligation_Types for code list of applicable obligation types.',\n    },\n    {\n        id: 40203,\n        name: 'ProtectionTermObligationValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description:\n            'Protection term obligation value appropriate to ProtectionTermObligationType(40202).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Protection_Term_Obligation_Types for applicable obligation type values.',\n    },\n    {\n        id: 40204,\n        name: 'NoPhysicalSettlTerms',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of entries in the repeating group.',\n    },\n    {\n        id: 40205,\n        name: 'PhysicalSettlCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the currency of physical settlement. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40206,\n        name: 'PhysicalSettlBusinessDays',\n        abbrName: 'BizDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'The number of business days used in the determination of physical settlement. Its precise meaning depends on the context in which this element is used.\\n\\nISDA 2003 Term: Business Day.',\n    },\n    {\n        id: 40207,\n        name: 'PhysicalSettlMaximumBusinessDays',\n        abbrName: 'MaxBizDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'A maximum number of business days. Its precise meaning depends on the context in which this element is used. Intended to be used to limit a particular ISDA fallback provision.',\n    },\n    {\n        id: 40208,\n        name: 'PhysicalSettlTermXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'A named string value referenced by UnderlyingSettlTermXIDRef(41315).',\n    },\n    {\n        id: 40209,\n        name: 'NoPhysicalSettlDeliverableObligations',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of entries in the repeating group.',\n    },\n    {\n        id: 40210,\n        name: 'PhysicalSettlDeliverableObligationType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'Specifies the type of deliverable obligation applicable for physical settlement. See http://www.fixtradingcommunity.org/codelists#Deliverable_Obligation_Types for code list for applicable deliverable obligation types.',\n    },\n    {\n        id: 40211,\n        name: 'PhysicalSettlDeliverableObligationValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'Physical settlement deliverable obligation value appropriate to PhysicalSettlDeliverableObligationType(40210). See http://www.fixtradingcommunity.org/codelists#Deliverable_Obligation_Types for applicable obligation type values.',\n    },\n    {\n        id: 40212,\n        name: 'NoPayments',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of additional settlement or bullet payments.',\n    },\n    {\n        id: 40213,\n        name: 'PaymentType',\n        abbrName: 'Typ',\n        type: 'PaymentTypeCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Type of payment.',\n    },\n    {\n        id: 40214,\n        name: 'PaymentPaySide',\n        abbrName: 'PaySide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party paying the payment.',\n    },\n    {\n        id: 40215,\n        name: 'PaymentReceiveSide',\n        abbrName: 'RcvSide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party receiving the payment.',\n    },\n    {\n        id: 40216,\n        name: 'PaymentCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency in which PaymentAmount(40217) is denominated. Uses ISO 4271 currency codes.',\n    },\n    {\n        id: 40217,\n        name: 'PaymentAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The total payment amount.',\n    },\n    {\n        id: 40218,\n        name: 'PaymentPrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The price determining the payment amount expressed in terms specified in PaymentPriceType(40919) and expressed in market format.',\n    },\n    {\n        id: 40219,\n        name: 'PaymentDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted payment date.',\n    },\n    {\n        id: 40220,\n        name: 'PaymentBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business day convention used to adjust the payment date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.',\n    },\n    {\n        id: 40221,\n        name: 'PaymentBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment date, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40222,\n        name: 'PaymentDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted payment date.',\n    },\n    {\n        id: 40223,\n        name: 'LegMarketDisruptionValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Applicable value for LegMarketDisruptionEvent(41468).',\n    },\n    {\n        id: 40224,\n        name: 'PaymentDiscountFactor',\n        abbrName: 'DiscFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The value representing the discount factor used to calculate the present value of the cash flow.',\n    },\n    {\n        id: 40225,\n        name: 'PaymentPresentValueAmount',\n        abbrName: 'PVAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The amount representing the present value of the forecast payment.',\n    },\n    {\n        id: 40226,\n        name: 'PaymentPresentValueCurrency',\n        abbrName: 'PVCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency the PaymentPresentValueAmount(40225) is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40227,\n        name: 'PaymentSettlStyle',\n        abbrName: 'SettlStyle',\n        type: 'PaymentSettlStyleCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Payment settlement style.',\n    },\n    {\n        id: 40228,\n        name: 'LegPaymentStreamNonDeliverableSettlReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the reference \"page\" from the rate source.\\n\\nWhen LegPaymentStreamNonDeliverableSettlRateSource(40087) = 3 (ISDA Settlement Rate Option) this contains a value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option',\n    },\n    {\n        id: 40229,\n        name: 'PaymentText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Free form text to specify additional information or enumeration description when a sdtandard value does not apply. Identifies the payment type when PaymentType(40213) = 99 (Other).',\n    },\n    {\n        id: 40230,\n        name: 'NoPaymentSettls',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of additional settlements or bullet payments.',\n    },\n    {\n        id: 40231,\n        name: 'PaymentSettlAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The payment settlement amount.',\n    },\n    {\n        id: 40232,\n        name: 'PaymentSettlCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency the PaymentSettlAmount(40231) is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40233,\n        name: 'NoPaymentSettlPartyIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of parties identified in the additional settlement or bullet payment.',\n    },\n    {\n        id: 40234,\n        name: 'PaymentSettlPartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '40235',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The payment settlement party identifier.',\n    },\n    {\n        id: 40235,\n        name: 'PaymentSettlPartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the class or source of PaymentSettlPartyID(40234) value (e.g. BIC).',\n    },\n    {\n        id: 40236,\n        name: 'PaymentSettlPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Identifies the role of PaymentSettlPartyID(40234) (e.g. the beneficiary's bank or depository institution).\",\n    },\n    {\n        id: 40237,\n        name: 'PaymentSettlPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Qualifies the value of PaymentSettlPartyRole(40236).',\n    },\n    {\n        id: 40238,\n        name: 'NoPaymentSettlPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of sub-party IDs to be reported for the party.',\n    },\n    {\n        id: 40239,\n        name: 'PaymentSettlPartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Party sub-identifier, if applicable, for PaymentSettlPartyRole(40236).',\n    },\n    {\n        id: 40240,\n        name: 'PaymentSettlPartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The type of PaymentSettlPartySubID(40239) value.',\n    },\n    {\n        id: 40241,\n        name: 'NoLegStreams',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of swap streams in the repeating group.',\n    },\n    {\n        id: 40242,\n        name: 'LegStreamType',\n        abbrName: 'Typ',\n        type: 'StreamTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Type of swap stream.',\n    },\n    {\n        id: 40243,\n        name: 'LegStreamDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A short descriptive name given to the payment stream, e.g. CDS, Fixed, Float, Float2, GBP. The description has no intrinsic meaning but should be arbitrarily chosen by the remitter as a reference.',\n    },\n    {\n        id: 40244,\n        name: 'LegStreamPaySide',\n        abbrName: 'PaySide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party paying the stream.',\n    },\n    {\n        id: 40245,\n        name: 'LegStreamReceiveSide',\n        abbrName: 'RcvSide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party receiving the stream.',\n    },\n    {\n        id: 40246,\n        name: 'LegStreamNotional',\n        abbrName: 'Notl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Notional, or initial notional value for the payment stream. The LegPaymentSchedule component should be used for specifying the steps.',\n    },\n    {\n        id: 40247,\n        name: 'LegStreamCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency the LegStreamNotional(40246) is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40248,\n        name: 'LegStreamText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Free form text to specify additional information or enumeration description when a standard value does not apply.',\n    },\n    {\n        id: 40249,\n        name: 'LegStreamEffectiveDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted effective date.',\n    },\n    {\n        id: 40250,\n        name: 'LegStreamEffectiveDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument leg's stream's effective date or relative effective date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40251,\n        name: 'LegStreamEffectiveDateBusinessCenter',\n        abbrName: 'BizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument leg\\'s stream\\'s effective date or relative effective date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40252,\n        name: 'LegStreamEffectiveDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the effective date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values',\n    },\n    {\n        id: 40253,\n        name: 'LegStreamEffectiveDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the relative effective date offset.',\n    },\n    {\n        id: 40254,\n        name: 'LegStreamEffectiveDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the relative effective date offset.',\n    },\n    {\n        id: 40255,\n        name: 'LegStreamEffectiveDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative effective date offset.',\n    },\n    {\n        id: 40256,\n        name: 'LegStreamEffectiveDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted effective date.',\n    },\n    {\n        id: 40257,\n        name: 'LegStreamTerminationDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted termination date.',\n    },\n    {\n        id: 40258,\n        name: 'LegStreamTerminationDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument leg's stream's termination, or relative termination, date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40259,\n        name: 'LegStreamTerminationDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument leg\\'s stream\\'s termination, or relative termination, date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40260,\n        name: 'LegStreamTerminationDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the termination date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40261,\n        name: 'LegStreamTerminationDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the relative termination date offset.',\n    },\n    {\n        id: 40262,\n        name: 'LegStreamTerminationDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the relative termination date offset.',\n    },\n    {\n        id: 40263,\n        name: 'LegStreamTerminationDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative termination date offset.',\n    },\n    {\n        id: 40264,\n        name: 'LegStreamTerminationDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted termination date.',\n    },\n    {\n        id: 40265,\n        name: 'LegStreamCalculationPeriodBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business day convention used to adjust calculation periods. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.',\n    },\n    {\n        id: 40266,\n        name: 'LegStreamCalculationPeriodBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust calculation periods, e.g. \"GLBO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40267,\n        name: 'LegStreamFirstPeriodStartDateUnadjusted',\n        abbrName: 'FirstStartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted first calculation period start date if before the effective date.',\n    },\n    {\n        id: 40268,\n        name: 'LegStreamFirstPeriodStartDateBusinessDayConvention',\n        abbrName: 'FirstStartDtBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument leg's stream's first calculation period start date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40269,\n        name: 'LegStreamFirstPeriodStartDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument leg\\'s stream\\'s first calculation period start date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40270,\n        name: 'LegStreamFirstPeriodStartDateAdjusted',\n        abbrName: 'FirstStartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted first calculation period start date, if it is before the effective date.',\n    },\n    {\n        id: 40271,\n        name: 'LegStreamFirstRegularPeriodStartDateUnadjusted',\n        abbrName: 'FirstReglrStartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The unadjusted first start date of the regular calculation period, if there is an initial stub period.',\n    },\n    {\n        id: 40272,\n        name: 'LegStreamFirstCompoundingPeriodEndDateUnadjusted',\n        abbrName: 'FirstCmpndgEndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted end date of the initial compounding period.',\n    },\n    {\n        id: 40273,\n        name: 'LegStreamLastRegularPeriodEndDateUnadjusted',\n        abbrName: 'LastReglrEndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted last regular period end date if there is a final stub period.',\n    },\n    {\n        id: 40274,\n        name: 'LegStreamCalculationFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the frequency at which calculation period end dates occur.',\n    },\n    {\n        id: 40275,\n        name: 'LegStreamCalculationFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the frequency at which calculation period end dates occur.',\n    },\n    {\n        id: 40276,\n        name: 'LegStreamCalculationRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The convention for determining the sequence of end dates. It is used in conjunction with a specified frequency. Used only to override the roll convention specified in the LegDateAdjustment component within the InstrumentLeg component.',\n    },\n    {\n        id: 40277,\n        name: 'NoCashSettlDealers',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of dealers in the repeating group.',\n    },\n    {\n        id: 40278,\n        name: 'NoBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40279,\n        name: 'LegPaymentStreamType',\n        abbrName: 'Typ',\n        type: 'PaymentStreamTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the type of payment stream applicable to the swap stream associated with the instrument leg.',\n    },\n    {\n        id: 40280,\n        name: 'LegPaymentStreamMarketRate',\n        abbrName: 'MktRt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used only for credit index trade. This contains the credit spread (\"fair value\") at which the trade was executed. The market rate varies over the life of the index depending on market conditions. This is the price of the index as quoted by trading desks.',\n    },\n    {\n        id: 40281,\n        name: 'LegPaymentStreamDelayIndicator',\n        abbrName: 'DelayInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Applicable to credit default swaps on mortgage backed securities to specify whether payment delays are applicable to the fixed amount.\\n\\nResidential mortgage backed securities typically have a payment delay of 5 days between the coupon date of the reference obligation and the payment date of the synthetic swap.\\n\\nCommercial mortage backed securities do not typically have a payment delay, with both payment dates (the coupon date of the reference obligation and the payment date of the synthetic swap) being on the 25th of each month.',\n    },\n    {\n        id: 40282,\n        name: 'LegPaymentStreamSettlCurrency',\n        abbrName: 'SettlCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency that the stream settles in (to support swaps that settle in a currency different from the notional currency). Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40283,\n        name: 'LegPaymentStreamDayCount',\n        abbrName: 'DayCnt',\n        type: 'CouponDayCountCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The day count convention used in the payment stream calculations.',\n    },\n    {\n        id: 40284,\n        name: 'LegPaymentStreamAccrualDays',\n        abbrName: 'AcrlDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The number of days from the adjusted calculation period start date to the adjusted value date, calculated in accordance with the applicable day count fraction.',\n    },\n    {\n        id: 40285,\n        name: 'LegPaymentStreamDiscountType',\n        abbrName: 'DiscTyp',\n        type: 'PaymentStreamDiscountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The method of calculating discounted payment amounts.',\n    },\n    {\n        id: 40286,\n        name: 'LegPaymentStreamDiscountRate',\n        abbrName: 'Disc',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Discount rate. The rate is expressed in decimal, e.g. 5% is expressed as 0.05.',\n    },\n    {\n        id: 40287,\n        name: 'LegPaymentStreamDiscountRateDayCount',\n        abbrName: 'DiscDayCnt',\n        type: 'CouponDayCountCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The day count convention applied to the LegPaymentStreamDiscountRate(40286).',\n    },\n    {\n        id: 40288,\n        name: 'LegPaymentStreamCompoundingMethod',\n        abbrName: 'CmpndgMeth',\n        type: 'PaymentStreamCompoundingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Compounding method.',\n    },\n    {\n        id: 40289,\n        name: 'LegPaymentStreamInitialPrincipalExchangeIndicator',\n        abbrName: 'InitPrncplExchInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates whether there is an initial exchange of principal on the effective date.',\n    },\n    {\n        id: 40290,\n        name: 'LegPaymentStreamInterimPrincipalExchangeIndicator',\n        abbrName: 'IntrmPrncplExchInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Indicates whether there are intermediate or interim exchanges of principal during the term of the swap.',\n    },\n    {\n        id: 40291,\n        name: 'LegPaymentStreamFinalPrincipalExchangeIndicator',\n        abbrName: 'FnlPrncplExchInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates whether there is a final exchange of principal on the termination date.',\n    },\n    {\n        id: 40292,\n        name: 'LegPaymentStreamPaymentDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's payment date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40293,\n        name: 'LegPaymentStreamPaymentDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s payment date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40294,\n        name: 'LegPaymentStreamPaymentFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the frequency of payments.',\n    },\n    {\n        id: 40295,\n        name: 'LegPaymentStreamPaymentFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'PaymentStreamPaymentFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the frequency of payments.',\n    },\n    {\n        id: 40296,\n        name: 'LegPaymentStreamPaymentRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The convention for determining the sequence of end dates. It is used in conjunction with a specified frequency. Used only to override the roll convention specified in the LegDateAdjustment component within the InstrumentLeg component.',\n    },\n    {\n        id: 40297,\n        name: 'LegPaymentStreamFirstPaymentDateUnadjusted',\n        abbrName: 'FirstDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted first payment date.',\n    },\n    {\n        id: 40298,\n        name: 'LegPaymentStreamLastRegularPaymentDateUnadjusted',\n        abbrName: 'LastReglrDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted last regular payment date.',\n    },\n    {\n        id: 40299,\n        name: 'LegPaymentStreamPaymentDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when payment dates are relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40300,\n        name: 'LegPaymentStreamPaymentDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative payment date offset.',\n    },\n    {\n        id: 40301,\n        name: 'LegPaymentStreamPaymentDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative payment date offset.',\n    },\n    {\n        id: 40302,\n        name: 'LegPaymentStreamPaymentDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative payment date offset.',\n    },\n    {\n        id: 40303,\n        name: 'LegPaymentStreamResetDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the reset dates are relative to an anchor date.\\n\\nIf the reset frequency is specified as daily this element must not be included.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40304,\n        name: 'LegPaymentStreamResetDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's reset date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40305,\n        name: 'LegPaymentStreamResetDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s reset date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40306,\n        name: 'LegPaymentStreamResetFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for frequency of resets.',\n    },\n    {\n        id: 40307,\n        name: 'LegPaymentStreamResetFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with frequency of resets.',\n    },\n    {\n        id: 40308,\n        name: 'LegPaymentStreamResetWeeklyRollConvention',\n        abbrName: 'WklyRoll',\n        type: 'PaymentStreamResetWeeklyRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used to specify the day of the week in which the reset occurs for payments that reset on a weekly basis.',\n    },\n    {\n        id: 40309,\n        name: 'LegPaymentStreamInitialFixingDateRelativeTo',\n        abbrName: 'InitReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the initial fixing date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40310,\n        name: 'LegPaymentStreamInitialFixingDateBusinessDayConvention',\n        abbrName: 'InitBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's initial fixing date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40311,\n        name: 'LegPaymentStreamInitialFixingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s initial fixing date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40312,\n        name: 'LegPaymentStreamInitialFixingDateOffsetPeriod',\n        abbrName: 'InitPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative initial fixing date offset.',\n    },\n    {\n        id: 40313,\n        name: 'LegPaymentStreamInitialFixingDateOffsetUnit',\n        abbrName: 'InitUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative initial fixing date offset.',\n    },\n    {\n        id: 40314,\n        name: 'LegPaymentStreamInitialFixingDateOffsetDayType',\n        abbrName: 'InitDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative initial fixing date offset.',\n    },\n    {\n        id: 40315,\n        name: 'LegPaymentStreamInitialFixingDateAdjusted',\n        abbrName: 'InitDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted initial fixing date.',\n    },\n    {\n        id: 40316,\n        name: 'LegPaymentStreamFixingDateRelativeTo',\n        abbrName: 'FixngReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the fixing date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40317,\n        name: 'LegPaymentStreamFixingDateBusinessDayConvention',\n        abbrName: 'FixngBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's fixing date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40318,\n        name: 'LegPaymentStreamFixingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s fixing date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40319,\n        name: 'LegPaymentStreamFixingDateOffsetPeriod',\n        abbrName: 'FixngPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative fixing date offset.',\n    },\n    {\n        id: 40320,\n        name: 'LegPaymentStreamFixingDateOffsetUnit',\n        abbrName: 'FixngUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative fixing date offset.',\n    },\n    {\n        id: 40321,\n        name: 'LegPaymentStreamFixingDateOffsetDayType',\n        abbrName: 'FixngDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative fixing date offset.',\n    },\n    {\n        id: 40322,\n        name: 'LegPaymentStreamFixingDateAdjusted',\n        abbrName: 'FixngDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted fixing date.',\n    },\n    {\n        id: 40323,\n        name: 'LegPaymentStreamRateCutoffDateOffsetPeriod',\n        abbrName: 'CutoffPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Time unit multiplier for the relative rate cut-off date offset.\\n\\nThis is generally the number of days preceding the period end date or termination date, as appropriate, for the specified floating rate index.',\n    },\n    {\n        id: 40324,\n        name: 'LegPaymentStreamRateCutoffDateOffsetUnit',\n        abbrName: 'CutoffUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative rate cut-off date offset.',\n    },\n    {\n        id: 40325,\n        name: 'LegPaymentStreamRateCutoffDateOffsetDayType',\n        abbrName: 'CutoffDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative rate cut-off date offset.',\n    },\n    {\n        id: 40326,\n        name: 'LegPaymentStreamRate',\n        abbrName: 'Rt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The rate applicable to the fixed rate payment stream.',\n    },\n    {\n        id: 40327,\n        name: 'LegPaymentStreamFixedAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The leg instrument payment stream's fixed payment amount. In a CDS, this can be an alternative to LegPaymentStreamRate(40326).\",\n    },\n    {\n        id: 40328,\n        name: 'LegPaymentStreamRateOrAmountCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency in which LegPaymentStreamFixedAmount(40327) or LegPaymentStreamRate(40326) is denominated. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40329,\n        name: 'LegPaymentStreamFutureValueNotional',\n        abbrName: 'FutValNotl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The future value notional is normally only required for certain non-deliverable interest rate swaps (e.g. Brazillian Real (BRL) vs. CETIP Interbank Deposit Rate (CDI)). The value is calculated as follows: Future Value Notional = Notional Amount * (1 + Fixed Rate) ^ (Fixed Rate Day Count Fraction). The currency is the same as the stream notional.',\n    },\n    {\n        id: 40330,\n        name: 'LegPaymentStreamFutureValueDateAdjusted',\n        abbrName: 'FutValDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted value date of the future value amount.',\n    },\n    {\n        id: 40331,\n        name: 'LegPaymentStreamRateIndex',\n        abbrName: 'Ndx',\n        type: 'String',\n        discriminatorId: '40332',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The payment stream floating rate index.',\n    },\n    {\n        id: 40332,\n        name: 'LegPaymentStreamRateIndexSource',\n        abbrName: 'NdxSrc',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The source of the payment stream floating rate index.',\n    },\n    {\n        id: 40333,\n        name: 'LegPaymentStreamRateIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Time unit associated with the payment stream's floating rate index curve period.\",\n    },\n    {\n        id: 40334,\n        name: 'LegPaymentStreamRateIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Time unit multiplier for the payment stream's floating rate index curve period.\",\n    },\n    {\n        id: 40335,\n        name: 'LegPaymentStreamRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 40336,\n        name: 'LegPaymentStreamRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The basis points spread from the index specified in LegPaymentStreamRateIndex(40331).',\n    },\n    {\n        id: 40337,\n        name: 'LegPaymentStreamRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 40338,\n        name: 'LegPaymentStreamRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the yield calculation treatment for the index.',\n    },\n    {\n        id: 40339,\n        name: 'LegPaymentStreamCapRate',\n        abbrName: 'CapRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The cap rate, if any, which applies to the floating rate. It is only required where the floating rate on a swap stream is capped at a certain level The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40340,\n        name: 'LegPaymentStreamCapRateBuySide',\n        abbrName: 'CapRtBuy',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the buyer of the cap rate option through its trade side.',\n    },\n    {\n        id: 40341,\n        name: 'LegPaymentStreamCapRateSellSide',\n        abbrName: 'CapRtSell',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the seller of the cap rate option through its trade side.',\n    },\n    {\n        id: 40342,\n        name: 'LegPaymentStreamFloorRate',\n        abbrName: 'FlrRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as 0.05.',\n    },\n    {\n        id: 40343,\n        name: 'LegPaymentStreamFloorRateBuySide',\n        abbrName: 'FlrRtBuy',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the buyer of the floor rate option through its trade side.',\n    },\n    {\n        id: 40344,\n        name: 'LegPaymentStreamFloorRateSellSide',\n        abbrName: 'FlrRtSell',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the seller of the floor rate option through its trade side.',\n    },\n    {\n        id: 40345,\n        name: 'LegPaymentStreamInitialRate',\n        abbrName: 'InitRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as 0.05.',\n    },\n    {\n        id: 40346,\n        name: 'LegPaymentStreamFinalRateRoundingDirection',\n        abbrName: 'FnlRtRndDirctn',\n        type: 'RoundingDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the rounding direction.',\n    },\n    {\n        id: 40347,\n        name: 'LegPaymentStreamFinalRatePrecision',\n        abbrName: 'FnlRtPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7.',\n    },\n    {\n        id: 40348,\n        name: 'LegPaymentStreamAveragingMethod',\n        abbrName: 'AvgngMeth',\n        type: 'PaymentStreamAveragingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'When averaging is applicable, used to specify whether a weighted or unweighted average method of calculation is to be used.',\n    },\n    {\n        id: 40349,\n        name: 'LegPaymentStreamNegativeRateTreatment',\n        abbrName: 'NegtvRtTrtmt',\n        type: 'PaymentStreamNegativeRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate).',\n    },\n    {\n        id: 40350,\n        name: 'LegPaymentStreamInflationLagPeriod',\n        abbrName: 'LagPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Time unit multiplier for the inflation lag period. The lag period is the offsetting period from the payment date which determineds the reference period for which the inflation index is observed.',\n    },\n    {\n        id: 40351,\n        name: 'LegPaymentStreamInflationLagUnit',\n        abbrName: 'LagUnit',\n        type: 'PaymentStreamInflationLagUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the inflation lag period.',\n    },\n    {\n        id: 40352,\n        name: 'LegPaymentStreamInflationLagDayType',\n        abbrName: 'LagDayTyp',\n        type: 'PaymentStreamInflationLagDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The inflation lag period day type.',\n    },\n    {\n        id: 40353,\n        name: 'LegPaymentStreamInflationInterpolationMethod',\n        abbrName: 'IntrpltnMeth',\n        type: 'PaymentStreamInflationInterpolationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The method used when calculating the inflation index level from multiple points. The most common is linear method.',\n    },\n    {\n        id: 40354,\n        name: 'LegPaymentStreamInflationIndexSource',\n        abbrName: 'InfltnNdxSrc',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The inflation index reference source.',\n    },\n    {\n        id: 40355,\n        name: 'LegPaymentStreamInflationPublicationSource',\n        abbrName: 'PublctnSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The publication source, such as relevant web site, news publication or a government body, where inflation information is obtained.',\n    },\n    {\n        id: 40356,\n        name: 'LegPaymentStreamInflationInitialIndexLevel',\n        abbrName: 'InitLvl',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Initial known index level for the first calculation period.',\n    },\n    {\n        id: 40357,\n        name: 'LegPaymentStreamInflationFallbackBondApplicable',\n        abbrName: 'FallbckBond',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Indicates whether a fallback bond as defined in the 2006 ISDA Inflation Derivatives Definitions, sections 1.3 and 1.8, is applicable or not. If not specified, the default value is \"Y\" (True/Yes).',\n    },\n    {\n        id: 40358,\n        name: 'LegPaymentStreamFRADiscounting',\n        abbrName: 'FRADisc',\n        type: 'PaymentStreamFRADiscountingCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'The method of Forward Rate Agreement (FRA) discounting, if any, that will apply.',\n    },\n    {\n        id: 40359,\n        name: 'LegPaymentStreamNonDeliverableRefCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Non-deliverable settlement reference currency. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40360,\n        name: 'LegPaymentStreamNonDeliverableFixingDatesBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's fixing date for the non-deliverable settlement terms. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40361,\n        name: 'LegPaymentStreamNonDeliverableFixingDatesBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s fixing date for the non-deliverable terms, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40362,\n        name: 'LegPaymentStreamNonDeliverableFixingDatesRelativeTo',\n        abbrName: 'FixngReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the non-deliverable fixing dates are relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40363,\n        name: 'LegPaymentStreamNonDeliverableFixingDatesOffsetPeriod',\n        abbrName: 'FixngPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative non-deliverable fixing date offset.',\n    },\n    {\n        id: 40364,\n        name: 'LegPaymentStreamNonDeliverableFixingDatesOffsetUnit',\n        abbrName: 'FixngUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative non-deliverable fixing date offset.',\n    },\n    {\n        id: 40365,\n        name: 'LegPaymentStreamNonDeliverableFixingDatesOffsetDayType',\n        abbrName: 'FixngDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative non-deliverable fixing date offset.',\n    },\n    {\n        id: 40366,\n        name: 'LegSettlRateFallbackRateSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source of rate information.',\n    },\n    {\n        id: 40367,\n        name: 'NoLegNonDeliverableFixingDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of fixing dates in the repeating group.',\n    },\n    {\n        id: 40368,\n        name: 'LegNonDeliverableFixingDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The non-deliverable fixing date. Type of date is specified in LegNonDeliverableFixingDateType(40369).',\n    },\n    {\n        id: 40369,\n        name: 'LegNonDeliverableFixingDateType',\n        abbrName: 'Typ',\n        type: 'NonDeliverableFixingDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the type of date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 40370,\n        name: 'LegSettlRateFallbackReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the reference \"page\" from the rate source.\\n\\nWhen LegSettlRateFallbackRateSource(40366) = 3(ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option',\n    },\n    {\n        id: 40371,\n        name: 'PaymentStreamNonDeliverableSettlRateSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source of rate information.',\n    },\n    {\n        id: 40372,\n        name: 'PaymentStreamNonDeliverableSettlReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the reference \"page\" from the rate source.\\n\\nWhen PaymentStreamNonDeliverableSettlRateSource(40371) = 3(ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option',\n    },\n    {\n        id: 40373,\n        name: 'SettlRateFallbackRateSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source of rate information.',\n    },\n    {\n        id: 40374,\n        name: 'NoLegPaymentSchedules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of swap schedules in the repeating group',\n    },\n    {\n        id: 40375,\n        name: 'LegPaymentScheduleType',\n        abbrName: 'Typ',\n        type: 'PaymentScheduleTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the type of schedule.',\n    },\n    {\n        id: 40376,\n        name: 'LegPaymentScheduleStubType',\n        abbrName: 'StubTyp',\n        type: 'PaymentStubTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates to which stub this schedule applies.',\n    },\n    {\n        id: 40377,\n        name: 'LegPaymentScheduleStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The unadjusted date on which the value is adjusted, or calculated if a future value notional for certain non-deliverable interest rate swaps (e.g. Brazillian Real (BRL) vs. CETIP Interbank Deposit Rate (CDI)), or the start date of a cashflow payment.',\n    },\n    {\n        id: 40378,\n        name: 'LegPaymentScheduleEndDateUnadjusted',\n        abbrName: 'EndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted end date of a cashflow payment.',\n    },\n    {\n        id: 40379,\n        name: 'LegPaymentSchedulePaySide',\n        abbrName: 'PaySide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party paying the step schedule.',\n    },\n    {\n        id: 40380,\n        name: 'LegPaymentScheduleReceiveSide',\n        abbrName: 'RcvSide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party receiving the step schedule.',\n    },\n    {\n        id: 40381,\n        name: 'LegPaymentScheduleNotional',\n        abbrName: 'Notl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The notional value for this step schedule, or amount of a cashflow payment.',\n    },\n    {\n        id: 40382,\n        name: 'LegPaymentScheduleCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The currency for this step schedule. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40383,\n        name: 'LegPaymentScheduleRate',\n        abbrName: 'Rt',\n        type: 'Percentage',\n        discriminatorId: '40415',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The rate value for this step schedule.',\n    },\n    {\n        id: 40384,\n        name: 'LegPaymentScheduleRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 40385,\n        name: 'LegPaymentScheduleRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The spread value for this step schedule.',\n    },\n    {\n        id: 40386,\n        name: 'LegPaymentScheduleRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies whether the rate spread is applied to a long or a short position.',\n    },\n    {\n        id: 40387,\n        name: 'LegPaymentScheduleRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the yield calculation treatment for the step schedule.',\n    },\n    {\n        id: 40388,\n        name: 'LegPaymentScheduleFixedAmount',\n        abbrName: 'FixedAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The explicit payment amount for this step schedule.',\n    },\n    {\n        id: 40389,\n        name: 'LegPaymentScheduleFixedCurrency',\n        abbrName: 'FixedCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The currency of the fixed amount. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40390,\n        name: 'LegPaymentScheduleStepFrequencyPeriod',\n        abbrName: 'StepPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the step frequency.',\n    },\n    {\n        id: 40391,\n        name: 'LegPaymentScheduleStepFrequencyUnit',\n        abbrName: 'StepUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the step frequency.',\n    },\n    {\n        id: 40392,\n        name: 'LegPaymentScheduleStepOffsetValue',\n        abbrName: 'StepVal',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The explicit amount that the notional changes on each step date. This can be a positive or negative amount.',\n    },\n    {\n        id: 40393,\n        name: 'LegPaymentScheduleStepRate',\n        abbrName: 'StepRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The percentage by which the notional changes on each step date. The percentage is either a percentage applied to the initial notional amount or the previous outstanding notional, depending on the value specified in LegPaymentScheduleStepRelativeTo(40395). The percentage can be either positive or negative.',\n    },\n    {\n        id: 40394,\n        name: 'LegPaymentScheduleStepOffsetRate',\n        abbrName: 'StepOfstRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The explicit amount that the rate changes on each step date. This can be a positive or negative value.',\n    },\n    {\n        id: 40395,\n        name: 'LegPaymentScheduleStepRelativeTo',\n        abbrName: 'StepReltv',\n        type: 'PaymentScheduleStepRelativeToCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies whether the LegPaymentScheduleStepRate(40393) or LegPaymentScheduleStepOffsetValue(40392) should be applied to the initial notional or the previous notional in order to calculate the notional step change amount.',\n    },\n    {\n        id: 40396,\n        name: 'LegPaymentScheduleFixingDateUnadjusted',\n        abbrName: 'FixngDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted fixing date.',\n    },\n    {\n        id: 40397,\n        name: 'LegPaymentScheduleWeight',\n        abbrName: 'Wt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Floating rate observation weight for cashflow payment.',\n    },\n    {\n        id: 40398,\n        name: 'LegPaymentScheduleFixingDateRelativeTo',\n        abbrName: 'FixngReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the fixing date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40399,\n        name: 'LegPaymentScheduleFixingDateBusinessDayConvention',\n        abbrName: 'FixngBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment schedule's fixing date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40400,\n        name: 'LegPaymentScheduleFixingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment schedule\\'s fixing date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40401,\n        name: 'LegPaymentScheduleFixingDateOffsetPeriod',\n        abbrName: 'FixngPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative fixing date offset.',\n    },\n    {\n        id: 40402,\n        name: 'LegPaymentScheduleFixingDateOffsetUnit',\n        abbrName: 'FixngUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative fixing date offset.',\n    },\n    {\n        id: 40403,\n        name: 'LegPaymentScheduleFixingDateOffsetDayType',\n        abbrName: 'FixngDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative fixing date offset.',\n    },\n    {\n        id: 40404,\n        name: 'LegPaymentScheduleFixingDateAdjusted',\n        abbrName: 'FixngDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted fixing date.',\n    },\n    {\n        id: 40405,\n        name: 'LegPaymentScheduleFixingTime',\n        abbrName: 'FixngTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The fxing time associated with the step schedule.',\n    },\n    {\n        id: 40406,\n        name: 'LegPaymentScheduleFixingTimeBusinessCenter',\n        abbrName: 'FixngTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Business center for determining fixing time.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40407,\n        name: 'LegPaymentScheduleInterimExchangePaymentDateRelativeTo',\n        abbrName: 'IntrmExchDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the interim exchange payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40408,\n        name: 'LegPaymentScheduleInterimExchangeDatesBusinessDayConvention',\n        abbrName: 'IntrmExchDtBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment schedule's interim exchange date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40409,\n        name: 'LegPaymentScheduleInterimExchangeDatesBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment schedule\\'s interim exchange date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40410,\n        name: 'LegPaymentScheduleInterimExchangeDatesOffsetPeriod',\n        abbrName: 'IntrmExchDtPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative interim exchange date offset.',\n    },\n    {\n        id: 40411,\n        name: 'LegPaymentScheduleInterimExchangeDatesOffsetUnit',\n        abbrName: 'IntrmExchDtUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative interim exchange date offset.',\n    },\n    {\n        id: 40412,\n        name: 'LegPaymentScheduleInterimExchangeDatesOffsetDayType',\n        abbrName: 'IntrmExchDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative interim exchange date offset.',\n    },\n    {\n        id: 40413,\n        name: 'LegPaymentScheduleInterimExchangeDateAdjusted',\n        abbrName: 'IntrmExchDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted interim exchange date.',\n    },\n    {\n        id: 40414,\n        name: 'NoLegPaymentScheduleRateSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of rate sources in the repeating group',\n    },\n    {\n        id: 40415,\n        name: 'LegPaymentScheduleRateSource',\n        abbrName: 'Src',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source of rate information.',\n    },\n    {\n        id: 40416,\n        name: 'LegPaymentScheduleRateSourceType',\n        abbrName: 'Typ',\n        type: 'RateSourceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Rate source type.',\n    },\n    {\n        id: 40417,\n        name: 'LegPaymentScheduleReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the reference \"page\" from the rate source.\\n\\nFor FX, the reference page to the spot rate to be used for the reference FX spot rate.\\n\\nWhen RateSource(1446) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option',\n    },\n    {\n        id: 40418,\n        name: 'NoLegPaymentStubs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of stubs in the repeating group',\n    },\n    {\n        id: 40419,\n        name: 'LegPaymentStubType',\n        abbrName: 'Typ',\n        type: 'PaymentStubTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Stub type.',\n    },\n    {\n        id: 40420,\n        name: 'LegPaymentStubLength',\n        abbrName: 'Lngth',\n        type: 'PaymentStubLengthCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Optional indication whether stub is shorter or longer than the regular swap period.',\n    },\n    {\n        id: 40421,\n        name: 'LegPaymentStubRate',\n        abbrName: 'Rt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The agreed upon fixed rate for this stub.',\n    },\n    {\n        id: 40422,\n        name: 'LegPaymentStubFixedAmount',\n        abbrName: 'FixedAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'A fixed payment amount for the stub.',\n    },\n    {\n        id: 40423,\n        name: 'LegPaymentStubFixedCurrency',\n        abbrName: 'FixedCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The currency of the fixed payment amount. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40424,\n        name: 'LegPaymentStubIndex',\n        abbrName: 'Ndx',\n        type: 'String',\n        discriminatorId: '40425',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The stub floating rate index.',\n    },\n    {\n        id: 40425,\n        name: 'LegPaymentStubIndexSource',\n        abbrName: 'NdxSrc',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The source for the stub floating rate index.',\n    },\n    {\n        id: 40426,\n        name: 'LegPaymentStubIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the floating rate index.',\n    },\n    {\n        id: 40427,\n        name: 'LegPaymentStubIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the floating rate index.',\n    },\n    {\n        id: 40428,\n        name: 'LegPaymentStubIndexRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 40429,\n        name: 'LegPaymentStubIndexRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Spread from floating rate index.',\n    },\n    {\n        id: 40430,\n        name: 'LegPaymentStubIndexRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies whether the rate spread is applied to a long or a short position.',\n    },\n    {\n        id: 40431,\n        name: 'LegPaymentStubIndexRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the yield calculation treatment for the stub index.',\n    },\n    {\n        id: 40432,\n        name: 'LegPaymentStubIndexCapRate',\n        abbrName: 'CapRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The cap rate, if any, which applies to the floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40433,\n        name: 'LegPaymentStubIndexCapRateBuySide',\n        abbrName: 'CapRtBuy',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the buyer of the cap rate option through its trade side.',\n    },\n    {\n        id: 40434,\n        name: 'LegPaymentStubIndexCapRateSellSide',\n        abbrName: 'CapRtSell',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the seller of the cap rate option through its trade side.',\n    },\n    {\n        id: 40435,\n        name: 'LegPaymentStubIndexFloorRate',\n        abbrName: 'FlrRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40436,\n        name: 'LegPaymentStubIndexFloorRateBuySide',\n        abbrName: 'FlrRtBuy',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the buyer of the floor rate option through its trade side.',\n    },\n    {\n        id: 40437,\n        name: 'LegPaymentStubIndexFloorRateSellSide',\n        abbrName: 'FlrRtSell',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the seller of the floor rate option through its trade side.',\n    },\n    {\n        id: 40438,\n        name: 'LegPaymentStubIndex2',\n        abbrName: 'Ndx2',\n        type: 'String',\n        discriminatorId: '40439',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The second stub floating rate index.',\n    },\n    {\n        id: 40439,\n        name: 'LegPaymentStubIndex2Source',\n        abbrName: 'Ndx2Src',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The source for the second stub floating rate index.',\n    },\n    {\n        id: 40440,\n        name: 'LegPaymentStubIndex2CurvePeriod',\n        abbrName: 'Ndx2Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Secondary time unit multiplier for the stub floating rate index curve.',\n    },\n    {\n        id: 40441,\n        name: 'LegPaymentStubIndex2CurveUnit',\n        abbrName: 'Ndx2Unit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Secondary time unit associated with the stub floating rate index curve.',\n    },\n    {\n        id: 40442,\n        name: 'LegPaymentStubIndex2RateMultiplier',\n        abbrName: 'RtMult2',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A rate multiplier to apply to the second floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 40443,\n        name: 'LegPaymentStubIndex2RateSpread',\n        abbrName: 'Spread2',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Spread from the second floating rate index.',\n    },\n    {\n        id: 40444,\n        name: 'LegPaymentStubIndex2RateSpreadPositionType',\n        abbrName: 'Spread2PosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies whether the rate spread is applied to a long or a short position.',\n    },\n    {\n        id: 40445,\n        name: 'LegPaymentStubIndex2RateTreatment',\n        abbrName: 'RtTrtmt2',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the yield calculation treatment for the second stub index.',\n    },\n    {\n        id: 40446,\n        name: 'LegPaymentStubIndex2CapRate',\n        abbrName: 'CapRt2',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The cap rate, if any, which applies to the second floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40447,\n        name: 'LegPaymentStubIndex2FloorRate',\n        abbrName: 'FlrRt2',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The floor rate, if any, which applies to the second floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40448,\n        name: 'NoLegProvisions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of provisions in the repeating group.',\n    },\n    {\n        id: 40449,\n        name: 'LegProvisionType',\n        abbrName: 'Typ',\n        type: 'ProvisionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Type of provisions.',\n    },\n    {\n        id: 40450,\n        name: 'LegProvisionDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted date of the provision.',\n    },\n    {\n        id: 40451,\n        name: 'LegProvisionDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument leg's provision's date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40452,\n        name: 'LegProvisionDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument leg\\'s provision\\'s date, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40453,\n        name: 'LegProvisionDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted date of the provision.',\n    },\n    {\n        id: 40454,\n        name: 'LegProvisionDateTenorPeriod',\n        abbrName: 'TenorPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Time unit multiplier for the leg provision's tenor period.\",\n    },\n    {\n        id: 40455,\n        name: 'LegProvisionDateTenorUnit',\n        abbrName: 'TenorUnit',\n        type: 'ProvisionDateTenorUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"Time unit associated with the leg provision's tenor period.\",\n    },\n    {\n        id: 40456,\n        name: 'LegProvisionCalculationAgent',\n        abbrName: 'CalcAgent',\n        type: 'ProvisionCalculationAgentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used to identify the calculation agent. The calculation agent may be identified in LegProvisionCalculationAgent(40456) or in the ProvisionParties component.',\n    },\n    {\n        id: 40457,\n        name: 'LegProvisionOptionSinglePartyBuyerSide',\n        abbrName: 'BuyerSide',\n        type: 'ProvisionOptionSinglePartyBuyerSideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'If optional early termination is not available to both parties then this component identifies the buyer of the option through its side of the trade.',\n    },\n    {\n        id: 40458,\n        name: 'LegProvisionOptionSinglePartySellerSide',\n        abbrName: 'SellerSide',\n        type: 'ProvisionOptionSinglePartyBuyerSideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description:\n            'If optional early termination is not available to both parties then this component identifies the seller of the option through its side of the trade.',\n    },\n    {\n        id: 40459,\n        name: 'LegProvisionOptionExerciseStyle',\n        abbrName: 'ExerStyle',\n        type: 'ExerciseStyleCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The instrument provision option exercise style.',\n    },\n    {\n        id: 40460,\n        name: 'LegProvisionOptionExerciseMultipleNotional',\n        abbrName: 'MultplNotl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A notional amount which restricts the amount of notional that can be exercised when partial exercise or multiple exercise is applicable. The integral multiple amount defines a lower limit of notional that can be exercised and also defines a unit multiple of notional that can be exercised, i.e. only integer multiples of this amount can be exercised.',\n    },\n    {\n        id: 40461,\n        name: 'LegProvisionOptionExerciseMinimumNotional',\n        abbrName: 'MinNotl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The minimum notional amount that can be exercised on a given exercise date.',\n    },\n    {\n        id: 40462,\n        name: 'LegProvisionOptionExerciseMaximumNotional',\n        abbrName: 'MaxNotl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The maximum notional amount that can be exercised on a given exercise date.',\n    },\n    {\n        id: 40463,\n        name: 'LegProvisionOptionMinimumNumber',\n        abbrName: 'MinNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The minimum number of options that can be exercised on a given exercise date.',\n    },\n    {\n        id: 40464,\n        name: 'LegProvisionOptionMaximumNumber',\n        abbrName: 'MaxNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The maximum number of options that can be exercised on a given exercise date. If the number is not specified, it means that the maximum number of options corresponds to the remaining unexercised options.',\n    },\n    {\n        id: 40465,\n        name: 'LegProvisionOptionExerciseConfirmation',\n        abbrName: 'ExerCnfm',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Used to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent.\",\n    },\n    {\n        id: 40466,\n        name: 'LegProvisionCashSettlMethod',\n        abbrName: 'SettlMeth',\n        type: 'ProvisionCashSettlMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (e).',\n    },\n    {\n        id: 40467,\n        name: 'LegProvisionCashSettlCurrency',\n        abbrName: 'SettlCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the currency of settlement. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40468,\n        name: 'LegProvisionCashSettlCurrency2',\n        abbrName: 'SettlCcy2',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency of settlement for a cross-currency provision. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40469,\n        name: 'LegProvisionCashSettlQuoteType',\n        abbrName: 'SettlQteTyp',\n        type: 'ProvisionCashSettlQuoteTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the type of quote to be used.',\n    },\n    {\n        id: 40470,\n        name: 'LegProvisionCashSettlQuoteSource',\n        abbrName: 'SettlQteSrc',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source of quote information.',\n    },\n    {\n        id: 40471,\n        name: 'BusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A business center whose calendar is used for date adjustment, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40472,\n        name: 'LegProvisionText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Free form text to specify additional information or enumeration description when a standard value does not apply.',\n    },\n    {\n        id: 40473,\n        name: 'NoLegProvisionCashSettlPaymentDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of provision cash settlement payment dates in the repeating group.',\n    },\n    {\n        id: 40474,\n        name: 'LegProvisionCashSettlPaymentDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The cash settlement payment date, unadjusted or adjusted depending on LegProvisionCashSettlPaymentDateType(40521).',\n    },\n    {\n        id: 40475,\n        name: 'LegProvisionCashSettlPaymentDateType',\n        abbrName: 'Typ',\n        type: 'ProvisionCashSettlPaymentDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the type of date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 40476,\n        name: 'LegProvisionOptionExerciseBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument leg's provision's option exercise date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40477,\n        name: 'LegProvisionOptionExerciseBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument leg\\'s provision\\'s option exercise date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40478,\n        name: 'LegProvisionOptionExerciseEarliestDateOffsetPeriod',\n        abbrName: 'ErlstOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Time unit multiplier for the interval to the first (and possibly only) exercise date in the exercise period.',\n    },\n    {\n        id: 40479,\n        name: 'LegProvisionOptionExerciseEarliestDateOffsetUnit',\n        abbrName: 'ErlstOfstUnit',\n        type: 'ProvisionOptionExerciseEarliestDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Time unit associated with the interval to the first (and possibly only) exercise date in the exercise period.',\n    },\n    {\n        id: 40480,\n        name: 'LegProvisionOptionExerciseFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Time unit multiplier for subsequent exercise dates in the exercise period following the earliest exercise date. An interval of 1 day should be used to indicate an American style exercise period.',\n    },\n    {\n        id: 40481,\n        name: 'LegProvisionOptionExerciseFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Time unit associated with subsequent exercise dates in the exercise period following the earliest exercise date.',\n    },\n    {\n        id: 40482,\n        name: 'LegProvisionOptionExerciseStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted first day of the exercise period for an American style option.',\n    },\n    {\n        id: 40483,\n        name: 'LegProvisionOptionExerciseStartDateRelativeTo',\n        abbrName: 'StartDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the option exercise start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40484,\n        name: 'LegProvisionOptionExerciseStartDateOffsetPeriod',\n        abbrName: 'StartDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative option exercise start date offset.',\n    },\n    {\n        id: 40485,\n        name: 'LegProvisionOptionExerciseStartDateOffsetUnit',\n        abbrName: 'StartDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative option exercise start date offset.',\n    },\n    {\n        id: 40486,\n        name: 'LegProvisionOptionExerciseStartDateOffsetDayType',\n        abbrName: 'StartDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative option exercise start date offset.\",\n    },\n    {\n        id: 40487,\n        name: 'LegProvisionOptionExerciseStartDateAdjusted',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted first day of the exercise period for an American style option.',\n    },\n    {\n        id: 40488,\n        name: 'LegProvisionOptionExercisePeriodSkip',\n        abbrName: 'Skip',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1.',\n    },\n    {\n        id: 40489,\n        name: 'LegProvisionOptionExerciseBoundsFirstDateUnadjusted',\n        abbrName: 'FirstDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The unadjusted first date of a schedule. This can be used to restrict the range of exercise dates when they are relative.',\n    },\n    {\n        id: 40490,\n        name: 'LegProvisionOptionExerciseBoundsLastDateUnadjusted',\n        abbrName: 'LastDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The unadjusted last date of a schedule. This can be used to restrict the range of exercise dates when they are relative.',\n    },\n    {\n        id: 40491,\n        name: 'LegProvisionOptionExerciseEarliestTime',\n        abbrName: 'ErlstTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) (i) on the expriation date, in the case of a European style option, (ii) on each bermuda option exercise date and the expiration date, in the case of a Bermuda style option the commencement date to, and including, the expiration date, in the case of an American option.\",\n    },\n    {\n        id: 40492,\n        name: 'LegProvisionOptionExerciseEarliestTimeBusinessCenter',\n        abbrName: 'ErlstTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Identifies the business center calendar used with the provision's earliest time for notice of exercise.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.\",\n    },\n    {\n        id: 40493,\n        name: 'LegProvisionOptionExerciseLatestTime',\n        abbrName: 'LtstTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day.\",\n    },\n    {\n        id: 40494,\n        name: 'LegProvisionOptionExerciseLatestTimeBusinessCenter',\n        abbrName: 'LtstTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Identifies the business center calendar used with the provision's latest time for notice of exercise.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.\",\n    },\n    {\n        id: 40495,\n        name: 'NoLegProvisionOptionExerciseFixedDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of provision option exercise fixed dates in the repeating group.',\n    },\n    {\n        id: 40496,\n        name: 'LegProvisionOptionExerciseFixedDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A predetermined option exercise date unadjusted or adjusted depending on LegProvisionOptionExerciseFixedDateType(40497).',\n    },\n    {\n        id: 40497,\n        name: 'LegProvisionOptionExerciseFixedDateType',\n        abbrName: 'Typ',\n        type: 'ProvisionOptionExerciseFixedDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the type of date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 40498,\n        name: 'LegProvisionOptionExpirationDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The unadjusted last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period.',\n    },\n    {\n        id: 40499,\n        name: 'LegProvisionOptionExpirationDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument leg's provision's option expiration date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40500,\n        name: 'LegProvisionOptionExpirationDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument leg\\'s provision\\'s option expiration date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40501,\n        name: 'LegProvisionOptionExpirationDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the option expiration date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40502,\n        name: 'LegProvisionOptionExpirationDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative option expiration date offset.',\n    },\n    {\n        id: 40503,\n        name: 'LegProvisionOptionExpirationDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative option expiration date offset.',\n    },\n    {\n        id: 40504,\n        name: 'LegProvisionOptionExpirationDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative option expiration date offset.\",\n    },\n    {\n        id: 40505,\n        name: 'LegProvisionOptionExpirationDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The adjusted last date within an exercise period for an American style option. For a European style option it is the only date within the exercise period.',\n    },\n    {\n        id: 40506,\n        name: 'LegProvisionOptionExpirationTime',\n        abbrName: 'ExpTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The latest time for exercise on the expiration date.',\n    },\n    {\n        id: 40507,\n        name: 'LegProvisionOptionExpirationTimeBusinessCenter',\n        abbrName: 'ExpTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Identifies the business center calendar used with the provision's latest exercise time on expiration date.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.\",\n    },\n    {\n        id: 40508,\n        name: 'LegProvisionOptionRelevantUnderlyingDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The unadjusted date on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the swap effective date, in an extendible/cancelable provision it is the swap termination date).',\n    },\n    {\n        id: 40509,\n        name: 'LegProvisionOptionRelevantUnderlyingDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument leg's provision's option relevant underlying date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40510,\n        name: 'LegProvisionOptionRelevantUnderlyingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument leg\\'s provision\\'s option underlying date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40511,\n        name: 'LegProvisionOptionRelevantUnderlyingDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the date relevant to the underlying trade on exercise is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40512,\n        name: 'LegProvisionOptionRelevantUnderlyingDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative option relevant underlying date offset.',\n    },\n    {\n        id: 40513,\n        name: 'LegProvisionOptionRelevantUnderlyingDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative option relevant underlying date offset.',\n    },\n    {\n        id: 40514,\n        name: 'LegProvisionOptionRelevantUnderlyingDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative option relevant underlying date offset.\",\n    },\n    {\n        id: 40515,\n        name: 'LegProvisionOptionRelevantUnderlyingDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The adjusted date on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the swap effective date, in an extendible/cancelable provision it is the swap termination date).',\n    },\n    {\n        id: 40516,\n        name: 'LegProvisionCashSettlPaymentDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the provisional cash settlement payment's termination, or relative termination, date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40517,\n        name: 'LegProvisionCashSettlPaymentDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the provisional cash settlement payment\\'s termination, or relative termination, date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40518,\n        name: 'LegProvisionCashSettlPaymentDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the cash settlement payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40519,\n        name: 'LegProvisionCashSettlPaymentDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative cash settlement payment date offset.',\n    },\n    {\n        id: 40520,\n        name: 'LegProvisionCashSettlPaymentDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative cash settlement payment date offset.',\n    },\n    {\n        id: 40521,\n        name: 'LegProvisionCashSettlPaymentDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative cash settlement payment date offset.\",\n    },\n    {\n        id: 40522,\n        name: 'LegProvisionCashSettlPaymentDateRangeFirst',\n        abbrName: 'DtFirst',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The first date in range when a settlement date range is provided.',\n    },\n    {\n        id: 40523,\n        name: 'LegProvisionCashSettlPaymentDateRangeLast',\n        abbrName: 'DtLast',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The last date in range when a settlement date range is provided.',\n    },\n    {\n        id: 40524,\n        name: 'LegProvisionCashSettlValueTime',\n        abbrName: 'Tm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A time specified in 24-hour format, e.g. 11am would be represented as 11:00:00. The time of the cash settlement valuation date when the cash settlement amount will be determined according to the cash settlement method if the parties have not otherwise been able to agree to the cash settlement amount.',\n    },\n    {\n        id: 40525,\n        name: 'LegProvisionCashSettlValueTimeBusinessCenter',\n        abbrName: 'TmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"Identifies the business center calendar used with the provision's cash settlement valuation time.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.\",\n    },\n    {\n        id: 40526,\n        name: 'LegProvisionCashSettlValueDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the provision's cash settlement valuation date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 40527,\n        name: 'LegProvisionCashSettlValueDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the provision\\'s cash settlement valuation date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40528,\n        name: 'LegProvisionCashSettlValueDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the cash settlement value date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40529,\n        name: 'LegProvisionCashSettlValueDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative cash settlement value date offset.',\n    },\n    {\n        id: 40530,\n        name: 'LegProvisionCashSettlValueDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative cash settlement value date offset.',\n    },\n    {\n        id: 40531,\n        name: 'LegProvisionCashSettlValueDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative cash settlement value date offset.\",\n    },\n    {\n        id: 40532,\n        name: 'LegProvisionCashSettlValueDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted cash settlement value date.',\n    },\n    {\n        id: 40533,\n        name: 'NoLegProvisionPartyIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of parties identified in the contract provision.',\n    },\n    {\n        id: 40534,\n        name: 'LegProvisionPartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '40535',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The party identifier/code for the payment settlement party.',\n    },\n    {\n        id: 40535,\n        name: 'LegProvisionPartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Identifies the class or source of LegProvisionPartyID(40534).',\n    },\n    {\n        id: 40536,\n        name: 'LegProvisionPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the type or role of LegProvisionPartyID(40534) specified.',\n    },\n    {\n        id: 40537,\n        name: 'NoLegProvisionPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of sub-party IDs to be reported for the party.',\n    },\n    {\n        id: 40538,\n        name: 'LegProvisionPartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Party sub-identifier, if applicable, for LegProvisionPartyRole(40536).',\n    },\n    {\n        id: 40539,\n        name: 'LegProvisionPartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The type of LegProvisionPartySubID(40538) value.',\n    },\n    {\n        id: 40540,\n        name: 'NoUnderlyingStreams',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of swap streams in the repeating group.',\n    },\n    {\n        id: 40541,\n        name: 'UnderlyingStreamType',\n        abbrName: 'Typ',\n        type: 'StreamTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Type of swap stream.',\n    },\n    {\n        id: 40542,\n        name: 'UnderlyingStreamDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A short descriptive name given to payment stream. Eg. CDS, Fixed, Float, Float2, GBP. The description has no intrinsic meaning but should be arbitrarily chosen by the remitter as a reference.',\n    },\n    {\n        id: 40543,\n        name: 'UnderlyingStreamPaySide',\n        abbrName: 'PaySide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party paying the stream.',\n    },\n    {\n        id: 40544,\n        name: 'UnderlyingStreamReceiveSide',\n        abbrName: 'RcvSide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party receiving the stream.',\n    },\n    {\n        id: 40545,\n        name: 'UnderlyingStreamNotional',\n        abbrName: 'Notl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Notional, or initial notional value for the payment stream. Use SwapSchedule for steps.',\n    },\n    {\n        id: 40546,\n        name: 'UnderlyingStreamCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency the UnderlyingStreamNotional(40545) is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40547,\n        name: 'UnderlyingStreamText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Free form text to specify additional information or enumeration description when a standard value does not apply.',\n    },\n    {\n        id: 40548,\n        name: 'UnderlyingStreamTerminationDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted termination date.',\n    },\n    {\n        id: 40549,\n        name: 'UnderlyingStreamTerminationDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the underlying instrument's stream's termination, or relative termination, date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 40550,\n        name: 'UnderlyingStreamTerminationDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the underlying instrument\\'s stream\\'s termination, or relative termination, date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40551,\n        name: 'UnderlyingStreamTerminationDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the termination date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40552,\n        name: 'UnderlyingStreamTerminationDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the relative termination date offset.',\n    },\n    {\n        id: 40553,\n        name: 'UnderlyingStreamTerminationDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the relative termination date offset.',\n    },\n    {\n        id: 40554,\n        name: 'UnderlyingStreamTerminationDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative termination date offset.',\n    },\n    {\n        id: 40555,\n        name: 'UnderlyingStreamTerminationDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted termination date.',\n    },\n    {\n        id: 40556,\n        name: 'UnderlyingStreamCalculationPeriodBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business day convention used to adjust the calculation periods. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n    },\n    {\n        id: 40557,\n        name: 'UnderlyingStreamCalculationPeriodBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the calculation periods, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40558,\n        name: 'UnderlyingStreamFirstPeriodStartDateUnadjusted',\n        abbrName: 'FirstStartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted first calculation period start date if before the effective date.',\n    },\n    {\n        id: 40559,\n        name: 'UnderlyingStreamFirstPeriodStartDateBusinessDayConvention',\n        abbrName: 'FirstStartDtBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the underlying instrument's stream's first calculation period start date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 40560,\n        name: 'UnderlyingStreamFirstPeriodStartDateBusinessCenter',\n        abbrName: 'FirstStartDtBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the underlying instrument\\'s stream\\'s first calculation period start date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40561,\n        name: 'UnderlyingStreamFirstPeriodStartDateAdjusted',\n        abbrName: 'FirstStartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted first calculation period start date, if it is before the effective date.',\n    },\n    {\n        id: 40562,\n        name: 'UnderlyingStreamFirstRegularPeriodStartDateUnadjusted',\n        abbrName: 'FirstReglrStartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The unadjusted first start date of the regular calculation period, if there is an initial stub period.',\n    },\n    {\n        id: 40563,\n        name: 'UnderlyingStreamFirstCompoundingPeriodEndDateUnadjusted',\n        abbrName: 'FirstCmpndgEndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted end date of the initial compounding period.',\n    },\n    {\n        id: 40564,\n        name: 'UnderlyingStreamLastRegularPeriodEndDateUnadjusted',\n        abbrName: 'LastReglrEndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted last regular period end date if there is a final stub period.',\n    },\n    {\n        id: 40565,\n        name: 'UnderlyingStreamCalculationFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the frequency at which calculation period end dates occur.',\n    },\n    {\n        id: 40566,\n        name: 'UnderlyingStreamCalculationFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the frequency at which calculation period end dates occur.',\n    },\n    {\n        id: 40567,\n        name: 'UnderlyingStreamCalculationRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The convention for determining the sequence of end dates. It is used in conjunction with a specified frequency. Used only to override the roll convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n    },\n    {\n        id: 40568,\n        name: 'UnderlyingPaymentStreamType',\n        abbrName: 'Typ',\n        type: 'PaymentStreamTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the type of payment stream applicable to the swap stream associated with the underlying instrument.',\n    },\n    {\n        id: 40569,\n        name: 'UnderlyingPaymentStreamMarketRate',\n        abbrName: 'MktRt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used only for credit index trade. This contains the credit spread (\"fair value\") at which the trade was executed. The market rate varies over the life of the index depending on market conditions. This is the price of the index as quoted by trading desks.',\n    },\n    {\n        id: 40570,\n        name: 'UnderlyingPaymentStreamDelayIndicator',\n        abbrName: 'DelayInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Applicable to credit default swaps on mortgage backed securities to specify whether payment delays are applicable to the fixed amount.\\n\\nResidential mortgage backed securities typically have a payment delay of 5 days between the coupon date of the reference obligation and the payment date of the synthetic swap.\\n\\nCommercial mortage backed securities do not typically have a payment delay, with both payment dates (the coupon date of the reference obligation and the payment date of the synthetic swap) being on the 25th of each month.',\n    },\n    {\n        id: 40571,\n        name: 'UnderlyingPaymentStreamSettlCurrency',\n        abbrName: 'SettlCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency that the stream settles in (to support swaps that settle in a currency different from the notional currency). Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40572,\n        name: 'UnderlyingPaymentStreamDayCount',\n        abbrName: 'DayCnt',\n        type: 'CouponDayCountCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The day count convention used in the payment stream calculations.',\n    },\n    {\n        id: 40573,\n        name: 'UnderlyingPaymentStreamAccrualDays',\n        abbrName: 'AcrlDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The number of days from the adjusted calculation period start date to the adjusted value date, calculated in accordance with the applicable day count fraction.',\n    },\n    {\n        id: 40574,\n        name: 'UnderlyingPaymentStreamDiscountType',\n        abbrName: 'DiscTyp',\n        type: 'PaymentStreamDiscountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The method of calculating discounted payment amounts',\n    },\n    {\n        id: 40575,\n        name: 'UnderlyingPaymentStreamDiscountRate',\n        abbrName: 'Disc',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Discount rate. The rate is expressed in decimal, e.g. 5% is expressed as 0.05.',\n    },\n    {\n        id: 40576,\n        name: 'UnderlyingPaymentStreamDiscountRateDayCount',\n        abbrName: 'DiscDayCnt',\n        type: 'CouponDayCountCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The day count convention applied to the UnderlyingPaymentStreamDiscountRate(40575).',\n    },\n    {\n        id: 40577,\n        name: 'UnderlyingPaymentStreamCompoundingMethod',\n        abbrName: 'CmpndgMeth',\n        type: 'PaymentStreamCompoundingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Compounding Method.',\n    },\n    {\n        id: 40578,\n        name: 'UnderlyingPaymentStreamInitialPrincipalExchangeIndicator',\n        abbrName: 'InitPrncplExchInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates whether there is an initial exchange of principal on the effective date.',\n    },\n    {\n        id: 40579,\n        name: 'UnderlyingPaymentStreamInterimPrincipalExchangeIndicator',\n        abbrName: 'IntrmPrncplExchInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Indicates whether there are intermediate or interim exchanges of principal during the term of the swap.',\n    },\n    {\n        id: 40580,\n        name: 'UnderlyingPaymentStreamFinalPrincipalExchangeIndicator',\n        abbrName: 'FnlPrncplExchInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates whether there is a final exchange of principal on the termination date.',\n    },\n    {\n        id: 40581,\n        name: 'UnderlyingPaymentStreamPaymentDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's payment date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 40582,\n        name: 'UnderlyingPaymentStreamPaymentDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s payment date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40583,\n        name: 'UnderlyingPaymentStreamPaymentFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the frequency of payments.',\n    },\n    {\n        id: 40584,\n        name: 'UnderlyingPaymentStreamPaymentFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'PaymentStreamPaymentFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the frequency of payments.',\n    },\n    {\n        id: 40585,\n        name: 'UnderlyingPaymentStreamPaymentRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The convention for determining the sequence of end dates. It is used in conjunction with a specified frequency. Used only to override the roll convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n    },\n    {\n        id: 40586,\n        name: 'UnderlyingPaymentStreamFirstPaymentDateUnadjusted',\n        abbrName: 'FirstDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted first payment date.',\n    },\n    {\n        id: 40587,\n        name: 'UnderlyingPaymentStreamLastRegularPaymentDateUnadjusted',\n        abbrName: 'LastReglrDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted last regular payment date.',\n    },\n    {\n        id: 40588,\n        name: 'UnderlyingPaymentStreamPaymentDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when payment dates are relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40589,\n        name: 'UnderlyingPaymentStreamPaymentDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative payment date offset.',\n    },\n    {\n        id: 40590,\n        name: 'UnderlyingPaymentStreamPaymentDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative payment date offset.',\n    },\n    {\n        id: 40591,\n        name: 'UnderlyingPaymentStreamPaymentDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative payment date offset.',\n    },\n    {\n        id: 40592,\n        name: 'UnderlyingPaymentStreamResetDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the reset dates are relative to an anchor date.\\n\\nIf the reset frequency is specified as daily this element must not be included.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40593,\n        name: 'UnderlyingPaymentStreamResetDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's reset date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 40594,\n        name: 'UnderlyingPaymentStreamResetDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s reset date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40595,\n        name: 'UnderlyingPaymentStreamResetFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for frequency of resets.',\n    },\n    {\n        id: 40596,\n        name: 'UnderlyingPaymentStreamResetFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with frequency of resets.',\n    },\n    {\n        id: 40597,\n        name: 'UnderlyingPaymentStreamResetWeeklyRollConvention',\n        abbrName: 'WklyRoll',\n        type: 'PaymentStreamResetWeeklyRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used to specify the day of the week in which the reset occurs for payments that reset on a weekly basis.',\n    },\n    {\n        id: 40598,\n        name: 'UnderlyingPaymentStreamInitialFixingDateRelativeTo',\n        abbrName: 'InitReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the initial fixing date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40599,\n        name: 'UnderlyingPaymentStreamInitialFixingDateBusinessDayConvention',\n        abbrName: 'InitBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's initial fixing date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 40600,\n        name: 'UnderlyingPaymentStreamInitialFixingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s initial fixing date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40601,\n        name: 'UnderlyingPaymentStreamInitialFixingDateOffsetPeriod',\n        abbrName: 'InitPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative initial fixing date offset.',\n    },\n    {\n        id: 40602,\n        name: 'UnderlyingPaymentStreamInitialFixingDateOffsetUnit',\n        abbrName: 'InitUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative initial fixing date offset.',\n    },\n    {\n        id: 40603,\n        name: 'UnderlyingPaymentStreamInitialFixingDateOffsetDayType',\n        abbrName: 'InitDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative initial fixing date offset.',\n    },\n    {\n        id: 40604,\n        name: 'UnderlyingPaymentStreamInitialFixingDateAdjusted',\n        abbrName: 'InitDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted initial fixing date.',\n    },\n    {\n        id: 40605,\n        name: 'UnderlyingPaymentStreamFixingDateRelativeTo',\n        abbrName: 'FixngReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the fixing date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40606,\n        name: 'UnderlyingPaymentStreamFixingDateBusinessDayConvention',\n        abbrName: 'FixngBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's fixing date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 40607,\n        name: 'UnderlyingPaymentStreamFixingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s fixing date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40608,\n        name: 'UnderlyingPaymentStreamFixingDateOffsetPeriod',\n        abbrName: 'FixngPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative fixing date offset.',\n    },\n    {\n        id: 40609,\n        name: 'UnderlyingPaymentStreamFixingDateOffsetUnit',\n        abbrName: 'FixngUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative fixing date offset.',\n    },\n    {\n        id: 40610,\n        name: 'UnderlyingPaymentStreamFixingDateOffsetDayType',\n        abbrName: 'FixngDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative fixing date offset.',\n    },\n    {\n        id: 40611,\n        name: 'UnderlyingPaymentStreamFixingDateAdjusted',\n        abbrName: 'FixngDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted fixing date.',\n    },\n    {\n        id: 40612,\n        name: 'UnderlyingPaymentStreamRateCutoffDateOffsetPeriod',\n        abbrName: 'CutoffPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative rate cut-off date offset.',\n    },\n    {\n        id: 40613,\n        name: 'UnderlyingPaymentStreamRateCutoffDateOffsetUnit',\n        abbrName: 'CutoffUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative rate cut-off date offset.',\n    },\n    {\n        id: 40614,\n        name: 'UnderlyingPaymentStreamRateCutoffDateOffsetDayType',\n        abbrName: 'CutoffDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative rate cut-off date offset.',\n    },\n    {\n        id: 40615,\n        name: 'UnderlyingPaymentStreamRate',\n        abbrName: 'Rt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The rate applicable to the fixed rate payment stream.',\n    },\n    {\n        id: 40616,\n        name: 'UnderlyingPaymentStreamFixedAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The underlying payment stream's fixed payment amount. In CDS an alternative to UnderlyingPaymentStreamRate(40615).\",\n    },\n    {\n        id: 40617,\n        name: 'UnderlyingPaymentStreamRateOrAmountCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency in which UnderlyingPaymentStreamFixedAmount(40616) or UnderlyingPaymentStreamRate(40615) is denominated. Users ISO 4271 currency codes.',\n    },\n    {\n        id: 40618,\n        name: 'UnderlyingPaymentStreamFutureValueNotional',\n        abbrName: 'FutValNotl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The future value notional is normally only required for certain non-deliverable interest rate swaps (e.g. Brazillian Real (BRL) vs. CETIP Interbank Deposit Rate (CDI)). The value is calculated as follows: Future Value Notional = Notional Amount * (1 + Fixed Rate) ^ (Fixed Rate Day Count Fraction). The currency is the same as the stream notional.',\n    },\n    {\n        id: 40619,\n        name: 'UnderlyingPaymentStreamFutureValueDateAdjusted',\n        abbrName: 'FutValDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted value date of the future value amount.',\n    },\n    {\n        id: 40620,\n        name: 'UnderlyingPaymentStreamRateIndex',\n        abbrName: 'Ndx',\n        type: 'String',\n        discriminatorId: '40621',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"The payment stream's floating rate index.\",\n    },\n    {\n        id: 40621,\n        name: 'UnderlyingPaymentStreamRateIndexSource',\n        abbrName: 'NdxSrc',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The source of the payment stream floating rate index.',\n    },\n    {\n        id: 40622,\n        name: 'UnderlyingPaymentStreamRateIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the underlying instrument\u2019s floating rate index.',\n    },\n    {\n        id: 40623,\n        name: 'UnderlyingPaymentStreamRateIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the underlying instrument\u2019s floating rate index.',\n    },\n    {\n        id: 40624,\n        name: 'UnderlyingPaymentStreamRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A rate multiplier to apply to the floating rate. A multiplier schedule is expressed as explicit multipliers and dates. In the case of a schedule, the step dates may be subject to adjustment in accordance with any adjustments specified in the calculationPeriodDatesAdjustments. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 40625,\n        name: 'UnderlyingPaymentStreamRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Spread from floating rate index.',\n    },\n    {\n        id: 40626,\n        name: 'UnderlyingPaymentStreamRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies a short or long spread value.',\n    },\n    {\n        id: 40627,\n        name: 'UnderlyingPaymentStreamRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the yield calculation treatment for the index.',\n    },\n    {\n        id: 40628,\n        name: 'UnderlyingPaymentStreamCapRate',\n        abbrName: 'CapRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The cap rate, if any, which applies to the floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40629,\n        name: 'UnderlyingPaymentStreamCapRateBuySide',\n        abbrName: 'CapRtBuy',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the buyer of the cap rate option through its trade side.',\n    },\n    {\n        id: 40630,\n        name: 'UnderlyingPaymentStreamCapRateSellSide',\n        abbrName: 'CapRtSell',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the seller of the cap rate option through its trade side.',\n    },\n    {\n        id: 40631,\n        name: 'UnderlyingPaymentStreamFloorRate',\n        abbrName: 'FlrRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40632,\n        name: 'UnderlyingPaymentStreamFloorRateBuySide',\n        abbrName: 'FlrRtBuy',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the buyer of the floor rate option through its trade side.',\n    },\n    {\n        id: 40633,\n        name: 'UnderlyingPaymentStreamFloorRateSellSide',\n        abbrName: 'FlrRtSell',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the seller of the floor rate option through its trade side.',\n    },\n    {\n        id: 40634,\n        name: 'UnderlyingPaymentStreamInitialRate',\n        abbrName: 'InitRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. An initial rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40635,\n        name: 'UnderlyingPaymentStreamFinalRateRoundingDirection',\n        abbrName: 'FnlRtRndDirctn',\n        type: 'RoundingDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the rounding direction.',\n    },\n    {\n        id: 40636,\n        name: 'UnderlyingPaymentStreamFinalRatePrecision',\n        abbrName: 'FnlRtPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7.',\n    },\n    {\n        id: 40637,\n        name: 'UnderlyingPaymentStreamAveragingMethod',\n        abbrName: 'AvgngMeth',\n        type: 'PaymentStreamAveragingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'When rate averaging is applicable, used to specify whether a weighted or unweighted average calculation method is to be used.',\n    },\n    {\n        id: 40638,\n        name: 'UnderlyingPaymentStreamNegativeRateTreatment',\n        abbrName: 'NegtvRtTrtmt',\n        type: 'PaymentStreamNegativeRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate).',\n    },\n    {\n        id: 40639,\n        name: 'UnderlyingPaymentStreamInflationLagPeriod',\n        abbrName: 'LagPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Time unit multiplier for the inflation lag period. The lag period is the offsetting period from the payment date which determines the reference period for which the inflation index is observed.',\n    },\n    {\n        id: 40640,\n        name: 'UnderlyingPaymentStreamInflationLagUnit',\n        abbrName: 'LagUnit',\n        type: 'PaymentStreamInflationLagUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the inflation lag period.',\n    },\n    {\n        id: 40641,\n        name: 'UnderlyingPaymentStreamInflationLagDayType',\n        abbrName: 'LagDayTyp',\n        type: 'PaymentStreamInflationLagDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The inflation lag period day type.',\n    },\n    {\n        id: 40642,\n        name: 'UnderlyingPaymentStreamInflationInterpolationMethod',\n        abbrName: 'IntrpltnMeth',\n        type: 'PaymentStreamInflationInterpolationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The method used when calculating the Inflation Index Level from multiple points - the most common is Linear.',\n    },\n    {\n        id: 40643,\n        name: 'UnderlyingPaymentStreamInflationIndexSource',\n        abbrName: 'InfltnNdxSrc',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The inflation index reference source.',\n    },\n    {\n        id: 40644,\n        name: 'UnderlyingPaymentStreamInflationPublicationSource',\n        abbrName: 'PublctnSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The current main publication source such as relevant web site or a government body.',\n    },\n    {\n        id: 40645,\n        name: 'UnderlyingPaymentStreamInflationInitialIndexLevel',\n        abbrName: 'InitLvl',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Initial known index level for the first calculation period.',\n    },\n    {\n        id: 40646,\n        name: 'UnderlyingPaymentStreamInflationFallbackBondApplicable',\n        abbrName: 'FallbckBond',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Indicates whether a fallback bond as defined in the 2006 ISDA Inflation Derivatives Definitions, sections 1.3 and 1.8, is applicable or not. If not specified, the default value is \"Y\" (True/Yes).',\n    },\n    {\n        id: 40647,\n        name: 'UnderlyingPaymentStreamFRADiscounting',\n        abbrName: 'FRADisc',\n        type: 'PaymentStreamFRADiscountingCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'The method of Forward Rate Agreement (FRA) discounting, if any, that will apply.',\n    },\n    {\n        id: 40648,\n        name: 'UnderlyingPaymentStreamNonDeliverableRefCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The non-deliverable settlement reference currency. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40649,\n        name: 'UnderlyingPaymentStreamNonDeliverableFixingDatesBizDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            \"The business day convention used to adjust the payment stream's fixing date for the non-deliverable terms. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 40650,\n        name: 'UnderlyingPaymentStreamNonDeliverableFixingDatesBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s fixing date for the non-deliverable terms, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40651,\n        name: 'UnderlyingPaymentStreamNonDeliverableFixingDatesRelativeTo',\n        abbrName: 'FixngReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the non-deliverable fixing dates are relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40652,\n        name: 'UnderlyingPaymentStreamNonDeliverableFixingDatesOffsetPeriod',\n        abbrName: 'FixngPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative non-deliverable fixing date offset.',\n    },\n    {\n        id: 40653,\n        name: 'UnderlyingPaymentStreamNonDeliverableFixingDatesOffsetUnit',\n        abbrName: 'FixngUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative non-deliverable fixing date offset.',\n    },\n    {\n        id: 40654,\n        name: 'UnderlyingPaymentStreamNonDeliverableFixingDatesOffsetDayType',\n        abbrName: 'FixngDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative non-deliverable fixing date offset.',\n    },\n    {\n        id: 40655,\n        name: 'SettlRateFallbackReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the reference \"page\" from the rate source.\\n\\nWhen SettlRateFallbackRateSource(40373) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option',\n    },\n    {\n        id: 40656,\n        name: 'NoUnderlyingNonDeliverableFixingDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of Fixing dates in the repeating group',\n    },\n    {\n        id: 40657,\n        name: 'UnderlyingNonDeliverableFixingDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The non-deliverable fixing date unadjusted or adjusted depending on UnderlyingNonDeliverableFixingDateType(40658).',\n    },\n    {\n        id: 40658,\n        name: 'UnderlyingNonDeliverableFixingDateType',\n        abbrName: 'Typ',\n        type: 'NonDeliverableFixingDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the type of date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 40659,\n        name: 'NoUnderlyingSettlRateFallbacks',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of settlement rate fallbacks in the repeating group',\n    },\n    {\n        id: 40660,\n        name: 'UnderlyingSettlRatePostponementMaximumDays',\n        abbrName: 'MaxDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The maximum number of days to wait for a quote from the disrupted settlement rate option before proceding to this method.',\n    },\n    {\n        id: 40661,\n        name: 'UnderlyingPaymentStreamNonDeliverableSettlRateSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source of rate information.',\n    },\n    {\n        id: 40662,\n        name: 'UnderlyingSettlRatePostponementSurvey',\n        abbrName: 'Survey',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates whether to request a settlement rate quote from the market.',\n    },\n    {\n        id: 40663,\n        name: 'UnderlyingSettlRatePostponementCalculationAgent',\n        abbrName: 'CalcAgent',\n        type: 'ProvisionCalculationAgentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Used to identify the settlement rate postponement calculation agent.',\n    },\n    {\n        id: 40664,\n        name: 'NoUnderlyingPaymentSchedules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of swap schedules in the repeating group',\n    },\n    {\n        id: 40665,\n        name: 'UnderlyingPaymentScheduleType',\n        abbrName: 'Typ',\n        type: 'PaymentScheduleTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Type of schedule.',\n    },\n    {\n        id: 40666,\n        name: 'UnderlyingPaymentScheduleStubType',\n        abbrName: 'StubTyp',\n        type: 'PaymentStubTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates to which stub this schedule applies.',\n    },\n    {\n        id: 40667,\n        name: 'UnderlyingPaymentScheduleStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The unadjusted date on which the value is adjusted, or calculated if a future value notional for certain non-deliverable interest rate swaps (e.g. Brazillian Real (BRL) vs. CETIP Interbank Deposit Rate (CDI)), or the start date of a cashflow payment.',\n    },\n    {\n        id: 40668,\n        name: 'UnderlyingPaymentScheduleEndDateUnadjusted',\n        abbrName: 'EndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted end date of a cashflow payment.',\n    },\n    {\n        id: 40669,\n        name: 'UnderlyingPaymentSchedulePaySide',\n        abbrName: 'PaySide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party paying the step schedule.',\n    },\n    {\n        id: 40670,\n        name: 'UnderlyingPaymentScheduleReceiveSide',\n        abbrName: 'RcvSide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party receiving the step schedule.',\n    },\n    {\n        id: 40671,\n        name: 'UnderlyingPaymentScheduleNotional',\n        abbrName: 'Notl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The notional value for this step, or amount of a cashflow payment.',\n    },\n    {\n        id: 40672,\n        name: 'UnderlyingPaymentScheduleCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The currency for this step. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40673,\n        name: 'UnderlyingPaymentScheduleRate',\n        abbrName: 'Rt',\n        type: 'Percentage',\n        discriminatorId: '40705',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The rate value for this step.',\n    },\n    {\n        id: 40674,\n        name: 'UnderlyingPaymentScheduleRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 40675,\n        name: 'UnderlyingPaymentScheduleRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The spread value for this step.',\n    },\n    {\n        id: 40676,\n        name: 'UnderlyingPaymentScheduleRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 40677,\n        name: 'UnderlyingPaymentScheduleRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the yield calculation treatment for the step schedule.',\n    },\n    {\n        id: 40678,\n        name: 'UnderlyingPaymentScheduleFixedAmount',\n        abbrName: 'FixedAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The explicit payment amount for this step.',\n    },\n    {\n        id: 40679,\n        name: 'UnderlyingPaymentScheduleFixedCurrency',\n        abbrName: 'FixedCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The currency of the fixed amount. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40680,\n        name: 'UnderlyingPaymentScheduleStepFrequencyPeriod',\n        abbrName: 'StepPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the step frequency.',\n    },\n    {\n        id: 40681,\n        name: 'UnderlyingPaymentScheduleStepFrequencyUnit',\n        abbrName: 'StepUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the step frequency.',\n    },\n    {\n        id: 40682,\n        name: 'UnderlyingPaymentScheduleStepOffsetValue',\n        abbrName: 'StepVal',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The explicit amount that the notional changes on each step date. This can be a positive or negative amount.',\n    },\n    {\n        id: 40683,\n        name: 'UnderlyingPaymentScheduleStepRate',\n        abbrName: 'StepRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The percentage by which the notional changes on each step date. The percentage is either a percentage applied to the initial notional amount or the previous outstanding notional, depending on the value specified in UnderlyingPaymentScheduleStepRelativeTo(40685). The percentage can be either positive or negative.',\n    },\n    {\n        id: 40684,\n        name: 'UnderlyingPaymentScheduleStepOffsetRate',\n        abbrName: 'StepOfstRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The explicit amount that the rate changes on each step date. This can be a positive or negative value.',\n    },\n    {\n        id: 40685,\n        name: 'UnderlyingPaymentScheduleStepRelativeTo',\n        abbrName: 'StepReltv',\n        type: 'PaymentScheduleStepRelativeToCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies whether the UnderlyingPaymentScheduleStepRate(40683) or UnderlyingPaymentScheduleStepOffsetValue(40682) should be applied to the initial notional or the previous notional in order to calculate the notional step change amount.',\n    },\n    {\n        id: 40686,\n        name: 'UnderlyingPaymentScheduleFixingDateUnadjusted',\n        abbrName: 'FixngDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted fixing date.',\n    },\n    {\n        id: 40687,\n        name: 'UnderlyingPaymentScheduleWeight',\n        abbrName: 'Wt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Floating rate observation weight for cashflow payment.',\n    },\n    {\n        id: 40688,\n        name: 'UnderlyingPaymentScheduleFixingDateRelativeTo',\n        abbrName: 'FixngReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the fixing date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40689,\n        name: 'UnderlyingPaymentScheduleFixingDateBusinessDayCnvtn',\n        abbrName: 'FixngBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment schedule's fixing date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 40690,\n        name: 'UnderlyingPaymentScheduleFixingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment schedule\\'s fixing date, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40691,\n        name: 'UnderlyingPaymentScheduleFixingDateOffsetPeriod',\n        abbrName: 'FixngPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative fixing date offset.',\n    },\n    {\n        id: 40692,\n        name: 'UnderlyingPaymentScheduleFixingDateOffsetUnit',\n        abbrName: 'FixngUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative fixing date offset.',\n    },\n    {\n        id: 40693,\n        name: 'UnderlyingPaymentScheduleFixingDateOffsetDayType',\n        abbrName: 'FixngDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative fixing date offset.',\n    },\n    {\n        id: 40694,\n        name: 'UnderlyingPaymentScheduleFixingDateAdjusted',\n        abbrName: 'FixngDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted fixing date.',\n    },\n    {\n        id: 40695,\n        name: 'UnderlyingPaymentScheduleFixingTime',\n        abbrName: 'FixngTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The fixing time.',\n    },\n    {\n        id: 40696,\n        name: 'UnderlyingPaymentScheduleFixingTimeBusinessCenter',\n        abbrName: 'FixngTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Business center for determining fixing time. See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40697,\n        name: 'UnderlyingPaymentScheduleInterimExchangePaymentDateRelativeTo',\n        abbrName: 'IntrmExchDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the interim exchange payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40698,\n        name: 'UnderlyingPaymentScheduleInterimExchangeDatesBizDayConvention',\n        abbrName: 'IntrmExchDtBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            \"The business day convention used to adjust the payment schedule's interim exchange date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 40699,\n        name: 'UnderlyingPaymentScheduleInterimExchangeDatesBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment schedule\\'s interim exchange date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40700,\n        name: 'UnderlyingPaymentScheduleInterimExchangeDatesOffsetPeriod',\n        abbrName: 'IntrmExchDtPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative interim exchange date offset.',\n    },\n    {\n        id: 40701,\n        name: 'UnderlyingPaymentScheduleInterimExchangeDatesOffsetUnit',\n        abbrName: 'IntrmExchDtUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative interim exchange date offset.',\n    },\n    {\n        id: 40702,\n        name: 'UnderlyingPaymentScheduleInterimExchangeDatesOffsetDayType',\n        abbrName: 'IntrmExchDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative interim exchange date offset.',\n    },\n    {\n        id: 40703,\n        name: 'UnderlyingPaymentScheduleInterimExchangeDateAdjusted',\n        abbrName: 'IntrmExchDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted interim exchange date.',\n    },\n    {\n        id: 40704,\n        name: 'NoUnderlyingPaymentScheduleRateSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of rate sources in the repeating group',\n    },\n    {\n        id: 40705,\n        name: 'UnderlyingPaymentScheduleRateSource',\n        abbrName: 'Src',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source of rate information.',\n    },\n    {\n        id: 40706,\n        name: 'UnderlyingPaymentScheduleRateSourceType',\n        abbrName: 'Typ',\n        type: 'RateSourceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Rate source type.',\n    },\n    {\n        id: 40707,\n        name: 'UnderlyingPaymentScheduleReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the reference \u201Cpage\u201D from the rate source.\\n\\nFor FX, the reference page to the spot rate to be used for the reference FX spot rate.\\n\\nWhen RateSource(1446) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option',\n    },\n    {\n        id: 40708,\n        name: 'NoUnderlyingPaymentStubs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of stubs in the repeating group',\n    },\n    {\n        id: 40709,\n        name: 'UnderlyingPaymentStubType',\n        abbrName: 'Typ',\n        type: 'PaymentStubTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Stub type.',\n    },\n    {\n        id: 40710,\n        name: 'UnderlyingPaymentStubLength',\n        abbrName: 'Lngth',\n        type: 'PaymentStubLengthCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Optional indication whether stub is shorter or longer than the regular swap period.',\n    },\n    {\n        id: 40711,\n        name: 'UnderlyingPaymentStubRate',\n        abbrName: 'Rt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The agreed upon fixed rate for this stub.',\n    },\n    {\n        id: 40712,\n        name: 'UnderlyingPaymentStubFixedAmount',\n        abbrName: 'FixedAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'A fixed payment amount for the stub.',\n    },\n    {\n        id: 40713,\n        name: 'UnderlyingPaymentStubFixedCurrency',\n        abbrName: 'FixedCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The currency of the fixed payment amount. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40714,\n        name: 'UnderlyingPaymentStubIndex',\n        abbrName: 'Ndx',\n        type: 'String',\n        discriminatorId: '40715',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The stub floating rate index.',\n    },\n    {\n        id: 40715,\n        name: 'UnderlyingPaymentStubIndexSource',\n        abbrName: 'NdxSrc',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The source for the underlying payment stub floating rate index.',\n    },\n    {\n        id: 40716,\n        name: 'UnderlyingPaymentStubIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the underlying payment stub floating rate index.',\n    },\n    {\n        id: 40717,\n        name: 'UnderlyingPaymentStubIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the underlying payment stub floating rate index.',\n    },\n    {\n        id: 40718,\n        name: 'UnderlyingPaymentStubIndexRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 40719,\n        name: 'UnderlyingPaymentStubIndexRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Spread from floating rate index.',\n    },\n    {\n        id: 40720,\n        name: 'UnderlyingPaymentStubIndexRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 40721,\n        name: 'UnderlyingPaymentStubIndexRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the yield calculation treatment for the stub index.',\n    },\n    {\n        id: 40722,\n        name: 'UnderlyingPaymentStubIndexCapRate',\n        abbrName: 'CapRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The cap rate, if any, which applies to the floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40723,\n        name: 'UnderlyingPaymentStubIndexCapRateBuySide',\n        abbrName: 'CapRtBuy',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the buyer of the cap rate option through its trade side.',\n    },\n    {\n        id: 40724,\n        name: 'UnderlyingPaymentStubIndexCapRateSellSide',\n        abbrName: 'CapRtSell',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the seller of the cap rate option through its trade side.',\n    },\n    {\n        id: 40725,\n        name: 'UnderlyingPaymentStubIndexFloorRate',\n        abbrName: 'FlrRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40726,\n        name: 'UnderlyingPaymentStubIndexFloorRateBuySide',\n        abbrName: 'FlrRtBuy',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the buyer of the floor rate option through its trade side.',\n    },\n    {\n        id: 40727,\n        name: 'UnderlyingPaymentStubIndexFloorRateSellSide',\n        abbrName: 'FlrRtSell',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the seller of the floor rate option through its trade side.',\n    },\n    {\n        id: 40728,\n        name: 'UnderlyingPaymentStubIndex2',\n        abbrName: 'Ndx2',\n        type: 'String',\n        discriminatorId: '40729',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The second stub floating rate index.',\n    },\n    {\n        id: 40729,\n        name: 'UnderlyingPaymentStubIndex2Source',\n        abbrName: 'Ndx2Src',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The source of the second stub floating rate index.',\n    },\n    {\n        id: 40730,\n        name: 'UnderlyingPaymentStubIndex2CurvePeriod',\n        abbrName: 'Ndx2Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Secondary time unit multiplier for the stub floating rate index curve.',\n    },\n    {\n        id: 40731,\n        name: 'UnderlyingPaymentStubIndex2CurveUnit',\n        abbrName: 'Ndx2Unit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Secondary time unit associated with the stub floating rate index curve.',\n    },\n    {\n        id: 40732,\n        name: 'UnderlyingPaymentStubIndex2RateMultiplier',\n        abbrName: 'RtMult2',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A rate multiplier to apply to the second floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 40733,\n        name: 'UnderlyingPaymentStubIndex2RateSpread',\n        abbrName: 'Spread2',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Spread from the second floating rate index.',\n    },\n    {\n        id: 40734,\n        name: 'UnderlyingPaymentStubIndex2RateSpreadPositionType',\n        abbrName: 'Spread2PosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 40735,\n        name: 'UnderlyingPaymentStubIndex2RateTreatment',\n        abbrName: 'RtTrtmt2',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the yield calculation treatment for the second stub index.',\n    },\n    {\n        id: 40736,\n        name: 'UnderlyingPaymentStubIndex2CapRate',\n        abbrName: 'CapRt2',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The cap rate, if any, which applies to the second floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40737,\n        name: 'UnderlyingPaymentStubIndex2FloorRate',\n        abbrName: 'FlrRt2',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The floor rate, if any, which applies to the second floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40738,\n        name: 'PaymentStreamType',\n        abbrName: 'Typ',\n        type: 'PaymentStreamTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the type of payment stream associated with the swap.',\n    },\n    {\n        id: 40739,\n        name: 'PaymentStreamMarketRate',\n        abbrName: 'MktRt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used only for credit index trade. This contains the credit spread (\"fair value\") at which the trade was executed. The market rate varies over the life of the index depending on market conditions. This is the price of the index as quoted by trading desks.',\n    },\n    {\n        id: 40740,\n        name: 'PaymentStreamDelayIndicator',\n        abbrName: 'DelayInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Applicable to credit default swaps on mortgage backed securities to specify whether payment delays are applicable to the fixed amount.\\n\\nResidential mortgage backed securities typically have a payment delay of 5 days between the coupon date of the reference obligation and the payment date of the synthetic swap.\\n\\nCommercial mortgage backed securities do not typically have a payment delay, with both payment dates (the coupon date of the reference obligation and the payment date of the synthetic swap) being on the 25th of each month.',\n    },\n    {\n        id: 40741,\n        name: 'PaymentStreamSettlCurrency',\n        abbrName: 'SettlCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency that the stream settles in (to support swaps that settle in a currency different from the notional currency). Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40742,\n        name: 'PaymentStreamDayCount',\n        abbrName: 'DayCnt',\n        type: 'CouponDayCountCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The day count convention used in the payment stream calculations.',\n    },\n    {\n        id: 40743,\n        name: 'PaymentStreamAccrualDays',\n        abbrName: 'AcrlDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The number of days from the adjusted calculation period start date to the adjusted value date, calculated in accordance with the applicable day count fraction.',\n    },\n    {\n        id: 40744,\n        name: 'PaymentStreamDiscountType',\n        abbrName: 'DiscTyp',\n        type: 'PaymentStreamDiscountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The method of calculating discounted payment amounts',\n    },\n    {\n        id: 40745,\n        name: 'PaymentStreamDiscountRate',\n        abbrName: 'Disc',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Discount rate. The rate is expressed in decimal, e.g. 5% is expressed as 0.05.',\n    },\n    {\n        id: 40746,\n        name: 'PaymentStreamDiscountRateDayCount',\n        abbrName: 'DiscDayCnt',\n        type: 'CouponDayCountCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The day count convention applied to the PaymentStreamDiscountRate(40745).',\n    },\n    {\n        id: 40747,\n        name: 'PaymentStreamCompoundingMethod',\n        abbrName: 'CmpndgMeth',\n        type: 'PaymentStreamCompoundingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Compounding method.',\n    },\n    {\n        id: 40748,\n        name: 'PaymentStreamInitialPrincipalExchangeIndicator',\n        abbrName: 'InitPrncplExchInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates whether there is an initial exchange of principal on the effective date.',\n    },\n    {\n        id: 40749,\n        name: 'PaymentStreamInterimPrincipalExchangeIndicator',\n        abbrName: 'IntrmPrncplExchInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Indicates whether there are intermediate or interim exchanges of principal during the term of the swap.',\n    },\n    {\n        id: 40750,\n        name: 'PaymentStreamFinalPrincipalExchangeIndicator',\n        abbrName: 'FnlPrncplExchInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates whether there is a final exchange of principal on the termination date.',\n    },\n    {\n        id: 40751,\n        name: 'PaymentStreamPaymentDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's payment date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40752,\n        name: 'PaymentStreamPaymentDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s payment date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40753,\n        name: 'PaymentStreamPaymentFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the frequency of payments.',\n    },\n    {\n        id: 40754,\n        name: 'PaymentStreamPaymentFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'PaymentStreamPaymentFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the frequency of payments.',\n    },\n    {\n        id: 40755,\n        name: 'PaymentStreamPaymentRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The convention for determining the sequence of end dates. It is used in conjunction with a specified frequency. Used only to override the roll convention specified in the DateAdjustment component within the Instrument component.',\n    },\n    {\n        id: 40756,\n        name: 'PaymentStreamFirstPaymentDateUnadjusted',\n        abbrName: 'FirstDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted first payment date.',\n    },\n    {\n        id: 40757,\n        name: 'PaymentStreamLastRegularPaymentDateUnadjusted',\n        abbrName: 'LastReglrDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted last regular payment date.',\n    },\n    {\n        id: 40758,\n        name: 'PaymentStreamPaymentDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when payment dates are relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40759,\n        name: 'PaymentStreamPaymentDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative payment date offset.',\n    },\n    {\n        id: 40760,\n        name: 'PaymentStreamPaymentDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative initial fixing date offset.',\n    },\n    {\n        id: 40761,\n        name: 'PaymentStreamResetDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the reset dates are relative to an anchor date.\\n\\nIf the reset frequency is specified as daily this element must not be included.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40762,\n        name: 'PaymentStreamResetDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's reset date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40763,\n        name: 'PaymentStreamResetDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s reset date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40764,\n        name: 'PaymentStreamResetFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the frequency of resets.',\n    },\n    {\n        id: 40765,\n        name: 'PaymentStreamResetFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the frequency of resets.',\n    },\n    {\n        id: 40766,\n        name: 'PaymentStreamResetWeeklyRollConvention',\n        abbrName: 'WklyRoll',\n        type: 'PaymentStreamResetWeeklyRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Used to specify the day of the week in which the reset occurs for payments that reset on a weekly basis.',\n    },\n    {\n        id: 40767,\n        name: 'PaymentStreamInitialFixingDateRelativeTo',\n        abbrName: 'InitReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the initial fixing date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40768,\n        name: 'PaymentStreamInitialFixingDateBusinessDayConvention',\n        abbrName: 'InitBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's initial fixing date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40769,\n        name: 'PaymentStreamInitialFixingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s initial fixing date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40770,\n        name: 'PaymentStreamInitialFixingDateOffsetPeriod',\n        abbrName: 'InitPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative initial fixing date offset.',\n    },\n    {\n        id: 40771,\n        name: 'PaymentStreamInitialFixingDateOffsetUnit',\n        abbrName: 'InitUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative initial fixing date offset.',\n    },\n    {\n        id: 40772,\n        name: 'PaymentStreamInitialFixingDateOffsetDayType',\n        abbrName: 'InitDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative initial fixing date offset.',\n    },\n    {\n        id: 40773,\n        name: 'PaymentStreamInitialFixingDateAdjusted',\n        abbrName: 'InitDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted initial fixing date.',\n    },\n    {\n        id: 40774,\n        name: 'PaymentStreamFixingDateRelativeTo',\n        abbrName: 'FixngReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the fixing date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40775,\n        name: 'PaymentStreamFixingDateBusinessDayConvention',\n        abbrName: 'FixngBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's fixing date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40776,\n        name: 'PaymentStreamFixingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s fixing date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40777,\n        name: 'PaymentStreamFixingDateOffsetPeriod',\n        abbrName: 'FixngPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative fixing date offset.',\n    },\n    {\n        id: 40778,\n        name: 'PaymentStreamFixingDateOffsetUnit',\n        abbrName: 'FixngUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative fixing date offset.',\n    },\n    {\n        id: 40779,\n        name: 'PaymentStreamFixingDateOffsetDayType',\n        abbrName: 'FixngDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative fixing date offset.',\n    },\n    {\n        id: 40780,\n        name: 'PaymentStreamFixingDateAdjusted',\n        abbrName: 'FixngDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted fixing date.',\n    },\n    {\n        id: 40781,\n        name: 'PaymentStreamRateCutoffDateOffsetPeriod',\n        abbrName: 'CutoffPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative rate cut-off date offset.',\n    },\n    {\n        id: 40782,\n        name: 'PaymentStreamRateCutoffDateOffsetUnit',\n        abbrName: 'CutoffUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative rate cut-off date offset.',\n    },\n    {\n        id: 40783,\n        name: 'PaymentStreamRateCutoffDateOffsetDayType',\n        abbrName: 'CutoffDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative rate cut-off date offset.',\n    },\n    {\n        id: 40784,\n        name: 'PaymentStreamRate',\n        abbrName: 'Rt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The rate applicable to the fixed rate payment stream.',\n    },\n    {\n        id: 40785,\n        name: 'PaymentStreamFixedAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: \"The payment stream's fixed payment amount. In CDS an alternative to PaymentStreamRate(40784).\",\n    },\n    {\n        id: 40786,\n        name: 'PaymentStreamRateOrAmountCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the currency in which PaymentStreamFixedAmount(40785) or PaymentStreamRate(40784) is denominated. Uses ISO 4271 currency codes.',\n    },\n    {\n        id: 40787,\n        name: 'PaymentStreamFutureValueNotional',\n        abbrName: 'FutValNotl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The future value notional is normally only required for certain non-deliverable interest rate swaps (e.g. Brazillian Real (BRL) vs. CETIP Interbank Deposit Rate (CDI)). The value is calculated as follows: Future Value Notional = Notional Amount * (1 + Fixed Rate) ^ (Fixed Rate Day Count Fraction). The currency is the same as the stream notional.',\n    },\n    {\n        id: 40788,\n        name: 'PaymentStreamFutureValueDateAdjusted',\n        abbrName: 'FutValDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted value date of the future value amount.',\n    },\n    {\n        id: 40789,\n        name: 'PaymentStreamRateIndex',\n        abbrName: 'Ndx',\n        type: 'String',\n        discriminatorId: '40790',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The payment stream floating rate index.',\n    },\n    {\n        id: 40790,\n        name: 'PaymentStreamRateIndexSource',\n        abbrName: 'NdxSrc',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The source of the payment stream floating rate index.',\n    },\n    {\n        id: 40791,\n        name: 'PaymentStreamRateIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the floating rate index.',\n    },\n    {\n        id: 40792,\n        name: 'PaymentStreamRateIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the floating rate index.',\n    },\n    {\n        id: 40793,\n        name: 'PaymentStreamRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A rate multiplier to apply to the floating rate. A multiplier schedule is expressed as explicit multipliers and dates. In the case of a schedule, the step dates may be subject to adjustment in accordance with any adjustments specified in the calculationPeriodDatesAdjustments. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 40794,\n        name: 'PaymentStreamRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Spread from floating rate index.',\n    },\n    {\n        id: 40795,\n        name: 'PaymentStreamRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 40796,\n        name: 'PaymentStreamRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the yield calculation treatment for the index.',\n    },\n    {\n        id: 40797,\n        name: 'PaymentStreamCapRate',\n        abbrName: 'CapRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The cap rate, if any, which applies to the floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40798,\n        name: 'PaymentStreamCapRateBuySide',\n        abbrName: 'CapRtBuy',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the buyer of the cap rate option through its trade side.',\n    },\n    {\n        id: 40799,\n        name: 'PaymentStreamCapRateSellSide',\n        abbrName: 'CapRtSell',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the seller of the cap rate option through its trade side.',\n    },\n    {\n        id: 40800,\n        name: 'PaymentStreamFloorRate',\n        abbrName: 'FlrRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40801,\n        name: 'PaymentStreamFloorRateBuySide',\n        abbrName: 'FlrRtBuy',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the buyer of the floor rate option through its trade side.',\n    },\n    {\n        id: 40802,\n        name: 'PaymentStreamFloorRateSellSide',\n        abbrName: 'FlrRtSell',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the seller of the floor rate option through its trade side.',\n    },\n    {\n        id: 40803,\n        name: 'PaymentStreamInitialRate',\n        abbrName: 'InitRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. An initial rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40804,\n        name: 'PaymentStreamFinalRateRoundingDirection',\n        abbrName: 'FnlRtRndDirctn',\n        type: 'RoundingDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the rounding direction.',\n    },\n    {\n        id: 40805,\n        name: 'PaymentStreamFinalRatePrecision',\n        abbrName: 'FnlRtPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7.',\n    },\n    {\n        id: 40806,\n        name: 'PaymentStreamAveragingMethod',\n        abbrName: 'AvgngMeth',\n        type: 'PaymentStreamAveragingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'When rate averaging is applicable, used to specify whether a weighted or unweighted average calculation method is to be used.',\n    },\n    {\n        id: 40807,\n        name: 'PaymentStreamNegativeRateTreatment',\n        abbrName: 'NegtvRtTrtmt',\n        type: 'PaymentStreamNegativeRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate).',\n    },\n    {\n        id: 40808,\n        name: 'PaymentStreamInflationLagPeriod',\n        abbrName: 'LagPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Time unit multiplier for the inflation lag period. The lag period is the offsetting period from the payment date which determines the reference period for which the inflation index is observed.',\n    },\n    {\n        id: 40809,\n        name: 'PaymentStreamInflationLagUnit',\n        abbrName: 'LagUnit',\n        type: 'PaymentStreamInflationLagUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the inflation lag period.',\n    },\n    {\n        id: 40810,\n        name: 'PaymentStreamInflationLagDayType',\n        abbrName: 'LagDayTyp',\n        type: 'PaymentStreamInflationLagDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The inflation lag period day type.',\n    },\n    {\n        id: 40811,\n        name: 'PaymentStreamInflationInterpolationMethod',\n        abbrName: 'IntrpltnMeth',\n        type: 'PaymentStreamInflationInterpolationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The method used when calculating the Inflation Index Level from multiple points - the most common is Linear.',\n    },\n    {\n        id: 40812,\n        name: 'PaymentStreamInflationIndexSource',\n        abbrName: 'InfltnNdxSrc',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The inflation index reference source.',\n    },\n    {\n        id: 40813,\n        name: 'PaymentStreamInflationPublicationSource',\n        abbrName: 'PublctnSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The current main publication source such as relevant web site or a government body.',\n    },\n    {\n        id: 40814,\n        name: 'PaymentStreamInflationInitialIndexLevel',\n        abbrName: 'InitLvl',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Initial known index level for the first calculation period.',\n    },\n    {\n        id: 40815,\n        name: 'PaymentStreamInflationFallbackBondApplicable',\n        abbrName: 'FallbckBond',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Indicates whether a fallback bond as defined in the 2006 ISDA Inflation Derivatives Definitions, sections 1.3 and 1.8, is applicable or not. If not specified, the default value is \"Y\" (True/Yes).',\n    },\n    {\n        id: 40816,\n        name: 'PaymentStreamFRADiscounting',\n        abbrName: 'FRADisc',\n        type: 'PaymentStreamFRADiscountingCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        description: 'The method of Forward Rate Agreement (FRA) discounting, if any, that will apply.',\n    },\n    {\n        id: 40817,\n        name: 'PaymentStreamNonDeliverableRefCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The non-deliverable settlement reference currency. Uses ISO 4217 currency codes.',\n    },\n];\n\nconst batch6: ISpecFields[] = [\n    {\n        id: 40818,\n        name: 'PaymentStreamNonDeliverableFixingDatesBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment stream's fixing date for the non-deliverable settlement terms. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component\",\n    },\n    {\n        id: 40819,\n        name: 'PaymentStreamNonDeliverableFixingDatesBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s fixing date for the non-deliverable terms, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40820,\n        name: 'PaymentStreamNonDeliverableFixingDatesRelativeTo',\n        abbrName: 'FixngReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the non-deliverable fixing dates are relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40821,\n        name: 'PaymentStreamNonDeliverableFixingDatesOffsetPeriod',\n        abbrName: 'FixngPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative non-deliverable fixing date offset.',\n    },\n    {\n        id: 40822,\n        name: 'PaymentStreamNonDeliverableFixingDatesOffsetUnit',\n        abbrName: 'FixngUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative non-deliverable fixing date offset.',\n    },\n    {\n        id: 40823,\n        name: 'PaymentStreamNonDeliverableFixingDatesOffsetDayType',\n        abbrName: 'FixngDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative non-deliverable fixing date offset.',\n    },\n    {\n        id: 40824,\n        name: 'UnderlyingPaymentStreamNonDeliverableSettlReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the reference \"page\" from the rate source.\\n\\nWhen UnderlyingPaymentStreamNonDeliverableSettlRateSource(40661) = 3(ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option',\n    },\n    {\n        id: 40825,\n        name: 'NoNonDeliverableFixingDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of Fixing dates in the repeating group',\n    },\n    {\n        id: 40826,\n        name: 'NonDeliverableFixingDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Non-deliverable fixing date unadjusted or adjusted depending on NonDeliverableFixingDateType(40827).',\n    },\n    {\n        id: 40827,\n        name: 'NonDeliverableFixingDateType',\n        abbrName: 'Typ',\n        type: 'NonDeliverableFixingDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the type of date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 40828,\n        name: 'NoPaymentSchedules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of swap schedules in the repeating group',\n    },\n    {\n        id: 40829,\n        name: 'PaymentScheduleType',\n        abbrName: 'Typ',\n        type: 'PaymentScheduleTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Type of schedule.',\n    },\n    {\n        id: 40830,\n        name: 'PaymentScheduleStubType',\n        abbrName: 'StubTyp',\n        type: 'PaymentStubTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates to which stub this schedule applies.',\n    },\n    {\n        id: 40831,\n        name: 'PaymentScheduleStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The date on which the value is adjusted, or calculated if a future value notional for certain non-deliverable interest rate swaps (e.g. Brazillian Real (BRL) vs. CETIP Interbank Deposit Rate (CDI)), or the start date of a cashflow payment.',\n    },\n    {\n        id: 40832,\n        name: 'PaymentScheduleEndDateUnadjusted',\n        abbrName: 'EndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted end date of a cash flow payment.',\n    },\n    {\n        id: 40833,\n        name: 'PaymentSchedulePaySide',\n        abbrName: 'PaySide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party paying the step schedule.',\n    },\n    {\n        id: 40834,\n        name: 'PaymentScheduleReceiveSide',\n        abbrName: 'RcvSide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The side of the party receiving the stepf schedule.',\n    },\n    {\n        id: 40835,\n        name: 'PaymentScheduleNotional',\n        abbrName: 'Notl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The notional value for this step, or amount of a cashflow payment.',\n    },\n    {\n        id: 40836,\n        name: 'PaymentScheduleCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The currency for this step. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40837,\n        name: 'PaymentScheduleRate',\n        abbrName: 'Rt',\n        type: 'Percentage',\n        discriminatorId: '40869',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The rate value for this step schedule.',\n    },\n    {\n        id: 40838,\n        name: 'PaymentScheduleRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 40839,\n        name: 'PaymentScheduleRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The spread value for this step schedule.',\n    },\n    {\n        id: 40840,\n        name: 'PaymentScheduleRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 40841,\n        name: 'PaymentScheduleRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the yield calculation treatment for the step schedule.',\n    },\n    {\n        id: 40842,\n        name: 'PaymentScheduleFixedAmount',\n        abbrName: 'FixedAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The explicit payment amount for this step schedule.',\n    },\n    {\n        id: 40843,\n        name: 'PaymentScheduleFixedCurrency',\n        abbrName: 'FixedCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The currency of the fixed amount. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40844,\n        name: 'PaymentScheduleStepFrequencyPeriod',\n        abbrName: 'StepPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the step frequency.',\n    },\n    {\n        id: 40845,\n        name: 'PaymentScheduleStepFrequencyUnit',\n        abbrName: 'StepUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the step frequency.',\n    },\n    {\n        id: 40846,\n        name: 'PaymentScheduleStepOffsetValue',\n        abbrName: 'StepVal',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The explicit amount that the notional changes on each step date. This can be a positive or negative amount.',\n    },\n    {\n        id: 40847,\n        name: 'PaymentScheduleStepRate',\n        abbrName: 'StepRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The percentage by which the notional changes on each step date. The percentage is either a percentage applied to the initial notional amount or the previous outstanding notional, depending on the value specified in PaymentScheduleStepRelativeTo(40849). The percentage can be either positive or negative.',\n    },\n    {\n        id: 40848,\n        name: 'PaymentScheduleStepOffsetRate',\n        abbrName: 'StepOfstRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The explicit amount that the rate changes on each step date. This can be a positive or negative value.',\n    },\n    {\n        id: 40849,\n        name: 'PaymentScheduleStepRelativeTo',\n        abbrName: 'StepReltv',\n        type: 'PaymentScheduleStepRelativeToCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies whether the PaymentScheduleStepRate(40847) or PaymentScheduleStepOffsetValue(40846) should be applied to the initial notional or the previous notional in order to calculate the notional step change amount.',\n    },\n    {\n        id: 40850,\n        name: 'PaymentScheduleFixingDateUnadjusted',\n        abbrName: 'FixngDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted fixing date.',\n    },\n    {\n        id: 40851,\n        name: 'PaymentScheduleWeight',\n        abbrName: 'Wt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Floating rate observation weight for cashflow payment.',\n    },\n    {\n        id: 40852,\n        name: 'PaymentScheduleFixingDateRelativeTo',\n        abbrName: 'FixngReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the fixing date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40853,\n        name: 'PaymentScheduleFixingDateBusinessDayConvention',\n        abbrName: 'FixngBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment schedule's fixing date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40854,\n        name: 'PaymentScheduleFixingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment schedule\\'s fixing date, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40855,\n        name: 'PaymentScheduleFixingDateOffsetPeriod',\n        abbrName: 'FixngPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative fixing date offset.',\n    },\n    {\n        id: 40856,\n        name: 'PaymentScheduleFixingDateOffsetUnit',\n        abbrName: 'FixngUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative fixing date offset.',\n    },\n    {\n        id: 40857,\n        name: 'PaymentScheduleFixingDateOffsetDayType',\n        abbrName: 'FixngDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative fixing date offset.',\n    },\n    {\n        id: 40858,\n        name: 'PaymentScheduleFixingDateAdjusted',\n        abbrName: 'FixngDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted fixing date.',\n    },\n    {\n        id: 40859,\n        name: 'PaymentScheduleFixingTime',\n        abbrName: 'FixngTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The fixing time associated with the step schedule.',\n    },\n    {\n        id: 40860,\n        name: 'PaymentScheduleFixingTimeBusinessCenter',\n        abbrName: 'FixngTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Business center for determining fixing time.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40861,\n        name: 'PaymentScheduleInterimExchangePaymentDateRelativeTo',\n        abbrName: 'IntrmExchDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the interim exchange payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40862,\n        name: 'PaymentScheduleInterimExchangeDatesBusinessDayConvention',\n        abbrName: 'IntrmExchDtBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the payment schedule's interim exchange date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40863,\n        name: 'PaymentScheduleInterimExchangeDatesBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the payment schedule\\'s interim exchange date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40864,\n        name: 'PaymentScheduleInterimExchangeDatesOffsetPeriod',\n        abbrName: 'IntrmExchDtPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative interim exchange date offset.',\n    },\n    {\n        id: 40865,\n        name: 'PaymentScheduleInterimExchangeDatesOffsetUnit',\n        abbrName: 'IntrmExchDtUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative interim exchange date offset.',\n    },\n    {\n        id: 40866,\n        name: 'PaymentScheduleInterimExchangeDatesOffsetDayType',\n        abbrName: 'IntrmExchDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative interim exchange date offset.',\n    },\n    {\n        id: 40867,\n        name: 'PaymentScheduleInterimExchangeDateAdjusted',\n        abbrName: 'IntrmExchDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted interim exchange date.',\n    },\n    {\n        id: 40868,\n        name: 'NoPaymentScheduleRateSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of swap schedule rate sources.',\n    },\n    {\n        id: 40869,\n        name: 'PaymentScheduleRateSource',\n        abbrName: 'Src',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source of rate information.',\n    },\n    {\n        id: 40870,\n        name: 'PaymentScheduleRateSourceType',\n        abbrName: 'Typ',\n        type: 'RateSourceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Rate source type.',\n    },\n    {\n        id: 40871,\n        name: 'PaymentScheduleReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the reference \u201Cpage\u201D from the rate source.\\n\\nFor FX, the reference page to the spot rate to be used for the reference FX spot rate.\\n\\nWhen RateSource(1446) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option',\n    },\n    {\n        id: 40872,\n        name: 'NoPaymentStubs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of stubs in the repeating group',\n    },\n    {\n        id: 40873,\n        name: 'PaymentStubType',\n        abbrName: 'Typ',\n        type: 'PaymentStubTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Stub type.',\n    },\n    {\n        id: 40874,\n        name: 'PaymentStubLength',\n        abbrName: 'Lngth',\n        type: 'PaymentStubLengthCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Optional indication whether stub is shorter or longer than the regular swap period.',\n    },\n    {\n        id: 40875,\n        name: 'PaymentStubRate',\n        abbrName: 'Rt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The agreed upon fixed rate for this stub.',\n    },\n    {\n        id: 40876,\n        name: 'PaymentStubFixedAmount',\n        abbrName: 'FixedAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'A fixed payment amount for the stub.',\n    },\n    {\n        id: 40877,\n        name: 'PaymentStubFixedCurrency',\n        abbrName: 'FixedCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The currency of the fixed payment amount. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 40878,\n        name: 'PaymentStubIndex',\n        abbrName: 'Ndx',\n        type: 'String',\n        discriminatorId: '40879',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The stub floating rate index.',\n    },\n    {\n        id: 40879,\n        name: 'PaymentStubIndexSource',\n        abbrName: 'NdxSrc',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The source of the stub floating rate index.',\n    },\n    {\n        id: 40880,\n        name: 'PaymentStubIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the stub floating rate index.',\n    },\n    {\n        id: 40881,\n        name: 'PaymentStubIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the stub floating rate index.',\n    },\n    {\n        id: 40882,\n        name: 'PaymentStubIndexRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 40883,\n        name: 'PaymentStubIndexRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Spread from floating rate index.',\n    },\n    {\n        id: 40884,\n        name: 'PaymentStubIndexRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 40885,\n        name: 'PaymentStubIndexRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the yield calculation treatment for the payment stub index.',\n    },\n    {\n        id: 40886,\n        name: 'PaymentStubIndexCapRate',\n        abbrName: 'CapRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The cap rate, if any, which applies to the floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40887,\n        name: 'PaymentStubIndexCapRateBuySide',\n        abbrName: 'CapRtBuy',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the buyer of the cap rate option through its trade side.',\n    },\n    {\n        id: 40888,\n        name: 'PaymentStubIndexCapRateSellSide',\n        abbrName: 'CapRtSell',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the seller of the cap rate option through its trade side.',\n    },\n    {\n        id: 40889,\n        name: 'PaymentStubIndexFloorRate',\n        abbrName: 'FlrRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40890,\n        name: 'PaymentStubIndexFloorRateBuySide',\n        abbrName: 'FlrRtBuy',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the buyer of the floor rate option through its trade side.',\n    },\n    {\n        id: 40891,\n        name: 'PaymentStubIndexFloorRateSellSide',\n        abbrName: 'FlrRtSell',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Reference to the seller of the floor rate option through its trade side.',\n    },\n    {\n        id: 40892,\n        name: 'PaymentStubIndex2',\n        abbrName: 'Ndx2',\n        type: 'String',\n        discriminatorId: '40893',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The second stub floating rate index.',\n    },\n    {\n        id: 40893,\n        name: 'PaymentStubIndex2Source',\n        abbrName: 'Ndx2Src',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The source of the second stub floating rate index.',\n    },\n    {\n        id: 40894,\n        name: 'PaymentStubIndex2CurvePeriod',\n        abbrName: 'Ndx2Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Secondary time unit multiplier for the stub floating rate index curve.',\n    },\n    {\n        id: 40895,\n        name: 'PaymentStubIndex2CurveUnit',\n        abbrName: 'Ndx2Unit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Secondary time unit associated with the stub floating rate index curve.',\n    },\n    {\n        id: 40896,\n        name: 'PaymentStubIndex2RateMultiplier',\n        abbrName: 'RtMult2',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A rate multiplier to apply to the second floating rate. The multiplier can be less than or greater than 1 (one). This element should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 40897,\n        name: 'PaymentStubIndex2RateSpread',\n        abbrName: 'Spread2',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Spread from the second floating rate index.',\n    },\n    {\n        id: 40898,\n        name: 'PaymentStubIndex2RateSpreadPositionType',\n        abbrName: 'Spread2PosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 40899,\n        name: 'PaymentStubIndex2RateTreatment',\n        abbrName: 'RtTrtmt2',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the yield calculation treatment for the second stub index.',\n    },\n    {\n        id: 40900,\n        name: 'PaymentStubIndex2CapRate',\n        abbrName: 'CapRt2',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The cap rate, if any, which applies to the second floating rate. The cap rate (strike) is only required where the floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40901,\n        name: 'PaymentStubIndex2FloorRate',\n        abbrName: 'FlrRt2',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The floor rate, if any, which applies to the second floating rate. The floor rate (strike) is only required where the floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A floor rate of 5% would be represented as 0.05.',\n    },\n    {\n        id: 40902,\n        name: 'NoLegSettlRateFallbacks',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of settlement rate fallbacks in the repeating group',\n    },\n    {\n        id: 40903,\n        name: 'LegSettlRatePostponementMaximumDays',\n        abbrName: 'MaxDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The maximum number of days to wait for a quote from the disrupted settlement rate option before proceding to this method.',\n    },\n    {\n        id: 40904,\n        name: 'UnderlyingSettlRateFallbackRateSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the source of rate information.',\n    },\n    {\n        id: 40905,\n        name: 'LegSettlRatePostponementSurvey',\n        abbrName: 'Survey',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Indicates whether to request a settlement rate quote from the market.',\n    },\n    {\n        id: 40906,\n        name: 'LegSettlRatePostponementCalculationAgent',\n        abbrName: 'CalcAgent',\n        type: 'ProvisionCalculationAgentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Used to identify the settlement rate postponement calculation agent.',\n    },\n    {\n        id: 40907,\n        name: 'StreamEffectiveDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The unadjusted effective date.',\n    },\n    {\n        id: 40908,\n        name: 'StreamEffectiveDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            \"The business day convention used to adjust the instrument's stream's effective, or relative effective, date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 40909,\n        name: 'StreamEffectiveDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business center calendar used to adjust the instrument\\'s stream\\'s effective, or relative effective, date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40910,\n        name: 'StreamEffectiveDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Specifies the anchor date when the effective date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 40911,\n        name: 'StreamEffectiveDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit multiplier for the relative effective date offset.',\n    },\n    {\n        id: 40912,\n        name: 'StreamEffectiveDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Time unit associated with the relative effective date offset.',\n    },\n    {\n        id: 40913,\n        name: 'StreamEffectiveDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative effective date offset.',\n    },\n    {\n        id: 40914,\n        name: 'StreamEffectiveDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'The adjusted effective date.',\n    },\n    {\n        id: 40915,\n        name: 'UnderlyingSettlRateFallbackReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Identifies the reference \"page\" from the rate source.\\n\\nWhen UnderlyingSettlRateFallbackRateSource(40904) = 3(ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option',\n    },\n    {\n        id: 40916,\n        name: 'CashSettlValuationSubsequentBusinessDaysOffset',\n        abbrName: 'SbsqntBizDayOfst',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The number of business days between successive valuation dates when multiple valuation dates are applicable for cash settlement.\\n\\nAssociated with ISDA 2003 Term: Valuation Date',\n    },\n    {\n        id: 40917,\n        name: 'CashSettlNumOfValuationDates',\n        abbrName: 'NumValDts',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Where multiple valuation dates are specified as being applicable for cash settlement, this specifies the number of applicable valuation dates.\\n\\nAssociated with ISDA 2003 Term: Valuation Date',\n    },\n    {\n        id: 40918,\n        name: 'UnderlyingProvisionPartyRoleQualifier',\n        abbrName: 'Qual',\n        type: 'PartyDetailRoleQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Used to further qualify the value of UnderlyingProvisionPartyRole(42176).',\n    },\n    {\n        id: 40919,\n        name: 'PaymentPriceType',\n        abbrName: 'PxTyp',\n        type: 'PriceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Specifies the type of price for PaymentPrice(40218).',\n    },\n    {\n        id: 40920,\n        name: 'PaymentStreamPaymentDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative payment date offset.',\n    },\n    {\n        id: 40921,\n        name: 'BusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business day convention used for adjusting dates. The value defined here applies to all adjustable dates in the instrument unless specifically overridden.',\n    },\n    {\n        id: 40922,\n        name: 'DateRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The convention for determining a sequence of dates. It is used in conjunction with a specified frequency. The value defined here applies to all adjustable dates in the instrument unless specifically overridden. Additional values may be used by mutual agreement of the counterparties.',\n    },\n    {\n        id: 40923,\n        name: 'NoLegBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40924,\n        name: 'LegBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A business center whose calendar is used for date adjustment, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40925,\n        name: 'LegBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business day convention used for adjusting dates. The value defined here applies to all adjustable dates in the instrument leg unless specifically overridden.',\n    },\n    {\n        id: 40926,\n        name: 'LegDateRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The convention for determining a sequence of dates. It is used in conjunction with a specified frequency. The value defined here applies to all adjustable dates in the instrument leg unless specifically overridden.',\n    },\n    {\n        id: 40927,\n        name: 'NoLegPaymentScheduleFixingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40928,\n        name: 'NoLegPaymentScheduleInterimExchangeDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40929,\n        name: 'NoLegPaymentStreamNonDeliverableFixingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40930,\n        name: 'NoLegPaymentStreamPaymentDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40931,\n        name: 'NoLegPaymentStreamResetDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40932,\n        name: 'NoLegPaymentStreamInitialFixingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40933,\n        name: 'NoLegPaymentStreamFixingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40934,\n        name: 'NoLegProvisionCashSettlPaymentDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40935,\n        name: 'NoLegProvisionCashSettlValueDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40936,\n        name: 'NoLegProvisionOptionExerciseBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40937,\n        name: 'NoLegProvisionOptionExpirationDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40938,\n        name: 'NoLegProvisionOptionRelevantUnderlyingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40939,\n        name: 'NoLegProvisionDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40940,\n        name: 'NoLegStreamCalculationPeriodBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40941,\n        name: 'NoLegStreamFirstPeriodStartDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40942,\n        name: 'NoLegStreamEffectiveDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40943,\n        name: 'NoLegStreamTerminationDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40944,\n        name: 'NoPaymentBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40945,\n        name: 'NoPaymentScheduleInterimExchangeDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40946,\n        name: 'NoPaymentStreamNonDeliverableFixingDatesBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40947,\n        name: 'NoPaymentStreamPaymentDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40948,\n        name: 'NoPaymentStreamResetDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40949,\n        name: 'NoPaymentStreamInitialFixingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40950,\n        name: 'NoPaymentStreamFixingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40951,\n        name: 'NoProtectionTermEventNewsSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of event news sources in the repeating group.',\n    },\n    {\n        id: 40952,\n        name: 'NoProvisionCashSettlPaymentDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40953,\n        name: 'NoProvisionCashSettlValueDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40954,\n        name: 'NoProvisionOptionExerciseBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40955,\n        name: 'NoProvisionOptionExpirationDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40956,\n        name: 'NoProvisionOptionRelevantUnderlyingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40957,\n        name: 'NoProvisionDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40958,\n        name: 'NoStreamCalculationPeriodBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40959,\n        name: 'NoStreamFirstPeriodStartDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40960,\n        name: 'NoStreamEffectiveDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40961,\n        name: 'NoStreamTerminationDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40962,\n        name: 'NoUnderlyingBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40963,\n        name: 'UnderlyingBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'A business center whose calendar is used for date adjustment, e.g. \"GBLO\". See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 40964,\n        name: 'UnderlyingBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The business day convention used for adjusting dates. The value defined here applies to all adjustable dates in the underlying instrument unless specifically overridden.',\n    },\n    {\n        id: 40965,\n        name: 'UnderlyingDateRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'The convention for determining a sequence of dates. It is used in conjunction with a specified frequency. The value defined here applies to all adjustable dates in the underlying instrument unless specifically overridden.',\n    },\n    {\n        id: 40966,\n        name: 'NoUnderlyingPaymentScheduleFixingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40967,\n        name: 'NoUnderlyingPaymentScheduleInterimExchangeDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40968,\n        name: 'NoUnderlyingPaymentStreamNonDeliverableFixingDatesBizCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40969,\n        name: 'NoUnderlyingPaymentStreamPaymentDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40970,\n        name: 'NoUnderlyingPaymentStreamResetDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40971,\n        name: 'NoUnderlyingPaymentStreamInitialFixingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40972,\n        name: 'NoUnderlyingPaymentStreamFixingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40973,\n        name: 'NoUnderlyingStreamCalculationPeriodBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40974,\n        name: 'NoUnderlyingStreamFirstPeriodStartDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40975,\n        name: 'NoUnderlyingStreamEffectiveDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40976,\n        name: 'NoUnderlyingStreamTerminationDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40977,\n        name: 'NoPaymentScheduleFixingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 40978,\n        name: 'EncodedLegStreamTextLen',\n        abbrName: 'EncTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedLegStreamText(40979) field.',\n    },\n    {\n        id: 40979,\n        name: 'EncodedLegStreamText',\n        abbrName: 'EncTxt',\n        type: 'data',\n        lengthId: '40978',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Encoded (non-ASCII characters) representation of the LegStreamText(40248) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegStreamText(40248) field.',\n    },\n    {\n        id: 40980,\n        name: 'EncodedLegProvisionTextLen',\n        abbrName: 'EncTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedLegProvisionText(40472) field.',\n    },\n    {\n        id: 40981,\n        name: 'EncodedLegProvisionText',\n        abbrName: 'EncTxt',\n        type: 'data',\n        lengthId: '40980',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Encoded (non-ASCII characters) representation of the LegProvisionText(40472) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegProvisionText(40472) field.',\n    },\n    {\n        id: 40982,\n        name: 'EncodedStreamTextLen',\n        abbrName: 'EncTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedStreamText(40983) field.',\n    },\n    {\n        id: 40983,\n        name: 'EncodedStreamText',\n        abbrName: 'EncTxt',\n        type: 'data',\n        lengthId: '40982',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Encoded (non-ASCII characters) representation of the StreamText(40056) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the StreamText(40056) field.',\n    },\n    {\n        id: 40984,\n        name: 'EncodedPaymentTextLen',\n        abbrName: 'EncTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedPaymentText(40985) field.',\n    },\n    {\n        id: 40985,\n        name: 'EncodedPaymentText',\n        abbrName: 'EncTxt',\n        type: 'data',\n        lengthId: '40984',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Encoded (non-ASCII characters) representation of the PaymentText(40229) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the PaymentText(40229) field.',\n    },\n    {\n        id: 40986,\n        name: 'EncodedProvisionTextLen',\n        abbrName: 'EncTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedProvisionText(40987) field.',\n    },\n    {\n        id: 40987,\n        name: 'EncodedProvisionText',\n        abbrName: 'EncTxt',\n        type: 'data',\n        lengthId: '40986',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Encoded (non-ASCII characters) representation of the ProvisionText(40113) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the ProvisionText(40113) field.',\n    },\n    {\n        id: 40988,\n        name: 'EncodedUnderlyingStreamTextLen',\n        abbrName: 'EncTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedUnderlyingStreamText(40989) field.',\n    },\n    {\n        id: 40989,\n        name: 'EncodedUnderlyingStreamText',\n        abbrName: 'EncTxt',\n        type: 'data',\n        lengthId: '40988',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingStreamText(40547) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingStreamText(40547) field.',\n    },\n    {\n        id: 40990,\n        name: 'LegMarketDisruptionFallbackValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Applicable value for LegMarketDisruptionFallbackType(41470).',\n    },\n    {\n        id: 40991,\n        name: 'MarketDisruptionValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Applicable value for MarketDisruptionEvent(41093).',\n    },\n    {\n        id: 40992,\n        name: 'MarketDisruptionFallbackValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Applicable value for MarketDisruptionFallbackType(41095).',\n    },\n    {\n        id: 40993,\n        name: 'PaymentSubType',\n        abbrName: 'SubTyp',\n        type: 'PaymentSubTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Used to further clarify the value of PaymentType(40213).',\n    },\n    {\n        id: 40994,\n        name: 'NoComplexEventAveragingObservations',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of averaging observations in the repeating group.',\n    },\n    {\n        id: 40995,\n        name: 'ComplexEventAveragingObservationNumber',\n        abbrName: 'ObsvtnNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Cross reference to the ordinal observation as specified either in the ComplexEventScheduleGrp or ComplexEventPeriodDateGrp components.',\n    },\n    {\n        id: 40996,\n        name: 'ComplexEventAveragingWeight',\n        abbrName: 'Wt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The weight factor to be applied to the observation.',\n    },\n    {\n        id: 40997,\n        name: 'NoComplexEventCreditEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of credit events specified in the repeating group.',\n    },\n    {\n        id: 40998,\n        name: 'ComplexEventCreditEventType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of credit event.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Credit_Event_Types for code list of applicable event types.',\n    },\n    {\n        id: 40999,\n        name: 'ComplexEventCreditEventValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The credit event value appropriate to ComplexEventCreditEventType(40998).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Credit_Event_Types for applicable event type values.',\n    },\n    {\n        id: 41000,\n        name: 'ComplexEventCreditEventCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the applicable currency when ComplexEventCreditEventValue(40999) is an amount. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41001,\n        name: 'ComplexEventCreditEventPeriod',\n        abbrName: 'Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for complex credit events.',\n    },\n    {\n        id: 41002,\n        name: 'ComplexEventCreditEventUnit',\n        abbrName: 'Unit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with complex credit events.',\n    },\n    {\n        id: 41003,\n        name: 'ComplexEventCreditEventDayType',\n        abbrName: 'DayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the day type for the complex credit events.',\n    },\n    {\n        id: 41004,\n        name: 'ComplexEventCreditEventRateSource',\n        abbrName: 'RtSrc',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the source of rate information used for credit events.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Credit_Event_Rate_Source for code list of applicable sources.',\n    },\n    {\n        id: 41005,\n        name: 'NoComplexEventCreditEventQualifiers',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of qualifiers in the repeating group.',\n    },\n    {\n        id: 41006,\n        name: 'ComplexEventCreditEventQualifier',\n        abbrName: 'Qual',\n        type: 'ProtectionTermEventQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies a complex event qualifier. Used to further qualify ComplexEventCreditEventType(40998).',\n    },\n    {\n        id: 41007,\n        name: 'NoComplexEventPeriodDateTimes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of entries in the date-time repeating group.',\n    },\n    {\n        id: 41008,\n        name: 'ComplexEventPeriodDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The averaging date for an Asian option.\\n\\nThe trigger date for a Barrier or Knock option.',\n    },\n    {\n        id: 41009,\n        name: 'ComplexEventPeriodTime',\n        abbrName: 'Tm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The averaging time for an Asian option.',\n    },\n    {\n        id: 41010,\n        name: 'NoComplexEventPeriods',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of periods in the repeating group.',\n    },\n    {\n        id: 41011,\n        name: 'ComplexEventPeriodType',\n        abbrName: 'Typ',\n        type: 'ComplexEventPeriodTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the period type.',\n    },\n    {\n        id: 41012,\n        name: 'ComplexEventBusinessCenter',\n        abbrName: 'BizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center used to determine dates and times in the schedule or date-time group.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41013,\n        name: 'NoComplexEventRateSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of rate sources in the repeating group.',\n    },\n    {\n        id: 41014,\n        name: 'ComplexEventRateSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the source of rate information.\\n\\nFor FX, the reference source to be used for the FX spot rate.',\n    },\n    {\n        id: 41015,\n        name: 'ComplexEventRateSourceType',\n        abbrName: 'RtSrcTyp',\n        type: 'RateSourceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Indicates whether the rate source specified is a primary or secondary source.',\n    },\n    {\n        id: 41016,\n        name: 'ComplexEventReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the reference page from the rate source.\\n\\nFor FX, the reference page to the spot rate is to be used for the reference FX spot rate.\\n\\nWhen ComplexEventRateSource(41014) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option.',\n    },\n    {\n        id: 41017,\n        name: 'ComplexEventReferencePageHeading',\n        abbrName: 'RefHdng',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the reference page heading from the rate source.',\n    },\n    {\n        id: 41018,\n        name: 'NoComplexEventDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of business centers in the repeating group.',\n    },\n    {\n        id: 41019,\n        name: 'ComplexEventDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the complex event date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41020,\n        name: 'ComplexEventDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'The unadjusted complex event date.\\n\\nFor example the second expiration date for a calendar spread option strategy.',\n    },\n    {\n        id: 41021,\n        name: 'ComplexEventDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Specifies the anchor date when the complex event date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 41022,\n        name: 'ComplexEventDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the relative date offset.',\n    },\n    {\n        id: 41023,\n        name: 'ComplexEventDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the relative date offset.',\n    },\n    {\n        id: 41024,\n        name: 'ComplexEventDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the day type of the relative date offset.',\n    },\n    {\n        id: 41025,\n        name: 'ComplexEventDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the complex event date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.',\n    },\n    {\n        id: 41026,\n        name: 'ComplexEventDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted complex event date.',\n    },\n    {\n        id: 41027,\n        name: 'ComplexEventFixingTime',\n        abbrName: 'FixngTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The local market fixing time.',\n    },\n    {\n        id: 41028,\n        name: 'ComplexEventFixingTimeBusinessCenter',\n        abbrName: 'FixngBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to determine the actual fixing times.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41029,\n        name: 'NoComplexEventCreditEventSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of event sources in the repeating group.',\n    },\n    {\n        id: 41030,\n        name: 'ComplexEventCreditEventSource',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'A newspaper or electronic news service that may publish relevant information used in the determination of whether or not a credit event has occurred.',\n    },\n    {\n        id: 41031,\n        name: 'NoComplexEventSchedules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of schedules in the repeating group.',\n    },\n    {\n        id: 41032,\n        name: 'ComplexEventScheduleStartDate',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The start date of the schedule.',\n    },\n    {\n        id: 41033,\n        name: 'ComplexEventScheduleEndDate',\n        abbrName: 'EndDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The end date of the schedule.',\n    },\n    {\n        id: 41034,\n        name: 'ComplexEventScheduleFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the schedule date frequency.',\n    },\n    {\n        id: 41035,\n        name: 'ComplexEventScheduleFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the schedule date frequency.',\n    },\n    {\n        id: 41036,\n        name: 'ComplexEventScheduleRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The convention for determining the sequence of dates. It is used in conjunction with a specified frequency. Used only to override the roll convention defined in the DateAdjustment component in Instrument.',\n    },\n    {\n        id: 41037,\n        name: 'NoDeliverySchedules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of delivery schedules in the repeating group.',\n    },\n    {\n        id: 41038,\n        name: 'DeliveryScheduleType',\n        abbrName: 'Typ',\n        type: 'DeliveryScheduleTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the type of delivery schedule.',\n    },\n    {\n        id: 41039,\n        name: 'DeliveryScheduleXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifier for this instance of delivery schedule for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41040,\n        name: 'DeliveryScheduleNotional',\n        abbrName: 'Notl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Physical delivery quantity.',\n    },\n    {\n        id: 41041,\n        name: 'DeliveryScheduleNotionalUnitOfMeasure',\n        abbrName: 'NotlUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the delivery quantity unit of measure (UOM).',\n    },\n    {\n        id: 41042,\n        name: 'DeliveryScheduleNotionalCommodityFrequency',\n        abbrName: 'NotlFreq',\n        type: 'StreamNotionalCommodityFrequencyCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The frequency of notional delivery.',\n    },\n    {\n        id: 41043,\n        name: 'DeliveryScheduleNegativeTolerance',\n        abbrName: 'NegtvTlrnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the negative tolerance value. The value may be an absolute quantity or a percentage, as specified in DeliveryScheduleToleranceType(41046). Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%).',\n    },\n    {\n        id: 41044,\n        name: 'DeliverySchedulePositiveTolerance',\n        abbrName: 'PostvTlrnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the positive tolerance value. The value may be an absolute quantity or a percentage, as specified in DeliveryScheduleToleranceType(41046). Value may exceed agreed upon value. Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%).',\n    },\n    {\n        id: 41045,\n        name: 'DeliveryScheduleToleranceUnitOfMeasure',\n        abbrName: 'TlrncUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Specifies the tolerance value's unit of measure (UOM).\",\n    },\n    {\n        id: 41046,\n        name: 'DeliveryScheduleToleranceType',\n        abbrName: 'TlrncTyp',\n        type: 'DeliveryScheduleToleranceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the tolerance value type.',\n    },\n    {\n        id: 41047,\n        name: 'DeliveryScheduleSettlCountry',\n        abbrName: 'Ctry',\n        type: 'Country',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the country where delivery takes place. Uses ISO 3166 2-character country code.',\n    },\n    {\n        id: 41048,\n        name: 'DeliveryScheduleSettlTimeZone',\n        abbrName: 'TZ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Delivery timezone specified as \"prevailing\" rather than \"standard\" or \"daylight\".\\n\\nSee http://www.fixtradingcommunity.org/codelists#Prevailing_Timezones for code list of applicable prevailing timezones.',\n    },\n    {\n        id: 41049,\n        name: 'DeliveryScheduleSettlFlowType',\n        abbrName: 'FlowTyp',\n        type: 'DeliveryScheduleSettlFlowTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '179',\n        description: 'Specifies the commodity delivery flow type.',\n    },\n    {\n        id: 41050,\n        name: 'DeliveryScheduleSettlHolidaysProcessingInstruction',\n        abbrName: 'Holidays',\n        type: 'DeliveryScheduleSettlHolidaysProcessingInstructionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether holidays are included in the settlement periods. Required for electricity contracts.',\n    },\n    {\n        id: 41051,\n        name: 'NoDeliveryScheduleSettlDays',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of delivery schedules in the repeating group.',\n    },\n    {\n        id: 41052,\n        name: 'DeliveryScheduleSettlDay',\n        abbrName: 'Day',\n        type: 'DeliveryScheduleSettlDayCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the day or group of days for delivery.',\n    },\n    {\n        id: 41053,\n        name: 'DeliveryScheduleSettlTotalHours',\n        abbrName: 'TotHrs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The sum of the total hours specified in the DeliveryScheduleSettlTimeGrp component.',\n    },\n    {\n        id: 41054,\n        name: 'NoDeliveryScheduleSettlTimes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of hour ranges in the repeating group.',\n    },\n    {\n        id: 41055,\n        name: 'DeliveryScheduleSettlStart',\n        abbrName: 'Start',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The scheduled start time for the delivery of the commodity where delivery occurs over specified times. The format of the time value is specified in DeliveryScheduleSettlTimeType(41057).',\n    },\n    {\n        id: 41056,\n        name: 'DeliveryScheduleSettlEnd',\n        abbrName: 'End',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The scheduled end time for the delivery of the commodity where delivery occurs over specified times. The format of the time value is specified in DeliveryScheduleSettlTimeType(41057).',\n    },\n    {\n        id: 41057,\n        name: 'DeliveryScheduleSettlTimeType',\n        abbrName: 'Typ',\n        type: 'DeliveryScheduleSettlTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the format of the delivery start and end time values.',\n    },\n    {\n        id: 41058,\n        name: 'DeliveryStreamType',\n        abbrName: 'Typ',\n        type: 'DeliveryStreamTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the type of delivery stream.',\n    },\n    {\n        id: 41059,\n        name: 'DeliveryStreamPipeline',\n        abbrName: 'Ppln',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The name of the oil delivery pipeline.',\n    },\n    {\n        id: 41060,\n        name: 'DeliveryStreamEntryPoint',\n        abbrName: 'EntryPnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The point at which the commodity will enter the delivery mechanism or pipeline.',\n    },\n    {\n        id: 41061,\n        name: 'DeliveryStreamWithdrawalPoint',\n        abbrName: 'WthdrwlPnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The point at which the commodity product will be withdrawn prior to delivery.',\n    },\n    {\n        id: 41062,\n        name: 'DeliveryStreamDeliveryPoint',\n        abbrName: 'DlvryPnt',\n        type: 'String',\n        discriminatorId: '42192',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The point at which the commodity product will be delivered and received. Value specified should follow market convention appropriate for the commodity product.\\n\\nFor bullion, see http://www.fpml.org/coding-scheme/bullion-delivery-location for values.',\n    },\n    {\n        id: 41063,\n        name: 'DeliveryStreamDeliveryRestriction',\n        abbrName: 'DlvryRstctn',\n        type: 'DeliveryStreamDeliveryRestrictionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies under what conditions the buyer and seller should be excused of their delivery obligations.',\n    },\n    {\n        id: 41064,\n        name: 'DeliveryStreamDeliveryContingency',\n        abbrName: 'Cntgncy',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the electricity delivery contingency.\\n\\nSee http://www.fpml.org/coding-scheme/electricity-transmission-contingency for values.',\n    },\n    {\n        id: 41065,\n        name: 'DeliveryStreamDeliveryContingentPartySide',\n        abbrName: 'CntgPty',\n        type: 'DeliveryStreamElectingPartySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The trade side value of the party responsible for electricity delivery contingency.',\n    },\n    {\n        id: 41066,\n        name: 'DeliveryStreamDeliverAtSourceIndicator',\n        abbrName: 'DlvrAtSrc',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"When this element is specified and set to 'Y', delivery of the coal product is to be at its source.\",\n    },\n    {\n        id: 41067,\n        name: 'DeliveryStreamRiskApportionment',\n        abbrName: 'RiskApprtnmt',\n        type: 'String',\n        discriminatorId: '41218',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies how the parties to the trade apportion responsibility for the delivery of the commodity product.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Risk_Apportionment for the details of the external code list.',\n    },\n    {\n        id: 41068,\n        name: 'DeliveryStreamTitleTransferLocation',\n        abbrName: 'TtlXfer',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the title transfer location.',\n    },\n    {\n        id: 41069,\n        name: 'DeliveryStreamTitleTransferCondition',\n        abbrName: 'TtlXferCond',\n        type: 'DeliveryStreamTitleTransferConditionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the condition of title transfer.',\n    },\n    {\n        id: 41070,\n        name: 'DeliveryStreamImporterOfRecord',\n        abbrName: 'Imprtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'A party, not necessarily of the trade, who is the Importer of Record for the purposes of paying customs duties and applicable taxes or costs related to importation.',\n    },\n    {\n        id: 41071,\n        name: 'DeliveryStreamNegativeTolerance',\n        abbrName: 'NegtvTlrnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the negative tolerance value. The value may be an absolute quantity or a percentage, as specified in DeliveryStreamToleranceType(41074). Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%).',\n    },\n    {\n        id: 41072,\n        name: 'DeliveryStreamPositiveTolerance',\n        abbrName: 'PostvTlrnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the positive tolerance value. The value may be an absolute quantity or a percentage, as specified in DeliveryStreamToleranceType(41074). Value may exceed agreed upon value. Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%).',\n    },\n    {\n        id: 41073,\n        name: 'DeliveryStreamToleranceUnitOfMeasure',\n        abbrName: 'TlrncUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Specifies the tolerance value's unit of measure (UOM).\",\n    },\n    {\n        id: 41074,\n        name: 'DeliveryStreamToleranceType',\n        abbrName: 'TlrncTyp',\n        type: 'DeliveryScheduleToleranceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the tolerance value type.',\n    },\n    {\n        id: 41075,\n        name: 'DeliveryStreamToleranceOptionSide',\n        abbrName: 'TlrncOptSide',\n        type: 'DeliveryStreamToleranceOptionSideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Indicates whether the tolerance is at the seller's or buyer's option.\",\n    },\n    {\n        id: 41076,\n        name: 'DeliveryStreamTotalPositiveTolerance',\n        abbrName: 'TotPostvTlrnc',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The positive percent tolerance which applies to the total quantity delivered over all shipment periods.\\n\\nPercentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%.).',\n    },\n    {\n        id: 41077,\n        name: 'DeliveryStreamTotalNegativeTolerance',\n        abbrName: 'TotNegtvTlrnc',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The negative percent tolerance which applies to the total quantity delivered over all shipment periods.\\n\\nPercentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%.).',\n    },\n    {\n        id: 41078,\n        name: 'DeliveryStreamNotionalConversionFactor',\n        abbrName: 'CnvrsnFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'If the notional quantity is specified in a unit that does not match the unit in which the commodity reference price is quoted, the scaling or conversion factor used to convert the commodity reference price unit into the notional quantity unit should be stated here. If there is no conversion, this field is not intended to be used.',\n    },\n    {\n        id: 41079,\n        name: 'DeliveryStreamTransportEquipment',\n        abbrName: 'Eqpmt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The transportation equipment with which the commodity product will be delivered and received.\\n\\nExamples of transportation equipment or mode are barge, truck, railcar, etc.',\n    },\n    {\n        id: 41080,\n        name: 'DeliveryStreamElectingPartySide',\n        abbrName: 'ElctngSide',\n        type: 'DeliveryStreamElectingPartySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'A reference to the party able to choose whether the gas is delivered for a particular period as found in a swing or interruptible contract.',\n    },\n    {\n        id: 41081,\n        name: 'NoDeliveryStreamCycles',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of delivery cycles in the repeating group.',\n    },\n    {\n        id: 41082,\n        name: 'DeliveryStreamCycleDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The delivery cycles during which the oil product will be transported in the pipeline.',\n    },\n    {\n        id: 41083,\n        name: 'EncodedDeliveryStreamCycleDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedDeliveryStreamCycleDesc(41084) field.',\n    },\n    {\n        id: 41084,\n        name: 'EncodedDeliveryStreamCycleDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41083',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the DeliveryStreamCycleDesc(41082) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the DeliveryStreamCycleDesc(41082) field.',\n    },\n    {\n        id: 41085,\n        name: 'NoDeliveryStreamCommoditySources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of commodity sources in the repeating group.',\n    },\n    {\n        id: 41086,\n        name: 'DeliveryStreamCommoditySource',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The SCoTA coal cargo origin, mining region, mine(s), mining complex(es), loadout(s) or river dock(s) or other point(s) of origin that seller and buyer agree are acceptable origins for the coal product. For international coal transactions, this is the origin of the coal product.\\n\\nSee http://www.fpml.org/coding-scheme/commodity-coal-product-source for values.',\n    },\n    {\n        id: 41087,\n        name: 'MarketDisruptionProvision',\n        abbrName: 'Prov',\n        type: 'MarketDisruptionProvisionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The consequences of market disruption events.',\n    },\n    {\n        id: 41088,\n        name: 'MarketDisruptionFallbackProvision',\n        abbrName: 'FallbckProv',\n        type: 'MarketDisruptionFallbackProvisionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the location of the fallback provision documentation.',\n    },\n    {\n        id: 41089,\n        name: 'MarketDisruptionMaximumDays',\n        abbrName: 'MaxDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the maximum number of market disruption days (commodity or bullion business days) in a contract or confirmation. If none are specified, the maximum number of market disruption days is five (5).\\n\\nISDA 2005 Commodity Definition.',\n    },\n    {\n        id: 41090,\n        name: 'MarketDisruptionMaterialityPercentage',\n        abbrName: 'MtrltyPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Used when a price materiality percentage applies to the price source disruption event and this event has been specified.\\n\\nApplicable to 2005 Commodity Definitions only.',\n    },\n    {\n        id: 41091,\n        name: 'MarketDisruptionMinimumFuturesContracts',\n        abbrName: 'MinCtrcts',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Specifies the minimum futures contracts level that dictates whether or not a 'De Minimis Trading' event has occurred.\\n\\nApplicable to 1993 Commodity Definitions only.\",\n    },\n    {\n        id: 41092,\n        name: 'NoMarketDisruptionEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of disruption events in the repeating group.',\n    },\n    {\n        id: 41093,\n        name: 'MarketDisruptionEvent',\n        abbrName: 'Evnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description:\n            'Specifies the market disruption event.\\n\\nFor commodities see http://www.fpml.org/coding-scheme/commodity-market-disruption for values.\\n\\nFor foreign exchange, see http://www.fixtradingcommunity.org/codelists#Market_Disruption_Event for code list of applicable event types.',\n    },\n    {\n        id: 41094,\n        name: 'NoMarketDisruptionFallbacks',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of fallbacks in the repeating group.',\n    },\n    {\n        id: 41095,\n        name: 'MarketDisruptionFallbackType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of disruption fallback.\\n\\nSee http://www.fpml.org/coding-scheme/commodity-market-disruption-fallback for values.',\n    },\n    {\n        id: 41096,\n        name: 'NoMarketDisruptionFallbackReferencePrices',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of fallback reference securities in the repeating group.',\n    },\n    {\n        id: 41097,\n        name: 'MarketDisruptionFallbackUnderlierType',\n        abbrName: 'Typ',\n        type: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The type of reference price underlier.',\n    },\n    {\n        id: 41098,\n        name: 'MarketDisruptionFallbackUnderlierSecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '41099',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the identifier value of the security.',\n    },\n    {\n        id: 41099,\n        name: 'MarketDisruptionFallbackUnderlierSecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '265',\n        description: 'Specifies the class or source scheme of the security identifier.',\n    },\n    {\n        id: 41100,\n        name: 'MarketDisruptionFallbackUnderlierSecurityDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the description of the underlying security.',\n    },\n    {\n        id: 41101,\n        name: 'EncodedMarketDisruptionFallbackUnderlierSecurityDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Byte length of encoded (non-ASCII characters) EncodedMarketDisruptionFallbackUnderlierSecurityDesc(41102) field.',\n    },\n    {\n        id: 41102,\n        name: 'EncodedMarketDisruptionFallbackUnderlierSecurityDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41101',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the MarketDisruptionFallbackUnderlierSecurityDesc(41100) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the MarketDisruptionFallbackUnderlierSecurityDesc(41100) field.',\n    },\n    {\n        id: 41103,\n        name: 'MarketDisruptionFallbackOpenUnits',\n        abbrName: 'OpnUnits',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'If there are multiple underlying assets, this specifies the number of units (index or securities) that constitute the underlier of the swap. In the case of a basket swap, this is used to reference both the number of basket units, and the number of each asset components of the basket when these are expressed in absolute terms.',\n    },\n    {\n        id: 41104,\n        name: 'MarketDisruptionFallbackBasketCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency if the underlier is a basket. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41105,\n        name: 'MarketDisruptionFallbackBasketDivisor',\n        abbrName: 'Dvsr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the basket divisor amount. This value is normally used to adjust the constituent weight for pricing or to adjust for dividends, or other corporate actions.',\n    },\n    {\n        id: 41106,\n        name: 'ExerciseDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'A description of the option exercise.',\n    },\n    {\n        id: 41107,\n        name: 'EncodedExerciseDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedExerciseDesc(41102) field.',\n    },\n    {\n        id: 41108,\n        name: 'EncodedExerciseDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41107',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the ExerciseDesc(41106) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the ExerciseDesc(41106) field.',\n    },\n    {\n        id: 41109,\n        name: 'AutomaticExerciseIndicator',\n        abbrName: 'AutoExerInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Indicates (when 'Y') that exercise is automatic when the strike price is crossed or the underlying trade is in the money.\",\n    },\n    {\n        id: 41110,\n        name: 'AutomaticExerciseThresholdRate',\n        abbrName: 'AutoRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The threshold rate for triggering automatic exercise.',\n    },\n    {\n        id: 41111,\n        name: 'ExerciseConfirmationMethod',\n        abbrName: 'ExerCnfm',\n        type: 'ExerciseConfirmationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Indicates whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent.\",\n    },\n    {\n        id: 41112,\n        name: 'ManualNoticeBusinessCenter',\n        abbrName: 'ManNtcBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the business center used for adjusting the time for manual exercise notice.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41113,\n        name: 'FallbackExerciseIndicator',\n        abbrName: 'FallbckExerInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether the notional amount of the underlying swap, not previously exercised under the option, will be automatically exercised at the expiration time on the expiration date if at such time the buyer is in-the-money, provided that the difference between the settlement rate and the fixed rate under the relevant underlying swap is not less than one tenth of a percentage point (0.10% or 0.001).',\n    },\n    {\n        id: 41114,\n        name: 'LimitedRightToConfirmIndicator',\n        abbrName: 'LtdRightCnfmInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether the Seller may request the Buyer to confirm its intent to exercise if not done on or before the expiration time on the expiration date. If true (\"Y\") specific rules will apply in relation to the settlement mode.',\n    },\n    {\n        id: 41115,\n        name: 'ExerciseSplitTicketIndicator',\n        abbrName: 'ExerSplitTktInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates in physical settlement of bond and convertible bond options whether the party required to deliver the bonds will divide those to be delivered as notifying party desires to facilitate delivery obligations.',\n    },\n    {\n        id: 41116,\n        name: 'NoOptionExerciseBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41117,\n        name: 'OptionExerciseBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the option exercise dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41118,\n        name: 'OptionExerciseBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the option exercise dates. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.',\n    },\n    {\n        id: 41119,\n        name: 'OptionExerciseEarliestDateOffsetDayType',\n        abbrName: 'ErlstOfstDayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative earliest option exercise date offset.',\n    },\n    {\n        id: 41120,\n        name: 'OptionExerciseEarliestDateOffsetPeriod',\n        abbrName: 'ErlstOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the relative earliest exercise date offset.',\n    },\n    {\n        id: 41121,\n        name: 'OptionExerciseEarliestDateOffsetUnit',\n        abbrName: 'ErlstOfstUnit',\n        type: 'ProvisionOptionExerciseEarliestDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the relative earliest exercise date offset.',\n    },\n    {\n        id: 41122,\n        name: 'OptionExerciseFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the frequency of exercise dates.',\n    },\n    {\n        id: 41123,\n        name: 'OptionExerciseFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the frequency of exercise dates.',\n    },\n    {\n        id: 41124,\n        name: 'OptionExerciseStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted start date for calculating periodic exercise dates.',\n    },\n    {\n        id: 41125,\n        name: 'OptionExerciseStartDateRelativeTo',\n        abbrName: 'StartDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the anchor date when the option exercise start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 41126,\n        name: 'OptionExerciseStartDateOffsetPeriod',\n        abbrName: 'StartDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the relative exercise start date offset.',\n    },\n    {\n        id: 41127,\n        name: 'OptionExerciseStartDateOffsetUnit',\n        abbrName: 'StartDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the relative exercise start date offset.',\n    },\n    {\n        id: 41128,\n        name: 'OptionExerciseStartDateOffsetDayType',\n        abbrName: 'StartDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative option exercise start date offset.',\n    },\n    {\n        id: 41129,\n        name: 'OptionExerciseStartDateAdjusted',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted start date for calculating periodic exercise dates.',\n    },\n    {\n        id: 41130,\n        name: 'OptionExerciseSkip',\n        abbrName: 'Skip',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1.',\n    },\n    {\n        id: 41131,\n        name: 'OptionExerciseNominationDeadline',\n        abbrName: 'NomntnDdln',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Last date (adjusted) for establishing the option exercise terms.',\n    },\n    {\n        id: 41132,\n        name: 'OptionExerciseFirstDateUnadjusted',\n        abbrName: 'FirstDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted first exercise date.',\n    },\n    {\n        id: 41133,\n        name: 'OptionExerciseLastDateUnadjusted',\n        abbrName: 'LastDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted last exercise date.',\n    },\n    {\n        id: 41134,\n        name: 'OptionExerciseEarliestTime',\n        abbrName: 'ErlstTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) (i) on the expriation date, in the case of a European style option, (ii) on each Bermuda option exercise date and the expiration date, in the case of a Bermuda style option, (iii) the commencement date to, and including, the expiration date, in the case of an American option.\",\n    },\n    {\n        id: 41135,\n        name: 'OptionExerciseLatestTime',\n        abbrName: 'LtstTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The latest exercise time. See also OptionExerciseEarliestTime(41134).',\n    },\n    {\n        id: 41136,\n        name: 'OptionExerciseTimeBusinessCenter',\n        abbrName: 'TmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center used to determine the locale for option exercise time, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values',\n    },\n    {\n        id: 41137,\n        name: 'NoOptionExerciseDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of dates in the repeating group.',\n    },\n    {\n        id: 41138,\n        name: 'OptionExerciseDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The option exercise fixed date, unadjusted or adjusted depending on OptionExerciseDateType(41139).',\n    },\n    {\n        id: 41139,\n        name: 'OptionExerciseDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41140,\n        name: 'NoOptionExerciseExpirationDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41141,\n        name: 'OptionExerciseExpirationDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the option exercise expiration dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41142,\n        name: 'OptionExerciseExpirationDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the option exercise expiration dates. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.',\n    },\n    {\n        id: 41143,\n        name: 'OptionExerciseExpirationDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Specifies the anchor date when the option exercise expiration date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 41144,\n        name: 'OptionExerciseExpirationDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the relative exercise expiration date offset.',\n    },\n    {\n        id: 41145,\n        name: 'OptionExerciseExpirationDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the relative exercise expiration date offset.',\n    },\n    {\n        id: 41146,\n        name: 'OptionExerciseExpirationFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the frequency of exercise expiration dates.',\n    },\n    {\n        id: 41147,\n        name: 'OptionExerciseExpirationFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the frequency of exercise expiration dates.',\n    },\n    {\n        id: 41148,\n        name: 'OptionExerciseExpirationRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The convention for determining the sequence of exercise expiration dates. It is used in conjunction with a specified frequency. Used only to override the roll convention defined in the DateAdjustment component in Instrument.',\n    },\n    {\n        id: 41149,\n        name: 'OptionExerciseExpirationDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative option exercise expiration date offset.',\n    },\n    {\n        id: 41150,\n        name: 'OptionExerciseExpirationTime',\n        abbrName: 'Tm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The option exercise expiration time.',\n    },\n    {\n        id: 41151,\n        name: 'OptionExerciseExpirationTimeBusinessCenter',\n        abbrName: 'TmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center used to determine the locale for option exercise expiration time, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41152,\n        name: 'NoOptionExerciseExpirationDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of fixed exercise expiration dates in the repeating group.',\n    },\n    {\n        id: 41153,\n        name: 'OptionExerciseExpirationDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'An adjusted or unadjusted fixed option exercise expiration date.',\n    },\n    {\n        id: 41154,\n        name: 'OptionExerciseExpirationDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of option exercise expiration date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41155,\n        name: 'PaymentUnitOfMeasure',\n        abbrName: 'UOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Used to express the unit of measure (UOM) of the payment amount if not in the currency of the trade.',\n    },\n    {\n        id: 41156,\n        name: 'PaymentDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Specifies the anchor date when the payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 41157,\n        name: 'PaymentDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the relative payment date offset.',\n    },\n    {\n        id: 41158,\n        name: 'PaymentDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the relative payment date offset.',\n    },\n    {\n        id: 41159,\n        name: 'PaymentDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative payment date offset.',\n    },\n    {\n        id: 41160,\n        name: 'PaymentForwardStartType',\n        abbrName: 'FwdStartTyp',\n        type: 'PaymentForwardStartTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Forward start premium type.',\n    },\n    {\n        id: 41161,\n        name: 'NoPaymentScheduleFixingDays',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of fixing days in the repeating group.',\n    },\n    {\n        id: 41162,\n        name: 'PaymentScheduleFixingDayOfWeek',\n        abbrName: 'DayOfWk',\n        type: 'PaymentStreamPricingDayOfWeekCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The day of the week on which fixing will take place.',\n    },\n    {\n        id: 41163,\n        name: 'PaymentScheduleFixingDayNumber',\n        abbrName: 'DayNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The occurrence of the day of week on which fixing takes place.\\n\\nFor example, a fixing of the 3rd Friday would be DayOfWk=5 DayNum=3. If omitted every day of the week is a fixing day.',\n    },\n    {\n        id: 41164,\n        name: 'PaymentScheduleXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this PaymentSchedule for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41165,\n        name: 'PaymentScheduleXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to payment schedule elsewhere in the message.',\n    },\n    {\n        id: 41166,\n        name: 'PaymentScheduleRateCurrency',\n        abbrName: 'RtCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The currency of the schedule rate. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41167,\n        name: 'PaymentScheduleRateUnitOfMeasure',\n        abbrName: 'RtUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The schedule rate unit of measure (UOM).',\n    },\n    {\n        id: 41168,\n        name: 'PaymentScheduleRateConversionFactor',\n        abbrName: 'RtFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The number to be multiplied by the derived floating rate of the payment schedule in order to arrive at the payment rate. If omitted, the schedule rate conversion factor is 1.',\n    },\n    {\n        id: 41169,\n        name: 'PaymentScheduleRateSpreadType',\n        abbrName: 'SpreadTyp',\n        type: 'PaymentStreamRateSpreadTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies whether the rate spread is an absolute value to be added to the index rate or a percentage of the index rate.',\n    },\n    {\n        id: 41170,\n        name: 'PaymentScheduleSettlPeriodPrice',\n        abbrName: 'SettlPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The schedule settlement period price.',\n    },\n    {\n        id: 41171,\n        name: 'PaymentScheduleSettlPeriodPriceCurrency',\n        abbrName: 'SettlPxCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of the schedule settlement period price. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41172,\n        name: 'PaymentScheduleSettlPeriodPriceUnitOfMeasure',\n        abbrName: 'SettlPxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The settlement period price unit of measure (UOM).',\n    },\n    {\n        id: 41173,\n        name: 'PaymentScheduleStepUnitOfMeasure',\n        abbrName: 'StepUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The schedule step unit of measure (UOM).',\n    },\n    {\n        id: 41174,\n        name: 'PaymentScheduleFixingDayDistribution',\n        abbrName: 'FixngDayDistrib',\n        type: 'PaymentStreamPricingDayDistributionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The distribution of fixing days.',\n    },\n    {\n        id: 41175,\n        name: 'PaymentScheduleFixingDayCount',\n        abbrName: 'FixngDayCnt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of days over which fixing should take place.',\n    },\n    {\n        id: 41176,\n        name: 'PaymentScheduleFixingLagPeriod',\n        abbrName: 'FixngLagPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the fixing lag duration.',\n    },\n    {\n        id: 41177,\n        name: 'PaymentScheduleFixingLagUnit',\n        abbrName: 'FixngLagUnit',\n        type: 'PaymentStreamInflationLagUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the fixing lag duration.',\n    },\n    {\n        id: 41178,\n        name: 'PaymentScheduleFixingFirstObservationDateOffsetPeriod',\n        abbrName: 'FixngFirstObsvtnPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Time unit multiplier for the relative first observation date offset.\\n\\nIf the first observation offset is specified, the observation period will start the specified interval prior to each calculation period - i.e. if the first observation offset is 4 months and the lag duration is 3 months, observations will be taken in months 4, 3 and 2 (but not 1) prior to each calculation period. If no first observation offset is specified, the observation period will end immediately preceding each calculation period.',\n    },\n    {\n        id: 41179,\n        name: 'PaymentScheduleFixingFirstObservationDateOffsetUnit',\n        abbrName: 'FixngFirstObsvtnUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative first observation date offset.',\n    },\n    {\n        id: 41180,\n        name: 'PaymentStreamFlatRateIndicator',\n        abbrName: 'FlatRtInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"When this element is specified and set to 'Y', the Flat Rate is the New Worldwide Tanker Nominal Freight Scale for the Freight Index Route taken at the Trade Date of the transaction \u201CFixed\u201D. If 'N' it is taken on each Pricing Date \u201CFloating\u201D.\",\n    },\n    {\n        id: 41181,\n        name: 'PaymentStreamFlatRateAmount',\n        abbrName: 'FlatRtAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Specifies the actual monetary value of the flat rate when PaymentStreamFlatRateIndicator(41180) = 'Y'.\",\n    },\n    {\n        id: 41182,\n        name: 'PaymentStreamFlatRateCurrency',\n        abbrName: 'FlatRtCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of the actual flat rate. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41183,\n        name: 'PaymentStreamMaximumPaymentAmount',\n        abbrName: 'MaxPmtAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the limit on the total payment amount.',\n    },\n    {\n        id: 41184,\n        name: 'PaymentStreamMaximumPaymentCurrency',\n        abbrName: 'MaxPmtCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of total payment amount limit. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41185,\n        name: 'PaymentStreamMaximumTransactionAmount',\n        abbrName: 'MaxTxnAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the limit on the payment amount that goes out in any particular calculation period.',\n    },\n    {\n        id: 41186,\n        name: 'PaymentStreamMaximumTransactionCurrency',\n        abbrName: 'MaxTxnCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of the period payment amount limit. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41187,\n        name: 'PaymentStreamFixedAmountUnitOfMeasure',\n        abbrName: 'FixedAmtUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the fixed payment amount unit of measure (UOM).',\n    },\n    {\n        id: 41188,\n        name: 'PaymentStreamTotalFixedAmount',\n        abbrName: 'FixedAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the total fixed payment amount.',\n    },\n    {\n        id: 41189,\n        name: 'PaymentStreamWorldScaleRate',\n        abbrName: 'WorldScaleRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The number of Worldscale points for purposes of the calculation of a fixed amount for a wet voyage charter commodity swap.',\n    },\n    {\n        id: 41190,\n        name: 'PaymentStreamContractPrice',\n        abbrName: 'CtrctPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The price per relevant unit for purposes of the calculation of a fixed amount for a dry voyage charter or time charter commodity swap.',\n    },\n    {\n        id: 41191,\n        name: 'PaymentStreamContractPriceCurrency',\n        abbrName: 'CtrctPxCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of PaymentStreamContractPrice(41190). Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41192,\n        name: 'NoPaymentStreamPricingBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41193,\n        name: 'PaymentStreamPricingBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s pricing dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41194,\n        name: 'PaymentStreamRateIndex2CurvePeriod',\n        abbrName: 'Ndx2Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Secondary time unit multiplier for the payment stream's floating rate index curve.\\n\\nMay be used for a Forward Rate Agreement (FRA) with an average rate between two curve points.\",\n    },\n    {\n        id: 41195,\n        name: 'PaymentStreamRateIndex2CurveUnit',\n        abbrName: 'Ndx2Unit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Secondary time unit associated with the payment stream's floating rate index curve.\",\n    },\n    {\n        id: 41196,\n        name: 'PaymentStreamRateIndexLocation',\n        abbrName: 'NdxLctn',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the location of the floating rate index.',\n    },\n    {\n        id: 41197,\n        name: 'PaymentStreamRateIndexLevel',\n        abbrName: 'NdxLvl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'This is the weather Cooling Degree Days (CDD), Heating Degree Days (HDD) or HDD index level specified as the number of (amount of) weather index units specified by the parties in the related confirmation.',\n    },\n    {\n        id: 41198,\n        name: 'PaymentStreamRateIndexUnitOfMeasure',\n        abbrName: 'NdxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unit of measure (UOM) of the rate index level.',\n    },\n    {\n        id: 41199,\n        name: 'PaymentStreamSettlLevel',\n        abbrName: 'SettlLvl',\n        type: 'PaymentStreamSettlLevelCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies how weather index units are to be calculated.',\n    },\n    {\n        id: 41200,\n        name: 'PaymentStreamReferenceLevel',\n        abbrName: 'RefLvl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'This is the weather Cooling Degree Days (CDD), Heating Degree Days (HDD) or HDD reference level specified as the number of (amount of) weather index units specified by the parties in the related confirmation.',\n    },\n    {\n        id: 41201,\n        name: 'PaymentStreamReferenceLevelUnitOfMeasure',\n        abbrName: 'RefUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unit of measure (UOM) of the rate reference level.',\n    },\n    {\n        id: 41202,\n        name: 'PaymentStreamReferenceLevelEqualsZeroIndicator',\n        abbrName: 'RefLvlZero',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"When set to 'Y', it indicates the weather reference level equals zero.\",\n    },\n    {\n        id: 41203,\n        name: 'PaymentStreamRateSpreadCurrency',\n        abbrName: 'SpreadCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of the floating rate spread. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41204,\n        name: 'PaymentStreamRateSpreadUnitOfMeasure',\n        abbrName: 'SpreadUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Species the unit of measure (UOM) of the floating rate spread.',\n    },\n    {\n        id: 41205,\n        name: 'PaymentStreamRateConversionFactor',\n        abbrName: 'RtFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The number to be multiplied by the derived floating rate of the payment stream in order to arrive at the payment rate. If omitted, the floating rate conversion factor is 1.',\n    },\n    {\n        id: 41206,\n        name: 'PaymentStreamRateSpreadType',\n        abbrName: 'SpreadTyp',\n        type: 'PaymentStreamRateSpreadTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies whether the rate spread is an absolute value to be added to the index rate or a percentage of the index rate.',\n    },\n    {\n        id: 41207,\n        name: 'PaymentStreamLastResetRate',\n        abbrName: 'LastResetRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The floating rate determined at the most recent reset. The rate is expressed in decimal form, e.g. 5% is represented as 0.05.',\n    },\n    {\n        id: 41208,\n        name: 'PaymentStreamFinalRate',\n        abbrName: 'FnlRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The floating rate determined at the final reset. The rate is expressed in decimal form, e.g. 5% is represented as 0.05.',\n    },\n    {\n        id: 41209,\n        name: 'PaymentStreamCalculationLagPeriod',\n        abbrName: 'CalcLagPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the calculation lag duration.',\n    },\n    {\n        id: 41210,\n        name: 'PaymentStreamCalculationLagUnit',\n        abbrName: 'CalcLagUnit',\n        type: 'PaymentStreamInflationLagUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the calculation lag duration.',\n    },\n    {\n        id: 41211,\n        name: 'PaymentStreamFirstObservationDateOffsetPeriod',\n        abbrName: 'FirstObsvtnOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Time unit multiplier for the relative first observation date offset.\\n\\nIf the first observation offset is specified, the observation period will start the specified interval prior to each calculation period - i.e. if the first observation offset is 4 months and the lag duration is 3 months, observations will be taken in months 4, 3 and 2 (but not 1) prior to each calculation period. If no first observation offset is specified, the observation period will end immediately preceding each calculation period.',\n    },\n    {\n        id: 41212,\n        name: 'PaymentStreamFirstObservationDateOffsetUnit',\n        abbrName: 'FirstObsvtnOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative first observation date offset.',\n    },\n    {\n        id: 41213,\n        name: 'PaymentStreamPricingDayType',\n        abbrName: 'PxngDayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the commodity pricing day type.',\n    },\n    {\n        id: 41214,\n        name: 'PaymentStreamPricingDayDistribution',\n        abbrName: 'PxngDayDistrib',\n        type: 'PaymentStreamPricingDayDistributionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The distribution of pricing days.',\n    },\n    {\n        id: 41215,\n        name: 'PaymentStreamPricingDayCount',\n        abbrName: 'PxngDayCnt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of days over which pricing should take place.',\n    },\n    {\n        id: 41216,\n        name: 'PaymentStreamPricingBusinessCalendar',\n        abbrName: 'PxngClndr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the business calendar to use for pricing.\\n\\nSee http://www.fpml.org/coding-scheme/commodity-business-calendar for values.',\n    },\n    {\n        id: 41217,\n        name: 'PaymentStreamPricingBusinessDayConvention',\n        abbrName: 'PxngBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"The business day convention used to adjust the payent stream's pricing dates. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.\",\n    },\n    {\n        id: 41218,\n        name: 'DeliveryStreamRiskApportionmentSource',\n        abbrName: 'RiskApprtnmtSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the source or legal framework for the risk apportionment.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Risk_Apportionment_Source for the details of the external code list.',\n    },\n    {\n        id: 41219,\n        name: 'LegDeliveryStreamRiskApportionmentSource',\n        abbrName: 'RiskApprtnmtSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the source or legal framework for the risk apportionment.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Risk_Apportionment_Source for the details of the external code list.',\n    },\n    {\n        id: 41220,\n        name: 'NoPaymentStreamPaymentDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of payment dates in the repeating group.',\n    },\n    {\n        id: 41221,\n        name: 'PaymentStreamPaymentDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted or unadjusted fixed stream payment date.',\n    },\n    {\n        id: 41222,\n        name: 'PaymentStreamPaymentDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of payment date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41223,\n        name: 'PaymentStreamMasterAgreementPaymentDatesIndicator',\n        abbrName: 'MADts',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"When set to 'Y', it indicates that payment dates are specified in the relevant master agreement.\",\n    },\n    {\n        id: 41224,\n        name: 'NoPaymentStreamPricingDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of pricing dates in the repeating group.',\n    },\n    {\n        id: 41225,\n        name: 'PaymentStreamPricingDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted or unadjusted fixed stream pricing date.',\n    },\n    {\n        id: 41226,\n        name: 'PaymentStreamPricingDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of pricing date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41227,\n        name: 'NoPaymentStreamPricingDays',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of pricing days in the repeating group.',\n    },\n    {\n        id: 41228,\n        name: 'PaymentStreamPricingDayOfWeek',\n        abbrName: 'DayOfWk',\n        type: 'PaymentStreamPricingDayOfWeekCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The day of the week on which pricing takes place.',\n    },\n    {\n        id: 41229,\n        name: 'PaymentStreamPricingDayNumber',\n        abbrName: 'DayNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The occurrence of the day of week on which pricing takes place.\\n\\nFor example a pricing day of the 3rd Friday would be DayOfWk=5 DayNum=3.',\n    },\n    {\n        id: 41230,\n        name: 'NoPricingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41231,\n        name: 'PricingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust pricing or fixing dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41232,\n        name: 'PricingDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted pricing or fixing date.',\n    },\n    {\n        id: 41233,\n        name: 'PricingDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust pricing or fixing dates. Used only to override the business day convention defined in the DateAdjustment component within the Instrument component.',\n    },\n    {\n        id: 41234,\n        name: 'PricingDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted pricing or fixing date.',\n    },\n    {\n        id: 41235,\n        name: 'PricingTime',\n        abbrName: 'Tm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the local market time of the pricing or fixing.',\n    },\n    {\n        id: 41236,\n        name: 'PricingTimeBusinessCenter',\n        abbrName: 'TmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the business center for determining the pricing or fixing time. See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41237,\n        name: 'NoStreamAssetAttributes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of asset attribute entries in the group.',\n    },\n    {\n        id: 41238,\n        name: 'StreamAssetAttributeType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the name of the attribute.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Asset_Attribute_Types for code list of applicable asset attribute types.',\n    },\n    {\n        id: 41239,\n        name: 'StreamAssetAttributeValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the value of the attribute.',\n    },\n    {\n        id: 41240,\n        name: 'StreamAssetAttributeLimit',\n        abbrName: 'Lmt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Limit or lower acceptable value of the attribute.',\n    },\n    {\n        id: 41241,\n        name: 'NoStreamCalculationPeriodDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of calculation period dates in the repeating group.',\n    },\n    {\n        id: 41242,\n        name: 'StreamCalculationPeriodDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted or unadjusted fixed calculation period date.',\n    },\n    {\n        id: 41243,\n        name: 'StreamCalculationPeriodDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of fixed calculation period date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41244,\n        name: 'StreamCalculationPeriodDatesXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this calculation period for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41245,\n        name: 'StreamCalculationPeriodDatesXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Cross reference to another calculation period for duplicating its properties.',\n    },\n    {\n        id: 41246,\n        name: 'StreamCalculationBalanceOfFirstPeriod',\n        abbrName: 'BalFirst',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"When specified and set to 'Y', it indicates that the first calculation period should run from the effective date to the end of the calendar period in which the effective date falls (e.g. Jan 15 - Jan 31 if the calculation periods are one month long and effective date is Jan 15.). If 'N' or not specified, it indicates that the first calculation period should run from the effective date for one whole period (e.g. Jan 15 to Feb 14 if the calculation periods are one month long and the effective date is Jan 15.).\",\n    },\n    {\n        id: 41247,\n        name: 'StreamCalculationCorrectionPeriod',\n        abbrName: 'CrrctnPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Time unit multiplier for the length of time after the publication of the data when corrections can be made.',\n    },\n    {\n        id: 41248,\n        name: 'StreamCalculationCorrectionUnit',\n        abbrName: 'CrrctnUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Time unit associated with the length of time after the publication of the data when corrections can be made.',\n    },\n    {\n        id: 41249,\n        name: 'NoStreamCommoditySettlBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41250,\n        name: 'StreamCommoditySettlBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the commodity delivery date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41251,\n        name: 'StreamCommodityBase',\n        abbrName: 'Base',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the general base type of the commodity traded. Where possible, this should follow the naming convention used in the 2005 ISDA Commodity Definitions.\\n\\nExamples of general commodity base types include: Metal, Bullion, Oil, Natural Gas, Coal, Electricity, Inter-Energy, Grains, Oils Seeds, Dairy, Livestock, Forestry, Softs, Weather, Emissions.',\n    },\n    {\n        id: 41252,\n        name: 'StreamCommodityType',\n        abbrName: 'CmdtyTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of commodity product.\\n\\nFor coal see http://www.fpml.org/coding-scheme/commodity-coal-product-type for values.\\n\\nFor metals see http://www.fpml.org/coding-scheme/commodity-metal-product-type for values.\\n\\nFor bullion see http://www.fixtradingcommunity.org/codelists#Bullion_Types for the external code list of bullion types.',\n    },\n    {\n        id: 41253,\n        name: 'StreamCommoditySecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '41254',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the market identifier for the commodity.',\n    },\n    {\n        id: 41254,\n        name: 'StreamCommoditySecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '265',\n        description: 'Identifies the class or source of the StreamCommoditySecurityIDSource(41253) value.',\n    },\n    {\n        id: 41255,\n        name: 'StreamCommodityDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Description of the commodity asset.',\n    },\n    {\n        id: 41256,\n        name: 'EncodedStreamCommodityDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedStreamCommodityDesc(41257) field.',\n    },\n    {\n        id: 41257,\n        name: 'EncodedStreamCommodityDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41256',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the StreamCommodityDesc(41255) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the StreamCommodityDesc(41255) field.',\n    },\n    {\n        id: 41258,\n        name: 'StreamCommodityUnitOfMeasure',\n        abbrName: 'UOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unit of measure (UOM) of the commodity asset.',\n    },\n    {\n        id: 41259,\n        name: 'StreamCommodityCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the currency of the commodity asset. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41260,\n        name: 'StreamCommodityExchange',\n        abbrName: 'Exch',\n        type: 'Exchange',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the exchange where the commodity is traded.',\n    },\n    {\n        id: 41261,\n        name: 'StreamCommodityRateSource',\n        abbrName: 'RtSrc',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the source of rate information used for commodities.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Commodity_Rate_Source for code list of applicable sources.',\n    },\n    {\n        id: 41262,\n        name: 'StreamCommodityRateReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the reference \"page\" from the rate source.',\n    },\n    {\n        id: 41263,\n        name: 'StreamCommodityRateReferencePageHeading',\n        abbrName: 'RefHdng',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the page heading from the rate source.',\n    },\n    {\n        id: 41264,\n        name: 'StreamDataProvider',\n        abbrName: 'DataPrvdr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the commodity data or information provider.\\n\\nSee http://www.fpml.org/coding-scheme/commodity-information-provider for values.',\n    },\n    {\n        id: 41265,\n        name: 'StreamCommodityPricingType',\n        abbrName: 'PxngTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies how the pricing or rate setting of the trade is to be determined or based upon.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Commodity_Rate_Pricing_Type for code list of applicable commodity pricing types.',\n    },\n    {\n        id: 41266,\n        name: 'StreamCommodityNearbySettlDayPeriod',\n        abbrName: 'Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Time unit multiplier for the nearby settlement day.\\n\\nWhen the commodity transaction references a futures contract, the delivery or settlement dates are a nearby month or week. For example, for eighth nearby month use Period=8 and Unit=Mo.',\n    },\n    {\n        id: 41267,\n        name: 'StreamCommodityNearbySettlDayUnit',\n        abbrName: 'Unit',\n        type: 'StreamCommodityNearbySettlDayUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the nearby settlement day.',\n    },\n    {\n        id: 41268,\n        name: 'StreamCommoditySettlDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted commodity delivery date.',\n    },\n    {\n        id: 41269,\n        name: 'StreamCommoditySettlDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the commodity delivery date. Used only to override the business day convention specified in the DateAdjustment component within the Instrument component.',\n    },\n    {\n        id: 41270,\n        name: 'StreamCommoditySettlDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted commodity delivery date.',\n    },\n    {\n        id: 41271,\n        name: 'StreamCommoditySettlMonth',\n        abbrName: 'Mo',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies a fixed single month for commodity delivery.\\n\\nUse \"1\" for January, \"2\" for February, etc.',\n    },\n    {\n        id: 41272,\n        name: 'StreamCommoditySettlDateRollPeriod',\n        abbrName: 'RollPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Time unit multiplier for the commodity delivery date roll.\\n\\nFor a commodity transaction that references a listed future via the delivery dates, this is the day offset on which the specified future will roll to the next nearby month when the referenced future expires.',\n    },\n    {\n        id: 41273,\n        name: 'StreamCommoditySettlDateRollUnit',\n        abbrName: 'RollUnit',\n        type: 'StreamCommoditySettlDateRollUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the commodity delivery date roll.',\n    },\n    {\n        id: 41274,\n        name: 'StreamCommoditySettlDayType',\n        abbrName: 'DayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the commodity delivery roll day type.',\n    },\n    {\n        id: 41275,\n        name: 'StreamCommodityXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this stream commodity for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41276,\n        name: 'StreamCommodityXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to a stream commodity elsewhere in the message.',\n    },\n    {\n        id: 41277,\n        name: 'NoStreamCommodityAltIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of alternate security identifers.',\n    },\n    {\n        id: 41278,\n        name: 'StreamCommodityAltID',\n        abbrName: 'AltID',\n        type: 'String',\n        discriminatorId: '41279',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Alternate security identifier value for the commodity.',\n    },\n    {\n        id: 41279,\n        name: 'StreamCommodityAltIDSource',\n        abbrName: 'AltIDSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the class or source of the alternate commodity security identifier.',\n    },\n    {\n        id: 41280,\n        name: 'NoStreamCommodityDataSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Number of data sources in the repeating group. The order of entry determines priority \u2013 first is the main source, second is fallback, third is second fallback.',\n    },\n    {\n        id: 41281,\n        name: 'StreamCommodityDataSourceID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Data source identifier.',\n    },\n    {\n        id: 41282,\n        name: 'StreamCommodityDataSourceIDType',\n        abbrName: 'Typ',\n        type: 'StreamCommodityDataSourceIDTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Type of data source identifier.',\n    },\n    {\n        id: 41283,\n        name: 'NoStreamCommoditySettlDays',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of days in the repeating group.',\n    },\n    {\n        id: 41284,\n        name: 'StreamCommoditySettlDay',\n        abbrName: 'Day',\n        type: 'DeliveryScheduleSettlDayCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the day or group of days for delivery.',\n    },\n    {\n        id: 41285,\n        name: 'StreamCommoditySettlTotalHours',\n        abbrName: 'TotHrs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Sum of the hours specified in StreamCommoditySettlTimeGrp.',\n    },\n    {\n        id: 41286,\n        name: 'NoStreamCommoditySettlTimes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of hour ranges in the repeating group.',\n    },\n    {\n        id: 41287,\n        name: 'StreamCommoditySettlStart',\n        abbrName: 'Start',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The start time for commodities settlement where delivery occurs over time. The time format is specified by the settlement time type.',\n    },\n    {\n        id: 41288,\n        name: 'StreamCommoditySettlEnd',\n        abbrName: 'End',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The end time for commodities settlement where delivery occurs over time. The time format is specified by the settlement time type.',\n    },\n    {\n        id: 41289,\n        name: 'NoStreamCommoditySettlPeriods',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of commodity settlement periods in the repeating group.',\n    },\n    {\n        id: 41290,\n        name: 'StreamCommoditySettlCountry',\n        abbrName: 'Ctry',\n        type: 'Country',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the country where delivery takes place. Uses ISO 3166 2-character country code.',\n    },\n    {\n        id: 41291,\n        name: 'StreamCommoditySettlTimeZone',\n        abbrName: 'TZ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Commodity delivery timezone specified as \"prevailing\" rather than \"standard\" or \"daylight\".\\n\\nSee http://www.fixtradingcommunity.org/codelists#Prevailing_Timezones for code list of applicable prevailing timezones.',\n    },\n    {\n        id: 41292,\n        name: 'StreamCommoditySettlFlowType',\n        abbrName: 'FlowTyp',\n        type: 'DeliveryScheduleSettlFlowTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '179',\n        description: 'Specifies the commodity delivery flow type.',\n    },\n    {\n        id: 41293,\n        name: 'StreamCommoditySettlPeriodNotional',\n        abbrName: 'Notl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the delivery quantity associated with this settlement period.',\n    },\n    {\n        id: 41294,\n        name: 'StreamCommoditySettlPeriodNotionalUnitOfMeasure',\n        abbrName: 'NotlUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the unit of measure (UOM) of the delivery quantity associated with this settlement period.',\n    },\n    {\n        id: 41295,\n        name: 'StreamCommoditySettlPeriodFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the settlement period frequency.',\n    },\n    {\n        id: 41296,\n        name: 'StreamCommoditySettlPeriodFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the settlement period frequency.',\n    },\n    {\n        id: 41297,\n        name: 'StreamCommoditySettlPeriodPrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The settlement period price.',\n    },\n    {\n        id: 41298,\n        name: 'StreamCommoditySettlPeriodPriceUnitOfMeasure',\n        abbrName: 'PxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the settlement period price unit of measure (UOM).',\n    },\n    {\n        id: 41299,\n        name: 'StreamCommoditySettlPeriodPriceCurrency',\n        abbrName: 'PxCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The currency of the settlement period price. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41300,\n        name: 'StreamCommoditySettlHolidaysProcessingInstruction',\n        abbrName: 'Holidays',\n        type: 'DeliveryScheduleSettlHolidaysProcessingInstructionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether holidays are included in the settlement periods. Required for electricity contracts.',\n    },\n    {\n        id: 41301,\n        name: 'StreamCommoditySettlPeriodXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this settlement period for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41302,\n        name: 'StreamCommoditySettlPeriodXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Cross reference to another settlement period for duplicating its properties.',\n    },\n    {\n        id: 41303,\n        name: 'StreamXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this Stream for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41304,\n        name: 'PaymentLegRefID',\n        abbrName: 'LegRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            \"Identifies the instrument leg in which this payment applies to by referencing the leg's LegID(1788).\",\n    },\n    {\n        id: 41305,\n        name: 'StreamNotionalXIDRef',\n        abbrName: 'NotlXIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Cross reference to another Stream notional for duplicating its properties.',\n    },\n    {\n        id: 41306,\n        name: 'StreamNotionalFrequencyPeriod',\n        abbrName: 'NotlPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Time unit multiplier for the swap stream's notional frequency.\",\n    },\n    {\n        id: 41307,\n        name: 'StreamNotionalFrequencyUnit',\n        abbrName: 'NotlUnit',\n        type: 'TimeUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Time unit associated with the swap stream's notional frequency.\",\n    },\n    {\n        id: 41308,\n        name: 'StreamNotionalCommodityFrequency',\n        abbrName: 'NotlFreq',\n        type: 'StreamNotionalCommodityFrequencyCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"The commodity's notional or quantity delivery frequency.\",\n    },\n    {\n        id: 41309,\n        name: 'StreamNotionalUnitOfMeasure',\n        abbrName: 'NotlUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the delivery stream quantity unit of measure (UOM).',\n    },\n    {\n        id: 41310,\n        name: 'StreamTotalNotional',\n        abbrName: 'TotNotl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Total notional or delivery quantity over the term of the contract.',\n    },\n    {\n        id: 41311,\n        name: 'StreamTotalNotionalUnitOfMeasure',\n        abbrName: 'TotNotlUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the unit of measure (UOM) for the total notional or delivery quantity over the term of the contract.',\n    },\n    {\n        id: 41312,\n        name: 'NoMandatoryClearingJurisdictions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of mandatory clearing jurisdictions.',\n    },\n    {\n        id: 41313,\n        name: 'MandatoryClearingJurisdiction',\n        abbrName: 'Jrsdctn',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of the regulatory jurisdiction requiring the trade to be cleared.',\n    },\n    {\n        id: 41314,\n        name: 'UnderlyingProtectionTermXIDRef',\n        abbrName: 'ProtctnXIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Reference to the protection terms applicable to this entity or obligation. Contains the same XID named string value of the instance in the ProtectionTerms repeating group that applies to this Underlying.',\n    },\n    {\n        id: 41315,\n        name: 'UnderlyingSettlTermXIDRef',\n        abbrName: 'SettlXIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description:\n            'Reference to the cash or physical settlement terms applicable to this entity or obligation. Contains the same XID named string value of the instance in the appropriate repeating group that applies to this Underlying.',\n    },\n    {\n        id: 41316,\n        name: 'NoLegAdditionalTermBondRefs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of bonds in the repeating group.',\n    },\n    {\n        id: 41317,\n        name: 'LegAdditionalTermBondSecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '41318',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Security identifier of the bond.',\n    },\n    {\n        id: 41318,\n        name: 'LegAdditionalTermBondSecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the source scheme of the LegAdditionalTermBondSecurityID(41317) value.',\n    },\n    {\n        id: 41319,\n        name: 'LegAdditionalTermBondDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Description of the bond.',\n    },\n    {\n        id: 41320,\n        name: 'EncodedLegAdditionalTermBondDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedLegAdditionalTermBondDesc(41321) field.',\n    },\n    {\n        id: 41321,\n        name: 'EncodedLegAdditionalTermBondDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41320',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the LegAdditionalTermBondDesc(41319) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegAdditionalTermBondDesc(41319) field.',\n    },\n    {\n        id: 41322,\n        name: 'LegAdditionalTermBondCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency the bond value is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41323,\n        name: 'LegAdditionalTermBondIssuer',\n        abbrName: 'Issr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Issuer of the bond.',\n    },\n    {\n        id: 41324,\n        name: 'EncodedLegAdditionalTermBondIssuerLen',\n        abbrName: 'EncIssrLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedLegAdditionalTermBondIssuer(41325) field.',\n    },\n    {\n        id: 41325,\n        name: 'EncodedLegAdditionalTermBondIssuer',\n        abbrName: 'EncIssr',\n        type: 'data',\n        lengthId: '41324',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the LegAdditionalTermBondIssuer(41323) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegAdditionalTermBondIssuer(41323) field.',\n    },\n    {\n        id: 41326,\n        name: 'LegAdditionalTermBondSeniority',\n        abbrName: 'Snrty',\n        type: 'SeniorityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Specifies the bond's payment priority in the event of a default.\",\n    },\n    {\n        id: 41327,\n        name: 'LegAdditionalTermBondCouponType',\n        abbrName: 'CpnTyp',\n        type: 'CouponTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the coupon type of the bond.',\n    },\n    {\n        id: 41328,\n        name: 'LegAdditionalTermBondCouponRate',\n        abbrName: 'CpnRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Coupon rate of the bond. See also CouponRate(223).',\n    },\n    {\n        id: 41329,\n        name: 'LegAdditionalTermBondMaturityDate',\n        abbrName: 'MatDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The maturity date of the bond.',\n    },\n    {\n        id: 41330,\n        name: 'LegAdditionalTermBondParValue',\n        abbrName: 'Par',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The par value of the bond.',\n    },\n    {\n        id: 41331,\n        name: 'LegAdditionalTermBondCurrentTotalIssuedAmount',\n        abbrName: 'CurTotAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Total issued amount of the bond.',\n    },\n    {\n        id: 41332,\n        name: 'LegAdditionalTermBondCouponFrequencyPeriod',\n        abbrName: 'CpnPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Time unit multiplier for the frequency of the bond's coupon payment.\",\n    },\n    {\n        id: 41333,\n        name: 'LegAdditionalTermBondCouponFrequencyUnit',\n        abbrName: 'CpnUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Time unit associated with the frequency of the bond's coupon payment.\",\n    },\n    {\n        id: 41334,\n        name: 'LegAdditionalTermBondDayCount',\n        abbrName: 'DayCnt',\n        type: 'CouponDayCountCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The day count convention used in interest calculations for a bond or an interest bearing security.',\n    },\n    {\n        id: 41335,\n        name: 'NoLegAdditionalTerms',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of additional terms in the repeating group.',\n    },\n    {\n        id: 41336,\n        name: 'LegAdditionalTermConditionPrecedentBondIndicator',\n        abbrName: 'PrcdntInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether the condition precedent bond is applicable. The swap contract is only valid if the bond is issued and if there is any dispute over the terms of fixed stream then the bond terms would be used.',\n    },\n    {\n        id: 41337,\n        name: 'LegAdditionalTermDiscrepancyClauseIndicator',\n        abbrName: 'DscrpncyInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Indicates whether the discrepancy clause is applicable.',\n    },\n    {\n        id: 41338,\n        name: 'UnderlyingMarketDisruptionValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Applicable value for UnderlyingMarketDisruptionEvent(41865).',\n    },\n    {\n        id: 41339,\n        name: 'UnderlyingMarketDisruptionFallbackValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Applicable value for UnderlyingMarketDisruptionFallbackType(41867).',\n    },\n    {\n        id: 41340,\n        name: 'NoUnderlyingAdditionalTermBondRefs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of bonds in the repeating group.',\n    },\n    {\n        id: 41341,\n        name: 'UnderlyingAdditionalTermBondSecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '41701',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Security identifier of the bond.',\n    },\n    {\n        id: 41342,\n        name: 'NoLegCashSettlDealers',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of dealers in the repeating group.',\n    },\n    {\n        id: 41343,\n        name: 'LegCashSettlDealer',\n        abbrName: 'Dlr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the dealer from whom price quotations for the reference obligation are obtained for the purpose of cash settlement valuation calculation.\\n\\nISDA 2003 Term: Dealer',\n    },\n    {\n        id: 41344,\n        name: 'NoLegCashSettlTerms',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of elements in the repeating group.',\n    },\n    {\n        id: 41345,\n        name: 'LegCashSettlCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the currency the LegCashSettlAmount(41357) is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41346,\n        name: 'LegCasSettlValuationFirstBusinessDayOffset',\n        abbrName: 'BizDayOfst',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The number of business days after settlement conditions have been satisfied, when the calculation agent is to obtain a price quotation on the reference obligation for purposes of cash settlement.\\n\\nAssociated with ISDA 2003 Term: Valuation Date.',\n    },\n    {\n        id: 41347,\n        name: 'LegCashSettlValuationSubsequentBusinessDaysOffset',\n        abbrName: 'SbsqntBizDayOfst',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The number of business days between successive valuation dates when multiple valuation dates are applicable for cash settlement.',\n    },\n    {\n        id: 41348,\n        name: 'LegCashSettlNumOfValuationDates',\n        abbrName: 'NumValDts',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Where multiple valuation dates are specified as being applicable for cash settlement, this element specifies the number of applicable valuation dates.\\n\\nAssociated with ISDA 2003 Term: Valuation Date',\n    },\n    {\n        id: 41349,\n        name: 'LegCashSettlValuationTime',\n        abbrName: 'ValTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time of valuation.',\n    },\n    {\n        id: 41350,\n        name: 'LegCashSettlBusinessCenter',\n        abbrName: 'BizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the business center calendar used at valuation time for cash settlement purposes e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41351,\n        name: 'LegCashSettlQuoteMethod',\n        abbrName: 'QteMeth',\n        type: 'CashSettlQuoteMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The type of quote used to determine the cash settlement price.',\n    },\n    {\n        id: 41352,\n        name: 'LegCashSettlQuoteAmount',\n        abbrName: 'QteAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'When determining the cash settlement amount, if weighted average price quotes are to be obtained for the reference obligation, this is the upper limit to the outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount equal to floating rate payer calculation amount.\\n\\nISDA 2003 Term: Quotation Amount.',\n    },\n    {\n        id: 41353,\n        name: 'LegCashSettlQuoteCurrency',\n        abbrName: 'QteCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the currency the LegCashSettlQuoteAmount(41352) is denominated in. Uses ISO 4217 Currency Code.',\n    },\n    {\n        id: 41354,\n        name: 'LegCashSettlMinimumQuoteAmount',\n        abbrName: 'MinQteAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'When determining the cash settlement amount, if weighted average price quotes are to be obtained for the reference obligation, this is the minimum intended threshold amount of outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount of the lower of either USD1,000,000 (or its equivalent in the relevant obligation currency) or the (minimum) quoted amount.\\n\\nISDA 2003 Term: Minimum Quotation Amount.',\n    },\n    {\n        id: 41355,\n        name: 'LegCashSettlMinimumQuoteCurrency',\n        abbrName: 'MinQteCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the currency the LegCashSettlQuoteMinimumAmount(41354) is denominated in. Uses ISO 4217 Currency Code.',\n    },\n    {\n        id: 41356,\n        name: 'LegCashSettlBusinessDays',\n        abbrName: 'BizDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The number of business days used in the determination of the cash settlement payment date.\\n\\nIf a cash settlement amount is specified, the cash settlement payment date will be this number of business days following the calculation of the final price. If a cash settlement amount is not specified, the cash settlement payment date will be this number of business days after all conditions to settlement are satisfied. ISDA 2003 Term: Cash Settlement Date.',\n    },\n    {\n        id: 41357,\n        name: 'LegCashSettlAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The amount paid between the trade parties, seller to the buyer, for cash settlement on the cash settlement date.\\n\\nIf not specified this would typically be calculated as ((100 or the reference price) - reference obligation price) x floating rate payer calculation amount. Price values are all expressed as a percentage. ISDA 2003 Term: Cash Settlement Amount.',\n    },\n    {\n        id: 41358,\n        name: 'LegCashSettlRecoveryFactor',\n        abbrName: 'RcvryFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Used for fixed recovery, this specifies the recovery level as determined at contract inception, to be applied in the event of a default. The factor is used to calculate the amount paid by the seller to the buyer for cash settlement on the cash settlement date. The amount calculated is (1 - LegCashSettlRecoveryFactor(41358)) x floating rate payer calculation amount. The currency is derived from the floating rate payer calculation amount.',\n    },\n    {\n        id: 41359,\n        name: 'LegCashSettlFixedTermIndicator',\n        abbrName: 'FixedInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Indicates whether fixed settlement is applicable or not applicable in a recovery lock.',\n    },\n    {\n        id: 41360,\n        name: 'LegCashSettlAccruedInterestIndicator',\n        abbrName: 'AcrdIntInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether accrued interest is included or not in the value provided in LegCashSettlAmount(41357).\\n\\nFor cash settlement this specifies whether quotations should be obtained inclusive or not of accrued interest.\\n\\nFor physical settlement this specifies whether the buyer should deliver the obligation with an outstanding principal balance that includes or excludes accrued interest.\\n\\nISDA 2003 Term: Include/Exclude Accrued Interest.',\n    },\n    {\n        id: 41361,\n        name: 'LegCashSettlValuationMethod',\n        abbrName: 'ValMeth',\n        type: 'CashSettlValuationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The ISDA defined methodology for determining the final price of the reference obligation for purposes of cash settlement.\\n\\nISDA 2003 Term: Valuation Method.',\n    },\n    {\n        id: 41362,\n        name: 'LegCashSettlTermXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'A named string value referenced by UnderlyingSettlTermXIDRef(41315).',\n    },\n    {\n        id: 41363,\n        name: 'NoLegComplexEventAveragingObservations',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of averaging observations in the repeating group.',\n    },\n    {\n        id: 41364,\n        name: 'LegComplexEventAveragingObservationNumber',\n        abbrName: 'ObsvtnNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Cross reference to the ordinal observation as specified either in the LegComplexEventScheduleGrp or LegComplexEventPeriodDateGrp components.',\n    },\n    {\n        id: 41365,\n        name: 'LegComplexEventAveragingWeight',\n        abbrName: 'Wt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The weight factor to be applied to the observation.',\n    },\n    {\n        id: 41366,\n        name: 'NoLegComplexEventCreditEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of credit events specified in the repeating group.',\n    },\n    {\n        id: 41367,\n        name: 'LegComplexEventCreditEventType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of credit event.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Credit_Event_Types for code list of applicable event types.',\n    },\n    {\n        id: 41368,\n        name: 'LegComplexEventCreditEventValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The credit event value appropriate to LegComplexEventCreditEventType(41367).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Credit_Event_Types for applicable event type values.',\n    },\n    {\n        id: 41369,\n        name: 'LegComplexEventCreditEventCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the applicable currency when LegComplexEventCreditEventCurrency(41368) is an amount. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41370,\n        name: 'LegComplexEventCreditEventPeriod',\n        abbrName: 'Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for complex credit events.',\n    },\n    {\n        id: 41371,\n        name: 'LegComplexEventCreditEventUnit',\n        abbrName: 'Unit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with complex credit events.',\n    },\n    {\n        id: 41372,\n        name: 'LegComplexEventCreditEventDayType',\n        abbrName: 'DayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the day type for the complex credit events.',\n    },\n    {\n        id: 41373,\n        name: 'LegComplexEventCreditEventRateSource',\n        abbrName: 'RtSrc',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the source of rate information used for credit events.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Credit_Event_Rate_Source for code list of applicable sources.',\n    },\n    {\n        id: 41374,\n        name: 'NoLegComplexEventCreditEventQualifiers',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of qualifiers in the repeating group.',\n    },\n    {\n        id: 41375,\n        name: 'LegComplexEventCreditEventQualifier',\n        abbrName: 'Qual',\n        type: 'ProtectionTermEventQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies a complex event qualifier. Used to further qualify LegComplexEventCreditEventType(41367).',\n    },\n    {\n        id: 41376,\n        name: 'NoLegComplexEventPeriodDateTimes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of entries in the date-time repeating group.',\n    },\n    {\n        id: 41377,\n        name: 'LegComplexEventPeriodDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Averaging date for an Asian option.\\n\\nTrigger date for a Barrier or Knock option.',\n    },\n    {\n        id: 41378,\n        name: 'LegComplexEventPeriodTime',\n        abbrName: 'Tm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Averaging time for an Asian option.',\n    },\n    {\n        id: 41379,\n        name: 'NoLegComplexEventPeriods',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of periods in the repeating group.',\n    },\n    {\n        id: 41380,\n        name: 'LegComplexEventPeriodType',\n        abbrName: 'Typ',\n        type: 'ComplexEventPeriodTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the period type.',\n    },\n    {\n        id: 41381,\n        name: 'LegComplexEventBusinessCenter',\n        abbrName: 'BizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center for adjusting dates and times in the schedule or date-time group.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41382,\n        name: 'NoLegComplexEventRateSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of rate sources in the repeating group.',\n    },\n    {\n        id: 41383,\n        name: 'LegComplexEventRateSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the source of rate information.\\n\\nFor FX, the reference source to be used for the FX spot rate.',\n    },\n    {\n        id: 41384,\n        name: 'LegComplexEventRateSourceType',\n        abbrName: 'RtSrcTyp',\n        type: 'RateSourceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Indicates whether the rate source specified is a primary or secondary source.',\n    },\n    {\n        id: 41385,\n        name: 'LegComplexEventReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the reference page from the rate source.\\n\\nFor FX, the reference page to the spot rate is to be used for the reference FX spot rate.\\n\\nWhen LegComplexEventRateSource(41383) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option.',\n    },\n    {\n        id: 41386,\n        name: 'LegComplexEvenReferencePageHeading',\n        abbrName: 'RefHdng',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the reference page heading from the rate source.',\n    },\n    {\n        id: 41387,\n        name: 'NoLegComplexEventDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41388,\n        name: 'LegComplexEventDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the event date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41389,\n        name: 'LegComplexEventDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The unadjusted complex event date.\\n\\nFor example the second expiration date for a calendar spread option strategy.',\n    },\n    {\n        id: 41390,\n        name: 'LegComplexEventDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Specifies the anchor date when the complex event date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 41391,\n        name: 'LegComplexEventDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the relative date offset.',\n    },\n    {\n        id: 41392,\n        name: 'LegComplexEventDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the relative date offset.',\n    },\n    {\n        id: 41393,\n        name: 'LegComplexEventDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the day type of the relative date offset.',\n    },\n    {\n        id: 41394,\n        name: 'LegComplexEventDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the event date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.',\n    },\n    {\n        id: 41395,\n        name: 'LegComplexEventDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted complex event date.',\n    },\n    {\n        id: 41396,\n        name: 'LegComplexEventFixingTime',\n        abbrName: 'FixngTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The local market fixing time.',\n    },\n    {\n        id: 41397,\n        name: 'LegComplexEventFixingTimeBusinessCenter',\n        abbrName: 'FixngBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center for determining the actual fixing times.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41398,\n        name: 'NoLegComplexEventCreditEventSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of event sources in the repeating group.',\n    },\n    {\n        id: 41399,\n        name: 'LegComplexEventCreditEventSource',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'A newspaper or electronic news service that may publish relevant information used in the determination of whether or not a credit event has occurred.',\n    },\n    {\n        id: 41400,\n        name: 'NoLegComplexEventSchedules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of schedules in the repeating group.',\n    },\n    {\n        id: 41401,\n        name: 'LegComplexEventScheduleStartDate',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The start date of the schedule.',\n    },\n    {\n        id: 41402,\n        name: 'LegComplexEventScheduleEndDate',\n        abbrName: 'EndDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The end date of the schedule.',\n    },\n    {\n        id: 41403,\n        name: 'LegComplexEventScheduleFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the schedule date frequency.',\n    },\n    {\n        id: 41404,\n        name: 'LegComplexEventScheduleFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the schedule date frequency.',\n    },\n    {\n        id: 41405,\n        name: 'LegComplexEventScheduleRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The convention for determining the sequence of dates. It is used in conjunction with a specified frequency. Used only to override the roll convention defined in the LegDateAdjustment component in InstrumentLeg.',\n    },\n    {\n        id: 41406,\n        name: 'ProvisionCashSettlQuoteReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the reference \"page\" from the quote source.',\n    },\n    {\n        id: 41407,\n        name: 'LegProvisionCashSettlQuoteReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        description: 'Identifies the reference \"page\" from the quote source.',\n    },\n    {\n        id: 41408,\n        name: 'NoLegDeliverySchedules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of delivery schedules in the repeating group.',\n    },\n    {\n        id: 41409,\n        name: 'LegDeliveryScheduleType',\n        abbrName: 'Typ',\n        type: 'DeliveryScheduleTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the type of delivery schedule.',\n    },\n    {\n        id: 41410,\n        name: 'LegDeliveryScheduleXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifier for this instance of delivery schedule for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41411,\n        name: 'LegDeliveryScheduleNotional',\n        abbrName: 'Notl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Physical delivery quantity.',\n    },\n    {\n        id: 41412,\n        name: 'LegDeliveryScheduleNotionalUnitOfMeasure',\n        abbrName: 'NotlUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the delivery quantity unit of measure (UOM).',\n    },\n    {\n        id: 41413,\n        name: 'LegDeliveryScheduleNotionalCommodityFrequency',\n        abbrName: 'NotlFreq',\n        type: 'StreamNotionalCommodityFrequencyCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The frequency of notional delivery.',\n    },\n    {\n        id: 41414,\n        name: 'LegDeliveryScheduleNegativeTolerance',\n        abbrName: 'NegtvTlrnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the negative tolerance value. The value may be an absolute quantity or a percentage, as specified in LegDeliveryScheduleToleranceType(41417). Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%).',\n    },\n    {\n        id: 41415,\n        name: 'LegDeliverySchedulePositiveTolerance',\n        abbrName: 'PostvTlrnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the positive tolerance value. The value may be an absolute quantity or a percentage, as specified in LegDeliveryScheduleToleranceType(41417). Value may exceed agreed upon value. Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%).',\n    },\n    {\n        id: 41416,\n        name: 'LegDeliveryScheduleToleranceUnitOfMeasure',\n        abbrName: 'TlrncUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Specifies the tolerance value's unit of measure (UOM).\",\n    },\n    {\n        id: 41417,\n        name: 'LegDeliveryScheduleToleranceType',\n        abbrName: 'TlrncTyp',\n        type: 'DeliveryScheduleToleranceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the tolerance value type.',\n    },\n    {\n        id: 41418,\n        name: 'LegDeliveryScheduleSettlCountry',\n        abbrName: 'Ctry',\n        type: 'Country',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the country where delivery takes place. Uses ISO 3166 2-character country code.',\n    },\n    {\n        id: 41419,\n        name: 'LegDeliveryScheduleSettlTimeZone',\n        abbrName: 'TZ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Delivery timezone specified as \"prevailing\" rather than \"standard\" or \"daylight\".\\n\\nSee http://www.fixtradingcommunity.org/codelists#Prevailing_Timezones for code list of applicable prevailing timezones.',\n    },\n    {\n        id: 41420,\n        name: 'LegDeliveryScheduleSettlFlowType',\n        abbrName: 'FlowTyp',\n        type: 'DeliveryScheduleSettlFlowTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the delivery flow type.',\n    },\n    {\n        id: 41421,\n        name: 'LegDeliveryScheduleSettlHolidaysProcessingInstruction',\n        abbrName: 'Holidays',\n        type: 'DeliveryScheduleSettlHolidaysProcessingInstructionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether holidays are included in the settlement periods. Required for electricity contracts.',\n    },\n    {\n        id: 41422,\n        name: 'NoLegDeliveryScheduleSettlDays',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of delivery schedules in the repeating group.',\n    },\n    {\n        id: 41423,\n        name: 'LegDeliveryScheduleSettlDay',\n        abbrName: 'Day',\n        type: 'DeliveryScheduleSettlDayCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the day or group of days for delivery.',\n    },\n    {\n        id: 41424,\n        name: 'LegDeliveryScheduleSettlTotalHours',\n        abbrName: 'TotHrs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The sum of the total hours specified in the LegDeliveryScheduleSettlTimeGrp component.',\n    },\n    {\n        id: 41425,\n        name: 'NoLegDeliveryScheduleSettlTimes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of hour ranges in the repeating group.',\n    },\n    {\n        id: 41426,\n        name: 'LegDeliveryScheduleSettlStart',\n        abbrName: 'Start',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The scheduled start time for the delivery of the commodity where delivery occurs over specified times. The format of the time value is specified in LegDeliveryScheduleSettlTimeType(41428).',\n    },\n    {\n        id: 41427,\n        name: 'LegDeliveryScheduleSettlEnd',\n        abbrName: 'End',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The scheduled end time for the delivery of the commodity where delivery occurs over specified times. The format of the time value is specified in LegDeliveryScheduleSettlTimeType(41428).',\n    },\n    {\n        id: 41428,\n        name: 'LegDeliveryScheduleSettlTimeType',\n        abbrName: 'Typ',\n        type: 'DeliveryScheduleSettlTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the format of the delivery start and end time values.',\n    },\n    {\n        id: 41429,\n        name: 'LegDeliveryStreamType',\n        abbrName: 'Typ',\n        type: 'DeliveryStreamTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the type of delivery stream.',\n    },\n    {\n        id: 41430,\n        name: 'LegDeliveryStreamPipeline',\n        abbrName: 'Ppln',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The name of the oil delivery pipeline.',\n    },\n    {\n        id: 41431,\n        name: 'LegDeliveryStreamEntryPoint',\n        abbrName: 'EntryPnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The point at which the commodity will enter the delivery mechanism or pipeline.',\n    },\n    {\n        id: 41432,\n        name: 'LegDeliveryStreamWithdrawalPoint',\n        abbrName: 'WthdrwlPnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The point at which the commodity product will be withdrawn prior to delivery.',\n    },\n    {\n        id: 41433,\n        name: 'LegDeliveryStreamDeliveryPoint',\n        abbrName: 'DlvryPnt',\n        type: 'String',\n        discriminatorId: '42194',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The point at which the commodity product will be delivered and received. Value specified should follow market convention appropriate for the commodity product.\\n\\nFor bullion, see http://www.fpml.org/coding-scheme/bullion-delivery-location for values.',\n    },\n    {\n        id: 41434,\n        name: 'LegDeliveryStreamDeliveryRestriction',\n        abbrName: 'DlvryRstctn',\n        type: 'DeliveryStreamDeliveryRestrictionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies under what conditions the buyer and seller should be excused of their delivery obligations.',\n    },\n    {\n        id: 41435,\n        name: 'LegDeliveryStreamDeliveryContingency',\n        abbrName: 'Cntgncy',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the electricity delivery contingency. See\\n\\nhttp://www.fpml.org/coding-scheme/electricity-transmission-contingency for values.',\n    },\n    {\n        id: 41436,\n        name: 'LegDeliveryStreamDeliveryContingentPartySide',\n        abbrName: 'CntgPty',\n        type: 'DeliveryStreamElectingPartySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The trade side value of the party responsible for electricity delivery contingency.',\n    },\n    {\n        id: 41437,\n        name: 'LegDeliveryStreamDeliverAtSourceIndicator',\n        abbrName: 'DlvrAtSrc',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"When this element is specified and set to 'Y', delivery of the coal product is to be at its source.\",\n    },\n    {\n        id: 41438,\n        name: 'LegDeliveryStreamRiskApportionment',\n        abbrName: 'RiskApprtnmt',\n        type: 'String',\n        discriminatorId: '41219',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies how the parties to the trade apportion responsibility for the delivery of the commodity product.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Risk_Apportionment for the details of the external code list.',\n    },\n    {\n        id: 41439,\n        name: 'LegDeliveryStreamTitleTransferLocation',\n        abbrName: 'TtlXfer',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the title transfer location.',\n    },\n    {\n        id: 41440,\n        name: 'LegDeliveryStreamTitleTransferCondition',\n        abbrName: 'TtlXferCond',\n        type: 'DeliveryStreamTitleTransferConditionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the condition of title transfer.',\n    },\n    {\n        id: 41441,\n        name: 'LegDeliveryStreamImporterOfRecord',\n        abbrName: 'Imprtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'A party, not necessarily of the trade, who is the Importer of Record for the purposes of paying customs duties and applicable taxes or costs related to importation.',\n    },\n    {\n        id: 41442,\n        name: 'LegDeliveryStreamNegativeTolerance',\n        abbrName: 'NegtvTlrnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the negative tolerance value. The value may be an absolute quantity or a percentage, as specified in LegDeliveryStreamToleranceType(41445). Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%).',\n    },\n    {\n        id: 41443,\n        name: 'LegDeliveryStreamPositiveTolerance',\n        abbrName: 'PostvTlrnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the positive tolerance value. The value may be an absolute quantity or a percentage, as specified in LegDeliveryStreamToleranceType(41445). Value may exceed agreed upon value. Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%).',\n    },\n    {\n        id: 41444,\n        name: 'LegDeliveryStreamToleranceUnitOfMeasure',\n        abbrName: 'TlrncUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Specifies the tolerance value's unit of measure (UOM).\",\n    },\n    {\n        id: 41445,\n        name: 'LegDeliveryStreamToleranceType',\n        abbrName: 'TlrncTyp',\n        type: 'DeliveryScheduleToleranceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the tolerance value type.',\n    },\n    {\n        id: 41446,\n        name: 'LegDeliveryStreamToleranceOptionSide',\n        abbrName: 'TlrncOptSide',\n        type: 'DeliveryStreamToleranceOptionSideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Indicates whether the tolerance is at the seller's or buyer's option.\",\n    },\n    {\n        id: 41447,\n        name: 'LegDeliveryStreamTotalPositiveTolerance',\n        abbrName: 'TotPostvTlrnc',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The positive percent tolerance which applies to the total quantity delivered over all shipment periods.\\n\\nPercentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%.).',\n    },\n    {\n        id: 41448,\n        name: 'LegDeliveryStreamTotalNegativeTolerance',\n        abbrName: 'TotNegtvTlrnc',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The negative percent tolerance which applies to the total quantity delivered over all shipment periods.\\n\\nPercentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%.).',\n    },\n    {\n        id: 41449,\n        name: 'LegDeliveryStreamNotionalConversionFactor',\n        abbrName: 'CnvrsnFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'If the notional quantity is specified in a unit that does not match the unit in which the commodity reference price is quoted, the scaling or conversion factor used to convert the commodity reference price unit into the notional quantity unit should be stated here. If there is no conversion, this field is not intended to be used.',\n    },\n    {\n        id: 41450,\n        name: 'LegDeliveryStreamTransportEquipment',\n        abbrName: 'Eqpmt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The transportation equipment with which the commodity product will be delivered and received.\\n\\nExamples of transportation equipment or mode are barge, truck, railcar, etc.',\n    },\n    {\n        id: 41451,\n        name: 'LegDeliveryStreamElectingPartySide',\n        abbrName: 'ElctngSide',\n        type: 'DeliveryStreamElectingPartySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'A reference to the party able to choose whether the gas is delivered for a particular period e.g. a swing or interruptible contract.',\n    },\n    {\n        id: 41452,\n        name: 'NoLegStreamAssetAttributes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of asset attribute entries in the group.',\n    },\n    {\n        id: 41453,\n        name: 'LegStreamAssetAttributeType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the name of the attribute.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Asset_Attribute_Types for code list of applicable asset attribute types.',\n    },\n    {\n        id: 41454,\n        name: 'LegStreamAssetAttributeValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the value of the attribute.',\n    },\n    {\n        id: 41455,\n        name: 'LegStreamAssetAttributeLimit',\n        abbrName: 'Lmt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Limit or lower acceptable value of the attribute.',\n    },\n    {\n        id: 41456,\n        name: 'NoLegDeliveryStreamCycles',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of commodity sources in the repeating group.',\n    },\n    {\n        id: 41457,\n        name: 'LegDeliveryStreamCycleDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The delivery cycles during which the oil product will be transported in the pipeline.',\n    },\n    {\n        id: 41458,\n        name: 'EncodedLegDeliveryStreamCycleDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedLegDeliveryStreamCycleDesc(41459) field.',\n    },\n    {\n        id: 41459,\n        name: 'EncodedLegDeliveryStreamCycleDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41458',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the LegDeliveryStreamCycleDesc(41457) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegLeg DeliveryStream(41457) field.',\n    },\n    {\n        id: 41460,\n        name: 'NoLegDeliveryStreamCommoditySources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of commodity sources in the repeating group.',\n    },\n    {\n        id: 41461,\n        name: 'LegDeliveryStreamCommoditySource',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The SCoTA coal cargo origin, mining region, mine(s), mining complex(es), loadout(s) or river dock(s) or other point(s) of origin that seller and buyer agree are acceptable origins for the coal product. For international coal transactions, this is the origin of the coal product.\\n\\nSee http://www.fpml.org/coding-scheme/commodity-coal-product-source for values.',\n    },\n    {\n        id: 41462,\n        name: 'LegMarketDisruptionProvision',\n        abbrName: 'Prov',\n        type: 'MarketDisruptionProvisionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The consequences of market disruption events.',\n    },\n    {\n        id: 41463,\n        name: 'LegMarketDisruptionFallbackProvision',\n        abbrName: 'FallbckProv',\n        type: 'MarketDisruptionFallbackProvisionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the location of the fallback provision documentation.',\n    },\n    {\n        id: 41464,\n        name: 'LegMarketDisruptionMaximumDays',\n        abbrName: 'MaxDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the maximum number of market disruption days (commodity or bullion business days) in a contract or confirmation. If none are specified, the maximum number of market disruption days is five (5).\\n\\nISDA 2005 Commodity Definition.',\n    },\n    {\n        id: 41465,\n        name: 'LegMarketDisruptionMaterialityPercentage',\n        abbrName: 'MtrltyPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Used when a price materiality percentage applies to the price source disruption event and this event has been specified.\\n\\nApplicable to 2005 Commodity Definitions only.',\n    },\n    {\n        id: 41466,\n        name: 'LegMarketDisruptionMinimumFuturesContracts',\n        abbrName: 'MinCtrcts',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Specifies the minimum futures contracts level that dictates whether or not a 'De Minimis Trading' event has occurred.\\n\\nApplicable to 1993 Commodity Definitions only.\",\n    },\n    {\n        id: 41467,\n        name: 'NoLegMarketDisruptionEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of disruption events in the repeating group.',\n    },\n    {\n        id: 41468,\n        name: 'LegMarketDisruptionEvent',\n        abbrName: 'Evnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description:\n            'Specifies the market disruption event.\\n\\nFor commodities see http://www.fpml.org/coding-scheme/commodity-market-disruption for values.\\n\\nFor foreign exchange, see http://www.fixtradingcommunity.org/codelists#Market_Disruption_Event for code list of applicable event types.',\n    },\n    {\n        id: 41469,\n        name: 'NoLegMarketDisruptionFallbacks',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of fallbacks in the repeating group.',\n    },\n    {\n        id: 41470,\n        name: 'LegMarketDisruptionFallbackType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of disruption fallback.\\n\\nSee http://www.fpml.org/coding-scheme/commodity-market-disruption-fallback for values.',\n    },\n    {\n        id: 41471,\n        name: 'NoLegMarketDisruptionFallbackReferencePrices',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of fallback reference securities in the repeating group.',\n    },\n    {\n        id: 41472,\n        name: 'LegMarketDisruptionFallbackUnderlierType',\n        abbrName: 'Typ',\n        type: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The type of reference price underlier.',\n    },\n    {\n        id: 41473,\n        name: 'LegMarketDisruptionFallbackUnderlierSecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '41474',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the identifier value of the security.',\n    },\n    {\n        id: 41474,\n        name: 'LegMarketDisruptionFallbackUnderlierSecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '265',\n        description: 'Specifies the class or source scheme of the security identifier.',\n    },\n    {\n        id: 41475,\n        name: 'LegMarketDisruptionFallbackUnderlierSecurityDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the description of the underlying security.',\n    },\n    {\n        id: 41476,\n        name: 'EncodedLegMarketDisruptionFallbackUnderlierSecurityDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Byte length of encoded (non-ASCII characters) EncodedLegMarketDisruptionFallbackUnderlierSecurityDesc (41477) field.',\n    },\n    {\n        id: 41477,\n        name: 'EncodedLegMarketDisruptionFallbackUnderlierSecurityDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41476',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the LegMarketDisruptionFallbackUnderlierSecurityDesc(41475) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegMarketDisruptionFallbackUnderlierSecurityDesc(41475) field.',\n    },\n    {\n        id: 41478,\n        name: 'LegMarketDisruptionFallbackOpenUnits',\n        abbrName: 'OpnUnits',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'If there are multiple underlying assets, this specifies the number of units (index or securities) that constitute the underlier of the swap. In the case of a basket swap, this is used to reference both the number of basket units, and the number of each asset components of the basket when these are expressed in absolute terms.',\n    },\n    {\n        id: 41479,\n        name: 'LegMarketDisruptionFallbackBasketCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency if the underlier is a basket. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41480,\n        name: 'LegMarketDisruptionFallbackBasketDivisor',\n        abbrName: 'Dvsr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the basket divisor amount. This value is normally used to adjust the constituent weight for pricing or to adjust for dividends, or other corporate actions.',\n    },\n    {\n        id: 41481,\n        name: 'LegExerciseDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'A description of the option exercise.',\n    },\n    {\n        id: 41482,\n        name: 'EncodedLegExerciseDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedLegExerciseDesc(41483) field.',\n    },\n    {\n        id: 41483,\n        name: 'EncodedLegExerciseDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41482',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the LegExerciseDesc(41481) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegExerciseDesc(41481) field.',\n    },\n    {\n        id: 41484,\n        name: 'LegAutomaticExerciseIndicator',\n        abbrName: 'AutoExerInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Indicates (when 'Y') that exercise is automatic when the strike price is crossed or the underlying trade is in the money.\",\n    },\n    {\n        id: 41485,\n        name: 'LegAutomaticExerciseThresholdRate',\n        abbrName: 'AutoRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The threshold rate for triggering automatic exercise.',\n    },\n    {\n        id: 41486,\n        name: 'LegExerciseConfirmationMethod',\n        abbrName: 'ExerCnfm',\n        type: 'ExerciseConfirmationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Indicates whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent.\",\n    },\n    {\n        id: 41487,\n        name: 'LegManualNoticeBusinessCenter',\n        abbrName: 'ManNtcBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the business center used for adjusting the time for manual exercise notice.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41488,\n        name: 'LegFallbackExerciseIndicator',\n        abbrName: 'FallbckExerInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether the notional amount of the underlying swap, not previously exercised under the option, will be automatically exercised at the expiration time on the expiration date if at such time the buyer is in-the-money, provided that the difference between the settlement rate and the fixed rate under the relevant underlying swap is not less than one tenth of a percentage point (0.10% or 0.001).',\n    },\n    {\n        id: 41489,\n        name: 'LegLimitRightToConfirmIndicator',\n        abbrName: 'LtdRightCnfmInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether the Seller may request the Buyer to confirm its intent to exercise if not done on or before the expiration time on the expiration date. If true (\"Y\") specific rules will apply in relation to the settlement mode.',\n    },\n    {\n        id: 41490,\n        name: 'LegExerciseSplitTicketIndicator',\n        abbrName: 'ExerSplitTktInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates in physical settlement of bond and convertible bond options whether the party required to deliver the bonds will divide those to be delivered as notifying party desires to facilitate delivery obligations.',\n    },\n    {\n        id: 41491,\n        name: 'NoLegOptionExerciseBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41492,\n        name: 'LegOptionExerciseBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the option exercise dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41493,\n        name: 'LegOptionExerciseBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the option exercise dates. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.',\n    },\n    {\n        id: 41494,\n        name: 'LegOptionExerciseEarliestDateOffsetDayType',\n        abbrName: 'ErlstOfstDayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative earliest exercise date offset.',\n    },\n    {\n        id: 41495,\n        name: 'LegOptionExerciseEarliestDateOffsetPeriod',\n        abbrName: 'ErlstOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the relative earliest exercise date offset.',\n    },\n    {\n        id: 41496,\n        name: 'LegOptionExerciseEarliestDateOffsetUnit',\n        abbrName: 'ErlstOfstUnit',\n        type: 'ProvisionOptionExerciseEarliestDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the relative earliest exercise date offset.',\n    },\n    {\n        id: 41497,\n        name: 'LegOptionExerciseFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the frequency of exercise dates.',\n    },\n    {\n        id: 41498,\n        name: 'LegOptionExerciseFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the frequency of exercise dates.',\n    },\n    {\n        id: 41499,\n        name: 'LegOptionExerciseStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted start date for calculating periodic exercise dates.',\n    },\n    {\n        id: 41500,\n        name: 'LegOptionExerciseStartDateRelativeTo',\n        abbrName: 'StartDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the anchor date when the option exercise start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 41501,\n        name: 'LegOptionExerciseStartDateOffsetPeriod',\n        abbrName: 'StartDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the relative exercise start date offset.',\n    },\n    {\n        id: 41502,\n        name: 'LegOptionExerciseStartDateOffsetUnit',\n        abbrName: 'StartDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the relative exercise start date offset.',\n    },\n    {\n        id: 41503,\n        name: 'LegOptionExerciseStartDateOffsetDayType',\n        abbrName: 'StartDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative option exercise start date offset.',\n    },\n    {\n        id: 41504,\n        name: 'LegOptionExerciseStartDateAdjusted',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted start date for calculating periodic exercise dates.',\n    },\n    {\n        id: 41505,\n        name: 'LegOptionExerciseSkip',\n        abbrName: 'Skip',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1.',\n    },\n    {\n        id: 41506,\n        name: 'LegOptionExerciseNominationDeadline',\n        abbrName: 'NomntnDdln',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The last date (adjusted) for establishing the option exercise terms.',\n    },\n    {\n        id: 41507,\n        name: 'LegOptionExerciseFirstDateUnadjusted',\n        abbrName: 'FirstDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted first exercise date.',\n    },\n    {\n        id: 41508,\n        name: 'LegOptionExerciseLastDateUnadjusted',\n        abbrName: 'LastDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted last exercise date.',\n    },\n    {\n        id: 41509,\n        name: 'LegOptionExerciseEarliestTime',\n        abbrName: 'ErlstTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) (i) on the expriation date, in the case of a European style option, (ii) on each Bermuda option exercise date and the expiration date, in the case of a Bermuda style option, (iii) the commencement date to, and including, the expiration date, in the case of an American option.\",\n    },\n    {\n        id: 41510,\n        name: 'LegOptionExerciseLatestTime',\n        abbrName: 'LtstTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The latest exercise time. See also LegOptionExerciseEarliestTime(41509).',\n    },\n    {\n        id: 41511,\n        name: 'LegOptionExerciseTimeBusinessCenter',\n        abbrName: 'TmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center used to determine the locale for option exercise time, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41512,\n        name: 'NoLegOptionExerciseDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of dates in the repeating group.',\n    },\n    {\n        id: 41513,\n        name: 'LegOptionExerciseDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted or unadjusted option exercise fixed date.',\n    },\n    {\n        id: 41514,\n        name: 'LegOptionExerciseDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of option exercise date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41515,\n        name: 'NoLegOptionExerciseExpirationDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41516,\n        name: 'LegOptionExerciseExpirationDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the option exercise expiration dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41517,\n        name: 'LegOptionExerciseExpirationDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the option exercise expiration dates. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.',\n    },\n    {\n        id: 41518,\n        name: 'LegOptionExerciseExpirationDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the anchor date when the option exercise expiration date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 41519,\n        name: 'LegOptionExerciseExpirationDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the relative exercise expiration date offset.',\n    },\n    {\n        id: 41520,\n        name: 'LegOptionExerciseExpirationDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the relative exercise expiration date offset.',\n    },\n    {\n        id: 41521,\n        name: 'LegOptionExerciseExpirationFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the frequency of exercise expiration dates.',\n    },\n    {\n        id: 41522,\n        name: 'LegOptionExerciseExpirationFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the frequency of exercise expiration dates.',\n    },\n    {\n        id: 41523,\n        name: 'LegOptionExerciseExpirationRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The convention for determining the sequence of exercise expiration dates. It is used in conjunction with a specified frequency. Used only to override the roll convention defined in the LegDateAdjustment component in InstrumentLeg.',\n    },\n    {\n        id: 41524,\n        name: 'LegOptionExerciseExpirationDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative option exercise expiration date offset.',\n    },\n    {\n        id: 41525,\n        name: 'LegOptionExerciseExpirationTime',\n        abbrName: 'Tm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The option exercise expiration time.',\n    },\n    {\n        id: 41526,\n        name: 'LegOptionExerciseExpirationTimeBusinessCenter',\n        abbrName: 'TmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center used to determine the locale for option exercise expiration time, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41527,\n        name: 'NoLegOptionExerciseExpirationDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of fixed exercise expiration dates in the repeating group.',\n    },\n    {\n        id: 41528,\n        name: 'LegOptionExerciseExpirationDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted or unadjusted option exercise expiration fixed date.',\n    },\n    {\n        id: 41529,\n        name: 'LegOptionExerciseExpirationDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of option exercise expiration date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41530,\n        name: 'NoLegPaymentScheduleFixingDays',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of fixing days in the repeating group.',\n    },\n    {\n        id: 41531,\n        name: 'LegPaymentScheduleFixingDayOfWeek',\n        abbrName: 'DayOfWk',\n        type: 'PaymentStreamPricingDayOfWeekCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The day of the week on which fixing takes place.',\n    },\n    {\n        id: 41532,\n        name: 'LegPaymentScheduleFixingDayNumber',\n        abbrName: 'DayNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The occurrence of the day of week on which fixing takes place.\\n\\nFor example, a fixing of the 3rd Friday would be DayOfWk=5 DayNum=3. If omitted every day of the week is a fixing day.',\n    },\n    {\n        id: 41533,\n        name: 'LegPaymentScheduleXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this LegPaymentSchedule for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41534,\n        name: 'LegPaymentScheduleXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to payment schedule elsewhere in the message.',\n    },\n    {\n        id: 41535,\n        name: 'LegPaymentScheduleRateCurrency',\n        abbrName: 'RtCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The currency of the schedule rate. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41536,\n        name: 'LegPaymentScheduleRateUnitOfMeasure',\n        abbrName: 'RtUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The schedule rate unit of measure (UOM).',\n    },\n    {\n        id: 41537,\n        name: 'LegPaymentScheduleRateConversionFactor',\n        abbrName: 'RtFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"The number multipled by the derived floating rate of the leg's payment schedule in order to arrive at the payment rate. If omitted, the schedule rate conversion factor is 1.\",\n    },\n    {\n        id: 41538,\n        name: 'LegPaymentScheduleRateSpreadType',\n        abbrName: 'SpreadTyp',\n        type: 'PaymentStreamRateSpreadTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies whether the rate spread is an absolute value to be added to the index rate or a percentage of the index rate.',\n    },\n    {\n        id: 41539,\n        name: 'LegPaymentScheduleSettlPeriodPrice',\n        abbrName: 'SettlPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The schedule settlement period price.',\n    },\n    {\n        id: 41540,\n        name: 'LegPaymentScheduleSettlPeriodPriceCurrency',\n        abbrName: 'SettlPxCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The currency of the schedule settlement period price. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41541,\n        name: 'LegPaymentScheduleSettlPeriodPriceUnitOfMeasure',\n        abbrName: 'SettlPxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The settlement period price unit of measure (UOM).',\n    },\n    {\n        id: 41542,\n        name: 'LegPaymentScheduleStepUnitOfMeasure',\n        abbrName: 'StepUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The schedule step unit of measure (UOM).',\n    },\n    {\n        id: 41543,\n        name: 'LegPaymentScheduleFixingDayDistribution',\n        abbrName: 'FixngDayDistrib',\n        type: 'PaymentStreamPricingDayDistributionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The distribution of fixing days.',\n    },\n    {\n        id: 41544,\n        name: 'LegPaymentScheduleFixingDayCount',\n        abbrName: 'FixngDayCnt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of days over which fixing should take place.',\n    },\n    {\n        id: 41545,\n        name: 'LegPaymentScheduleFixingLagPeriod',\n        abbrName: 'FixngLagPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the fixing lag duration.',\n    },\n    {\n        id: 41546,\n        name: 'LegPaymentScheduleFixingLagUnit',\n        abbrName: 'FixngLagUnit',\n        type: 'PaymentStreamInflationLagUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the fixing lag duration.',\n    },\n    {\n        id: 41547,\n        name: 'LegPaymentScheduleFixingFirstObservationDateOffsetPeriod',\n        abbrName: 'FixngFirstObsvtnPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Time unit multiplier for the relative first observation date offset.\\n\\nIf the first observation offset is specified, the observation period will start the specified interval prior to each calculation period - i.e. if the first observation offset is 4 months and the lag duration is 3 months, observations will be taken in months 4, 3 and 2 (but not 1) prior to each calculation period. If no first observation offset is specified, the observation period will end immediately preceding each calculation period.',\n    },\n    {\n        id: 41548,\n        name: 'LegPaymentScheduleFixingFirstObservationDateOffsetUnit',\n        abbrName: 'FixngFirstObsvtnUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative first observation date offset.',\n    },\n    {\n        id: 41549,\n        name: 'LegPaymentStreamFlatRateIndicator',\n        abbrName: 'FlatRtInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'When this element is specified and set to \\'Y\\', the Flat Rate is the New Worldwide Tanker Nominal Freight Scale for the Freight Index Route taken at the trade date of the transaction \"Fixed\". If \\'N\\' it is taken on each pricing date \"Floating\".',\n    },\n    {\n        id: 41550,\n        name: 'LegPaymentStreamFlatRateAmount',\n        abbrName: 'FlatRtAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Specifies the actual monetary value of the flat rate when LegPaymentStreamFlatRateIndicator(41549) = 'Y'.\",\n    },\n    {\n        id: 41551,\n        name: 'LegPaymentStreamFlatRateCurrency',\n        abbrName: 'FlatRtCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of the actual flat rate. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41552,\n        name: 'LegStreamMaximumPaymentAmount',\n        abbrName: 'MaxPmtAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the limit on the total payment amount.',\n    },\n    {\n        id: 41553,\n        name: 'LegStreamMaximumPaymentCurrency',\n        abbrName: 'MaxPmtCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of total payment amount limit. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41554,\n        name: 'LegStreamMaximumTransactionAmount',\n        abbrName: 'MaxTxnAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the limit on the payment amount that goes out in any particular calculation period.',\n    },\n    {\n        id: 41555,\n        name: 'LegStreamMaximumTransactionCurrency',\n        abbrName: 'MaxTxnCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of the period payment amount limit. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41556,\n        name: 'LegPaymentStreamFixedAmountUnitOfMeasure',\n        abbrName: 'FixedAmtUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The fixed payment amount unit of measure (UOM).',\n    },\n    {\n        id: 41557,\n        name: 'LegPaymentStreamTotalFixedAmount',\n        abbrName: 'FixedAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the total fixed payment amount.',\n    },\n    {\n        id: 41558,\n        name: 'LegPaymentStreamWorldScaleRate',\n        abbrName: 'WorldScaleRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The number of Worldscale points for purposes of the calculation of a fixed amount for a wet voyage charter commodity swap.',\n    },\n    {\n        id: 41559,\n        name: 'LegPaymentStreamContractPrice',\n        abbrName: 'CtrctPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The price per relevant unit for purposes of the calculation of a fixed amount for a dry voyage charter or time charter commodity swap.',\n    },\n    {\n        id: 41560,\n        name: 'LegPaymentStreamContractPriceCurrency',\n        abbrName: 'CtrctPxCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of LegPaymentStreamContractPrice(41559). Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41561,\n        name: 'NoLegPaymentStreamPricingBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41562,\n        name: 'LegPaymentStreamPricingBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the pricing dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41563,\n        name: 'LegPaymentStreamRateIndex2CurveUnit',\n        abbrName: 'Ndx2Unit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Secondary time unit associated with the payment stream's floating rate index curve.\",\n    },\n    {\n        id: 41564,\n        name: 'LegPaymentStreamRateIndex2CurvePeriod',\n        abbrName: 'Ndx2Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Secondary time unit multiplier for the payment stream's floating rate index curve.\\n\\nMay be used for a Forward Rate Agreement (FRA) with an average rate between two curve points.\",\n    },\n    {\n        id: 41565,\n        name: 'LegPaymentStreamRateIndexLocation',\n        abbrName: 'NdxLctn',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the location of the floating rate index.',\n    },\n    {\n        id: 41566,\n        name: 'LegPaymentStreamRateIndexLevel',\n        abbrName: 'NdxLvl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'This is the weather Cooling Degree Days (CDD), Heating Degree Days (HDD) or HDD index level specified as the number of (amount of) weather index units specified by the parties in the related confirmation.',\n    },\n    {\n        id: 41567,\n        name: 'LegPaymentStreamRateIndexUnitOfMeasure',\n        abbrName: 'NdxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unit of measure (UOM) of the rate index level.',\n    },\n    {\n        id: 41568,\n        name: 'LegPaymentStreamSettlLevel',\n        abbrName: 'SettlLvl',\n        type: 'PaymentStreamSettlLevelCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies how weather index units are to be calculated.',\n    },\n    {\n        id: 41569,\n        name: 'LegPaymentStreamReferenceLevel',\n        abbrName: 'RefLvl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'This is the weather Cooling Degree Days (CDD), Heating Degree Days (HDD) or HDD reference level specified as the number of (amount of) weather index units specified by the parties in the related confirmation.',\n    },\n    {\n        id: 41570,\n        name: 'LegPaymentStreamReferenceLevelUnitOfMeasure',\n        abbrName: 'RefUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unit of measure (UOM) of the rate reference level.',\n    },\n    {\n        id: 41571,\n        name: 'LegPaymentStreamReferenceLevelEqualsZeroIndicator',\n        abbrName: 'RefLvlZero',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"When set to 'Y', it indicates that the weather reference level equals zero.\",\n    },\n    {\n        id: 41572,\n        name: 'LegPaymentStreamRateSpreadCurrency',\n        abbrName: 'SpreadCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of the floating rate spread. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41573,\n        name: 'LegPaymentStreamRateSpreadUnitOfMeasure',\n        abbrName: 'SpreadUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the unit of measure (UOM) of the floating rate spread.',\n    },\n    {\n        id: 41574,\n        name: 'LegPaymentStreamRateConversionFactor',\n        abbrName: 'RtFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"The number to be multiplied by the derived floating rate of the leg's payment stream in order to arrive at the payment rate. If omitted, the floating rate conversion factor is 1.\",\n    },\n    {\n        id: 41575,\n        name: 'LegPaymentStreamRateSpreadType',\n        abbrName: 'SpreadTyp',\n        type: 'PaymentStreamRateSpreadTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies whether the rate spread is an absolute value to be added to the index rate or a percentage of the index rate.',\n    },\n    {\n        id: 41576,\n        name: 'LegPaymentStreamLastResetRate',\n        abbrName: 'LastResetRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The floating rate determined at the most recent reset. The rate is expressed in decimal form, e.g. 5% is represented as 0.05.',\n    },\n    {\n        id: 41577,\n        name: 'LegPaymentStreamFinalRate',\n        abbrName: 'FnlRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The floating rate determined at the final reset. The rate is expressed in decimal form, e.g. 5% is represented as 0.05.',\n    },\n    {\n        id: 41578,\n        name: 'LegPaymentStreamCalculationLagPeriod',\n        abbrName: 'CalcLagPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the calculation lag duration.',\n    },\n    {\n        id: 41579,\n        name: 'LegPaymentStreamCalculationLagUnit',\n        abbrName: 'CalcLagUnit',\n        type: 'PaymentStreamInflationLagUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the calculation lag duration.',\n    },\n    {\n        id: 41580,\n        name: 'LegPaymentStreamFirstObservationDateOffsetPeriod',\n        abbrName: 'FirstObsvtnOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Time unit multiplier for the relative first observation date offset.\\n\\nIf the first observation offset is specified, the observation period will start the specified interval prior to each calculation period - i.e. if the first observation offset is 4 months and the lag duration is 3 months, observations will be taken in months 4, 3 and 2 (but not 1) prior to each calculation period. If no first observation offset is specified, the observation period will end immediately preceding each calculation period.',\n    },\n    {\n        id: 41581,\n        name: 'LegPaymentStreamFirstObservationDateOffsetUnit',\n        abbrName: 'FirstObsvtnOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative first observation date offset.',\n    },\n    {\n        id: 41582,\n        name: 'LegPaymentStreamPricingDayType',\n        abbrName: 'PxngDayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the commodity pricing day type.',\n    },\n    {\n        id: 41583,\n        name: 'LegPaymentStreamPricingDayDistribution',\n        abbrName: 'PxngDayDistrib',\n        type: 'PaymentStreamPricingDayDistributionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The distribution of pricing days.',\n    },\n    {\n        id: 41584,\n        name: 'LegPaymentStreamPricingDayCount',\n        abbrName: 'PxngDayCnt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of days over which pricing should take place.',\n    },\n    {\n        id: 41585,\n        name: 'LegPaymentStreamPricingBusinessCalendar',\n        abbrName: 'PxngClndr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the business calendar to use for pricing.\\n\\nSee http://www.fpml.org/coding-scheme/commodity-business-calendar for values.',\n    },\n    {\n        id: 41586,\n        name: 'LegPaymentStreamPricingBusinessDayConvention',\n        abbrName: 'PxngBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"The business day convention used to adjust the payment stream's pricing dates. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.\",\n    },\n    {\n        id: 41587,\n        name: 'UnderlyingDeliveryStreamRiskApportionmentSource',\n        abbrName: 'RiskApprtnmtSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the source or legal framework for the risk apportionment.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Risk_Apportionment_Source for the details of the external code list.',\n    },\n    {\n        id: 41588,\n        name: 'StreamCommoditySettlTimeType',\n        abbrName: 'Typ',\n        type: 'DeliveryScheduleSettlTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the format of the commodities settlement start and end times.',\n    },\n    {\n        id: 41589,\n        name: 'NoLegPaymentStreamPaymentDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of payment dates in the repeating group.',\n    },\n    {\n        id: 41590,\n        name: 'LegPaymentStreamPaymentDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted or unadjusted fixed stream payment date.',\n    },\n    {\n        id: 41591,\n        name: 'LegPaymentStreamPaymentDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of payment date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n];\n\nconst batch7: ISpecFields[] = [\n    {\n        id: 41592,\n        name: 'LegPaymentStreamMasterAgreementPaymentDatesIndicator',\n        abbrName: 'MADts',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"When set to 'Y', it indicates that payment dates are specified in the relevant master agreement.\",\n    },\n    {\n        id: 41593,\n        name: 'NoLegPaymentStreamPricingDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of pricing dates in the repeating group.',\n    },\n    {\n        id: 41594,\n        name: 'LegPaymentStreamPricingDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted or unadusted fixed stream pricing date.',\n    },\n    {\n        id: 41595,\n        name: 'LegPaymentStreamPricingDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of pricing date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41596,\n        name: 'NoLegPaymentStreamPricingDays',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of pricing days in the repeating group.',\n    },\n    {\n        id: 41597,\n        name: 'LegPaymentStreamPricingDayOfWeek',\n        abbrName: 'DayOfWk',\n        type: 'PaymentStreamPricingDayOfWeekCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        description: 'The day of the week on which pricing takes place.',\n    },\n    {\n        id: 41598,\n        name: 'LegPaymentStreamPricingDayNumber',\n        abbrName: 'DayNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The occurrence of the day of week on which pricing takes place.\\n\\nFor example a pricing day of the 3rd Friday would be DayOfWk=5 DayNum=3.',\n    },\n    {\n        id: 41599,\n        name: 'NoLegPhysicalSettlTerms',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of entries in the repeating group.',\n    },\n    {\n        id: 41600,\n        name: 'LegPhysicalSettlTermXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'A named string value referenced by UnderlyingSettlTermXIDRef(41315).',\n    },\n    {\n        id: 41601,\n        name: 'LegPhysicalSettlCurency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of physical settlement. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41602,\n        name: 'LegPhysicalSettlBusinessDays',\n        abbrName: 'BizDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'The number of business days used in the determination of physical settlement. Its precise meaning depends on the context in which this is used.\\n\\nISDA 2003 Term: Business Day.',\n    },\n    {\n        id: 41603,\n        name: 'LegPhysicalSettlMaximumBusinessDays',\n        abbrName: 'MaxBizDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'A maximum number of business days. Its precise meaning depends on the context in which this element is used. Intended to be used to limit a particular ISDA fallback provision.',\n    },\n    {\n        id: 41604,\n        name: 'NoLegPhysicalSettlDeliverableObligations',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of entries in the repeating group.',\n    },\n    {\n        id: 41605,\n        name: 'LegPhysicalSettlDeliverableObligationType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of delivery obligation applicable for physical settlement.\\n\\nSee http://www.fixptradingcommunity.org/codelists#Deliverable_Obligation_Types for code list for applicable deliverable obligation types.',\n    },\n    {\n        id: 41606,\n        name: 'LegPhysicalSettlDeliverableObligationValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Physical settlement delivery obligation value appropriate to LegPhysicalSettlDeliverableObligationType(41605).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Deliverable_Obligation_Types for code list for applicable deliverable obligation types.',\n    },\n    {\n        id: 41607,\n        name: 'NoLegPricingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41608,\n        name: 'LegPricingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the pricing or fixing date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41609,\n        name: 'LegPricingDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted pricing or fixing date.',\n    },\n    {\n        id: 41610,\n        name: 'LegPricingDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the pricing or fixing date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.',\n    },\n    {\n        id: 41611,\n        name: 'LegPricingDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted pricing or fixing date.',\n    },\n    {\n        id: 41612,\n        name: 'LegPricingTime',\n        abbrName: 'Tm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The local market pricing or fixing time.',\n    },\n    {\n        id: 41613,\n        name: 'LegPricingTimeBusinessCenter',\n        abbrName: 'TmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the business center for determining the pricing or fixing time. See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41614,\n        name: 'NoLegProtectionTermEventNewsSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of event sources in the repeating group.',\n    },\n    {\n        id: 41615,\n        name: 'LegProtectionTermEventNewsSource',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'A newspaper or electronic news service that may publish relevant information used in the determination of whether or not a credit event has occurred.',\n    },\n    {\n        id: 41616,\n        name: 'NoLegProtectionTerms',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of protection terms in the repeating group.',\n    },\n    {\n        id: 41617,\n        name: 'LegProtectionTermXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'A named string value referenced from UnderlyingProtectionTermXIDRef(41314).',\n    },\n    {\n        id: 41618,\n        name: 'LegProtectionTermNotional',\n        abbrName: 'Notl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The notional amount of protection coverage.\\n\\nISDA 2003 Term: Floating Rate Payer Calculation Amount.',\n    },\n    {\n        id: 41619,\n        name: 'LegProtectionTermCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The currency of LegProtectionTermNotional(41618). Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41620,\n        name: 'LegProtectionTermSellerNotifies',\n        abbrName: 'Seller',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring. LegProtectionTermSellerNotifies(41620)=Y indicates that the seller notifies.\\n\\nISDA 2003 Term: Notifying Party.',\n    },\n    {\n        id: 41621,\n        name: 'LegProtectionTermBuyerNotifies',\n        abbrName: 'Buyer',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring. LegProtectionTermBuyerNotifies(41621)=Y indicates that the buyer notifies.\\n\\nISDA 2003 Term: Notifying Party.',\n    },\n    {\n        id: 41622,\n        name: 'LegProtectionTermEventBusinessCenter',\n        abbrName: 'BizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'When used, the business center indicates the local time of the business center that replaces the Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41623,\n        name: 'LegProtectionTermStandardSources',\n        abbrName: 'StdSrcs',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether ISDA defined Standard Public Sources are applicable (LegProtectionTermStandardSources(41623)=Y) or not.',\n    },\n    {\n        id: 41624,\n        name: 'LegProtectionTermEventMinimumSources',\n        abbrName: 'MinSrcs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two.\\n\\nISDA 2003 Term: Specified Number.',\n    },\n    {\n        id: 41625,\n        name: 'NoLegProtectionTermEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of protection term events in the repeating group.',\n    },\n    {\n        id: 41626,\n        name: 'LegProtectionTermEventType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of credit event applicable to the protection terms.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Protection_Term_Event_Types for code list of applicable event types.',\n    },\n    {\n        id: 41627,\n        name: 'LegProtectionTermEventValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the protection term event value appropriate to LegProtectionTermEventType(41626). See http:///www.fixtradingcommunity.org/codelists#Protection_Term_Event_Types for applicable event type values.',\n    },\n    {\n        id: 41628,\n        name: 'LegProtectionTermEventCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Applicable currency if the event value is an amount. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41629,\n        name: 'LegProtectionTermEventPeriod',\n        abbrName: 'Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for protection term events.',\n    },\n    {\n        id: 41630,\n        name: 'LegProtectionTermEventUnit',\n        abbrName: 'Unit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with protection term events.',\n    },\n    {\n        id: 41631,\n        name: 'LegProtectionTermEventDayType',\n        abbrName: 'DayTyp',\n        type: 'PaymentStreamInflationLagDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Day type for events that specify a period and unit.',\n    },\n    {\n        id: 41632,\n        name: 'LegProtectionTermEventRateSource',\n        abbrName: 'RtSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Rate source for events that specify a rate source, e.g. floating rate interest shortfall.',\n    },\n    {\n        id: 41633,\n        name: 'NoLegProtectionTermEventQualifiers',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of qualifiers in the repeating group.',\n    },\n    {\n        id: 41634,\n        name: 'LegProtectionTermEventQualifier',\n        abbrName: 'Qual',\n        type: 'ProtectionTermEventQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the protection term event qualifier. Used to further qualify LegProtectionTermEventType(41626).',\n    },\n    {\n        id: 41635,\n        name: 'NoLegProtectionTermObligations',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of obligations in the repeating group.',\n    },\n    {\n        id: 41636,\n        name: 'LegProtectionTermObligationType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of obligation applicable to the protection terms.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Protection_Term_Obligation_Types for code list of applicable obligation types.',\n    },\n    {\n        id: 41637,\n        name: 'LegProtectionTermObligationValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The value associated with the protection term obligation specified in LegProtectionTermObligationType(41636). See http://www.fixtradingcommunity.org/codelists#Protection_Term_Obligation_Types for applicable obligation type values.',\n    },\n    {\n        id: 41638,\n        name: 'NoLegStreamCalculationPeriodDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of calculation period dates in the repeating group.',\n    },\n    {\n        id: 41639,\n        name: 'LegStreamCalculationPeriodDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted or unadjusted fixed calculation period date.',\n    },\n    {\n        id: 41640,\n        name: 'LegStreamCalculationPeriodDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of fixed calculation period date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41641,\n        name: 'LegStreamCalculationPeriodDatesXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this calculation period for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41642,\n        name: 'LegStreamCalculationPeriodDatesXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Cross reference to another calculation period for duplicating its properties.',\n    },\n    {\n        id: 41643,\n        name: 'LegStreamCalculationBalanceOfFirstPeriod',\n        abbrName: 'BalFirst',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"When specified and set to 'Y', it indicates that the first calculation period should run from the effective date to the end of the calendar period in which the effective date falls (e.g. Jan 15 - Jan 31 if the calculation periods are one month long and effective date is Jan 15.). If 'N' or not specified, it indicates that the first calculation period should run from the effective date for one whole period (e.g. Jan 15 to Feb 14 if the calculation periods are one month long and the effective date is Jan 15.).\",\n    },\n    {\n        id: 41644,\n        name: 'LegStreamCalculationCorrectionPeriod',\n        abbrName: 'CrrctnPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Time unit multiplier for the length of time after the publication of the data when corrections can be made.',\n    },\n    {\n        id: 41645,\n        name: 'LegStreamCalculationCorrectionUnit',\n        abbrName: 'CrrctnUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Time unit associated with the length of time after the publication of the data when corrections can be made.',\n    },\n    {\n        id: 41646,\n        name: 'NoLegStreamCommoditySettlBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41647,\n        name: 'LegStreamCommoditySettlBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the commodity delivery date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41648,\n        name: 'LegStreamCommodityBase',\n        abbrName: 'Base',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the general base type of the commodity traded. Where possible, this should follow the naming convention used in the 2005 ISDA Commodity Definitions.\\n\\nExamples of general commodity base types include: Metal, Bullion, Oil, Natural Gas, Coal, Electricity, Inter-Energy, Grains, Oils Seeds, Dairy, Livestock, Forestry, Softs, Weather, Emissions.',\n    },\n    {\n        id: 41649,\n        name: 'LegStreamCommodityType',\n        abbrName: 'CmdtyTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of commodity product.\\n\\nFor coal see http://www.fpml.org/coding-scheme/commodity-coal-product-type for values.\\n\\nFor metals see http://www.fpml.org/coding-scheme/commodity-metal-product-type for values.\\n\\nFor bullion see http://www.fixtradingcommunity.org/codelists#Bullion_Types for the external code list of bullion types.',\n    },\n    {\n        id: 41650,\n        name: 'LegStreamCommoditySecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '41651',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the market identifier for the commodity.',\n    },\n    {\n        id: 41651,\n        name: 'LegStreamCommoditySecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '265',\n        description: 'Identifies the class or source of the LegStreamCommoditySecurityIDSource(41650) value.',\n    },\n    {\n        id: 41652,\n        name: 'LegStreamCommodityDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Description of the commodity asset.',\n    },\n    {\n        id: 41653,\n        name: 'EncodedLegStreamCommodityDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedLegStreamCommodityDesc(41654) field.',\n    },\n    {\n        id: 41654,\n        name: 'EncodedLegStreamCommodityDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41653',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the LegStreamCommodityDesc(41652) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the LegStreamCommodityDesc(41652) field.',\n    },\n    {\n        id: 41655,\n        name: 'LegStreamCommodityUnitOfMeasure',\n        abbrName: 'UOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unit of measure (UOM) of the commodity asset.',\n    },\n    {\n        id: 41656,\n        name: 'LegStreamCommodityCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the currency of the commodity asset. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41657,\n        name: 'LegStreamCommodityExchange',\n        abbrName: 'Exch',\n        type: 'Exchange',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the exchange where the commodity is traded.',\n    },\n    {\n        id: 41658,\n        name: 'LegStreamCommodityRateSource',\n        abbrName: 'RtSrc',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the source of rate information used for commodities.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Commodity_Rate_Source for code list of applicable sources.',\n    },\n    {\n        id: 41659,\n        name: 'LegStreamCommodityRateReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the reference \"page\" from the rate source.',\n    },\n    {\n        id: 41660,\n        name: 'LegStreamCommodityRateReferencePageHeading',\n        abbrName: 'RefHdng',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the page heading from the rate source.',\n    },\n    {\n        id: 41661,\n        name: 'LegStreamDataProvider',\n        abbrName: 'DataPrvdr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the commodity data or information provider.\\n\\nSee http://www.fpml.org/coding-scheme/commodity-information-provider for values.',\n    },\n    {\n        id: 41662,\n        name: 'LegStreamCommodityPricingType',\n        abbrName: 'PxngTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies how the pricing or rate setting of the trade is to be determined or based upon.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Commodity_Rate_Pricing_Type for code list of applicable commodity pricing types.',\n    },\n    {\n        id: 41663,\n        name: 'LegStreamCommodityNearbySettlDayPeriod',\n        abbrName: 'Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Time unit multiplier for the nearby settlement day.\\n\\nWhen the commodity transaction references a futures contract, the delivery or settlement dates are a nearby month or week. For example, for eighth nearby month use Period=8 and Unit=Mo.',\n    },\n    {\n        id: 41664,\n        name: 'LegStreamCommodityNearbySettlDayUnit',\n        abbrName: 'Unit',\n        type: 'StreamCommodityNearbySettlDayUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the nearby settlement day.',\n    },\n    {\n        id: 41665,\n        name: 'LegStreamCommoditySettlDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted commodity delivery date.',\n    },\n    {\n        id: 41666,\n        name: 'LegStreamCommoditySettlDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the commodity delivery date. Used only to override the business day convention specified in the LegDateAdjustment component within the InstrumentLeg component.',\n    },\n    {\n        id: 41667,\n        name: 'LegStreamCommoditySettlDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted commodity delivery date.',\n    },\n    {\n        id: 41668,\n        name: 'LegStreamCommoditySettlMonth',\n        abbrName: 'Mo',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies a fixed single month for commodity delivery.\\n\\nUse \"1\" for January, \"2\" for February, etc.',\n    },\n    {\n        id: 41669,\n        name: 'LegStreamCommoditySettlDateRollPeriod',\n        abbrName: 'RollPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Time unit multiplier for the commodity delivery date roll.\\n\\nFor a commodity transaction that references a listed future via the delivery dates, this is the day offset on which the specified future will roll to the next nearby month when the referenced future expires.',\n    },\n    {\n        id: 41670,\n        name: 'LegStreamCommoditySettlDateRollUnit',\n        abbrName: 'RollUnit',\n        type: 'StreamCommoditySettlDateRollUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the commodity delivery date roll.',\n    },\n    {\n        id: 41671,\n        name: 'LegStreamCommoditySettlDayType',\n        abbrName: 'DayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the commodity delivery roll day type.',\n    },\n    {\n        id: 41672,\n        name: 'LegStreamCommodityXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this stream commodity for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41673,\n        name: 'LegStreamCommodityXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to a stream commodity elsewhere in the message.',\n    },\n    {\n        id: 41674,\n        name: 'NoLegStreamCommodityAltIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of alternate security identifers.',\n    },\n    {\n        id: 41675,\n        name: 'LegStreamCommodityAltID',\n        abbrName: 'AltID',\n        type: 'String',\n        discriminatorId: '41676',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Alternate security identifier value for the commodity.',\n    },\n    {\n        id: 41676,\n        name: 'LegStreamCommodityAltIDSource',\n        abbrName: 'AltIDSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the class or source of the alternate commodity security identifier.',\n    },\n    {\n        id: 41677,\n        name: 'NoLegStreamCommodityDataSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Number of data sources in the repeating group. The order of entry determines priority \u2013 first is the main source, second is fallback, third is second fallback.',\n    },\n    {\n        id: 41678,\n        name: 'LegStreamCommodityDataSourceID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the data source identifier.',\n    },\n    {\n        id: 41679,\n        name: 'LegStreamCommodityDataSourceIDType',\n        abbrName: 'Typ',\n        type: 'StreamCommodityDataSourceIDTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the type of data source identifier.',\n    },\n    {\n        id: 41680,\n        name: 'NoLegStreamCommoditySettlDays',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of days in the repeating group.',\n    },\n    {\n        id: 41681,\n        name: 'LegStreamCommoditySettlDay',\n        abbrName: 'Day',\n        type: 'DeliveryScheduleSettlDayCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the day or group of days for delivery.',\n    },\n    {\n        id: 41682,\n        name: 'LegStreamCommoditySettlTotalHours',\n        abbrName: 'TotHrs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Sum of the hours specified in LegStreamCommoditySettlTimeGrp.',\n    },\n    {\n        id: 41683,\n        name: 'NoLegStreamCommoditySettlTimes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of hour ranges in the repeating group.',\n    },\n    {\n        id: 41684,\n        name: 'LegStreamCommoditySettlStart',\n        abbrName: 'Start',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The start time for commodity settlement where delivery occurs over time. The time format is specified by the settlement time type.',\n    },\n    {\n        id: 41685,\n        name: 'LegStreamCommoditySettlEnd',\n        abbrName: 'End',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The end time for commodity settlement where delivery occurs over time. The time format is specified by the settlement time type.',\n    },\n    {\n        id: 41686,\n        name: 'NoLegStreamCommoditySettlPeriods',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of commodity settlement periods in the repeating group.',\n    },\n    {\n        id: 41687,\n        name: 'LegStreamCommoditySettlCountry',\n        abbrName: 'Ctry',\n        type: 'Country',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the country where delivery takes place. Uses ISO 3166 2-character country code.',\n    },\n    {\n        id: 41688,\n        name: 'LegStreamCommoditySettlTimeZone',\n        abbrName: 'TZ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Commodity delivery timezone specified as \"prevailing\" rather than \"standard\" or \"daylight\".\\n\\nSee http://www.fixtradingcommunity.org/codelists#Prevailing_Timezones for code list of applicable prevailing timezones.',\n    },\n    {\n        id: 41689,\n        name: 'LegStreamCommoditySettlFlowType',\n        abbrName: 'FlowTyp',\n        type: 'DeliveryScheduleSettlFlowTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the commodity delivery flow type.',\n    },\n    {\n        id: 41690,\n        name: 'LegStreamCommoditySettlPeriodNotional',\n        abbrName: 'Notl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Delivery quantity associated with this settlement period.',\n    },\n    {\n        id: 41691,\n        name: 'LegStreamCommoditySettlPeriodNotionalUnitOfMeasure',\n        abbrName: 'NotlUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the unit of measure (UOM) of the delivery quantity associated with this settlement period.',\n    },\n    {\n        id: 41692,\n        name: 'LegStreamCommoditySettlPeriodFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the settlement period frequency.',\n    },\n    {\n        id: 41693,\n        name: 'LegStreamCommoditySettlPeriodFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the settlement period frequency.',\n    },\n    {\n        id: 41694,\n        name: 'LegStreamCommoditySettlPeriodPrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The settlement period price.',\n    },\n    {\n        id: 41695,\n        name: 'LegStreamCommoditySettlPeriodPriceUnitOfMeasure',\n        abbrName: 'PxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The settlement period price unit of measure (UOM).',\n    },\n    {\n        id: 41696,\n        name: 'LegStreamCommoditySettlPeriodPriceCurrency',\n        abbrName: 'PxCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The currency of the settlement period price. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41697,\n        name: 'LegStreamCommoditySettlHolidaysProcessingInstruction',\n        abbrName: 'Holidays',\n        type: 'DeliveryScheduleSettlHolidaysProcessingInstructionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether holidays are included in the settlement periods. Required for electricity contracts.',\n    },\n    {\n        id: 41698,\n        name: 'LegStreamCommoditySettlPeriodXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this settlement period for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41699,\n        name: 'LegStreamCommoditySettlPeriodXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Cross reference to another settlement period for duplicating its properties.',\n    },\n    {\n        id: 41700,\n        name: 'LegStreamXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this LegStream for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41701,\n        name: 'UnderlyingAdditionalTermBondSecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Identifies the source scheme of the UnderlyingAdditionalTermBondSecurityID(41341) value.',\n    },\n    {\n        id: 41702,\n        name: 'LegStreamNotionalXIDRef',\n        abbrName: 'NotlXIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Cross reference to another LegStream notional for duplicating its properties.',\n    },\n    {\n        id: 41703,\n        name: 'LegStreamNotionalFrequencyPeriod',\n        abbrName: 'NotlPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Time unit multiplier for the swap stream's notional frequency.\",\n    },\n    {\n        id: 41704,\n        name: 'LegStreamNotionalFrequencyUnit',\n        abbrName: 'NotlUnit',\n        type: 'TimeUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Time unit associated with the swap stream's notional frequency.\",\n    },\n    {\n        id: 41705,\n        name: 'LegStreamNotionalCommodityFrequency',\n        abbrName: 'NotlFreq',\n        type: 'StreamNotionalCommodityFrequencyCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"The commodity's notional or quantity delivery frequency.\",\n    },\n    {\n        id: 41706,\n        name: 'LegStreamNotionalUnitOfMeasure',\n        abbrName: 'NotlUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the delivery quantity unit of measure (UOM).',\n    },\n    {\n        id: 41707,\n        name: 'LegStreamTotalNotional',\n        abbrName: 'TotNotl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the total notional or delivery quantity over the term of the contract.',\n    },\n    {\n        id: 41708,\n        name: 'LegStreamTotalNotionalUnitOfMeasure',\n        abbrName: 'TotNotlUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the unit of measure (UOM) for the total notional or delivery quantity over the term of the contract.',\n    },\n    {\n        id: 41709,\n        name: 'UnderlyingAdditionalTermBondDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Description of the bond.',\n    },\n    {\n        id: 41710,\n        name: 'EncodedUnderlyingAdditionalTermBondDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Byte length of encoded (non-ASCII characters) EncodedUnderlyingAdditionalTermBondDesc(41711) field.',\n    },\n    {\n        id: 41711,\n        name: 'EncodedUnderlyingAdditionalTermBondDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41710',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingAdditionalTermBondDesc(41709) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingAdditionalTermBondDesc(41709) field.',\n    },\n    {\n        id: 41712,\n        name: 'UnderlyingAdditionalTermBondCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Specifies the currency the bond value is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41713,\n        name: 'NoUnderlyingComplexEventAveragingObservations',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of averaging observations in the repeating group.',\n    },\n    {\n        id: 41714,\n        name: 'UnderlyingComplexEventAveragingObservationNumber',\n        abbrName: 'ObsvtnNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Cross reference to the ordinal observation as specified either in the UnderlyingComplexEventScheduleGrp or UnderlyingComplexEventPeriodDateGrp components.',\n    },\n    {\n        id: 41715,\n        name: 'UnderlyingComplexEventAveragingWeight',\n        abbrName: 'Wt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The weight factor to be applied to the observation.',\n    },\n    {\n        id: 41716,\n        name: 'NoUnderlyingComplexEventCreditEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of credit events specified in the repeating group.',\n    },\n    {\n        id: 41717,\n        name: 'UnderlyingComplexEventCreditEventType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of credit event.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Credit_Event_Types for code list of applicable event types.',\n    },\n    {\n        id: 41718,\n        name: 'UnderlyingComplexEventCreditEventValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The credit event value appropriate to UnderlyingComplexEventCreditEventType(41717).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Credit_Event_Types for applicable event type values.',\n    },\n    {\n        id: 41719,\n        name: 'UnderlyingComplexEventCreditEventCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the applicable currency when UnderlyingComplexEventCreditEventValue(41718) is an amount. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41720,\n        name: 'UnderlyingComplexEventCreditEventPeriod',\n        abbrName: 'Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for complex credit events.',\n    },\n    {\n        id: 41721,\n        name: 'UnderlyingComplexEventCreditEventUnit',\n        abbrName: 'Unit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with complex credit events.',\n    },\n    {\n        id: 41722,\n        name: 'UnderlyingComplexEventCreditEventDayType',\n        abbrName: 'DayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the day type for the complex credit events.',\n    },\n    {\n        id: 41723,\n        name: 'UnderlyingComplexEventCreditEventRateSource',\n        abbrName: 'RtSrc',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the source of rate information used for credit events.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Credit_Event_Rate_Source for code list of applicable sources.',\n    },\n    {\n        id: 41724,\n        name: 'NoUnderlyingComplexEventCreditEventQualifiers',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of qualifiers in the repeating group.',\n    },\n    {\n        id: 41725,\n        name: 'UnderlyingComplexEventCreditEventQualifier',\n        abbrName: 'Qual',\n        type: 'ProtectionTermEventQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies a complex event qualifier. Used to further qualify UnderlyingComplexEventCreditEventType(41717).',\n    },\n    {\n        id: 41726,\n        name: 'NoUnderlyingComplexEventPeriodDateTimes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of entries in the date-time repeating group.',\n    },\n    {\n        id: 41727,\n        name: 'UnderlyingComplexEventPeriodDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The averaging date for an Asian option.\\n\\nThe trigger date for a Barrier or Knock option.',\n    },\n    {\n        id: 41728,\n        name: 'UnderlyingComplexEventPeriodTime',\n        abbrName: 'Tm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The averaging time for an Asian option.',\n    },\n    {\n        id: 41729,\n        name: 'NoUnderlyingComplexEventPeriods',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of periods in the repeating group.',\n    },\n    {\n        id: 41730,\n        name: 'UnderlyingComplexEventPeriodType',\n        abbrName: 'Typ',\n        type: 'ComplexEventPeriodTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the period type.',\n    },\n    {\n        id: 41731,\n        name: 'UnderlyingComplexEventBusinessCenter',\n        abbrName: 'BizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center for adjusting dates and times in the schedule or date-time group.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41732,\n        name: 'NoUnderlyingComplexEventRateSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of rate sources in the repeating group.',\n    },\n    {\n        id: 41733,\n        name: 'UnderlyingComplexEventRateSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the source of rate information.\\n\\nFor FX, the reference source to be used for the FX spot rate.',\n    },\n    {\n        id: 41734,\n        name: 'UnderlyingComplexEventRateSourceType',\n        abbrName: 'RtSrcTyp',\n        type: 'RateSourceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Indicates whether the rate source specified is a primary or secondary source.',\n    },\n    {\n        id: 41735,\n        name: 'UnderlyingComplexEventReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the reference page from the rate source.\\n\\nFor FX, the reference page to the spot rate is to be used for the reference FX spot rate.\\n\\nWhen UnderlyingComplexEventRateSource(41733) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: http://www.fpml.org/coding-scheme/settlement-rate-option.',\n    },\n    {\n        id: 41736,\n        name: 'UnderlyingComplexEventReferencePageHeading',\n        abbrName: 'RefHdg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the reference page heading from the rate source.',\n    },\n    {\n        id: 41737,\n        name: 'NoUnderlyingComplexEventDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41738,\n        name: 'UnderlyingComplexEventDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar is used to adjust the event date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41739,\n        name: 'UnderlyingComplexEventDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The unadjusted complex event date.\\n\\nFor example the second expiration date for a calendar spread option strategy.',\n    },\n    {\n        id: 41740,\n        name: 'UnderlyingComplexEventDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Specifies the anchor date when the complex event date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 41741,\n        name: 'UnderlyingComplexEventDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the relative date offset.',\n    },\n    {\n        id: 41742,\n        name: 'UnderlyingComplexEventDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the relative date offset.',\n    },\n    {\n        id: 41743,\n        name: 'UnderlyingComplexEventDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the day type of the relative date offset.',\n    },\n    {\n        id: 41744,\n        name: 'UnderlyingComplexEventDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the event date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n    },\n    {\n        id: 41745,\n        name: 'UnderlyingComplexEventDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted complex event date.',\n    },\n    {\n        id: 41746,\n        name: 'UnderlyingComplexEventFixingTime',\n        abbrName: 'FixngTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The local market fixing time.',\n    },\n    {\n        id: 41747,\n        name: 'UnderlyingComplexEventFixingTimeBusinessCenter',\n        abbrName: 'FixngBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center for determining the actual fixing times.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41748,\n        name: 'NoUnderlyingComplexEventCreditEventSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of event sources in the repeating group.',\n    },\n    {\n        id: 41749,\n        name: 'UnderlyingComplexEventCreditEventSource',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'A newspaper or electronic news service that may publish relevant information used in the determination of whether or not a credit event has occurred.',\n    },\n    {\n        id: 41750,\n        name: 'NoUnderlyingComplexEventSchedules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of schedules in the repeating group.',\n    },\n    {\n        id: 41751,\n        name: 'UnderlyingComplexEventScheduleStartDate',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The start date of the schedule.',\n    },\n    {\n        id: 41752,\n        name: 'UnderlyingComplexEventScheduleEndDate',\n        abbrName: 'EndDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The end date of the schedule.',\n    },\n    {\n        id: 41753,\n        name: 'UnderlyingComplexEventScheduleFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the schedule date frequency.',\n    },\n    {\n        id: 41754,\n        name: 'UnderlyingComplexEventScheduleFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the schedule date frequency.',\n    },\n    {\n        id: 41755,\n        name: 'UnderlyingComplexEventScheduleRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The convention for determining the sequence of dates. It is used in conjunction with a specified frequency. Used only to override the roll convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n    },\n    {\n        id: 41756,\n        name: 'NoUnderlyingDeliverySchedules',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of delivery schedules in the repeating group.',\n    },\n    {\n        id: 41757,\n        name: 'UnderlyingDeliveryScheduleType',\n        abbrName: 'Typ',\n        type: 'DeliveryScheduleTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the type of delivery schedule.',\n    },\n    {\n        id: 41758,\n        name: 'UnderlyingDeliveryScheduleXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifier for this instance of delivery schedule for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41759,\n        name: 'UnderlyingDeliveryScheduleNotional',\n        abbrName: 'Notl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Physical delivery quantity.',\n    },\n    {\n        id: 41760,\n        name: 'UnderlyingDeliveryScheduleNotionalUnitOfMeasure',\n        abbrName: 'NotlUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the delivery quantity unit of measure (UOM).',\n    },\n    {\n        id: 41761,\n        name: 'UnderlyingDeliveryScheduleNotionalCommodityFrequency',\n        abbrName: 'NotlFreq',\n        type: 'StreamNotionalCommodityFrequencyCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The frequency of notional delivery.',\n    },\n    {\n        id: 41762,\n        name: 'UnderlyingDeliveryScheduleNegativeTolerance',\n        abbrName: 'NegtvTlrnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the negative tolerance value. The value may be an absolute quantity or a percentage, as specified in UnderlyingDeliveryScheduleToleranceType(41765). Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%).',\n    },\n    {\n        id: 41763,\n        name: 'UnderlyingDeliverySchedulePositiveTolerance',\n        abbrName: 'PostvTlrnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the positive tolerance value. The value may be an absolute quantity or a percentage, as specified in UnderlyingDeliveryScheduleToleranceType(41765). Value may exceed agreed upon value. Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%).',\n    },\n    {\n        id: 41764,\n        name: 'UnderlyingDeliveryScheduleToleranceUnitOfMeasure',\n        abbrName: 'TlrncUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Specifies the tolerance value's unit of measure (UOM).\",\n    },\n    {\n        id: 41765,\n        name: 'UnderlyingDeliveryScheduleToleranceType',\n        abbrName: 'TlrncTyp',\n        type: 'DeliveryScheduleToleranceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the tolerance value type.',\n    },\n    {\n        id: 41766,\n        name: 'UnderlyingDeliveryScheduleSettlCountry',\n        abbrName: 'Ctry',\n        type: 'Country',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the country where delivery takes place. Uses ISO 3166 2-character country code.',\n    },\n    {\n        id: 41767,\n        name: 'UnderlyingDeliveryScheduleSettlTimeZone',\n        abbrName: 'TZ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Delivery timezone specified as \"prevailing\" rather than \"standard\" or \"daylight\".\\n\\nSee http://www.fixtradingcommunity.org/codelists#Prevailing_Timezones for code list of applicable prevailing timezones.',\n    },\n    {\n        id: 41768,\n        name: 'UnderlyingDeliveryScheduleSettlFlowType',\n        abbrName: 'FlowTyp',\n        type: 'DeliveryScheduleSettlFlowTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the delivery flow type.',\n    },\n    {\n        id: 41769,\n        name: 'UnderlyingDeliveryScheduleSettlHolidaysProcessingInstruction',\n        abbrName: 'Holidays',\n        type: 'DeliveryScheduleSettlHolidaysProcessingInstructionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether holidays are included in the settlement periods. Required for electricity contracts.',\n    },\n    {\n        id: 41770,\n        name: 'NoUnderlyingDeliveryScheduleSettlDays',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of delivery schedules in the repeating group.',\n    },\n    {\n        id: 41771,\n        name: 'UnderlyingDeliveryScheduleSettlDay',\n        abbrName: 'Day',\n        type: 'DeliveryScheduleSettlDayCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the day or group of days for delivery.',\n    },\n    {\n        id: 41772,\n        name: 'UnderlyingDeliveryScheduleSettlTotalHours',\n        abbrName: 'TotHrs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The sum of the total hours specified in the UnderlyingDeliveryScheduleSettlTimeGrp component.',\n    },\n    {\n        id: 41773,\n        name: 'NoUnderlyingDeliveryScheduleSettlTimes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of hour ranges in the repeating group.',\n    },\n    {\n        id: 41774,\n        name: 'UnderlyingDeliveryScheduleSettlStart',\n        abbrName: 'Start',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The scheduled start time for the delivery of the commodity where delivery occurs over specified times. The format of the time value is specified in UnderlyingDeliveryScheduleSettlTimeType(41776).',\n    },\n    {\n        id: 41775,\n        name: 'UnderlyingDeliveryScheduleSettlEnd',\n        abbrName: 'End',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The scheduled end time for the delivery of the commodity where delivery occurs over specified times. The format of the time value is specified in UnderlyingDeliveryScheduleSettlTimeType(41776).',\n    },\n    {\n        id: 41776,\n        name: 'UnderlyingDeliveryScheduleSettlTimeType',\n        abbrName: 'Typ',\n        type: 'DeliveryScheduleSettlTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the format of the delivery start and end time values.',\n    },\n    {\n        id: 41777,\n        name: 'UnderlyingDeliveryStreamType',\n        abbrName: 'Typ',\n        type: 'DeliveryStreamTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the type of delivery stream.',\n    },\n    {\n        id: 41778,\n        name: 'UnderlyingDeliveryStreamPipeline',\n        abbrName: 'Ppln',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The name of the oil delivery pipeline.',\n    },\n    {\n        id: 41779,\n        name: 'UnderlyingDeliveryStreamEntryPoint',\n        abbrName: 'EntryPnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The point at which the commodity will enter the delivery mechanism or pipeline.',\n    },\n    {\n        id: 41780,\n        name: 'UnderlyingDeliveryStreamWithdrawalPoint',\n        abbrName: 'WthdrwlPnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The point at which the commodity product will be withdrawn prior to delivery.',\n    },\n    {\n        id: 41781,\n        name: 'UnderlyingDeliveryStreamDeliveryPoint',\n        abbrName: 'DlvryPnt',\n        type: 'String',\n        discriminatorId: '42196',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The point at which the commodity product will be delivered and received. Value specified should follow market convention appropriate for the commodity product.\\n\\nFor bullion see http://www.fpml.org/coding-scheme/bullion-delivery-location for values.',\n    },\n    {\n        id: 41782,\n        name: 'UnderlyingDeliveryStreamDeliveryRestriction',\n        abbrName: 'DlvryRstctn',\n        type: 'DeliveryStreamDeliveryRestrictionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies under what conditions the buyer and seller should be excused of their delivery obligations.',\n    },\n    {\n        id: 41783,\n        name: 'UnderlyingDeliveryStreamDeliveryContingency',\n        abbrName: 'Cntgncy',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the electricity delivery contingency.\\n\\nSee http://www.fpml.org/coding-scheme/electricity-transmission-contingency for values.',\n    },\n    {\n        id: 41784,\n        name: 'UnderlyingDeliveryStreamDeliveryContingentPartySide',\n        abbrName: 'CntgPty',\n        type: 'DeliveryStreamElectingPartySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The trade side value of the party responsible for electricity delivery contingency.',\n    },\n    {\n        id: 41785,\n        name: 'UnderlyingDeliveryStreamDeliverAtSourceIndicator',\n        abbrName: 'DlvrAtSrc',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"When this element is specified and set to 'Y', delivery of the coal product is to be at its source.\",\n    },\n    {\n        id: 41786,\n        name: 'UnderlyingDeliveryStreamRiskApportionment',\n        abbrName: 'RiskApprtnmt',\n        type: 'String',\n        discriminatorId: '41587',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies how the parties to the trade apportion responsibility for the delivery of the commodity product.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Risk_Apportionment for the details of the external code list.',\n    },\n    {\n        id: 41787,\n        name: 'UnderlyingDeliveryStreamTitleTransferLocation',\n        abbrName: 'TtlXfer',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the title transfer location.',\n    },\n    {\n        id: 41788,\n        name: 'UnderlyingDeliveryStreamTitleTransferCondition',\n        abbrName: 'TltXferCond',\n        type: 'DeliveryStreamTitleTransferConditionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the title transfer condition.',\n    },\n    {\n        id: 41789,\n        name: 'UnderlyingDeliveryStreamImporterOfRecord',\n        abbrName: 'Imprtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'A party, not necessarily of the trade, who is the Importer of Record for the purposes of paying customs duties and applicable taxes or costs related to importation.',\n    },\n    {\n        id: 41790,\n        name: 'UnderlyingDeliveryStreamNegativeTolerance',\n        abbrName: 'NegtvTlrnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the negative tolerance value. The value may be an absolute quantity or a percentage, as specified in UnderlyingDeliveryStreamToleranceType(41793). Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%).',\n    },\n    {\n        id: 41791,\n        name: 'UnderlyingDeliveryStreamPositiveTolerance',\n        abbrName: 'PostvTlrnc',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the positive tolerance value. The value may be an absolute quantity or a percentage, as specified in UnderlyingDeliveryStreamToleranceType(41793). Value may exceed agreed upon value. Percentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%).',\n    },\n    {\n        id: 41792,\n        name: 'UnderlyingDeliveryStreamToleranceUnitOfMeasure',\n        abbrName: 'TlrncUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Specifies the tolerance value's unit of measure (UOM).\",\n    },\n    {\n        id: 41793,\n        name: 'UnderlyingDeliveryStreamToleranceType',\n        abbrName: 'TlrncTyp',\n        type: 'DeliveryScheduleToleranceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the tolerance value type.',\n    },\n    {\n        id: 41794,\n        name: 'UnderlyingDeliveryStreamToleranceOptionSide',\n        abbrName: 'TlrncOptSide',\n        type: 'DeliveryStreamToleranceOptionSideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Indicates whether the tolerance is at the seller's or buyer's option.\",\n    },\n    {\n        id: 41795,\n        name: 'UnderlyingDeliveryStreamTotalPositiveTolerance',\n        abbrName: 'TotPostvTlrnc',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The positive percent tolerance which applies to the total quantity delivered over all shipment periods.\\n\\nPercentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%.).',\n    },\n    {\n        id: 41796,\n        name: 'UnderlyingDeliveryStreamTotalNegativeTolerance',\n        abbrName: 'TotNegtvTlrnc',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The negative percent tolerance which applies to the total quantity delivered over all shipment periods.\\n\\nPercentage value is to be expressed relative to \"1.0\" representing 100% (e.g. a value of \"0.0575\" represents 5.75%.).',\n    },\n    {\n        id: 41797,\n        name: 'UnderlyingDeliveryStreamNotionalConversionFactor',\n        abbrName: 'CnvrsnFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'If the notional quantity is specified in a unit that does not match the unit in which the commodity reference price is quoted, the scaling or conversion factor used to convert the commodity reference price unit into the notional quantity unit should be stated here. If there is no conversion, this field is not intended to be used.',\n    },\n    {\n        id: 41798,\n        name: 'UnderlyingDeliveryStreamTransportEquipment',\n        abbrName: 'Eqpmt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The transportation equipment with which the commodity product will be delivered and received.\\n\\nExamples of transportation equipment or mode are barge, truck, railcar, etc.',\n    },\n    {\n        id: 41799,\n        name: 'UnderlyingDeliveryStreamElectingPartySide',\n        abbrName: 'ElctngSide',\n        type: 'DeliveryStreamElectingPartySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'A reference to the party able to choose whether the gas is delivered for a particular period e.g. a swing or interruptible contract.',\n    },\n    {\n        id: 41800,\n        name: 'NoUnderlyingStreamAssetAttributes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of asset attribute entries in the group.',\n    },\n    {\n        id: 41801,\n        name: 'UnderlyingStreamAssetAttributeType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the name of the attribute.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Asset_Attribute_Types for code list of applicable asset attribute types.',\n    },\n    {\n        id: 41802,\n        name: 'UnderlyingStreamAssetAttributeValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the value of the attribute.',\n    },\n    {\n        id: 41803,\n        name: 'UnderlyingStreamAssetAttributeLimit',\n        abbrName: 'Lmt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The limit or lower acceptable value of the attribute.',\n    },\n    {\n        id: 41804,\n        name: 'NoUnderlyingDeliveryStreamCycles',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of delivery cycles in the repeating group.',\n    },\n    {\n        id: 41805,\n        name: 'UnderlyingDeliveryStreamCycleDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The delivery cycles during which the oil product will be transported in the pipeline.',\n    },\n    {\n        id: 41806,\n        name: 'EncodedUnderlyingDeliveryStreamCycleDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Byte length of encoded (non-ASCII characters) EncodedUnderlyingDeliveryStreamCycleDesc(41807) field.',\n    },\n    {\n        id: 41807,\n        name: 'EncodedUnderlyingDeliveryStreamCycleDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41806',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingDeliveryStreamCycleDesc(41805) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingDeliveryStreamCycleDesc(41805) field.',\n    },\n    {\n        id: 41808,\n        name: 'NoUnderlyingDeliveryStreamCommoditySources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of commodity sources in the repeating group.',\n    },\n    {\n        id: 41809,\n        name: 'UnderlyingDeliveryStreamCommoditySource',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The SCoTA coal cargo origin, mining region, mine(s), mining complex(es), loadout(s) or river dock(s) or other point(s) of origin that seller and buyer agree are acceptable origins for the coal product. For international coal transactions, this is the origin of the coal product.\\n\\nSee http://www.fpml.org/coding-scheme/commodity-coal-product-source for values.',\n    },\n    {\n        id: 41810,\n        name: 'UnderlyingExerciseDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'A description of the option exercise.',\n    },\n    {\n        id: 41811,\n        name: 'EncodedUnderlyingExerciseDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedUnderlyingExerciseDesc(41812) field.',\n    },\n    {\n        id: 41812,\n        name: 'EncodedUnderlyingExerciseDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41811',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingExerciseDesc(41810) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingExerciseDesc(41810) field.',\n    },\n    {\n        id: 41813,\n        name: 'UnderlyingAutomaticExerciseIndicator',\n        abbrName: 'AutoExerInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Indicates (when 'Y') that exercise is automatic when the strike price is crossed or the underlying trade is in the money.\",\n    },\n    {\n        id: 41814,\n        name: 'UnderlyingAutomaticExerciseThresholdRate',\n        abbrName: 'AutoRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The threshold rate for triggering automatic exercise.',\n    },\n    {\n        id: 41815,\n        name: 'UnderlyingExerciseConfirmationMethod',\n        abbrName: 'ExerCnfm',\n        type: 'ExerciseConfirmationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Indicates whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent.\",\n    },\n    {\n        id: 41816,\n        name: 'UnderlyingManualNoticeBusinessCenter',\n        abbrName: 'ManNtcBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the business center used for adjusting the time for manual exercise notice.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41817,\n        name: 'UnderlyingFallbackExerciseIndicator',\n        abbrName: 'FallbckExerInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether the notional amount of the underlying swap, not previously exercised under the option, will be automatically exercised at the expiration time on the expiration date if at such time the buyer is in-the-money, provided that the difference between the settlement rate and the fixed rate under the relevant underlying swap is not less than one tenth of a percentage point (0.10% or 0.001).',\n    },\n    {\n        id: 41818,\n        name: 'UnderlyingLimitedRightToConfirmIndicator',\n        abbrName: 'LtdRightCnfmInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether the Seller may request the Buyer to confirm its intent to exercise if not done on or before the expiration time on the Expiration date. If true (\"Y\") specific rules will apply in relation to the settlement mode.',\n    },\n    {\n        id: 41819,\n        name: 'UnderlyingExerciseSplitTicketIndicator',\n        abbrName: 'ExerSplitTktInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates in physical settlement of bond and convertible bond options whether the party required to deliver the bonds will divide those to be delivered as notifying party desires to facilitate delivery obligations.',\n    },\n    {\n        id: 41820,\n        name: 'NoUnderlyingOptionExerciseBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41821,\n        name: 'UnderlyingOptionExerciseBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the option exercise dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41822,\n        name: 'UnderlyingOptionExerciseBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the option exercise dates. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n    },\n    {\n        id: 41823,\n        name: 'UnderlyingOptionExerciseEarliestDateOffsetDayType',\n        abbrName: 'ErlstOfstDayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative earliest exercise date offset.',\n    },\n    {\n        id: 41824,\n        name: 'UnderlyingOptionExerciseEarliestDateOffsetPeriod',\n        abbrName: 'ErlstOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the relative earliest exercise date offset.',\n    },\n    {\n        id: 41825,\n        name: 'UnderlyingOptionExerciseEarliestDateOffsetUnit',\n        abbrName: 'ErlstOfstUnit',\n        type: 'ProvisionOptionExerciseEarliestDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the relative earliest exercise date offset.',\n    },\n    {\n        id: 41826,\n        name: 'UnderlyingOptionExerciseFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the frequency of exercise dates.',\n    },\n    {\n        id: 41827,\n        name: 'UnderlyingOptionExerciseFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the frequency of exercise dates.',\n    },\n    {\n        id: 41828,\n        name: 'UnderlyingOptionExerciseStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted start date for calculating periodic exercise dates.',\n    },\n    {\n        id: 41829,\n        name: 'UnderlyingOptionExerciseStartDateRelativeTo',\n        abbrName: 'StartDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Specifies the anchor date when the option exercise start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 41830,\n        name: 'UnderlyingOptionExerciseStartDateOffsetPeriod',\n        abbrName: 'StartDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the relative exercise start date offset.',\n    },\n    {\n        id: 41831,\n        name: 'UnderlyingOptionExerciseStartDateOffsetUnit',\n        abbrName: 'StartDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the relative exercise start date offset.',\n    },\n    {\n        id: 41832,\n        name: 'UnderlyingOptionExerciseStartDateOffsetDayType',\n        abbrName: 'StartDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative option exercise start date offset.',\n    },\n    {\n        id: 41833,\n        name: 'UnderlyingOptionExerciseStartDateAdjusted',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted start date for calculating periodic exercise dates.',\n    },\n    {\n        id: 41834,\n        name: 'UnderlyingOptionExerciseSkip',\n        abbrName: 'Skip',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1.',\n    },\n    {\n        id: 41835,\n        name: 'UnderlyingOptionExerciseNominationDeadline',\n        abbrName: 'NomntnDdln',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The last date (adjusted) for establishing the option exercise terms.',\n    },\n    {\n        id: 41836,\n        name: 'UnderlyingOptionExerciseFirstDateUnadjusted',\n        abbrName: 'FirstDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted first exercise date.',\n    },\n    {\n        id: 41837,\n        name: 'UnderlyingOptionExerciseLastDateUnadjusted',\n        abbrName: 'LastDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted last exercise date.',\n    },\n    {\n        id: 41838,\n        name: 'UnderlyingOptionExerciseEarliestTime',\n        abbrName: 'ErlstTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) (i) on the expriation date, in the case of a European style option, (ii) on each Bermuda option exercise date and the expiration date, in the case of a Bermuda style option, (iii) the commencement date to, and including, the expiration date, in the case of an American option.\",\n    },\n    {\n        id: 41839,\n        name: 'UnderlyingOptionExerciseLatestTime',\n        abbrName: 'LtstTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Latest exercise time. See also UnderlyingOptionExerciseEarliestTime(41838).',\n    },\n    {\n        id: 41840,\n        name: 'UnderlyingOptionExerciseTimeBusinessCenter',\n        abbrName: 'TmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center used to determine the locale for option exercise time, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values',\n    },\n    {\n        id: 41841,\n        name: 'NoUnderlyingOptionExerciseDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of dates in the repeating group.',\n    },\n    {\n        id: 41842,\n        name: 'UnderlyingOptionExerciseDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted or unadjusted option exercise fixed date.',\n    },\n    {\n        id: 41843,\n        name: 'UnderlyingOptionExerciseDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of option exercise date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41844,\n        name: 'NoUnderlyingOptionExerciseExpirationDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41845,\n        name: 'UnderlyingOptionExerciseExpirationDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the option exercise expiration dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41846,\n        name: 'UnderlyingOptionExerciseExpirationDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the option exercise expiration dates. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n    },\n    {\n        id: 41847,\n        name: 'UnderlyingOptionExerciseExpirationDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Specifies the anchor date when the option exercise expiration date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 41848,\n        name: 'UnderlyingOptionExerciseExpirationDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the relative exercise expiration date offset.',\n    },\n    {\n        id: 41849,\n        name: 'UnderlyingOptionExerciseExpirationDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the relative exercise expiration date offset.',\n    },\n    {\n        id: 41850,\n        name: 'UnderlyingOptionExerciseExpirationFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the frequency of exercise expiration dates.',\n    },\n    {\n        id: 41851,\n        name: 'UnderlyingOptionExerciseExpirationFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the frequency of exercise expiration dates.',\n    },\n    {\n        id: 41852,\n        name: 'UnderlyingOptionExerciseExpirationRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The convention for determining the sequence of exercise expiration dates. It is used in conjunction with a specified frequency. Used only to override the roll convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n    },\n    {\n        id: 41853,\n        name: 'UnderlyingOptionExerciseExpirationDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Specifies the day type of the relative option exercise expiration date offset.',\n    },\n    {\n        id: 41854,\n        name: 'UnderlyingOptionExerciseExpirationTime',\n        abbrName: 'Tm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The option exercise expiration time.',\n    },\n    {\n        id: 41855,\n        name: 'UnderlyingOptionExerciseExpirationTimeBusinessCenter',\n        abbrName: 'TmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center used to determine the locale for option exercise expiration time, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41856,\n        name: 'NoUnderlyingOptionExerciseExpirationDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of fixed exercise expiration dates in the repeating group.',\n    },\n    {\n        id: 41857,\n        name: 'UnderlyingOptionExerciseExpirationDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted or unadjusted option exercise expiration fixed date.',\n    },\n    {\n        id: 41858,\n        name: 'UnderlyingOptionExerciseExpirationDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of option exercise expiration date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41859,\n        name: 'UnderlyingMarketDisruptionProvision',\n        abbrName: 'Prov',\n        type: 'MarketDisruptionProvisionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The consequences of market disruption events.',\n    },\n    {\n        id: 41860,\n        name: 'UnderlyingMarketDisruptionFallbackProvision',\n        abbrName: 'FallbckProv',\n        type: 'MarketDisruptionFallbackProvisionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the location of the fallback provision documentation.',\n    },\n    {\n        id: 41861,\n        name: 'UnderlyingMarketDisruptionMaximumDays',\n        abbrName: 'MaxDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the maximum number of market disruption days (commodity or bullion business days) in a contract or confirmation. If none are specified, the maximum number of market disruption days is five (5).\\n\\nISDA 2005 Commodity Definition.',\n    },\n    {\n        id: 41862,\n        name: 'UnderlyingMarketDisruptionMaterialityPercentage',\n        abbrName: 'MtrltyPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Used when a price materiality percentage applies to the price source disruption event and this event has been specified.\\n\\nApplicable to 2005 Commodity Definitions only.',\n    },\n    {\n        id: 41863,\n        name: 'UnderlyingMarketDisruptionMinimumFuturesContracts',\n        abbrName: 'MinCtrcts',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Specifies the minimum futures contracts level that dictates whether or not a 'De Minimis Trading' event has occurred.\\n\\nApplicable to 1993 Commodity Definitions only.\",\n    },\n    {\n        id: 41864,\n        name: 'NoUnderlyingMarketDisruptionEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of disruption events in the repeating group.',\n    },\n    {\n        id: 41865,\n        name: 'UnderlyingMarketDisruptionEvent',\n        abbrName: 'Evnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '187',\n        description:\n            'Specifies the market disruption event.\\n\\nFor commodities see http://www.fpml.org/coding-scheme/commodity-market-disruption for values.\\n\\nFor foreign exchange, see http://www.fixtradingcommunity.org/codelists#Market_Disruption_Event for code list of applicable event types.',\n    },\n    {\n        id: 41866,\n        name: 'NoUnderlyingMarketDisruptionFallbacks',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of fallbacks in the repeating group.',\n    },\n    {\n        id: 41867,\n        name: 'UnderlyingMarketDisruptionFallbackType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of disruption fallback.\\n\\nSee http://www.fpml.org/coding-scheme/commodity-market-disruption-fallback for values.',\n    },\n    {\n        id: 41868,\n        name: 'NoUnderlyingMarketDisruptionFallbackReferencePrices',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of fallback reference securities in the repeating group.',\n    },\n    {\n        id: 41869,\n        name: 'UnderlyingMarketDisruptionFallbackUnderlierType',\n        abbrName: 'Typ',\n        type: 'MarketDisruptionFallbackUnderlierTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The type of reference price underlier.',\n    },\n    {\n        id: 41870,\n        name: 'UnderlyingMarketDisruptionFallbackUnderlierSecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '41871',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the identifier value of the security.',\n    },\n    {\n        id: 41871,\n        name: 'UnderlyingMarketDisruptionFallbackUnderlierSecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '265',\n        description: 'Specifies the class or source scheme of the security identifier.',\n    },\n    {\n        id: 41872,\n        name: 'UnderlyingMarketDisruptionFallbackUnderlierSecurityDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the description of underlying security.',\n    },\n    {\n        id: 41873,\n        name: 'EncodedUnderlyingMarketDisruptionFallbackUnderlierSecDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Byte length of encoded (non-ASCII characters) EncodedUnderlyingMarketDisruptionFallbackUnderlierSecurityDesc(41874) field.',\n    },\n    {\n        id: 41874,\n        name: 'EncodedUnderlyingMarketDisruptionFallbackUnderlierSecurityDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41873',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingMarketDisruptionFallbackUnderlierSecurityDesc(41872) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingMarketDisruptionFallbackUnderlierSecurityDesc(41872).',\n    },\n    {\n        id: 41875,\n        name: 'UnderlyingMarketDisruptionFallbackOpenUnits',\n        abbrName: 'OpnUnits',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'If there are multiple underlying assets, this specifies the number of units (index or securities) that constitute the underlier of the swap. In the case of a basket swap, this is used to reference both the number of basket units, and the number of each asset components of the basket when these are expressed in absolute terms.',\n    },\n    {\n        id: 41876,\n        name: 'UnderlyingMarketDisruptionFallbackBasketCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency if the underlier is a basket. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41877,\n        name: 'UnderlyingMarketDisruptionFallbackBasketDivisor',\n        abbrName: 'Dvsr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the basket divisor amount. This value is normally used to adjust the constituent weight for pricing or to adjust for dividends, or other corporate actions.',\n    },\n    {\n        id: 41878,\n        name: 'NoUnderlyingPaymentScheduleFixingDays',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of fixing days in the repeating group.',\n    },\n    {\n        id: 41879,\n        name: 'UnderlyingPaymentScheduleFixingDayOfWeek',\n        abbrName: 'DayOfWk',\n        type: 'PaymentStreamPricingDayOfWeekCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The day of the week on which fixing takes place.',\n    },\n    {\n        id: 41880,\n        name: 'UnderlyingPaymentScheduleFixingDayNumber',\n        abbrName: 'DayNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The occurrence of the day of week on which fixing takes place.\\n\\nFor example, a fixing of the 3rd Friday would be DayOfWk=5 DayNum=3. If omitted every day of the week is a fixing day.',\n    },\n    {\n        id: 41881,\n        name: 'UnderlyingPaymentScheduleXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this UnderlyingPaymentSchedule for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41882,\n        name: 'UnderlyingPaymentScheduleXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to payment schedule elsewhere in the message.',\n    },\n    {\n        id: 41883,\n        name: 'UnderlyingPaymentScheduleRateCurrency',\n        abbrName: 'RtCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of the schedule rate. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41884,\n        name: 'UnderlyingPaymentScheduleRateUnitOfMeasure',\n        abbrName: 'RtUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The schedule rate unit of measure (UOM).',\n    },\n    {\n        id: 41885,\n        name: 'UnderlyingPaymentScheduleRateConversionFactor',\n        abbrName: 'RtFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            \"The number to be multiplied by the derived floating rate of the underlying's payment schedule in order to arrive at the payment rate. If omitted, the schedule rate conversion factor is 1.\",\n    },\n    {\n        id: 41886,\n        name: 'UnderlyingPaymentScheduleRateSpreadType',\n        abbrName: 'SpreadTyp',\n        type: 'PaymentStreamRateSpreadTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies whether the rate spread is an absolute value to be added to the index rate or a percentage of the index rate.',\n    },\n    {\n        id: 41887,\n        name: 'UnderlyingPaymentScheduleSettlPeriodPrice',\n        abbrName: 'SettlPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The schedule settlement period price.',\n    },\n    {\n        id: 41888,\n        name: 'UnderlyingPaymentScheduleSettlPeriodPriceCurrency',\n        abbrName: 'SettlPxCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The currency of the schedule settlement period price. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41889,\n        name: 'UnderlyingPaymentScheduleSettlPeriodPriceUnitOfMeasure',\n        abbrName: 'SettlPxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The settlement period price unit of measure (UOM).',\n    },\n    {\n        id: 41890,\n        name: 'UnderlyingPaymentScheduleStepUnitOfMeasure',\n        abbrName: 'StepUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The schedule step unit of measure (UOM).',\n    },\n    {\n        id: 41891,\n        name: 'UnderlyingPaymentScheduleFixingDayDistribution',\n        abbrName: 'FixngDayDistrib',\n        type: 'PaymentStreamPricingDayDistributionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The distribution of fixing days.',\n    },\n    {\n        id: 41892,\n        name: 'UnderlyingPaymentScheduleFixingDayCount',\n        abbrName: 'FixngDayCnt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of days over which fixing should take place.',\n    },\n    {\n        id: 41893,\n        name: 'UnderlyingPaymentScheduleFixingLagPeriod',\n        abbrName: 'FixngLagPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the fixing lag duration.',\n    },\n    {\n        id: 41894,\n        name: 'UnderlyingPaymentScheduleFixingLagUnit',\n        abbrName: 'FixngLagUnit',\n        type: 'PaymentStreamInflationLagUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the fixing lag duration.',\n    },\n    {\n        id: 41895,\n        name: 'UnderlyingPaymentScheduleFixingFirstObservationDateOffsetPeriod',\n        abbrName: 'FixngFirstObsvtnPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Time unit multiplier for the relative first observation date offset.\\n\\nIf the first observation offset is specified, the observation period will start the specified interval prior to each calculation period - i.e. if the first observation offset is 4 months and the lag duration is 3 months, observations will be taken in months 4, 3 and 2 (but not 1) prior to each calculation period. If no first observation offset is specified, the observation period will end immediately preceding each calculation period.',\n    },\n    {\n        id: 41896,\n        name: 'UnderlyingPaymentScheduleFixingFirstObservationDateOffsetUnit',\n        abbrName: 'FixngFirstObsvtnUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative first observation date offset.',\n    },\n    {\n        id: 41897,\n        name: 'UnderlyingPaymentStreamFlatRateIndicator',\n        abbrName: 'FlatRtInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'When this element is specified and set to \\'Y\\', the Flat Rate is the New Worldwide Tanker Nominal Freight Scale for the Freight Index Route taken at the Trade Date of the transaction \"Fixed\". If \\'N\\' it is taken on each Pricing Date \"Floating\".',\n    },\n    {\n        id: 41898,\n        name: 'UnderlyingPaymentStreamFlatRateAmount',\n        abbrName: 'FlatRtAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"Specifies the actual monetary value of the flat rate when UnderlyingPaymentStreamFlatRateIndicator(41897) = 'Y'.\",\n    },\n    {\n        id: 41899,\n        name: 'UnderlyingPaymentStreamFlatRateCurrency',\n        abbrName: 'FlatRtCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of the actual flat rate. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41900,\n        name: 'UnderlyingPaymentStreamMaximumPaymentAmount',\n        abbrName: 'MaxPmtAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the limit on the total payment amount.',\n    },\n    {\n        id: 41901,\n        name: 'UnderlyingPaymentStreamMaximumPaymentCurrency',\n        abbrName: 'MaxPmtCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of total payment amount limit. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41902,\n        name: 'UnderlyingPaymentStreamMaximumTransactionAmount',\n        abbrName: 'MaxTxnAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the limit on the payment amount that goes out in any particular calculation period.',\n    },\n    {\n        id: 41903,\n        name: 'UnderlyingPaymentStreamMaximumTransactionCurrency',\n        abbrName: 'MaxTxnCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of the period payment amount limit. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41904,\n        name: 'UnderlyingPaymentStreamFixedAmountUnitOfMeasure',\n        abbrName: 'FixedAmtUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Fixed payment amount unit of measure (UOM).',\n    },\n    {\n        id: 41905,\n        name: 'UnderlyingPaymentStreamTotalFixedAmount',\n        abbrName: 'FixedAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the total fixed payment amount.',\n    },\n    {\n        id: 41906,\n        name: 'UnderlyingPaymentStreamWorldScaleRate',\n        abbrName: 'WorldScaleRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The number of Worldscale points for purposes of the calculation of a fixed amount for a wet voyage charter commodity swap.',\n    },\n    {\n        id: 41907,\n        name: 'UnderlyingPaymentStreamContractPrice',\n        abbrName: 'CtrctPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The price per relevant unit for purposes of the calculation of a fixed amount for a dry voyage charter or time charter commodity swap.',\n    },\n    {\n        id: 41908,\n        name: 'UnderlyingPaymentStreamContractPriceCurrency',\n        abbrName: 'CtrctPxCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the currency of UnderlyingPaymentStreamContractPrice(41907). Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41909,\n        name: 'NoUnderlyingPaymentStreamPricingBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41910,\n        name: 'UnderlyingPaymentStreamPricingBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the payment stream\\'s pricing dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41911,\n        name: 'UnderlyingPaymentStreamRateIndex2CurveUnit',\n        abbrName: 'Ndx2Unit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Secondary time unit associated with the payment stream\u2019s floating rate index curve.',\n    },\n    {\n        id: 41912,\n        name: 'UnderlyingPaymentStreamRateIndex2CurvePeriod',\n        abbrName: 'Ndx2Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Secondary time unit multiplier for the payment stream\u2019s floating rate index curve.\\n\\nMay be used for a Forward Rate Agreement (FRA) with an average rate between two curve points.',\n    },\n    {\n        id: 41913,\n        name: 'UnderlyingPaymentStreamRateIndexLocation',\n        abbrName: 'NdxLctn',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the location of the floating rate index.',\n    },\n    {\n        id: 41914,\n        name: 'UnderlyingPaymentStreamRateIndexLevel',\n        abbrName: 'NdxLvl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'This is the weather Cooling Degree Days (CDD), Heating Degree Days (HDD) or HDD index level specified as the number of (amount of) weather index units specified by the parties in the related confirmation.',\n    },\n    {\n        id: 41915,\n        name: 'UnderlyingPaymentStreamRateIndexUnitOfMeasure',\n        abbrName: 'NdxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unit of measure (UOM) of the rate index level.',\n    },\n    {\n        id: 41916,\n        name: 'UnderlyingPaymentStreamSettlLevel',\n        abbrName: 'SettlLvl',\n        type: 'PaymentStreamSettlLevelCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies how weather index units are to be calculated.',\n    },\n    {\n        id: 41917,\n        name: 'UnderlyingPaymentStreamReferenceLevel',\n        abbrName: 'RefLvl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'This is the weather Cooling Degree Days (CDD), Heating Degree Days (HDD) or HDD reference level specified as the number of (amount of) weather index units specified by the parties in the related confirmation.',\n    },\n    {\n        id: 41918,\n        name: 'UnderlyingPaymentStreamReferenceLevelUnitOfMeasure',\n        abbrName: 'RefUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unit of measure (UOM) of the rate reference level.',\n    },\n    {\n        id: 41919,\n        name: 'UnderlyingPaymentStreamReferenceLevelEqualsZeroIndicator',\n        abbrName: 'RefLvlZero',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"When set to 'Y', it indicates that the weather reference level equals zero.\",\n    },\n    {\n        id: 41920,\n        name: 'UnderlyingPaymentStreamRateSpreadCurrency',\n        abbrName: 'SpreadCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the currency of the floating rate spread. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41921,\n        name: 'UnderlyingPaymentStreamRateSpreadUnitOfMeasure',\n        abbrName: 'SpreadUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the unit of measure (UOM) of the floating rate spread.',\n    },\n    {\n        id: 41922,\n        name: 'UnderlyingPaymentStreamRateConversionFactor',\n        abbrName: 'RtFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"The number to be multiplied by the derived floating rate of the underlying's payment stream in order to arrive at the payment rate. If omitted, the floating rate conversion factor is 1.\",\n    },\n    {\n        id: 41923,\n        name: 'UnderlyingPaymentStreamRateSpreadType',\n        abbrName: 'SpreadTyp',\n        type: 'PaymentStreamRateSpreadTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies whether the rate spread is an absolute value to be added to the index rate or a percentage of the index rate.',\n    },\n    {\n        id: 41924,\n        name: 'UnderlyingPaymentStreamLastResetRate',\n        abbrName: 'LastResetRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The floating rate determined at the most recent reset. The rate is expressed in decimal form, e.g. 5% is represented as 0.05.',\n    },\n    {\n        id: 41925,\n        name: 'UnderlyingPaymentStreamFinalRate',\n        abbrName: 'FnlRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The floating rate determined at the final reset. The rate is expressed in decimal form, e.g. 5% is represented as 0.05.',\n    },\n    {\n        id: 41926,\n        name: 'UnderlyingPaymentStreamCalculationLagPeriod',\n        abbrName: 'CalcLagPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the calculation lag duration.',\n    },\n    {\n        id: 41927,\n        name: 'UnderlyingPaymentStreamCalculationLagUnit',\n        abbrName: 'CalcLagUnit',\n        type: 'PaymentStreamInflationLagUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the calculation lag duration.',\n    },\n    {\n        id: 41928,\n        name: 'UnderlyingPaymentStreamFirstObservationDateOffsetPeriod',\n        abbrName: 'FirstObsvtnOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Time unit multiplier for the relative first observation date offset.\\n\\nIf the first observation offset is specified, the observation period will start the specified interval prior to each calculation period - i.e. if the first observation offset is 4 months and the lag duration is 3 months, observations will be taken in months 4, 3 and 2 (but not 1) prior to each calculation period. If no first observation offset is specified, the observation period will end immediately preceding each calculation period.',\n    },\n    {\n        id: 41929,\n        name: 'UnderlyingPaymentStreamFirstObservationDateOffsetUnit',\n        abbrName: 'FirstObsvtnOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative first observation date offset.',\n    },\n    {\n        id: 41930,\n        name: 'UnderlyingPaymentStreamPricingDayType',\n        abbrName: 'PxngDayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the commodity pricing day type.',\n    },\n    {\n        id: 41931,\n        name: 'UnderlyingPaymentStreamPricingDayDistribution',\n        abbrName: 'PxngDayDistrib',\n        type: 'PaymentStreamPricingDayDistributionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The distribution of pricing days.',\n    },\n    {\n        id: 41932,\n        name: 'UnderlyingPaymentStreamPricingDayCount',\n        abbrName: 'PxngDayCnt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The number of days over which pricing should take place.',\n    },\n    {\n        id: 41933,\n        name: 'UnderlyingPaymentStreamPricingBusinessCalendar',\n        abbrName: 'PxngClndr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the business calendar to use for pricing.\\n\\nSee http://www.fpml.org/coding-scheme/commodity-business-calendar for values.',\n    },\n    {\n        id: 41934,\n        name: 'UnderlyingPaymentStreamPricingBusinessDayConvention',\n        abbrName: 'PxngBizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"The business day convention used to adjust the payment stream's pricing dates. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 41935,\n        name: 'LegStreamCommoditySettlTimeType',\n        abbrName: 'Typ',\n        type: 'DeliveryScheduleSettlTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the format of the commodity settlement start and end times.',\n    },\n    {\n        id: 41936,\n        name: 'UnderlyingStreamCommoditySettlTimeType',\n        abbrName: 'Typ',\n        type: 'DeliveryScheduleSettlTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the format of the commodity settlement start and end times.',\n    },\n    {\n        id: 41937,\n        name: 'NoUnderlyingPaymentStreamPaymentDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of payment dates in the repeating group.',\n    },\n    {\n        id: 41938,\n        name: 'UnderlyingPaymentStreamPaymentDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted or unadjusted fixed stream payment date.',\n    },\n    {\n        id: 41939,\n        name: 'UnderlyingPaymentStreamPaymentDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of payment date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41940,\n        name: 'UnderlyingPaymentStreamMasterAgreementPaymentDatesIndicator',\n        abbrName: 'MADts',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"When set to 'Y', it indicates that payment dates are specified in the relevant master agreement.\",\n    },\n    {\n        id: 41941,\n        name: 'NoUnderlyingPaymentStreamPricingDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of pricing dates in the repeating group.',\n    },\n    {\n        id: 41942,\n        name: 'UnderlyingPaymentStreamPricingDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'An adjusted or unadjusted fixed pricing date.',\n    },\n    {\n        id: 41943,\n        name: 'UnderlyingPaymentStreamPricingDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of pricing date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41944,\n        name: 'NoUnderlyingPaymentStreamPricingDays',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of pricing days in the repeating group.',\n    },\n    {\n        id: 41945,\n        name: 'UnderlyingPaymentStreamPricingDayOfWeek',\n        abbrName: 'DayOfWk',\n        type: 'PaymentStreamPricingDayOfWeekCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The day of the week on which pricing takes place.',\n    },\n    {\n        id: 41946,\n        name: 'UnderlyingPaymentStreamPricingDayNumber',\n        abbrName: 'DayNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The occurrence of the day of week on which pricing takes place.\\n\\nFor example a pricing day of the 3rd Friday would be DayOfWk=5 DayNum=3.',\n    },\n    {\n        id: 41947,\n        name: 'NoUnderlyingPricingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41948,\n        name: 'UnderlyingPricingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the pricing or fixing date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41949,\n        name: 'UnderlyingPricingDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted pricing or fixing date.',\n    },\n    {\n        id: 41950,\n        name: 'UnderlyingPricingDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the pricing or fixing date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n    },\n    {\n        id: 41951,\n        name: 'UnderlyingPricingDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted pricing or fixing date.',\n    },\n    {\n        id: 41952,\n        name: 'UnderlyingPricingTime',\n        abbrName: 'Tm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The local market pricing or fixing time.',\n    },\n    {\n        id: 41953,\n        name: 'UnderlyingPricingTimeBusinessCenter',\n        abbrName: 'TmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the business center for determining the pricing or fixing time. See http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41954,\n        name: 'NoUnderlyingStreamCalculationPeriodDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of calculation period dates in the repeating group.',\n    },\n    {\n        id: 41955,\n        name: 'UnderlyingStreamCalculationPeriodDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted or unadjusted fixed calculation period date.',\n    },\n    {\n        id: 41956,\n        name: 'UnderlyingStreamCalculationPeriodDateType',\n        abbrName: 'Typ',\n        type: 'OptionExerciseDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of fixed calculation period date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n    },\n    {\n        id: 41957,\n        name: 'UnderlyingStreamCalculationPeriodDatesXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this calculation period for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41958,\n        name: 'UnderlyingStreamCalculationPeriodDatesXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Cross reference to another calculation period for duplicating its properties.',\n    },\n    {\n        id: 41959,\n        name: 'UnderlyingStreamCalculationBalanceOfFirstPeriod',\n        abbrName: 'BalFirst',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            \"When specified and set to 'Y', it indicates that the first calculation period should run from the effective date to the end of the calendar period in which the effective date falls (e.g. Jan 15 - Jan 31 if the calculation periods are one month long and effective date is Jan 15.). If 'N' or not specified, it indicates that the first calculation period should run from the effective date for one whole period (e.g. Jan 15 to Feb 14 if the calculation periods are one month long and the effective date is Jan 15.).\",\n    },\n    {\n        id: 41960,\n        name: 'UnderlyingStreamCalculationCorrectionPeriod',\n        abbrName: 'CrrctnPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Time unit multiplier for the length of time after the publication of the data when corrections can be made.',\n    },\n    {\n        id: 41961,\n        name: 'UnderlyingStreamCalculationCorrectionUnit',\n        abbrName: 'CrrctnUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Time unit associated with the length of time after the publication of the data when corrections can be made.',\n    },\n    {\n        id: 41962,\n        name: 'NoUnderlyingStreamCommoditySettlBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 41963,\n        name: 'UnderlyingStreamCommoditySettlBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business center calendar used to adjust the commodity delivery date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 41964,\n        name: 'UnderlyingStreamCommodityBase',\n        abbrName: 'Base',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the general base type of the commodity traded. Where possible, this should follow the naming convention used in the 2005 ISDA Commodity Definitions.\\n\\nExamples of general commodity base types include:Metal, Bullion, Oil, Natural Gas, Coal, Electricity, Inter-Energy, Grains, Oils Seeds, Dairy, Livestock, Forestry, Softs, Weather, Emissions.',\n    },\n    {\n        id: 41965,\n        name: 'UnderlyingStreamCommodityType',\n        abbrName: 'CmdtyTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the type of commodity product.\\n\\nFor coal see http://www.fpml.org/coding-scheme/commodity-coal-product-type for values.\\n\\nFor metals see http://www.fpml.org/coding-scheme/commodity-metal-product-type for values.\\n\\nFor bullion see http://www.fixtradingcommunity.org/codelists#Bullion_Types for the external code list of bullion types.',\n    },\n    {\n        id: 41966,\n        name: 'UnderlyingStreamCommoditySecurityID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '41967',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the market identifier for the commodity.',\n    },\n    {\n        id: 41967,\n        name: 'UnderlyingStreamCommoditySecurityIDSource',\n        abbrName: 'Src',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.Latest',\n        updatedEP: '265',\n        description: 'Identifies the class or source of the UnderlyingStreamCommoditySecurityIDSource(41966) value.',\n    },\n    {\n        id: 41968,\n        name: 'UnderlyingStreamCommodityDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Description of the commodity asset.',\n    },\n    {\n        id: 41969,\n        name: 'EncodedUnderlyingStreamCommodityDescLen',\n        abbrName: 'EncDescLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedUnderlyingStreamCommodityDesc(41970) field.',\n    },\n    {\n        id: 41970,\n        name: 'EncodedUnderlyingStreamCommodityDesc',\n        abbrName: 'EncDesc',\n        type: 'data',\n        lengthId: '41969',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingStreamCommodityDesc(41968) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingStreamCommodityDesc(41968) field.',\n    },\n    {\n        id: 41971,\n        name: 'UnderlyingStreamCommodityUnitOfMeasure',\n        abbrName: 'UOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unit of measure (UOM) of the commodity asset.',\n    },\n    {\n        id: 41972,\n        name: 'UnderlyingStreamCommodityCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the currency of the commodity asset. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 41973,\n        name: 'UnderlyingStreamCommodityExchange',\n        abbrName: 'Exch',\n        type: 'Exchange',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the exchange where the commodity is traded.',\n    },\n    {\n        id: 41974,\n        name: 'UnderlyingStreamCommodityRateSource',\n        abbrName: 'RtSrc',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Identifies the source of rate information used for commodities.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Commodity_Rate_Source for code list of applicable sources.',\n    },\n    {\n        id: 41975,\n        name: 'UnderlyingStreamCommodityRateReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the reference \"page\" from the rate source.',\n    },\n    {\n        id: 41976,\n        name: 'UnderlyingStreamCommodityRateReferencePageHeading',\n        abbrName: 'RefHdng',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the page heading from the rate source.',\n    },\n    {\n        id: 41977,\n        name: 'UnderlyingStreamDataProvider',\n        abbrName: 'DataPrvdr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the commodity data or information provider.\\n\\nSee http://www.fpml.org/coding-scheme/commodity-information-provider for values.',\n    },\n    {\n        id: 41978,\n        name: 'UnderlyingStreamCommodityPricingType',\n        abbrName: 'PxngTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies how the pricing or rate setting of the trade is to be determined or based upon.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Commodity_Rate_Pricing_Type for code list of applicable commodity pricing types.',\n    },\n    {\n        id: 41979,\n        name: 'UnderlyingStreamCommodityNearbySettlDayPeriod',\n        abbrName: 'Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Time unit multiplier for the nearby settlement day.\\n\\nWhen the commodity transaction references a futures contract, the delivery or settlement dates are a nearby month or week. For example, for eighth nearby month use Period=8 and Unit=Mo.',\n    },\n    {\n        id: 41980,\n        name: 'UnderlyingStreamCommodityNearbySettlDayUnit',\n        abbrName: 'Unit',\n        type: 'StreamCommodityNearbySettlDayUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the nearby settlement day.',\n    },\n    {\n        id: 41981,\n        name: 'UnderlyingStreamCommoditySettlDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The unadjusted commodity delivery date.',\n    },\n    {\n        id: 41982,\n        name: 'UnderlyingStreamCommoditySettlDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The business day convention used to adjust the commodity delivery date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n    },\n    {\n        id: 41983,\n        name: 'UnderlyingStreamCommoditySettlDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The adjusted commodity delivery date.',\n    },\n    {\n        id: 41984,\n        name: 'UnderlyingStreamCommoditySettlMonth',\n        abbrName: 'Mo',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies a fixed single month for commodity delivery.\\n\\nUse \"1\" for January, \"2\" for February, etc.',\n    },\n    {\n        id: 41985,\n        name: 'UnderlyingStreamCommoditySettlDateRollPeriod',\n        abbrName: 'RollPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Time unit multiplier for the commodity delivery date roll.\\n\\nFor a commodity transaction that references a listed future via the delivery dates, this is the day offset on which the specified future will roll to the next nearby month when the referenced future expires.',\n    },\n    {\n        id: 41986,\n        name: 'UnderlyingStreamCommoditySettlDateRollUnit',\n        abbrName: 'RollUnit',\n        type: 'StreamCommoditySettlDateRollUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the commodity delivery date roll.',\n    },\n    {\n        id: 41987,\n        name: 'UnderlyingStreamCommoditySettlDayType',\n        abbrName: 'DayTyp',\n        type: 'ComplexEventDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the commodity delivery roll day type.',\n    },\n    {\n        id: 41988,\n        name: 'UnderlyingStreamCommodityXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this stream commodity for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 41989,\n        name: 'UnderlyingStreamCommodityXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Reference to a stream commodity elsewhere in the message.',\n    },\n    {\n        id: 41990,\n        name: 'NoUnderlyingStreamCommodityAltIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of alternate security identifers.',\n    },\n    {\n        id: 41991,\n        name: 'UnderlyingStreamCommodityAltID',\n        abbrName: 'AltID',\n        type: 'String',\n        discriminatorId: '41992',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Alternate security identifier value for the commodity.',\n    },\n    {\n        id: 41992,\n        name: 'UnderlyingStreamCommodityAltIDSource',\n        abbrName: 'AltIDSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifies the class or source of the alternate commodity security identifier.',\n    },\n    {\n        id: 41993,\n        name: 'NoUnderlyingStreamCommodityDataSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of commodity data sources in the repeating group.',\n    },\n    {\n        id: 41994,\n        name: 'UnderlyingStreamCommodityDataSourceID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Data source identifier.',\n    },\n    {\n        id: 41995,\n        name: 'UnderlyingStreamCommodityDataSourceIDType',\n        abbrName: 'Typ',\n        type: 'StreamCommodityDataSourceIDTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the type of data source identifier.',\n    },\n    {\n        id: 41996,\n        name: 'NoUnderlyingStreamCommoditySettlDays',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of days in the repeating group.',\n    },\n    {\n        id: 41997,\n        name: 'UnderlyingStreamCommoditySettlDay',\n        abbrName: 'Day',\n        type: 'DeliveryScheduleSettlDayCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the day or group of days for delivery.',\n    },\n    {\n        id: 41998,\n        name: 'UnderlyingStreamCommoditySettlTotalHours',\n        abbrName: 'TotHrs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Sum of the hours specified in UnderlyingStreamCommoditySettlTimeGrp.',\n    },\n    {\n        id: 41999,\n        name: 'NoUnderlyingStreamCommoditySettlTimes',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of hour ranges in the repeating group.',\n    },\n    {\n        id: 42000,\n        name: 'UnderlyingStreamCommoditySettlStart',\n        abbrName: 'Start',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The start time for commodity settlement where delivery occurs over time. The time format is specified by the settlement time type.',\n    },\n    {\n        id: 42001,\n        name: 'UnderlyingStreamCommoditySettlEnd',\n        abbrName: 'End',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'The end time for commodity settlement where delivery occurs over time. The time format is specified by the settlement time type.',\n    },\n    {\n        id: 42002,\n        name: 'NoUnderlyingStreamCommoditySettlPeriods',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Number of commodity settlement periods in the repeating group.',\n    },\n    {\n        id: 42003,\n        name: 'UnderlyingStreamCommoditySettlCountry',\n        abbrName: 'Ctry',\n        type: 'Country',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the country where delivery takes place. Uses ISO 3166 2-character country code.',\n    },\n    {\n        id: 42004,\n        name: 'UnderlyingStreamCommoditySettlTimeZone',\n        abbrName: 'TZ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Commodity delivery timezone specified as \"prevailing\" rather than \"standard\" or \"daylight\".\\n\\nSee http://www.fixtradingcommunity.org/codelists#Prevailing_Timezones for code list of applicable prevailing timezones.',\n    },\n    {\n        id: 42005,\n        name: 'UnderlyingStreamCommoditySettlFlowType',\n        abbrName: 'FlowTyp',\n        type: 'DeliveryScheduleSettlFlowTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the commodity delivery flow type.',\n    },\n    {\n        id: 42006,\n        name: 'UnderlyingStreamCommoditySettlPeriodNotional',\n        abbrName: 'Notl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the delivery quantity associated with this settlement period.',\n    },\n    {\n        id: 42007,\n        name: 'UnderlyingStreamCommoditySettlPeriodNotionalUnitOfMeasure',\n        abbrName: 'NotlUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the unit of measure (UOM) of the delivery quantity associated with this settlement period.',\n    },\n    {\n        id: 42008,\n        name: 'UnderlyingStreamCommoditySettlPeriodFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit multiplier for the settlement period frequency.',\n    },\n    {\n        id: 42009,\n        name: 'UnderlyingStreamCommoditySettlPeriodFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Time unit associated with the settlement period frequency.',\n    },\n    {\n        id: 42010,\n        name: 'UnderlyingStreamCommoditySettlPeriodPrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The settlement period price.',\n    },\n    {\n        id: 42011,\n        name: 'UnderlyingStreamCommoditySettlPeriodPriceUnitOfMeasure',\n        abbrName: 'PxUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the settlement period price unit of measure (UOM).',\n    },\n    {\n        id: 42012,\n        name: 'UnderlyingStreamCommoditySettlPeriodPriceCurrency',\n        abbrName: 'PxCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'The currency of the settlement period price. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42013,\n        name: 'UnderlyingStreamCommoditySettlHolidaysProcessingInstruction',\n        abbrName: 'Holidays',\n        type: 'DeliveryScheduleSettlHolidaysProcessingInstructionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Indicates whether holidays are included in the settlement periods. Required for electricity contracts.',\n    },\n    {\n        id: 42014,\n        name: 'UnderlyingStreamCommoditySettlPeriodXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this settlement period for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 42015,\n        name: 'UnderlyingStreamCommoditySettlPeriodXIDRef',\n        abbrName: 'XIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Cross reference to another settlement period for duplicating its properties.',\n    },\n    {\n        id: 42016,\n        name: 'UnderlyingStreamXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Identifier of this UnderlyingStream for cross referencing elsewhere in the message.',\n    },\n    {\n        id: 42017,\n        name: 'UnderlyingAdditionalTermBondIssuer',\n        abbrName: 'Issr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Issuer of the bond.',\n    },\n    {\n        id: 42018,\n        name: 'UnderlyingStreamNotionalXIDRef',\n        abbrName: 'NotlXIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Cross reference to another UnderlyingStream notional for duplicating its properties.',\n    },\n    {\n        id: 42019,\n        name: 'UnderlyingStreamNotionalFrequencyPeriod',\n        abbrName: 'NotlPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Time unit multiplier for the swap stream's notional frequency.\",\n    },\n    {\n        id: 42020,\n        name: 'UnderlyingStreamNotionalFrequencyUnit',\n        abbrName: 'NotlUnit',\n        type: 'TimeUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"Time unit associated with the swap stream's notional frequency.\",\n    },\n    {\n        id: 42021,\n        name: 'UnderlyingStreamNotionalCommodityFrequency',\n        abbrName: 'NotlFreq',\n        type: 'StreamNotionalCommodityFrequencyCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: \"The commodity's notional or quantity delivery frequency.\",\n    },\n    {\n        id: 42022,\n        name: 'UnderlyingStreamNotionalUnitOfMeasure',\n        abbrName: 'NotlUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the delivery quantity unit of measure (UOM).',\n    },\n    {\n        id: 42023,\n        name: 'UnderlyingStreamTotalNotional',\n        abbrName: 'TotNotl',\n        type: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description: 'Specifies the total notional or delivery quantity over the term of the contract.',\n    },\n    {\n        id: 42024,\n        name: 'UnderlyingStreamTotalNotionalUnitOfMeasure',\n        abbrName: 'TotNotlUOM',\n        type: 'UnitOfMeasureCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        description:\n            'Specifies the unit of measure (UOM) for the total notional or delivery quantity over the term of the contract.',\n    },\n    {\n        id: 42025,\n        name: 'EncodedUnderlyingAdditionalTermBondIssuerLen',\n        abbrName: 'EncIssrLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Byte length of encoded (non-ASCII characters) EncodedUnderlyingAdditionalTermBondIssuer(42026) field.',\n    },\n    {\n        id: 42026,\n        name: 'EncodedUnderlyingAdditionalTermBondIssuer',\n        abbrName: 'EncIssr',\n        type: 'data',\n        lengthId: '42025',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingAdditionalTermBondIssuer(42017) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingAdditionalTermBondIssuer(42017) field.',\n    },\n    {\n        id: 42027,\n        name: 'UnderlyingAdditionalTermBondSeniority',\n        abbrName: 'Snrty',\n        type: 'SeniorityCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: \"Specifies the bond's payment priority in the event of a default.\",\n    },\n    {\n        id: 42028,\n        name: 'UnderlyingAdditionalTermBondCouponType',\n        abbrName: 'CpnTyp',\n        type: 'CouponTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Coupon type of the bond.',\n    },\n    {\n        id: 42029,\n        name: 'UnderlyingAdditionalTermBondCouponRate',\n        abbrName: 'CpnRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Coupon rate of the bond. See also CouponRate(223).',\n    },\n    {\n        id: 42030,\n        name: 'UnderlyingAdditionalTermBondMaturityDate',\n        abbrName: 'MatDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The maturity date of the bond.',\n    },\n    {\n        id: 42031,\n        name: 'UnderlyingAdditionalTermBondParValue',\n        abbrName: 'Par',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The par value of the bond.',\n    },\n    {\n        id: 42032,\n        name: 'UnderlyingAdditionalTermBondCurrentTotalIssuedAmount',\n        abbrName: 'CurTotAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Total issued amount of the bond.',\n    },\n    {\n        id: 42033,\n        name: 'UnderlyingAdditionalTermBondCouponFrequencyPeriod',\n        abbrName: 'CpnPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: \"Time unit multiplier for the frequency of the bond's coupon payment.\",\n    },\n    {\n        id: 42034,\n        name: 'UnderlyingAdditionalTermBondCouponFrequencyUnit',\n        abbrName: 'CpnUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: \"Time unit associated with the frequency of the bond's coupon payment.\",\n    },\n    {\n        id: 42035,\n        name: 'UnderlyingAdditionalTermBondDayCount',\n        abbrName: 'DayCnt',\n        type: 'CouponDayCountCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The day count convention used in interest calculations for a bond or an interest bearing security.',\n    },\n    {\n        id: 42036,\n        name: 'NoUnderlyingAdditionalTerms',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of additional terms in the repeating group.',\n    },\n    {\n        id: 42037,\n        name: 'UnderlyingAdditionalTermConditionPrecedentBondIndicator',\n        abbrName: 'PrcdntInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Indicates whether the condition precedent bond is applicable. The swap contract is only valid if the bond is issued and if there is any dispute over the terms of fixed stream then the bond terms would be used.',\n    },\n    {\n        id: 42038,\n        name: 'UnderlyingAdditionalTermDiscrepancyClauseIndicator',\n        abbrName: 'DscrpncyInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Indicates whether the discrepancy clause is applicable.',\n    },\n    {\n        id: 42039,\n        name: 'NoUnderlyingCashSettlDealers',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of dealers in the repeating group.',\n    },\n    {\n        id: 42040,\n        name: 'UnderlyingCashSettlDealer',\n        abbrName: 'Dlr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Identifies the dealer from whom price quotations for the reference obligation are obtained for the purpose of cash settlement valuation calculation.\\n\\nISDA 2003 Term: Dealer',\n    },\n    {\n        id: 42041,\n        name: 'NoUnderlyingCashSettlTerms',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of elements in the repeating group.',\n    },\n    {\n        id: 42042,\n        name: 'UnderlyingCashSettlCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Specifies the currency the UnderlyingCashSettlAmount(42054) is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42043,\n        name: 'UnderlyingCashSettlValuationFirstBusinessDayOffset',\n        abbrName: 'BizDayOfst',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The number of business days after settlement conditions have been satisfied, when the calculation agent is to obtain a price quotation on the reference obligation for purposes of cash settlement.\\n\\nAssociated with ISDA 2003 Term: Valuation Date.',\n    },\n    {\n        id: 42044,\n        name: 'UnderlyingCashSettlValuationSubsequentBusinessDaysOffset',\n        abbrName: 'SbsqntBizDayOfst',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The number of business days between successive valuation dates when multiple valuation dates are applicable for cash settlement.\\n\\nAssociated with ISDA 2003 Term: Valuation Date.',\n    },\n    {\n        id: 42045,\n        name: 'UnderlyingCashSettlNumOfValuationDates',\n        abbrName: 'NumValDts',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Where multiple valuation dates are specified as being applicable for cash settlement, this element specifies the number of applicable valuation dates.\\n\\nAssociated with ISDA 2003 Term: Valuation Date.',\n    },\n    {\n        id: 42046,\n        name: 'UnderlyingCashSettlValuationTime',\n        abbrName: 'ValTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Time of valuation.',\n    },\n    {\n        id: 42047,\n        name: 'UnderlyingCashSettlBusinessCenter',\n        abbrName: 'BizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Identifies the business center calendar used at valuation time for cash settlement purposes e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42048,\n        name: 'UnderlyingCashSettlQuoteMethod',\n        abbrName: 'QteMeth',\n        type: 'CashSettlQuoteMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The type of quote used to determine the cash settlement price.',\n    },\n    {\n        id: 42049,\n        name: 'UnderlyingCashSettlQuoteAmount',\n        abbrName: 'QteAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'When determining the cash settlement amount, if weighted average price quotes are to be obtained for the reference obligation, this is the upper limit to the outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount equal to floating rate payer calculation amount.\\n\\nISDA 2003 Term: Quotation Amount.',\n    },\n    {\n        id: 42050,\n        name: 'UnderlyingCashSettlQuoteCurrency',\n        abbrName: 'QteCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Specifies the currency the UnderlyingCashSettlQuoteAmount(42049) is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42051,\n        name: 'UnderlyingCashSettlMinimumQuoteAmount',\n        abbrName: 'MinQteAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'When determining the cash settlement amount, if weighted average price quotes are to be obtained for the reference obligation, this is the minimum intended threshold amount of outstanding principal balance of the reference obligation for which the quote should be obtained. If not specified, the ISDA definitions provide for a fallback amount of the lower of either USD1,000,000 (or its equivalent in the relevant obligation currency) or the (minimum) quoted amount.\\n\\nISDA 2003 Term: Minimum Quotation Amount.',\n    },\n    {\n        id: 42052,\n        name: 'UnderlyingCashSettlMinimumQuoteCurrency',\n        abbrName: 'MinQteCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Specifies the currency the UnderlyingCashSettlQuoteAmount(42049) is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42053,\n        name: 'UnderlyingCashSettlBusinessDays',\n        abbrName: 'BizDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The number of business days used in the determination of the cash settlement payment date.\\n\\nIf a cash settlement amount is specified, the cash settlement payment date will be this number of business days following the calculation of the final price. If a cash settlement amount is not specified, the cash settlement payment date will be this number of business days after all conditions to settlement are satisfied.\\n\\nISDA 2003 Term: Cash Settlement Date.',\n    },\n    {\n        id: 42054,\n        name: 'UnderlyingCashSettlAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The amount paid between the trade parties, seller to the buyer, for cash settlement on the cash settlement date.\\n\\nIf not specified this would typically be calculated as ((100 or the reference price) - reference obligation price) x floating rate payer calculation amount. Price values are all expressed as a percentage.\\n\\nISDA 2003 Term: Cash Settlement Amount.',\n    },\n    {\n        id: 42055,\n        name: 'UnderlyingCashSettlRecoveryFactor',\n        abbrName: 'RcvryFctr',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Used for fixed recovery, this specifies the recovery level as determined at contract inception, to be applied in the event of a default. The factor is used to calculate the amount paid by the seller to the buyer for cash settlement on the cash settlement date. The amount is calculated is (1 - UnderlyingCashSettlRecoveryFactor(42055)) x floating rate payer calculation amount. The currency is derived from the floating rate payer calculation amount.',\n    },\n    {\n        id: 42056,\n        name: 'UnderlyingCashSettlFixedTermIndicator',\n        abbrName: 'FixedInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Indicates whether fixed settlement is applicable or not applicable in a recovery lock.',\n    },\n    {\n        id: 42057,\n        name: 'UnderlyingCashSettlAccruedInterestIndicator',\n        abbrName: 'AcrdIntInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Indicates whether accrued interest is included or not in the value provided in UnderlyingCashSettlAmount(42054).\\n\\nFor cash settlement this specifies whether quotations should be obtained inclusive or not of accrued interest.\\n\\nFor physical settlement this specifies whether the buyer should deliver the obligation with an outstanding principal balance that includes or excludes accrued interest.\\n\\nISDA 2003 Term: Include/Exclude Accrued Interest.',\n    },\n    {\n        id: 42058,\n        name: 'UnderlyingCashSettlValuationMethod',\n        abbrName: 'ValMeth',\n        type: 'CashSettlValuationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The ISDA defined methodology for determining the final price of the reference obligation for purposes of cash settlement.\\n\\nISDA 2003 Term: Valuation Method',\n    },\n    {\n        id: 42059,\n        name: 'UnderlyingCashSettlTermXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Name referenced from UnderlyingSettlementTermXIDRef(41315).',\n    },\n    {\n        id: 42060,\n        name: 'NoUnderlyingPhysicalSettlTerms',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of entries in the repeating group.',\n    },\n    {\n        id: 42061,\n        name: 'UnderlyingPhysicalSettlCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Currency of physical settlement. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42062,\n        name: 'UnderlyingPhysicalSettlBusinessDays',\n        abbrName: 'BizDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'A number of business days. Its precise meaning is dependent on the context in which this element is used.\\n\\nISDA 2003 Term: Business Day.',\n    },\n    {\n        id: 42063,\n        name: 'UnderlyingPhysicalSettlMaximumBusinessDays',\n        abbrName: 'MaxBizDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'A maximum number of business days. Its precise meaning is dependent on the context in which this element is used. Intended to be used to limit a particular ISDA fallback provision.',\n    },\n    {\n        id: 42064,\n        name: 'UnderlyingPhysicalSettlTermXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'A named string value referenced by UnderlyingSettlTermXIDRef(41315).',\n    },\n    {\n        id: 42065,\n        name: 'NoUnderlyingPhysicalSettlDeliverableObligations',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of entries in the repeating group.',\n    },\n    {\n        id: 42066,\n        name: 'UnderlyingPhysicalSettlDeliverableObligationType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Specifies the type of delivery obligation applicable for physical settlement.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Deliverable_Obligation_Types for code list for applicable deliverable obligation types.',\n    },\n    {\n        id: 42067,\n        name: 'UnderlyingPhysicalSettlDeliverableObligationValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Physical settlement delivery obligation value appropriate to UnderlyingPhysicalSettlDeliverableObligationType(42066).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Deliverable_Obligation_Types for applicable obligation type values.',\n    },\n    {\n        id: 42068,\n        name: 'NoUnderlyingProtectionTerms',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of protection terms in the repeating group.',\n    },\n    {\n        id: 42069,\n        name: 'UnderlyingProtectionTermNotional',\n        abbrName: 'Notl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The notional amount of protection coverage for a floating rate.\\n\\nISDA 2003 Term: Floating Rate Payer Calculation Amount.',\n    },\n    {\n        id: 42070,\n        name: 'UnderlyingProtectionTermCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The currency of UnderlyingProtectionTermNotional(42069). Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42071,\n        name: 'UnderlyingProtectionTermSellerNotifies',\n        abbrName: 'Seller',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring.\\n\\nUnderlyingProtectionTermSellerNotifies(42071)=Y indicates that the seller notifies.\\n\\nISDA 2003 Term: Notifying Party.',\n    },\n    {\n        id: 42072,\n        name: 'UnderlyingProtectionTermBuyerNotifies',\n        abbrName: 'Buyer',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring.\\n\\nUnderlyingProtectionTermBuyerNotifies(42072)=Y indicates that the buyer notifies.\\n\\nISDA 2003 Term: Notifying Party.',\n    },\n    {\n        id: 42073,\n        name: 'UnderlyingProtectionTermEventBusinessCenter',\n        abbrName: 'BizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'When used, the business center indicates the local time of the business center that replaces the Greenwich Mean Time in Section 3.3 of the 2003 ISDA Credit Derivatives Definitions.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42074,\n        name: 'UnderlyingProtectionTermStandardSources',\n        abbrName: 'StdSrcs',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Indicates whether ISDA defined Standard Public Sources are applicable (UnderlyingProtectionTermStandardSources(42074)=Y) or not.',\n    },\n    {\n        id: 42075,\n        name: 'UnderlyingProtectionTermEventMinimumSources',\n        abbrName: 'MinSrcs',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The minimum number of the specified public information sources that must publish information that reasonably confirms that a credit event has occurred. The market convention is two.\\n\\nISDA 2003 Term: Specified Number.',\n    },\n    {\n        id: 42076,\n        name: 'UnderlyingProtectionTermXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'A named string value referenced by UnderlyingProtectionTermXIDRef(41314).',\n    },\n    {\n        id: 42077,\n        name: 'NoUnderlyingProtectionTermEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of protection term events in the repeating group.',\n    },\n    {\n        id: 42078,\n        name: 'UnderlyingProtectionTermEventType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Specifies the type of credit event applicable to the protection terms.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Protection_Term_Event_Types for code list of applicable event types.',\n    },\n    {\n        id: 42079,\n        name: 'UnderlyingProtectionTermEventValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Protection term event value appropriate to UnderlyingProtectionTermEventType(42078).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Protection_Term_Event_Types for applicable event type values.',\n    },\n    {\n        id: 42080,\n        name: 'UnderlyingProtectionTermEventCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Applicable currency if UnderlyingProtectionTermEventValue(42079) is an amount. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42081,\n        name: 'UnderlyingProtectionTermEventPeriod',\n        abbrName: 'Period',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Time unit multiplier for protection term events.',\n    },\n    {\n        id: 42082,\n        name: 'UnderlyingProtectionTermEventUnit',\n        abbrName: 'Unit',\n        type: 'ProtectionTermEventUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Time unit associated with protection term events.',\n    },\n    {\n        id: 42083,\n        name: 'UnderlyingProtectionTermEventDayType',\n        abbrName: 'DayTyp',\n        type: 'ProtectionTermEventDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description: 'Day type for events that specify a period and unit.',\n    },\n    {\n        id: 42084,\n        name: 'UnderlyingProtectionTermEventRateSource',\n        abbrName: 'RtSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Rate source for events that specify a rate source, e.g. Floating rate interest shortfall.',\n    },\n    {\n        id: 42085,\n        name: 'NoUnderlyingProtectionTermEventQualifiers',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of qualifiers in the repeating group.',\n    },\n    {\n        id: 42086,\n        name: 'UnderlyingProtectionTermEventQualifier',\n        abbrName: 'Qual',\n        type: 'ProtectionTermEventQualifierCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Protection term event qualifier. Used to further qualify UnderlyingProtectionTermEventType(43078).',\n    },\n    {\n        id: 42087,\n        name: 'NoUnderlyingProtectionTermObligations',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of obligations in the repeating group.',\n    },\n    {\n        id: 42088,\n        name: 'UnderlyingProtectionTermObligationType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Specifies the type of obligation applicable to the protection terms.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Protection_Term_Obligation_Types for code list of applicable obligation types.',\n    },\n    {\n        id: 42089,\n        name: 'UnderlyingProtectionTermObligationValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Protection term obligation value appropriate to UnderlyingProtectionTermObligationType(42088).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Protection_Term_Obligation_Types for applicable obligation type values.',\n    },\n    {\n        id: 42090,\n        name: 'NoUnderlyingProtectionTermEventNewsSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of event news sources in the repeating group.',\n    },\n    {\n        id: 42091,\n        name: 'UnderlyingProtectionTermEventNewsSource',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Newspaper or electronic news service or source that may publish relevant information used in the determination of whether or not a credit event has occurred.',\n    },\n    {\n        id: 42092,\n        name: 'UnderlyingProvisionCashSettlPaymentDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            \"The business day convention used to adjust the provisional cash settlement payment's termination, or relative termination, date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42093,\n        name: 'UnderlyingProvisionCashSettlPaymentDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Specifies the anchor date when the cash settlement payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42094,\n        name: 'UnderlyingProvisionCashSettlPaymentDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative cash settlement payment date offset.',\n    },\n    {\n        id: 42095,\n        name: 'UnderlyingProvisionCashSettlPaymentDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative cash settlement payment date offset.',\n    },\n    {\n        id: 42096,\n        name: 'UnderlyingProvisionCashSettlPaymentDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative cash settlement payment date offset.\",\n    },\n    {\n        id: 42097,\n        name: 'UnderlyingProvisionCashSettlPaymentDateRangeFirst',\n        abbrName: 'DtFirst',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'First date in range when a settlement date range is provided.',\n    },\n    {\n        id: 42098,\n        name: 'UnderlyingProvisionCashSettlPaymentDateRangeLast',\n        abbrName: 'DtLast',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Last date in range when a settlement date range is provided.',\n    },\n    {\n        id: 42099,\n        name: 'NoUnderlyingProvisionCashSettlPaymentDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of UnderlyingProvision cash settlement payment dates in the repeating group.',\n    },\n    {\n        id: 42100,\n        name: 'UnderlyingProvisionCashSettlPaymentDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The cash settlement payment date, unadjusted or adjusted depending on UnderlyingProvisionCashSettlPaymentDateType(42101).',\n    },\n    {\n        id: 42101,\n        name: 'UnderlyingProvisionCashSettlPaymentDateType',\n        abbrName: 'Typ',\n        type: 'ProvisionCashSettlPaymentDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Specifies the type of date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 42102,\n        name: 'UnderlyingProvisionCashSettlQuoteSource',\n        abbrName: 'SettlQteSrc',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Identifies the source of quote information.',\n    },\n    {\n        id: 42103,\n        name: 'UnderlyingProvisionCashSettlQuoteReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Identifies the reference \"page\" from the quote source.',\n    },\n    {\n        id: 42104,\n        name: 'UnderlyingProvisionCashSettlValueTime',\n        abbrName: 'Tm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'A time specified in 24-hour format, e.g. 11am would be represented as 11:00:00. The time of the cash settlement valuation date when the cash settlement amount will be determined according to the cash settlement method if the parties have not otherwise been able to agree to the cash settlement amount.',\n    },\n    {\n        id: 42105,\n        name: 'UnderlyingProvisionCashSettlValueTimeBusinessCenter',\n        abbrName: 'TmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            \"Identifies the business center calendar used with the provision's cash settlement valuation time.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.\",\n    },\n    {\n        id: 42106,\n        name: 'UnderlyingProvisionCashSettlValueDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The business day convention used to adjust the cash settlement valuation date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n    },\n    {\n        id: 42107,\n        name: 'UnderlyingProvisionCashSettlValueDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Specifies the anchor date when the cash settlement value date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42108,\n        name: 'UnderlyingProvisionCashSettlValueDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative cash settlement value date offset.',\n    },\n    {\n        id: 42109,\n        name: 'UnderlyingProvisionCashSettlValueDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative cash settlement value date offset.',\n    },\n    {\n        id: 42110,\n        name: 'UnderlyingProvisionCashSettlValueDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative cash settlement value date offset.\",\n    },\n    {\n        id: 42111,\n        name: 'UnderlyingProvisionCashSettlValueDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The adjusted cash settlement value date.',\n    },\n    {\n        id: 42112,\n        name: 'NoUnderlyingProvisionOptionExerciseFixedDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of UnderlyingProvision option exercise fixed dates in the repeating group.',\n    },\n    {\n        id: 42113,\n        name: 'UnderlyingProvisionOptionExerciseFixedDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'A predetermined option exercise date, unadjusted or adjusted depending on UnderlyingProvisionOptionExerciseFixedDateType(42114).',\n    },\n    {\n        id: 42114,\n        name: 'UnderlyingProvisionOptionExerciseFixedDateType',\n        abbrName: 'Typ',\n        type: 'ProvisionOptionExerciseFixedDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Specifies the type of date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 42115,\n        name: 'UnderlyingProvisionOptionExerciseBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            \"The business day convention used to adjust the underlying instrument's provision's option exercise date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42116,\n        name: 'UnderlyingProvisionOptionExerciseEarliestDateOffsetPeriod',\n        abbrName: 'ErlstOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Time unit multiplier for the interval to the first (and possibly only) exercise date in the exercise period.',\n    },\n    {\n        id: 42117,\n        name: 'UnderlyingProvisionOptionExerciseEarliestDateOffsetUnit',\n        abbrName: 'ErlstOfstUnit',\n        type: 'ProvisionOptionExerciseEarliestDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description:\n            'Time unit associated with the interval to the first (and possibly only) exercise date in the exercise period.',\n    },\n    {\n        id: 42118,\n        name: 'UnderlyingProvisionOptionExerciseFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Time unit multiplier for the frequency of subsequent exercise dates in the exercise period following the earliest exercise date. An interval of 1 day should be used to indicate an American style exercise frequency.',\n    },\n    {\n        id: 42119,\n        name: 'UnderlyingProvisionOptionExerciseFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Time unit associated with the frequency of subsequent exercise dates in the exercise period following the earliest exercise date.',\n    },\n    {\n        id: 42120,\n        name: 'UnderlyingProvisionOptionExerciseStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The unadjusted first day of the exercise period for an American style option.',\n    },\n    {\n        id: 42121,\n        name: 'UnderlyingProvisionOptionExerciseStartDateRelativeTo',\n        abbrName: 'StartDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Specifies the anchor date when the option exercise start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42122,\n        name: 'UnderlyingProvisionOptionExerciseStartDateOffsetPeriod',\n        abbrName: 'StartDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative option exercise start date offset.',\n    },\n    {\n        id: 42123,\n        name: 'UnderlyingProvisionOptionExerciseStartDateOffsetUnit',\n        abbrName: 'StartDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative option exercise start date offset.',\n    },\n    {\n        id: 42124,\n        name: 'UnderlyingProvisionOptionExerciseStartDateOffsetDayType',\n        abbrName: 'StartDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative option exercise start date offset.\",\n    },\n    {\n        id: 42125,\n        name: 'UnderlyingProvisionOptionExerciseStartDateAdjusted',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The adjusted first day of the exercise period for an American style option.',\n    },\n    {\n        id: 42126,\n        name: 'UnderlyingProvisionOptionExercisePeriodSkip',\n        abbrName: 'Skip',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The number of periods in the referenced date schedule that are between each date in the relative date schedule. Thus a skip of 2 would mean that dates are relative to every second date in the referenced schedule. If present this should have a value greater than 1.',\n    },\n    {\n        id: 42127,\n        name: 'UnderlyingProvisionOptionExerciseBoundsFirstDateUnadjusted',\n        abbrName: 'FirstDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The unadjusted first date of a schedule. This can be used to restrict the range of exercise dates when they are relative.',\n    },\n    {\n        id: 42128,\n        name: 'UnderlyingProvisionOptionExerciseBoundsLastDateUnadjusted',\n        abbrName: 'LastDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The unadjusted last date of a schedule. This can be used to restrict the range of exercise dates when they are relative.',\n    },\n    {\n        id: 42129,\n        name: 'UnderlyingProvisionOptionExerciseEarliestTime',\n        abbrName: 'ErlstTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            \"The earliest time at which notice of exercise can be given by the buyer to the seller (or seller's agent) i) on the expriation date, in the case of a European style option, (ii) on each bermuda option exercise date and the expiration date, in the case of a Bermuda style option the commencement date to, and including, the expiration date, in the case of an American option.\",\n    },\n    {\n        id: 42130,\n        name: 'UnderlyingProvisionOptionExerciseEarliestTimeBusinessCenter',\n        abbrName: 'ErlstTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            \"Identifies the business center calendar used with the provision's earliest time for notice of exercise.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.\",\n    },\n    {\n        id: 42131,\n        name: 'UnderlyingProvisionOptionExerciseLatestTime',\n        abbrName: 'LtstTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            \"For a Bermuda or American style option, the latest time on an exercise business day (excluding the expiration date) within the exercise period that notice can be given by the buyer to the seller or seller's agent. Notice of exercise given after this time will be deemed to have been given on the next exercise business day.\",\n    },\n    {\n        id: 42132,\n        name: 'UnderlyingProvisionOptionExerciseLatestTimeBusinessCenter',\n        abbrName: 'LtstTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            \"Identifies the business center calendar used with the provision's latest time for notice of exercise.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.\",\n    },\n    {\n        id: 42133,\n        name: 'UnderlyingProvisionOptionExpirationDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The unadjusted last day within an exercise period for an American style option. For a European style option it is the only day within the exercise period.',\n    },\n    {\n        id: 42134,\n        name: 'UnderlyingProvisionOptionExpirationDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            \"The business day convention used to adjust the underlying instrument's provision's option expiration date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42135,\n        name: 'UnderlyingProvisionOptionExpirationDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Specifies the anchor date when the option expiration date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42136,\n        name: 'UnderlyingProvisionOptionExpirationDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative option expiration date offset.',\n    },\n    {\n        id: 42137,\n        name: 'UnderlyingProvisionOptionExpirationDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative option expiration date offset.',\n    },\n    {\n        id: 42138,\n        name: 'UnderlyingProvisionOptionExpirationDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative option expiration date offset.\",\n    },\n    {\n        id: 42139,\n        name: 'UnderlyingProvisionOptionExpirationDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The adjusted last date within an exercise period for an American style option. For a European style option it is the only date within the exercise period.',\n    },\n    {\n        id: 42140,\n        name: 'UnderlyingProvisionOptionExpirationTime',\n        abbrName: 'ExpTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The latest time for exercise on the expiration date.',\n    },\n    {\n        id: 42141,\n        name: 'UnderlyingProvisionOptionExpirationTimeBusinessCenter',\n        abbrName: 'ExpTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            \"Identifies the business center calendar used with the provision's latest exercise time on expiration date.\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.\",\n    },\n    {\n        id: 42142,\n        name: 'UnderlyingProvisionOptionRelevantUnderlyingDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The unadjusted date on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the swap effective date, in an extendible/cancelable provision it is the swap termination date).',\n    },\n    {\n        id: 42143,\n        name: 'UnderlyingProvisionOptionRelevantUnderlyingDateBizDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            \"The business day convnetion used to adjust the underlying instrument provision's option underlying date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42144,\n        name: 'UnderlyingProvisionOptionRelevantUnderlyingDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Specifies the anchor date when the date relevant to the underlying trade on exercise is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42145,\n        name: 'UnderlyingProvisionOptionRelevantUnderlyingDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit multiplier for the relative option relevant underlying date offset.',\n    },\n    {\n        id: 42146,\n        name: 'UnderlyingProvisionOptionRelevantUnderlyingDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: 'Time unit associated with the relative option relevant underlying date offset.',\n    },\n    {\n        id: 42147,\n        name: 'UnderlyingProvisionOptionRelevantUnderlyingDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        description: \"Specifies the day type of the provision's relative option relevant underlying date offset.\",\n    },\n    {\n        id: 42148,\n        name: 'UnderlyingProvisionOptionRelevantUnderlyingDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The adjusted date on the underlying set by the exercise of an option. What this date is depends on the option (e.g. in a swaption it is the swap effective date, in an extendible/cancelable provision it is the swap termination date).',\n    },\n    {\n        id: 42149,\n        name: 'NoUnderlyingProvisions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of provisions in the repeating group.',\n    },\n    {\n        id: 42150,\n        name: 'UnderlyingProvisionType',\n        abbrName: 'Typ',\n        type: 'ProvisionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Type of provision.',\n    },\n    {\n        id: 42151,\n        name: 'UnderlyingProvisionDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The unadjusted date of the provision.',\n    },\n    {\n        id: 42152,\n        name: 'UnderlyingProvisionDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            \"The business day convention used to adjust the underlying instrument's provision's date. Used only to override the business day convention specified in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42153,\n        name: 'UnderlyingProvisionDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The adjusted date of the provision.',\n    },\n    {\n        id: 42154,\n        name: 'UnderlyingProvisionDateTenorPeriod',\n        abbrName: 'TenorPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: \"Time unit multiplier for the provision's tenor period.\",\n    },\n    {\n        id: 42155,\n        name: 'UnderlyingProvisionDateTenorUnit',\n        abbrName: 'TenorUnit',\n        type: 'ProvisionDateTenorUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: \"Time unit associated with the provision's tenor period.\",\n    },\n    {\n        id: 42156,\n        name: 'UnderlyingProvisionCalculationAgent',\n        abbrName: 'CalcAgent',\n        type: 'ProvisionCalculationAgentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Used to identify the calculation agent. The calculation agent may be identified in UnderlyingProvisionCalculationAgent(42156) or in the underlying provision parties component.',\n    },\n    {\n        id: 42157,\n        name: 'UnderlyingProvisionOptionSinglePartyBuyerSide',\n        abbrName: 'BuyerSide',\n        type: 'ProvisionOptionSinglePartyBuyerSideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'If optional early termination is not available to both parties then this component identifies the buyer of the option through its side of the trade.',\n    },\n    {\n        id: 42158,\n        name: 'UnderlyingProvisionOptionSinglePartySellerSide',\n        abbrName: 'SellerSide',\n        type: 'ProvisionOptionSinglePartyBuyerSideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'If optional early termination is not available to both parties then this component identifies the seller of the option through its side of the trade.',\n    },\n    {\n        id: 42159,\n        name: 'UnderlyingProvisionOptionExerciseStyle',\n        abbrName: 'ExerStyle',\n        type: 'ExerciseStyleCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: \"The instrument provision's exercise style.\",\n    },\n    {\n        id: 42160,\n        name: 'UnderlyingProvisionOptionExerciseMultipleNotional',\n        abbrName: 'MultplNotl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'A notional amount which restricts the amount of notional that can be exercised when partial exercise or multiple exercise is applicable. The integral multiple amount defines a lower limit of notional that can be exercised and also defines a unit multiple of notional that can be exercised, i.e. only integer multiples of this amount can be exercised.',\n    },\n    {\n        id: 42161,\n        name: 'UnderlyingProvisionOptionExerciseMinimumNotional',\n        abbrName: 'MinNotl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The minimum notional amount that can be exercised on a given exercise date.',\n    },\n    {\n        id: 42162,\n        name: 'UnderlyingProvisionOptionExerciseMaximumNotional',\n        abbrName: 'MaxNotl',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The maximum notional amount that can be exercised on a given exercise date.',\n    },\n    {\n        id: 42163,\n        name: 'UnderlyingProvisionOptionMinimumNumber',\n        abbrName: 'MinNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The minimum number of options that can be exercised on a given exercise date.',\n    },\n    {\n        id: 42164,\n        name: 'UnderlyingProvisionOptionMaximumNumber',\n        abbrName: 'MaxNum',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The maximum number of options that can be exercised on a given exercise date. If the number is not specified, it means that the maximum number of options corresponds to the remaining unexercised options.',\n    },\n    {\n        id: 42165,\n        name: 'UnderlyingProvisionOptionExerciseConfirmation',\n        abbrName: 'ExerCnfm',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            \"Used to indicate whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent.\",\n    },\n    {\n        id: 42166,\n        name: 'UnderlyingProvisionCashSettlMethod',\n        abbrName: 'SettlMeth',\n        type: 'ProvisionCashSettlMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (e).',\n    },\n    {\n        id: 42167,\n        name: 'UnderlyingProvisionCashSettlCurrency',\n        abbrName: 'SettlCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Specifies the currency of settlement. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42168,\n        name: 'UnderlyingProvisionCashSettlCurrency2',\n        abbrName: 'SettlCcy2',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Specifies the currency of settlement for a cross-currency provision. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42169,\n        name: 'UnderlyingProvisionCashSettlQuoteType',\n        abbrName: 'SettlQteTyp',\n        type: 'ProvisionCashSettlQuoteTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Identifies the type of quote to be used.',\n    },\n    {\n        id: 42170,\n        name: 'UnderlyingProvisionText',\n        abbrName: 'Txt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Free form text to specify additional information or enumeration description when a standard value does not apply.',\n    },\n    {\n        id: 42171,\n        name: 'EncodedUnderlyingProvisionTextLen',\n        abbrName: 'EncTxtLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Byte length of encoded (non-ASCII characters) EncodedUnderlyingProvisionText(42712) field.',\n    },\n    {\n        id: 42172,\n        name: 'EncodedUnderlyingProvisionText',\n        abbrName: 'EncTxt',\n        type: 'data',\n        lengthId: '42171',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingProvisionText(42170) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingProvisionText(42170) field.',\n    },\n    {\n        id: 42173,\n        name: 'NoUnderlyingProvisionPartyIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of parties identified in the contract provision.',\n    },\n    {\n        id: 42174,\n        name: 'UnderlyingProvisionPartyID',\n        abbrName: 'ID',\n        type: 'String',\n        discriminatorId: '42175',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The party identifier for the payment settlement party.',\n    },\n    {\n        id: 42175,\n        name: 'UnderlyingProvisionPartyIDSource',\n        abbrName: 'Src',\n        type: 'PartyIDSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Identifies the class or source of the UnderlyingProvisionPartyID(42174) value.',\n    },\n    {\n        id: 42176,\n        name: 'UnderlyingProvisionPartyRole',\n        abbrName: 'R',\n        type: 'PartyRoleCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Identifies the type or role of UnderlyingProvisionPartyID(42174) specified.',\n    },\n    {\n        id: 42177,\n        name: 'NoUnderlyingProvisionPartySubIDs',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of sub-party IDs to be reported for the party.',\n    },\n    {\n        id: 42178,\n        name: 'UnderlyingProvisionPartySubID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Underlying provision party sub-identifier, if applicable for UnderlyingProvisionPartyID(42174).',\n    },\n    {\n        id: 42179,\n        name: 'UnderlyingProvisionPartySubIDType',\n        abbrName: 'Typ',\n        type: 'PartySubIDTypeCodeSet',\n        unionDataType: 'Reserved4000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'The type of UnderlyingProvisionPartySubID(42178).',\n    },\n    {\n        id: 42180,\n        name: 'NoUnderlyingProvisionCashSettlPaymentDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42181,\n        name: 'UnderlyingProvisionCashSettlPaymentDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The business center calendar used to adjust the provision\\'s cash settlement payment\\'s termination, or relative termination, date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42182,\n        name: 'NoUnderlyingProvisionCashSettlValueDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42183,\n        name: 'UnderlyingProvisionCashSettlValueDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The business center calendar used to adjust the cash settlement valuation date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42184,\n        name: 'NoUnderlyingProvisionOptionExerciseBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42185,\n        name: 'UnderlyingProvisionOptionExerciseBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The business center calendar used to adjust the underlying instrument\\'s provision\\'s option exercise date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42186,\n        name: 'NoUnderlyingProvisionOptionExpirationDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42187,\n        name: 'UnderlyingProvisionOptionExpirationDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The business center calendar used to adjust the underlying instrument\\'s provision\\'s option expiration date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42188,\n        name: 'NoUnderlyingProvisionOptionRelevantUnderlyingDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42189,\n        name: 'UnderlyingProvisionOptionRelevantUnderlyingDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The business center calendar used to adjust the underlying instrument\\'s provision\\'s option underlying date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42190,\n        name: 'NoUnderlyingProvisionDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42191,\n        name: 'UnderlyingProvisionDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        description:\n            'The business center calendar used to adjust the underlying instrument\\'s provision\\'s date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42192,\n        name: 'DeliveryStreamDeliveryPointSource',\n        abbrName: 'DlvryPntSrc',\n        type: 'DeliveryStreamDeliveryPointSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Identifies the class or source of DeliveryStreamDeliveryPoint(41062).',\n    },\n    {\n        id: 42193,\n        name: 'DeliveryStreamDeliveryPointDesc',\n        abbrName: 'DlvryPntDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Description of the delivery point identified in DeliveryStreamDeliveryPoint(41062).',\n    },\n    {\n        id: 42194,\n        name: 'LegDeliveryStreamDeliveryPointSource',\n        abbrName: 'DlvryPntSrc',\n        type: 'DeliveryStreamDeliveryPointSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Identifies the class or source of LegDeliveryStreamDeliveryPoint(41433).',\n    },\n    {\n        id: 42195,\n        name: 'LegDeliveryStreamDeliveryPointDesc',\n        abbrName: 'DlvryPntDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Description of the delivery point identified in LegDeliveryStreamDeliveryPoint(41433).',\n    },\n    {\n        id: 42196,\n        name: 'UnderlyingDeliveryStreamDeliveryPointSource',\n        abbrName: 'DlvryPntSrc',\n        type: 'DeliveryStreamDeliveryPointSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Identifies the class or source of UnderlyingDeliveryStreamDeliveryPoint(41781).',\n    },\n    {\n        id: 42197,\n        name: 'UnderlyingDeliveryStreamDeliveryPointDesc',\n        abbrName: 'DlvryPntDesc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '179',\n        description: 'Description of the delivery point identified in UnderlyingDeliveryStreamDeliveryPoint(41781).',\n    },\n    {\n        id: 42198,\n        name: 'NoLegContractualDefinitions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Number of financing definitions in the repeating group.',\n    },\n    {\n        id: 42199,\n        name: 'LegContractualDefinition',\n        abbrName: 'Def',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Specifies which contract definition, such as those published by ISDA, will apply for the terms of the trade. See http://www.fpml.org/coding-scheme/contractual-definitions for values.',\n    },\n    {\n        id: 42200,\n        name: 'NoLegFinancingTermSupplements',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Number of financing terms supplements in the repeating group.',\n    },\n    {\n        id: 42201,\n        name: 'LegFinancingTermSupplementDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Identifies the applicable contractual supplement. See http://www.fpml.org/coding-scheme/contractual-supplement for values.',\n    },\n    {\n        id: 42202,\n        name: 'LegFinancingTermSupplementDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Specifies the publication date of the applicable version of the contractual supplement.',\n    },\n    {\n        id: 42203,\n        name: 'NoLegContractualMatrices',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description: 'Number of contractual matrices in the repeating group.',\n    },\n    {\n        id: 42204,\n        name: 'LegContractualMatrixSource',\n        abbrName: 'Src',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Identifies the applicable contract matrix. See http://www.fpml.org/coding-scheme/matrix-type-1-0.xml for values.',\n    },\n    {\n        id: 42205,\n        name: 'LegContractualMatrixDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        description:\n            'Specifies the publication date of the applicable version of the contract matrix. If not specified, the ISDA Standard Terms Supplement defines rules for which version of the matrix is applicable.',\n    },\n    {\n        id: 42206,\n        name: 'LegContractualMatrixTerm',\n        abbrName: 'Trm',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        description:\n            'Specifies the applicable key into the relevant contract matrix. In the case of 2000 ISDA Definitions Settlement Matrix for Early Termination and Swaptions, the LegContractualMatrixTerm(42206) is not applicable and is to be omitted. See http://www.fpml.org/coding-scheme/credit-matrix-transaction-type for values.',\n    },\n    {\n        id: 42207,\n        name: 'CashSettlDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted cash settlement date.',\n    },\n    {\n        id: 42208,\n        name: 'CashSettlDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"The business day convention used to adjust the cash settlement provision's date. Used only to override the business day convention defined in the Instrument component.\",\n    },\n    {\n        id: 42209,\n        name: 'CashSettlDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the cash settlement date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42210,\n        name: 'CashSettlDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative cash settlement date offset.',\n    },\n    {\n        id: 42211,\n        name: 'CashSettlDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative cash settlement date offset.',\n    },\n    {\n        id: 42212,\n        name: 'CashSettlDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative cash settlement date offset.',\n    },\n    {\n        id: 42213,\n        name: 'CashSettlDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted cash settlement date.',\n    },\n    {\n        id: 42214,\n        name: 'NoCashSettlDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42215,\n        name: 'CashSettlDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the cash settlement unadjusted or relative date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42216,\n        name: 'CashSettlPriceSource',\n        abbrName: 'PxSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The source from which the settlement price is to be obtained.\\n\\nSee http://www.fpml.org/coding-scheme/settlement-price-source for values.',\n    },\n    {\n        id: 42217,\n        name: 'CashSettlPriceDefault',\n        abbrName: 'PxDflt',\n        type: 'CashSettlPriceDefaultCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The default election for determining settlement price.',\n    },\n    {\n        id: 42218,\n        name: 'DividendFloatingRateIndex',\n        abbrName: 'Ndx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The dividend accrual floating rate index.',\n    },\n    {\n        id: 42219,\n        name: 'DividendFloatingRateIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the dividend accrual floating rate index curve.',\n    },\n    {\n        id: 42220,\n        name: 'DividendFloatingRateIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the dividend accrual floating rate index curve period.',\n    },\n    {\n        id: 42221,\n        name: 'DividendFloatingRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This should only be included if the multiplier is not equal to 1 (one) for the term of the contract.',\n    },\n    {\n        id: 42222,\n        name: 'DividendFloatingRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The basis points spread from the index specified in DividendFloatingRateIndex(42218).',\n    },\n    {\n        id: 42223,\n        name: 'DividendFloatingRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 42224,\n        name: 'DividendFloatingRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the yield calculation treatment for the index.',\n    },\n    {\n        id: 42225,\n        name: 'DividendCapRate',\n        abbrName: 'CapRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The cap rate, if any, which applies to the floating rate. It is only required where the floating rate is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42226,\n        name: 'DividendCapRateBuySide',\n        abbrName: 'CapRtBuy',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the buyer of the cap rate option through its trade side.',\n    },\n    {\n        id: 42227,\n        name: 'DividendCapRateSellSide',\n        abbrName: 'CapRtSell',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the seller of the cap rate option through its trade side.',\n    },\n    {\n        id: 42228,\n        name: 'DividendFloorRate',\n        abbrName: 'FlrRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as \"0.05\".',\n    },\n    {\n        id: 42229,\n        name: 'DividendFloorRateBuySide',\n        abbrName: 'FlrRtBuy',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the buyer of the floor rate option through its trade side.',\n    },\n    {\n        id: 42230,\n        name: 'DividendFloorRateSellSide',\n        abbrName: 'FlrRtSell',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the seller of the floor rate option through its trade side.',\n    },\n    {\n        id: 42231,\n        name: 'DividendInitialRate',\n        abbrName: 'InitRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as \"0.05\".',\n    },\n    {\n        id: 42232,\n        name: 'DividendFinalRateRoundingDirection',\n        abbrName: 'FnlRtRndDirctn',\n        type: 'RoundingDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the rounding direction of the final rate.',\n    },\n    {\n        id: 42233,\n        name: 'DividendFinalRatePrecision',\n        abbrName: 'FnlRtPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the rounding precision of the final rate in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7.',\n    },\n    {\n        id: 42234,\n        name: 'DividendAveragingMethod',\n        abbrName: 'AvgngMeth',\n        type: 'PaymentStreamAveragingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'When averaging is applicable, used to specify whether a weighted or unweighted average method of calculation is to be used.',\n    },\n    {\n        id: 42235,\n        name: 'DividendNegativeRateTreatment',\n        abbrName: 'NegtvRtTrtmt',\n        type: 'PaymentStreamNegativeRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate).',\n    },\n    {\n        id: 42236,\n        name: 'NoDividendAccrualPaymentDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of entries in the DividendAccrualPaymentDateBusinessCenterGrp.',\n    },\n    {\n        id: 42237,\n        name: 'DividendAccrualPaymentDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the instrument\\'s dividend accrual payment date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42238,\n        name: 'DividendAccrualPaymentDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the accrual payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42239,\n        name: 'DividendAccrualPaymentDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative accrual payment date offset.',\n    },\n    {\n        id: 42240,\n        name: 'DividendAccrualPaymentDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative accrual payment date offset.',\n    },\n    {\n        id: 42241,\n        name: 'DividendAccrualPaymentDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative accrual payment date offset.',\n    },\n    {\n        id: 42242,\n        name: 'DividendAccrualPaymentDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted accrual payment date.',\n    },\n    {\n        id: 42243,\n        name: 'DividendAccrualPaymeentDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Accrual payment date adjustment business day convention.',\n    },\n    {\n        id: 42244,\n        name: 'DividendAccrualPaymentDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted accrual payment date.',\n    },\n    {\n        id: 42245,\n        name: 'DividendReinvestmentIndicator',\n        abbrName: 'RnvstmntInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether the dividend will be reinvested.',\n    },\n    {\n        id: 42246,\n        name: 'DividendEntitlementEvent',\n        abbrName: 'EntlmntEvnt',\n        type: 'DividendEntitlementEventCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines the contract event which the receiver of the derivative is entitled to the dividend.',\n    },\n    {\n        id: 42247,\n        name: 'DividendAmountType',\n        abbrName: 'AmtTyp',\n        type: 'DividendAmountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates how the gross cash dividend amount per share is determined.',\n    },\n    {\n        id: 42248,\n        name: 'DividendUnderlierRefID',\n        abbrName: 'UndlrRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42249,\n        name: 'ExtraordinaryDividendPartySide',\n        abbrName: 'ExtrordSide',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Reference to the party through its side in the trade who makes the determination whether dividends are extraordinary in relation to normal levels.',\n    },\n    {\n        id: 42250,\n        name: 'ExtraordinaryDividendAmountType',\n        abbrName: 'ExtrordAmtTyp',\n        type: 'DividendAmountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates how the extraordinary gross cash dividend per share is determined.',\n    },\n    {\n        id: 42251,\n        name: 'ExtraordinaryDividendCurrency',\n        abbrName: 'ExtrordCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The currency in which the excess dividend is denominated. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42252,\n        name: 'ExtraordinaryDividendDeterminationMethod',\n        abbrName: 'ExtrordDtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method in which the excess amount is determined.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 42253,\n        name: 'DividendAccrualFixedRate',\n        abbrName: 'AcrlFixedRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The dividend accrual fixed rate per annum expressed as a decimal.\\n\\nA value of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42254,\n        name: 'DividendCompoundingMethod',\n        abbrName: 'CmpndgMeth',\n        type: 'PaymentStreamCompoundingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The compounding method to be used when more than one dividend period contributes to a single payment.',\n    },\n    {\n        id: 42255,\n        name: 'DividendNumOfIndexUnits',\n        abbrName: 'NumNdxUnits',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The number of index units applicable to dividends.',\n    },\n    {\n        id: 42256,\n        name: 'DividendCashPercentage',\n        abbrName: 'CshPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Declared cash dividend percentage.\\n\\nA value of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42257,\n        name: 'DividendCashEquivalentPercentage',\n        abbrName: 'CshEqvlntPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Declared cash-equivalent dividend percentage.\\n\\nA value of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42258,\n        name: 'NonCashDividendTreatment',\n        abbrName: 'NonCshTrtmt',\n        type: 'NonCashDividendTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines the treatment of non-cash dividends.',\n    },\n    {\n        id: 42259,\n        name: 'DividendComposition',\n        abbrName: 'Cmpstn',\n        type: 'DividendCompositionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines how the composition of dividends is to be determined.',\n    },\n    {\n        id: 42260,\n        name: 'SpecialDividendsIndicator',\n        abbrName: 'SpeclDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether special dividends are applicable.',\n    },\n    {\n        id: 42261,\n        name: 'MaterialDividendsIndicator',\n        abbrName: 'MtrlDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether material non-cash dividends are applicable.',\n    },\n    {\n        id: 42262,\n        name: 'OptionsExchangeDividendsIndicator',\n        abbrName: 'ExchDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether option exchange dividends are applicable.',\n    },\n    {\n        id: 42263,\n        name: 'AdditionalDividendsIndicator',\n        abbrName: 'AddtnlDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether additional dividends are applicable.',\n    },\n    {\n        id: 42264,\n        name: 'AllDividendsIndicator',\n        abbrName: 'AllDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"Represents the European Master Confirmation value of 'All Dividends' which, when applicable, signifies that, for a given Ex-Date, the daily observed share price for that day is adjusted (reduced) by the cash dividend and/or the cash value of any non-cash dividend per share (including extraordinary dividends) declared by the issuer.\",\n    },\n    {\n        id: 42265,\n        name: 'DividendFXTriggerDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the FX trigger date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42266,\n        name: 'DividendFXTriggerDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative FX trigger date offset.',\n    },\n    {\n        id: 42267,\n        name: 'DividendFXTriggerDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative FX trigger date offset.',\n    },\n    {\n        id: 42268,\n        name: 'DividendFXTriggerDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative FX trigger date offset.',\n    },\n    {\n        id: 42269,\n        name: 'DividendFXTriggerDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted FX trigger date.',\n    },\n    {\n        id: 42270,\n        name: 'DividendFXTriggerDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The business day convention used for the FX trigger date adjustment.',\n    },\n    {\n        id: 42271,\n        name: 'DividendFXTriggerDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted FX trigger date.',\n    },\n    {\n        id: 42272,\n        name: 'NoDividendFXTriggerDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of entries in the DividendFXTriggerDateBusinessCenterGrp.',\n    },\n    {\n        id: 42273,\n        name: 'DividendFXTriggerDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the instrument\\'s FX trigger date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42274,\n        name: 'NoDividendPeriods',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of entries in the DividendPeriodGrp component.',\n    },\n    {\n        id: 42275,\n        name: 'DividendPeriodSequence',\n        abbrName: 'Seq',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines the ordinal dividend period. E.g. 1 = First period, 2 = Second period, etc.',\n    },\n    {\n        id: 42276,\n        name: 'DividendPeriodStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted date on which the dividend period will begin.',\n    },\n    {\n        id: 42277,\n        name: 'DividendPeriodEndDateUnadjusted',\n        abbrName: 'EndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted date on which the dividend period will end.',\n    },\n    {\n        id: 42278,\n        name: 'DividendPeriodUnderlierRefID',\n        abbrName: 'UndlrRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42279,\n        name: 'DividendPeriodStrikePrice',\n        abbrName: 'StrkPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the fixed strike price of the dividend period.',\n    },\n    {\n        id: 42280,\n        name: 'DividendPeriodBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The dividend period dates business day convention.',\n    },\n    {\n        id: 42281,\n        name: 'DividendPeriodValuationDateUnadjusted',\n        abbrName: 'ValDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted dividend period valuation date.',\n    },\n    {\n        id: 42282,\n        name: 'DividendPeriodValuationDateRelativeTo',\n        abbrName: 'ValDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the dividend period valuation date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42283,\n        name: 'DividendPeriodValuationDateOffsetPeriod',\n        abbrName: 'ValDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative dividend period valuation date offset.',\n    },\n    {\n        id: 42284,\n        name: 'DividendPeriodValuationDateOffsetUnit',\n        abbrName: 'ValDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative dividend period valuation date offset.',\n    },\n    {\n        id: 42285,\n        name: 'DividendPeriodValuationDateOffsetDayType',\n        abbrName: 'ValDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative dividend period valuation date offset.',\n    },\n    {\n        id: 42286,\n        name: 'DividendPeriodValuationDateAdjusted',\n        abbrName: 'ValDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted dividend period valuation date.',\n    },\n    {\n        id: 42287,\n        name: 'DividendPeriodPaymentDateUnadjusted',\n        abbrName: 'PmtDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted dividend period payment date.',\n    },\n    {\n        id: 42288,\n        name: 'DividendPeriodPaymentDateRelativeTo',\n        abbrName: 'PmtDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the dividend period payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42289,\n        name: 'DividendPeriodPaymentDateOffsetPeriod',\n        abbrName: 'PmtDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative dividend period payment date offset.',\n    },\n    {\n        id: 42290,\n        name: 'DividendPeriodPaymentDateOffsetUnit',\n        abbrName: 'PmtDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative dividend period payment date offset.',\n    },\n    {\n        id: 42291,\n        name: 'DividendPeriodPaymentDateOffsetDayType',\n        abbrName: 'PmtDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative dividend period payment date offset.',\n    },\n    {\n        id: 42292,\n        name: 'DividendPeriodPaymentDateAdjusted',\n        abbrName: 'PmtDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted dividend period payment date.',\n    },\n    {\n        id: 42293,\n        name: 'DividendPeriodXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Identifier for linking this stream dividend period to an underlier through an instance of RelatedInstrumentGrp.',\n    },\n    {\n        id: 42294,\n        name: 'NoDividendPeriodBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of entries in the DividendPeriodBusinessCenterGrp.',\n    },\n    {\n        id: 42295,\n        name: 'DividendPeriodBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the instrument\\'s dividend period date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42296,\n        name: 'NoExtraordinaryEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of extraordinary events in the repeating group.',\n    },\n    {\n        id: 42297,\n        name: 'ExtraordinaryEventType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Identifies the type of extraordinary or disruptive event applicable to the reference entity.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Extraordinary_Event_Type for code list of extraordinary event types and values.',\n    },\n    {\n        id: 42298,\n        name: 'ExtraordinaryEventValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The extraordinary or disruptive event value appropriate to ExtraordinaryEventType(42297).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Extraordinary_Event_Type for code list of extraordinary event types and values.',\n    },\n    {\n        id: 42299,\n        name: 'LegCashSettlDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted cash settlement date.',\n    },\n    {\n        id: 42300,\n        name: 'LegCashSettlDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"The business day convention used to adjust the cash settlement provision's date. Used only to override the business day convention defined in the InstrumentLeg component.\",\n    },\n    {\n        id: 42301,\n        name: 'LegCashSettlDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the cash settlement date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42302,\n        name: 'LegCashSettlDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative cash settlement date offset.',\n    },\n    {\n        id: 42303,\n        name: 'LegCashSettlDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative cash settlement date offset.',\n    },\n    {\n        id: 42304,\n        name: 'LegCashSettlDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative cash settlement date offset.',\n    },\n    {\n        id: 42305,\n        name: 'LegCashSettlDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted cash settlement date.',\n    },\n    {\n        id: 42306,\n        name: 'NoLegCashSettlDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42307,\n        name: 'LegCashSettlDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the cash settlement unadjusted or relative date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42308,\n        name: 'LegCashSettlPriceSource',\n        abbrName: 'PxSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The source from which the settlement price is to be obtained.\\n\\nSee http://www.fpml.org/coding-scheme/settlement-price-source for values.',\n    },\n    {\n        id: 42309,\n        name: 'LegCashSettlPriceDefault',\n        abbrName: 'PxDflt',\n        type: 'CashSettlPriceDefaultCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The default election for determining settlement price.',\n    },\n    {\n        id: 42310,\n        name: 'NoLegDividendAccrualPaymentDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of entries in the LegDividendAccrualPaymentDateBusinessCenterGrp.',\n    },\n    {\n        id: 42311,\n        name: 'LegDividendAccrualPaymentDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the instrument\\'s dividend accrual payment date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42312,\n        name: 'LegDividendFloatingRateIndex',\n        abbrName: 'Ndx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The dividend accrual floating rate index.',\n    },\n    {\n        id: 42313,\n        name: 'LegDividendFloatingRateIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the dividend accrual floating rate index curve.',\n    },\n    {\n        id: 42314,\n        name: 'LegDividendFloatingRateIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the dividend accrual floating rate index curve period.',\n    },\n    {\n        id: 42315,\n        name: 'LegDividendFloatingRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This should only be included if the multiplier is not equal to 1 (one) for the term of the contract.',\n    },\n    {\n        id: 42316,\n        name: 'LegDividendFloatingRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The basis points spread from the index specified in LegDividendFloatingRateIndex(42312).',\n    },\n    {\n        id: 42317,\n        name: 'LegDividendFloatingRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 42318,\n        name: 'LegDividendFloatingRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the yield calculation treatment for the index.',\n    },\n    {\n        id: 42319,\n        name: 'LegDividendCapRate',\n        abbrName: 'CapRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The cap rate, if any, which applies to the floating rate. It is only required where the floating rate is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42320,\n        name: 'LegDividendCapRateBuySide',\n        abbrName: 'CapRtBuy',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the buyer of the cap rate option through its trade side.',\n    },\n    {\n        id: 42321,\n        name: 'LegDividendCapRateSellSide',\n        abbrName: 'CapRtSell',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the seller of the cap rate option through its trade side.',\n    },\n    {\n        id: 42322,\n        name: 'LegDividendFloorRate',\n        abbrName: 'FlrRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as \"0.05\".',\n    },\n    {\n        id: 42323,\n        name: 'LegDividendFloorRateBuySide',\n        abbrName: 'FlrRtBuy',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the buyer of the floor rate option through its trade side.',\n    },\n    {\n        id: 42324,\n        name: 'LegDividendFloorRateSellSide',\n        abbrName: 'FlrRtSell',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the seller of the floor rate option through its trade side.',\n    },\n    {\n        id: 42325,\n        name: 'LegDividendInitialRate',\n        abbrName: 'InitRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as \"0.05\".',\n    },\n    {\n        id: 42326,\n        name: 'LegDividendFinalRateRoundingDirection',\n        abbrName: 'FnlRtRndDirctn',\n        type: 'RoundingDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the rounding direction of the final rate.',\n    },\n    {\n        id: 42327,\n        name: 'LegDividendFinalRatePrecision',\n        abbrName: 'FnlRtPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the rounding precision of the final rate in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7.',\n    },\n    {\n        id: 42328,\n        name: 'LegDividendAveragingMethod',\n        abbrName: 'AvgngMeth',\n        type: 'PaymentStreamAveragingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'When averaging is applicable, used to specify whether a weighted or unweighted average method of calculation is to be used.',\n    },\n    {\n        id: 42329,\n        name: 'LegDividendNegativeRateTreatment',\n        abbrName: 'NegtvRtTrtmt',\n        type: 'PaymentStreamNegativeRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate).',\n    },\n    {\n        id: 42330,\n        name: 'LegDividendAccrualPaymentDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the accrual payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42331,\n        name: 'LegDividendAccrualPaymentDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative accrual payment date offset.',\n    },\n    {\n        id: 42332,\n        name: 'LegDividendAccrualPaymentDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative accrual payment date offset.',\n    },\n    {\n        id: 42333,\n        name: 'LegDividendAccrualPaymentDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative accrual payment date offset.',\n    },\n    {\n        id: 42334,\n        name: 'LegDividendAccrualPaymentDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted accrual payment date.',\n    },\n    {\n        id: 42335,\n        name: 'LegDividendAccrualPaymentDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Accrual payment date adjustment business day convention.',\n    },\n    {\n        id: 42336,\n        name: 'LegDividendAccrualPaymentDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted accrual payment date.',\n    },\n    {\n        id: 42337,\n        name: 'LegDividendReinvestmentIndicator',\n        abbrName: 'RnvstmntInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether the dividend will be reinvested.',\n    },\n    {\n        id: 42338,\n        name: 'LegDividendEntitlementEvent',\n        abbrName: 'EntlmntEvnt',\n        type: 'DividendEntitlementEventCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines the contract event which the receiver of the derivative is entitled to the dividend.',\n    },\n    {\n        id: 42339,\n        name: 'LegDividendAmountType',\n        abbrName: 'AmtTyp',\n        type: 'DividendAmountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates how the gross cash dividend amount per share is determined.',\n    },\n    {\n        id: 42340,\n        name: 'LegDividendUnderlierRefID',\n        abbrName: 'UndlrRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42341,\n        name: 'LegExtraordinaryDividendPartySide',\n        abbrName: 'ExtrordSide',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Reference to the party through its side in the trade who makes the determination whether dividends are extraordinary in relation to normal levels.',\n    },\n    {\n        id: 42342,\n        name: 'LegExtraordinaryDividendAmountType',\n        abbrName: 'ExtrordAmtTyp',\n        type: 'DividendAmountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates how the extraordinary gross cash dividend per share is determined.',\n    },\n    {\n        id: 42343,\n        name: 'LegExtraordinaryDividendCurrency',\n        abbrName: 'ExtrordCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The currency in which the excess dividend is denominated. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42344,\n        name: 'LegExtraordinaryDividendDeterminationMethod',\n        abbrName: 'ExtrordDtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method in which the excess amount is determined.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 42345,\n        name: 'LegDividendAccrualFixedRate',\n        abbrName: 'AcrlFixedRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The dividend accrual fixed rate per annum expressed as a decimal.\\n\\nA value of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42346,\n        name: 'LegDividendCompoundingMethod',\n        abbrName: 'CmpndgMeth',\n        type: 'PaymentStreamCompoundingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The compounding method to be used when more than one dividend period contributes to a single payment.',\n    },\n    {\n        id: 42347,\n        name: 'LegDividendNumOfIndexUnits',\n        abbrName: 'NumNdxUnits',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The number of index units applicable to dividends.',\n    },\n    {\n        id: 42348,\n        name: 'LegDividendCashPercentage',\n        abbrName: 'CshPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Declared cash dividend percentage.\\n\\nA value of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42349,\n        name: 'LegDividendCashEquivalentPercentage',\n        abbrName: 'CshEqvlntPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Declared cash-equivalent dividend percentage.\\n\\nA value of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42350,\n        name: 'LegNonCashDividendTreatment',\n        abbrName: 'NonCshTrtmt',\n        type: 'NonCashDividendTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines the treatment of non-cash dividends.',\n    },\n    {\n        id: 42351,\n        name: 'LegDividendComposition',\n        abbrName: 'Cmpstn',\n        type: 'DividendCompositionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines how the composition of dividends is to be determined.',\n    },\n    {\n        id: 42352,\n        name: 'LegSpecialDividendsIndicator',\n        abbrName: 'SpeclDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether special dividends are applicable.',\n    },\n    {\n        id: 42353,\n        name: 'LegMaterialDividendsIndicator',\n        abbrName: 'MtrlDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether material non-cash dividends are applicable.',\n    },\n    {\n        id: 42354,\n        name: 'LegOptionsExchangeDividendsIndicator',\n        abbrName: 'ExchDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether option exchange dividends are applicable.',\n    },\n    {\n        id: 42355,\n        name: 'LegAdditionalDividendsIndicator',\n        abbrName: 'AddtnlDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether additional dividends are applicable.',\n    },\n    {\n        id: 42356,\n        name: 'LegAllDividendsIndicator',\n        abbrName: 'AllDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"Represents the European Master Confirmation value of 'All Dividends' which, when applicable, signifies that, for a given Ex-Date, the daily observed share price for that day is adjusted (reduced) by the cash dividend and/or the cash value of any non-cash dividend per share (including extraordinary dividends) declared by the issuer.\",\n    },\n    {\n        id: 42357,\n        name: 'LegDividendFXTriggerDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the FX trigger date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42358,\n        name: 'LegDividendFXTriggerDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative FX trigger date offset.',\n    },\n    {\n        id: 42359,\n        name: 'LegDividendFXTriggerDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative FX trigger date offset.',\n    },\n    {\n        id: 42360,\n        name: 'LegDividendFXTriggerDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative FX trigger date offset.',\n    },\n    {\n        id: 42361,\n        name: 'LegDividendFXTriggerDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted FX trigger date.',\n    },\n    {\n        id: 42362,\n        name: 'LegDividendFXTriggerDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The business day convention used for the FX trigger date adjustment.',\n    },\n    {\n        id: 42363,\n        name: 'LegDividendFXTriggerDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted FX trigger date.',\n    },\n    {\n        id: 42364,\n        name: 'NoLegDividendFXTriggerDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of entries in the LegDividendFXTriggerDateBusinessCenterGrp.',\n    },\n    {\n        id: 42365,\n        name: 'LegDividendFXTriggerDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the instrument\\'s FX trigger date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n];\n\nconst batch8: ISpecFields[] = [\n    {\n        id: 42366,\n        name: 'NoLegDividendPeriods',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of entries in the LegDividendPeriodGrp component.',\n    },\n    {\n        id: 42367,\n        name: 'LegDividendPeriodSequence',\n        abbrName: 'Seq',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines the ordinal dividend period. E.g. 1 = First period, 2 = Second period, etc.',\n    },\n    {\n        id: 42368,\n        name: 'LegDividendPeriodStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted date on which the dividend period will begin.',\n    },\n    {\n        id: 42369,\n        name: 'LegDividendPeriodEndDateUnadjusted',\n        abbrName: 'EndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted date on which the dividend period will end.',\n    },\n    {\n        id: 42370,\n        name: 'LegDividendPeriodUnderlierRefID',\n        abbrName: 'UndlrRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42371,\n        name: 'LegDividendPeriodStrikePrice',\n        abbrName: 'StrkPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the fixed strike price of the dividend period.',\n    },\n    {\n        id: 42372,\n        name: 'LegDividendPeriodBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The dividend period dates business day convention.',\n    },\n    {\n        id: 42373,\n        name: 'LegDividendPeriodValuationDateUnadjusted',\n        abbrName: 'ValDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted dividend period valuation date.',\n    },\n    {\n        id: 42374,\n        name: 'LegDividendPeriodValuationDateRelativeTo',\n        abbrName: 'ValDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the dividend period valuation date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42375,\n        name: 'LegDividendPeriodValuationDateOffsetPeriod',\n        abbrName: 'ValDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative dividend period valuation date offset.',\n    },\n    {\n        id: 42376,\n        name: 'LegDividendPeriodValuationDateOffsetUnit',\n        abbrName: 'ValDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative dividend period valuation date offset.',\n    },\n    {\n        id: 42377,\n        name: 'LegDividendPeriodValuationDateOffsetDayType',\n        abbrName: 'ValDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative dividend period valuation date offset.',\n    },\n    {\n        id: 42378,\n        name: 'LegDividendPeriodValuationDateAdjusted',\n        abbrName: 'ValDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted dividend period valuation date.',\n    },\n    {\n        id: 42379,\n        name: 'LegDividendPeriodPaymentDateUnadjusted',\n        abbrName: 'PmtDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted dividend period payment date.',\n    },\n    {\n        id: 42380,\n        name: 'LegDividendPeriodPaymentDateRelativeTo',\n        abbrName: 'PmtDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the dividend period payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42381,\n        name: 'LegDividendPeriodPaymentDateOffsetPeriod',\n        abbrName: 'PmtDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative dividend period payment date offset.',\n    },\n    {\n        id: 42382,\n        name: 'LegDividendPeriodPaymentDateOffsetUnit',\n        abbrName: 'PmtDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative dividend period payment date offset.',\n    },\n    {\n        id: 42383,\n        name: 'LegDividendPeriodPaymentDateOffsetDayType',\n        abbrName: 'PmtDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative dividend period payment date offset.',\n    },\n    {\n        id: 42384,\n        name: 'LegDividendPeriodPaymentDateAdjusted',\n        abbrName: 'PmtDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted dividend period payment date.',\n    },\n    {\n        id: 42385,\n        name: 'LegDividendPeriodXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Identifier for linking this stream dividend period to an underlier through an instance of RelatedInstrumentGrp.',\n    },\n    {\n        id: 42386,\n        name: 'NoLegDividendPeriodBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The number of entries in the LegDividendPeriodBusinessCentersGrp component.',\n    },\n    {\n        id: 42387,\n        name: 'LegDividendPeriodBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the instrument\\'s dividend period date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42388,\n        name: 'NoLegExtraordinaryEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of extraordinary events in the repeating group.',\n    },\n    {\n        id: 42389,\n        name: 'LegExtraordinaryEventType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Identifies the type of extraordinary or disruptive event applicable to the reference entity.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Extraordinary_Event_Type for code list of extraordinary event types and values.',\n    },\n    {\n        id: 42390,\n        name: 'LegExtraordinaryEventValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The extraordinary or disruptive event value appropriate to LegExtraordinaryEventType(42389).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Extraordinary_Event_Type for code list of extraordinary event types and values.',\n    },\n    {\n        id: 42391,\n        name: 'LegSettlMethodElectingPartySide',\n        abbrName: 'SettlMethElctngSide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Side value of the party electing the settlement method.',\n    },\n    {\n        id: 42392,\n        name: 'LegMakeWholeDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The date through which option cannot be exercised without penalty.',\n    },\n    {\n        id: 42393,\n        name: 'LegMakeWholeAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Amount to be paid by the buyer of the option if the option is exercised prior to the LegMakeWholeDate(42392).',\n    },\n    {\n        id: 42394,\n        name: 'LegMakeWholeBenchmarkCurveName',\n        abbrName: 'Name',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Identifies the benchmark floating rate index.',\n    },\n    {\n        id: 42395,\n        name: 'LegMakeWholeBenchmarkCurvePoint',\n        abbrName: 'Point',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The point on the floating rate index curve.\\n\\nSample values:\\n\\nM = combination of a number between 1-12 and an \"M\" for month, e.g. 3M\\n\\nY = combination of number between 1-100 and a \"Y\" for year, e.g. 10Y\\n\\n10Y-OLD = see above, then add \"-OLD\" when appropriate\\n\\nINTERPOLATED = the point is mathematically derived\\n\\n2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon.',\n    },\n    {\n        id: 42396,\n        name: 'LegMakeWholeRecallSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Spread over the floating rate index.',\n    },\n    {\n        id: 42397,\n        name: 'LegMakeWholeBenchmarkQuote',\n        abbrName: 'Qte',\n        type: 'StrikeIndexQuoteCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The quote side of the benchmark to be used for calculating the \"make whole\" amount.',\n    },\n    {\n        id: 42398,\n        name: 'LegMakeWholeInterpolationMethod',\n        abbrName: 'IntrpltnMeth',\n        type: 'PaymentStreamInflationInterpolationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The method used when calculating the \"make whole\" amount. The most common is linear method.',\n    },\n    {\n        id: 42399,\n        name: 'LegPaymentStreamCashSettlIndicator',\n        abbrName: 'CshSettlInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether cash settlement is applicable.',\n    },\n    {\n        id: 42400,\n        name: 'LegPaymentStreamCompoundingXIDRef',\n        abbrName: 'CmpndgXIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the stream which details the compounding fixed or floating rate.',\n    },\n    {\n        id: 42401,\n        name: 'LegPaymentStreamCompoundingSpread',\n        abbrName: 'CmpndgSpread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The spread to be used for compounding. Used in scenarios where the interest payment is based on a compounding formula that uses a compounding spread in addition to the regular spread.',\n    },\n    {\n        id: 42402,\n        name: 'LegPaymentStreamInterpolationMethod',\n        abbrName: 'IntrpltnMeth',\n        type: 'PaymentStreamInflationInterpolationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The method used when calculating the index rate from multiple points on the curve. The most common is linear method.',\n    },\n    {\n        id: 42403,\n        name: 'LegPaymentStreamInterpolationPeriod',\n        abbrName: 'IntrpltnPeriod',\n        type: 'PaymentStreamInterpolationPeriodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines applicable periods for interpolation.',\n    },\n    {\n        id: 42404,\n        name: 'LegPaymentStreamCompoundingFixedRate',\n        abbrName: 'CmpndgFixedRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The compounding fixed rate applicable to the payment stream.',\n    },\n    {\n        id: 42405,\n        name: 'NoLegPaymentStreamCompoundingDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of dates in the repeating group.',\n    },\n    {\n        id: 42406,\n        name: 'LegPaymentStreamCompoundingDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The compounding date. Type of date is specified in LegPaymentStreamCompoundingDateType(42407).',\n    },\n    {\n        id: 42407,\n        name: 'LegPaymentStreamCompoundingDateType',\n        abbrName: 'Typ',\n        type: 'NonDeliverableFixingDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of payment compounding date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 42408,\n        name: 'LegPaymentStreamCompoundingDatesBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The compounding dates business day convention.',\n    },\n    {\n        id: 42409,\n        name: 'LegPaymentStreamCompoundingDatesRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the compounding dates are relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42410,\n        name: 'LegPaymentStreamCompoundingDatesOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative compounding date offset.',\n    },\n    {\n        id: 42411,\n        name: 'LegPaymentStreamCompoundingDatesOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative compounding date offset.',\n    },\n    {\n        id: 42412,\n        name: 'LegPaymentStreamCompoundingDatesOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative compounding date offset.',\n    },\n    {\n        id: 42413,\n        name: 'LegPaymentStreamCompoundingPeriodSkip',\n        abbrName: 'Skip',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The number of periods in the \"RelativeTo\" schedule that are between each date in the compounding schedule. A skip of 2 would mean that compounding dates are relative to every second date in the \"RelativeTo\" schedule. If present this should have a value greater than 1.',\n    },\n    {\n        id: 42414,\n        name: 'LegPaymentStreamCompoundingFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the frequency at which compounding dates occur.',\n    },\n    {\n        id: 42415,\n        name: 'LegPaymentStreamCompoundingFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the frequency at which compounding dates occur.',\n    },\n    {\n        id: 42416,\n        name: 'LegPaymentStreamCompoundingRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The convention for determining the sequence of compounding dates. It is used in conjunction with a specified frequency.',\n    },\n    {\n        id: 42417,\n        name: 'LegPaymentStreamBoundsFirstDateUnadjusted',\n        abbrName: 'FirstDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The unadjusted first date of the compounding schedule. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42418,\n        name: 'LegPaymentStreamBoundsLastDateUnadjusted',\n        abbrName: 'LastDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The unadjusted last date of the compounding schedule. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42419,\n        name: 'NoLegPaymentStreamCompoundingDatesBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42420,\n        name: 'LegPaymentStreamCompoundingDatesBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the payment stream compounding dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42421,\n        name: 'LegPaymentStreamCompoundingEndDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted compounding end date.',\n    },\n    {\n        id: 42422,\n        name: 'LegPaymentStreamCompoundingEndDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the compounding end date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42423,\n        name: 'LegPaymentStreamCompoundingEndDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative compounding end date offset.',\n    },\n    {\n        id: 42424,\n        name: 'LegPaymentStreamCompoundingEndDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative compounding end date offset.',\n    },\n    {\n        id: 42425,\n        name: 'LegPaymentStreamCompoundingEndDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative compounding end date offset.',\n    },\n    {\n        id: 42426,\n        name: 'LegPaymentStreamCompoundingEndDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted compounding end date.',\n    },\n    {\n        id: 42427,\n        name: 'LegPaymentStreamCompoundingRateIndex',\n        abbrName: 'Ndx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: \"The payment stream's compounding floating rate index.\",\n    },\n    {\n        id: 42428,\n        name: 'LegPaymentStreamCompoundingRateIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: \"Time unit multiplier for the payment stream's compounding floating rate index curve period.\",\n    },\n    {\n        id: 42429,\n        name: 'LegPaymentStreamCompoundingRateIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: \"Time unit associated with the payment stream's compounding floating rate index curve period.\",\n    },\n    {\n        id: 42430,\n        name: 'LegPaymentStreamCompoundingRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'A rate multiplier to apply to the compounding floating rate. The multiplier can be less than or greater than 1 (one). This should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 42431,\n        name: 'LegPaymentStreamCompoundingRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The basis points spread from the index specified in LegPaymentStreamCompoundingRateIndex(42427).',\n    },\n    {\n        id: 42432,\n        name: 'LegPaymentStreamCompoundingRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 42433,\n        name: 'LegPaymentStreamCompoundingRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the yield calculation treatment for the index.',\n    },\n    {\n        id: 42434,\n        name: 'LegPaymentStreamCompoundingCapRate',\n        abbrName: 'CapRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The cap rate, if any, which applies to the compounding floating rate. It is only required where the compounding floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42435,\n        name: 'LegPaymentStreamCompoundingCapRateBuySide',\n        abbrName: 'CapRtBuy',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the buyer of the compounding cap rate option through its trade side.',\n    },\n    {\n        id: 42436,\n        name: 'LegPaymentStreamCompoundingCapRateSellSide',\n        abbrName: 'CapRtSell',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the seller of the compounding cap rate option through its trade side.',\n    },\n    {\n        id: 42437,\n        name: 'LegPaymentStreamCompoundingFloorRate',\n        abbrName: 'FlrRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The floor rate, if any, which applies to the compounding floating rate. The floor rate (strike) is only required where the compounding floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as \"0.05\".',\n    },\n    {\n        id: 42438,\n        name: 'LegPaymentStreamCompoundingFloorRateBuySide',\n        abbrName: 'FlrRtBuy',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the buyer of the compounding floor rate option through its trade side.',\n    },\n    {\n        id: 42439,\n        name: 'LegPaymentStreamCompoundingFloorRateSellSide',\n        abbrName: 'FlrRtSell',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the seller of the floor rate option through its trade side.',\n    },\n    {\n        id: 42440,\n        name: 'LegPaymentStreamCompoundingInitialRate',\n        abbrName: 'InitRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The initial compounding floating rate reset agreed between the principal parties involved in the trade. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as \"0.05\".',\n    },\n    {\n        id: 42441,\n        name: 'LegPaymentStreamCompoundingFinalRateRoundingDirection',\n        abbrName: 'FnlRtRndDirctn',\n        type: 'RoundingDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the rounding direction for the compounding floating rate.',\n    },\n    {\n        id: 42442,\n        name: 'LegPaymentStreamCompoundingFinalRatePrecision',\n        abbrName: 'FnlRtPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the compounding floating rate rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7.',\n    },\n    {\n        id: 42443,\n        name: 'LegPaymentStreamCompoundingAveragingMethod',\n        abbrName: 'AvgngMeth',\n        type: 'PaymentStreamAveragingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the averaging method when compounding floating rate averaging is applicable (e.g. weighted or unweighted).',\n    },\n    {\n        id: 42444,\n        name: 'LegPaymentStreamCompoundingNegativeRateTreatment',\n        abbrName: 'NegtvRtTrtmt',\n        type: 'PaymentStreamNegativeRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method for calculating payment obligations when a compounding floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate).',\n    },\n    {\n        id: 42445,\n        name: 'LegPaymentStreamCompoundingStartDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted compounding start date.',\n    },\n    {\n        id: 42446,\n        name: 'LegPaymentStreamCompoundingStartDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the compounding start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42447,\n        name: 'LegPaymentStreamCompoundingStartDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative compounding start date offset.',\n    },\n    {\n        id: 42448,\n        name: 'LegPaymentStreamCompoundingStartDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative compounding start date offset.',\n    },\n    {\n        id: 42449,\n        name: 'LegPaymentStreamCompoundingStartDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative compounding start date offset.',\n    },\n    {\n        id: 42450,\n        name: 'LegPaymentStreamCompoundingStartDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted compounding start date.',\n    },\n    {\n        id: 42451,\n        name: 'LegPaymentStreamFormulaImageLength',\n        abbrName: 'FrmlaImgLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Length in bytes of the LegPaymentStreamFormulaImage(42452) field.',\n    },\n    {\n        id: 42452,\n        name: 'LegPaymentStreamFormulaImage',\n        abbrName: 'FrmlaImg',\n        type: 'data',\n        lengthId: '42451',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Image of the formula image when represented through an encoded clip in base64Binary.',\n    },\n    {\n        id: 42453,\n        name: 'LegPaymentStreamFinalPricePaymentDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted final price payment date.',\n    },\n    {\n        id: 42454,\n        name: 'LegPaymentStreamFinalPricePaymentDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the final price payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42455,\n        name: 'LegPaymentStreamFinalPricePaymentDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative final price payment date offset.',\n    },\n    {\n        id: 42456,\n        name: 'LegPaymentStreamFinalPricePaymentDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative final price payment date offset.',\n    },\n    {\n        id: 42457,\n        name: 'LegPaymentStreamFinalPricePaymentDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative final price payment date offset.',\n    },\n    {\n        id: 42458,\n        name: 'LegPaymentStreamFinalPricePaymentDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted final price payment date.',\n    },\n    {\n        id: 42459,\n        name: 'NoLegPaymentStreamFixingDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of fixing dates in the repeating group.',\n    },\n    {\n        id: 42460,\n        name: 'LegPaymentStreamFixingDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The fixing date. Type of date is specified in LegPaymentStreamFixingDateType(42461).',\n    },\n    {\n        id: 42461,\n        name: 'LegPaymentStreamFixingDateType',\n        abbrName: 'Typ',\n        type: 'NonDeliverableFixingDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of fixing date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 42462,\n        name: 'LegPaymentStreamFirstObservationDateUnadjusted',\n        abbrName: 'FirstObsvtnDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted initial price observation date.',\n    },\n    {\n        id: 42463,\n        name: 'LegPaymentStreamFirstObservationDateRelativeTo',\n        abbrName: 'FirstObsvtnReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the initial price observation date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42464,\n        name: 'LegPaymentStreamFirstObservationDateOffsetDayType',\n        abbrName: 'FirstObsvtnOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the initial price observation date offset.',\n    },\n    {\n        id: 42465,\n        name: 'LegPaymentStreamFirstObservationDateAdjusted',\n        abbrName: 'FirstObsvtnDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted initial price observation date.',\n    },\n    {\n        id: 42466,\n        name: 'LegPaymentStreamUnderlierRefID',\n        abbrName: 'UndlrRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42467,\n        name: 'LegReturnRateNotionalReset',\n        abbrName: 'RtnRtNotlReset',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the term \"Equity Notional Reset\" as defined in the ISDA 2002 Equity Derivatives Definitions is applicable (\"Y\") or not.',\n    },\n    {\n        id: 42468,\n        name: 'LegPaymentStreamLinkInitialLevel',\n        abbrName: 'LinkInitLvl',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Price level at which the correlation or variance swap contract will strike.',\n    },\n    {\n        id: 42469,\n        name: 'LegPaymentStreamLinkClosingLevelIndicator',\n        abbrName: 'LinkFClsngLvl',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the correlation or variance swap contract will (\"Y\") strike off the closing level of the default exchange traded contract or not.',\n    },\n    {\n        id: 42470,\n        name: 'LegPaymentStreamLinkExpiringLevelIndicator',\n        abbrName: 'LinkExpngLvl',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the correlation or variance swap contract will (\"Y\") strike off the expiring level of the default exchange traded contract or not.',\n    },\n    {\n        id: 42471,\n        name: 'LegPaymentStreamLinkEstimatedTradingDays',\n        abbrName: 'LinkEstTrdgDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The expected number of trading days in the variance or correlation swap stream.',\n    },\n    {\n        id: 42472,\n        name: 'LegPaymentStreamLinkStrikePrice',\n        abbrName: 'LinkStrkPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The strike price of a correlation or variance swap stream.',\n    },\n    {\n        id: 42473,\n        name: 'LegPaymentStreamLinkStrikePriceType',\n        abbrName: 'LinkStrkPxTyp',\n        type: 'PaymentStreamLinkStrikePriceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'For a variance swap specifies how LegPaymentStreamLinkStrikePrice(42472) is expressed.',\n    },\n    {\n        id: 42474,\n        name: 'LegPaymentStreamLinkMaximumBoundary',\n        abbrName: 'LinkMaxBndry',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the maximum or upper boundary for variance or strike determination.\\n\\nFor a variation swap stream all observations above this price level will be excluded from the variance calculation.\\n\\nFor a correlation swap stream the maximum boundary is a percentage of the strike price.',\n    },\n    {\n        id: 42475,\n        name: 'LegPaymentStreamLinkMinimumBoundary',\n        abbrName: 'LinkMinBndry',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the minimum or lower boundary for variance or strike determination.\\n\\nFor a variation swap stream all observations below this price level will be excluded from the variance calculation.\\n\\nFor a correlation swap stream the minimum boundary is a percentage of the strike price.',\n    },\n    {\n        id: 42476,\n        name: 'LegPaymentStreamLinkNumberOfDataSeries',\n        abbrName: 'LinkNumDataSeries',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Number of data series for a correlation swap. Normal market practice is that correlation data sets are drawn from geographic market areas, such as America, Europe and Asia Pacific. Each of these geographic areas will have its own data series to avoid contagion.',\n    },\n    {\n        id: 42477,\n        name: 'LegPaymentStreamVarianceUnadjustedCap',\n        abbrName: 'VarncCap',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates the scaling factor to be multiplied by the variance strike price thereby making variance cap applicable.',\n    },\n    {\n        id: 42478,\n        name: 'LegPaymentStreamRealizedVarianceMethod',\n        abbrName: 'RlzdVarncMeth',\n        type: 'PaymentStreamRealizedVarianceMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates which price to use to satisfy the boundary condition.',\n    },\n    {\n        id: 42479,\n        name: 'LegPaymentStreamDaysAdjustmentIndicator',\n        abbrName: 'DaysAdjmt',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the contract specifies that the notional should be scaled by the number of days in range divided by the estimate trading days or not. The number of \"days in range\" refers to the number of returns that contribute to the realized volatility.',\n    },\n    {\n        id: 42480,\n        name: 'LegPaymentStreamNearestExchangeContractRefID',\n        abbrName: 'ExchCtrctRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"References a contract listed on an exchange through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42481,\n        name: 'LegPaymentStreamVegaNotionalAmount',\n        abbrName: 'VegaNotlAmt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Vega Notional represents the approximate gain/loss at maturity for a 1% difference between RVol (realized volatility) and KVol (strike volatility). It does not necessarily represent the Vega risk of the trade.',\n    },\n    {\n        id: 42482,\n        name: 'LegPaymentStreamFormulaCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The currency in which the formula amount is denominated. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42483,\n        name: 'LegPaymentStreamFormulaCurrencyDeterminationMethod',\n        abbrName: 'CcyDtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method according to which the formula amount currency is determined.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 42484,\n        name: 'LegPaymentStreamFormulaReferenceAmount',\n        abbrName: 'RefAmt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the reference amount when this term either corresponds to the standard ISDA Definition (either the 2002 Equity Definition for the Equity Amount, or the 2000 Definition for the Interest Amount), or refers to a term defined elsewhere in the swap document.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Payment_Amount_Relative_To for code list of reference amounts.',\n    },\n    {\n        id: 42485,\n        name: 'NoLegPaymentStreamFormulas',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of formulas in the repeating group.',\n    },\n    {\n        id: 42486,\n        name: 'LegPaymentStreamFormula',\n        abbrName: 'Frmla',\n        type: 'XMLData',\n        lengthId: '43110',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description:\n            'Contains an XML representation of the formula. Defined for flexibility in choice of language (MathML, OpenMath or text).',\n    },\n    {\n        id: 42487,\n        name: 'LegPaymentStreamFormulaDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'A description of the math formula in LegPaymentStreamFormula(42486).',\n    },\n    {\n        id: 42488,\n        name: 'LegPaymentStubEndDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted stub end date.',\n    },\n    {\n        id: 42489,\n        name: 'LegPaymentStubEndDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The stub end date business day convention.',\n    },\n    {\n        id: 42490,\n        name: 'LegPaymentStubEndDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the stub end date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42491,\n        name: 'LegPaymentStubEndDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative stub end date offset.',\n    },\n    {\n        id: 42492,\n        name: 'LegPaymentStubEndDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative stub end date offset.',\n    },\n    {\n        id: 42493,\n        name: 'LegPaymentStubEndDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative stub end date offset.',\n    },\n    {\n        id: 42494,\n        name: 'LegPaymentStubEndDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted stub end date.',\n    },\n    {\n        id: 42495,\n        name: 'NoLegPaymentStubEndDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42496,\n        name: 'LegPaymentStubEndDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the payment stub end date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42497,\n        name: 'LegPaymentStubStartDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted stub start date.',\n    },\n    {\n        id: 42498,\n        name: 'LegPaymentStubStartDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The stub start date business day convention.',\n    },\n    {\n        id: 42499,\n        name: 'LegPaymentStubStartDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the stub start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42500,\n        name: 'LegPaymentStubStartDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative stub start date offset.',\n    },\n    {\n        id: 42501,\n        name: 'LegPaymentStubStartDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative stub start date offset.',\n    },\n    {\n        id: 42502,\n        name: 'LegPaymentStubStartDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative stub start date offset.',\n    },\n    {\n        id: 42503,\n        name: 'LegPaymentStubStartDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted stub start date.',\n    },\n    {\n        id: 42504,\n        name: 'NoLegPaymentStubStartDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42505,\n        name: 'LegPaymentStubStartDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the payment stub start date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42506,\n        name: 'LegProvisionBreakFeeElection',\n        abbrName: 'BrkFeeElctn',\n        type: 'ProvisionBreakFeeElectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Type of fee elected for the break provision.',\n    },\n    {\n        id: 42507,\n        name: 'LegProvisionBreakFeeRate',\n        abbrName: 'BrkFeeRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Break fee election rate when the break fee is proportional to the notional. A fee rate of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42508,\n        name: 'NoLegReturnRateDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate date repeating group.',\n    },\n    {\n        id: 42509,\n        name: 'LegReturnRateDateMode',\n        abbrName: 'Mode',\n        type: 'ReturnRateDateModeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the valuation type applicable to the return rate date.',\n    },\n    {\n        id: 42510,\n        name: 'LegReturnRateValuationDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the return rate valuation dates are relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42511,\n        name: 'LegReturnRateValuationDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative return rate valuation date offset.',\n    },\n    {\n        id: 42512,\n        name: 'LegReturnRateValuationDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative return rate valuation date offset.',\n    },\n    {\n        id: 42513,\n        name: 'LegReturnRateValuationDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative return rate valuation date offset.',\n    },\n    {\n        id: 42514,\n        name: 'LegReturnRateValuationStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The unadjusted start date for return rate valuation. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42515,\n        name: 'LegReturnRateValuationStartDateRelativeTo',\n        abbrName: 'StartDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the return rate valuation start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42516,\n        name: 'LegReturnRateValuationStartDateOffsetPeriod',\n        abbrName: 'StartDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative return rate valuation start date offset.',\n    },\n    {\n        id: 42517,\n        name: 'LegReturnRateValuationStartDateOffsetUnit',\n        abbrName: 'StartDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative return rate valuation start date offset.',\n    },\n    {\n        id: 42518,\n        name: 'LegReturnRateValuationStartDateOffsetDayType',\n        abbrName: 'StartDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative return rate valuation start date offset.',\n    },\n    {\n        id: 42519,\n        name: 'LegReturnRateValuationStartDateAdjusted',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The adjusted start date for return rate valuation. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42520,\n        name: 'LegReturnRateValuationEndDateUnadjusted',\n        abbrName: 'EndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The unadjusted end date for return rate valuation. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42521,\n        name: 'LegReturnRateValuationEndDateRelativeTo',\n        abbrName: 'EndDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the return rate valuation end date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42522,\n        name: 'LegReturnRateValuationEndDateOffsetPeriod',\n        abbrName: 'EndDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative return rate valuation end date offset.',\n    },\n    {\n        id: 42523,\n        name: 'LegReturnRateValuationEndDateOffsetUnit',\n        abbrName: 'EndDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative return rate valuation end date offset.',\n    },\n    {\n        id: 42524,\n        name: 'LegReturnRateValuationEndDateOffsetDayType',\n        abbrName: 'EndDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative return rate valuation end date offset.',\n    },\n    {\n        id: 42525,\n        name: 'LegReturnRateValuationEndDateAdjusted',\n        abbrName: 'EndDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The adjusted end date for return rate valuation. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42526,\n        name: 'LegReturnRateValuationFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the frequency at which return rate valuation dates occur.',\n    },\n    {\n        id: 42527,\n        name: 'LegReturnRateValuationFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the frequency at which return rate valuation dates occur.',\n    },\n    {\n        id: 42528,\n        name: 'LegReturnRateValuationFrequencyRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The convention for determining the sequence of return rate valuation dates. It is used in conjunction with a specified frequency.',\n    },\n    {\n        id: 42529,\n        name: 'LegReturnRateValuationDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The return rate valuation dates business day convention.',\n    },\n    {\n        id: 42530,\n        name: 'NoLegReturnRateFXConversions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate FX conversion repeating group.',\n    },\n    {\n        id: 42531,\n        name: 'LegReturnRateFXCurrencySymbol',\n        abbrName: 'CcySym',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the currency pair for the FX conversion expressed using the CCY1/CCY2 convention. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42532,\n        name: 'LegReturnRateFXRate',\n        abbrName: 'FxRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The rate of exchange between the two currencies specified in LegReturnRateFXCurrencySymbol(42531).',\n    },\n    {\n        id: 42533,\n        name: 'LegReturnRateFXRateCalc',\n        abbrName: 'FxRtCalc',\n        type: 'SettlCurrFxRateCalcCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The rate of exchange between the two currencies specified in LegReturnRateFXCurrencySymbol(42531).',\n    },\n    {\n        id: 42534,\n        name: 'NoLegReturnRates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate repeating group.',\n    },\n    {\n        id: 42535,\n        name: 'LegReturnRatePriceSequence',\n        abbrName: 'PxSeq',\n        type: 'ReturnRatePriceSequenceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of price sequence of the return rate.',\n    },\n    {\n        id: 42536,\n        name: 'LegReturnRateCommissionBasis',\n        abbrName: 'CommBasis',\n        type: 'CommTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the basis or unit used to calculate the commission.',\n    },\n    {\n        id: 42537,\n        name: 'LegReturnRateCommissionAmount',\n        abbrName: 'CommAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The commission amount.',\n    },\n    {\n        id: 42538,\n        name: 'LegReturnRateCommissionCurrency',\n        abbrName: 'CommCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the currency the commission amount is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42539,\n        name: 'LegReturnRateTotalCommissionPerTrade',\n        abbrName: 'TotCommPerTrd',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The total commission per trade.',\n    },\n    {\n        id: 42540,\n        name: 'LegReturnRateDeterminationMethod',\n        abbrName: 'DtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method by which the underlier prices are determined.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 42541,\n        name: 'LegReturnRateAmountRelativeTo',\n        abbrName: 'AmtReltv',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the reference amount when the return rate amount is relative to another amount in the trade.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Amount_Relative_To for code list of relative amounts.',\n    },\n    {\n        id: 42542,\n        name: 'LegReturnRateQuoteMeasureType',\n        abbrName: 'QteTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"Specifies the type of the measure applied to the return rate's asset, e.g. valuation, sensitivity risk. This could be an NPV, a cash flow, a clean price, etc.\\n\\nSee http://www.fpml.org/coding-scheme/asset-measure for values.\",\n    },\n    {\n        id: 42543,\n        name: 'LegReturnRateQuoteUnits',\n        abbrName: 'QteUnit',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the units that the measure is expressed in. If not specified, the default is a price/value in currency units.\\n\\nSee http://www.fpml.org/coding-scheme/price-quote-units for values.',\n    },\n    {\n        id: 42544,\n        name: 'LegReturnRateQuoteMethod',\n        abbrName: 'QteMeth',\n        type: 'CashSettlQuoteMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of quote used to determine the return rate of the swap.',\n    },\n    {\n        id: 42545,\n        name: 'LegReturnRateQuoteCurrency',\n        abbrName: 'QteCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the currency the return rate quote is denominated in. Uses ISO 4217 Currency Code.',\n    },\n    {\n        id: 42546,\n        name: 'LegReturnRateQuoteCurrencyType',\n        abbrName: 'QteCcyTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the type of currency, e.g. settlement currency, base currency, etc., that the quote is reported in.\\n\\nSee http://www.fpml.org/coding-scheme/reporting-currency-type for values.',\n    },\n    {\n        id: 42547,\n        name: 'LegReturnRateQuoteTimeType',\n        abbrName: 'QteTmTyp',\n        type: 'ReturnRateQuoteTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies how or the timing when the quote is to be obtained.',\n    },\n    {\n        id: 42548,\n        name: 'LegReturnRateQuoteTime',\n        abbrName: 'QteTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The time when the quote is to be generated.',\n    },\n    {\n        id: 42549,\n        name: 'LegReturnRateQuoteDate',\n        abbrName: 'QteDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The date when the quote is to be generated.',\n    },\n    {\n        id: 42550,\n        name: 'LegReturnRateQuoteExpirationTime',\n        abbrName: 'QteExpTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The time when the quote ceases to be valid.',\n    },\n    {\n        id: 42551,\n        name: 'LegReturnRateQuoteBusinessCenter',\n        abbrName: 'QteBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for adjustments associated with LegReturnRateQuoteTimeType(42547) or LegReturnRateQuoteTime(42548) and LegReturnRateQuoteDate(42549), e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42552,\n        name: 'LegReturnRateQuoteExchange',\n        abbrName: 'QteExch',\n        type: 'Exchange',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the exchange (e.g. stock or listed futures/options exchange) from which the quote is obtained.',\n    },\n    {\n        id: 42553,\n        name: 'LegReturnRateQuotePricingModel',\n        abbrName: 'QteModel',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the pricing model used to evaluate the underlying asset price.\\n\\nSee http://www.fpml.org/coding-scheme/pricing-model for values.',\n    },\n    {\n        id: 42554,\n        name: 'LegReturnRateCashFlowType',\n        abbrName: 'CshFlow',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the type of cash flows, e.g. coupon payment, premium fee, settlement fee, etc.\\n\\nSee http://www.fpml.org/coding-scheme/cashflow-type for values.',\n    },\n    {\n        id: 42555,\n        name: 'LegReturnRateValuationTimeType',\n        abbrName: 'ValTmTyp',\n        type: 'ReturnRateQuoteTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the timing at which the calculation agent values the underlying.',\n    },\n    {\n        id: 42556,\n        name: 'LegReturnRateValuationTime',\n        abbrName: 'ValTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The time at which the calculation agent values the underlying asset.',\n    },\n    {\n        id: 42557,\n        name: 'LegReturnRateValuationTimeBusinessCenter',\n        abbrName: 'ValTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for adjustments associated with LegReturnRateValuationTimeType(42555) or LegReturnRateValuationTime(42556), e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42558,\n        name: 'LegReturnRateValuationPriceOption',\n        abbrName: 'ValPxOpt',\n        type: 'ReturnRateValuationPriceOptionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether an ISDA price option applies, and if applicable which type of price.',\n    },\n    {\n        id: 42559,\n        name: 'LegReturnRateFinalPriceFallback',\n        abbrName: 'FnlPxFallbck',\n        type: 'ComplexEventPVFinalPriceElectionFallbackCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the fallback provision for the hedging party in the determination of the final price.',\n    },\n    {\n        id: 42560,\n        name: 'NoLegReturnRateInformationSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate information source repeating group.',\n    },\n    {\n        id: 42561,\n        name: 'LegReturnRateInformationSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Identifies the source of rate information. For FX the references source to be used for the FX spot rate.',\n    },\n    {\n        id: 42562,\n        name: 'LegReturnRateReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Identifies the reference \"page\" from the rate source.\\n\\nFor FX, the reference page to the spot rate to be used for the reference FX spot rate.\\n\\nWhen LegReturnRateInformationSource(42561) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions.\\n\\nSee: http://www.fpml.org/coding-scheme/settlement-rate-option.',\n    },\n    {\n        id: 42563,\n        name: 'LegReturnRateReferencePageHeading',\n        abbrName: 'RefHdng',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Identifies the page heading from the rate source.',\n    },\n    {\n        id: 42564,\n        name: 'NoLegReturnRatePrices',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate price repeating group.',\n    },\n    {\n        id: 42565,\n        name: 'LegReturnRatePriceBasis',\n        abbrName: 'PxBasis',\n        type: 'ReturnRatePriceBasisCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The basis of the return price.',\n    },\n    {\n        id: 42566,\n        name: 'LegReturnRatePrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the price of the underlying swap asset.',\n    },\n    {\n        id: 42567,\n        name: 'LegReturnRatePriceCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the currency of the price of the leg swap asset. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42568,\n        name: 'LegReturnRatePriceType',\n        abbrName: 'PxTyp',\n        type: 'ReturnRatePriceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies whether the LegReturnRatePrice(42566) is expressed in absolute or relative terms.',\n    },\n    {\n        id: 42569,\n        name: 'NoLegReturnRateValuationDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate valuation date business center repeating group.',\n    },\n    {\n        id: 42570,\n        name: 'LegReturnRateValuationDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the return rate valuation unadjusted or relative dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42571,\n        name: 'NoLegReturnRateValuationDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate valuation date repeating group.',\n    },\n    {\n        id: 42572,\n        name: 'LegReturnRateValuationDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The return rate valuation date. The type of date is specified in LegReturnRateValuationDateType(42573).',\n    },\n    {\n        id: 42573,\n        name: 'LegReturnRateValuationDateType',\n        abbrName: 'Typ',\n        type: 'NonDeliverableFixingDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of return rate valuation date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 42574,\n        name: 'LegSettlMethodElectionDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted settlement method election date.',\n    },\n    {\n        id: 42575,\n        name: 'LegSettlMethodElectionDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The settlement method election date adjustment business day convention.',\n    },\n    {\n        id: 42576,\n        name: 'LegSettlMethodElectionDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the settlement method election date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42577,\n        name: 'LegSettlMethodElectionDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative settlement method election date offset.',\n    },\n    {\n        id: 42578,\n        name: 'LegSettlMethodElectionDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative settlement method election date offset.',\n    },\n    {\n        id: 42579,\n        name: 'LegSettlMethodElectionDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative settlement method election date offset.',\n    },\n    {\n        id: 42580,\n        name: 'LegSettlMethodElectionDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted settlement method election date.',\n    },\n    {\n        id: 42581,\n        name: 'NoLegSettlMethodElectionDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42582,\n        name: 'LegSettlMethodElectionDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the settlement method election unadjusted or relative date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42583,\n        name: 'LegStreamVersion',\n        abbrName: 'Ver',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The stream version identifier when there have been modifications to the contract over time. Helps signal when there are embedded changes.',\n    },\n    {\n        id: 42584,\n        name: 'LegStreamVersionEffectiveDate',\n        abbrName: 'VerEfctvDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The effective date of the LegStreamVersion(42583).',\n    },\n    {\n        id: 42585,\n        name: 'LegStreamNotionalDeterminationMethod',\n        abbrName: 'NotlDtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method for determining the floating notional value for equity swaps.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 42586,\n        name: 'LegStreamNotionalAdjustments',\n        abbrName: 'NotlAdjmts',\n        type: 'StreamNotionalAdjustmentsCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'For equity swaps this specifies the conditions that govern the adjustment to the number of units of the swap.',\n    },\n    {\n        id: 42587,\n        name: 'StreamCommodityDeliveryPricingRegion',\n        abbrName: 'DlvryPxngRgn',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description:\n            'The delivery or pricing region associated with the commodity swap. See http://www.ecfr.gov/cgi-bin/text-idx?SID=660d6a40f836aa6ddf213cba080c5b22&node=ap17.2.43_17.e&rgn=div9 for the external code list.\\n\\nIn the context of CFTC Part 43 Appendix E requirement this represents the specific delivery point or pricing point associated with publicly reportable commodity swap transactions.',\n    },\n    {\n        id: 42588,\n        name: 'LegStreamCommodityDeliveryPricingRegion',\n        abbrName: 'DlvryPxngRgn',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description:\n            'The delivery or pricing region associated with the commodity swap. See http://www.ecfr.gov/cgi-bin/text-idx?SID=660d6a40f836aa6ddf213cba080c5b22&node=ap17.2.43_17.e&rgn=div9 for the external code list.\\n\\nIn the context of CFTC Part 43 Appendix E requirement this represents the specific delivery point or pricing point associated with publically reportable commodity swap transactions.',\n    },\n    {\n        id: 42589,\n        name: 'UnderlyingStreamCommodityDeliveryPricingRegion',\n        abbrName: 'DlvryPxngRgn',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '193',\n        description:\n            'The delivery or pricing region associated with the commodity swap. See http://www.ecfr.gov/cgi-bin/text-idx?SID=660d6a40f836aa6ddf213cba080c5b22&node=ap17.2.43_17.e&rgn=div9 for the external code list.\\n\\nIn the context of CFTC Part 43 Appendix E requirement this represents the specific delivery point or pricing point associated with publically reportable commodity swap transactions.',\n    },\n    {\n        id: 42590,\n        name: 'SettlMethodElectingPartySide',\n        abbrName: 'SettlMethElctngSide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Side value of the party electing the settlement method.',\n    },\n    {\n        id: 42591,\n        name: 'MakeWholeDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The date through which option cannot be exercised without penalty.',\n    },\n    {\n        id: 42592,\n        name: 'MakeWholeAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Amount to be paid by the buyer of the option if the option is exercised prior to the MakeWholeDate(42591).',\n    },\n    {\n        id: 42593,\n        name: 'MakeWholeBenchmarkCurveName',\n        abbrName: 'Name',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Identifies the benchmark floating rate index.',\n    },\n    {\n        id: 42594,\n        name: 'MakeWholeBenchmarkCurvePoint',\n        abbrName: 'Point',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The point on the floating rate index curve.\\n\\nSample values:\\n\\nM = combination of a number between 1-12 and an \"M\" for month, e.g. 3M\\n\\nY = combination of number between 1-100 and a \"Y\" for year, e.g. 10Y\\n\\n10Y-OLD = see above, then add \"-OLD\" when appropriate\\n\\nINTERPOLATED = the point is mathematically derived\\n\\n2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon.',\n    },\n    {\n        id: 42595,\n        name: 'MakeWholeRecallSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Spread over the floating rate index.',\n    },\n    {\n        id: 42596,\n        name: 'MakeWholeBenchmarkQuote',\n        abbrName: 'Qte',\n        type: 'StrikeIndexQuoteCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The quote side of the benchmark to be used for calculating the \"make whole\" amount.',\n    },\n    {\n        id: 42597,\n        name: 'MakeWholeInterpolationMethod',\n        abbrName: 'IntrpltnMeth',\n        type: 'PaymentStreamInflationInterpolationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The method used when calculating the \"make whole\" amount. The most common is linear method.',\n    },\n    {\n        id: 42598,\n        name: 'PaymentAmountRelativeTo',\n        abbrName: 'AmtReltv',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the reference amount when the payment amount is relative to another amount in the message.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Payment_Amount_Relative_To for code list of relative amounts.',\n    },\n    {\n        id: 42599,\n        name: 'PaymentAmountDeterminationMethod',\n        abbrName: 'AmtDtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method by which a payment amount is determined.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 42600,\n        name: 'PaymentStreamCashSettlIndicator',\n        abbrName: 'CshSettlInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether cash settlement is applicable.',\n    },\n    {\n        id: 42601,\n        name: 'PaymentStreamCompoundingXIDRef',\n        abbrName: 'CmpndgXIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the stream which details the compounding fixed or floating rate.',\n    },\n    {\n        id: 42602,\n        name: 'PaymentStreamCompoundingSpread',\n        abbrName: 'CmpndgSpread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The spread to be used for compounding. Used in scenarios where the interest payment is based on a compounding formula that uses a compounding spread in addition to the regular spread.',\n    },\n    {\n        id: 42603,\n        name: 'PaymentStreamInterpolationMethod',\n        abbrName: 'IntrpltnMeth',\n        type: 'PaymentStreamInflationInterpolationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The method used when calculating the index rate from multiple points on the curve. The most common is linear method.',\n    },\n    {\n        id: 42604,\n        name: 'PaymentStreamInterpolationPeriod',\n        abbrName: 'IntrpltnPeriod',\n        type: 'PaymentStreamInterpolationPeriodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines applicable periods for interpolation.',\n    },\n    {\n        id: 42605,\n        name: 'PaymentStreamCompoundingFixedRate',\n        abbrName: 'CmpndgFixedRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The compounding fixed rate applicable to the payment stream.',\n    },\n    {\n        id: 42606,\n        name: 'NoPaymentStreamCompoundingDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of dates in the repeating group.',\n    },\n    {\n        id: 42607,\n        name: 'PaymentStreamCompoundingDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The compounding date. The type of date is specified in PaymentStreamCompoundingDateType(42608).',\n    },\n    {\n        id: 42608,\n        name: 'PaymentStreamCompoundingDateType',\n        abbrName: 'Typ',\n        type: 'NonDeliverableFixingDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of payment compounding date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 42609,\n        name: 'PaymentStreamCompoundingDatesBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The compounding dates business day convention.',\n    },\n    {\n        id: 42610,\n        name: 'PaymentStreamCompoundingDatesRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the compounding dates are relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42611,\n        name: 'PaymentStreamCompoundingDatesOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative compounding date offset.',\n    },\n    {\n        id: 42612,\n        name: 'PaymentStreamCompoundingDatesOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative compounding date offset.',\n    },\n    {\n        id: 42613,\n        name: 'PaymentStreamCompoundingDatesOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative compounding date offset.',\n    },\n    {\n        id: 42614,\n        name: 'PaymentStreamCompoundingPeriodSkip',\n        abbrName: 'Skip',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The number of periods in the \"RelativeTo\" schedule that are between each date in the compounding schedule. A skip of 2 would mean that compounding dates are relative to every second date in the \"RelativeTo\" schedule. If present this should have a value greater than 1.',\n    },\n    {\n        id: 42615,\n        name: 'PaymentStreamCompoundingFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the frequency at which compounding dates occur.',\n    },\n    {\n        id: 42616,\n        name: 'PaymentStreamCompoundingFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the frequency at which compounding dates occur.',\n    },\n    {\n        id: 42617,\n        name: 'PaymentStreamCompoundingRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The convention for determining the sequence of compounding dates. It is used in conjunction with a specified frequency.',\n    },\n    {\n        id: 42618,\n        name: 'PaymentStreamBoundsFirstDateUnadjusted',\n        abbrName: 'FirstDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The unadjusted first date of the compounding schedule. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42619,\n        name: 'PaymentStreamBoundsLastDateUnadjusted',\n        abbrName: 'LastDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The unadjusted last date of the compounding schedule. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42620,\n        name: 'NoPaymentStreamCompoundingDatesBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42621,\n        name: 'PaymentStreamCompoundingDatesBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the payment stream compounding dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42622,\n        name: 'PaymentStreamCompoundingEndDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted compounding end date.',\n    },\n    {\n        id: 42623,\n        name: 'PaymentStreamCompoundingEndDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the compounding end date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42624,\n        name: 'PaymentStreamCompoundingEndDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative compounding end date offset.',\n    },\n    {\n        id: 42625,\n        name: 'PaymentStreamCompoundingEndDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative compounding end date offset.',\n    },\n    {\n        id: 42626,\n        name: 'PaymentStreamCompoundingEndDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative compounding end date offset.',\n    },\n    {\n        id: 42627,\n        name: 'PaymentStreamCompoundingEndDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted compounding end date.',\n    },\n    {\n        id: 42628,\n        name: 'PaymentStreamCompoundingRateIndex',\n        abbrName: 'Ndx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: \"The payment stream's compounding floating rate index.\",\n    },\n    {\n        id: 42629,\n        name: 'PaymentStreamCompoundingRateIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: \"Time unit multiplier for the payment stream's compounding floating rate index curve period.\",\n    },\n    {\n        id: 42630,\n        name: 'PaymentStreamCompoundingRateIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: \"Time unit associated with the payment stream's compounding floating rate index curve period.\",\n    },\n    {\n        id: 42631,\n        name: 'PaymentStreamCompoundingRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'A rate multiplier to apply to the compounding floating rate. The multiplier can be less than or greater than 1 (one). This should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 42632,\n        name: 'PaymentStreamCompoundingRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The basis points spread from the index specified in PaymentStreamCompoundingRateIndex(42628).',\n    },\n    {\n        id: 42633,\n        name: 'PaymentStreamCompoundingRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 42634,\n        name: 'PaymentStreamCompoundingRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the yield calculation treatment for the index.',\n    },\n    {\n        id: 42635,\n        name: 'PaymentStreamCompoundingCapRate',\n        abbrName: 'CapRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The cap rate, if any, which applies to the compounding floating rate. It is only required where the compounding floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42636,\n        name: 'PaymentStreamCompoundingCapRateBuySide',\n        abbrName: 'CapRtBuy',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the buyer of the compounding cap rate option through its trade side.',\n    },\n    {\n        id: 42637,\n        name: 'PaymentStreamCompoundingCapRateSellSide',\n        abbrName: 'CapRtSell',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the seller of the compounding cap rate option through its trade side.',\n    },\n    {\n        id: 42638,\n        name: 'PaymentStreamCompoundingFloorRate',\n        abbrName: 'FlrRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The floor rate, if any, which applies to the compounding floating rate. The floor rate (strike) is only required where the compounding floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as \"0.05\".',\n    },\n    {\n        id: 42639,\n        name: 'PaymentStreamCompoundingFloorRateBuySide',\n        abbrName: 'FlrRtBuy',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the buyer of the compounding floor rate option through its trade side.',\n    },\n    {\n        id: 42640,\n        name: 'PaymentStreamCompoundingFloorRateSellSide',\n        abbrName: 'FlrRtSell',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the seller of the floor rate option through its trade side.',\n    },\n    {\n        id: 42641,\n        name: 'PaymentStreamCompoundingInitialRate',\n        abbrName: 'InitRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The initial compounding floating rate reset agreed between the principal parties involved in the trade. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as \"0.05\".',\n    },\n    {\n        id: 42642,\n        name: 'PaymentStreamCompoundingFinalRateRoundingDirection',\n        abbrName: 'FnlRtRndDirctn',\n        type: 'RoundingDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the rounding direction for the compounding floating rate.',\n    },\n    {\n        id: 42643,\n        name: 'PaymentStreamCompoundingFinalRatePrecision',\n        abbrName: 'FnlRtPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the compounding floating rate rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7.',\n    },\n    {\n        id: 42644,\n        name: 'PaymentStreamCompoundingAveragingMethod',\n        abbrName: 'AvgngMeth',\n        type: 'PaymentStreamAveragingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the averaging method when compounding floating rate averaging is applicable (e.g. weighted or unweighted).',\n    },\n    {\n        id: 42645,\n        name: 'PaymentStreamCompoundingNegativeRateTreatment',\n        abbrName: 'NegtvRtTrtmt',\n        type: 'PaymentStreamNegativeRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method for calculating payment obligations when a compounding floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate).',\n    },\n    {\n        id: 42646,\n        name: 'PaymentStreamCompoundingStartDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted compounding start date.',\n    },\n    {\n        id: 42647,\n        name: 'PaymentStreamCompoundingStartDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the compounding start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42648,\n        name: 'PaymentStreamCompoundingStartDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative compounding start date offset.',\n    },\n    {\n        id: 42649,\n        name: 'PaymentStreamCompoundingStartDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative compounding start date offset.',\n    },\n    {\n        id: 42650,\n        name: 'PaymentStreamCompoundingStartDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative compounding start date offset.',\n    },\n    {\n        id: 42651,\n        name: 'PaymentStreamCompoundingStartDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted compounding start date.',\n    },\n    {\n        id: 42652,\n        name: 'PaymentStreamFormulaImageLength',\n        abbrName: 'FrmlaImgLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Length in bytes of the PaymentStreamFormulaImage(42563) field.',\n    },\n    {\n        id: 42653,\n        name: 'PaymentStreamFormulaImage',\n        abbrName: 'FrmlaImg',\n        type: 'data',\n        lengthId: '42652',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Image of the formula image when represented through an encoded clip in base64Binary.',\n    },\n    {\n        id: 42654,\n        name: 'PaymentStreamFinalPricePaymentDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted final price payment date.',\n    },\n    {\n        id: 42655,\n        name: 'PaymentStreamFinalPricePaymentDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the final price payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42656,\n        name: 'PaymentStreamFinalPricePaymentDateOffsetfPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative final price payment date offset.',\n    },\n    {\n        id: 42657,\n        name: 'PaymentStreamFinalPricePaymentDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative final price payment date offset.',\n    },\n    {\n        id: 42658,\n        name: 'PaymentStreamFinalPricePaymentDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative final price payment date offset.',\n    },\n    {\n        id: 42659,\n        name: 'PaymentStreamFinalPricePaymentDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted final price payment date.',\n    },\n    {\n        id: 42660,\n        name: 'NoPaymentStreamFixingDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of fixing dates in the repeating group.',\n    },\n    {\n        id: 42661,\n        name: 'PaymentStreamFixingDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The fixing date. The type of date is specified in PaymentStreamFixingDateType(42662).',\n    },\n    {\n        id: 42662,\n        name: 'PaymentStreamFixingDateType',\n        abbrName: 'Typ',\n        type: 'NonDeliverableFixingDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of fixing date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 42663,\n        name: 'PaymentStreamFirstObservationDateUnadjusted',\n        abbrName: 'FirstObsvtnDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted initial price observation date.',\n    },\n    {\n        id: 42664,\n        name: 'PaymentStreamFirstObservationDateRelativeTo',\n        abbrName: 'FirstObsvtnReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the initial price observation date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42665,\n        name: 'PaymentStreamFirstObservationDateOffsetDayType',\n        abbrName: 'FirstObsvtnOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the initial price observation date offset.',\n    },\n    {\n        id: 42666,\n        name: 'PaymentStreamFirstObservationDateAdjusted',\n        abbrName: 'FirstObsvtnDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted initial price observation date.',\n    },\n    {\n        id: 42667,\n        name: 'PaymentStreamUnderlierRefID',\n        abbrName: 'UndlrRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42668,\n        name: 'ReturnRateNotionalReset',\n        abbrName: 'RtnRtNotlReset',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the term \"Equity Notional Reset\" as defined in the ISDA 2002 Equity Derivatives Definitions is applicable (\"Y\") or not.',\n    },\n    {\n        id: 42669,\n        name: 'PaymentStreamLinkInitialLevel',\n        abbrName: 'LinkInitLvl',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Price level at which the correlation or variance swap contract will strike.',\n    },\n    {\n        id: 42670,\n        name: 'PaymentStreamLinkClosingLevelIndicator',\n        abbrName: 'LinkClsngLvl',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the correlation or variance swap contract will (\"Y\") strike off the closing level of the default exchange traded contract or not.',\n    },\n    {\n        id: 42671,\n        name: 'PaymentStreamLinkExpiringLevelIndicator',\n        abbrName: 'LinkExpngLvl',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the correlation or variance swap contract will (\"Y\") strike off the expiring level of the default exchange traded contract or not.',\n    },\n    {\n        id: 42672,\n        name: 'PaymentStreamLinkEstimatedTradingDays',\n        abbrName: 'LinkEstTrdgDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The expected number of trading days in the variance or correlation swap stream.',\n    },\n    {\n        id: 42673,\n        name: 'PaymentStreamLinkStrikePrice',\n        abbrName: 'LinkStrkPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The strike price of a correlation or variance swap stream.',\n    },\n    {\n        id: 42674,\n        name: 'PaymentStreamLinkStrikePriceType',\n        abbrName: 'LinkStrkPxTyp',\n        type: 'PaymentStreamLinkStrikePriceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'For a variance swap specifies how PaymentStreamLinkStrikePrice(42673) is expressed.',\n    },\n    {\n        id: 42675,\n        name: 'PaymentStreamLinkMaximumBoundary',\n        abbrName: 'LinkMaxBndry',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the maximum or upper boundary for variance or strike determination.\\n\\nFor a variation swap stream all observations above this price level will be excluded from the variance calculation.\\n\\nFor a correlation swap stream the maximum boundary is a percentage of the strike price.',\n    },\n    {\n        id: 42676,\n        name: 'PaymentStreamLinkMinimumBoundary',\n        abbrName: 'LinkMinBndry',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the minimum or lower boundary for variance or strike determination.\\n\\nFor a variation swap stream all observations below this price level will be excluded from the variance calculation.\\n\\nFor a correlation swap stream the minimum boundary is a percentage of the strike price.',\n    },\n    {\n        id: 42677,\n        name: 'PaymentStreamLinkNumberOfDataSeries',\n        abbrName: 'LinkNumDataSeries',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Number of data series for a correlation swap. Normal market practice is that correlation data sets are drawn from geographic market areas, such as America, Europe and Asia Pacific. Each of these geographic areas will have its own data series to avoid contagion.',\n    },\n    {\n        id: 42678,\n        name: 'PaymentStreamVarianceUnadjustedCap',\n        abbrName: 'VarncCap',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates the scaling factor to be multiplied by the variance strike price thereby making variance cap applicable.',\n    },\n    {\n        id: 42679,\n        name: 'PaymentStreamRealizedVarianceMethod',\n        abbrName: 'RlzdVarncMeth',\n        type: 'PaymentStreamRealizedVarianceMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates which price to use to satisfy the boundary condition.',\n    },\n    {\n        id: 42680,\n        name: 'PaymentStreamDaysAdjustmentIndicator',\n        abbrName: 'DaysAdjmt',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the contract specifies that the notional should be scaled by the number of days in range divided by the estimate trading days or not. The number of \"days in range\" refers to the number of returns that contribute to the realized volatility.',\n    },\n    {\n        id: 42681,\n        name: 'PaymentStreamNearestExchangeContractRefID',\n        abbrName: 'ExchCtrctRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"References a contract listed on an exchange through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42682,\n        name: 'PaymentStreamVegaNotionalAmount',\n        abbrName: 'VegaNotlAmt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            '\"Vega Notional\" represents the approximate gain/loss at maturity for a 1% difference between RVol (realised volatility) and KVol (strike volatility). It does not necessarily represent the Vega risk of the trade.',\n    },\n    {\n        id: 42683,\n        name: 'NoPaymentStreamFormulas',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of formulas in the repeating group.',\n    },\n    {\n        id: 42684,\n        name: 'PaymentStreamFormula',\n        abbrName: 'Frmla',\n        type: 'XMLData',\n        lengthId: '43109',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description:\n            'Contains an XML representation of the formula. Defined for flexibility in choice of language (MathML, OpenMath or text).',\n    },\n    {\n        id: 42685,\n        name: 'PaymentStreamFormulaDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'A description of the math formula in PaymentStreamFormula(42684).',\n    },\n    {\n        id: 42686,\n        name: 'PaymentStreamFormulaCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The currency in which the formula amount is denominated. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42687,\n        name: 'PaymentStreamFormulaCurrencyDeterminationMethod',\n        abbrName: 'CcyDtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method according to which the formula amount currency is determined.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 42688,\n        name: 'PaymentStreamFormulaReferenceAmount',\n        abbrName: 'RefAmt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the reference amount when this term either corresponds to the standard ISDA Definition (either the 2002 Equity Definition for the Equity Amount, or the 2000 Definition for the Interest Amount), or refers to a term defined elsewhere in the swap document.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Payment_Amount_Relative_To for code list of reference amounts.',\n    },\n    {\n        id: 42689,\n        name: 'PaymentStubEndDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted stub end date.',\n    },\n    {\n        id: 42690,\n        name: 'PaymentStubEndDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The stub end date business day convention.',\n    },\n    {\n        id: 42691,\n        name: 'PaymentStubEndDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the stub end date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42692,\n        name: 'PaymentStubEndDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative stub end date offset.',\n    },\n    {\n        id: 42693,\n        name: 'PaymentStubEndDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative stub end date offset.',\n    },\n    {\n        id: 42694,\n        name: 'PaymentStubEndDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative stub end date offset.',\n    },\n    {\n        id: 42695,\n        name: 'PaymentStubEndDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted stub end date.',\n    },\n    {\n        id: 42696,\n        name: 'NoPaymentStubEndDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42697,\n        name: 'PaymentStubEndDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the payment stub end date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42698,\n        name: 'PaymentStubStartDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted stub start date.',\n    },\n    {\n        id: 42699,\n        name: 'PaymentStubStartDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The stub start date business day convention.',\n    },\n    {\n        id: 42700,\n        name: 'PaymentStubStartDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the stub start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42701,\n        name: 'PaymentStubStartDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative stub start date offset.',\n    },\n    {\n        id: 42702,\n        name: 'PaymentStubStartDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative stub start date offset.',\n    },\n    {\n        id: 42703,\n        name: 'PaymentStubStartDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative stub start date offset.',\n    },\n    {\n        id: 42704,\n        name: 'PaymentStubStartDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted stub start date.',\n    },\n    {\n        id: 42705,\n        name: 'NoPaymentStubStartDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42706,\n        name: 'PaymentStubStartDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the payment stub start date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42707,\n        name: 'ProvisionBreakFeeElection',\n        abbrName: 'BrkFeeElctn',\n        type: 'ProvisionBreakFeeElectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Type of fee elected for the break provision.',\n    },\n    {\n        id: 42708,\n        name: 'ProvisionBreakFeeRate',\n        abbrName: 'BrkFeeRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Break fee election rate when the break fee is proportional to the notional. A fee rate of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42709,\n        name: 'NoReturnRateDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate date repeating group.',\n    },\n    {\n        id: 42710,\n        name: 'ReturnRateDateMode',\n        abbrName: 'Mode',\n        type: 'ReturnRateDateModeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the valuation type applicable to the return rate date.',\n    },\n    {\n        id: 42711,\n        name: 'ReturnRateValuationDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the return rate valuation dates are relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42712,\n        name: 'ReturnRateValuationDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative return rate valuation date offset.',\n    },\n    {\n        id: 42713,\n        name: 'ReturnRateValuationDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative return rate valuation date offset.',\n    },\n    {\n        id: 42714,\n        name: 'ReturnRateValuationDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative return rate valuation date offset.',\n    },\n    {\n        id: 42715,\n        name: 'ReturnRateValuationStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The unadjusted start date for return rate valuation. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42716,\n        name: 'ReturnRateValuationStartDateRelativeTo',\n        abbrName: 'StartDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the return rate valuation start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42717,\n        name: 'ReturnRateValuationStartDateOffsetPeriod',\n        abbrName: 'StartDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative return rate valuation start date offset.',\n    },\n    {\n        id: 42718,\n        name: 'ReturnRateValuationStartDateOffsetUnit',\n        abbrName: 'StartDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative return rate valuation start date offset.',\n    },\n    {\n        id: 42719,\n        name: 'ReturnRateValuationStartDateOffsetDayType',\n        abbrName: 'StartDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative return rate valuation start date offset.',\n    },\n    {\n        id: 42720,\n        name: 'ReturnRateValuationStartDateAdjusted',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The adjusted start date for return rate valuation. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42721,\n        name: 'ReturnRateValuationEndDateUnadjusted',\n        abbrName: 'EndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The unadjusted end date for return rate valuation. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42722,\n        name: 'ReturnRateValuationEndDateRelativeTo',\n        abbrName: 'EndDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the return rate valuation end date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42723,\n        name: 'ReturnRateValuationEndDateOffsetPeriod',\n        abbrName: 'EndDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative return rate valuation end date offset.',\n    },\n    {\n        id: 42724,\n        name: 'ReturnRateValuationEndDateOffsetUnit',\n        abbrName: 'EndDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative return rate valuation end date offset.',\n    },\n    {\n        id: 42725,\n        name: 'ReturnRateValuationEndDateOffsetDayType',\n        abbrName: 'EndDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative return rate valuation end date offset.',\n    },\n    {\n        id: 42726,\n        name: 'ReturnRateValuationEndDateAdjusted',\n        abbrName: 'EndDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The adjusted end date for return rate valuation. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42727,\n        name: 'ReturnRateValuationFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the frequency at which return rate valuation dates occur.',\n    },\n    {\n        id: 42728,\n        name: 'ReturnRateValuationFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the frequency at which return rate valuation dates occur.',\n    },\n    {\n        id: 42729,\n        name: 'ReturnRateValuationFrequencyRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The convention for determining the sequence of return rate valuation dates. It is used in conjunction with a specified frequency.',\n    },\n    {\n        id: 42730,\n        name: 'ReturnRateValuationDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The return rate valuation dates business day convention.',\n    },\n    {\n        id: 42731,\n        name: 'NoReturnRateFXConversions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate FX conversion repeating group.',\n    },\n    {\n        id: 42732,\n        name: 'ReturnRateFXCurrencySymbol',\n        abbrName: 'CcySym',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the currency pair for the FX conversion expressed using the CCY1/CCY2 convention. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42733,\n        name: 'ReturnRateFXRate',\n        abbrName: 'FxRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The rate of exchange between the two currencies specified in ReturnRateFXCurrencySymbol(42732).',\n    },\n    {\n        id: 42734,\n        name: 'ReturnRateFXRateCalc',\n        abbrName: 'FxRtCalc',\n        type: 'SettlCurrFxRateCalcCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies whether ReturnRateFXRate(42733) should be multiplied or divided.',\n    },\n    {\n        id: 42735,\n        name: 'NoReturnRates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate repeating group.',\n    },\n    {\n        id: 42736,\n        name: 'ReturnRatePriceSequence',\n        abbrName: 'PxSeq',\n        type: 'ReturnRatePriceSequenceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of price sequence of the return rate.',\n    },\n    {\n        id: 42737,\n        name: 'ReturnRateCommissionBasis',\n        abbrName: 'CommBasis',\n        type: 'CommTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the basis or unit used to calculate the commission.',\n    },\n    {\n        id: 42738,\n        name: 'ReturnRateCommissionAmount',\n        abbrName: 'CommAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The commission amount.',\n    },\n    {\n        id: 42739,\n        name: 'ReturnRateCommissionCurrency',\n        abbrName: 'CommCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the currency the commission amount is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42740,\n        name: 'ReturnRateTotalCommissionPerTrade',\n        abbrName: 'TotCommPerTrd',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The total commission per trade.',\n    },\n    {\n        id: 42741,\n        name: 'ReturnRateDeterminationMethod',\n        abbrName: 'DtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method by which the underlier prices are determined.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 42742,\n        name: 'ReturnRateAmountRelativeTo',\n        abbrName: 'AmtReltv',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the reference amount when the return rate amount is relative to another amount in the trade.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Payment_Amount_Relative_To for code list of relative amounts.',\n    },\n    {\n        id: 42743,\n        name: 'ReturnRateQuoteMeasureType',\n        abbrName: 'QteTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"Specifies the type of the measure applied to the return rate's asset, e.g. valuation, sensitivity risk. This could be an NPV, a cash flow, a clean price, etc.\\n\\nSee http://www.fpml.org/coding-scheme/asset-measure for values.\",\n    },\n    {\n        id: 42744,\n        name: 'ReturnRateQuoteUnits',\n        abbrName: 'QteUnit',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the units that the measure is expressed in. If not specified, the default is a price/value in currency units.\\n\\nSee http://www.fpml.org/coding-scheme/price-quote-units for values.',\n    },\n    {\n        id: 42745,\n        name: 'ReturnRateQuoteMethod',\n        abbrName: 'QteMeth',\n        type: 'CashSettlQuoteMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of quote used to determine the return rate of the swap.',\n    },\n    {\n        id: 42746,\n        name: 'ReturnRateQuoteCurrency',\n        abbrName: 'QteCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the currency the return rate quote is denominated in. Uses ISO 4217 Currency Code.',\n    },\n    {\n        id: 42747,\n        name: 'ReturnRateQuoteCurrencyType',\n        abbrName: 'QteCcyTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the type of currency, e.g. settlement currency, base currency, etc., that the quote is reported in.\\n\\nSee http://www.fpml.org/coding-scheme/reporting-currency-type for values.',\n    },\n    {\n        id: 42748,\n        name: 'ReturnRateQuoteTimeType',\n        abbrName: 'QteTmTyp',\n        type: 'ReturnRateQuoteTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies how or the timing when the quote is to be obtained.',\n    },\n    {\n        id: 42749,\n        name: 'ReturnRateQuoteTime',\n        abbrName: 'QteTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The time when the quote is to be generated.',\n    },\n    {\n        id: 42750,\n        name: 'ReturnRateQuoteDate',\n        abbrName: 'QteDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The date when the quote is to be generated.',\n    },\n    {\n        id: 42751,\n        name: 'ReturnRateQuoteExpirationTime',\n        abbrName: 'QteExpTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The time when the quote ceases to be valid.',\n    },\n    {\n        id: 42752,\n        name: 'ReturnRateQuoteBusinessCenter',\n        abbrName: 'QteBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for adjustments associated with ReturnRateQuoteTimeType(42748) or ReturnRateQuoteTime(42749) and ReturnRateQuoteDate(42750), e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42753,\n        name: 'ReturnRateQuoteExchange',\n        abbrName: 'QteExch',\n        type: 'Exchange',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the exchange (e.g. stock or listed futures/options exchange) from which the quote is obtained.',\n    },\n    {\n        id: 42754,\n        name: 'ReturnRateQuotePricingModel',\n        abbrName: 'QteModel',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the pricing model used to evaluate the underlying asset price.\\n\\nSee http://www.fpml.org/coding-scheme/pricing-model for values.',\n    },\n    {\n        id: 42755,\n        name: 'ReturnRateCashFlowType',\n        abbrName: 'CshFlow',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the type of cash flows, e.g. coupon payment, premium fee, settlement fee, etc.\\n\\nSee http://www.fpml.org/coding-scheme/cashflow-type for values.',\n    },\n    {\n        id: 42756,\n        name: 'ReturnRateValuationTimeType',\n        abbrName: 'ValTmTyp',\n        type: 'ReturnRateQuoteTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the timing at which the calculation agent values the underlying.',\n    },\n    {\n        id: 42757,\n        name: 'ReturnRateValuationTime',\n        abbrName: 'ValTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The time at which the calculation agent values the underlying asset.',\n    },\n    {\n        id: 42758,\n        name: 'ReturnRateValuationTimeBusinessCenter',\n        abbrName: 'ValTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for adjustments associated with ReturnRateValuationTimeType(42756) or ReturnRateValuationTime(42757), e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42759,\n        name: 'ReturnRateValuationPriceOption',\n        abbrName: 'ValPxOpt',\n        type: 'ReturnRateValuationPriceOptionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether an ISDA price option applies, and if applicable which type of price.',\n    },\n    {\n        id: 42760,\n        name: 'ReturnRateFinalPriceFallback',\n        abbrName: 'FnlPxFallbck',\n        type: 'ComplexEventPVFinalPriceElectionFallbackCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the fallback provision for the hedging party in the determination of the final price.',\n    },\n    {\n        id: 42761,\n        name: 'NoReturnRateInformationSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate information source repeating group.',\n    },\n    {\n        id: 42762,\n        name: 'ReturnRateInformationSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Identifies the source of rate information. For FX the references source to be used for the FX spot rate.',\n    },\n    {\n        id: 42763,\n        name: 'ReturnRateReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Identifies the reference \"page\" from the rate source.\\n\\nFor FX, the reference page to the spot rate to be used for the reference FX spot rate.\\n\\nWhen ReturnRateInformationSource(42762) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions.\\n\\nSee: http://www.fpml.org/coding-scheme/settlement-rate-option',\n    },\n    {\n        id: 42764,\n        name: 'ReturnRateReferencePageHeading',\n        abbrName: 'RefHdng',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Identifies the page heading from the rate source.',\n    },\n    {\n        id: 42765,\n        name: 'NoReturnRatePrices',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate price repeating group.',\n    },\n    {\n        id: 42766,\n        name: 'ReturnRatePriceBasis',\n        abbrName: 'PxBasis',\n        type: 'ReturnRatePriceBasisCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The basis of the return price.',\n    },\n    {\n        id: 42767,\n        name: 'ReturnRatePrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the price of the underlying swap asset.',\n    },\n    {\n        id: 42768,\n        name: 'ReturnRatePriceCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the currency of the price of the underlying swap asset. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42769,\n        name: 'ReturnRatePriceType',\n        abbrName: 'PxTyp',\n        type: 'ReturnRatePriceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies whether the ReturnRatePrice(42767) is expressed in absolute or relative terms.',\n    },\n    {\n        id: 42770,\n        name: 'NoReturnRateValuationDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate valuation date business center repeating group.',\n    },\n    {\n        id: 42771,\n        name: 'ReturnRateValuationDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the return rate valuation unadjusted or relative dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42772,\n        name: 'NoReturnRateValuationDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate valuation date repeating group.',\n    },\n    {\n        id: 42773,\n        name: 'ReturnRateValuationDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The return rate valuation date. Type of date is specified in ReturnRateValuationDateType(42774).',\n    },\n    {\n        id: 42774,\n        name: 'ReturnRateValuationDateType',\n        abbrName: 'Typ',\n        type: 'NonDeliverableFixingDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of return rate valuation date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 42775,\n        name: 'NoSettlMethodElectionDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42776,\n        name: 'SettlMethodElectionDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the settlement method election unadjusted or relative date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42777,\n        name: 'SettlMethodElectionDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted settlement method election date.',\n    },\n    {\n        id: 42778,\n        name: 'SettlMethodElectionDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The settlement method election date adjustment business day convention.',\n    },\n    {\n        id: 42779,\n        name: 'SettlMethodElectionDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the settlement method election date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42780,\n        name: 'SettlMethodElectionDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative settlement method election date offset.',\n    },\n    {\n        id: 42781,\n        name: 'SettlMethodElectionDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative settlement method election date offset.',\n    },\n    {\n        id: 42782,\n        name: 'SettlMethodElectionDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative settlement method election date offset.',\n    },\n    {\n        id: 42783,\n        name: 'SettlMethodElectionDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted settlement method election date.',\n    },\n    {\n        id: 42784,\n        name: 'StreamVersion',\n        abbrName: 'Ver',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The stream version identifier when there have been modifications to the contract over time. Helps signal when there are embedded changes.',\n    },\n    {\n        id: 42785,\n        name: 'StreamVersionEffectiveDate',\n        abbrName: 'VerEfctvDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The effective date of the StreamVersion(42784).',\n    },\n    {\n        id: 42786,\n        name: 'StreamNotionalDeterminationMethod',\n        abbrName: 'NotlDtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method for determining the floating notional value for equity swaps.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 42787,\n        name: 'StreamNotionalAdjustments',\n        abbrName: 'NotlAdjmts',\n        type: 'StreamNotionalAdjustmentsCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'For equity swaps this specifies the conditions that govern the adjustment to the number of units of the swap.',\n    },\n    {\n        id: 42788,\n        name: 'NoUnderlyingCashSettlDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42789,\n        name: 'UnderlyingCashSettlDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the cash settlement unadjusted or relative date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42790,\n        name: 'UnderlyingCashSettlDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted cash settlement date.',\n    },\n    {\n        id: 42791,\n        name: 'UnderlyingCashSettlDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"The business day convention used to adjust the cash settlement provision's date. Used only to override the business day convention defined in the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42792,\n        name: 'UnderlyingCashSettlDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the cash settlement date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42793,\n        name: 'UnderlyingCashSettlDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative cash settlement date offset.',\n    },\n    {\n        id: 42794,\n        name: 'UnderlyingCashSettlDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative cash settlement date offset.',\n    },\n    {\n        id: 42795,\n        name: 'UnderlyingCashSettlDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative cash settlement date offset.',\n    },\n    {\n        id: 42796,\n        name: 'UnderlyingCashSettlDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted cash settlement date.',\n    },\n    {\n        id: 42797,\n        name: 'UnderlyingCashSettlPriceSource',\n        abbrName: 'PxSrc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The source from which the settlement price is to be obtained.\\n\\nSee http://www.fpml.org/coding-scheme/settlement-price-source for values.',\n    },\n    {\n        id: 42798,\n        name: 'UnderlyingCashSettlPriceDefault',\n        abbrName: 'PxDflt',\n        type: 'CashSettlPriceDefaultCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The default election for determining settlement price.',\n    },\n    {\n        id: 42799,\n        name: 'NoUnderlyingDividendAccrualPaymentDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of entries in the UnderlyingDividendAccrualPaymentDateBusinessCenterGrp.',\n    },\n    {\n        id: 42800,\n        name: 'UnderlyingDividendAccrualPaymentDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the instrument\\'s dividend accrual payment date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42801,\n        name: 'UnderlyingDividendFloatingRateIndex',\n        abbrName: 'Ndx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The dividend accrual floating rate index.',\n    },\n    {\n        id: 42802,\n        name: 'UnderlyingDividendFloatingRateIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the dividend accrual floating rate index curve.',\n    },\n    {\n        id: 42803,\n        name: 'UnderlyingDividendFloatingRateIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the dividend accrual floating rate index curve period.',\n    },\n    {\n        id: 42804,\n        name: 'UnderlyingDividendFloatingRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'A rate multiplier to apply to the floating rate. The multiplier can be less than or greater than 1 (one). This should only be included if the multiplier is not equal to 1 (one) for the term of the contract.',\n    },\n    {\n        id: 42805,\n        name: 'UnderlyingDividendFloatingRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The basis points spread from the index specified in UnderlyingDividendFloatingRateIndex(42801).',\n    },\n    {\n        id: 42806,\n        name: 'UnderlyingDividendFloatingRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 42807,\n        name: 'UnderlyingDividendFloatingRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the yield calculation treatment for the index.',\n    },\n    {\n        id: 42808,\n        name: 'UnderlyingDividendCapRate',\n        abbrName: 'CapRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The cap rate, if any, which applies to the floating rate. It is only required where the floating rate is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42809,\n        name: 'UnderlyingDividendCapRateBuySide',\n        abbrName: 'CapRtBuy',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the buyer of the cap rate option through its trade side.',\n    },\n    {\n        id: 42810,\n        name: 'UnderlyingDividendCapRateSellSide',\n        abbrName: 'CapRtSell',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the seller of the cap rate option through its trade side.',\n    },\n    {\n        id: 42811,\n        name: 'UnderlyingDividendFloorRate',\n        abbrName: 'FlrRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The floor rate, if any, which applies to the floating rate. The floor rate (strike) is only required where the floating rate is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as \"0.05\".',\n    },\n    {\n        id: 42812,\n        name: 'UnderlyingDividendFloorRateBuySide',\n        abbrName: 'FlrRtBuy',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the buyer of the floor rate option through its trade side.',\n    },\n    {\n        id: 42813,\n        name: 'UnderlyingDividendFloorRateSellSide',\n        abbrName: 'FlrRtSell',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the seller of the floor rate option through its trade side.',\n    },\n    {\n        id: 42814,\n        name: 'UnderlyingDividendInitialRate',\n        abbrName: 'InitRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The initial floating rate reset agreed between the principal parties involved in the trade. This is assumed to be the first required reset rate for the first regular calculation period. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as \"0.05\".',\n    },\n    {\n        id: 42815,\n        name: 'UnderlyingDividendFinalRateRoundingDirection',\n        abbrName: 'FnlRtRndDirctn',\n        type: 'RoundingDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the rounding direction of the final rate.',\n    },\n    {\n        id: 42816,\n        name: 'UnderlyingDividendFinalRatePrecision',\n        abbrName: 'FnlRtPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the rounding precision of the final rate in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7.',\n    },\n    {\n        id: 42817,\n        name: 'UnderlyingDividendAveragingMethod',\n        abbrName: 'AvgngMeth',\n        type: 'PaymentStreamAveragingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'When averaging is applicable, used to specify whether a weighted or unweighted average method of calculation is to be used.',\n    },\n    {\n        id: 42818,\n        name: 'UnderlyingDividendNegativeRateTreatment',\n        abbrName: 'NegtvRtTrtmt',\n        type: 'PaymentStreamNegativeRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate).',\n    },\n    {\n        id: 42819,\n        name: 'UnderlyingDividendAccrualPaymentDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the accrual payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42820,\n        name: 'UnderlyingDividendAccrualPaymentDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative accrual payment date offset.',\n    },\n    {\n        id: 42821,\n        name: 'UnderlyingDividendAccrualPaymentDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative accrual payment date offset.',\n    },\n    {\n        id: 42822,\n        name: 'UnderlyingDividendAccrualPaymentDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative accrual payment date offset.',\n    },\n    {\n        id: 42823,\n        name: 'UnderlyingDividendAccrualPaymentDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted accrual payment date.',\n    },\n    {\n        id: 42824,\n        name: 'UnderlyingDividendAccrualPaymentDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Accrual payment date adjustment business day convention.',\n    },\n    {\n        id: 42825,\n        name: 'UnderlyingDividendAccrualPaymentDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted accrual payment date.',\n    },\n    {\n        id: 42826,\n        name: 'UnderlyingDividendReinvestmentIndicator',\n        abbrName: 'RnvstmntInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether the dividend will be reinvested.',\n    },\n    {\n        id: 42827,\n        name: 'UnderlyingDividendEntitlementEvent',\n        abbrName: 'EntlmntEvnt',\n        type: 'DividendEntitlementEventCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines the contract event which the receiver of the derivative is entitled to the dividend.',\n    },\n    {\n        id: 42828,\n        name: 'UnderlyingDividendAmountType',\n        abbrName: 'AmtTyp',\n        type: 'DividendAmountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates how the gross cash dividend amount per share is determined.',\n    },\n    {\n        id: 42829,\n        name: 'UnderlyingDividendUnderlierRefID',\n        abbrName: 'UndlrRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in a separate instance of the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42830,\n        name: 'UnderlyingExtraordinaryDividendPartySide',\n        abbrName: 'ExtrordSide',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Reference to the party through its side in the trade who makes the determination whether dividends are extraordinary in relation to normal levels.',\n    },\n    {\n        id: 42831,\n        name: 'UnderlyingExtraordinaryDividendAmountType',\n        abbrName: 'ExtrordAmtTyp',\n        type: 'DividendAmountTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates how the extraordinary gross cash dividend per share is determined.',\n    },\n    {\n        id: 42832,\n        name: 'UnderlyingExtraordinaryDividendCurrency',\n        abbrName: 'ExtrordCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The currency in which the excess dividend is denominated. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42833,\n        name: 'UnderlyingExtraordinaryDividendDeterminationMethod',\n        abbrName: 'ExtrordDtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method in which the excess amount is determined.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 42834,\n        name: 'UnderlyingDividendAccrualFixedRate',\n        abbrName: 'AcrlFixedRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The dividend accrual fixed rate per annum expressed as a decimal.\\n\\nA value of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42835,\n        name: 'UnderlyingDividendCompoundingMethod',\n        abbrName: 'CmpndgMeth',\n        type: 'PaymentStreamCompoundingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The compounding method to be used when more than one dividend period contributes to a single payment.',\n    },\n    {\n        id: 42836,\n        name: 'UnderlyingDividendNumOfIndexUnits',\n        abbrName: 'NumNdxUnits',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The number of index units applicable to dividends.',\n    },\n    {\n        id: 42837,\n        name: 'UnderlyingDividendCashPercentage',\n        abbrName: 'CshPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Declared cash dividend percentage.\\n\\nA value of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42838,\n        name: 'UnderlyingDividendCashEquivalentPercentage',\n        abbrName: 'CshEqvlntPctage',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Declared cash-equivalent dividend percentage. A value of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42839,\n        name: 'UnderlyingNonCashDividendTreatment',\n        abbrName: 'NonCshTrtmt',\n        type: 'NonCashDividendTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines the treatment of non-cash dividends.',\n    },\n    {\n        id: 42840,\n        name: 'UnderlyingDividendComposition',\n        abbrName: 'Cmpstn',\n        type: 'DividendCompositionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines how the composition of dividends is to be determined.',\n    },\n    {\n        id: 42841,\n        name: 'UnderlyingSpecialDividendsIndicator',\n        abbrName: 'SpeclDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether special dividends are applicable.',\n    },\n    {\n        id: 42842,\n        name: 'UnderlyingMaterialDividendsIndicator',\n        abbrName: 'MtrlDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether material non-cash dividends are applicable.',\n    },\n    {\n        id: 42843,\n        name: 'UnderlyingOptionsExchangeDividendsIndicator',\n        abbrName: 'ExchDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether option exchange dividends are applicable.',\n    },\n    {\n        id: 42844,\n        name: 'UnderlyingAdditionalDividendsIndicator',\n        abbrName: 'AddtnlDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether additional dividends are applicable.',\n    },\n    {\n        id: 42845,\n        name: 'UnderlyingAllDividendsIndicator',\n        abbrName: 'AllDividendInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"Represents the European Master Confirmation value of 'All Dividends' which, when applicable, signifies that, for a given Ex-Date, the daily observed share price for that day is adjusted (reduced) by the cash dividend and/or the cash value of any non-cash dividend per share (including extraordinary dividends) declared by the issuer.\",\n    },\n    {\n        id: 42846,\n        name: 'UnderlyingDividendFXTriggerDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the FX trigger date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42847,\n        name: 'UnderlyingDividendFXTriggerDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative FX trigger date offset.',\n    },\n    {\n        id: 42848,\n        name: 'UnderlyingDividendFXTriggerDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative FX trigger date offset.',\n    },\n    {\n        id: 42849,\n        name: 'UnderlyingDividendFXTriggerDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative FX trigger date offset.',\n    },\n    {\n        id: 42850,\n        name: 'UnderlyingDividendFXTriggerDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted FX trigger date.',\n    },\n    {\n        id: 42851,\n        name: 'UnderlyingDividendFXTriggerDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The business day convention used for the FX trigger date adjustment.',\n    },\n    {\n        id: 42852,\n        name: 'UnderlyingDividendFXTriggerDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted FX trigger date.',\n    },\n    {\n        id: 42853,\n        name: 'NoUnderlyingDividendFXTriggerDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of entries in the UnderlyingDividendFXTriggerDateBusinessCenterGrp.',\n    },\n    {\n        id: 42854,\n        name: 'UnderlyingDividendFXTriggerDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the instrument\\'s FX trigger date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42855,\n        name: 'NoUnderlyingDividendPayments',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of entries in the repeating group.',\n    },\n    {\n        id: 42856,\n        name: 'UnderlyingDividendPaymentDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the date that the dividend or coupon payment is due.',\n    },\n    {\n        id: 42857,\n        name: 'UnderlyingDividendPaymentAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The amount of the dividend or coupon payment.',\n    },\n    {\n        id: 42858,\n        name: 'UnderlyingDividendPaymentCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the currency the UnderlyingDividendPaymentAmount(42857) is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42859,\n        name: 'UnderlyingDividendAccruedInterest',\n        abbrName: 'AcrdInt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Accrued interest on the dividend or coupon payment.',\n    },\n    {\n        id: 42860,\n        name: 'UnderlyingDividendPayoutRatio',\n        abbrName: 'Ratio',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the actual dividend payout ratio associated with the equity or bond underlier.',\n    },\n    {\n        id: 42861,\n        name: 'UnderlyingDividendPayoutConditions',\n        abbrName: 'Conds',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the dividend payout conditions that will be applied in the case where the actual ratio is not known, typically because of regulatory or legal uncertainties.',\n    },\n    {\n        id: 42862,\n        name: 'NoUnderlyingDividendPeriods',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of entries in the UnderlyingDividendPeriodGrp component.',\n    },\n    {\n        id: 42863,\n        name: 'UnderlyingDividendPeriodSequence',\n        abbrName: 'Seq',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines the ordinal dividend period. E.g. 1 = First period, 2 = Second period, etc.',\n    },\n    {\n        id: 42864,\n        name: 'UnderlyingDividendPeriodStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted date on which the dividend period will begin.',\n    },\n    {\n        id: 42865,\n        name: 'UnderlyingDividendPeriodEndDateUnadjusted',\n        abbrName: 'EndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted date on which the dividend period will end.',\n    },\n    {\n        id: 42866,\n        name: 'UnderlyingDividendPeriodUnderlierRefID',\n        abbrName: 'UndlrRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42867,\n        name: 'UnderlyingDividendPeriodStrikePrice',\n        abbrName: 'StrkPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the fixed strike price of the dividend period.',\n    },\n    {\n        id: 42868,\n        name: 'UnderlyingDividendPeriodBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The dividend period dates business day convention.',\n    },\n    {\n        id: 42869,\n        name: 'UnderlyingDividendPeriodValuationDateUnadjusted',\n        abbrName: 'ValDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted dividend period valuation date.',\n    },\n    {\n        id: 42870,\n        name: 'UnderlyingDividendPeriodValuationDateRelativeTo',\n        abbrName: 'ValDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the dividend period valuation date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42871,\n        name: 'UnderlyingDividendPeriodValuationDateOffsetPeriod',\n        abbrName: 'ValDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative dividend period valuation date offset.',\n    },\n    {\n        id: 42872,\n        name: 'UnderlyingDividendPeriodValuationDateOffsetUnit',\n        abbrName: 'ValDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative dividend period valuation date offset.',\n    },\n    {\n        id: 42873,\n        name: 'UnderlyingDividendPeriodValuationDateOffsetDayType',\n        abbrName: 'ValDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative dividend period valuation date offset.',\n    },\n    {\n        id: 42874,\n        name: 'UnderlyingDividendPeriodValuationDateAdjusted',\n        abbrName: 'ValDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted dividend period valuation date.',\n    },\n    {\n        id: 42875,\n        name: 'UnderlyingDividendPeriodPaymentDateUnadjusted',\n        abbrName: 'PmtDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted dividend period payment date.',\n    },\n    {\n        id: 42876,\n        name: 'UnderlyingDividendPeriodPaymentDateRelativeTo',\n        abbrName: 'PmtDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the dividend period payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42877,\n        name: 'UnderlyingDividendPeriodPaymentDateOffsetPeriod',\n        abbrName: 'PmtDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative dividend period payment date offset.',\n    },\n    {\n        id: 42878,\n        name: 'UnderlyingDividendPeriodPaymentDateOffsetUnit',\n        abbrName: 'PmtDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative dividend period payment date offset.',\n    },\n    {\n        id: 42879,\n        name: 'UnderlyingDividendPeriodPaymentDateOffsetDayType',\n        abbrName: 'PmtDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative dividend period payment date offset.',\n    },\n    {\n        id: 42880,\n        name: 'UnderlyingDividendPeriodPaymentDateAdjusted',\n        abbrName: 'PmtDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted dividend period payment date.',\n    },\n    {\n        id: 42881,\n        name: 'UnderlyingDividendPeriodXID',\n        abbrName: 'XID',\n        type: 'XID',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Identifier for linking this stream dividend period to an underlier through an instance of RelatedInstrumentGrp.',\n    },\n    {\n        id: 42882,\n        name: 'NoUnderlyingDividendPeriodBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of entries in UnderlyingDividendPeriodBusinessCenterGrp.',\n    },\n    {\n        id: 42883,\n        name: 'UnderlyingDividendPeriodBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the instrument\\'s dividend period date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42884,\n        name: 'NoUnderlyingExtraordinaryEvents',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of extraordinary events in the repeating group.',\n    },\n    {\n        id: 42885,\n        name: 'UnderlyingExtraordinaryEventType',\n        abbrName: 'Typ',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Identifies the type of extraordinary or disruptive event applicable to UnderlyingExtraordinaryEventType(42885).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Extraordinary_Event_Type for code list of extraordinary event types and values.',\n    },\n    {\n        id: 42886,\n        name: 'UnderlyingExtraordinaryEventValue',\n        abbrName: 'Val',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The extraordinary or disruptive event value appropriate to UnderlyingExtraordinaryEventType(42885).\\n\\nSee http://www.fixtradingcommunity.org/codelists#Extraordinary_Event_Type for code list of extraordinary event types and values.',\n    },\n    {\n        id: 42887,\n        name: 'UnderlyingSettlMethodElectingPartySide',\n        abbrName: 'SettlMethElctngSide',\n        type: 'PaymentPaySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Side value of the party electing the settlement method.',\n    },\n    {\n        id: 42888,\n        name: 'UnderlyingMakeWholeDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The date through which the option cannot be exercised without penalty.',\n    },\n    {\n        id: 42889,\n        name: 'UnderlyingMakeWholeAmount',\n        abbrName: 'Amt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Amount to be paid by the buyer of the option if the option is exercised prior to the UnderlyingMakeWholeDate(42888).',\n    },\n    {\n        id: 42890,\n        name: 'UnderlyingMakeWholeBenchmarkCurveName',\n        abbrName: 'Name',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Identifies the benchmark floating rate index.',\n    },\n    {\n        id: 42891,\n        name: 'UnderlyingMakeWholeBenchmarkCurvePoint',\n        abbrName: 'Point',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The point on the floating rate index curve.\\n\\nSample values:\\n\\nM = combination of a number between 1-12 and an \"M\" for month, e.g. 3M\\n\\nY = combination of number between 1-100 and a \"Y\" for year, e.g. 10Y\\n\\n10Y-OLD = see above, then add \"-OLD\" when appropriate\\n\\nINTERPOLATED = the point is mathematically derived\\n\\n2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon.',\n    },\n    {\n        id: 42892,\n        name: 'UnderlyingMakeWholeRecallSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Spread over the floating rate index.',\n    },\n    {\n        id: 42893,\n        name: 'UnderlyingMakeWholeBenchmarkQuote',\n        abbrName: 'Qte',\n        type: 'StrikeIndexQuoteCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The quote side of the benchmark to be used for calculating the \"make whole\" amount.',\n    },\n    {\n        id: 42894,\n        name: 'UnderlyingMakeWholeInterpolationMethod',\n        abbrName: 'IntrpltnMeth',\n        type: 'PaymentStreamInflationInterpolationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The method used when calculating the \"make whole\" amount. The most common is linear method.',\n    },\n    {\n        id: 42895,\n        name: 'UnderlyingPaymentStreamCashSettlIndicator',\n        abbrName: 'CshSettlInd',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether cash settlement is applicable.',\n    },\n    {\n        id: 42896,\n        name: 'UnderlyingPaymentStreamCompoundingXIDRef',\n        abbrName: 'CmpndgXIDRef',\n        type: 'XIDREF',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the stream which details the compounding fixed or floating rate.',\n    },\n    {\n        id: 42897,\n        name: 'UnderlyingPaymentStreamCompoundingSpread',\n        abbrName: 'CmpndgSpread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The spread to be used for compounding. Used in scenarios where the interest payment is based on a compounding formula that uses a compounding spread in addition to the regular spread.',\n    },\n    {\n        id: 42898,\n        name: 'UnderlyingPaymentStreamInterpolationMethod',\n        abbrName: 'IntrpltnMeth',\n        type: 'PaymentStreamInflationInterpolationMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The method used when calculating the index rate from multiple points on the curve. The most common is linear method.',\n    },\n    {\n        id: 42899,\n        name: 'UnderlyingPaymentStreamInterpolationPeriod',\n        abbrName: 'IntrpltnPeriod',\n        type: 'PaymentStreamInterpolationPeriodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Defines applicable periods for interpolation.',\n    },\n    {\n        id: 42900,\n        name: 'UnderlyingPaymentStreamCompoundingFixedRate',\n        abbrName: 'CmpndgFixedRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The compounding fixed rate applicable to the payment stream.',\n    },\n    {\n        id: 42901,\n        name: 'NoUnderlyingPaymentStreamCompoundingDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of dates in the repeating group.',\n    },\n    {\n        id: 42902,\n        name: 'UnderlyingPaymentStreamCompoundingDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The compounding date. Type of date is specified in UnderlyingPaymentStreamCompoundingDateType(42903).',\n    },\n    {\n        id: 42903,\n        name: 'UnderlyingPaymentStreamCompoundingDateType',\n        abbrName: 'Typ',\n        type: 'NonDeliverableFixingDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of payment compounding date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 42904,\n        name: 'UnderlyingPaymentStreamCompoundingDatesBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The compounding dates business day convention.',\n    },\n    {\n        id: 42905,\n        name: 'UnderlyingPaymentStreamCompoundingDatesRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the compounding dates are relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42906,\n        name: 'UnderlyingPaymentStreamCompoundingDatesOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative compounding date offset.',\n    },\n    {\n        id: 42907,\n        name: 'UnderlyingPaymentStreamCompoundingDatesOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative compounding date offset.',\n    },\n    {\n        id: 42908,\n        name: 'UnderlyingPaymentStreamCompoundingDatesOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative compounding date offset.',\n    },\n    {\n        id: 42909,\n        name: 'UnderlyingPaymentStreamCompoundingPeriodSkip',\n        abbrName: 'Skip',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The number of periods in the \"RelativeTo\" schedule that are between each date in the compounding schedule. A skip of 2 would mean that compounding dates are relative to every second date in the \"RelativeTo\" schedule. If present this should have a value greater than 1.',\n    },\n    {\n        id: 42910,\n        name: 'UnderlyingPaymentStreamCompoundingFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the frequency at which compounding dates occur.',\n    },\n    {\n        id: 42911,\n        name: 'UnderlyingPaymentStreamCompoundingFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the frequency at which compounding dates occur.',\n    },\n    {\n        id: 42912,\n        name: 'UnderlyingPaymentStreamCompoundingRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The convention for determining the sequence of compounding dates. It is used in conjunction with a specified frequency.',\n    },\n    {\n        id: 42913,\n        name: 'UnderlyingPaymentStreamBoundsFirstDateUnadjusted',\n        abbrName: 'FirstDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The unadjusted first date of the compounding schedule. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42914,\n        name: 'UnderlyingPaymentStreamBoundsLastDateUnadjusted',\n        abbrName: 'LastDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The unadjusted last date of the compounding schedule. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 42915,\n        name: 'NoUnderlyingPaymentStreamCompoundingDatesBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42916,\n        name: 'UnderlyingPaymentStreamCompoundingDatesBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the payment stream compounding dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42917,\n        name: 'UnderlyingPaymentStreamCompoundingEndDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted compounding end date.',\n    },\n    {\n        id: 42918,\n        name: 'UnderlyingPaymentStreamCompoundingEndDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the compounding end date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42919,\n        name: 'UnderlyingPaymentStreamCompoundingEndDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative compounding end date offset.',\n    },\n    {\n        id: 42920,\n        name: 'UnderlyingPaymentStreamCompoundingEndDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative compounding end date offset.',\n    },\n    {\n        id: 42921,\n        name: 'UnderlyingPaymentStreamCompoundingEndDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative compounding end date offset.',\n    },\n    {\n        id: 42922,\n        name: 'UnderlyingPaymentStreamCompoundingEndDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted compounding end date.',\n    },\n    {\n        id: 42923,\n        name: 'UnderlyingPaymentStreamCompoundingRateIndex',\n        abbrName: 'Ndx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: \"The payment stream's compounding floating rate index.\",\n    },\n    {\n        id: 42924,\n        name: 'UnderlyingPaymentStreamCompoundingRateIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: \"Time unit multiplier for the payment stream's compounding floating rate index curve period.\",\n    },\n    {\n        id: 42925,\n        name: 'UnderlyingPaymentStreamCompoundingRateIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: \"Time unit associated with the payment stream's compounding floating rate index curve period.\",\n    },\n    {\n        id: 42926,\n        name: 'UnderlyingPaymentStreamCompoundingRateMultiplier',\n        abbrName: 'RtMult',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'A rate multiplier to apply to the compounding floating rate. The multiplier can be less than or greater than 1 (one). This should only be included if the multiplier is not equal to 1 (one) for the term of the stream.',\n    },\n    {\n        id: 42927,\n        name: 'UnderlyingPaymentStreamCompoundingRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The basis points spread from the index specified in UnderlyingPaymentStreamCompoundingRateIndex(42923).',\n    },\n    {\n        id: 42928,\n        name: 'UnderlyingPaymentStreamCompoundingRateSpreadPositionType',\n        abbrName: 'SpreadPosTyp',\n        type: 'PaymentStreamRateSpreadPositionTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Identifies whether the rate spread is applied to a long or short position.',\n    },\n    {\n        id: 42929,\n        name: 'UnderlyingPaymentStreamCompoundingRateTreatment',\n        abbrName: 'RtTrtmt',\n        type: 'PaymentStreamRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the yield calculation treatment for the index.',\n    },\n    {\n        id: 42930,\n        name: 'UnderlyingPaymentStreamCompoundingCapRate',\n        abbrName: 'CapRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The cap rate, if any, which applies to the compounding floating rate. It is only required where the compounding floating rate on a swap stream is capped at a certain level. The cap rate is assumed to be exclusive of any spread and is a per annum rate, expressed as a decimal. A cap rate of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 42931,\n        name: 'UnderlyingPaymentStreamCompoundingCapRateBuySide',\n        abbrName: 'CapRtBuy',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the buyer of the compounding cap rate option through its trade side.',\n    },\n    {\n        id: 42932,\n        name: 'UnderlyingPaymentStreamCompoundingCapRateSellSide',\n        abbrName: 'CapRtSell',\n        type: 'PaymentStreamCapRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the seller of the compounding cap rate option through its trade side.',\n    },\n    {\n        id: 42933,\n        name: 'UnderlyingPaymentStreamCompoundingFloorRate',\n        abbrName: 'FlrRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The floor rate, if any, which applies to the compounding floating rate. The floor rate (strike) is only required where the compounding floating rate on a swap stream is floored at a certain strike level. The floor rate is assumed to be exclusive of any spread and is a per annum rate. The rate is expressed as a decimal, e.g. 5% is represented as \"0.05\".',\n    },\n    {\n        id: 42934,\n        name: 'UnderlyingPaymentStreamCompoundingFloorRateBuySide',\n        abbrName: 'FlrRtBuy',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the buyer of the compounding floor rate option through its trade side.',\n    },\n    {\n        id: 42935,\n        name: 'UnderlyingPaymentStreamCompoundingFloorRateSellSide',\n        abbrName: 'FlrRtSell',\n        type: 'PaymentStreamFloorRateBuySideCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Reference to the seller of the floor rate option through its trade side.',\n    },\n    {\n        id: 42936,\n        name: 'UnderlyingPaymentStreamCompoundingInitialRate',\n        abbrName: 'InitRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The initial compounding floating rate reset agreed between the principal parties involved in the trade. It should only be included when the rate is not equal to the rate published on the source implied by the floating rate index. The initial rate is expressed in decimal form, e.g. 5% is represented as \"0.05\".',\n    },\n    {\n        id: 42937,\n        name: 'UnderlyingPaymentStreamCompoundingFinalRateRoundingDirection',\n        abbrName: 'FnlRtRndDirctn',\n        type: 'RoundingDirectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the rounding direction for the compounding floating rate.',\n    },\n    {\n        id: 42938,\n        name: 'UnderlyingPaymentStreamCompoundingFinalRatePrecision',\n        abbrName: 'FnlRtPrcsn',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the compounding floating rate rounding precision in terms of a number of decimal places. Note how a percentage rate rounding of 5 decimal places is expressed as a rounding precision of 7.',\n    },\n    {\n        id: 42939,\n        name: 'UnderlyingPaymentStreamCompoundingAveragingMethod',\n        abbrName: 'AvgngMeth',\n        type: 'PaymentStreamAveragingMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the averaging method when compounding floating rate averaging is applicable (e.g. weighted or unweighted).',\n    },\n    {\n        id: 42940,\n        name: 'UnderlyingPaymentStreamCompoundingNegativeRateTreatment',\n        abbrName: 'NegtvRtTrtmt',\n        type: 'PaymentStreamNegativeRateTreatmentCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method for calculating payment obligations when a compounding floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate).',\n    },\n    {\n        id: 42941,\n        name: 'UnderlyingPaymentStreamCompoundingStartDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted compounding start date.',\n    },\n    {\n        id: 42942,\n        name: 'UnderlyingPaymentStreamCompoundingStartDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the compounding start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42943,\n        name: 'UnderlyingPaymentStreamCompoundingStartDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative compounding start date offset.',\n    },\n    {\n        id: 42944,\n        name: 'UnderlyingPaymentStreamCompoundingStartDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative compounding start date offset.',\n    },\n    {\n        id: 42945,\n        name: 'UnderlyingPaymentStreamCompoundingStartDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative compounding start date offset.',\n    },\n    {\n        id: 42946,\n        name: 'UnderlyingPaymentStreamCompoundingStartDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted compounding start date.',\n    },\n    {\n        id: 42947,\n        name: 'UnderlyingPaymentStreamFormulaImageLength',\n        abbrName: 'FrmlaImgLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Length in bytes of the UnderlyingPaymentStreamFormulaImage(42948) field.',\n    },\n    {\n        id: 42948,\n        name: 'UnderlyingPaymentStreamFormulaImage',\n        abbrName: 'FrmlaImg',\n        type: 'data',\n        lengthId: '42947',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Image of the formula image when represented through an encoded clip in base64Binary.',\n    },\n    {\n        id: 42949,\n        name: 'UnderlyingPaymentStreamFinalPricePaymentDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted final price payment date.',\n    },\n    {\n        id: 42950,\n        name: 'UnderlyingPaymentStreamFinalPricePaymentDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the final price payment date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42951,\n        name: 'UnderlyingPaymentStreamFinalPricePaymentDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative final price payment date offset.',\n    },\n    {\n        id: 42952,\n        name: 'UnderlyingPaymentStreamFinalPricePaymentDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative final price payment date offset.',\n    },\n    {\n        id: 42953,\n        name: 'UnderlyingPaymentStreamFinalPricePaymentDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative final price payment date offset.',\n    },\n    {\n        id: 42954,\n        name: 'UnderlyingPaymentStreamFinalPricePaymentDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted final price payment date.',\n    },\n    {\n        id: 42955,\n        name: 'NoUnderlyingPaymentStreamFixingDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of fixing dates in the repeating group.',\n    },\n    {\n        id: 42956,\n        name: 'UnderlyingPaymentStreamFixingDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The fixing date. Type of date is specified in UnderlyingPaymentStreamFixingDateType(42957).',\n    },\n    {\n        id: 42957,\n        name: 'UnderlyingPaymentStreamFixingDateType',\n        abbrName: 'Typ',\n        type: 'NonDeliverableFixingDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of fixing date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 42958,\n        name: 'UnderlyingPaymentStreamFirstObservationDateUnadjusted',\n        abbrName: 'FirstObsvtnDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted initial price observation date.',\n    },\n    {\n        id: 42959,\n        name: 'UnderlyingPaymentStreamFirstObservationDateRelativeTo',\n        abbrName: 'FirstObsvtnReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the initial price observation date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42960,\n        name: 'UnderlyingPaymentStreamFirstObservationDateOffsetDayType',\n        abbrName: 'FirstObsvtnOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the initial price observation date offset.',\n    },\n    {\n        id: 42961,\n        name: 'UnderlyingPaymentStreamFirstObservationDateAdjusted',\n        abbrName: 'FirstObsvtnDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted initial price observation date.',\n    },\n    {\n        id: 42962,\n        name: 'UnderlyingPaymentStreamUnderlierRefID',\n        abbrName: 'UndlrRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"References the dividend underlier through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42963,\n        name: 'UnderlyingReturnRateNotionalReset',\n        abbrName: 'RtnRtNotlReset',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the term \"Equity Notional Reset\" as defined in the ISDA 2002 Equity Derivatives Definitions is applicable (\"Y\") or not.',\n    },\n    {\n        id: 42964,\n        name: 'UnderlyingPaymentStreamLinkInitialLevel',\n        abbrName: 'LinkInitLvl',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Price level at which the correlation or variance swap contract will strike.',\n    },\n    {\n        id: 42965,\n        name: 'UnderlyingPaymentStreamLinkClosingLevelIndicator',\n        abbrName: 'LinkClsngLvl',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the correlation or variance swap contract will (\"Y\") strike off the closing level of the default exchange traded contract or not.',\n    },\n    {\n        id: 42966,\n        name: 'UnderlyingPaymentStreamLinkExpiringLevelIndicator',\n        abbrName: 'LinkExpngLvl',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the correlation or variance swap contract will (\"Y\") strike off the expiring level of the default exchange traded contract or not.',\n    },\n    {\n        id: 42967,\n        name: 'UnderlyingPaymentStreamLinkEstimatedTradingDays',\n        abbrName: 'LinkEstTrdgDays',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The expected number of trading days in the variance or correlation swap stream.',\n    },\n    {\n        id: 42968,\n        name: 'UnderlyingPaymentStreamLinkStrikePrice',\n        abbrName: 'LinkStrkPx',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The strike price of a correlation or variance swap stream.',\n    },\n    {\n        id: 42969,\n        name: 'UnderlyingPaymentStreamLinkStrikePriceType',\n        abbrName: 'LinkStrkPxTyp',\n        type: 'PaymentStreamLinkStrikePriceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'For a variance swap specifies how UnderlyingPaymentStreamLinkStrikePrice(42968) is expressed.',\n    },\n    {\n        id: 42970,\n        name: 'UnderlyingPaymentStreamLinkMaximumBoundary',\n        abbrName: 'LinkMaxBndry',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the maximum or upper boundary for variance or strike determination.\\n\\nFor a variation swap stream all observations above this price level will be excluded from the variance calculation.\\n\\nFor a correlation swap stream the maximum boundary is a percentage of the strike price.',\n    },\n    {\n        id: 42971,\n        name: 'UnderlyingPaymentStreamLinkMinimumBoundary',\n        abbrName: 'LinkMinBndry',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the minimum or lower boundary for variance or strike determination.\\n\\nFor a variation swap stream all observations below this price level will be excluded from the variance calculation.\\n\\nFor a correlation swap stream the minimum boundary is a percentage of the strike price.',\n    },\n    {\n        id: 42972,\n        name: 'UnderlyingPaymentStreamLinkNumberOfDataSeries',\n        abbrName: 'LinkNumDataSeries',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Number of data series for a correlation swap. Normal market practice is that correlation data sets are drawn from geographic market areas, such as America, Europe and Asia Pacific. Each of these geographic areas will have its own data series to avoid contagion.',\n    },\n    {\n        id: 42973,\n        name: 'UnderlyingPaymentStreamVarianceUnadjustedCap',\n        abbrName: 'VarncCap',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates the scaling factor to be multiplied by the variance strike price thereby making variance cap applicable.',\n    },\n    {\n        id: 42974,\n        name: 'UnderlyingPaymentStreamRealizedVarianceMethod',\n        abbrName: 'RlzdVarncMeth',\n        type: 'PaymentStreamRealizedVarianceMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates which price to use to satisfy the boundary condition.',\n    },\n    {\n        id: 42975,\n        name: 'UnderlyingPaymentStreamDaysAdjustmentIndicator',\n        abbrName: 'DaysAdjmt',\n        type: 'Boolean',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Indicates whether the contract specifies that the notional should be scaled by the number of days in range divided by the estimate trading days or not. The number of \"days in range\" refers to the number of returns that contribute to the realized volatility.',\n    },\n    {\n        id: 42976,\n        name: 'UnderlyingPaymentStreamNearestExchangeContractRefID',\n        abbrName: 'ExchCtrctRefID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"References a contract listed on an exchange through the instrument's UnderlyingSecurityID(309) which must be fully specified in an instance of the UnderlyingInstrument component.\",\n    },\n    {\n        id: 42977,\n        name: 'UnderlyingPaymentStreamVegaNotionalAmount',\n        abbrName: 'VegaNotlAmt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Vega Notional represents the approximate gain/loss at maturity for a 1% difference between RVol (realised volatility) and KVol (strike volatility). It does not necessarily represent the Vega risk of the trade.',\n    },\n    {\n        id: 42978,\n        name: 'UnderlyingPaymentStreamFormulaCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The currency in which the formula amount is denominated. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 42979,\n        name: 'UnderlyingPaymentStreamFormulaCurrencyDeterminationMethod',\n        abbrName: 'CcyDtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method according to which the formula amount currency is determined.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 42980,\n        name: 'UnderlyingPaymentStreamFormulaReferenceAmount',\n        abbrName: 'RefAmt',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the reference amount when this term either corresponds to the standard ISDA Definition (either the 2002 Equity Definition for the Equity Amount, or the 2000 Definition for the Interest Amount), or refers to a term defined elsewhere in the swap document.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Payment_Amount_Relative_To for code list of reference amounts.',\n    },\n    {\n        id: 42981,\n        name: 'NoUnderlyingPaymentStreamFormulas',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of formulas in the repeating group.',\n    },\n    {\n        id: 42982,\n        name: 'UnderlyingPaymentStreamFormula',\n        abbrName: 'Frmla',\n        type: 'XMLData',\n        lengthId: '43111',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        description:\n            'Contains an XML representation of the formula. Defined for flexibility in choice of language (MathML, OpenMath or text).',\n    },\n    {\n        id: 42983,\n        name: 'UnderlyingPaymentStreamFormulaDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'A description of the math formula in UnderlyingPaymentStreamFormula(42982).',\n    },\n    {\n        id: 42984,\n        name: 'UnderlyingPaymentStubEndDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted stub end date.',\n    },\n    {\n        id: 42985,\n        name: 'UnderlyingPaymentStubEndDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The stub end date business day convention.',\n    },\n    {\n        id: 42986,\n        name: 'UnderlyingPaymentStubEndDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the stub end date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42987,\n        name: 'UnderlyingPaymentStubEndDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative stub end date offset.',\n    },\n    {\n        id: 42988,\n        name: 'UnderlyingPaymentStubEndDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative stub end date offset.',\n    },\n    {\n        id: 42989,\n        name: 'UnderlyingPaymentStubEndDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative stub end date offset.',\n    },\n    {\n        id: 42990,\n        name: 'UnderlyingPaymentStubEndDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted stub end date.',\n    },\n    {\n        id: 42991,\n        name: 'NoUnderlyingPaymentStubEndDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 42992,\n        name: 'UnderlyingPaymentStubEndDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the payment stub end date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 42993,\n        name: 'UnderlyingPaymentStubStartDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted stub start date.',\n    },\n    {\n        id: 42994,\n        name: 'UnderlyingPaymentStubStartDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The stub start date business day convention.',\n    },\n    {\n        id: 42995,\n        name: 'UnderlyingPaymentStubStartDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the stub start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 42996,\n        name: 'UnderlyingPaymentStubStartDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative stub start date offset.',\n    },\n    {\n        id: 42997,\n        name: 'UnderlyingPaymentStubStartDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative stub start date offset.',\n    },\n    {\n        id: 42998,\n        name: 'UnderlyingPaymentStubStartDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative stub start date offset.',\n    },\n    {\n        id: 42999,\n        name: 'UnderlyingPaymentStubStartDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted stub start date.',\n    },\n    {\n        id: 43000,\n        name: 'NoUnderlyingPaymentStubStartDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 43001,\n        name: 'UnderlyingPaymentStubStartDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the payment stub start date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 43002,\n        name: 'UnderlyingProvisionBreakFeeElection',\n        abbrName: 'BrkFeeElctn',\n        type: 'ProvisionBreakFeeElectionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Type of fee elected for the break provision.',\n    },\n    {\n        id: 43003,\n        name: 'UnderlyingProvisionBreakFeeRate',\n        abbrName: 'BrkFeeRt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Break fee election rate when the break fee is proportional to the notional. A fee rate of 5% would be represented as \"0.05\".',\n    },\n    {\n        id: 43004,\n        name: 'UnderlyingRateSpreadInitialValue',\n        abbrName: 'InitVal',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the initial rate spread for a basket underlier.',\n    },\n    {\n        id: 43005,\n        name: 'NoUnderlyingRateSpreadSteps',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of entries in the repeating group.',\n    },\n    {\n        id: 43006,\n        name: 'UnderlyingRateSpreadStepDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The date that the rate spread step takes affect.',\n    },\n    {\n        id: 43007,\n        name: 'UnderlyingRateSpreadStepValue',\n        abbrName: 'Val',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The the value of the new rate spread as of the UnderlyingRateSpreadStepDate(43006).',\n    },\n    {\n        id: 43008,\n        name: 'NoUnderlyingReturnRateDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate date repeating group.',\n    },\n    {\n        id: 43009,\n        name: 'UnderlyingReturnRateDateMode',\n        abbrName: 'Mode',\n        type: 'ReturnRateDateModeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the valuation type applicable to the return rate date.',\n    },\n    {\n        id: 43010,\n        name: 'UnderlyingReturnRateValuationDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the return rate valuation dates are relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 43011,\n        name: 'UnderlyingReturnRateValuationDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative return rate valuation date offset.',\n    },\n    {\n        id: 43012,\n        name: 'UnderlyingReturnRateValuationDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative return rate valuation date offset.',\n    },\n    {\n        id: 43013,\n        name: 'UnderlyingReturnRateValuationDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative return rate valuation date offset.',\n    },\n    {\n        id: 43014,\n        name: 'UnderlyingReturnRateValuationStartDateUnadjusted',\n        abbrName: 'StartDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The unadjusted start date for return rate valuation. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 43015,\n        name: 'UnderlyingReturnRateValuationStartDateRelativeTo',\n        abbrName: 'StartDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the return rate valuation start date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 43016,\n        name: 'UnderlyingReturnRateValuationStartDateOffsetPeriod',\n        abbrName: 'StartDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative return rate valuation start date offset.',\n    },\n    {\n        id: 43017,\n        name: 'UnderlyingReturnRateValuationStartDateOffsetUnit',\n        abbrName: 'StartDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative return rate valuation start date offset.',\n    },\n    {\n        id: 43018,\n        name: 'UnderlyingReturnRateValuationStartDateOffsetDayType',\n        abbrName: 'StartDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative return rate valuation start date offset.',\n    },\n    {\n        id: 43019,\n        name: 'UnderlyingReturnRateValuationStartDateAdjusted',\n        abbrName: 'StartDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The adjusted start date for return rate valuation. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 43020,\n        name: 'UnderlyingReturnRateValuationEndDateUnadjusted',\n        abbrName: 'EndDtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The unadjusted end date for return rate valuation. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 43021,\n        name: 'UnderlyingReturnRateValuationEndDateRelativeTo',\n        abbrName: 'EndDtReltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the return rate valuation end date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 43022,\n        name: 'UnderlyingReturnRateValuationEndDateOffsetPeriod',\n        abbrName: 'EndDtOfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative return rate valuation end date offset.',\n    },\n    {\n        id: 43023,\n        name: 'UnderlyingReturnRateValuationEndDateOffsetUnit',\n        abbrName: 'EndDtOfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative return rate valuation end date offset.',\n    },\n    {\n        id: 43024,\n        name: 'UnderlyingReturnRateValuationEndDateOffsetDayType',\n        abbrName: 'EndDtOfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative return rate valuation end date offset.',\n    },\n    {\n        id: 43025,\n        name: 'UnderlyingReturnRateValuationEndDateAdjusted',\n        abbrName: 'EndDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The adjusted end date for return rate valuation. This can be used to restrict the range of dates when they are relative.',\n    },\n    {\n        id: 43026,\n        name: 'UnderlyingReturnRateValuationFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the frequency at which return rate valuation dates occur.',\n    },\n    {\n        id: 43027,\n        name: 'UnderlyingReturnRateValuationFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'CouponFrequencyUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the frequency at which return rate valuation dates occur.',\n    },\n    {\n        id: 43028,\n        name: 'UnderlyingReturnRateValuationFrequencyRollConvention',\n        abbrName: 'Roll',\n        type: 'DateRollConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The convention for determining the sequence of return rate valuation dates. It is used in conjunction with a specified frequency.',\n    },\n    {\n        id: 43029,\n        name: 'UnderlyingReturnRateValuationDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The return rate valuation dates business day convention.',\n    },\n    {\n        id: 43030,\n        name: 'NoUnderlyingReturnRateFXConversions',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate FX conversion repeating group.',\n    },\n    {\n        id: 43031,\n        name: 'UnderlyingReturnRateFXCurrencySymbol',\n        abbrName: 'CcySym',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the currency pair for the FX conversion expressed using the CCY1/CCY2 convention. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 43032,\n        name: 'UnderlyingReturnRateFXRate',\n        abbrName: 'FxRt',\n        type: 'float',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The rate of exchange between the two currencies specified in UnderlyingReturnRateFXCurrencySymbol(43031).',\n    },\n    {\n        id: 43033,\n        name: 'UnderlyingReturnRateFXRateCalc',\n        abbrName: 'FxRtCalc',\n        type: 'SettlCurrFxRateCalcCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies whether UnderlyingReturnRateFXRate(43032) should be multiplied or divided.',\n    },\n    {\n        id: 43034,\n        name: 'NoUnderlyingReturnRates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate repeating group.',\n    },\n    {\n        id: 43035,\n        name: 'UnderlyingReturnRatePriceSequence',\n        abbrName: 'PxSeq',\n        type: 'ReturnRatePriceSequenceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of price sequence of the return rate.',\n    },\n    {\n        id: 43036,\n        name: 'UnderlyingReturnRateCommissionBasis',\n        abbrName: 'CommBasis',\n        type: 'CommTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the basis or unit used to calculate the commission.',\n    },\n    {\n        id: 43037,\n        name: 'UnderlyingReturnRateCommissionAmount',\n        abbrName: 'CommAmt',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The commission amount.',\n    },\n    {\n        id: 43038,\n        name: 'UnderlyingReturnRateCommissionCurrency',\n        abbrName: 'CommCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the currency the commission amount is denominated in. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 43039,\n        name: 'UnderlyingReturnRateTotalCommissionPerTrade',\n        abbrName: 'TotCommPerTrd',\n        type: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The total commission per trade.',\n    },\n    {\n        id: 43040,\n        name: 'UnderlyingReturnRateDeterminationMethod',\n        abbrName: 'DtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method by which the underlier prices are determined.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 43041,\n        name: 'UnderlyingReturnRateAmountRelativeTo',\n        abbrName: 'AmtReltv',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the reference amount when the return rate amount is relative to another amount in the trade.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Payment_Amount_Relative_To for code list of relative amounts.',\n    },\n    {\n        id: 43042,\n        name: 'UnderlyingReturnRateQuoteMeasureType',\n        abbrName: 'QteTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            \"Specifies the type of the measure applied to the return rate's asset, e.g. valuation, sensitivity risk. This could be an NPV, a cash flow, a clean price, etc.\\n\\nSee http://www.fpml.org/coding-scheme/asset-measure for values.\",\n    },\n    {\n        id: 43043,\n        name: 'UnderlyingReturnRateQuoteUnits',\n        abbrName: 'QteUnit',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the units that the measure is expressed in. If not specified, the default is a price/value in currency units.\\n\\nSee http://www.fpml.org/coding-scheme/price-quote-units for values.',\n    },\n    {\n        id: 43044,\n        name: 'UnderlyingReturnRateQuoteMethod',\n        abbrName: 'QteMeth',\n        type: 'CashSettlQuoteMethodCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of quote used to determine the return rate of the swap.',\n    },\n    {\n        id: 43045,\n        name: 'UnderlyingReturnRateQuoteCurrency',\n        abbrName: 'QteCcy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the currency the return rate quote is denominated in. Uses ISO 4217 Currency Code.',\n    },\n    {\n        id: 43046,\n        name: 'UnderlyingReturnRateQuoteCurrencyType',\n        abbrName: 'QteCcyTyp',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the type of currency, e.g. settlement currency, base currency, etc., that the quote is reported in.\\n\\nSee http://www.fpml.org/coding-scheme/reporting-currency-type for values.',\n    },\n    {\n        id: 43047,\n        name: 'UnderlyingReturnRateQuoteTimeType',\n        abbrName: 'QteTmTyp',\n        type: 'ReturnRateQuoteTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies how or the timing when the quote is to be obtained.',\n    },\n    {\n        id: 43048,\n        name: 'UnderlyingReturnRateQuoteTime',\n        abbrName: 'QteTm',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The time when the quote is to be generated.',\n    },\n    {\n        id: 43049,\n        name: 'UnderlyingReturnRateQuoteDate',\n        abbrName: 'QteDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The date when the quote is to be generated.',\n    },\n    {\n        id: 43050,\n        name: 'UnderlyingReturnRateQuoteExpirationTime',\n        abbrName: 'QteExpTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The time when the quote ceases to be valid.',\n    },\n    {\n        id: 43051,\n        name: 'UnderlyingReturnRateQuoteBusinessCenter',\n        abbrName: 'QteBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for adjustments associated with UnderlyingReturnRateQuoteTimeType(43047) or UnderlyingReturnRateQuoteTime(43048) and UnderlyingReturnRateQuoteDate(43049), e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 43052,\n        name: 'UnderlyingReturnRateQuoteExchange',\n        abbrName: 'QteExch',\n        type: 'Exchange',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the exchange (e.g. stock or listed futures/options exchange) from which the quote is obtained.',\n    },\n    {\n        id: 43053,\n        name: 'UnderlyingReturnRateQuotePricingModel',\n        abbrName: 'QteModel',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the pricing model used to evaluate the underlying asset price.\\n\\nSee http://www.fpml.org/coding-scheme/pricing-model for values.',\n    },\n    {\n        id: 43054,\n        name: 'UnderlyingReturnRateCashFlowType',\n        abbrName: 'CshFlow',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the type of cash flows, e.g. coupon payment, premium fee, settlement fee, etc.\\n\\nSee http://www.fpml.org/coding-scheme/cashflow-type for values.',\n    },\n    {\n        id: 43055,\n        name: 'UnderlyingReturnRateValuationTimeType',\n        abbrName: 'ValTmTyp',\n        type: 'ReturnRateQuoteTimeTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the timing at which the calculation agent values the underlying.',\n    },\n    {\n        id: 43056,\n        name: 'UnderlyingReturnRateValuationTime',\n        abbrName: 'ValTm',\n        type: 'LocalMktTime',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The time at which the calculation agent values the underlying asset.',\n    },\n    {\n        id: 43057,\n        name: 'UnderlyingReturnRateValuationTimeBusinessCenter',\n        abbrName: 'ValTmBizCtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for adjustments associated with UnderlyingReturnRateValuationTimeType(43055) or UnderlyingReturnRateValuationTime(43056) , e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 43058,\n        name: 'UnderlyingReturnRateValuationPriceOption',\n        abbrName: 'ValPxOpt',\n        type: 'ReturnRateValuationPriceOptionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Indicates whether an ISDA price option applies, and if applicable which type of price.',\n    },\n    {\n        id: 43059,\n        name: 'UnderlyingReturnRateFinalPriceFallback',\n        abbrName: 'FnlPxFallbck',\n        type: 'ComplexEventPVFinalPriceElectionFallbackCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the fallback provision for the hedging party in the determination of the final price.',\n    },\n    {\n        id: 43060,\n        name: 'NoUnderlyingReturnRateInformationSources',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate information source repeating group.',\n    },\n    {\n        id: 43061,\n        name: 'UnderlyingReturnRateInformationSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Identifies the source of rate information. For FX the references source to be used for the FX spot rate.',\n    },\n    {\n        id: 43062,\n        name: 'UnderlyingReturnRateReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Identifies the reference \"page\" from the rate source.\\n\\nFor FX, the reference page to the spot rate to be used for the reference FX spot rate.\\n\\nWhen UnderlyingReturnRateInformationSource(43061) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions.\\n\\nSee: http://www.fpml.org/coding-scheme/settlement-rate-option',\n    },\n    {\n        id: 43063,\n        name: 'UnderlyingReturnRateReferencePageHeading',\n        abbrName: 'RefHdng',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Identifies the page heading from the rate source.',\n    },\n    {\n        id: 43064,\n        name: 'NoUnderlyingReturnRatePrices',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate price repeating group.',\n    },\n    {\n        id: 43065,\n        name: 'UnderlyingReturnRatePriceBasis',\n        abbrName: 'PxBasis',\n        type: 'ReturnRatePriceBasisCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The basis of the return price.',\n    },\n    {\n        id: 43066,\n        name: 'UnderlyingReturnRatePrice',\n        abbrName: 'Px',\n        type: 'Price',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the price of the underlying swap asset.',\n    },\n    {\n        id: 43067,\n        name: 'UnderlyingReturnRatePriceCurrency',\n        abbrName: 'Ccy',\n        type: 'Currency',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the currency of the price of the underlying swap asset. Uses ISO 4217 currency codes.',\n    },\n    {\n        id: 43068,\n        name: 'UnderlyingReturnRatePriceType',\n        abbrName: 'PxTyp',\n        type: 'ReturnRatePriceTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies whether the UnderlyingReturnRatePrice(43066) is expressed in absolute or relative terms.',\n    },\n    {\n        id: 43069,\n        name: 'NoUnderlyingReturnRateValuationDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate valuation date business center repeating group.',\n    },\n    {\n        id: 43070,\n        name: 'UnderlyingReturnRateValuationDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the return rate valuation unadjusted or relative dates, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 43071,\n        name: 'NoUnderlyingReturnRateValuationDates',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of iterations in the return rate valuation date repeating group.',\n    },\n    {\n        id: 43072,\n        name: 'UnderlyingReturnRateValuationDate',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The return rate valuation date. Type of date is specified in UnderlyingReturnRateValuationDateType(43073).',\n    },\n    {\n        id: 43073,\n        name: 'UnderlyingReturnRateValuationDateType',\n        abbrName: 'Typ',\n        type: 'NonDeliverableFixingDateTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the type of return rate valuation date (e.g. adjusted for holidays).',\n    },\n    {\n        id: 43074,\n        name: 'NoUnderlyingSettlMethodElectionDateBusinessCenters',\n        type: 'NumInGroup',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Number of business centers in the repeating group.',\n    },\n    {\n        id: 43075,\n        name: 'UnderlyingSettlMethodElectionDateBusinessCenter',\n        abbrName: 'Ctr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The business center calendar used for date adjustment of the settlement method election unadjusted or relative date, e.g. \"GBLO\".\\n\\nSee http://www.fpml.org/coding-scheme/business-center for standard 4-character code values.',\n    },\n    {\n        id: 43076,\n        name: 'UnderlyingSettlMethodElectionDateUnadjusted',\n        abbrName: 'DtUnadj',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The unadjusted settlement method election date.',\n    },\n    {\n        id: 43077,\n        name: 'UnderlyingSettlMethodElectionDateBusinessDayConvention',\n        abbrName: 'BizDayCnvtn',\n        type: 'BusinessDayConventionCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The settlement method election date adjustment business day convention.',\n    },\n    {\n        id: 43078,\n        name: 'UnderlyingSettlMethodElectionDateRelativeTo',\n        abbrName: 'Reltv',\n        type: 'int',\n        unionDataType: 'Reserved1000Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the anchor date when the settlement method election date is relative to an anchor date.\\n\\nSee http://www.fixtradingcommunity.org/codelists#Relative_To_Date for values.',\n    },\n    {\n        id: 43079,\n        name: 'UnderlyingSettlMethodElectionDateOffsetPeriod',\n        abbrName: 'OfstPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit multiplier for the relative settlement method election date offset.',\n    },\n    {\n        id: 43080,\n        name: 'UnderlyingSettlMethodElectionDateOffsetUnit',\n        abbrName: 'OfstUnit',\n        type: 'PaymentStreamPaymentDateOffsetUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Time unit associated with the relative settlement method election date offset.',\n    },\n    {\n        id: 43081,\n        name: 'UnderlyingSettlMethodElectionDateOffsetDayType',\n        abbrName: 'OfstDayTyp',\n        type: 'PaymentStreamPaymentDateOffsetDayTypeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'Specifies the day type of the relative settlement method election date offset.',\n    },\n    {\n        id: 43082,\n        name: 'UnderlyingSettlMethodElectionDateAdjusted',\n        abbrName: 'Dt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The adjusted settlement method election date.',\n    },\n    {\n        id: 43083,\n        name: 'UnderlyingStreamVersion',\n        abbrName: 'Ver',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'The stream version identifier when there have been modifications to the contract over time. Helps signal when there are embedded changes.',\n    },\n    {\n        id: 43084,\n        name: 'UnderlyingStreamVersionEffectiveDate',\n        abbrName: 'VerEfctvDt',\n        type: 'LocalMktDate',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description: 'The effective date of the UnderlyingStreamVersion(43083).',\n    },\n    {\n        id: 43085,\n        name: 'UnderlyingStreamNotionalDeterminationMethod',\n        abbrName: 'NotlDtrmnMeth',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'Specifies the method for determining the floating notional value for equity swaps.\\n\\nSee http://www.fpml.org/coding-scheme/determination-method for values.',\n    },\n    {\n        id: 43086,\n        name: 'UnderlyingStreamNotionalAdjustments',\n        abbrName: 'NotlAdjmts',\n        type: 'StreamNotionalAdjustmentsCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        description:\n            'For equity swaps this specifies the conditions that govern the adjustment to the number of units of the swap.',\n    },\n    {\n        id: 43087,\n        name: 'PaymentDesc',\n        abbrName: 'Desc',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '203',\n        description:\n            'A short descriptive name given to the payment, e.g. Premium, Upfront, etc. The description has no intrinsic meaning but should be arbitrarily chosen by the remitter as reference.',\n    },\n    {\n        id: 43088,\n        name: 'LegPaymentStreamRateIndexID',\n        abbrName: 'NdxID',\n        type: 'String',\n        discriminatorId: '43089',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Security identifier of the floating rate index.',\n    },\n    {\n        id: 43089,\n        name: 'LegPaymentStreamRateIndexIDSource',\n        abbrName: 'NdxIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Source for the floating rate index identified in LegPaymentStreamRateIndexID(43088).',\n    },\n    {\n        id: 43090,\n        name: 'PaymentStreamRateIndexID',\n        abbrName: 'NdxID',\n        type: 'String',\n        discriminatorId: '43091',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Security identifier of the floating rate index.',\n    },\n    {\n        id: 43091,\n        name: 'PaymentStreamRateIndexIDSource',\n        abbrName: 'NdxIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Source for the floating rate index identified in PaymentStreamRateIndexID(43090).',\n    },\n    {\n        id: 43092,\n        name: 'UnderlyingPaymentStreamRateIndexID',\n        abbrName: 'NdxID',\n        type: 'String',\n        discriminatorId: '43093',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Security identifier of the floating rate index.',\n    },\n    {\n        id: 43093,\n        name: 'UnderlyingPaymentStreamRateIndexIDSource',\n        abbrName: 'NdxIDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Source for the floating rate index identified in UnderlyingPaymentStreamRateIndexID(43092).',\n    },\n    {\n        id: 43094,\n        name: 'DeliveryStreamRouteOrCharter',\n        abbrName: 'RteChrtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Specific delivery route or time charter average. Applicable to commodity freight swaps.',\n    },\n    {\n        id: 43095,\n        name: 'LegDeliveryStreamRouteOrCharter',\n        abbrName: 'RteChrtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Specific delivery route or time charter average. Applicable to commodity freight swaps.',\n    },\n    {\n        id: 43096,\n        name: 'UnderlyingDeliveryStreamRouteOrCharter',\n        abbrName: 'RteChrtr',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        description: 'Specific delivery route or time charter average. Applicable to commodity freight swaps.',\n    },\n    {\n        id: 43097,\n        name: 'PaymentFixedRate',\n        abbrName: 'Rt',\n        type: 'Percentage',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'The rate applicable to the fixed rate payment.',\n    },\n    {\n        id: 43098,\n        name: 'PaymentFloatingRateIndex',\n        abbrName: 'Ndx',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'The payment floating rate index. See SpreadOrBenchmarkCurveData(221) for suggested values.',\n    },\n    {\n        id: 43099,\n        name: 'PaymentFloatingRateIndexCurvePeriod',\n        abbrName: 'NdxPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Time unit multiplier for the floating rate index.',\n    },\n    {\n        id: 43100,\n        name: 'PaymentFloatingRateIndexCurveUnit',\n        abbrName: 'NdxUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Time unit associated with the floating rate index.',\n    },\n    {\n        id: 43101,\n        name: 'PaymentFloatingRateSpread',\n        abbrName: 'Spread',\n        type: 'PriceOffset',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Spread from floating rate index.',\n    },\n    {\n        id: 43102,\n        name: 'PaymentFrequencyPeriod',\n        abbrName: 'FreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Time unit multiplier for the payment frequency.',\n    },\n    {\n        id: 43103,\n        name: 'PaymentFrequencyUnit',\n        abbrName: 'FreqUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Time unit associated with the payment frequency.',\n    },\n    {\n        id: 43104,\n        name: 'PaymentRateResetFrequencyPeriod',\n        abbrName: 'ResetFreqPeriod',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Time unit multiplier for the floating rate reset frequency.',\n    },\n    {\n        id: 43105,\n        name: 'PaymentRateResetFrequencyUnit',\n        abbrName: 'ResetFreqUnit',\n        type: 'PaymentStreamRateIndexCurveUnitCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'Time unit associated with the floating rate reset frequency.',\n    },\n    {\n        id: 43106,\n        name: 'PaymentStreamOtherDayCount',\n        abbrName: 'OtherDayCnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'The industry name of the day count convention not listed in PaymentStreamDayCount(40742).',\n    },\n    {\n        id: 43107,\n        name: 'UnderlyingPaymentStreamOtherDayCount',\n        abbrName: 'OtherDayCnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description:\n            'The industry name of the day count convention not listed in UnderlyingPaymentStreamDayCount(40572).',\n    },\n    {\n        id: 43108,\n        name: 'LegPaymentStreamOtherDayCount',\n        abbrName: 'OtherDayCnt',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        description: 'The industry name of the day count convention not listed in LegPaymentStreamDayCount(40283).',\n    },\n    {\n        id: 43109,\n        name: 'PaymentStreamFormulaLength',\n        abbrName: 'FrmlaLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '257',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Byte length of encoded (non-ASCII characters) PaymentStreamFormula(42648) field.',\n    },\n    {\n        id: 43110,\n        name: 'LegPaymentStreamFormulaLength',\n        abbrName: 'FrmlaLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '257',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Byte length of encoded (non-ASCII characters) LegPaymentStreamFormula(42486) field.',\n    },\n    {\n        id: 43111,\n        name: 'UnderlyingPaymentStreamFormulaLength',\n        abbrName: 'FrmlaLen',\n        type: 'Length',\n        added: 'FIX.5.0SP2',\n        addedEP: '257',\n        updated: 'FIX.Latest',\n        updatedEP: '275',\n        description: 'Byte length of encoded (non-ASCII characters) UnderlyingPaymentStreamFormula(42982) field.',\n    },\n    {\n        id: 43112,\n        name: 'PaymentStreamRateIndex2',\n        abbrName: 'Ndx2',\n        type: 'String',\n        discriminatorId: '43113',\n        added: 'FIX.Latest',\n        addedEP: '271',\n        description: \"The payment stream's second floating rate index.\",\n    },\n    {\n        id: 43113,\n        name: 'PaymentStreamRateIndex2Source',\n        abbrName: 'Ndx2Src',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '271',\n        description: \"The source of the payment stream's second floating rate index.\",\n    },\n    {\n        id: 43114,\n        name: 'PaymentStreamRateIndex2ID',\n        abbrName: 'Ndx2ID',\n        type: 'String',\n        discriminatorId: '43115',\n        added: 'FIX.Latest',\n        addedEP: '271',\n        description: 'Security identifier of the second floating rate index.',\n    },\n    {\n        id: 43115,\n        name: 'PaymentStreamRateIndex2IDSource',\n        abbrName: 'Ndx2IDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.Latest',\n        addedEP: '271',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Source for the second floating rate index identified in PaymentStreamRateIndex2ID(43114).',\n    },\n    {\n        id: 43116,\n        name: 'LegPaymentStreamRateIndex2',\n        abbrName: 'Ndx2',\n        type: 'String',\n        discriminatorId: '43117',\n        added: 'FIX.Latest',\n        addedEP: '271',\n        description: \"The payment stream's second floating rate index.\",\n    },\n    {\n        id: 43117,\n        name: 'LegPaymentStreamRateIndex2Source',\n        abbrName: 'Ndx2Src',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '271',\n        description: \"The source of the payment stream's second floating rate index.\",\n    },\n    {\n        id: 43118,\n        name: 'LegPaymentStreamRateIndex2ID',\n        abbrName: 'Ndx2ID',\n        type: 'String',\n        discriminatorId: '43119',\n        added: 'FIX.Latest',\n        addedEP: '271',\n        description: 'Security identifier of the second floating rate index.',\n    },\n    {\n        id: 43119,\n        name: 'LegPaymentStreamRateIndex2IDSource',\n        abbrName: 'Ndx2IDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.Latest',\n        addedEP: '271',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description: 'Source for the second floating rate index identified in LegPaymentStreamRateIndex2ID(43118).',\n    },\n    {\n        id: 43120,\n        name: 'UnderlyingPaymentStreamRateIndex2',\n        abbrName: 'Ndx2',\n        type: 'String',\n        discriminatorId: '43121',\n        added: 'FIX.Latest',\n        addedEP: '271',\n        description: \"The payment stream's second floating rate index.\",\n    },\n    {\n        id: 43121,\n        name: 'UnderlyingPaymentStreamRateIndex2Source',\n        abbrName: 'Ndx2Src',\n        type: 'PaymentStreamRateIndexSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '271',\n        description: \"The source of the payment stream's second floating rate index.\",\n    },\n    {\n        id: 43122,\n        name: 'UnderlyingPaymentStreamRateIndex2ID',\n        abbrName: 'Ndx2ID',\n        type: 'String',\n        discriminatorId: '43123',\n        added: 'FIX.Latest',\n        addedEP: '271',\n        description: 'Security identifier of the second floating rate index.',\n    },\n    {\n        id: 43123,\n        name: 'UnderlyingPaymentStreamRateIndex2IDSource',\n        abbrName: 'Ndx2IDSrc',\n        type: 'SecurityIDSourceCodeSet',\n        unionDataType: 'Reserved100Plus',\n        added: 'FIX.Latest',\n        addedEP: '271',\n        updated: 'FIX.Latest',\n        updatedEP: '294',\n        description:\n            'Source for the second floating rate index identified in UnderlyingPaymentStreamRateIndex2ID(43122).',\n    },\n    {\n        id: 50000,\n        name: 'BatchID',\n        abbrName: 'ID',\n        type: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '178',\n        description: 'Unique Identifier for a batch of messages.',\n    },\n    {\n        id: 50001,\n        name: 'BatchTotalMessages',\n        abbrName: 'TotMsg',\n        type: 'int',\n        added: 'FIX.5.0SP2',\n        addedEP: '178',\n        description: 'Total # of messages contained within batch.',\n    },\n    {\n        id: 50002,\n        name: 'BatchProcessMode',\n        abbrName: 'ProcMode',\n        type: 'BatchProcessModeCodeSet',\n        added: 'FIX.5.0SP2',\n        addedEP: '178',\n        description: 'Indicates the processing mode for a batch of messages.',\n    },\n    {\n        id: 3116,\n        name: 'NoLegRateSources',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '302',\n        description: 'Number of LegRateSource entries in the repeating group.',\n    },\n    {\n        id: 3117,\n        name: 'LegRateSource',\n        abbrName: 'RtSrc',\n        type: 'RateSourceCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '302',\n        description:\n            'Identifies the source of rate information.\\nFor FX, the reference source to be used for the FX spot rate.\\n\\nThis is where to look up the rate information and is not necessarily the entity that sets the rate.',\n    },\n    {\n        id: 3118,\n        name: 'LegRateSourceType',\n        abbrName: 'RtSrcTyp',\n        type: 'RateSourceTypeCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '302',\n        description: 'Indicates whether the rate source specified is a primary or secondary source.',\n    },\n    {\n        id: 3119,\n        name: 'LegReferencePage',\n        abbrName: 'RefPg',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '302',\n        description:\n            'Identifies the reference \"page\" from the rate source.\\n\\nFor FX, the reference page to the spot rate to be used for the reference FX spot rate.\\nWhen RateSource(1446) = 3 (ISDA Settlement Rate Option) this contains the value from the scheme that reflects the terms of the Annex A to the ISDA 1998 FX and Currency Option Definitions. See: https://www.fpml.org/coding-scheme/settlement-rate-option.',\n    },\n    {\n        id: 3120,\n        name: 'LegRateSourceReferencePageHeading',\n        abbrName: 'RefHdng',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '302',\n        description: 'Identifies the page heading from the rate source.',\n    },\n    {\n        id: 3121,\n        name: 'LegRateSourceSymbol',\n        abbrName: 'Sym',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '302',\n        description:\n            'Identifies the currency pair/symbol that the instance of the rate source information is applicable for the fixing.',\n    },\n    {\n        id: 3122,\n        name: 'LegFXBenchmark',\n        abbrName: 'FXBnchmk',\n        type: 'FXBenchmarkCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '302',\n        description:\n            'The source of where to obtain the FX benchmark rate to use for fixing the rate.\\n\\nThe value in this field can be different from LegRateSource(3117). For example, \"Bloomberg\" can be the reference source identified in LegRateSource(3117), and LegFXBenchmark(3122) can be \"central bank\" - what this says is to use Bloomberg to look up/reference the published central bank rate. Likewise, the BFIX rate for fixing (LegFXBenchmark(3122)=1 (Bloomberg)) can be sourced from Reuters (LegRateSource(3117)=1 (Reuters)). If the source for benchmark fixing rate is the same as the reference source (LegRateSource(3117)), this field, LegFXBenchmark(3122), can be omitted.',\n    },\n    {\n        id: 3123,\n        name: 'LegFXBenchmarkDate',\n        abbrName: 'FXBnchmkDt',\n        type: 'LocalMktDate',\n        added: 'FIX.Latest',\n        addedEP: '302',\n        description:\n            'The local date of the FX rate fixing. The time applicable on the fixing date is specified in LegFXBenchmarkTime(3124).',\n    },\n    {\n        id: 3124,\n        name: 'LegFXBenchmarkTime',\n        abbrName: 'FXBnchmkTm',\n        type: 'LocalMktTime',\n        added: 'FIX.Latest',\n        addedEP: '302',\n        description:\n            'The local time of the FX rate fixing. The date applicable for the fixing time is specified in LegFXBenchmarkDate(3123).',\n    },\n    {\n        id: 3125,\n        name: 'LegFXBenchmarkBusinessCenter',\n        abbrName: 'FXBnchmkCtr',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '302',\n        description:\n            'A business center whose calendar is used for date/time adjustment. See https://www.fpml.org/coding-scheme/business-center to download the current (ISDA/FpML) standard 4-character code values for business center identification.',\n    },\n    {\n        id: 3126,\n        name: 'NoTestSuiteParameters',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '303',\n        description: 'Number of test suite parameters.',\n    },\n    {\n        id: 3127,\n        name: 'TestSuiteParameterName',\n        abbrName: 'PrmName',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '303',\n        description: 'Name of the test suite parameter.',\n    },\n    {\n        id: 3128,\n        name: 'TestSuiteParameterType',\n        abbrName: 'PrmTyp',\n        type: 'StrategyParameterTypeCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '303',\n        description: 'Datatype of the test suite parameter.',\n    },\n    {\n        id: 3129,\n        name: 'TestSuiteParameterValue',\n        abbrName: 'PrmVal',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '303',\n        description: 'Value of the test scenario parameter.',\n    },\n    {\n        id: 3130,\n        name: 'NoTestScenarioParameters',\n        type: 'NumInGroup',\n        added: 'FIX.Latest',\n        addedEP: '303',\n        description: 'Number of test scenario parameters.',\n    },\n    {\n        id: 3131,\n        name: 'TestScenarioParameterName',\n        abbrName: 'PrmName',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '303',\n        description: 'Name of the test scenario parameter.',\n    },\n    {\n        id: 3132,\n        name: 'TestScenarioParameterType',\n        abbrName: 'PrmTyp',\n        type: 'StrategyParameterTypeCodeSet',\n        added: 'FIX.Latest',\n        addedEP: '303',\n        description: 'Datatype of the test scenario parameter.',\n    },\n    {\n        id: 3133,\n        name: 'TestScenarioParameterValue',\n        abbrName: 'PrmVal',\n        type: 'String',\n        added: 'FIX.Latest',\n        addedEP: '303',\n        description: 'Value of the test scenario parameter.',\n    },\n];\n\nexport const FIELDS: ISpecFields[] = batch1.concat(batch2, batch3, batch4, batch5, batch6, batch7, batch8);\n", "export interface ISpecCategories {\n    name: string;\n    FIXMLFileName: string;\n    componentType: string;\n    section?: string;\n    added?: string;\n    addedEP?: string;\n    includeFile?: string;\n    description?: string;\n}\nexport const CATEGORIES: ISpecCategories[] = [\n    {\n        name: 'Session',\n        FIXMLFileName: 'session',\n        componentType: 'Message',\n        section: 'Session',\n    },\n    {\n        name: 'Indication',\n        FIXMLFileName: 'indications',\n        componentType: 'Message',\n        section: 'PreTrade',\n        includeFile: 'components',\n    },\n    {\n        name: 'SingleGeneralOrderHandling',\n        FIXMLFileName: 'order',\n        componentType: 'Message',\n        section: 'Trade',\n        includeFile: 'components',\n    },\n    {\n        name: 'EventCommunication',\n        FIXMLFileName: 'newsevents',\n        componentType: 'Message',\n        section: 'PreTrade',\n        includeFile: 'components',\n    },\n    {\n        name: 'ProgramTrading',\n        FIXMLFileName: 'listorders',\n        componentType: 'Message',\n        section: 'Trade',\n        includeFile: 'components',\n    },\n    {\n        name: 'OrderMassHandling',\n        FIXMLFileName: 'ordermasshandling',\n        componentType: 'Message',\n        section: 'Trade',\n        includeFile: 'components',\n    },\n    {\n        name: 'Allocation',\n        FIXMLFileName: 'allocation',\n        componentType: 'Message',\n        section: 'PostTrade',\n        includeFile: 'components',\n    },\n    {\n        name: 'QuotationNegotiation',\n        FIXMLFileName: 'quotation',\n        componentType: 'Message',\n        section: 'PreTrade',\n        includeFile: 'components',\n    },\n    {\n        name: 'SettlementInstruction',\n        FIXMLFileName: 'settlement',\n        componentType: 'Message',\n        section: 'PostTrade',\n        includeFile: 'components',\n    },\n    {\n        name: 'MarketData',\n        FIXMLFileName: 'marketdata',\n        componentType: 'Message',\n        section: 'PreTrade',\n        includeFile: 'components',\n    },\n    {\n        name: 'Common',\n        FIXMLFileName: 'components',\n        componentType: 'Message',\n        includeFile: 'fields',\n    },\n    {\n        name: 'RegistrationInstruction',\n        FIXMLFileName: 'registration',\n        componentType: 'Message',\n        section: 'PostTrade',\n        includeFile: 'components',\n    },\n    {\n        name: 'CrossOrders',\n        FIXMLFileName: 'crossorders',\n        componentType: 'Message',\n        section: 'Trade',\n        includeFile: 'components',\n    },\n    {\n        name: 'MultilegOrders',\n        FIXMLFileName: 'multilegorders',\n        componentType: 'Message',\n        section: 'Trade',\n        includeFile: 'components',\n    },\n    {\n        name: 'TradeCapture',\n        FIXMLFileName: 'tradecapture',\n        componentType: 'Message',\n        section: 'PostTrade',\n        includeFile: 'components',\n    },\n    {\n        name: 'Confirmation',\n        FIXMLFileName: 'confirmation',\n        componentType: 'Message',\n        section: 'PostTrade',\n        includeFile: 'components',\n    },\n    {\n        name: 'PositionMaintenance',\n        FIXMLFileName: 'positions',\n        componentType: 'Message',\n        section: 'PostTrade',\n        includeFile: 'components',\n    },\n    {\n        name: 'CollateralManagement',\n        FIXMLFileName: 'collateral',\n        componentType: 'Message',\n        section: 'PostTrade',\n        includeFile: 'components',\n    },\n    {\n        name: 'Application',\n        FIXMLFileName: 'application',\n        componentType: 'Message',\n        section: 'Infrastructure',\n        includeFile: 'components',\n    },\n    {\n        name: 'BusinessReject',\n        FIXMLFileName: 'businessreject',\n        componentType: 'Message',\n        section: 'Infrastructure',\n        includeFile: 'components',\n    },\n    {\n        name: 'Network',\n        FIXMLFileName: 'network',\n        componentType: 'Message',\n        section: 'Infrastructure',\n        includeFile: 'components',\n    },\n    {\n        name: 'UserManagement',\n        FIXMLFileName: 'usermanagement',\n        componentType: 'Message',\n        section: 'Infrastructure',\n        includeFile: 'components',\n    },\n    {\n        name: 'Fields',\n        FIXMLFileName: 'fields',\n        componentType: 'Field',\n    },\n    {\n        name: 'ImplFields',\n        FIXMLFileName: 'fields',\n        componentType: 'Field',\n    },\n    {\n        name: 'MarketStructureReferenceData',\n        FIXMLFileName: 'marketstructure',\n        componentType: 'Message',\n        section: 'PreTrade',\n        includeFile: 'components',\n        added: 'FIX.5.0SP1',\n        addedEP: '97',\n    },\n    {\n        name: 'SecuritiesReferenceData',\n        FIXMLFileName: 'securitiesreference',\n        componentType: 'Message',\n        section: 'PreTrade',\n        includeFile: 'components',\n        added: 'FIX.5.0SP1',\n        addedEP: '97',\n    },\n    {\n        name: 'MarginRequirementManagement',\n        FIXMLFileName: 'marginrequirement',\n        componentType: 'Message',\n        section: 'PostTrade',\n        includeFile: 'components',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n    },\n    {\n        name: 'PartiesReferenceData',\n        FIXMLFileName: 'partiesreference',\n        componentType: 'Message',\n        section: 'PreTrade',\n        includeFile: 'components',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n    },\n    {\n        name: 'AccountReporting',\n        FIXMLFileName: 'accountreporting',\n        componentType: 'Message',\n        section: 'PostTrade',\n        includeFile: 'components',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        description: 'Account Reporting',\n    },\n    {\n        name: 'PartiesAction',\n        FIXMLFileName: 'partiesaction',\n        componentType: 'Message',\n        section: 'PreTrade',\n        includeFile: 'components',\n        added: 'FIX.5.0SP2',\n        addedEP: '171',\n        description:\n            'The PartiesAction category of messages is a set of messages that are used to take an action on party information as a result of risk management decisions made during the trading day.',\n    },\n    {\n        name: 'TradeManagement',\n        FIXMLFileName: 'trademanagement',\n        componentType: 'Message',\n        section: 'PostTrade',\n        includeFile: 'components',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n    },\n    {\n        name: 'PayManagement',\n        FIXMLFileName: 'paymgt',\n        componentType: 'Message',\n        section: 'PostTrade',\n        includeFile: 'components',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        description:\n            'Messages used to initiate and confirm expected or future payments to be made or received related to servicing of contracts or transactions after trade settlement. These messages are not intended to instruct or initiate remittance of funds transfers with banks.',\n    },\n    {\n        name: 'SettlementStatusManagement',\n        FIXMLFileName: 'settlstatmgmt',\n        componentType: 'Message',\n        section: 'PostTrade',\n        includeFile: 'components',\n        added: 'FIX.Latest',\n        addedEP: '281',\n        description:\n            'Messages used to request for or communicate securities settlement status once the settlement process has been initiated via existing industry norms. These messages are not intended to instruct or initiate securities settlement process.',\n    },\n    {\n        name: 'Testing',\n        FIXMLFileName: 'testing',\n        componentType: 'Message',\n        section: 'PreTrade',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        description:\n            'Messages used to request for or communicate information related to testing, e.g. algorithmic trading and related testing.\\n\\nAlgorithmic trading is subject to regulatory requirements in many jurisdictions, e.g. in Europe as defined by MiFIR. Investment firms engaged in algorithmic trading with venues may be required to certify their algos and provide the certificate information to the venue. This includes the provision of detailed information related to the algorithm and how it has been tested. The messages in this category support such certification and also interaction between algo systems and test systems both for testing and certification.\\nThe messages may also be used internally to exchange and update information on algos and test suites that will eventually be certified internally by the authorized person and subsequently provided to the venues.',\n    },\n];\n", "import type { ISpecCategories } from '../../spec/SpecCategories.ts';\n\n/**\n * Class representing a FIX field category type.\n * Stores and manages category-specific information for FIX fields.\n */\nexport class CategoryType {\n    /** The unique identifier for the category */\n    public categoryID: string | undefined = undefined;\n    /** The FIXML file name associated with this category */\n    public fixmlFileName: string | undefined = undefined;\n    /** The type of component this category represents */\n    public componentType: string | undefined = undefined;\n    /** The section ID this category belongs to */\n    public sectionID: string | undefined = undefined;\n    /** The include file associated with this category */\n    public includeFile: string | undefined = undefined;\n\n    /**\n     * Sets the category properties based on the provided category specification.\n     *\n     * @param {ISpecCategories} category - The category specification to set\n     */\n    public setCategory(category: ISpecCategories): void {\n        this.categoryID = category.name;\n        this.fixmlFileName = category.FIXMLFileName;\n        this.componentType = category.componentType;\n        this.sectionID = category.section!;\n        this.includeFile = category.includeFile!;\n    }\n\n    /**\n     * Resets all category properties to undefined.\n     */\n    public reset(): void {\n        this.categoryID = undefined;\n        this.fixmlFileName = undefined;\n        this.componentType = undefined;\n        this.sectionID = undefined;\n        this.includeFile = undefined;\n    }\n}\n", "import { CATEGORIES, type ISpecCategories } from '../../spec/SpecCategories.ts';\nimport type { Field } from '../Field.ts';\nimport { CategoryType } from './CategoryType.ts';\n\n/**\n * Class for managing FIX field categories.\n * Provides functionality to process and categorize FIX fields based on their specifications.\n */\nexport class Categories {\n    /** Array of all available category specifications */\n    public categories: ISpecCategories[] = CATEGORIES;\n    /** Cache map for looking up categories by name */\n    public cacheMap: Map<string, ISpecCategories> = new Map<string, ISpecCategories>();\n    /** Instance of CategoryType for managing category data */\n    public categoryType: CategoryType = new CategoryType();\n\n    /**\n     * Creates a new Categories instance and initializes the cache map\n     * with all available category specifications.\n     */\n    constructor() {\n        this.categories.forEach((category: ISpecCategories) => {\n            this.cacheMap.set(category.name, category);\n        });\n    }\n\n    /**\n     * Processes a field's category based on its base category name.\n     * Sets the appropriate category type for the field if found.\n     *\n     * @param {Field} field - The field to process\n     * @param {string} baseCategory - The base category name to look up\n     */\n    public processCategory(field: Field, baseCategory: string): void {\n        this.categoryType.reset();\n        const categoryData: ISpecCategories | undefined = this.cacheMap.get(baseCategory);\n        if (categoryData) {\n            this.categoryType.setCategory(categoryData);\n            field.setCategory(this.categoryType);\n        }\n    }\n}\n", "export interface ISpecDatatypes {\n    name: string;\n    added: string;\n    addedEP?: string;\n    updated?: string;\n    updatedEP?: string;\n    baseType?: string;\n    mappedDatatype?: {\n        builtin: string;\n        base: string;\n        standard: string;\n        minInclusive?: string;\n        pattern?: string;\n        description?: string;\n    };\n    description?: string;\n}\nexport const DATATYPES: ISpecDatatypes[] = [\n    {\n        name: 'int',\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'true',\n            base: 'xs:integer',\n        },\n        description:\n            'Sequence of digits without commas or decimals and optional sign character (ASCII characters \"-\" and \"0\" - \"9\" ). The sign character utilizes one byte (i.e. positive int is \"99999\" while negative int is \"-99999\"). Note that int values may contain leading zeros (e.g. \"00023\" = \"23\").',\n    },\n    {\n        name: 'Length',\n        baseType: 'int',\n        added: 'FIX.4.3',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:nonNegativeInteger',\n            description: 'int field representing the length in bytes. Value must be positive.',\n        },\n        description: 'int field representing the length in bytes. Value must be positive.',\n    },\n    {\n        name: 'TagNum',\n        baseType: 'int',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:nonNegativeInteger',\n            description:\n                'int field representing a tag number. Value must be positive and may not contain leading zeros.',\n        },\n        description:\n            'int field representing a field\\'s tag number when using FIX \"Tag=Value\" syntax. Value must be positive and may not contain leading zeros.',\n    },\n    {\n        name: 'SeqNum',\n        baseType: 'int',\n        added: 'FIX.4.3',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:positiveInteger',\n            description: 'int field representing a message sequence number. Value must be positive.',\n        },\n        description: 'int field representing a message sequence number. Value must be positive.',\n    },\n    {\n        name: 'NumInGroup',\n        baseType: 'int',\n        added: 'FIX.4.3',\n        description: 'int field representing the number of entries in a repeating group. Value must be positive.',\n    },\n    {\n        name: 'DayOfMonth',\n        baseType: 'int',\n        added: 'FIX.4.1',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:integer',\n            description: 'int field representing a day during a particular month (values 1 to 31).',\n        },\n        description: 'int field representing a day during a particular month (values 1 to 31).',\n    },\n    {\n        name: 'float',\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '206',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'true',\n            base: 'xs:decimal',\n            description:\n                'Sequence of digits with optional decimal point and sign character (ASCII characters \"-\", \"0\" - \"9\" and \".\"); the absence of the decimal point within the string will be interpreted as the float representation of an integer value. All float fields must accommodate up to fifteen significant digits. The number of decimal places used should be a factor of business/market needs and mutual agreement between counterparties. Note that float values may contain leading zeros (e.g. \"00023.23\" = \"23.23\") and may contain or omit trailing zeros after the decimal point (e.g. \"23.0\" = \"23.0000\" = \"23\" = \"23.\"). Note that fields which are derived from float may contain negative values unless explicitly specified otherwise.',\n        },\n        description:\n            'Sequence of digits with optional decimal point and sign character (ASCII characters \"-\", \"0\" - \"9\" and \".\"); the absence of the decimal point within the string will be interpreted as the float representation of an integer value. All float fields must accommodate up to fifteen significant digits. The number of decimal places used should be a factor of business/market needs and mutual agreement between counterparties. Note that float values may contain leading zeros (e.g. \"00023.23\" = \"23.23\") and may contain or omit trailing zeros after the decimal point (e.g. \"23.0\" = \"23.0000\" = \"23\" = \"23.\"). Note that fields which are derived from float may contain negative values unless explicitly specified otherwise.',\n    },\n    {\n        name: 'Qty',\n        baseType: 'float',\n        added: 'FIX.4.2',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:decimal',\n            description:\n                'float field capable of storing either a whole number (no decimal places) of \"shares\" (securities denominated in whole units) or a decimal value containing decimal places for non-share quantity asset classes (securities denominated in fractional units).',\n        },\n        description:\n            'float field capable of storing either a whole number (no decimal places) of \"shares\" (securities denominated in whole units) or a decimal value containing decimal places for non-share quantity asset classes (securities denominated in fractional units).',\n    },\n    {\n        name: 'Price',\n        baseType: 'float',\n        added: 'FIX.4.2',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:decimal',\n            description:\n                'float field representing a price. Note the number of decimal places may vary. For certain asset classes prices may be negative values. For example, prices for options strategies can be negative under certain market conditions. Refer to Volume 7: FIX Usage by Product for asset classes that support negative price values.',\n        },\n        description:\n            'float field representing a price. Note the number of decimal places may vary. For certain asset classes prices may be negative values. For example, prices for options strategies can be negative under certain market conditions. Refer to Volume 7: FIX Usage by Product for asset classes that support negative price values.',\n    },\n    {\n        name: 'PriceOffset',\n        baseType: 'float',\n        added: 'FIX.4.2',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:decimal',\n            description:\n                'float field representing a price offset, which can be mathematically added to a \"Price\". Note the number of decimal places may vary and some fields such as LastForwardPoints may be negative.',\n        },\n        description:\n            'float field representing a price offset, which can be mathematically added to a \"Price\". Note the number of decimal places may vary and some fields such as LastForwardPoints may be negative.',\n    },\n    {\n        name: 'Amt',\n        baseType: 'float',\n        added: 'FIX.4.2',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:decimal',\n            description: 'float field typically representing a Price times a Qty',\n        },\n        description: 'float field typically representing a Price times a Qty',\n    },\n    {\n        name: 'Percentage',\n        baseType: 'float',\n        added: 'FIX.4.3',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:decimal',\n            description:\n                'float field representing a percentage (e.g. 0.05 represents 5% and 0.9525 represents 95.25%). Note the number of decimal places may vary.',\n        },\n        description:\n            'float field representing a percentage (e.g. 0.05 represents 5% and 0.9525 represents 95.25%). Note the number of decimal places may vary.',\n    },\n    {\n        name: 'char',\n        added: 'FIX.2.7',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '206',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:string',\n            description:\n                'Single character value, can include any alphanumeric character or punctuation except the delimiter. All char fields are case sensitive (i.e. m != M).',\n        },\n        description:\n            'Single character value, can include any alphanumeric character or punctuation except the delimiter. All char fields are case sensitive (i.e. m != M).',\n    },\n    {\n        name: 'Boolean',\n        baseType: 'char',\n        added: 'FIX.4.2',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:string',\n            pattern: '[YN]{1}',\n            description: \"char field containing one of two values:\\n'Y' = True/Yes\\n'N' = False/No\",\n        },\n        description: \"char field containing one of two values:\\n'Y' = True/Yes\\n'N' = False/No\",\n    },\n    {\n        name: 'String',\n        added: 'FIX.4.2',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'true',\n            base: 'xs:string',\n            description:\n                'Alpha-numeric free format strings, can include any character or punctuation except the delimiter. All String fields are case sensitive (i.e. morstatt != Morstatt).',\n        },\n        description:\n            'Alpha-numeric free format strings, can include any character or punctuation except the delimiter. All String fields are case sensitive (i.e. morstatt != Morstatt).',\n    },\n    {\n        name: 'MultipleCharValue',\n        baseType: 'String',\n        added: 'FIX.4.4',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:string',\n            pattern: '[A-Za-z0-9](\\\\s[A-Za-z0-9])*',\n            description:\n                'string field containing one or more space delimited single character values (e.g. |18=2 A F| ).',\n        },\n        description: 'string field containing one or more space delimited single character values (e.g. |18=2 A F| ).',\n    },\n    {\n        name: 'MultipleStringValue',\n        baseType: 'String',\n        added: 'FIX.4.2',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:string',\n            pattern: '.+(\\\\s.+)*',\n            description:\n                'string field containing one or more space delimited multiple character values (e.g. |277=AV AN A| ).',\n        },\n        description:\n            'string field containing one or more space delimited multiple character values (e.g. |277=AV AN A| ).',\n    },\n    {\n        name: 'Country',\n        baseType: 'String',\n        added: 'FIX.4.4',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:string',\n            pattern: '.{2}',\n            description:\n                'string field representing a country using ISO 3166 Country code (2 character) values (see Appendix 6-B).',\n        },\n        description:\n            'string field representing a country using ISO 3166 Country code (2 character) values (see Appendix 6-B).',\n    },\n    {\n        name: 'Currency',\n        baseType: 'String',\n        added: 'FIX.4.2',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:string',\n            pattern: '.{3}',\n            description:\n                'string field representing a currency type using ISO 4217 Currency code (3 character) values (see Appendix 6-A).',\n        },\n        description:\n            'string field representing a currency type using ISO 4217 Currency code (3 character) values (see Appendix 6-A).',\n    },\n    {\n        name: 'Exchange',\n        baseType: 'String',\n        added: 'FIX.4.2',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:string',\n            pattern: '.*',\n            description:\n                'string field representing a market or exchange using ISO 10383 Market Identifier Code (MIC) values (see\"Appendix 6-C).',\n        },\n        description:\n            'string field representing a market or exchange using ISO 10383 Market Identifier Code (MIC) values (see\"Appendix 6-C).',\n    },\n    {\n        name: 'MonthYear',\n        baseType: 'String',\n        added: 'FIX.4.1',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:string',\n            pattern: '\\\\d{4}(0|1)\\\\d([0-3wW]\\\\d)?',\n            description:\n                'string field representing month of a year. An optional day of the month can be appended or an optional week code.\\nValid formats:\\nYYYYMM\\nYYYYMMDD\\nYYYYMMWW\\nValid values:\\nYYYY = 0000-9999; MM = 01-12; DD = 01-31; WW = w1, w2, w3, w4, w5.',\n        },\n        description:\n            'string field representing month of a year. An optional day of the month can be appended or an optional week code.\\nValid formats:\\nYYYYMM\\nYYYYMMDD\\nYYYYMMWW\\nValid values:\\nYYYY = 0000-9999; MM = 01-12; DD = 01-31; WW = w1, w2, w3, w4, w5.',\n    },\n    {\n        name: 'UTCTimestamp',\n        baseType: 'String',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '256',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:dateTime',\n            description:\n                'string field representing date and time combination Universal Time Coordinated (UTC), also known as Greenwich Mean Time (GMT).\\nIts value space is described as the combination of date and time of day in the Chapter 5.4 of ISO 8601.\\nValid values are in the format YYYY-MM-DDTHH:MM:SS.s where YYYY = 0000-9999 year, MM = 01-12 month, DD = 01-31 day, HH = 00-23 hour, MM = 00-59 minute, SS = 00-60 second (60 only if UTC leap second), and optionally one or more digits representing a decimal fraction of a second.\\nThe punctuation of \"-\", \":\" and the string value of \"T\" to separate the date and time are required. The \".\" is only required when sub-second time precision is specified.\\nLeap Seconds: Note that UTC includes corrections for leap seconds, which are inserted to account for slowing of the rotation of the earth. Leap second insertion is declared by the International Earth Rotation Service (IERS) and has, since 1972, only occurred on the night of Dec. 31 or Jun 30. The IERS considers March 31 and September 30 as secondary dates for leap second insertion, but has never utilized these dates. During a leap second insertion, a UTCTimestamp field may read \"1998-12-31T23:59:59\", \"1998-12-31T23:59:60\", \"1999-01-01T00:00:00\". (see http://tycho.usno.navy.mil/leapsec.html)',\n        },\n        description:\n            'string field representing time/date combination represented in UTC (Universal Time Coordinated, also known as \"GMT\") in either YYYYMMDD-HH:MM:SS (whole seconds) or YYYYMMDD-HH:MM:SS.sss* format, colons, dash, and period required.\\nValid values:\\nYYYY = 0000-9999, MM = 01-12, DD = 01-31, HH = 00-23, MM = 00-59, SS = 00-60 (60 only if UTC leap second), sss* fractions of seconds.\\nThe fractions of seconds may be empty when no fractions of seconds are conveyed (in such a case the period is not conveyed), it may include 3 digits to convey milliseconds, 6 digits to convey microseconds, 9 digits to convey nanoseconds, 12 digits to convey picoseconds; Other number of digits may be used with bilateral agreement.\\nLeap Seconds: Note that UTC includes corrections for leap seconds, which are inserted to account for slowing of the rotation of the earth. Leap second insertion is declared by the International Earth Rotation Service (IERS) and has, since 1972, only occurred on the night of Dec. 31 or Jun 30. The IERS considers March 31 and September 30 as secondary dates for leap second insertion, but has never utilized these dates. During a leap second insertion, a UTCTimestamp field may read \"19981231-23:59:59\", \"19981231-23:59:60\", \"19990101-00:00:00\". (see http://tycho.usno.navy.mil/leapsec.html)',\n    },\n    {\n        name: 'UTCTimeOnly',\n        baseType: 'String',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '206',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:time',\n            description:\n                'string field representing time-only in Universal Time Coordinated (UTC), also known as Greenwich Mean Time (GMT).\\nIts value space is described as the time of day in the Chapter 5.4 of ISO 8601.\\nValid values are in the format HH:MM:SS.s where HH = 00-23 hours, MM = 00-59 minutes, SS = 00-60 seconds (60 only if UTC leap second), and optionally s (one or more digits representing a decimal fraction of a second).\\nThe punctuation of \":\" between hours minutes and seconds are required. The \".\" is only required when sub-second time precision is specified.\\nThis special-purpose field is paired with UTCDateOnly to form a proper UTCTimestamp for bandwidth-sensitive messages.',\n        },\n        description:\n            'string field representing time-only represented in UTC (Universal Time Coordinated, also known as \"GMT\") in either HH:MM:SS (whole seconds) or HH:MM:SS.sss* (milliseconds) format, colons, and period required. This special-purpose field is paired with UTCDateOnly to form a proper UTCTimestamp for bandwidth-sensitive messages.\\nValid values:\\nHH = 00-23, MM = 00-59, SS = 00-60 (60 only if UTC leap second), sss* fractions of seconds. The fractions of seconds may be empty when no fractions of seconds are conveyed (in such a case the period is not conveyed), it may include 3 digits to convey milliseconds, 6 digits to convey microseconds, 9 digits to convey nanoseconds, 12 digits to convey picoseconds; Other number of digits may be used with bilateral agreement.',\n    },\n    {\n        name: 'UTCDateOnly',\n        baseType: 'String',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:date',\n            description:\n                'string field representing Date represented in UTC (Universal Time Coordinated, also known as GMT) in YYYY-MM-DD format specified in ISO 8601. This special-purpose field is paired with UTCTimeOnly to form a proper UTCTimestamp for bandwidth-sensitive messages.\\nValid values:\\nYYYY = 0000-9999, MM = 01-12, DD = 01-31.',\n        },\n        description:\n            'string field representing Date represented in UTC (Universal Time Coordinated, also known as \"GMT\") in YYYYMMDD format. This special-purpose field is paired with UTCTimeOnly to form a proper UTCTimestamp for bandwidth-sensitive messages.\\nValid values:\\nYYYY = 0000-9999, MM = 01-12, DD = 01-31.',\n    },\n    {\n        name: 'LocalMktDate',\n        baseType: 'String',\n        added: 'FIX.4.2',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '206',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:date',\n            description:\n                'string field representing a Date of Local Market (as opposed to UTC) in YYYY-MM-DD format. This is the \"normal\" date field used by the FIX Protocol.\\nValid values:\\nYYYY = 0000-9999, MM = 01-12, DD = 01-31.',\n        },\n        description:\n            'string field representing a Date of Local Market (as opposed to UTC) in YYYYMMDD format. This is the \"normal\" date field used by the FIX Protocol.\\nValid values:\\nYYYY = 0000-9999, MM = 01-12, DD = 01-31',\n    },\n    {\n        name: 'TZTimeOnly',\n        baseType: 'String',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '206',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'true',\n            base: 'xs:time',\n            description:\n                'string field representing the time based on ISO 8601. This is the time with a Universal Time Coordinated(UTC) offset to allow identification of local time and timezone.\\nIts value space is described as the combination of date and time of day in the Chapter 5.4 of ISO 8601.\\nValid values are in the format HH:MM[:SS][Z | [ + | - hh[:mm]]] where HH = 00-23 hours, MM = 00-59 minutes, SS = 00-59 seconds, hh = 01-12 offset hours, mm = 00-59 offset minutes.\\nThe punctuation of \":\" are required. The \"Z\" or \"+\" or \"-\" are optional to denote a time zone offset.',\n        },\n        description:\n            'string field representing the time represented based on ISO 8601. This is the time with a UTC offset to allow identification of local time and timezone of that time.\\nFormat is HH:MM[:SS][Z | [ + | - hh[:mm]]] where HH = 00-23 hours, MM = 00-59 minutes, SS = 00-59 seconds, hh = 01-12 offset hours, mm = 00-59 offset minutes.',\n    },\n    {\n        name: 'TZTimestamp',\n        baseType: 'String',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '206',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'true',\n            base: 'xs:dateTime',\n            description:\n                'string field representing a date and time combination in local time with an optional offset to Univeral Time Coordinated (UTC). Its vaue space is described as the combination of date and time of day in the Chapter 5.4 of based on ISO 8601.\\nValid values are in the fFormat is YYYY-MM-DD-THH:MM:SS.s*[Z | [ + | - hh[:mm]]] where YYYY = 0000 to 9999 year, MM = 01-12 month, DD = 01-31 day, HH = 00-23 hours, MM = 00-59 minutes, SS = 00-59 seconds, hh = 01-12 offset hours, mm = 00-59 offset minutes, and optionally sss (one or more digits representing a decimal fraction of a second), hh = 01-12 offset hours, mm = 00-59 offset minutes.\\nThe punctuation of \"-\", \":\" and the string value of \"T\" to separate the date and time are required. The \".\" is only required when sub-second time precision is specified. The \"Z\" or \"+\" or \"-\" are optional to denote an optional time zone offset.',\n        },\n        description:\n            'string field representing a time/date combination representing local time with an offset to UTC to allow identification of local time and timezone offset of that time. The representation is based on ISO 8601.\\nFormat is YYYYMMDD-HH:MM:SS.sss*[Z | [ + | - hh[:mm]]] where YYYY = 0000 to 9999, MM = 01-12, DD = 01-31 HH = 00-23 hours, MM = 00-59 minutes, SS = 00-59 seconds, hh = 01-12 offset hours, mm = 00-59 offset minutes, sss* fractions of seconds. The fractions of seconds may be empty when no fractions of seconds are conveyed (in such a case the period is not conveyed), it may include 3 digits to convey milliseconds, 6 digits to convey microseconds, 9 digits to convey nanoseconds, 12 digits to convey picoseconds; Other number of digits may be used with bilateral agreement',\n    },\n    {\n        name: 'data',\n        added: 'FIX.2.7',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'true',\n            base: 'xs:base64Binary',\n            description: 'In FIXML, all data type fields are using base64Binary encoding.',\n        },\n        description:\n            'string field containing opaque or non-ASCII data with no format or content restrictions. Data fields are always immediately preceded by a length field. The length field should specify the number of bytes of the value of the data field (up to but not including the terminating SOH). The number of bytes does not equal the number of characters when multibyte character sets are used.\\nCaution: The value of these fields may contain the delimiter (SOH) character. Note that the value specified for these fields must be followed by the delimiter (SOH) character as all tag-value fields are terminated with an SOH.',\n    },\n    {\n        name: 'Pattern',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        description:\n            'Used to build on and provide some restrictions on what is allowed as valid values in fields that uses a base FIX data type and a pattern data type. The universe of allowable valid values for the field would then be the union of the base set of valid values and what is defined by the pattern data type. The pattern data type used by the field will retain its base FIX data type (e.g. String, int, char).',\n    },\n    {\n        name: 'Tenor',\n        baseType: 'Pattern',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:string',\n            pattern: '[DMWY](\\\\d)+',\n            description:\n                'used to allow the expression of FX standard tenors in addition to the base valid enumerations defined for the field that uses this pattern data type. This pattern data type is defined as follows:\\nDx = tenor expression for \"days\", e.g. \"D5\", where \"x\" is any integer > 0\\nMx = tenor expression for \"months\", e.g. \"M3\", where \"x\" is any integer > 0\\nWx = tenor expression for \"weeks\", e.g. \"W13\", where \"x\" is any integer > 0\\nYx = tenor expression for \"years\", e.g. \"Y1\", where \"x\" is any integer > 0',\n        },\n        description:\n            'used to allow the expression of FX standard tenors in addition to the base valid enumerations defined for the field that uses this pattern data type. This pattern data type is defined as follows:\\nDx = tenor expression for \"days\", e.g. \"D5\", where \"x\" is any integer > 0\\nMx = tenor expression for \"months\", e.g. \"M3\", where \"x\" is any integer > 0\\nWx = tenor expression for \"weeks\", e.g. \"W13\", where \"x\" is any integer > 0\\nYx = tenor expression for \"years\", e.g. \"Y1\", where \"x\" is any integer > 0',\n    },\n    {\n        name: 'Reserved100Plus',\n        baseType: 'Pattern',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:integer',\n            minInclusive: '100',\n            description: 'Values \"100\" and above are reserved for bilaterally agreed upon user defined enumerations.',\n        },\n        description: 'Values \"100\" and above are reserved for bilaterally agreed upon user defined enumerations.',\n    },\n    {\n        name: 'Reserved1000Plus',\n        baseType: 'Pattern',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:integer',\n            minInclusive: '1000',\n            description: 'Values \"1000\" and above are reserved for bilaterally agreed upon user defined enumerations.',\n        },\n        description: 'Values \"1000\" and above are reserved for bilaterally agreed upon user defined enumerations.',\n    },\n    {\n        name: 'Reserved4000Plus',\n        baseType: 'Pattern',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:integer',\n            minInclusive: '4000',\n            description: 'Values \"4000\" and above are reserved for bilaterally agreed upon user defined enumerations.',\n        },\n        description: 'Values \"4000\" and above are reserved for bilaterally agreed upon user defined enumerations.',\n    },\n    {\n        name: 'XMLData',\n        baseType: 'String',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'false',\n            base: 'xs:string',\n        },\n        description:\n            'Contains an XML document raw data with no format or content restrictions. XMLData fields are always immediately preceded by a length field. The length field should specify the number of bytes of the value of the data field (up to but not including the terminating SOH).',\n    },\n    {\n        name: 'Language',\n        baseType: 'String',\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'true',\n            base: 'xs:language',\n        },\n        description: 'Identifier for a national language - uses ISO 639-1 standard',\n    },\n    {\n        name: 'LocalMktTime',\n        baseType: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'true',\n            base: 'xs:time',\n            description:\n                'string field representing the time local to a particular market center. Used where offset to UTC varies throughout the year and the defining market center is identified in a corresponding field.\\nFormat is HH:MM:SS where HH = 00-23 hours, MM = 00-59 minutes, SS = 00-59 seconds. In general only the hour token is non-zero.',\n        },\n        description:\n            'string field representing the time local to a particular market center. Used where offset to UTC varies throughout the year and the defining market center is identified in a corresponding field.\\nFormat is HH:MM:SS where HH = 00-23 hours, MM = 00-59 minutes, SS = 00-59 seconds. In general only the hour token is non-zero.',\n    },\n    {\n        name: 'XID',\n        baseType: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'true',\n            base: 'xs:ID',\n            description:\n                'The purpose of the XID datatype is to define a unique identifier that is global to a FIX message. An identifier defined using this datatype uniquely identifies its containing element, whatever its type and name is. The constraint added by this datatype is that the values of all the fields that have an ID datatype in a FIX message must be unique.',\n        },\n        description:\n            'The purpose of the XID datatype is to define a unique identifier that is global to a FIX message. An identifier defined using this datatype uniquely identifies its containing element, whatever its type and name is. The constraint added by this datatype is that the values of all the fields that have an XID datatype in a FIX message must be unique.',\n    },\n    {\n        name: 'XIDREF',\n        baseType: 'String',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        mappedDatatype: {\n            standard: 'XML',\n            builtin: 'true',\n            base: 'xs:IDREF',\n            description: 'The XIDREF datatype defines a reference to an identifier defined by the XID datatype.',\n        },\n        description: 'The XIDREF datatype defines a reference to an identifier defined by the XID datatype.',\n    },\n];\n", "import { DATATYPES, type ISpecDatatypes } from '../../spec/SpecDatatypes.ts';\nimport type { FIXValue } from '../../util/util.ts';\nimport type { Field } from '../Field.ts';\n\n/**\n * Class for managing FIX data types.\n * Provides functionality to validate and process different FIX data types,\n * including numeric types (int, float) and string types.\n */\nexport class DataTypes {\n    /** Array of all available data type specifications */\n    public dataTypes: ISpecDatatypes[] = DATATYPES;\n    /** Cache map for looking up data types by name */\n    public cacheMap: Map<string, ISpecDatatypes> = new Map<string, ISpecDatatypes>();\n    /** Cache map for type-specific formatters and validators */\n    public cacheTypeMap: Map<\n        string,\n        { formatter: typeof parseInt | typeof parseFloat | StringConstructor; validator: any }\n    > = new Map();\n\n    /**\n     * Creates a new DataTypes instance and initializes the cache maps\n     * with all available data type specifications and their corresponding\n     * formatters and validators.\n     */\n    constructor() {\n        this.dataTypes.forEach((item: ISpecDatatypes) => {\n            this.cacheMap.set(item.name, item);\n        });\n\n        // Initialize numeric type formatters and validators\n        this.cacheTypeMap.set('int', { formatter: Number.parseInt, validator: Number.isInteger });\n        this.cacheTypeMap.set('Length', { formatter: Number.parseInt, validator: Number.isInteger });\n        this.cacheTypeMap.set('TagNum', { formatter: Number.parseInt, validator: Number.isInteger });\n        this.cacheTypeMap.set('SeqNum', { formatter: Number.parseInt, validator: Number.isInteger });\n        this.cacheTypeMap.set('NumInGroup', { formatter: Number.parseInt, validator: Number.isInteger });\n        this.cacheTypeMap.set('DayOfMonth', { formatter: Number.parseInt, validator: Number.isInteger });\n\n        // Initialize floating-point type formatters and validators\n        this.cacheTypeMap.set('float', { formatter: Number.parseFloat, validator: Number.isFinite });\n        this.cacheTypeMap.set('Qty', { formatter: Number.parseFloat, validator: Number.isFinite });\n        this.cacheTypeMap.set('Price', { formatter: Number.parseFloat, validator: Number.isFinite });\n        this.cacheTypeMap.set('PriceOffset', { formatter: Number.parseFloat, validator: Number.isFinite });\n        this.cacheTypeMap.set('Amt', { formatter: Number.parseFloat, validator: Number.isFinite });\n        this.cacheTypeMap.set('Percentage', { formatter: Number.parseFloat, validator: Number.isFinite });\n\n        // Initialize string type formatters and validators\n        this.cacheTypeMap.set('char', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('Boolean', { formatter: String, validator: 'string' });\n\n        this.cacheTypeMap.set('String', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('MultipleCharValue', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('MultipleStringValue', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('Country', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('Currency', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('Exchange', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('MonthYear', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('UTCTimestamp', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('UTCTimeOnly', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('UTCDateOnly', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('LocalMktDate', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('LocalMktTime', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('TZTimeOnly', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('TZTimestamp', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('data', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('XMLData', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('XID', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('XIDREF', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('Language', { formatter: String, validator: 'string' });\n\n        this.cacheTypeMap.set('Pattern', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('Tenor', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('Reserved100Plus', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('Reserved1000Plus', { formatter: String, validator: 'string' });\n        this.cacheTypeMap.set('Reserved4000Plus', { formatter: String, validator: 'string' });\n    }\n\n    /**\n     * Validates a value against its expected data type.\n     *\n     * @param {FIXValue} value - The value to validate\n     * @param {string | undefined} type - The expected data type\n     * @returns {boolean} True if the value is valid for the type, false otherwise\n     */\n    public validateDatatype(value: FIXValue, type: string | undefined): boolean {\n        if (!type) {\n            return true;\n        }\n\n        const typeMap = this.cacheTypeMap.get(type);\n        if (typeMap) {\n            if (typeMap.validator === 'string') {\n                return typeof value === 'string';\n            }\n            return typeMap.validator(value);\n        }\n        return false;\n    }\n\n    /**\n     * Processes a field's data type, setting appropriate type information\n     * and converting values to their proper format if necessary.\n     *\n     * @param {Field} field - The field to process\n     * @param {string} type - The data type to set\n     */\n    public processDatatype(field: Field, type: string): void {\n        const dataType: ISpecDatatypes | undefined = this.cacheMap.get(type);\n        if (dataType) {\n            field.setType(dataType);\n            if (\n                type === 'int' ||\n                type === 'Length' ||\n                type === 'TagNum' ||\n                type === 'SeqNum' ||\n                type === 'NumInGroup' ||\n                type === 'DayOfMonth'\n            ) {\n                field.setValue(Number(field.value!));\n            } else if (\n                type === 'float' ||\n                type === 'Qty' ||\n                type === 'Price' ||\n                type === 'PriceOffset' ||\n                type === 'Amt' ||\n                type === 'Percentage'\n            ) {\n                field.setValue(Number.parseFloat(field.value as string));\n            }\n        }\n    }\n}\n", "export interface ISpecSections {\n    SectionID: string;\n    Name: string;\n    DisplayOrder: number;\n    Volume: string;\n    NotReqXML: number;\n    FIXMLFileName: string;\n    Description: string;\n}\n\nexport const SECTIONS: ISpecSections[] = [\n    {\n        DisplayOrder: 0,\n        Description: 'Session level messages to establish and control a FIX session',\n        Volume: 'FIXT.1.1',\n        FIXMLFileName: 'session',\n        NotReqXML: 1,\n        SectionID: 'Session',\n        Name: 'Session',\n    },\n    {\n        DisplayOrder: 1,\n        Description:\n            'Pre trade messages including reference data, market data, quoting, news and email, indication of interest',\n        Volume: '3',\n        FIXMLFileName: 'pretrade',\n        NotReqXML: 0,\n        SectionID: 'PreTrade',\n        Name: 'PreTrade',\n    },\n    {\n        DisplayOrder: 2,\n        Description: 'Order handling and execution messages',\n        Volume: '4',\n        FIXMLFileName: 'trade',\n        NotReqXML: 0,\n        SectionID: 'Trade',\n        Name: 'Trade',\n    },\n    {\n        DisplayOrder: 3,\n        Description:\n            'Post trade messages including trade reporting, allocation, collateral, confirmation, position maintenance, registration instruction, and settlement instructions',\n        Volume: '5',\n        FIXMLFileName: 'posttrade',\n        NotReqXML: 0,\n        SectionID: 'PostTrade',\n        Name: 'PostTrade',\n    },\n    {\n        DisplayOrder: 4,\n        Description: 'Infrastructure messages for application sequencing, business reject, network and user management',\n        Volume: '1',\n        FIXMLFileName: 'infrastructure',\n        NotReqXML: 0,\n        SectionID: 'Infrastructure',\n        Name: 'Infrastructure',\n    },\n];\n", "import type { ISpecSections } from '../../spec/SpecSections.ts';\n\n/**\n * Class representing a FIX field section type.\n * Stores and manages section-specific information for FIX fields.\n */\nexport class SectionType {\n    /** The unique identifier for the section */\n    public sectionID: string | undefined = undefined;\n    /** The name of the section */\n    public name: string | undefined = undefined;\n    /** The order in which the section should be displayed */\n    public displayOrder: number | undefined = undefined;\n    /** The volume this section belongs to */\n    public volume: string | undefined = undefined;\n    /** Whether this section is not required in XML */\n    public notReqXML: boolean | undefined = undefined;\n    /** The FIXML file name associated with this section */\n    public fixmlFileName: string | undefined = undefined;\n    /** A description of the section */\n    public description: string | undefined = undefined;\n\n    /**\n     * Sets the section properties based on the provided section specification.\n     *\n     * @param {ISpecSections} section - The section specification to set\n     */\n    public setSection(section: ISpecSections): void {\n        this.sectionID = section.SectionID;\n        this.name = section.Name;\n        this.displayOrder = section.DisplayOrder;\n        this.volume = section.Volume;\n        this.notReqXML = section.NotReqXML === 1;\n        this.fixmlFileName = section.FIXMLFileName;\n        this.description = section.Description;\n    }\n\n    /**\n     * Resets all section properties to undefined.\n     */\n    public reset(): void {\n        this.sectionID = undefined;\n        this.name = undefined;\n        this.displayOrder = undefined;\n        this.volume = undefined;\n        this.notReqXML = undefined;\n        this.fixmlFileName = undefined;\n        this.description = undefined;\n    }\n}\n", "import { type ISpecSections, SECTIONS } from '../../spec/SpecSections.ts';\nimport type { Field } from '../Field.ts';\nimport { SectionType } from './SectionType.ts';\n\n/**\n * Class for managing FIX field sections.\n * Provides functionality to process and organize FIX fields into their respective sections.\n */\nexport class Sections {\n    /** Array of all available section specifications */\n    public sections: ISpecSections[] = SECTIONS;\n    /** Cache map for looking up sections by ID */\n    public cacheMap: Map<string, ISpecSections> = new Map<string, ISpecSections>();\n    /** Instance of SectionType for managing section data */\n    public sectionType: SectionType = new SectionType();\n\n    /**\n     * Creates a new Sections instance and initializes the cache map\n     * with all available section specifications.\n     */\n    constructor() {\n        this.sections.forEach((section) => {\n            this.cacheMap.set(section.SectionID, section);\n        });\n    }\n\n    /**\n     * Processes a field's section based on its section ID.\n     * Sets the appropriate section type for the field if found.\n     *\n     * @param {Field} item - The field to process\n     * @param {string} sectionId - The section ID to look up\n     */\n    public processSection(item: Field, sectionId: string): void {\n        this.sectionType.reset();\n        const sectionData: ISpecSections | undefined = this.cacheMap.get(sectionId);\n        if (sectionData) {\n            this.sectionType.setSection(sectionData);\n            item.setSection(this.sectionType);\n        }\n    }\n}\n", "import { Field as FieldType } from '../fieldtypes/Field.ts';\nimport type { Message } from '../message/Message.ts';\nimport { MessageType } from '../messagetype/MessageType.ts';\nimport { FIELDS, type ISpecFields } from '../spec/SpecFields.ts';\nimport { Categories } from './categories/Categories.ts';\nimport { DataTypes } from './datatypes/Datatypes.ts';\nimport type { Field } from './Field.ts';\nimport { Sections } from './sections/Sections.ts';\n\n/**\n * Fields class manages the collection of FIX fields and their processing.\n * It maintains a cache of field definitions and provides methods to process\n * fields within FIX messages.\n *\n * @public\n */\nexport class Fields {\n    /** Array of all FIX field specifications */\n    public fields: ISpecFields[] = FIELDS;\n    /** Cache map for quick field lookup by tag number */\n    public cacheMap: Map<number, ISpecFields> = new Map<number, ISpecFields>();\n    /** Message type processor */\n    public messageType: MessageType = new MessageType();\n    /** Categories processor */\n    public categories: Categories = new Categories();\n    /** Sections processor */\n    public sections: Sections = new Sections();\n    /** Data types processor */\n    public dataTypes: DataTypes = new DataTypes();\n\n    /**\n     * Creates a new Fields instance and initializes the cache map\n     * with all available field specifications.\n     */\n    constructor() {\n        this.fields.forEach((item: ISpecFields) => {\n            this.cacheMap.set(Number(item.id) >> 0, item);\n        });\n    }\n\n    /**\n     * Processes a field within a message, setting its properties based on\n     * the field specification. This includes setting the name, description,\n     * category, section, and data type of the field.\n     *\n     * @param {Message} message - The FIX message containing the field\n     * @param {Field} field - The field to process\n     */\n    public processField(message: Message, field: Field): void {\n        const data: ISpecFields | undefined = this.cacheMap.get(field.tag);\n        if (data) {\n            if (field.tag === FieldType.MsgType) {\n                this.messageType.setMessageType(message, field);\n            }\n            if (field.tag === FieldType.MsgSeqNum) {\n                this.messageType.setMessageSequence(message, Number(field.value));\n            }\n\n            field.setName(data.name);\n            field.setDescription(data.description ?? '');\n\n            if (data.baseCategory) {\n                this.categories.processCategory(field, data.baseCategory);\n\n                if (field.category?.sectionID) {\n                    this.sections.processSection(field, field.category?.sectionID ?? '');\n                }\n            }\n\n            this.dataTypes.processDatatype(field, data.type);\n        } else {\n            field.setType(undefined);\n            field.setValue(field.value);\n        }\n    }\n}\n", "/*! OpenPGP.js v6.3.1 - 2026-06-04 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */\nconst globalThis = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction _mergeNamespaces(n, m) {\n  m.forEach(function (e) {\n    e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {\n      if (k !== 'default' && !(k in n)) {\n        var d = Object.getOwnPropertyDescriptor(e, k);\n        Object.defineProperty(n, k, d.get ? d : {\n          enumerable: true,\n          get: function () { return e[k]; }\n        });\n      }\n    });\n  });\n  return Object.freeze(n);\n}\n\nconst doneWritingPromise = Symbol('doneWritingPromise');\nconst doneWritingResolve = Symbol('doneWritingResolve');\nconst doneWritingReject = Symbol('doneWritingReject');\n\nconst readingIndex = Symbol('readingIndex');\n\nclass ArrayStream extends Array {\n  constructor() {\n    super();\n    // ES5 patch, see https://github.com/Microsoft/TypeScript/wiki/FAQ#why-doesnt-extending-built-ins-like-error-array-and-map-work\n    Object.setPrototypeOf(this, ArrayStream.prototype);\n\n    this[doneWritingPromise] = new Promise((resolve, reject) => {\n      this[doneWritingResolve] = resolve;\n      this[doneWritingReject] = reject;\n    });\n    this[doneWritingPromise].catch(() => {});\n  }\n}\n\nArrayStream.prototype.getReader = function() {\n  if (this[readingIndex] === undefined) {\n    this[readingIndex] = 0;\n  }\n  return {\n    read: async () => {\n      await this[doneWritingPromise];\n      if (this[readingIndex] === this.length) {\n        return { value: undefined, done: true };\n      }\n      return { value: this[this[readingIndex]++], done: false };\n    }\n  };\n};\n\nArrayStream.prototype.readToEnd = async function(join) {\n  await this[doneWritingPromise];\n  const result = join(this.slice(this[readingIndex]));\n  this.length = 0;\n  return result;\n};\n\nArrayStream.prototype.clone = function() {\n  const clone = new ArrayStream();\n  clone[doneWritingPromise] = this[doneWritingPromise].then(() => {\n    clone.push(...this);\n  });\n  return clone;\n};\n\n/**\n * Check whether data is an ArrayStream\n * @param {Any} input  data to check\n * @returns {boolean}\n */\nfunction isArrayStream(input) {\n  return input && input.getReader && Array.isArray(input);\n}\n\n/**\n * A wrapper class over the native WritableStreamDefaultWriter.\n * It also lets you \"write data to\" array streams instead of streams.\n * @class\n */\nfunction Writer(input) {\n  if (!isArrayStream(input)) {\n    const writer = input.getWriter();\n    const releaseLock = writer.releaseLock;\n    writer.releaseLock = () => {\n      writer.closed.catch(function() {});\n      releaseLock.call(writer);\n    };\n    return writer;\n  }\n  this.stream = input;\n}\n\n/**\n * Write a chunk of data.\n * @returns {Promise<undefined>}\n * @async\n */\nWriter.prototype.write = async function(chunk) {\n  this.stream.push(chunk);\n};\n\n/**\n * Close the stream.\n * @returns {Promise<undefined>}\n * @async\n */\nWriter.prototype.close = async function() {\n  this.stream[doneWritingResolve]();\n};\n\n/**\n * Error the stream.\n * @returns {Promise<Object>}\n * @async\n */\nWriter.prototype.abort = async function(reason) {\n  this.stream[doneWritingReject](reason);\n  return reason;\n};\n\n/**\n * Release the writer's lock.\n * @returns {undefined}\n * @async\n */\nWriter.prototype.releaseLock = function() {};\n\n/* eslint-disable no-prototype-builtins */\ntypeof globalThis.process === 'object' &&\n  typeof globalThis.process.versions === 'object';\n\n/**\n * Check whether data is a Stream, and if so of which type\n * @param {Any} input  data to check\n * @returns {'web'|'node'|'array'|'web-like'|false}\n */\nfunction isStream(input) {\n  if (isArrayStream(input)) {\n    return 'array';\n  }\n  if (globalThis.ReadableStream && globalThis.ReadableStream.prototype.isPrototypeOf(input)) {\n    return 'web';\n  }\n  // try and detect a node native stream without having to import its class\n  if (input &&\n    !(globalThis.ReadableStream && input instanceof globalThis.ReadableStream) &&\n    typeof input._read === 'function' && typeof input._readableState === 'object') {\n    throw new Error('Native Node streams are no longer supported: please manually convert the stream to a WebStream, using e.g. `stream.Readable.toWeb`');\n  }\n  if (input && input.getReader) {\n    return 'web-like';\n  }\n  return false;\n}\n\n/**\n * Check whether data is a Uint8Array\n * @param {Any} input  data to check\n * @returns {Boolean}\n */\nfunction isUint8Array(input) {\n  return Uint8Array.prototype.isPrototypeOf(input);\n}\n\n/**\n * Concat Uint8Arrays\n * @param {Array<Uint8array>} Array of Uint8Arrays to concatenate\n * @returns {Uint8array} Concatenated array\n */\nfunction concatUint8Array(arrays) {\n  if (arrays.length === 1) return arrays[0];\n\n  let totalLength = 0;\n  for (let i = 0; i < arrays.length; i++) {\n    if (!isUint8Array(arrays[i])) {\n      throw new Error('concatUint8Array: Data must be in the form of a Uint8Array');\n    }\n\n    totalLength += arrays[i].length;\n  }\n\n  const result = new Uint8Array(totalLength);\n  let pos = 0;\n  arrays.forEach(function (element) {\n    result.set(element, pos);\n    pos += element.length;\n  });\n\n  return result;\n}\n\nconst doneReadingSet = new WeakSet();\n/**\n * The external buffer is used to store values that have been peeked or unshifted from the original stream.\n * Because of how streams are implemented, such values cannot be \"put back\" in the original stream,\n * but they need to be returned first when reading from the input again.\n */\nconst externalBuffer = Symbol('externalBuffer');\n\n/**\n * A wrapper class over the native ReadableStreamDefaultReader.\n * This additionally implements pushing back data on the stream, which\n * lets us implement peeking and a host of convenience functions.\n * It also lets you read data other than streams, such as a Uint8Array.\n * @class\n */\nfunction Reader(input) {\n  this.stream = input;\n  if (input[externalBuffer]) {\n    this[externalBuffer] = input[externalBuffer].slice();\n  }\n  if (isArrayStream(input)) {\n    const reader = input.getReader();\n    this._read = reader.read.bind(reader);\n    this._releaseLock = () => {};\n    this._cancel = () => {};\n    return;\n  }\n  let streamType = isStream(input);\n  if (streamType) {\n    const reader = input.getReader();\n    this._read = reader.read.bind(reader);\n    this._releaseLock = () => {\n      reader.closed.catch(function() {});\n      reader.releaseLock();\n    };\n    this._cancel = reader.cancel.bind(reader);\n    return;\n  }\n  let doneReading = false;\n  this._read = async () => {\n    if (doneReading || doneReadingSet.has(input)) {\n      return { value: undefined, done: true };\n    }\n    doneReading = true;\n    return { value: input, done: false };\n  };\n  this._releaseLock = () => {\n    if (doneReading) {\n      try {\n        doneReadingSet.add(input);\n      } catch {}\n    }\n  };\n}\n\n/**\n * Read a chunk of data.\n * @returns {Promise<Object>} Either { done: false, value: Uint8Array | String } or { done: true, value: undefined }\n * @async\n */\nReader.prototype.read = async function() {\n  if (this[externalBuffer] && this[externalBuffer].length) {\n    const value = this[externalBuffer].shift();\n    return { done: false, value };\n  }\n  return this._read();\n};\n\n/**\n * Allow others to read the stream.\n */\nReader.prototype.releaseLock = function() {\n  if (this[externalBuffer]) {\n    this.stream[externalBuffer] = this[externalBuffer];\n  }\n  this._releaseLock();\n};\n\n/**\n * Cancel the stream.\n */\nReader.prototype.cancel = function(reason) {\n  return this._cancel(reason);\n};\n\n/**\n * Read up to and including the first \\n character.\n * @returns {Promise<String|Undefined>}\n * @async\n */\nReader.prototype.readLine = async function() {\n  let buffer = [];\n  let returnVal;\n  while (!returnVal) {\n    let { done, value } = await this.read();\n    value += '';\n    if (done) {\n      if (buffer.length) return concat(buffer);\n      return;\n    }\n    const lineEndIndex = value.indexOf('\\n') + 1;\n    if (lineEndIndex) {\n      returnVal = concat(buffer.concat(value.substr(0, lineEndIndex)));\n      buffer = [];\n    }\n    if (lineEndIndex !== value.length) {\n      buffer.push(value.substr(lineEndIndex));\n    }\n  }\n  this.unshift(...buffer);\n  return returnVal;\n};\n\n/**\n * Read a single byte/character.\n * @returns {Promise<Number|String|Undefined>}\n * @async\n */\nReader.prototype.readByte = async function() {\n  const { done, value } = await this.read();\n  if (done) return;\n  const byte = value[0];\n  this.unshift(slice(value, 1));\n  return byte;\n};\n\n/**\n * Read a specific amount of bytes/characters, unless the stream ends before that amount.\n * @returns {Promise<Uint8Array|String|Undefined>}\n * @async\n */\nReader.prototype.readBytes = async function(length) {\n  const buffer = [];\n  let bufferLength = 0;\n  // eslint-disable-next-line no-constant-condition\n  while (true) {\n    const { done, value } = await this.read();\n    if (done) {\n      if (buffer.length) return concat(buffer);\n      return;\n    }\n    buffer.push(value);\n    bufferLength += value.length;\n    if (bufferLength >= length) {\n      const bufferConcat = concat(buffer);\n      this.unshift(slice(bufferConcat, length));\n      return slice(bufferConcat, 0, length);\n    }\n  }\n};\n\n/**\n * Peek (look ahead) a specific amount of bytes/characters, unless the stream ends before that amount.\n * @returns {Promise<Uint8Array|String|Undefined>}\n * @async\n */\nReader.prototype.peekBytes = async function(length) {\n  const bytes = await this.readBytes(length);\n  this.unshift(bytes);\n  return bytes;\n};\n\n/**\n * Push data to the front of the stream.\n * Data must have been read in the last call to read*.\n * @param {...(Uint8Array|String|Undefined)} values\n */\nReader.prototype.unshift = function(...values) {\n  if (!this[externalBuffer]) {\n    this[externalBuffer] = [];\n  }\n  if (\n    values.length === 1 && isUint8Array(values[0]) &&\n    this[externalBuffer].length && values[0].length &&\n    this[externalBuffer][0].byteOffset >= values[0].length\n  ) {\n    this[externalBuffer][0] = new Uint8Array(\n      this[externalBuffer][0].buffer,\n      this[externalBuffer][0].byteOffset - values[0].length,\n      this[externalBuffer][0].byteLength + values[0].length\n    );\n    return;\n  }\n  this[externalBuffer].unshift(...values.filter(value => value && value.length));\n};\n\n/**\n * Read the stream to the end and return its contents, concatenated by the join function (defaults to streams.concat).\n * @param {Function} join\n * @returns {Promise<Uint8array|String|Any>} the return value of join()\n * @async\n */\nReader.prototype.readToEnd = async function(join=concat) {\n  const result = [];\n  // eslint-disable-next-line no-constant-condition\n  while (true) {\n    const { done, value } = await this.read();\n    if (done) break;\n    result.push(value);\n  }\n  return join(result);\n};\n\n/**\n * Convert data to Stream\n * @param {ReadableStream|ArrayStream|Uint8array|String} input  data to convert\n * @returns {ReadableStream|ArrayStream} Converted data\n */\nfunction toStream(input) {\n  if (isStream(input)) {\n    return input;\n  }\n  return new ReadableStream({\n    start(controller) {\n      controller.enqueue(input);\n      controller.close();\n    }\n  });\n}\n\n/**\n * Convert non-streamed data to ArrayStream; this is a noop if `input` is already a stream.\n * @param {Object} input  data to convert\n * @returns {ArrayStream} Converted data\n */\nfunction toArrayStream(input) {\n  const streamType = isStream(input);\n  if (streamType) {\n    if (streamType !== 'array') {\n      throw new Error(\"Can't convert Stream to ArrayStream here, call `readToEnd` first\");\n    }\n    return input;\n  }\n  const stream = new ArrayStream();\n  (async () => {\n    const writer = getWriter(stream);\n    await writer.write(input);\n    await writer.close();\n  })();\n  return stream;\n}\n\n/**\n * Concat a list of Uint8Arrays, Strings or Streams\n * The caller should not mix Uint8Arrays with Strings, but may mix Streams with non-Streams.\n * @param {Array<Uint8array|String|ReadableStream>} Array of Uint8Arrays/Strings/Streams to concatenate\n * @returns {Uint8array|String|ReadableStream} Concatenated array\n */\nfunction concat(list) {\n  if (list.some(stream => isStream(stream) && !isArrayStream(stream))) {\n    return concatStream(list);\n  }\n  if (list.some(stream => isArrayStream(stream))) {\n    return concatArrayStream(list);\n  }\n  if (typeof list[0] === 'string') {\n    return list.join('');\n  }\n  return concatUint8Array(list);\n}\n\n/**\n * Concat a list of Streams\n * @param {Array<ReadableStream|Uint8array|String>} list  Array of Uint8Arrays/Strings/Streams to concatenate\n * @returns {ReadableStream} Concatenated list\n */\nfunction concatStream(list) {\n  const streamedList = list.map(toStream);\n  const transform = transformWithCancel(async function(reason) {\n    await Promise.all(transforms.map(stream => cancel(stream, reason)));\n  });\n  let prev = Promise.resolve();\n  const transforms = streamedList.map((stream, i) => transformPair(stream, (readable, _writable) => {\n    prev = prev.then(() => pipe(readable, transform.writable, {\n      preventClose: i !== streamedList.length - 1\n    }));\n    return prev;\n  }));\n  return transform.readable;\n}\n\n/**\n * Concat a list of ArrayStreams\n * @param {Array<ArrayStream|Uint8array|String>} list  Array of Uint8Arrays/Strings/ArrayStreams to concatenate\n * @returns {ArrayStream} Concatenated streams\n */\nfunction concatArrayStream(list) {\n  const result = new ArrayStream();\n  let prev = Promise.resolve();\n  list.forEach((stream, i) => {\n    prev = prev.then(() => pipe(stream, result, {\n      preventClose: i !== list.length - 1\n    }));\n    return prev;\n  });\n  return result;\n}\n\n/**\n * Pipe a readable stream to a writable stream. Don't throw on input stream errors, but forward them to the output stream.\n * @param {ReadableStream|Uint8array|String} input\n * @param {WritableStream} target\n * @param {Object} (optional) options\n * @returns {Promise<undefined>} Promise indicating when piping has finished (input stream closed or errored)\n * @async\n */\nasync function pipe(input, target, {\n  preventClose = false,\n  preventAbort = false,\n  preventCancel = false\n} = {}) {\n  if (isStream(input) && !isArrayStream(input) && !isArrayStream(target)) {\n    input = toStream(input);\n    try {\n      if (input[externalBuffer]) {\n        const writer = getWriter(target);\n        for (let i = 0; i < input[externalBuffer].length; i++) {\n          await writer.ready;\n          await writer.write(input[externalBuffer][i]);\n        }\n        writer.releaseLock();\n      }\n      await input.pipeTo(target, {\n        preventClose,\n        preventAbort,\n        preventCancel\n      });\n    } catch {}\n    return;\n  }\n  if (!isStream(input)) {\n    input = toArrayStream(input);\n  }\n  const reader = getReader(input);\n  const writer = getWriter(target);\n  try {\n    // eslint-disable-next-line no-constant-condition\n    while (true) {\n      await writer.ready;\n      const { done, value } = await reader.read();\n      if (done) {\n        if (!preventClose) await writer.close();\n        break;\n      }\n      await writer.write(value);\n    }\n  } catch (e) {\n    if (!preventAbort) await writer.abort(e);\n  } finally {\n    reader.releaseLock();\n    writer.releaseLock();\n  }\n}\n\n/**\n * Create a cancelable TransformStream.\n * @param {Function} cancel\n * @returns {TransformStream}\n */\nfunction transformWithCancel(customCancel) {\n  let pulled = false;\n  let cancelled = false;\n  let backpressureChangePromiseResolve, backpressureChangePromiseReject;\n  let outputController;\n  return {\n    readable: new ReadableStream({\n      start(controller) {\n        outputController = controller;\n      },\n      pull() {\n        if (backpressureChangePromiseResolve) {\n          backpressureChangePromiseResolve();\n        } else {\n          pulled = true;\n        }\n      },\n      async cancel(reason) {\n        cancelled = true;\n        if (customCancel) {\n          await customCancel(reason);\n        }\n        if (backpressureChangePromiseReject) {\n          backpressureChangePromiseReject(reason);\n        }\n      }\n    }, {highWaterMark: 0}),\n    writable: new WritableStream({\n      write: async function(chunk) {\n        if (cancelled) {\n          throw new Error('Stream is cancelled');\n        }\n        outputController.enqueue(chunk);\n        if (!pulled) {\n          await new Promise((resolve, reject) => {\n            backpressureChangePromiseResolve = resolve;\n            backpressureChangePromiseReject = reject;\n          });\n          backpressureChangePromiseResolve = null;\n          backpressureChangePromiseReject = null;\n        } else {\n          pulled = false;\n        }\n      },\n      close: outputController.close.bind(outputController),\n      abort: outputController.error.bind(outputController)\n    })\n  };\n}\n\n/**\n * Transform a stream using helper functions which are called on each chunk, and on stream close, respectively.\n * Takes an optional queuing strategy for the resulting readable stream;\n * see https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/ReadableStream#queuingstrategy.\n * By default, the queueing strategy is non-buffering.\n * @param {ReadableStream|Uint8array|String} input\n * @param {Function} process\n * @param {Function} finish\n * @param {Object} queuingStrategy\n * @returns {ReadableStream|Uint8array|String}\n */\nfunction transform(input, process = () => undefined, finish = () => undefined, queuingStrategy = { highWaterMark: 0 }) {\n  if (isStream(input)) {\n    return _transformStream(input, process, finish, queuingStrategy);\n  }\n  const result1 = process(input);\n  const result2 = finish();\n  if (result1 !== undefined && result2 !== undefined) return concat([result1, result2]);\n  return result1 !== undefined ? result1 : result2;\n}\n\n/**\n * Transform a stream using helper functions which are called on each chunk, and on stream close, respectively.\n * Takes an optional queuing strategy for the resulting readable stream;\n * see https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/ReadableStream#queuingstrategy.\n * By default, the queueing strategy is to buffer one chunk.\n * @param {ReadableStream|Uint8array|String} input\n * @param {Function} process\n * @param {Function} finish\n * @param {Object} queuingStrategy\n * @returns {ReadableStream|Uint8array|String}\n */\nasync function transformAsync(\n  input,\n  process = async () => undefined,\n  finish = async () => undefined,\n  queuingStrategy = { highWaterMark: 1 }\n) {\n  if (isStream(input)) {\n    return _transformStream(input, process, finish, queuingStrategy);\n  }\n  const result1 = await process(input);\n  const result2 = await finish();\n  if (result1 !== undefined && result2 !== undefined) return concat([result1, result2]);\n  return result1 !== undefined ? result1 : result2;\n}\n\nfunction _transformStream(input, process, finish, queuingStrategy) {\n  if (isArrayStream(input)) {\n    const output = new ArrayStream();\n    (async () => {\n      const writer = getWriter(output);\n      try {\n        const data = await readToEnd(input);\n        const result1 = await process(data);\n        const result2 = await finish();\n        let result;\n        if (result1 !== undefined && result2 !== undefined) result = concat([result1, result2]);\n        else result = result1 !== undefined ? result1 : result2;\n        await writer.write(result);\n        await writer.close();\n      } catch (e) {\n        await writer.abort(e);\n      }\n    })();\n    return output;\n  }\n  if (isStream(input)) {\n    let reader;\n    let allDone = false;\n    return new ReadableStream({\n      start() {\n        reader = input.getReader();\n      },\n      async pull(controller) {\n        if (allDone) {\n          controller.close();\n          input.releaseLock();\n          return;\n        }\n        try {\n          // Read repeatedly until we have a chunk to enqueue or until\n          // we can close the stream, as `pull` won't get called again\n          // until we call `enqueue` or `close`.\n          while (true) { // eslint-disable-line no-constant-condition\n            const { value, done } = await reader.read();\n            allDone = done;\n            const result = await (done ? finish : process)(value);\n            if (result !== undefined) {\n              controller.enqueue(result);\n              return; // `pull` will get called again\n            }\n            if (done) {\n              // If `finish` didn't return a chunk to enqueue, call\n              // `close` here. Otherwise, it will get called in the\n              // next call to `pull`, above (since `allDone == true`).\n              controller.close();\n              input.releaseLock();\n              return;\n            }\n          }\n        } catch (e) {\n          controller.error(e);\n        }\n      },\n      async cancel(reason) {\n        await reader.cancel(reason);\n      }\n    }, queuingStrategy);\n  }\n  throw new Error('Unreachable');\n}\n\n/**\n * Transform a stream using a helper function which is passed a readable and a writable stream.\n *   This function also maintains the possibility to cancel the input stream,\n *   and does so on cancelation of the output stream, despite cancelation\n *   normally being impossible when the input stream is being read from.\n * @param {ReadableStream|Uint8array|String} input\n * @param {Function} fn\n * @returns {ReadableStream}\n */\nfunction transformPair(input, fn) {\n  if (isStream(input) && !isArrayStream(input)) {\n    let incomingTransformController;\n    const incoming = new TransformStream({\n      start(controller) {\n        incomingTransformController = controller;\n      }\n    });\n\n    const pipeDonePromise = pipe(input, incoming.writable);\n\n    const outgoing = transformWithCancel(async function(reason) {\n      incomingTransformController.error(reason);\n      await pipeDonePromise;\n      await new Promise(resolve => setTimeout(resolve));\n    });\n    fn(incoming.readable, outgoing.writable);\n    return outgoing.readable;\n  }\n  input = toArrayStream(input);\n  const output = new ArrayStream();\n  fn(input, output);\n  return output;\n}\n\n/**\n * Parse a stream using a helper function which is passed a Reader.\n *   The reader additionally has a remainder() method which returns a\n *   stream pointing to the remainder of input, and is linked to input\n *   for cancelation.\n * @param {ReadableStream|Uint8array|String} input\n * @param {Function} fn\n * @returns {Any} the return value of fn()\n */\nfunction parse(input, fn) {\n  let returnValue;\n  const transformed = transformPair(input, (readable, writable) => {\n    const reader = getReader(readable);\n    reader.remainder = () => {\n      reader.releaseLock();\n      pipe(readable, writable);\n      return transformed;\n    };\n    returnValue = fn(reader);\n  });\n  return returnValue;\n}\n\n/**\n * Tee a Stream for reading it twice. The input stream can no longer be read after tee()ing.\n *   Reading either of the two returned streams will pull from the input stream.\n *   The input stream will only be canceled if both of the returned streams are canceled.\n * @param {ReadableStream|Uint8array|String} input\n * @returns {Array<ReadableStream|Uint8array|String>} array containing two copies of input\n */\nfunction tee(input) {\n  if (isArrayStream(input)) {\n    throw new Error('ArrayStream cannot be tee()d, use clone() instead');\n  }\n  if (isStream(input)) {\n    const teed = toStream(input).tee();\n    teed[0][externalBuffer] = teed[1][externalBuffer] = input[externalBuffer];\n    return teed;\n  }\n  return [slice(input), slice(input)];\n}\n\n/**\n * Clone a Stream for reading it twice. The input stream can still be read after clone()ing.\n *   Reading from the clone will pull from the input stream.\n *   The input stream will only be canceled if both the clone and the input stream are canceled.\n * @param {ReadableStream|Uint8array|String} input\n * @returns {ReadableStream|Uint8array|String} cloned input\n */\nfunction clone(input) {\n  if (isArrayStream(input)) {\n    return input.clone();\n  }\n  if (isStream(input)) {\n    const teed = tee(input);\n    overwrite(input, teed[0]);\n    return teed[1];\n  }\n  return slice(input);\n}\n\n/**\n * Clone a Stream for reading it twice. Data will arrive at the same rate as the input stream is being read.\n *   Reading from the clone will NOT pull from the input stream. Data only arrives when reading the input stream.\n *   The input stream will NOT be canceled if the clone is canceled, only if the input stream are canceled.\n *   If the input stream is canceled, the clone will be errored.\n * @param {ReadableStream|Uint8array|String} input\n * @returns {ReadableStream|Uint8array|String} cloned input\n */\nfunction passiveClone(input) {\n  if (isArrayStream(input)) {\n    return clone(input);\n  }\n  if (isStream(input)) {\n    return new ReadableStream({\n      start(controller) {\n        const transformed = transformPair(input, async (readable, writable) => {\n          const reader = getReader(readable);\n          const writer = getWriter(writable);\n          try {\n            // eslint-disable-next-line no-constant-condition\n            while (true) {\n              await writer.ready;\n              const { done, value } = await reader.read();\n              if (done) {\n                try { controller.close(); } catch {}\n                await writer.close();\n                return;\n              }\n              try { controller.enqueue(value); } catch {}\n              await writer.write(value);\n            }\n          } catch(e) {\n            controller.error(e);\n            await writer.abort(e);\n          }\n        });\n        overwrite(input, transformed);\n      }\n    });\n  }\n  return slice(input);\n}\n\n/**\n * Modify a stream object to point to a different stream object.\n *   This is used internally by clone() and passiveClone() to provide an abstraction over tee().\n * @param {ReadableStream} input\n * @param {ReadableStream} clone\n */\nfunction overwrite(input, clone) {\n  // Overwrite input.getReader, input.locked, etc to point to clone\n  Object.entries(Object.getOwnPropertyDescriptors(input.constructor.prototype)).forEach(([name, descriptor]) => {\n    if (name === 'constructor') {\n      return;\n    }\n    if (descriptor.value) {\n      descriptor.value = descriptor.value.bind(clone);\n    } else {\n      descriptor.get = descriptor.get.bind(clone);\n    }\n    Object.defineProperty(input, name, descriptor);\n  });\n}\n\n/**\n * Return a stream pointing to a part of the input stream.\n * @param {ReadableStream|Uint8array|String} input\n * @returns {ReadableStream|Uint8array|String} clone\n */\nfunction slice(input, begin=0, end=Infinity) {\n  if (isArrayStream(input)) {\n    throw new Error('Not implemented');\n  }\n  if (isStream(input)) {\n    if (begin >= 0 && end >= 0) {\n      let reader;\n      let bytesRead = 0;\n      return new ReadableStream({\n        start() {\n          reader = input.getReader();\n        },\n        async pull(controller) {\n          try {\n            // Read repeatedly until we have a chunk to enqueue or until\n            // we can close the stream, as `pull` won't get called again\n            // until we call `enqueue` or `close`.\n            while (true) { // eslint-disable-line no-constant-condition\n              if (bytesRead < end) {\n                const { value, done } = await reader.read();\n                if (done) {\n                  controller.close();\n                  input.releaseLock();\n                  return;\n                }\n                let valueToEnqueue;\n                if (bytesRead + value.length >= begin) {\n                  valueToEnqueue = slice(value, Math.max(begin - bytesRead, 0), end - bytesRead);\n                }\n                bytesRead += value.length;\n                if (valueToEnqueue) {\n                  controller.enqueue(valueToEnqueue);\n                  return; // `pull` will get called again\n                }\n              } else {\n                controller.close();\n                input.releaseLock();\n                return;\n              }\n            }\n          } catch (e) {\n            controller.error(e);\n          }\n        },\n        async cancel(reason) {\n          await reader.cancel(reason);\n        }\n      }, { highWaterMark: 0 });\n    }\n    if (begin < 0 && (end < 0 || end === Infinity)) {\n      let lastBytes = [];\n      return transform(input, value => {\n        if (value.length >= -begin) lastBytes = [value];\n        else lastBytes.push(value);\n      }, () => slice(concat(lastBytes), begin, end));\n    }\n    if (begin === 0 && end < 0) {\n      let lastBytes;\n      return transform(input, value => {\n        const returnValue = lastBytes ? concat([lastBytes, value]) : value;\n        if (returnValue.length >= -end) {\n          lastBytes = slice(returnValue, end);\n          return slice(returnValue, begin, end);\n        }\n        lastBytes = returnValue;\n      });\n    }\n    console.warn(`stream.slice(input, ${begin}, ${end}) not implemented efficiently.`);\n    return fromAsync(async () => slice(await readToEnd(input), begin, end));\n  }\n  if (input[externalBuffer]) {\n    input = concat(input[externalBuffer].concat([input]));\n  }\n  if (isUint8Array(input)) {\n    return input.subarray(begin, end === Infinity ? input.length : end);\n  }\n  return input.slice(begin, end);\n}\n\n/**\n * Read a stream to the end and return its contents, concatenated by the join function (defaults to concat).\n * @param {ReadableStream|Uint8array|String} input\n * @param {Function} join\n * @returns {Promise<Uint8array|String|Any>} the return value of join()\n * @async\n */\nasync function readToEnd(input, join=concat) {\n  if (isArrayStream(input)) {\n    return input.readToEnd(join);\n  }\n  if (isStream(input)) {\n    return getReader(input).readToEnd(join);\n  }\n  return input;\n}\n\n/**\n * Cancel a stream.\n * @param {ReadableStream|Uint8array|String} input\n * @param {Any} reason\n * @returns {Promise<Any>} indicates when the stream has been canceled\n * @async\n */\nasync function cancel(input, reason) {\n  if (isStream(input)) {\n    if (input.cancel) {\n      const cancelled = await input.cancel(reason);\n      // the stream is not always cancelled at this point, so we wait some more\n      await new Promise(resolve => setTimeout(resolve));\n      return cancelled;\n    }\n    if (input.destroy) {\n      input.destroy(reason);\n      await new Promise(resolve => setTimeout(resolve));\n      return reason;\n    }\n  }\n}\n\n/**\n * Convert an async function to an ArrayStream. When the function returns, its return value is written to the stream.\n * @param {Function} fn\n * @returns {ArrayStream}\n */\nfunction fromAsync(fn) {\n  const arrayStream = new ArrayStream();\n  (async () => {\n    const writer = getWriter(arrayStream);\n    try {\n      await writer.write(await fn());\n      await writer.close();\n    } catch (e) {\n      await writer.abort(e);\n    }\n  })();\n  return arrayStream;\n}\n\n/**\n * Get a Reader\n * @param {ReadableStream|Uint8array|String} input\n * @returns {Reader}\n */\nfunction getReader(input) {\n  return new Reader(input);\n}\n\n/**\n * Get a Writer\n * @param {WritableStream} input\n * @returns {Writer}\n */\nfunction getWriter(input) {\n  return new Writer(input);\n}\n\n/**\n * @module enums\n * @access public\n */\nconst byValue = Symbol('byValue');\nvar enums = {\n    /** Maps curve names under various standards to one\n     * @see {@link https://wiki.gnupg.org/ECC|ECC - GnuPG wiki}\n     * @enum {String}\n     * @readonly\n     */\n    curve: {\n        /** NIST P-256 Curve */\n        'nistP256': 'nistP256',\n        /** @deprecated use `nistP256` instead */\n        'p256': 'nistP256',\n        /** NIST P-384 Curve */\n        'nistP384': 'nistP384',\n        /** @deprecated use `nistP384` instead */\n        'p384': 'nistP384',\n        /** NIST P-521 Curve */\n        'nistP521': 'nistP521',\n        /** @deprecated use `nistP521` instead */\n        'p521': 'nistP521',\n        /** SECG SECP256k1 Curve */\n        'secp256k1': 'secp256k1',\n        /** Ed25519 - deprecated by crypto-refresh (replaced by standaone Ed25519 algo) */\n        'ed25519Legacy': 'ed25519Legacy',\n        /** @deprecated use `ed25519Legacy` instead */\n        'ed25519': 'ed25519Legacy',\n        /** Curve25519 - deprecated by crypto-refresh (replaced by standaone X25519 algo) */\n        'curve25519Legacy': 'curve25519Legacy',\n        /** @deprecated use `curve25519Legacy` instead */\n        'curve25519': 'curve25519Legacy',\n        /** BrainpoolP256r1 Curve */\n        'brainpoolP256r1': 'brainpoolP256r1',\n        /** BrainpoolP384r1 Curve */\n        'brainpoolP384r1': 'brainpoolP384r1',\n        /** BrainpoolP512r1 Curve */\n        'brainpoolP512r1': 'brainpoolP512r1'\n    },\n    /** A string to key specifier type\n     * @enum {Integer}\n     * @readonly\n     */\n    s2k: {\n        simple: 0,\n        salted: 1,\n        iterated: 3,\n        argon2: 4,\n        gnu: 101\n    },\n    /** {@link https://tools.ietf.org/html/draft-ietf-openpgp-crypto-refresh-08.html#section-9.1|crypto-refresh RFC, section 9.1}\n     * @enum {Integer}\n     * @readonly\n     */\n    publicKey: {\n        /** RSA (Encrypt or Sign) [HAC] */\n        rsaEncryptSign: 1,\n        /** RSA (Encrypt only) [HAC] */\n        rsaEncrypt: 2,\n        /** RSA (Sign only) [HAC] */\n        rsaSign: 3,\n        /** Elgamal (Encrypt only) [ELGAMAL] [HAC] */\n        elgamal: 16,\n        /** DSA (Sign only) [FIPS186] [HAC] */\n        dsa: 17,\n        /** ECDH (Encrypt only) [RFC6637] */\n        ecdh: 18,\n        /** ECDSA (Sign only) [RFC6637] */\n        ecdsa: 19,\n        /** EdDSA (Sign only) - deprecated by crypto-refresh (replaced by `ed25519` identifier below)\n         * [{@link https://tools.ietf.org/html/draft-koch-eddsa-for-openpgp-04|Draft RFC}] */\n        eddsaLegacy: 22,\n        /** Reserved for AEDH */\n        aedh: 23,\n        /** Reserved for AEDSA */\n        aedsa: 24,\n        /** X25519 (Encrypt only) */\n        x25519: 25,\n        /** X448 (Encrypt only) */\n        x448: 26,\n        /** Ed25519 (Sign only) */\n        ed25519: 27,\n        /** Ed448 (Sign only) */\n        ed448: 28\n    },\n    /** {@link https://tools.ietf.org/html/rfc4880#section-9.2|RFC4880, section 9.2}\n     * @enum {Integer}\n     * @readonly\n     */\n    symmetric: {\n        /** Not implemented! */\n        idea: 1,\n        tripledes: 2,\n        cast5: 3,\n        blowfish: 4,\n        aes128: 7,\n        aes192: 8,\n        aes256: 9,\n        twofish: 10\n    },\n    /** {@link https://tools.ietf.org/html/rfc4880#section-9.3|RFC4880, section 9.3}\n     * @enum {Integer}\n     * @readonly\n     */\n    compression: {\n        uncompressed: 0,\n        /** RFC1951 */\n        zip: 1,\n        /** RFC1950 */\n        zlib: 2,\n        bzip2: 3\n    },\n    /** {@link https://tools.ietf.org/html/rfc4880#section-9.4|RFC4880, section 9.4}\n     * @enum {Integer}\n     * @readonly\n     */\n    hash: {\n        md5: 1,\n        sha1: 2,\n        ripemd: 3,\n        sha256: 8,\n        sha384: 9,\n        sha512: 10,\n        sha224: 11,\n        sha3_256: 12,\n        sha3_512: 14\n    },\n    /** A list of hash names as accepted by webCrypto functions.\n     * {@link https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest|Parameters, algo}\n     * @enum {String}\n     */\n    webHash: {\n        'SHA-1': 2,\n        'SHA-256': 8,\n        'SHA-384': 9,\n        'SHA-512': 10\n    },\n    /** {@link https://www.rfc-editor.org/rfc/rfc9580.html#name-aead-algorithms}\n     * @enum {Integer}\n     * @readonly\n     */\n    aead: {\n        eax: 1,\n        ocb: 2,\n        gcm: 3,\n        /** @deprecated used by OpenPGP.js v5 for legacy AEAD support; use `gcm` instead for the RFC9580-standardized ID */\n        experimentalGCM: 100 // Private algorithm\n    },\n    /** A list of packet types and numeric tags associated with them.\n     * @enum {Integer}\n     * @readonly\n     */\n    packet: {\n        publicKeyEncryptedSessionKey: 1,\n        signature: 2,\n        symEncryptedSessionKey: 3,\n        onePassSignature: 4,\n        secretKey: 5,\n        publicKey: 6,\n        secretSubkey: 7,\n        compressedData: 8,\n        symmetricallyEncryptedData: 9,\n        marker: 10,\n        literalData: 11,\n        trust: 12,\n        userID: 13,\n        publicSubkey: 14,\n        userAttribute: 17,\n        symEncryptedIntegrityProtectedData: 18,\n        modificationDetectionCode: 19,\n        aeadEncryptedData: 20, // see IETF draft: https://tools.ietf.org/html/draft-ford-openpgp-format-00#section-2.1\n        padding: 21\n    },\n    /** Data types in the literal packet\n     * @enum {Integer}\n     * @readonly\n     */\n    literal: {\n        /** Binary data 'b' */\n        binary: 'b'.charCodeAt(),\n        /** Text data 't' */\n        text: 't'.charCodeAt(),\n        /** Utf8 data 'u' */\n        utf8: 'u'.charCodeAt(),\n        /** MIME message body part 'm' */\n        mime: 'm'.charCodeAt()\n    },\n    /** One pass signature packet type\n     * @enum {Integer}\n     * @readonly\n     */\n    signature: {\n        /** 0x00: Signature of a binary document. */\n        binary: 0,\n        /** 0x01: Signature of a canonical text document.\n         *\n         * Canonicalyzing the document by converting line endings. */\n        text: 1,\n        /** 0x02: Standalone signature.\n         *\n         * This signature is a signature of only its own subpacket contents.\n         * It is calculated identically to a signature over a zero-lengh\n         * binary document.  Note that it doesn't make sense to have a V3\n         * standalone signature. */\n        standalone: 2,\n        /** 0x10: Generic certification of a User ID and Public-Key packet.\n         *\n         * The issuer of this certification does not make any particular\n         * assertion as to how well the certifier has checked that the owner\n         * of the key is in fact the person described by the User ID. */\n        certGeneric: 16,\n        /** 0x11: Persona certification of a User ID and Public-Key packet.\n         *\n         * The issuer of this certification has not done any verification of\n         * the claim that the owner of this key is the User ID specified. */\n        certPersona: 17,\n        /** 0x12: Casual certification of a User ID and Public-Key packet.\n         *\n         * The issuer of this certification has done some casual\n         * verification of the claim of identity. */\n        certCasual: 18,\n        /** 0x13: Positive certification of a User ID and Public-Key packet.\n         *\n         * The issuer of this certification has done substantial\n         * verification of the claim of identity.\n         *\n         * Most OpenPGP implementations make their \"key signatures\" as 0x10\n         * certifications.  Some implementations can issue 0x11-0x13\n         * certifications, but few differentiate between the types. */\n        certPositive: 19,\n        /** 0x30: Certification revocation signature\n         *\n         * This signature revokes an earlier User ID certification signature\n         * (signature class 0x10 through 0x13) or direct-key signature\n         * (0x1F).  It should be issued by the same key that issued the\n         * revoked signature or an authorized revocation key.  The signature\n         * is computed over the same data as the certificate that it\n         * revokes, and should have a later creation date than that\n         * certificate. */\n        certRevocation: 48,\n        /** 0x18: Subkey Binding Signature\n         *\n         * This signature is a statement by the top-level signing key that\n         * indicates that it owns the subkey.  This signature is calculated\n         * directly on the primary key and subkey, and not on any User ID or\n         * other packets.  A signature that binds a signing subkey MUST have\n         * an Embedded Signature subpacket in this binding signature that\n         * contains a 0x19 signature made by the signing subkey on the\n         * primary key and subkey. */\n        subkeyBinding: 24,\n        /** 0x19: Primary Key Binding Signature\n         *\n         * This signature is a statement by a signing subkey, indicating\n         * that it is owned by the primary key and subkey.  This signature\n         * is calculated the same way as a 0x18 signature: directly on the\n         * primary key and subkey, and not on any User ID or other packets.\n         *\n         * When a signature is made over a key, the hash data starts with the\n         * octet 0x99, followed by a two-octet length of the key, and then body\n         * of the key packet.  (Note that this is an old-style packet header for\n         * a key packet with two-octet length.)  A subkey binding signature\n         * (type 0x18) or primary key binding signature (type 0x19) then hashes\n         * the subkey using the same format as the main key (also using 0x99 as\n         * the first octet). */\n        keyBinding: 25,\n        /** 0x1F: Signature directly on a key\n         *\n         * This signature is calculated directly on a key.  It binds the\n         * information in the Signature subpackets to the key, and is\n         * appropriate to be used for subpackets that provide information\n         * about the key, such as the Revocation Key subpacket.  It is also\n         * appropriate for statements that non-self certifiers want to make\n         * about the key itself, rather than the binding between a key and a\n         * name. */\n        key: 31,\n        /** 0x20: Key revocation signature\n         *\n         * The signature is calculated directly on the key being revoked.  A\n         * revoked key is not to be used.  Only revocation signatures by the\n         * key being revoked, or by an authorized revocation key, should be\n         * considered valid revocation signatures.a */\n        keyRevocation: 32,\n        /** 0x28: Subkey revocation signature\n         *\n         * The signature is calculated directly on the subkey being revoked.\n         * A revoked subkey is not to be used.  Only revocation signatures\n         * by the top-level signature key that is bound to this subkey, or\n         * by an authorized revocation key, should be considered valid\n         * revocation signatures.\n         *\n         * Key revocation signatures (types 0x20 and 0x28)\n         * hash only the key being revoked. */\n        subkeyRevocation: 40,\n        /** 0x40: Timestamp signature.\n         * This signature is only meaningful for the timestamp contained in\n         * it. */\n        timestamp: 64,\n        /** 0x50: Third-Party Confirmation signature.\n         *\n         * This signature is a signature over some other OpenPGP Signature\n         * packet(s).  It is analogous to a notary seal on the signed data.\n         * A third-party signature SHOULD include Signature Target\n         * subpacket(s) to give easy identification.  Note that we really do\n         * mean SHOULD.  There are plausible uses for this (such as a blind\n         * party that only sees the signature, not the key or source\n         * document) that cannot include a target subpacket. */\n        thirdParty: 80\n    },\n    /** Signature subpacket type\n     * @enum {Integer}\n     * @readonly\n     */\n    signatureSubpacket: {\n        signatureCreationTime: 2,\n        signatureExpirationTime: 3,\n        exportableCertification: 4,\n        trustSignature: 5,\n        regularExpression: 6,\n        revocable: 7,\n        keyExpirationTime: 9,\n        placeholderBackwardsCompatibility: 10,\n        preferredSymmetricAlgorithms: 11,\n        revocationKey: 12,\n        issuerKeyID: 16,\n        notationData: 20,\n        preferredHashAlgorithms: 21,\n        preferredCompressionAlgorithms: 22,\n        keyServerPreferences: 23,\n        preferredKeyServer: 24,\n        primaryUserID: 25,\n        policyURI: 26,\n        keyFlags: 27,\n        signersUserID: 28,\n        reasonForRevocation: 29,\n        features: 30,\n        signatureTarget: 31,\n        embeddedSignature: 32,\n        issuerFingerprint: 33,\n        preferredAEADAlgorithms: 34,\n        preferredCipherSuites: 39\n    },\n    /** Key flags\n     * @enum {Integer}\n     * @readonly\n     */\n    keyFlags: {\n        /** 0x01 - This key may be used to certify other keys. */\n        certifyKeys: 1,\n        /** 0x02 - This key may be used to sign data. */\n        signData: 2,\n        /** 0x04 - This key may be used to encrypt communications. */\n        encryptCommunication: 4,\n        /** 0x08 - This key may be used to encrypt storage. */\n        encryptStorage: 8,\n        /** 0x10 - The private component of this key may have been split\n         *        by a secret-sharing mechanism. */\n        splitPrivateKey: 16,\n        /** 0x20 - This key may be used for authentication. */\n        authentication: 32,\n        /** 0x80 - The private component of this key may be in the\n         *        possession of more than one person. */\n        sharedPrivateKey: 128\n    },\n    /** Armor type\n     * @enum {Integer}\n     * @readonly\n     */\n    armor: {\n        multipartSection: 0,\n        multipartLast: 1,\n        signed: 2,\n        message: 3,\n        publicKey: 4,\n        privateKey: 5,\n        signature: 6\n    },\n    /** {@link https://tools.ietf.org/html/rfc4880#section-5.2.3.23|RFC4880, section 5.2.3.23}\n     * @enum {Integer}\n     * @readonly\n     */\n    reasonForRevocation: {\n        /** No reason specified (key revocations or cert revocations) */\n        noReason: 0,\n        /** Key is superseded (key revocations) */\n        keySuperseded: 1,\n        /** Key material has been compromised (key revocations) */\n        keyCompromised: 2,\n        /** Key is retired and no longer used (key revocations) */\n        keyRetired: 3,\n        /** User ID information is no longer valid (cert revocations) */\n        userIDInvalid: 32\n    },\n    /** {@link https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-04#section-5.2.3.25|RFC4880bis-04, section 5.2.3.25}\n     * @enum {Integer}\n     * @readonly\n     */\n    features: {\n        /** 0x01 - Modification Detection (packets 18 and 19) */\n        modificationDetection: 1,\n        /** 0x02 - AEAD Encrypted Data Packet (packet 20) and version 5\n         *         Symmetric-Key Encrypted Session Key Packets (packet 3) */\n        aead: 2,\n        /** 0x04 - Version 5 Public-Key Packet format and corresponding new\n          *        fingerprint format */\n        v5Keys: 4,\n        seipdv2: 8\n    },\n    /**\n     * Asserts validity of given value and converts from string/integer to integer.\n     * @param {Object} type target enum type\n     * @param {String|Integer} e value to check and/or convert\n     * @returns {Integer} enum value if it exists\n     * @throws {Error} if the value is invalid\n     */\n    write: function (type, e) {\n        if (typeof e === 'number') {\n            e = this.read(type, e);\n        }\n        if (type[e] !== undefined) {\n            return type[e];\n        }\n        throw new Error('Invalid enum value.');\n    },\n    /**\n     * Converts enum integer value to the corresponding string, if it exists.\n     * @param {Object} type target enum type\n     * @param {Integer} e value to convert\n     * @returns {String} name of enum value if it exists\n     * @throws {Error} if the value is invalid\n     */\n    read: function (type, e) {\n        if (!type[byValue]) {\n            type[byValue] = [];\n            Object.entries(type).forEach(([key, value]) => {\n                type[byValue][value] = key;\n            });\n        }\n        if (type[byValue][e] !== undefined) {\n            return type[byValue][e];\n        }\n        throw new Error('Invalid enum value.');\n    }\n};\n\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Global configuration values\n * @module config\n * @access public\n */\nconst config = {\n    /**\n     * @memberof module:config\n     * @property {Integer} preferredHashAlgorithm Default hash algorithm {@link module:enums.hash}\n     */\n    preferredHashAlgorithm: enums.hash.sha512,\n    /**\n     * @memberof module:config\n     * @property {Integer} preferredSymmetricAlgorithm Default encryption cipher {@link module:enums.symmetric}\n     */\n    preferredSymmetricAlgorithm: enums.symmetric.aes256,\n    /**\n     * @memberof module:config\n     * @property {Integer} compression Default compression algorithm {@link module:enums.compression}\n     */\n    preferredCompressionAlgorithm: enums.compression.uncompressed,\n    /**\n     * Use Authenticated Encryption with Additional Data (AEAD) protection for symmetric encryption.\n     * This option is applicable to:\n     * - key generation (encryption key preferences),\n     * - password-based message encryption, and\n     * - private key encryption.\n     * In the case of message encryption using public keys, the encryption key preferences are respected instead.\n     * Note: not all OpenPGP implementations are compatible with this option.\n     * @see {@link https://tools.ietf.org/html/draft-ietf-openpgp-crypto-refresh-10.html|draft-crypto-refresh-10}\n     * @memberof module:config\n     * @property {Boolean} aeadProtect\n     */\n    aeadProtect: false,\n    /**\n     * When reading OpenPGP v4 private keys (e.g. those generated in OpenPGP.js when not setting `config.v5Keys = true`)\n     * which were encrypted by OpenPGP.js v5 (or older) using `config.aeadProtect = true`,\n     * this option must be set, otherwise key parsing and/or key decryption will fail.\n     * Note: only set this flag if you know that the keys are of the legacy type, as non-legacy keys\n     * will be processed incorrectly.\n     */\n    parseAEADEncryptedV4KeysAsLegacy: false,\n    /**\n     * Default Authenticated Encryption with Additional Data (AEAD) encryption mode\n     * Only has an effect when aeadProtect is set to true.\n     * @memberof module:config\n     * @property {Integer} preferredAEADAlgorithm Default AEAD mode {@link module:enums.aead}\n     */\n    preferredAEADAlgorithm: enums.aead.gcm,\n    /**\n     * Chunk Size Byte for Authenticated Encryption with Additional Data (AEAD) mode\n     * Only has an effect when aeadProtect is set to true.\n     * Must be an integer value from 0 to 56.\n     * @memberof module:config\n     * @property {Integer} aeadChunkSizeByte\n     */\n    aeadChunkSizeByte: 12,\n    /**\n     * Use v6 keys.\n     * Note: not all OpenPGP implementations are compatible with this option.\n     * **FUTURE OPENPGP.JS VERSIONS MAY BREAK COMPATIBILITY WHEN USING THIS OPTION**\n     * @memberof module:config\n     * @property {Boolean} v6Keys\n     */\n    v6Keys: false,\n    /**\n     * Enable parsing v5 keys and v5 signatures (which is different from the AEAD-encrypted SEIPDv2 packet).\n     * These are non-standard entities, which in the crypto-refresh have been superseded\n     * by v6 keys and v6 signatures, respectively.\n     * However, generation of v5 entities was supported behind config flag in OpenPGP.js v5, and some other libraries,\n     * hence parsing them might be necessary in some cases.\n     * @memberof module:config\n     * @property {Boolean} enableParsingV5Entities\n     */\n    enableParsingV5Entities: false,\n    /**\n     * S2K (String to Key) type, used for key derivation in the context of secret key encryption\n     * and password-encrypted data. Weaker s2k options are not allowed.\n     * Note: Argon2 is the strongest option but not all OpenPGP implementations are compatible with it\n     * (pending standardisation).\n     * @memberof module:config\n     * @property {enums.s2k.argon2|enums.s2k.iterated} s2kType {@link module:enums.s2k}\n     */\n    s2kType: enums.s2k.iterated,\n    /**\n     * {@link https://tools.ietf.org/html/rfc4880#section-3.7.1.3| RFC4880 3.7.1.3}:\n     * Iteration Count Byte for Iterated and Salted S2K (String to Key).\n     * Only relevant if `config.s2kType` is set to `enums.s2k.iterated`.\n     * Note: this is the exponent value, not the final number of iterations (refer to specs for more details).\n     * @memberof module:config\n     * @property {Integer} s2kIterationCountByte\n     */\n    s2kIterationCountByte: 224,\n    /**\n     * {@link https://tools.ietf.org/html/draft-ietf-openpgp-crypto-refresh-07.html#section-3.7.1.4| draft-crypto-refresh 3.7.1.4}:\n     * Argon2 parameters for S2K (String to Key).\n     * Only relevant if `config.s2kType` is set to `enums.s2k.argon2`.\n     * Default settings correspond to the second recommendation from RFC9106 (\"uniformly safe option\"),\n     * to ensure compatibility with memory-constrained environments.\n     * For more details on the choice of parameters, see https://tools.ietf.org/html/rfc9106#section-4.\n     * @memberof module:config\n     * @property {Object} params\n     * @property {Integer} params.passes - number of iterations t\n     * @property {Integer} params.parallelism - degree of parallelism p\n     * @property {Integer} params.memoryExponent - one-octet exponent indicating the memory size, which will be: 2**memoryExponent kibibytes.\n     */\n    s2kArgon2Params: {\n        passes: 3,\n        parallelism: 4, // lanes\n        memoryExponent: 16 // 64 MiB of RAM\n    },\n    /**\n     * Max memory exponent allowed for Argon2 memory allocation (e.g. `maxArgon2MemoryExponent: 20` corresponds\n     * to a memory limit of 2**20 KiB = 1GiB).\n     * This limit is applied both on encryption (if `config.s2kType` is set to `enums.s2k.argon2`)\n     * and decryption.\n     * If the input memory exponent exceeds this value, the library will not attempt the argon2 key derivation\n     * and instead directly throw an `Argon2OutOfMemoryError` error.\n     * NB: on encryption, if `s2kArgon2Params.memoryExponent` is larger than `maxArgon2MemoryExponent`,\n     * the operation will fail.\n     */\n    maxArgon2MemoryExponent: 30,\n    /**\n     * Allow decryption of messages without integrity protection.\n     * This is an **insecure** setting:\n     *  - message modifications cannot be detected, thus processing the decrypted data is potentially unsafe.\n     *  - it enables downgrade attacks against integrity-protected messages.\n     * @memberof module:config\n     * @property {Boolean} allowUnauthenticatedMessages\n     */\n    allowUnauthenticatedMessages: false,\n    /**\n     * Allow streaming unauthenticated data before its integrity has been checked. This would allow the application to\n     * process large streams while limiting memory usage by releasing the decrypted chunks as soon as possible\n     * and deferring checking their integrity until the decrypted stream has been read in full.\n     *\n     * This setting is **insecure** if the encrypted data has been corrupted by a malicious entity:\n     * - if the partially decrypted message is processed further or displayed to the user, it opens up the possibility of attacks such as EFAIL\n     *    (see https://efail.de/).\n     * - an attacker with access to traces or timing info of internal processing errors could learn some info about the data.\n     *\n     * NB: this setting does not apply to AEAD-encrypted data, where the AEAD data chunk is never released until integrity is confirmed.\n     * @memberof module:config\n     * @property {Boolean} allowUnauthenticatedStream\n     */\n    allowUnauthenticatedStream: false,\n    /**\n     * Minimum RSA key size allowed for key generation and message signing, verification and encryption.\n     * The default is 2047 since due to a bug, previous versions of OpenPGP.js could generate 2047-bit keys instead of 2048-bit ones.\n     * @memberof module:config\n     * @property {Number} minRSABits\n     */\n    minRSABits: 2047,\n    /**\n     * Work-around for rare GPG decryption bug when encrypting with multiple passwords.\n     * **Slower and slightly less secure**\n     * @memberof module:config\n     * @property {Boolean} passwordCollisionCheck\n     */\n    passwordCollisionCheck: false,\n    /**\n     * Allow decryption using RSA keys without `encrypt` flag.\n     * This setting is potentially insecure, but it is needed to get around an old openpgpjs bug\n     * where key flags were ignored when selecting a key for encryption.\n     * @memberof module:config\n     * @property {Boolean} allowInsecureDecryptionWithSigningKeys\n     */\n    allowInsecureDecryptionWithSigningKeys: false,\n    /**\n     * Allow verification of message signatures with keys whose validity at the time of signing cannot be determined.\n     * Instead, a verification key will also be consider valid as long as it is valid at the current time.\n     * This setting is potentially insecure, but it is needed to verify messages signed with keys that were later reformatted,\n     * and have self-signature's creation date that does not match the primary key creation date.\n     * @memberof module:config\n     * @property {Boolean} allowInsecureDecryptionWithSigningKeys\n     */\n    allowInsecureVerificationWithReformattedKeys: false,\n    /**\n     * Allow using keys that do not have any key flags set.\n     * Key flags are needed to restrict key usage to specific purposes: for instance, a signing key could only be allowed to certify other keys, and not sign messages\n     * (see https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-10.html#section-5.2.3.29).\n     * Some older keys do not declare any key flags, which means they are not allowed to be used for any operation.\n     * This setting allows using such keys for any operation for which they are compatible, based on their public key algorithm.\n     */\n    allowMissingKeyFlags: false,\n    /**\n     * Enable constant-time decryption of RSA- and ElGamal-encrypted session keys, to hinder Bleichenbacher-like attacks (https://link.springer.com/chapter/10.1007/BFb0055716).\n     * This setting has measurable performance impact and it is only helpful in application scenarios where both of the following conditions apply:\n     * - new/incoming messages are automatically decrypted (without user interaction);\n     * - an attacker can determine how long it takes to decrypt each message (e.g. due to decryption errors being logged remotely).\n     * See also `constantTimePKCS1DecryptionSupportedSymmetricAlgorithms`.\n     * @memberof module:config\n     * @property {Boolean} constantTimePKCS1Decryption\n     */\n    constantTimePKCS1Decryption: false,\n    /**\n     * This setting is only meaningful if `constantTimePKCS1Decryption` is enabled.\n     * Decryption of RSA- and ElGamal-encrypted session keys of symmetric algorithms different from the ones specified here will fail.\n     * However, the more algorithms are added, the slower the decryption procedure becomes.\n     * @memberof module:config\n     * @property {Set<Integer>} constantTimePKCS1DecryptionSupportedSymmetricAlgorithms {@link module:enums.symmetric}\n     */\n    constantTimePKCS1DecryptionSupportedSymmetricAlgorithms: new Set([enums.symmetric.aes128, enums.symmetric.aes192, enums.symmetric.aes256]),\n    /**\n     * @memberof module:config\n     * @property {Boolean} ignoreUnsupportedPackets Ignore unsupported/unrecognizable packets on parsing instead of throwing an error\n     */\n    ignoreUnsupportedPackets: true,\n    /**\n     * @memberof module:config\n     * @property {Boolean} ignoreMalformedPackets Ignore malformed packets on parsing instead of throwing an error\n     */\n    ignoreMalformedPackets: false,\n    /**\n     * @memberof module:config\n     * @property {Boolean} enforceGrammar whether parsed OpenPGP messages must comform to the OpenPGP grammar\n     *    defined in https://www.rfc-editor.org/rfc/rfc9580.html#name-openpgp-messages .\n     */\n    enforceGrammar: true,\n    /**\n     * Parsing of packets is normally restricted to a predefined set of packets. For example a Sym. Encrypted Integrity Protected Data Packet can only\n     * contain a certain set of packets including LiteralDataPacket. With this setting we can allow additional packets, which is probably not advisable\n     * as a global config setting, but can be used for specific function calls (e.g. decrypt method of Message).\n     * @memberof module:config\n     * @property {Array} additionalAllowedPackets Allow additional packets on parsing. Defined as array of packet classes, e.g. [PublicKeyPacket]\n     */\n    additionalAllowedPackets: [],\n    /**\n     * @memberof module:config\n     * @property {Boolean} showVersion Whether to include {@link module:config/config.versionString} in armored messages\n     */\n    showVersion: false,\n    /**\n     * @memberof module:config\n     * @property {Boolean} showComment Whether to include {@link module:config/config.commentString} in armored messages\n     */\n    showComment: false,\n    /**\n     * @memberof module:config\n     * @property {String} versionString A version string to be included in armored messages\n     */\n    versionString: 'OpenPGP.js 6.3.1',\n    /**\n     * @memberof module:config\n     * @property {String} commentString A comment string to be included in armored messages\n     */\n    commentString: 'https://openpgpjs.org',\n    /**\n     * Max userID string length (used for parsing)\n     * @memberof module:config\n     * @property {Integer} maxUserIDLength\n     */\n    maxUserIDLength: 1024 * 5,\n    /**\n     * Maximum size of decompressed messages\n     * When decompressing a larger message, OpenPGP.js will throw an error.\n     * @memberof module:config\n     * @property {Integer} maxDecompressedMessageSize\n     */\n    maxDecompressedMessageSize: Infinity,\n    /**\n     * Contains notatations that are considered \"known\". Known notations do not trigger\n     * validation error when the notation is marked as critical.\n     * @memberof module:config\n     * @property {Array} knownNotations\n     */\n    knownNotations: [],\n    /**\n     * If true, a salt notation is used to randomize signatures generated by v4 and v5 keys (v6 signatures are always non-deterministic, by design).\n     * This protects EdDSA signatures from potentially leaking the secret key in case of faults (i.e. bitflips) which, in principle, could occur\n     * during the signing computation. It is added to signatures of any algo for simplicity, and as it may also serve as protection in case of\n     * weaknesses in the hash algo, potentially hindering e.g. some chosen-prefix attacks.\n     * NOTE: the notation is interoperable, but will reveal that the signature has been generated using OpenPGP.js, which may not be desirable in some cases.\n     */\n    nonDeterministicSignaturesViaNotation: true,\n    /**\n     * Whether to use the the noble-curves library for curves (other than Curve25519) that are not supported by the available native crypto API.\n     * When false, certain standard curves will not be supported (depending on the platform).\n     * @memberof module:config\n     * @property {Boolean} useEllipticFallback\n     */\n    useEllipticFallback: true,\n    /**\n     * Reject insecure hash algorithms\n     * @memberof module:config\n     * @property {Set<Integer>} rejectHashAlgorithms {@link module:enums.hash}\n     */\n    rejectHashAlgorithms: new Set([enums.hash.md5, enums.hash.ripemd]),\n    /**\n     * Reject insecure message hash algorithms\n     * @memberof module:config\n     * @property {Set<Integer>} rejectMessageHashAlgorithms {@link module:enums.hash}\n     */\n    rejectMessageHashAlgorithms: new Set([enums.hash.md5, enums.hash.ripemd, enums.hash.sha1]),\n    /**\n     * Reject insecure public key algorithms for key generation and message encryption, signing or verification\n     * @memberof module:config\n     * @property {Set<Integer>} rejectPublicKeyAlgorithms {@link module:enums.publicKey}\n     */\n    rejectPublicKeyAlgorithms: new Set([enums.publicKey.elgamal, enums.publicKey.dsa]),\n    /**\n     * Reject non-standard curves for key generation, message encryption, signing or verification\n     * @memberof module:config\n     * @property {Set<String>} rejectCurves {@link module:enums.curve}\n     */\n    rejectCurves: new Set([enums.curve.secp256k1])\n};\n\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/* eslint-disable no-console */\n/**\n * This object contains utility functions\n * @module util\n * @access private\n */\nconst createRequire = () => () => {}; // Must be stripped in browser built\nconst debugMode = (() => {\n    try {\n        return process.env.NODE_ENV === 'development';\n    }\n    catch { }\n    return false;\n})();\nconst util = {\n    isString: function (data) {\n        return typeof data === 'string' || data instanceof String;\n    },\n    nodeRequire: createRequire(),\n    isArray: function (data) {\n        return data instanceof Array;\n    },\n    isUint8Array: isUint8Array,\n    isStream: isStream,\n    /**\n     * Load noble-curves lib on demand and return the requested curve function\n     * @param {enums.publicKey} publicKeyAlgo\n     * @param {enums.curve} [curveName] - for algos supporting different curves (e.g. ECDSA)\n     * @returns curve implementation\n     * @throws on unrecognized curve, or curve not implemented by noble-curve\n     */\n    getNobleCurve: async (publicKeyAlgo, curveName) => {\n        if (!config.useEllipticFallback) {\n            throw new Error('This curve is only supported in the full build of OpenPGP.js');\n        }\n        const { nobleCurves } = await Promise.resolve().then(function () { return noble_curves; });\n        switch (publicKeyAlgo) {\n            case enums.publicKey.ecdh:\n            case enums.publicKey.ecdsa: {\n                const curve = nobleCurves.get(curveName);\n                if (!curve)\n                    throw new Error('Unsupported curve');\n                return curve;\n            }\n            case enums.publicKey.x448:\n                return nobleCurves.get('x448');\n            case enums.publicKey.ed448:\n                return nobleCurves.get('ed448');\n            default:\n                throw new Error('Unsupported curve');\n        }\n    },\n    readNumber: function (bytes) {\n        let n = 0;\n        for (let i = 0; i < bytes.length; i++) {\n            n += (256 ** i) * bytes[bytes.length - 1 - i];\n        }\n        return n;\n    },\n    writeNumber: function (n, bytes) {\n        const b = new Uint8Array(bytes);\n        for (let i = 0; i < bytes; i++) {\n            b[i] = (n >> (8 * (bytes - i - 1))) & 0xFF;\n        }\n        return b;\n    },\n    readDate: function (bytes) {\n        const n = util.readNumber(bytes);\n        const d = new Date(n * 1000);\n        return d;\n    },\n    writeDate: function (time) {\n        const numeric = Math.floor(time.getTime() / 1000);\n        return util.writeNumber(numeric, 4);\n    },\n    normalizeDate: function (time = Date.now()) {\n        return time === null || time === Infinity ? time : new Date(Math.floor(+time / 1000) * 1000);\n    },\n    /**\n     * Read one MPI from bytes in input\n     * @param {Uint8Array} bytes - Input data to parse\n     * @returns {Uint8Array} Parsed MPI.\n     */\n    readMPI: function (bytes) {\n        const bits = (bytes[0] << 8) | bytes[1];\n        const bytelen = (bits + 7) >>> 3;\n        // There is a decryption oracle risk here by enforcing the MPI length using `readExactSubarray` in the context of SEIPDv1 encrypted signatures,\n        // where unauthenticated streamed decryption is done (via `config.allowUnauthenticatedStream`), since the decrypted signature data being processed\n        // has not been authenticated (yet).\n        // However, such config setting is known to be insecure, and there are other packet parsing errors that can cause similar issues.\n        // Also, AEAD is also not affected.\n        return util.readExactSubarray(bytes, 2, 2 + bytelen);\n    },\n    /**\n     * Read exactly `end - start` bytes from input.\n     * This is a stricter version of `.subarray`.\n     * @param {Uint8Array} input - Input data to parse\n     * @returns {Uint8Array} subarray of size always equal to `end - start`\n     * @throws if the input array is too short.\n     */\n    readExactSubarray: function (input, start, end) {\n        if (input.length < end) {\n            throw new Error('Input array too short');\n        }\n        return input.subarray(start, end);\n    },\n    /**\n     * Left-pad Uint8Array to length by adding 0x0 bytes\n     * @param {Uint8Array} bytes - Data to pad\n     * @param {Number} length - Padded length\n     * @returns {Uint8Array} Padded bytes.\n     */\n    leftPad(bytes, length) {\n        if (bytes.length > length) {\n            throw new Error('Input array too long');\n        }\n        const padded = new Uint8Array(length);\n        const offset = length - bytes.length;\n        padded.set(bytes, offset);\n        return padded;\n    },\n    /**\n     * Convert a Uint8Array to an MPI-formatted Uint8Array.\n     * @param {Uint8Array} bin - An array of 8-bit integers to convert\n     * @returns {Uint8Array} MPI-formatted Uint8Array.\n     */\n    uint8ArrayToMPI: function (bin) {\n        const bitSize = util.uint8ArrayBitLength(bin);\n        if (bitSize === 0) {\n            throw new Error('Zero MPI');\n        }\n        const stripped = bin.subarray(bin.length - Math.ceil(bitSize / 8));\n        const prefix = new Uint8Array([(bitSize & 0xFF00) >> 8, bitSize & 0xFF]);\n        return util.concatUint8Array([prefix, stripped]);\n    },\n    /**\n     * Return bit length of the input data\n     * @param {Uint8Array} bin input data (big endian)\n     * @returns bit length\n     */\n    uint8ArrayBitLength: function (bin) {\n        let i; // index of leading non-zero byte\n        for (i = 0; i < bin.length; i++)\n            if (bin[i] !== 0)\n                break;\n        if (i === bin.length) {\n            return 0;\n        }\n        const stripped = bin.subarray(i);\n        return (stripped.length - 1) * 8 + util.nbits(stripped[0]);\n    },\n    /**\n     * Convert a hex string to an array of 8-bit integers\n     * @param {String} hex - A hex string to convert\n     * @returns {Uint8Array} An array of 8-bit integers.\n     */\n    hexToUint8Array: function (hex) {\n        const result = new Uint8Array(hex.length >> 1);\n        for (let k = 0; k < hex.length >> 1; k++) {\n            result[k] = parseInt(hex.substr(k << 1, 2), 16);\n        }\n        return result;\n    },\n    /**\n     * Convert an array of 8-bit integers to a hex string\n     * @param {Uint8Array} bytes - Array of 8-bit integers to convert\n     * @returns {String} Hexadecimal representation of the array.\n     */\n    uint8ArrayToHex: function (bytes) {\n        const hexAlphabet = '0123456789abcdef';\n        let s = '';\n        bytes.forEach(v => { s += hexAlphabet[v >> 4] + hexAlphabet[v & 15]; });\n        return s;\n    },\n    /**\n     * Convert a string to an array of 8-bit integers\n     * @param {String} str - String to convert\n     * @returns {Uint8Array} An array of 8-bit integers.\n     */\n    stringToUint8Array: function (str) {\n        return transform(str, str => {\n            if (!util.isString(str)) {\n                throw new Error('stringToUint8Array: Data must be in the form of a string');\n            }\n            const result = new Uint8Array(str.length);\n            for (let i = 0; i < str.length; i++) {\n                result[i] = str.charCodeAt(i);\n            }\n            return result;\n        });\n    },\n    /**\n     * Convert an array of 8-bit integers to a string\n     * @param {Uint8Array} bytes - An array of 8-bit integers to convert\n     * @returns {String} String representation of the array.\n     */\n    uint8ArrayToString: function (bytes) {\n        bytes = new Uint8Array(bytes);\n        const result = [];\n        const bs = 1 << 14;\n        const j = bytes.length;\n        for (let i = 0; i < j; i += bs) {\n            result.push(String.fromCharCode.apply(String, bytes.subarray(i, i + bs < j ? i + bs : j)));\n        }\n        return result.join('');\n    },\n    /**\n     * Convert a native javascript string to a Uint8Array of utf8 bytes\n     * @param {String|ReadableStream} str - The string to convert\n     * @returns {Uint8Array|ReadableStream} A valid squence of utf8 bytes.\n     */\n    encodeUTF8: function (str) {\n        const encoder = new TextEncoder('utf-8');\n        function process(value, lastChunk = false) {\n            return encoder.encode(value, { stream: !lastChunk });\n        }\n        return transform(str, process, () => process('', true));\n    },\n    /**\n     * Convert a Uint8Array of utf8 bytes to a native javascript string\n     * @param {Uint8Array|ReadableStream} utf8 - A valid squence of utf8 bytes\n     * @returns {String|ReadableStream} A native javascript string.\n     */\n    decodeUTF8: function (utf8) {\n        const decoder = new TextDecoder('utf-8');\n        function process(value, lastChunk = false) {\n            return decoder.decode(value, { stream: !lastChunk });\n        }\n        return transform(utf8, process, () => process(new Uint8Array(), true));\n    },\n    /**\n     * Concat a list of Uint8Arrays, Strings or Streams\n     * The caller must not mix Uint8Arrays with Strings, but may mix Streams with non-Streams.\n     * @param {Array<Uint8Array|String|ReadableStream>} Array - Of Uint8Arrays/Strings/Streams to concatenate\n     * @returns {Uint8Array|String|ReadableStream} Concatenated array.\n     */\n    concat: concat,\n    /**\n     * Concat Uint8Arrays\n     * @param {Array<Uint8Array>} Array - Of Uint8Arrays to concatenate\n     * @returns {Uint8Array} Concatenated array.\n     */\n    concatUint8Array: concatUint8Array,\n    /**\n     * Check Uint8Array equality\n     * @param {Uint8Array} array1 - First array\n     * @param {Uint8Array} array2 - Second array\n     * @returns {Boolean} Equality.\n     */\n    equalsUint8Array: function (array1, array2) {\n        if (!util.isUint8Array(array1) || !util.isUint8Array(array2)) {\n            throw new Error('Data must be in the form of a Uint8Array');\n        }\n        if (array1.length !== array2.length) {\n            return false;\n        }\n        for (let i = 0; i < array1.length; i++) {\n            if (array1[i] !== array2[i]) {\n                return false;\n            }\n        }\n        return true;\n    },\n    /**\n     * Same as Array.findLastIndex, which is not supported on Safari 14 .\n     * @param {Array} arr\n     * @param {function(element, index, arr): boolean} findFn\n     * @return index of last element matching `findFn`, -1 if not found\n     */\n    findLastIndex: function (arr, findFn) {\n        for (let i = arr.length; i >= 0; i--) {\n            if (findFn(arr[i], i, arr)) {\n                return i;\n            }\n        }\n        return -1;\n    },\n    /**\n     * Calculates a 16bit sum of a Uint8Array by adding each character\n     * codes modulus 65535\n     * @param {Uint8Array} Uint8Array - To create a sum of\n     * @returns {Uint8Array} 2 bytes containing the sum of all charcodes % 65535.\n     */\n    writeChecksum: function (text) {\n        let s = 0;\n        for (let i = 0; i < text.length; i++) {\n            s = (s + text[i]) & 0xFFFF;\n        }\n        return util.writeNumber(s, 2);\n    },\n    /**\n     * Helper function to print a debug message. Debug\n     * messages are only printed if\n     * @param {String} str - String of the debug message\n     */\n    printDebug: function (str) {\n        if (debugMode) {\n            console.log('[OpenPGP.js debug]', str);\n        }\n    },\n    /**\n     * Helper function to print a debug error. Debug\n     * messages are only printed if\n     * @param {String} str - String of the debug message\n     */\n    printDebugError: function (error) {\n        if (debugMode) {\n            console.error('[OpenPGP.js debug]', error);\n        }\n    },\n    // returns bit length of the integer x\n    nbits: function (x) {\n        let r = 1;\n        let t = x >>> 16;\n        if (t !== 0) {\n            x = t;\n            r += 16;\n        }\n        t = x >> 8;\n        if (t !== 0) {\n            x = t;\n            r += 8;\n        }\n        t = x >> 4;\n        if (t !== 0) {\n            x = t;\n            r += 4;\n        }\n        t = x >> 2;\n        if (t !== 0) {\n            x = t;\n            r += 2;\n        }\n        t = x >> 1;\n        if (t !== 0) {\n            x = t;\n            r += 1;\n        }\n        return r;\n    },\n    /**\n     * If S[1] == 0, then double(S) == (S[2..128] || 0);\n     * otherwise, double(S) == (S[2..128] || 0) xor\n     * (zeros(120) || 10000111).\n     *\n     * Both OCB and EAX (through CMAC) require this function to be constant-time.\n     *\n     * @param {Uint8Array} data\n     */\n    double: function (data) {\n        const doubleVar = new Uint8Array(data.length);\n        const last = data.length - 1;\n        for (let i = 0; i < last; i++) {\n            doubleVar[i] = (data[i] << 1) ^ (data[i + 1] >> 7);\n        }\n        doubleVar[last] = (data[last] << 1) ^ ((data[0] >> 7) * 0x87);\n        return doubleVar;\n    },\n    /**\n     * Shift a Uint8Array to the right by n bits\n     * @param {Uint8Array} array - The array to shift\n     * @param {Integer} bits - Amount of bits to shift (MUST be smaller\n     * than 8)\n     * @returns {String} Resulting array.\n     */\n    shiftRight: function (array, bits) {\n        if (bits) {\n            for (let i = array.length - 1; i >= 0; i--) {\n                array[i] >>= bits;\n                if (i > 0) {\n                    array[i] |= (array[i - 1] << (8 - bits));\n                }\n            }\n        }\n        return array;\n    },\n    /**\n     * Get native Web Cryptography API.\n     * @returns {Object} The SubtleCrypto API\n     * @throws if the API is not available\n     */\n    getWebCrypto: function () {\n        const globalWebCrypto = typeof globalThis !== 'undefined' && globalThis.crypto && globalThis.crypto.subtle;\n        // Fallback for Node 16, which does not expose WebCrypto as a global\n        const webCrypto = globalWebCrypto || this.getNodeCrypto()?.webcrypto.subtle;\n        if (!webCrypto) {\n            throw new Error('The WebCrypto API is not available');\n        }\n        return webCrypto;\n    },\n    /** @typedef {import('node:crypto')} NodeCrypto */\n    /**\n     * Get native Node.js crypto api.\n     * @returns {NodeCrypto} The crypto module or 'undefined'.\n     */\n    getNodeCrypto: function () {\n        return this.nodeRequire('crypto');\n    },\n    getNodeZlib: function () {\n        return this.nodeRequire('zlib');\n    },\n    /**\n     * Get native Node.js Buffer constructor. This should be used since\n     * Buffer is not available under browserify.\n     * @returns {Function} The Buffer constructor or 'undefined'.\n     */\n    getNodeBuffer: function () {\n        return (this.nodeRequire('buffer') || {}).Buffer;\n    },\n    getHardwareConcurrency: function () {\n        if (typeof navigator !== 'undefined') {\n            return navigator.hardwareConcurrency || 1;\n        }\n        const os = this.nodeRequire('os'); // Assume we're on Node.js.\n        return os.cpus().length;\n    },\n    /**\n     * Test email format to ensure basic compliance:\n     * - must include a single @\n     * - no control or space unicode chars allowed\n     * - no backslash and square brackets (as the latter can mess with the userID parsing)\n     * - cannot end with a punctuation char\n     * These checks are not meant to be exhaustive; applications are strongly encouraged to implement stricter validation,\n     * e.g. based on the W3C HTML spec (https://html.spec.whatwg.org/multipage/input.html#email-state-(type=email)).\n     */\n    isEmailAddress: function (data) {\n        if (!util.isString(data)) {\n            return false;\n        }\n        const re = /^[^\\p{C}\\p{Z}@<>\\\\]+@[^\\p{C}\\p{Z}@<>\\\\]+[^\\p{C}\\p{Z}\\p{P}]$/u;\n        return re.test(data);\n    },\n    /**\n     * Normalize line endings to <CR><LF>\n     * Support any encoding where CR=0x0D, LF=0x0A\n     */\n    canonicalizeEOL: function (data) {\n        const CR = 13;\n        const LF = 10;\n        let carryOverCR = false;\n        return transform(data, bytes => {\n            if (carryOverCR) {\n                bytes = util.concatUint8Array([new Uint8Array([CR]), bytes]);\n            }\n            if (bytes[bytes.length - 1] === CR) {\n                carryOverCR = true;\n                bytes = bytes.subarray(0, -1);\n            }\n            else {\n                carryOverCR = false;\n            }\n            let index;\n            const indices = [];\n            for (let i = 0;; i = index) {\n                index = bytes.indexOf(LF, i) + 1;\n                if (index) {\n                    if (bytes[index - 2] !== CR)\n                        indices.push(index);\n                }\n                else {\n                    break;\n                }\n            }\n            if (!indices.length) {\n                return bytes;\n            }\n            const normalized = new Uint8Array(bytes.length + indices.length);\n            let j = 0;\n            for (let i = 0; i < indices.length; i++) {\n                const sub = bytes.subarray(indices[i - 1] || 0, indices[i]);\n                normalized.set(sub, j);\n                j += sub.length;\n                normalized[j - 1] = CR;\n                normalized[j] = LF;\n                j++;\n            }\n            normalized.set(bytes.subarray(indices[indices.length - 1] || 0), j);\n            return normalized;\n        }, () => (carryOverCR ? new Uint8Array([CR]) : undefined));\n    },\n    /**\n     * Convert line endings from canonicalized <CR><LF> to native <LF>\n     * Support any encoding where CR=0x0D, LF=0x0A\n     */\n    nativeEOL: function (data) {\n        const CR = 13;\n        const LF = 10;\n        let carryOverCR = false;\n        return transform(data, bytes => {\n            if (carryOverCR && bytes[0] !== LF) {\n                bytes = util.concatUint8Array([new Uint8Array([CR]), bytes]);\n            }\n            else {\n                bytes = new Uint8Array(bytes); // Don't mutate passed bytes\n            }\n            if (bytes[bytes.length - 1] === CR) {\n                carryOverCR = true;\n                bytes = bytes.subarray(0, -1);\n            }\n            else {\n                carryOverCR = false;\n            }\n            let index;\n            let j = 0;\n            for (let i = 0; i !== bytes.length; i = index) {\n                index = bytes.indexOf(CR, i) + 1;\n                if (!index)\n                    index = bytes.length;\n                const last = index - (bytes[index] === LF ? 1 : 0);\n                if (i)\n                    bytes.copyWithin(j, i, last);\n                j += last - i;\n            }\n            return bytes.subarray(0, j);\n        }, () => (carryOverCR ? new Uint8Array([CR]) : undefined));\n    },\n    /**\n     * Remove trailing spaces, carriage returns and tabs from each line\n     */\n    removeTrailingSpaces: function (text) {\n        return text.split('\\n').map(line => {\n            let i = line.length - 1;\n            for (; i >= 0 && (line[i] === ' ' || line[i] === '\\t' || line[i] === '\\r'); i--)\n                ;\n            return line.substr(0, i + 1);\n        }).join('\\n');\n    },\n    wrapError: function (error, cause) {\n        if (!cause) {\n            if (error instanceof Error) {\n                return error;\n            }\n            return new Error(error);\n        }\n        if (error instanceof Error) {\n            // update error message\n            try {\n                error.message += ': ' + cause.message;\n                error.cause = cause;\n            }\n            catch { }\n            return error;\n        }\n        return new Error(error + ': ' + cause.message, { cause });\n    },\n    /**\n     * Map allowed packet tags to corresponding classes\n     * Meant to be used to format `allowedPacket` for Packetlist.read\n     * @param {Array<Object>} allowedClasses\n     * @returns {Object} map from enum.packet to corresponding *Packet class\n     */\n    constructAllowedPackets: function (allowedClasses) {\n        const map = {};\n        allowedClasses.forEach(PacketClass => {\n            if (!PacketClass.tag) {\n                throw new Error('Invalid input: expected a packet class');\n            }\n            map[PacketClass.tag] = PacketClass;\n        });\n        return map;\n    },\n    /**\n     * Return a Promise that will resolve as soon as one of the promises in input resolves\n     * or will reject if all input promises all rejected\n     * (similar to Promise.any, but with slightly different error handling)\n     * @param {Array<Promise>} promises\n     * @return {Promise<Any>} Promise resolving to the result of the fastest fulfilled promise\n     *                          or rejected with the Error of the last resolved Promise (if all promises are rejected)\n     */\n    anyPromise: function (promises) {\n        return new Promise((resolve, reject) => {\n            let exception;\n            void Promise.all(promises.map(async (promise) => {\n                try {\n                    resolve(await promise);\n                }\n                catch (e) {\n                    exception = e;\n                }\n            })).then(() => {\n                reject(exception);\n            });\n        });\n    },\n    /**\n     * Return either `a` or `b` based on `cond`, in algorithmic constant time.\n     * @param {Boolean} cond\n     * @param {Uint8Array} a\n     * @param {Uint8Array} b\n     * @returns `a` if `cond` is true, `b` otherwise\n     */\n    selectUint8Array: function (cond, a, b) {\n        const length = Math.max(a.length, b.length);\n        const result = new Uint8Array(length);\n        let end = 0;\n        for (let i = 0; i < result.length; i++) {\n            result[i] = (a[i] & (256 - cond)) | (b[i] & (255 + cond));\n            end += (cond & i < a.length) | ((1 - cond) & i < b.length);\n        }\n        return result.subarray(0, end);\n    },\n    /**\n     * Return either `a` or `b` based on `cond`, in algorithmic constant time.\n     * NB: it only supports `a, b` with values between 0-255.\n     * @param {Boolean} cond\n     * @param {Uint8} a\n     * @param {Uint8} b\n     * @returns `a` if `cond` is true, `b` otherwise\n     */\n    selectUint8: function (cond, a, b) {\n        return (a & (256 - cond)) | (b & (255 + cond));\n    },\n    /**\n     * @param {module:enums.symmetric} cipherAlgo\n     */\n    isAES: function (cipherAlgo) {\n        return cipherAlgo === enums.symmetric.aes128 || cipherAlgo === enums.symmetric.aes192 || cipherAlgo === enums.symmetric.aes256;\n    }\n};\n\n/* OpenPGP radix-64/base64 string encoding/decoding\n * Copyright 2005 Herbert Hanewinkel, www.haneWIN.de\n * version 1.0, check www.haneWIN.de for the latest version\n *\n * This software is provided as-is, without express or implied warranty.\n * Permission to use, copy, modify, distribute or sell this software, with or\n * without fee, for any purpose and by any individual or organization, is hereby\n * granted, provided that the above copyright notice and this paragraph appear\n * in all copies. Distribution as a part of an application or binary must\n * include the above copyright notice in the documentation and/or other materials\n * provided with the application or distribution.\n */\n/**\n * @module encoding/base64\n * @access private\n */\nconst Buffer$2 = util.getNodeBuffer();\nlet encodeChunk;\nlet decodeChunk;\nif (Buffer$2) {\n    encodeChunk = buf => Buffer$2.from(buf).toString('base64');\n    decodeChunk = str => {\n        const b = Buffer$2.from(str, 'base64');\n        return new Uint8Array(b.buffer, b.byteOffset, b.byteLength);\n    };\n}\nelse {\n    encodeChunk = buf => btoa(util.uint8ArrayToString(buf));\n    decodeChunk = str => util.stringToUint8Array(atob(str));\n}\n/**\n * Convert binary array to radix-64\n * @param {Uint8Array | ReadableStream<Uint8Array>} data - Uint8Array to convert\n * @returns {String | ReadableStream<String>} Radix-64 version of input string.\n * @static\n */\nfunction encode$1(data) {\n    let buf = new Uint8Array();\n    return transform(data, value => {\n        buf = util.concatUint8Array([buf, value]);\n        const r = [];\n        const bytesPerLine = 45; // 60 chars per line * (3 bytes / 4 chars of base64).\n        const lines = Math.floor(buf.length / bytesPerLine);\n        const bytes = lines * bytesPerLine;\n        const encoded = encodeChunk(buf.subarray(0, bytes));\n        for (let i = 0; i < lines; i++) {\n            r.push(encoded.substr(i * 60, 60));\n            r.push('\\n');\n        }\n        buf = buf.subarray(bytes);\n        return r.join('');\n    }, () => (buf.length ? encodeChunk(buf) + '\\n' : ''));\n}\n/**\n * Convert radix-64 to binary array\n * @param {String | ReadableStream<String>} data - Radix-64 string to convert\n * @returns {Uint8Array | ReadableStream<Uint8Array>} Binary array version of input string.\n * @static\n */\nfunction decode$1(data) {\n    let buf = '';\n    return transform(data, value => {\n        buf += value;\n        // Count how many whitespace characters there are in buf\n        let spaces = 0;\n        const spacechars = [' ', '\\t', '\\r', '\\n'];\n        for (let i = 0; i < spacechars.length; i++) {\n            const spacechar = spacechars[i];\n            for (let pos = buf.indexOf(spacechar); pos !== -1; pos = buf.indexOf(spacechar, pos + 1)) {\n                spaces++;\n            }\n        }\n        // Backtrack until we have 4n non-whitespace characters\n        // that we can safely base64-decode\n        let length = buf.length;\n        for (; length > 0 && (length - spaces) % 4 !== 0; length--) {\n            if (spacechars.includes(buf[length]))\n                spaces--;\n        }\n        const decoded = decodeChunk(buf.substr(0, length));\n        buf = buf.substr(length);\n        return decoded;\n    }, () => decodeChunk(buf));\n}\n/**\n * Convert a Base-64 encoded string an array of 8-bit integer\n *\n * Note: accepts both Radix-64 and URL-safe strings\n * @param {String} base64 - Base-64 encoded string to convert\n * @returns {Uint8Array} An array of 8-bit integers.\n */\nfunction b64ToUint8Array(base64) {\n    return decode$1(base64.replace(/-/g, '+').replace(/_/g, '/'));\n}\n/**\n * Convert an array of 8-bit integer to a Base-64 encoded string\n * @param {Uint8Array} bytes - An array of 8-bit integers to convert\n * @param {bool} url - If true, output is URL-safe\n * @returns {String} Base-64 encoded string.\n */\nfunction uint8ArrayToB64(bytes, url) {\n    let encoded = encode$1(bytes).replace(/[\\r\\n]/g, '');\n    {\n        encoded = encoded.replace(/[+]/g, '-').replace(/[/]/g, '_').replace(/[=]/g, '');\n    }\n    return encoded;\n}\n\n/** @access private */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Finds out which Ascii Armoring type is used. Throws error if unknown type.\n * @param {String} text - ascii armored text\n * @returns {Integer} 0 = MESSAGE PART n of m.\n *         1 = MESSAGE PART n\n *         2 = SIGNED MESSAGE\n *         3 = PGP MESSAGE\n *         4 = PUBLIC KEY BLOCK\n *         5 = PRIVATE KEY BLOCK\n *         6 = SIGNATURE\n * @private\n */\nfunction getType(text) {\n    const reHeader = /^-----BEGIN PGP (MESSAGE, PART \\d+\\/\\d+|MESSAGE, PART \\d+|SIGNED MESSAGE|MESSAGE|PUBLIC KEY BLOCK|PRIVATE KEY BLOCK|SIGNATURE)-----$/m;\n    const header = text.match(reHeader);\n    if (!header) {\n        throw new Error('Unknown ASCII armor type');\n    }\n    // BEGIN PGP MESSAGE, PART X/Y\n    // Used for multi-part messages, where the armor is split amongst Y\n    // parts, and this is the Xth part out of Y.\n    if (/MESSAGE, PART \\d+\\/\\d+/.test(header[1])) {\n        return enums.armor.multipartSection;\n    }\n    // BEGIN PGP MESSAGE, PART X\n    // Used for multi-part messages, where this is the Xth part of an\n    // unspecified number of parts. Requires the MESSAGE-ID Armor\n    // Header to be used.\n    if (/MESSAGE, PART \\d+/.test(header[1])) {\n        return enums.armor.multipartLast;\n    }\n    // BEGIN PGP SIGNED MESSAGE\n    if (/SIGNED MESSAGE/.test(header[1])) {\n        return enums.armor.signed;\n    }\n    // BEGIN PGP MESSAGE\n    // Used for signed, encrypted, or compressed files.\n    if (/MESSAGE/.test(header[1])) {\n        return enums.armor.message;\n    }\n    // BEGIN PGP PUBLIC KEY BLOCK\n    // Used for armoring public keys.\n    if (/PUBLIC KEY BLOCK/.test(header[1])) {\n        return enums.armor.publicKey;\n    }\n    // BEGIN PGP PRIVATE KEY BLOCK\n    // Used for armoring private keys.\n    if (/PRIVATE KEY BLOCK/.test(header[1])) {\n        return enums.armor.privateKey;\n    }\n    // BEGIN PGP SIGNATURE\n    // Used for detached signatures, OpenPGP/MIME signatures, and\n    // cleartext signatures. Note that PGP 2.x uses BEGIN PGP MESSAGE\n    // for detached signatures.\n    if (/SIGNATURE/.test(header[1])) {\n        return enums.armor.signature;\n    }\n}\n/**\n * Add additional information to the armor version of an OpenPGP binary\n * packet block.\n * @author  Alex\n * @version 2011-12-16\n * @param {String} [customComment] - Additional comment to add to the armored string\n * @returns {String} The header information.\n * @private\n */\nfunction addheader(customComment, config) {\n    let result = '';\n    if (config.showVersion) {\n        result += 'Version: ' + config.versionString + '\\n';\n    }\n    if (config.showComment) {\n        result += 'Comment: ' + config.commentString + '\\n';\n    }\n    if (customComment) {\n        result += 'Comment: ' + customComment + '\\n';\n    }\n    result += '\\n';\n    return result;\n}\n/**\n * Calculates a checksum over the given data and returns it base64 encoded\n * @param {String | ReadableStream<String>} data - Data to create a CRC-24 checksum for\n * @returns {String | ReadableStream<String>} Base64 encoded checksum.\n * @private\n */\nfunction getCheckSum(data) {\n    const crc = createcrc24(data);\n    return encode$1(crc);\n}\n// https://create.stephan-brumme.com/crc32/#slicing-by-8-overview\nconst crc_table = [\n    new Array(0xFF),\n    new Array(0xFF),\n    new Array(0xFF),\n    new Array(0xFF)\n];\nfor (let i = 0; i <= 0xFF; i++) {\n    let crc = i << 16;\n    for (let j = 0; j < 8; j++) {\n        crc = (crc << 1) ^ ((crc & 0x800000) !== 0 ? 0x864CFB : 0);\n    }\n    crc_table[0][i] =\n        ((crc & 0xFF0000) >> 16) |\n            (crc & 0x00FF00) |\n            ((crc & 0x0000FF) << 16);\n}\nfor (let i = 0; i <= 0xFF; i++) {\n    crc_table[1][i] = (crc_table[0][i] >> 8) ^ crc_table[0][crc_table[0][i] & 0xFF];\n}\nfor (let i = 0; i <= 0xFF; i++) {\n    crc_table[2][i] = (crc_table[1][i] >> 8) ^ crc_table[0][crc_table[1][i] & 0xFF];\n}\nfor (let i = 0; i <= 0xFF; i++) {\n    crc_table[3][i] = (crc_table[2][i] >> 8) ^ crc_table[0][crc_table[2][i] & 0xFF];\n}\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView#Endianness\nconst isLittleEndian$1 = (function () {\n    const buffer = new ArrayBuffer(2);\n    new DataView(buffer).setInt16(0, 0xFF, true /* littleEndian */);\n    // Int16Array uses the platform's endianness.\n    return new Int16Array(buffer)[0] === 0xFF;\n}());\n/**\n * Internal function to calculate a CRC-24 checksum over a given string (data)\n * @param {String | ReadableStream<String>} input - Data to create a CRC-24 checksum for\n * @returns {Uint8Array | ReadableStream<Uint8Array>} The CRC-24 checksum.\n * @private\n */\nfunction createcrc24(input) {\n    let crc = 0xCE04B7;\n    return transform(input, value => {\n        const len32 = isLittleEndian$1 ? Math.floor(value.length / 4) : 0;\n        const arr32 = new Uint32Array(value.buffer, value.byteOffset, len32);\n        for (let i = 0; i < len32; i++) {\n            crc ^= arr32[i];\n            crc =\n                crc_table[0][(crc >> 24) & 0xFF] ^\n                    crc_table[1][(crc >> 16) & 0xFF] ^\n                    crc_table[2][(crc >> 8) & 0xFF] ^\n                    crc_table[3][(crc >> 0) & 0xFF];\n        }\n        for (let i = len32 * 4; i < value.length; i++) {\n            crc = (crc >> 8) ^ crc_table[0][(crc & 0xFF) ^ value[i]];\n        }\n    }, () => new Uint8Array([crc, crc >> 8, crc >> 16]));\n}\n/**\n * Verify armored headers. crypto-refresh-06, section 6.2:\n * \"An OpenPGP implementation may consider improperly formatted Armor\n * Headers to be corruption of the ASCII Armor, but SHOULD make an\n * effort to recover.\"\n * @private\n * @param {Array<String>} headers - Armor headers\n */\nfunction verifyHeaders$1(headers) {\n    for (let i = 0; i < headers.length; i++) {\n        if (!/^([^\\s:]|[^\\s:][^:]*[^\\s:]): .+$/.test(headers[i])) {\n            util.printDebugError(new Error('Improperly formatted armor header: ' + headers[i]));\n        }\n        if (!/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(headers[i])) {\n            util.printDebugError(new Error('Unknown header: ' + headers[i]));\n        }\n    }\n}\n/**\n * Remove the (optional) checksum from an armored message.\n * @param {String} text - OpenPGP armored message\n * @returns {String} The body of the armored message.\n * @private\n */\nfunction removeChecksum(text) {\n    let body = text;\n    const lastEquals = text.lastIndexOf('=');\n    if (lastEquals >= 0 && lastEquals !== text.length - 1) { // '=' as the last char means no checksum\n        body = text.slice(0, lastEquals);\n    }\n    return body;\n}\n/**\n * Dearmor an OpenPGP armored message; verify the checksum and return\n * the encoded bytes\n * @param {String} input - OpenPGP armored message\n * @returns {Promise<Object>} An object with attribute \"text\" containing the message text,\n * an attribute \"data\" containing a stream of bytes and \"type\" for the ASCII armor type\n * @async\n * @static\n */\nfunction unarmor(input) {\n    return new Promise((resolve, reject) => {\n        try {\n            const reSplit = /^-----[^-]+-----$/m;\n            const reEmptyLine = /^[ \\f\\r\\t\\u00a0\\u2000-\\u200a\\u202f\\u205f\\u3000]*$/;\n            let type;\n            const headers = [];\n            let lastHeaders = headers;\n            let headersDone;\n            let text = [];\n            let textDone;\n            const data = decode$1(transformPair(input, async (readable, writable) => {\n                const reader = getReader(readable);\n                try {\n                    while (true) {\n                        let line = await reader.readLine();\n                        if (line === undefined) {\n                            throw new Error('Misformed armored text');\n                        }\n                        // remove trailing whitespace at end of lines\n                        line = util.removeTrailingSpaces(line.replace(/[\\r\\n]/g, ''));\n                        if (!type) {\n                            if (reSplit.test(line)) {\n                                type = getType(line);\n                            }\n                        }\n                        else if (!headersDone) {\n                            if (reSplit.test(line)) {\n                                reject(new Error('Mandatory blank line missing between armor headers and armor data'));\n                            }\n                            if (!reEmptyLine.test(line)) {\n                                lastHeaders.push(line);\n                            }\n                            else {\n                                verifyHeaders$1(lastHeaders);\n                                headersDone = true;\n                                if (textDone || type !== enums.armor.signed) {\n                                    resolve({ text, data, headers, type });\n                                    break;\n                                }\n                            }\n                        }\n                        else if (!textDone && type === enums.armor.signed) {\n                            if (!reSplit.test(line)) {\n                                // Reverse dash-escaping for msg\n                                text.push(line.replace(/^- /, ''));\n                            }\n                            else {\n                                text = text.join('\\r\\n');\n                                textDone = true;\n                                verifyHeaders$1(lastHeaders);\n                                lastHeaders = [];\n                                headersDone = false;\n                            }\n                        }\n                    }\n                }\n                catch (e) {\n                    reject(e);\n                    return;\n                }\n                const writer = getWriter(writable);\n                try {\n                    while (true) {\n                        await writer.ready;\n                        const { done, value } = await reader.read();\n                        if (done) {\n                            throw new Error('Misformed armored text');\n                        }\n                        const line = value + '';\n                        if (line.indexOf('=') === -1 && line.indexOf('-') === -1) {\n                            await writer.write(line);\n                        }\n                        else {\n                            let remainder = await reader.readToEnd();\n                            if (!remainder.length)\n                                remainder = '';\n                            remainder = line + remainder;\n                            remainder = util.removeTrailingSpaces(remainder.replace(/\\r/g, ''));\n                            const parts = remainder.split(reSplit);\n                            if (parts.length === 1) {\n                                throw new Error('Misformed armored text');\n                            }\n                            const body = removeChecksum(parts[0].slice(0, -1));\n                            await writer.write(body);\n                            break;\n                        }\n                    }\n                    await writer.ready;\n                    await writer.close();\n                }\n                catch (e) {\n                    await writer.abort(e);\n                }\n            }));\n        }\n        catch (e) {\n            reject(e);\n        }\n    }).then(async (result) => {\n        if (isArrayStream(result.data)) {\n            result.data = await readToEnd(result.data);\n        }\n        return result;\n    });\n}\n/**\n * Armor an OpenPGP binary packet block\n * @param {module:enums.armor} messageType - Type of the message\n * @param {Uint8Array | ReadableStream<Uint8Array>} body - The message body to armor\n * @param {Integer} [partIndex]\n * @param {Integer} [partTotal]\n * @param {String} [customComment] - Additional comment to add to the armored string\n * @param {Boolean} [emitChecksum] - Whether to compute and include the CRC checksum\n *  (NB: some types of data must not include it, but compliance is left as responsibility of the caller: this function does not carry out any checks)\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {String | ReadableStream<String>} Armored text.\n * @static\n */\nfunction armor(messageType, body, partIndex, partTotal, customComment, emitChecksum = false, config$1 = config) {\n    let text;\n    let hash;\n    if (messageType === enums.armor.signed) {\n        text = body.text;\n        hash = body.hash;\n        body = body.data;\n    }\n    // unless explicitly forbidden by the spec, we need to include the checksum to work around a GnuPG bug\n    // where data fails to be decoded if the base64 ends with no padding chars (=) (see https://dev.gnupg.org/T7071)\n    const maybeBodyClone = emitChecksum && passiveClone(body);\n    const result = [];\n    switch (messageType) {\n        case enums.armor.multipartSection:\n            result.push('-----BEGIN PGP MESSAGE, PART ' + partIndex + '/' + partTotal + '-----\\n');\n            result.push(addheader(customComment, config$1));\n            result.push(encode$1(body));\n            maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n            result.push('-----END PGP MESSAGE, PART ' + partIndex + '/' + partTotal + '-----\\n');\n            break;\n        case enums.armor.multipartLast:\n            result.push('-----BEGIN PGP MESSAGE, PART ' + partIndex + '-----\\n');\n            result.push(addheader(customComment, config$1));\n            result.push(encode$1(body));\n            maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n            result.push('-----END PGP MESSAGE, PART ' + partIndex + '-----\\n');\n            break;\n        case enums.armor.signed:\n            result.push('-----BEGIN PGP SIGNED MESSAGE-----\\n');\n            result.push(hash ? `Hash: ${hash}\\n\\n` : '\\n');\n            result.push(text.replace(/^-/mg, '- -'));\n            result.push('\\n-----BEGIN PGP SIGNATURE-----\\n');\n            result.push(addheader(customComment, config$1));\n            result.push(encode$1(body));\n            maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n            result.push('-----END PGP SIGNATURE-----\\n');\n            break;\n        case enums.armor.message:\n            result.push('-----BEGIN PGP MESSAGE-----\\n');\n            result.push(addheader(customComment, config$1));\n            result.push(encode$1(body));\n            maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n            result.push('-----END PGP MESSAGE-----\\n');\n            break;\n        case enums.armor.publicKey:\n            result.push('-----BEGIN PGP PUBLIC KEY BLOCK-----\\n');\n            result.push(addheader(customComment, config$1));\n            result.push(encode$1(body));\n            maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n            result.push('-----END PGP PUBLIC KEY BLOCK-----\\n');\n            break;\n        case enums.armor.privateKey:\n            result.push('-----BEGIN PGP PRIVATE KEY BLOCK-----\\n');\n            result.push(addheader(customComment, config$1));\n            result.push(encode$1(body));\n            maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n            result.push('-----END PGP PRIVATE KEY BLOCK-----\\n');\n            break;\n        case enums.armor.signature:\n            result.push('-----BEGIN PGP SIGNATURE-----\\n');\n            result.push(addheader(customComment, config$1));\n            result.push(encode$1(body));\n            maybeBodyClone && result.push('=', getCheckSum(maybeBodyClone));\n            result.push('-----END PGP SIGNATURE-----\\n');\n            break;\n    }\n    return util.concat(result);\n}\n\n/**\n * @module biginteger\n * @access private\n */\n// Operations are not constant time, but we try and limit timing leakage where we can\nconst _0n$8 = BigInt(0);\nconst _1n$c = BigInt(1);\nfunction uint8ArrayToBigInt(bytes) {\n    const hexAlphabet = '0123456789ABCDEF';\n    let s = '';\n    bytes.forEach(v => {\n        s += hexAlphabet[v >> 4] + hexAlphabet[v & 15];\n    });\n    return BigInt('0x0' + s);\n}\nfunction mod$1(a, m) {\n    const reduced = a % m;\n    return reduced < _0n$8 ? reduced + m : reduced;\n}\n/**\n * Return either `a` or `b` based on `cond`, in algorithmic constant time.\n * @param {BigInt} cond\n * @param {BigInt} a\n * @param {BigInt} b\n * @returns `a` if `cond` is `1n`, `b` otherwise\n */\nfunction selectBigInt(cond, a, b) {\n    const mask = -cond; // ~0n === -1n\n    return (a & mask) | (b & ~mask);\n}\n/**\n * Compute modular exponentiation using square and multiply\n * @param {BigInt} a - Base\n * @param {BigInt} e - Exponent\n * @param {BigInt} n - Modulo\n * @returns {BigInt} b ** e mod n.\n */\nfunction modExp(b, e, n) {\n    if (n === _0n$8)\n        throw Error('Modulo cannot be zero');\n    if (n === _1n$c)\n        return BigInt(0);\n    if (e < _0n$8)\n        throw Error('Unsopported negative exponent');\n    let exp = e;\n    let x = b;\n    x %= n;\n    let r = BigInt(1);\n    while (exp > _0n$8) {\n        const lsb = (exp & _1n$c);\n        exp >>= _1n$c; // e / 2\n        // Always compute multiplication step, to reduce timing leakage\n        const rx = (r * x) % n;\n        // Update r only if lsb is 1 (odd exponent)\n        r = selectBigInt(lsb, rx, r);\n        x = (x * x) % n; // Square\n    }\n    return r;\n}\nfunction abs(x) {\n    return x >= _0n$8 ? x : -x;\n}\n/**\n * Extended Eucleadian algorithm (http://anh.cs.luc.edu/331/notes/xgcd.pdf)\n * Given a and b, compute (x, y) such that ax + by = gdc(a, b).\n * Negative numbers are also supported.\n * @param {BigInt} a - First operand\n * @param {BigInt} b - Second operand\n * @returns {{ gcd, x, y: bigint }}\n */\nfunction _egcd(aInput, bInput) {\n    let x = BigInt(0);\n    let y = BigInt(1);\n    let xPrev = BigInt(1);\n    let yPrev = BigInt(0);\n    // Deal with negative numbers: run algo over absolute values,\n    // and \"move\" the sign to the returned x and/or y.\n    // See https://math.stackexchange.com/questions/37806/extended-euclidean-algorithm-with-negative-numbers\n    let a = abs(aInput);\n    let b = abs(bInput);\n    const aNegated = aInput < _0n$8;\n    const bNegated = bInput < _0n$8;\n    while (b !== _0n$8) {\n        const q = a / b;\n        let tmp = x;\n        x = xPrev - q * x;\n        xPrev = tmp;\n        tmp = y;\n        y = yPrev - q * y;\n        yPrev = tmp;\n        tmp = b;\n        b = a % b;\n        a = tmp;\n    }\n    return {\n        x: aNegated ? -xPrev : xPrev,\n        y: bNegated ? -yPrev : yPrev,\n        gcd: a\n    };\n}\n/**\n * Compute the inverse of `a` modulo `n`\n * Note: `a` and and `n` must be relatively prime\n * @param {BigInt} a\n * @param {BigInt} n - Modulo\n * @returns {BigInt} x such that a*x = 1 mod n\n * @throws {Error} if the inverse does not exist\n */\nfunction modInv(a, n) {\n    const { gcd, x } = _egcd(a, n);\n    if (gcd !== _1n$c) {\n        throw new Error('Inverse does not exist');\n    }\n    return mod$1(x + n, n);\n}\n/**\n * Compute greatest common divisor between this and n\n * @param {BigInt} aInput - Operand\n * @param {BigInt} bInput - Operand\n * @returns {BigInt} gcd\n */\nfunction gcd(aInput, bInput) {\n    let a = aInput;\n    let b = bInput;\n    while (b !== _0n$8) {\n        const tmp = b;\n        b = a % b;\n        a = tmp;\n    }\n    return a;\n}\n/**\n * Get this value as an exact Number (max 53 bits)\n * Fails if this value is too large\n * @returns {Number}\n */\nfunction bigIntToNumber(x) {\n    const number = Number(x);\n    if (number > Number.MAX_SAFE_INTEGER) {\n        // We throw and error to conform with the bn.js implementation\n        throw new Error('Number can only safely store up to 53 bits');\n    }\n    return number;\n}\n/**\n * Get value of i-th bit\n * @param {BigInt} x\n * @param {Number} i - Bit index\n * @returns {Number} Bit value.\n */\nfunction getBit(x, i) {\n    const bit = (x >> BigInt(i)) & _1n$c;\n    return bit === _0n$8 ? 0 : 1;\n}\n/**\n * Compute bit length\n */\nfunction bitLength(x) {\n    // -1n >> -1n is -1n\n    // 1n >> 1n is 0n\n    const target = x < _0n$8 ? BigInt(-1) : _0n$8;\n    let bitlen = 1;\n    let tmp = x;\n    while ((tmp >>= _1n$c) !== target) {\n        bitlen++;\n    }\n    return bitlen;\n}\n/**\n * Compute byte length\n */\nfunction byteLength(x) {\n    const target = x < _0n$8 ? BigInt(-1) : _0n$8;\n    const _8n = BigInt(8);\n    let len = 1;\n    let tmp = x;\n    while ((tmp >>= _8n) !== target) {\n        len++;\n    }\n    return len;\n}\n/**\n * Get Uint8Array representation of this number\n * @param {String} endian - Endianess of output array (defaults to 'be')\n * @param {Number} length - Of output array\n * @returns {Uint8Array}\n */\nfunction bigIntToUint8Array(x, endian = 'be', length) {\n    // we get and parse the hex string (https://coolaj86.com/articles/convert-js-bigints-to-typedarrays/)\n    // this is faster than shift+mod iterations\n    let hex = x.toString(16);\n    if (hex.length % 2 === 1) {\n        hex = '0' + hex;\n    }\n    const rawLength = hex.length / 2;\n    const bytes = new Uint8Array(length || rawLength);\n    // parse hex\n    const offset = length ? length - rawLength : 0;\n    let i = 0;\n    while (i < rawLength) {\n        bytes[i + offset] = parseInt(hex.slice(2 * i, 2 * i + 2), 16);\n        i++;\n    }\n    if (endian !== 'be') {\n        bytes.reverse();\n    }\n    return bytes;\n}\n\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n// The GPG4Browsers crypto interface\n/**\n * @fileoverview Provides tools for retrieving secure randomness from browsers or Node.js\n * @module crypto/random\n * @access private\n */\nconst nodeCrypto$8 = util.getNodeCrypto();\n/**\n * Retrieve secure random byte array of the specified length\n * @param {Integer} length - Length in bytes to generate\n * @returns {Uint8Array} Random byte array.\n */\nfunction getRandomBytes(length) {\n    const webcrypto = typeof crypto !== 'undefined' ? crypto : nodeCrypto$8?.webcrypto;\n    if (webcrypto?.getRandomValues) {\n        const buf = new Uint8Array(length);\n        return webcrypto.getRandomValues(buf);\n    }\n    else {\n        throw new Error('No secure random number generator available.');\n    }\n}\n/**\n * Create a secure random BigInt that is greater than or equal to min and less than max.\n * @param {bigint} min - Lower bound, included\n * @param {bigint} max - Upper bound, excluded\n * @returns {bigint} Random BigInt.\n * @async\n */\nfunction getRandomBigInteger(min, max) {\n    if (max < min) {\n        throw new Error('Illegal parameter value: max <= min');\n    }\n    const modulus = max - min;\n    const bytes = byteLength(modulus);\n    // Using a while loop is necessary to avoid bias introduced by the mod operation.\n    // However, we request 64 extra random bits so that the bias is negligible.\n    // Section B.1.1 here: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf\n    const r = uint8ArrayToBigInt(getRandomBytes(bytes + 8));\n    return mod$1(r, modulus) + min;\n}\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2018 Proton Technologies AG\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview Algorithms for probabilistic random prime generation\n * @module crypto/public_key/prime\n * @access private\n */\nconst _1n$b = BigInt(1);\n/**\n * Generate a probably prime random number\n * @param bits - Bit length of the prime\n * @param e - Optional RSA exponent to check against the prime\n * @param k - Optional number of iterations of Miller-Rabin test\n */\nfunction randomProbablePrime(bits, e, k) {\n    const _30n = BigInt(30);\n    const min = _1n$b << BigInt(bits - 1);\n    /*\n     * We can avoid any multiples of 3 and 5 by looking at n mod 30\n     * n mod 30 = 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29\n     * the next possible prime is mod 30:\n     *            1  7  7  7  7  7  7 11 11 11 11 13 13 17 17 17 17 19 19 23 23 23 23 29 29 29 29 29 29 1\n     */\n    const adds = [1, 6, 5, 4, 3, 2, 1, 4, 3, 2, 1, 2, 1, 4, 3, 2, 1, 2, 1, 4, 3, 2, 1, 6, 5, 4, 3, 2, 1, 2];\n    let n = getRandomBigInteger(min, min << _1n$b);\n    let i = bigIntToNumber(mod$1(n, _30n));\n    do {\n        n += BigInt(adds[i]);\n        i = (i + adds[i]) % adds.length;\n        // If reached the maximum, go back to the minimum.\n        if (bitLength(n) > bits) {\n            n = mod$1(n, min << _1n$b);\n            n += min;\n            i = bigIntToNumber(mod$1(n, _30n));\n        }\n    } while (!isProbablePrime(n, e, k));\n    return n;\n}\n/**\n * Probabilistic primality testing\n * @param n - Number to test\n * @param e - Optional RSA exponent to check against the prime\n * @param k - Optional number of iterations of Miller-Rabin test\n */\nfunction isProbablePrime(n, e, k) {\n    if (e && gcd(n - _1n$b, e) !== _1n$b) {\n        return false;\n    }\n    if (!divisionTest(n)) {\n        return false;\n    }\n    if (!fermat(n)) {\n        return false;\n    }\n    if (!millerRabin(n, k)) {\n        return false;\n    }\n    // TODO implement the Lucas test\n    // See Section C.3.3 here: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf\n    return true;\n}\n/**\n * Tests whether n is probably prime or not using Fermat's test with b = 2.\n * Fails if b^(n-1) mod n != 1.\n * @param n - Number to test\n * @param b - Optional Fermat test base\n */\nfunction fermat(n, b = BigInt(2)) {\n    return modExp(b, n - _1n$b, n) === _1n$b;\n}\nfunction divisionTest(n) {\n    const _0n = BigInt(0);\n    return smallPrimes.every(m => mod$1(n, m) !== _0n);\n}\n// https://github.com/gpg/libgcrypt/blob/master/cipher/primegen.c\nconst smallPrimes = [\n    7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43,\n    47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101,\n    103, 107, 109, 113, 127, 131, 137, 139, 149, 151,\n    157, 163, 167, 173, 179, 181, 191, 193, 197, 199,\n    211, 223, 227, 229, 233, 239, 241, 251, 257, 263,\n    269, 271, 277, 281, 283, 293, 307, 311, 313, 317,\n    331, 337, 347, 349, 353, 359, 367, 373, 379, 383,\n    389, 397, 401, 409, 419, 421, 431, 433, 439, 443,\n    449, 457, 461, 463, 467, 479, 487, 491, 499, 503,\n    509, 521, 523, 541, 547, 557, 563, 569, 571, 577,\n    587, 593, 599, 601, 607, 613, 617, 619, 631, 641,\n    643, 647, 653, 659, 661, 673, 677, 683, 691, 701,\n    709, 719, 727, 733, 739, 743, 751, 757, 761, 769,\n    773, 787, 797, 809, 811, 821, 823, 827, 829, 839,\n    853, 857, 859, 863, 877, 881, 883, 887, 907, 911,\n    919, 929, 937, 941, 947, 953, 967, 971, 977, 983,\n    991, 997, 1009, 1013, 1019, 1021, 1031, 1033,\n    1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091,\n    1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151,\n    1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213,\n    1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277,\n    1279, 1283, 1289, 1291, 1297, 1301, 1303, 1307,\n    1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399,\n    1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451,\n    1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493,\n    1499, 1511, 1523, 1531, 1543, 1549, 1553, 1559,\n    1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609,\n    1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667,\n    1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733,\n    1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789,\n    1801, 1811, 1823, 1831, 1847, 1861, 1867, 1871,\n    1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931,\n    1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997,\n    1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053,\n    2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111,\n    2113, 2129, 2131, 2137, 2141, 2143, 2153, 2161,\n    2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243,\n    2251, 2267, 2269, 2273, 2281, 2287, 2293, 2297,\n    2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357,\n    2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411,\n    2417, 2423, 2437, 2441, 2447, 2459, 2467, 2473,\n    2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551,\n    2557, 2579, 2591, 2593, 2609, 2617, 2621, 2633,\n    2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687,\n    2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729,\n    2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791,\n    2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851,\n    2857, 2861, 2879, 2887, 2897, 2903, 2909, 2917,\n    2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999,\n    3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061,\n    3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137,\n    3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209,\n    3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271,\n    3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331,\n    3343, 3347, 3359, 3361, 3371, 3373, 3389, 3391,\n    3407, 3413, 3433, 3449, 3457, 3461, 3463, 3467,\n    3469, 3491, 3499, 3511, 3517, 3527, 3529, 3533,\n    3539, 3541, 3547, 3557, 3559, 3571, 3581, 3583,\n    3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643,\n    3659, 3671, 3673, 3677, 3691, 3697, 3701, 3709,\n    3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779,\n    3793, 3797, 3803, 3821, 3823, 3833, 3847, 3851,\n    3853, 3863, 3877, 3881, 3889, 3907, 3911, 3917,\n    3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989,\n    4001, 4003, 4007, 4013, 4019, 4021, 4027, 4049,\n    4051, 4057, 4073, 4079, 4091, 4093, 4099, 4111,\n    4127, 4129, 4133, 4139, 4153, 4157, 4159, 4177,\n    4201, 4211, 4217, 4219, 4229, 4231, 4241, 4243,\n    4253, 4259, 4261, 4271, 4273, 4283, 4289, 4297,\n    4327, 4337, 4339, 4349, 4357, 4363, 4373, 4391,\n    4397, 4409, 4421, 4423, 4441, 4447, 4451, 4457,\n    4463, 4481, 4483, 4493, 4507, 4513, 4517, 4519,\n    4523, 4547, 4549, 4561, 4567, 4583, 4591, 4597,\n    4603, 4621, 4637, 4639, 4643, 4649, 4651, 4657,\n    4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729,\n    4733, 4751, 4759, 4783, 4787, 4789, 4793, 4799,\n    4801, 4813, 4817, 4831, 4861, 4871, 4877, 4889,\n    4903, 4909, 4919, 4931, 4933, 4937, 4943, 4951,\n    4957, 4967, 4969, 4973, 4987, 4993, 4999\n].map(n => BigInt(n));\n// Miller-Rabin - Miller Rabin algorithm for primality test\n// Copyright Fedor Indutny, 2014.\n//\n// This software is licensed under the MIT License.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// Adapted on Jan 2018 from version 4.0.1 at https://github.com/indutny/miller-rabin\n// Sample syntax for Fixed-Base Miller-Rabin:\n// millerRabin(n, k, () => new BN(small_primes[Math.random() * small_primes.length | 0]))\n/**\n * Tests whether n is probably prime or not using the Miller-Rabin test.\n * See HAC Remark 4.28.\n * @param n - Number to test\n * @param k - Optional number of iterations of Miller-Rabin test\n * @param rand - Optional function to generate potential witnesses\n * @returns {boolean}\n * @async\n */\nfunction millerRabin(n, k, rand) {\n    const len = bitLength(n);\n    if (!k) {\n        k = Math.max(1, (len / 48) | 0);\n    }\n    const n1 = n - _1n$b; // n - 1\n    // Find d and s, (n - 1) = (2 ^ s) * d;\n    let s = 0;\n    while (!getBit(n1, s)) {\n        s++;\n    }\n    const d = n >> BigInt(s);\n    for (; k > 0; k--) {\n        const a = getRandomBigInteger(BigInt(2), n1);\n        let x = modExp(a, d, n);\n        if (x === _1n$b || x === n1) {\n            continue;\n        }\n        let i;\n        for (i = 1; i < s; i++) {\n            x = mod$1(x * x, n);\n            if (x === _1n$b) {\n                return false;\n            }\n            if (x === n1) {\n                break;\n            }\n        }\n        if (i === s) {\n            return false;\n        }\n    }\n    return true;\n}\n\n/**\n * @fileoverview Provides an interface to hashing functions available in Node.js or external libraries.\n * @see {@link https://github.com/asmcrypto/asmcrypto.js|asmCrypto}\n * @see {@link https://github.com/indutny/hash.js|hash.js}\n * @module crypto/hash\n * @access private\n */\nconst webCrypto$8 = util.getWebCrypto();\nconst nodeCrypto$7 = util.getNodeCrypto();\nconst nodeCryptoHashes = nodeCrypto$7 && nodeCrypto$7.getHashes();\nfunction nodeHash(type) {\n    if (!nodeCrypto$7 || !nodeCryptoHashes.includes(type)) {\n        return;\n    }\n    // eslint-disable-next-line @typescript-eslint/require-await\n    return async function (data) {\n        const shasum = nodeCrypto$7.createHash(type);\n        return transform(data, value => {\n            shasum.update(value);\n        }, () => new Uint8Array(shasum.digest()));\n    };\n}\nfunction nobleHash(nobleHashName, webCryptoHashName) {\n    const getNobleHash = async () => {\n        const { nobleHashes } = await Promise.resolve().then(function () { return noble_hashes; });\n        const hash = nobleHashes.get(nobleHashName);\n        if (!hash)\n            throw new Error('Unsupported hash');\n        return hash;\n    };\n    return async function (data) {\n        if (isArrayStream(data)) {\n            data = await readToEnd(data);\n        }\n        if (util.isStream(data)) {\n            const hash = await getNobleHash();\n            const hashInstance = hash.create();\n            return transform(data, value => {\n                hashInstance.update(value);\n            }, () => hashInstance.digest());\n        }\n        else if (webCrypto$8 && webCryptoHashName) {\n            return new Uint8Array(await webCrypto$8.digest(webCryptoHashName, data));\n        }\n        else {\n            const hash = await getNobleHash();\n            return hash(data);\n        }\n    };\n}\nconst md5$1 = nodeHash('md5') || nobleHash('md5');\nconst sha1$2 = nodeHash('sha1') || nobleHash('sha1', 'SHA-1');\nconst sha224$2 = nodeHash('sha224') || nobleHash('sha224');\nconst sha256$2 = nodeHash('sha256') || nobleHash('sha256', 'SHA-256');\nconst sha384$2 = nodeHash('sha384') || nobleHash('sha384', 'SHA-384');\nconst sha512$2 = nodeHash('sha512') || nobleHash('sha512', 'SHA-512');\nconst ripemd = nodeHash('ripemd160') || nobleHash('ripemd160');\nconst sha3_256$1 = nodeHash('sha3-256') || nobleHash('sha3_256');\nconst sha3_512$1 = nodeHash('sha3-512') || nobleHash('sha3_512');\n/**\n * Create a hash on the specified data using the specified algorithm\n * @param {module:enums.hash} algo - Hash algorithm type (see {@link https://tools.ietf.org/html/rfc4880#section-9.4|RFC 4880 9.4})\n * @param {Uint8Array} data - Data to be hashed\n * @returns {Promise<Uint8Array>} Hash value.\n */\nfunction computeDigest(algo, data) {\n    switch (algo) {\n        case enums.hash.md5:\n            return md5$1(data);\n        case enums.hash.sha1:\n            return sha1$2(data);\n        case enums.hash.ripemd:\n            return ripemd(data);\n        case enums.hash.sha256:\n            return sha256$2(data);\n        case enums.hash.sha384:\n            return sha384$2(data);\n        case enums.hash.sha512:\n            return sha512$2(data);\n        case enums.hash.sha224:\n            return sha224$2(data);\n        case enums.hash.sha3_256:\n            return sha3_256$1(data);\n        case enums.hash.sha3_512:\n            return sha3_512$1(data);\n        default:\n            throw new Error('Unsupported hash function');\n    }\n}\n/**\n * Returns the hash size in bytes of the specified hash algorithm type\n * @param {module:enums.hash} algo - Hash algorithm type (See {@link https://tools.ietf.org/html/rfc4880#section-9.4|RFC 4880 9.4})\n * @returns {Integer} Size in bytes of the resulting hash.\n */\nfunction getHashByteLength(algo) {\n    switch (algo) {\n        case enums.hash.md5:\n            return 16;\n        case enums.hash.sha1:\n        case enums.hash.ripemd:\n            return 20;\n        case enums.hash.sha256:\n            return 32;\n        case enums.hash.sha384:\n            return 48;\n        case enums.hash.sha512:\n            return 64;\n        case enums.hash.sha224:\n            return 28;\n        case enums.hash.sha3_256:\n            return 32;\n        case enums.hash.sha3_512:\n            return 64;\n        default:\n            throw new Error('Invalid hash algorithm.');\n    }\n}\n\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview Provides EME-PKCS1-v1_5 encoding and decoding and EMSA-PKCS1-v1_5 encoding function\n * @see module:crypto/public_key/rsa\n * @see module:crypto/public_key/elliptic/ecdh\n * @see PublicKeyEncryptedSessionKeyPacket\n * @module crypto/pkcs1\n * @access private\n */\n/**\n * ASN1 object identifiers for hashes\n * @see {@link https://tools.ietf.org/html/rfc4880#section-5.2.2}\n */\nconst hash_headers = [];\nhash_headers[1] = [0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x02, 0x05, 0x05, 0x00, 0x04,\n    0x10];\nhash_headers[2] = [0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14];\nhash_headers[3] = [0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x24, 0x03, 0x02, 0x01, 0x05, 0x00, 0x04, 0x14];\nhash_headers[8] = [0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00,\n    0x04, 0x20];\nhash_headers[9] = [0x30, 0x41, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02, 0x05, 0x00,\n    0x04, 0x30];\nhash_headers[10] = [0x30, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x05,\n    0x00, 0x04, 0x40];\nhash_headers[11] = [0x30, 0x2d, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x04, 0x05,\n    0x00, 0x04, 0x1C];\nhash_headers[12] = [0x30, 0x31, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x08, 0x05,\n    0x00, 0x04, 0x20];\nhash_headers[14] = [0x30, 0x51, 0x30, 0x0D, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x0a, 0x05,\n    0x00, 0x04, 0x40];\n/**\n * Create padding with secure random data\n * @private\n * @param {Integer} length - Length of the padding in bytes\n * @returns {Uint8Array} Random padding.\n */\nfunction getPKCS1Padding(length) {\n    const result = new Uint8Array(length);\n    let count = 0;\n    while (count < length) {\n        const randomBytes = getRandomBytes(length - count);\n        for (let i = 0; i < randomBytes.length; i++) {\n            if (randomBytes[i] !== 0) {\n                result[count++] = randomBytes[i];\n            }\n        }\n    }\n    return result;\n}\n/**\n * Create a EME-PKCS1-v1_5 padded message\n * @see {@link https://tools.ietf.org/html/rfc4880#section-13.1.1|RFC 4880 13.1.1}\n * @param {Uint8Array} message - Message to be encoded\n * @param {Integer} keyLength - The length in octets of the key modulus\n * @returns {Uint8Array} EME-PKCS1 padded message.\n */\nfunction emeEncode(message, keyLength) {\n    const mLength = message.length;\n    // length checking\n    if (mLength > keyLength - 11) {\n        throw new Error('Message too long');\n    }\n    // Generate an octet string PS of length k - mLen - 3 consisting of\n    // pseudo-randomly generated nonzero octets\n    const PS = getPKCS1Padding(keyLength - mLength - 3);\n    // Concatenate PS, the message M, and other padding to form an\n    // encoded message EM of length k octets as EM = 0x00 || 0x02 || PS || 0x00 || M.\n    const encoded = new Uint8Array(keyLength);\n    // 0x00 byte\n    encoded[1] = 2;\n    encoded.set(PS, 2);\n    // 0x00 bytes\n    encoded.set(message, keyLength - mLength);\n    return encoded;\n}\n/**\n * Decode a EME-PKCS1-v1_5 padded message\n * @see {@link https://tools.ietf.org/html/rfc4880#section-13.1.2|RFC 4880 13.1.2}\n * @param {Uint8Array} encoded - Encoded message bytes\n * @param {Uint8Array} randomPayload - Data to return in case of decoding error (needed for constant-time processing)\n * @returns {Uint8Array} decoded data or `randomPayload` (on error, if given)\n * @throws {Error} on decoding failure, unless `randomPayload` is provided\n */\nfunction emeDecode(encoded, randomPayload) {\n    // encoded format: 0x00 0x02 <PS> 0x00 <payload>\n    let offset = 2;\n    let separatorNotFound = 1;\n    for (let j = offset; j < encoded.length; j++) {\n        separatorNotFound &= encoded[j] !== 0;\n        offset += separatorNotFound;\n    }\n    const psLen = offset - 2;\n    const payload = encoded.subarray(offset + 1); // discard the 0x00 separator\n    const isValidPadding = encoded[0] === 0 & encoded[1] === 2 & psLen >= 8 & !separatorNotFound;\n    if (randomPayload) {\n        return util.selectUint8Array(isValidPadding, payload, randomPayload);\n    }\n    if (isValidPadding) {\n        return payload;\n    }\n    throw new Error('Decryption error');\n}\n/**\n * Create a EMSA-PKCS1-v1_5 padded message\n * @see {@link https://tools.ietf.org/html/rfc4880#section-13.1.3|RFC 4880 13.1.3}\n * @param {Integer} algo - Hash algorithm type used\n * @param {Uint8Array} hashed - Message to be encoded\n * @param {Integer} emLen - Intended length in octets of the encoded message\n * @returns {Uint8Array} Encoded message.\n */\nfunction emsaEncode(algo, hashed, emLen) {\n    let i;\n    if (hashed.length !== getHashByteLength(algo)) {\n        throw new Error('Invalid hash length');\n    }\n    // produce an ASN.1 DER value for the hash function used.\n    // Let T be the full hash prefix\n    const hashPrefix = new Uint8Array(hash_headers[algo].length);\n    for (i = 0; i < hash_headers[algo].length; i++) {\n        hashPrefix[i] = hash_headers[algo][i];\n    }\n    // and let tLen be the length in octets prefix and hashed data\n    const tLen = hashPrefix.length + hashed.length;\n    if (emLen < tLen + 11) {\n        throw new Error('Intended encoded message length too short');\n    }\n    // an octet string PS consisting of emLen - tLen - 3 octets with hexadecimal value 0xFF\n    // The length of PS will be at least 8 octets\n    const PS = new Uint8Array(emLen - tLen - 3).fill(0xff);\n    // Concatenate PS, the hash prefix, hashed data, and other padding to form the\n    // encoded message EM as EM = 0x00 || 0x01 || PS || 0x00 || prefix || hashed\n    const EM = new Uint8Array(emLen);\n    EM[1] = 0x01;\n    EM.set(PS, 2);\n    EM.set(hashPrefix, emLen - tLen);\n    EM.set(hashed, emLen - hashed.length);\n    return EM;\n}\n\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview RSA implementation\n * @module crypto/public_key/rsa\n * @access private\n */\nconst webCrypto$7 = util.getWebCrypto();\nconst nodeCrypto$6 = util.getNodeCrypto();\nconst _1n$a = BigInt(1);\n/** Create signature\n * @param {module:enums.hash} hashAlgo - Hash algorithm\n * @param {Uint8Array} data - Message\n * @param {Uint8Array} n - RSA public modulus\n * @param {Uint8Array} e - RSA public exponent\n * @param {Uint8Array} d - RSA private exponent\n * @param {Uint8Array} p - RSA private prime p\n * @param {Uint8Array} q - RSA private prime q\n * @param {Uint8Array} u - RSA private coefficient\n * @param {Uint8Array} hashed - Hashed message\n * @returns {Promise<Uint8Array>} RSA Signature.\n * @async\n */\nasync function sign$6(hashAlgo, data, n, e, d, p, q, u, hashed) {\n    if (getHashByteLength(hashAlgo) >= n.length) {\n        // Throw here instead of `emsaEncode` below, to provide a clearer and consistent error\n        // e.g. if a 512-bit RSA key is used with a SHA-512 digest.\n        // The size limit is actually slightly different but here we only care about throwing\n        // on common key sizes.\n        throw new Error('Digest size cannot exceed key modulus size');\n    }\n    if (data && !util.isStream(data)) {\n        if (util.getWebCrypto()) {\n            try {\n                return await webSign$1(enums.read(enums.webHash, hashAlgo), data, n, e, d, p, q, u);\n            }\n            catch (err) {\n                util.printDebugError(err);\n            }\n        }\n        else if (util.getNodeCrypto()) {\n            return nodeSign$1(hashAlgo, data, n, e, d, p, q, u);\n        }\n    }\n    return bnSign(hashAlgo, n, d, hashed);\n}\n/**\n * Verify signature\n * @param {module:enums.hash} hashAlgo - Hash algorithm\n * @param {Uint8Array} data - Message\n * @param {Uint8Array} s - Signature\n * @param {Uint8Array} n - RSA public modulus\n * @param {Uint8Array} e - RSA public exponent\n * @param {Uint8Array} hashed - Hashed message\n * @returns {Promise<Boolean>}\n * @async\n */\nasync function verify$6(hashAlgo, data, s, n, e, hashed) {\n    if (data && !util.isStream(data)) {\n        if (util.getWebCrypto()) {\n            try {\n                return await webVerify$1(enums.read(enums.webHash, hashAlgo), data, s, n, e);\n            }\n            catch (err) {\n                util.printDebugError(err);\n            }\n        }\n        else if (util.getNodeCrypto()) {\n            return nodeVerify$1(hashAlgo, data, s, n, e);\n        }\n    }\n    return bnVerify(hashAlgo, s, n, e, hashed);\n}\n/**\n * Encrypt message\n * @param {Uint8Array} data - Message\n * @param {Uint8Array} n - RSA public modulus\n * @param {Uint8Array} e - RSA public exponent\n * @returns {Promise<Uint8Array>} RSA Ciphertext.\n * @async\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function encrypt$6(data, n, e) {\n    if (util.getNodeCrypto()) {\n        return nodeEncrypt$1(data, n, e);\n    }\n    return bnEncrypt(data, n, e);\n}\n/**\n * Decrypt RSA message\n * @param {Uint8Array} m - Message\n * @param {Uint8Array} n - RSA public modulus\n * @param {Uint8Array} e - RSA public exponent\n * @param {Uint8Array} d - RSA private exponent\n * @param {Uint8Array} p - RSA private prime p\n * @param {Uint8Array} q - RSA private prime q\n * @param {Uint8Array} u - RSA private coefficient\n * @param {Uint8Array} randomPayload - Data to return on decryption error, instead of throwing\n *                                     (needed for constant-time processing)\n * @returns {Promise<String>} RSA Plaintext.\n * @throws {Error} on decryption error, unless `randomPayload` is given\n * @async\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function decrypt$6(data, n, e, d, p, q, u, randomPayload) {\n    // Node v18.19.1, 20.11.1 and 21.6.2 have disabled support for PKCS#1 decryption,\n    // and we want to avoid checking the error type to decide if the random payload\n    // should indeed be returned.\n    if (util.getNodeCrypto() && !randomPayload) {\n        try {\n            return nodeDecrypt$1(data, n, e, d, p, q, u);\n        }\n        catch (err) {\n            util.printDebugError(err);\n        }\n    }\n    return bnDecrypt(data, n, e, d, p, q, u, randomPayload);\n}\n/**\n * Generate a new random private key B bits long with public exponent E.\n *\n * When possible, webCrypto or nodeCrypto is used. Otherwise, primes are generated using\n * 40 rounds of the Miller-Rabin probabilistic random prime generation algorithm.\n * @see module:crypto/public_key/prime\n * @param {Integer} bits - RSA bit length\n * @param {Integer} e - RSA public exponent\n * @returns {Promise<{n, e, d,\n *            p, q ,u: Uint8Array}>} RSA public modulus, RSA public exponent, RSA private exponent,\n *                                  RSA private prime p, RSA private prime q, u = p ** -1 mod q\n * @async\n */\nasync function generate$4(bits, e) {\n    e = BigInt(e);\n    // Native RSA keygen using Web Crypto\n    if (util.getWebCrypto()) {\n        const keyGenOpt = {\n            name: 'RSASSA-PKCS1-v1_5',\n            modulusLength: bits, // the specified keysize in bits\n            publicExponent: bigIntToUint8Array(e), // take three bytes (max 65537) for exponent\n            hash: {\n                name: 'SHA-1' // not required for actual RSA keys, but for crypto api 'sign' and 'verify'\n            }\n        };\n        const keyPair = await webCrypto$7.generateKey(keyGenOpt, true, ['sign', 'verify']);\n        // export the generated keys as JsonWebKey (JWK)\n        // https://tools.ietf.org/html/draft-ietf-jose-json-web-key-33\n        const jwk = await webCrypto$7.exportKey('jwk', keyPair.privateKey);\n        // map JWK parameters to corresponding OpenPGP names\n        return jwkToPrivate(jwk, e);\n    }\n    else if (util.getNodeCrypto()) {\n        const opts = {\n            modulusLength: bits,\n            publicExponent: bigIntToNumber(e),\n            publicKeyEncoding: { type: 'pkcs1', format: 'jwk' },\n            privateKeyEncoding: { type: 'pkcs1', format: 'jwk' }\n        };\n        const jwk = await new Promise((resolve, reject) => {\n            nodeCrypto$6.generateKeyPair('rsa', opts, (err, _, jwkPrivateKey) => {\n                if (err) {\n                    reject(err);\n                }\n                else {\n                    resolve(jwkPrivateKey);\n                }\n            });\n        });\n        return jwkToPrivate(jwk, e);\n    }\n    // RSA keygen fallback using 40 iterations of the Miller-Rabin test\n    // See https://stackoverflow.com/a/6330138 for justification\n    // Also see section C.3 here: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST\n    let p;\n    let q;\n    let n;\n    do {\n        q = randomProbablePrime(bits - (bits >> 1), e, 40);\n        p = randomProbablePrime(bits >> 1, e, 40);\n        n = p * q;\n    } while (bitLength(n) !== bits);\n    const phi = (p - _1n$a) * (q - _1n$a);\n    if (q < p) {\n        [p, q] = [q, p];\n    }\n    return {\n        n: bigIntToUint8Array(n),\n        e: bigIntToUint8Array(e),\n        d: bigIntToUint8Array(modInv(e, phi)),\n        p: bigIntToUint8Array(p),\n        q: bigIntToUint8Array(q),\n        // dp: d.mod(p.subn(1)),\n        // dq: d.mod(q.subn(1)),\n        u: bigIntToUint8Array(modInv(p, q))\n    };\n}\n/**\n * Validate RSA parameters\n * @param {Uint8Array} n - RSA public modulus\n * @param {Uint8Array} e - RSA public exponent\n * @param {Uint8Array} d - RSA private exponent\n * @param {Uint8Array} p - RSA private prime p\n * @param {Uint8Array} q - RSA private prime q\n * @param {Uint8Array} u - RSA inverse of p w.r.t. q\n * @returns {Promise<Boolean>} Whether params are valid.\n * @async\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function validateParams$9(n, e, d, p, q, u) {\n    n = uint8ArrayToBigInt(n);\n    p = uint8ArrayToBigInt(p);\n    q = uint8ArrayToBigInt(q);\n    // expect pq = n\n    if ((p * q) !== n) {\n        return false;\n    }\n    const _2n = BigInt(2);\n    // expect p*u = 1 mod q\n    u = uint8ArrayToBigInt(u);\n    if (mod$1(p * u, q) !== BigInt(1)) {\n        return false;\n    }\n    e = uint8ArrayToBigInt(e);\n    d = uint8ArrayToBigInt(d);\n    /**\n     * In RSA pkcs#1 the exponents (d, e) are inverses modulo lcm(p-1, q-1)\n     * We check that [de = 1 mod (p-1)] and [de = 1 mod (q-1)]\n     * By CRT on coprime factors of (p-1, q-1) it follows that [de = 1 mod lcm(p-1, q-1)]\n     *\n     * We blind the multiplication with r, and check that rde = r mod lcm(p-1, q-1)\n     */\n    const nSizeOver3 = BigInt(Math.floor(bitLength(n) / 3));\n    const r = getRandomBigInteger(_2n, _2n << nSizeOver3); // r in [ 2, 2^{|n|/3} ) < p and q\n    const rde = r * d * e;\n    const areInverses = mod$1(rde, p - _1n$a) === r && mod$1(rde, q - _1n$a) === r;\n    if (!areInverses) {\n        return false;\n    }\n    return true;\n}\nfunction bnSign(hashAlgo, n, d, hashed) {\n    n = uint8ArrayToBigInt(n);\n    const m = uint8ArrayToBigInt(emsaEncode(hashAlgo, hashed, byteLength(n)));\n    d = uint8ArrayToBigInt(d);\n    return bigIntToUint8Array(modExp(m, d, n), 'be', byteLength(n));\n}\nasync function webSign$1(hashName, data, n, e, d, p, q, u) {\n    /** OpenPGP keys require that p < q, and Safari Web Crypto requires that p > q.\n     * We swap them in privateToJWK, so it usually works out, but nevertheless,\n     * not all OpenPGP keys are compatible with this requirement.\n     * OpenPGP.js used to generate RSA keys the wrong way around (p > q), and still\n     * does if the underlying Web Crypto does so (though the tested implementations\n     * don't do so).\n     */\n    const jwk = privateToJWK$1(n, e, d, p, q, u);\n    const algo = {\n        name: 'RSASSA-PKCS1-v1_5',\n        hash: { name: hashName }\n    };\n    const key = await webCrypto$7.importKey('jwk', jwk, algo, false, ['sign']);\n    return new Uint8Array(await webCrypto$7.sign('RSASSA-PKCS1-v1_5', key, data));\n}\nfunction nodeSign$1(hashAlgo, data, n, e, d, p, q, u) {\n    const sign = nodeCrypto$6.createSign(enums.read(enums.hash, hashAlgo));\n    sign.write(data);\n    sign.end();\n    const jwk = privateToJWK$1(n, e, d, p, q, u);\n    return new Uint8Array(sign.sign({ key: jwk, format: 'jwk', type: 'pkcs1' }));\n}\nfunction bnVerify(hashAlgo, s, n, e, hashed) {\n    n = uint8ArrayToBigInt(n);\n    s = uint8ArrayToBigInt(s);\n    e = uint8ArrayToBigInt(e);\n    if (s >= n) {\n        throw new Error('Signature size cannot exceed modulus size');\n    }\n    const EM1 = bigIntToUint8Array(modExp(s, e, n), 'be', byteLength(n));\n    const EM2 = emsaEncode(hashAlgo, hashed, byteLength(n));\n    return util.equalsUint8Array(EM1, EM2);\n}\nasync function webVerify$1(hashName, data, s, n, e) {\n    const jwk = publicToJWK(n, e);\n    const key = await webCrypto$7.importKey('jwk', jwk, {\n        name: 'RSASSA-PKCS1-v1_5',\n        hash: { name: hashName }\n    }, false, ['verify']);\n    return webCrypto$7.verify('RSASSA-PKCS1-v1_5', key, s, data);\n}\nfunction nodeVerify$1(hashAlgo, data, s, n, e) {\n    const jwk = publicToJWK(n, e);\n    const key = { key: jwk, format: 'jwk', type: 'pkcs1' };\n    const verify = nodeCrypto$6.createVerify(enums.read(enums.hash, hashAlgo));\n    verify.write(data);\n    verify.end();\n    try {\n        return verify.verify(key, s);\n    }\n    catch {\n        return false;\n    }\n}\nfunction nodeEncrypt$1(data, n, e) {\n    const jwk = publicToJWK(n, e);\n    const key = { key: jwk, format: 'jwk', type: 'pkcs1', padding: nodeCrypto$6.constants.RSA_PKCS1_PADDING };\n    return new Uint8Array(nodeCrypto$6.publicEncrypt(key, data));\n}\nfunction bnEncrypt(data, n, e) {\n    n = uint8ArrayToBigInt(n);\n    data = uint8ArrayToBigInt(emeEncode(data, byteLength(n)));\n    e = uint8ArrayToBigInt(e);\n    if (data >= n) {\n        throw new Error('Message size cannot exceed modulus size');\n    }\n    return bigIntToUint8Array(modExp(data, e, n), 'be', byteLength(n));\n}\nfunction nodeDecrypt$1(data, n, e, d, p, q, u) {\n    const jwk = privateToJWK$1(n, e, d, p, q, u);\n    const key = { key: jwk, format: 'jwk', type: 'pkcs1', padding: nodeCrypto$6.constants.RSA_PKCS1_PADDING };\n    try {\n        return new Uint8Array(nodeCrypto$6.privateDecrypt(key, data));\n    }\n    catch {\n        throw new Error('Decryption error');\n    }\n}\nfunction bnDecrypt(data, n, e, d, p, q, u, randomPayload) {\n    data = uint8ArrayToBigInt(data);\n    n = uint8ArrayToBigInt(n);\n    e = uint8ArrayToBigInt(e);\n    d = uint8ArrayToBigInt(d);\n    p = uint8ArrayToBigInt(p);\n    q = uint8ArrayToBigInt(q);\n    u = uint8ArrayToBigInt(u);\n    if (data >= n) {\n        throw new Error('Data too large.');\n    }\n    const dq = mod$1(d, q - _1n$a); // d mod (q-1)\n    const dp = mod$1(d, p - _1n$a); // d mod (p-1)\n    const unblinder = getRandomBigInteger(BigInt(2), n);\n    const blinder = modExp(modInv(unblinder, n), e, n);\n    data = mod$1(data * blinder, n);\n    const mp = modExp(data, dp, p); // data**{d mod (q-1)} mod p\n    const mq = modExp(data, dq, q); // data**{d mod (p-1)} mod q\n    const h = mod$1(u * (mq - mp), q); // u * (mq-mp) mod q (operands already < q)\n    let result = h * p + mp; // result < n due to relations above\n    result = mod$1(result * unblinder, n);\n    return emeDecode(bigIntToUint8Array(result, 'be', byteLength(n)), randomPayload);\n}\n/** Convert Openpgp private key params to jwk key according to\n * @link https://tools.ietf.org/html/rfc7517\n * @param {String} hashAlgo\n * @param {Uint8Array} n\n * @param {Uint8Array} e\n * @param {Uint8Array} d\n * @param {Uint8Array} p\n * @param {Uint8Array} q\n * @param {Uint8Array} u\n */\nfunction privateToJWK$1(n, e, d, p, q, u) {\n    const pNum = uint8ArrayToBigInt(p);\n    const qNum = uint8ArrayToBigInt(q);\n    const dNum = uint8ArrayToBigInt(d);\n    let dq = mod$1(dNum, qNum - _1n$a); // d mod (q-1)\n    let dp = mod$1(dNum, pNum - _1n$a); // d mod (p-1)\n    dp = bigIntToUint8Array(dp);\n    dq = bigIntToUint8Array(dq);\n    return {\n        kty: 'RSA',\n        n: uint8ArrayToB64(n),\n        e: uint8ArrayToB64(e),\n        d: uint8ArrayToB64(d),\n        // switch p and q\n        p: uint8ArrayToB64(q),\n        q: uint8ArrayToB64(p),\n        // switch dp and dq\n        dp: uint8ArrayToB64(dq),\n        dq: uint8ArrayToB64(dp),\n        qi: uint8ArrayToB64(u),\n        ext: true\n    };\n}\n/** Convert Openpgp key public params to jwk key according to\n * @link https://tools.ietf.org/html/rfc7517\n * @param {String} hashAlgo\n * @param {Uint8Array} n\n * @param {Uint8Array} e\n */\nfunction publicToJWK(n, e) {\n    return {\n        kty: 'RSA',\n        n: uint8ArrayToB64(n),\n        e: uint8ArrayToB64(e),\n        ext: true\n    };\n}\n/** Convert JWK private key to OpenPGP private key params */\nfunction jwkToPrivate(jwk, e) {\n    return {\n        n: b64ToUint8Array(jwk.n),\n        e: bigIntToUint8Array(e),\n        d: b64ToUint8Array(jwk.d),\n        // switch p and q\n        p: b64ToUint8Array(jwk.q),\n        q: b64ToUint8Array(jwk.p),\n        // Since p and q are switched in places, u is the inverse of jwk.q\n        u: b64ToUint8Array(jwk.qi)\n    };\n}\n\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview ElGamal implementation\n * @module crypto/public_key/elgamal\n * @access private\n */\nconst _1n$9 = BigInt(1);\n/**\n * ElGamal Encryption function\n * Note that in OpenPGP, the message needs to be padded with PKCS#1 (same as RSA)\n * @param {Uint8Array} data - To be padded and encrypted\n * @param {Uint8Array} p\n * @param {Uint8Array} g\n * @param {Uint8Array} y\n * @returns {Promise<{ c1: Uint8Array, c2: Uint8Array }>}\n * @async\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function encrypt$5(data, p, g, y) {\n    p = uint8ArrayToBigInt(p);\n    g = uint8ArrayToBigInt(g);\n    y = uint8ArrayToBigInt(y);\n    const padded = emeEncode(data, byteLength(p));\n    const m = uint8ArrayToBigInt(padded);\n    // OpenPGP uses a \"special\" version of ElGamal where g is generator of the full group Z/pZ*\n    // hence g has order p-1, and to avoid that k = 0 mod p-1, we need to pick k in [1, p-2]\n    const k = getRandomBigInteger(_1n$9, p - _1n$9);\n    return {\n        c1: bigIntToUint8Array(modExp(g, k, p)),\n        c2: bigIntToUint8Array(mod$1(modExp(y, k, p) * m, p))\n    };\n}\n/**\n * ElGamal Encryption function\n * @param {Uint8Array} c1\n * @param {Uint8Array} c2\n * @param {Uint8Array} p\n * @param {Uint8Array} x\n * @param {Uint8Array} randomPayload - Data to return on unpadding error, instead of throwing\n *                                     (needed for constant-time processing)\n * @returns {Promise<Uint8Array>} Unpadded message.\n * @throws {Error} on decryption error, unless `randomPayload` is given\n * @async\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function decrypt$5(c1, c2, p, x, randomPayload) {\n    c1 = uint8ArrayToBigInt(c1);\n    c2 = uint8ArrayToBigInt(c2);\n    p = uint8ArrayToBigInt(p);\n    x = uint8ArrayToBigInt(x);\n    const padded = mod$1(modInv(modExp(c1, x, p), p) * c2, p);\n    return emeDecode(bigIntToUint8Array(padded, 'be', byteLength(p)), randomPayload);\n}\n/**\n * Validate ElGamal parameters\n * @param {Uint8Array} pBytes - ElGamal prime\n * @param {Uint8Array} gBytes - ElGamal group generator\n * @param {Uint8Array} yBytes - ElGamal public key\n * @param {Uint8Array} xBytes - ElGamal private exponent\n * @returns {Promise<Boolean>} Whether params are valid.\n * @async\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function validateParams$8(pBytes, gBytes, yBytes, xBytes) {\n    const p = uint8ArrayToBigInt(pBytes);\n    const g = uint8ArrayToBigInt(gBytes);\n    const y = uint8ArrayToBigInt(yBytes);\n    // Check that 1 < g < p\n    if (g <= _1n$9 || g >= p) {\n        return false;\n    }\n    // Expect p-1 to be large\n    const pSize = BigInt(bitLength(p));\n    const _1023n = BigInt(1023);\n    if (pSize < _1023n) {\n        return false;\n    }\n    /**\n     * g should have order p-1\n     * Check that g ** (p-1) = 1 mod p\n     */\n    if (modExp(g, p - _1n$9, p) !== _1n$9) {\n        return false;\n    }\n    /**\n     * Since p-1 is not prime, g might have a smaller order that divides p-1\n     * We want to make sure that the order is large enough to hinder a small subgroup attack\n     *\n     * We just check g**i != 1 for all i up to a threshold\n     */\n    let res = g;\n    let i = BigInt(1);\n    const _2n = BigInt(2);\n    const threshold = _2n << BigInt(17); // we want order > threshold\n    while (i < threshold) {\n        res = mod$1(res * g, p);\n        if (res === _1n$9) {\n            return false;\n        }\n        i++;\n    }\n    /**\n     * Re-derive public key y' = g ** x mod p\n     * Expect y == y'\n     *\n     * Blinded exponentiation computes g**{r(p-1) + x} to compare to y\n     */\n    const x = uint8ArrayToBigInt(xBytes);\n    const r = getRandomBigInteger(_2n << (pSize - _1n$9), _2n << pSize); // draw r of same size as p-1\n    const rqx = (p - _1n$9) * r + x;\n    if (y !== modExp(g, rqx, p)) {\n        return false;\n    }\n    return true;\n}\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Wrapper to an OID value\n *\n * {@link https://tools.ietf.org/html/rfc6637#section-11|RFC6637, section 11}:\n * The sequence of octets in the third column is the result of applying\n * the Distinguished Encoding Rules (DER) to the ASN.1 Object Identifier\n * with subsequent truncation.  The truncation removes the two fields of\n * encoded Object Identifier.  The first omitted field is one octet\n * representing the Object Identifier tag, and the second omitted field\n * is the length of the Object Identifier body.  For example, the\n * complete ASN.1 DER encoding for the NIST P-256 curve OID is \"06 08 2A\n * 86 48 CE 3D 03 01 07\", from which the first entry in the table above\n * is constructed by omitting the first two octets.  Only the truncated\n * sequence of octets is the valid representation of a curve OID.\n * @module type/oid\n * @access private\n */\nconst knownOIDs = {\n    '2a8648ce3d030107': enums.curve.nistP256,\n    '2b81040022': enums.curve.nistP384,\n    '2b81040023': enums.curve.nistP521,\n    '2b8104000a': enums.curve.secp256k1,\n    '2b06010401da470f01': enums.curve.ed25519Legacy,\n    '2b060104019755010501': enums.curve.curve25519Legacy,\n    '2b2403030208010107': enums.curve.brainpoolP256r1,\n    '2b240303020801010b': enums.curve.brainpoolP384r1,\n    '2b240303020801010d': enums.curve.brainpoolP512r1\n};\nclass OID {\n    constructor(oid) {\n        if (oid instanceof OID) {\n            this.oid = oid.oid;\n        }\n        else if (util.isArray(oid) ||\n            util.isUint8Array(oid)) {\n            oid = new Uint8Array(oid);\n            if (oid[0] === 0x06) { // DER encoded oid byte array\n                if (oid[1] !== oid.length - 2) {\n                    throw new Error('Length mismatch in DER encoded oid');\n                }\n                oid = oid.subarray(2);\n            }\n            this.oid = oid;\n        }\n        else {\n            this.oid = '';\n        }\n    }\n    /**\n     * Method to read an OID object\n     * @param {Uint8Array} input - Where to read the OID from\n     * @returns {Number} Number of read bytes.\n     */\n    read(input) {\n        if (input.length >= 1) {\n            const length = input[0];\n            if (input.length >= 1 + length) {\n                this.oid = input.subarray(1, 1 + length);\n                return 1 + this.oid.length;\n            }\n        }\n        throw new Error('Invalid oid');\n    }\n    /**\n     * Serialize an OID object\n     * @returns {Uint8Array} Array with the serialized value the OID.\n     */\n    write() {\n        return util.concatUint8Array([new Uint8Array([this.oid.length]), this.oid]);\n    }\n    /**\n     * Serialize an OID object as a hex string\n     * @returns {string} String with the hex value of the OID.\n     */\n    toHex() {\n        return util.uint8ArrayToHex(this.oid);\n    }\n    /**\n     * If a known curve object identifier, return the canonical name of the curve\n     * @returns {enums.curve} String with the canonical name of the curve\n     * @throws if unknown\n     */\n    getName() {\n        const name = knownOIDs[this.toHex()];\n        if (!name) {\n            throw new Error('Unknown curve object identifier.');\n        }\n        return name;\n    }\n}\n\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview Functions for reading and writing packets\n * @module packet/packet\n * @access private\n */\nfunction readSimpleLength(bytes) {\n    let len = 0;\n    let offset;\n    const type = bytes[0];\n    if (type < 192) {\n        [len] = bytes;\n        offset = 1;\n    }\n    else if (type < 255) {\n        len = ((bytes[0] - 192) << 8) + (bytes[1]) + 192;\n        offset = 2;\n    }\n    else if (type === 255) {\n        len = util.readNumber(bytes.subarray(1, 1 + 4));\n        offset = 5;\n    }\n    return {\n        len: len,\n        offset: offset\n    };\n}\n/**\n * Encodes a given integer of length to the openpgp length specifier to a\n * string\n *\n * @param {Integer} length - The length to encode\n * @returns {Uint8Array} String with openpgp length representation.\n */\nfunction writeSimpleLength(length) {\n    if (length < 192) {\n        return new Uint8Array([length]);\n    }\n    else if (length > 191 && length < 8384) {\n        /*\n          * let a = (total data packet length) - 192 let bc = two octet\n          * representation of a let d = b + 192\n          */\n        return new Uint8Array([((length - 192) >> 8) + 192, (length - 192) & 0xFF]);\n    }\n    return util.concatUint8Array([new Uint8Array([255]), util.writeNumber(length, 4)]);\n}\nfunction writePartialLength(power) {\n    if (power < 0 || power > 30) {\n        throw new Error('Partial Length power must be between 1 and 30');\n    }\n    return new Uint8Array([224 + power]);\n}\nfunction writeTag(tag_type) {\n    /* we're only generating v4 packet headers here */\n    return new Uint8Array([0xC0 | tag_type]);\n}\n/**\n * Writes a packet header version 4 with the given tag_type and length to a\n * string\n *\n * @param {Integer} tag_type - Tag type\n * @param {Integer} length - Length of the payload\n * @returns {String} String of the header.\n */\nfunction writeHeader(tag_type, length) {\n    /* we're only generating v4 packet headers here */\n    return util.concatUint8Array([writeTag(tag_type), writeSimpleLength(length)]);\n}\n/**\n * Whether the packet type supports partial lengths per RFC4880\n * @param {Integer} tag - Tag type\n * @returns {Boolean} String of the header.\n */\nfunction supportsStreaming(tag) {\n    return [\n        enums.packet.literalData,\n        enums.packet.compressedData,\n        enums.packet.symmetricallyEncryptedData,\n        enums.packet.symEncryptedIntegrityProtectedData,\n        enums.packet.aeadEncryptedData\n    ].includes(tag);\n}\n/**\n * Generic static Packet Parser function\n *\n * @param {Uint8Array | ReadableStream<Uint8Array>} input - Input stream as string\n * @param {Function} callback - Function to call with the parsed packet\n * @returns {Promise<Boolean>} Returns false if the stream was empty and parsing is done, and true otherwise.\n */\nasync function readPacket(reader, useStreamType, callback) {\n    let writer;\n    let callbackReturned;\n    try {\n        const peekedBytes = await reader.peekBytes(2);\n        // some sanity checks\n        if (!peekedBytes || peekedBytes.length < 2 || (peekedBytes[0] & 0x80) === 0) {\n            throw new Error('Error during parsing. This message / key probably does not conform to a valid OpenPGP format.');\n        }\n        const headerByte = await reader.readByte();\n        let tag = -1;\n        let format = -1;\n        let packetLength;\n        format = 0; // 0 = old format; 1 = new format\n        if ((headerByte & 0x40) !== 0) {\n            format = 1;\n        }\n        let packetLengthType;\n        if (format) {\n            // new format header\n            tag = headerByte & 0x3F; // bit 5-0\n        }\n        else {\n            // old format header\n            tag = (headerByte & 0x3F) >> 2; // bit 5-2\n            packetLengthType = headerByte & 0x03; // bit 1-0\n        }\n        const packetSupportsStreaming = supportsStreaming(tag);\n        let packet = null;\n        if (useStreamType && packetSupportsStreaming) {\n            if (useStreamType === 'array') {\n                const arrayStream = new ArrayStream();\n                writer = getWriter(arrayStream);\n                packet = arrayStream;\n            }\n            else {\n                const transform = new TransformStream();\n                writer = getWriter(transform.writable);\n                packet = transform.readable;\n            }\n            callbackReturned = callback({ tag, packet });\n        }\n        else {\n            packet = [];\n        }\n        let wasPartialLength;\n        do {\n            if (!format) {\n                // 4.2.1. Old Format Packet Lengths\n                switch (packetLengthType) {\n                    case 0:\n                        // The packet has a one-octet length. The header is 2 octets\n                        // long.\n                        packetLength = await reader.readByte();\n                        break;\n                    case 1:\n                        // The packet has a two-octet length. The header is 3 octets\n                        // long.\n                        packetLength = (await reader.readByte() << 8) | await reader.readByte();\n                        break;\n                    case 2:\n                        // The packet has a four-octet length. The header is 5\n                        // octets long.\n                        packetLength = (await reader.readByte() << 24) | (await reader.readByte() << 16) | (await reader.readByte() <<\n                            8) | await reader.readByte();\n                        break;\n                    default:\n                        // 3 - The packet is of indeterminate length. The header is 1\n                        // octet long, and the implementation must determine how long\n                        // the packet is. If the packet is in a file, this means that\n                        // the packet extends until the end of the file. In general,\n                        // an implementation SHOULD NOT use indeterminate-length\n                        // packets except where the end of the data will be clear\n                        // from the context, and even then it is better to use a\n                        // definite length, or a new format header. The new format\n                        // headers described below have a mechanism for precisely\n                        // encoding data of indeterminate length.\n                        packetLength = Infinity;\n                        break;\n                }\n            }\n            else { // 4.2.2. New Format Packet Lengths\n                // 4.2.2.1. One-Octet Lengths\n                const lengthByte = await reader.readByte();\n                wasPartialLength = false;\n                if (lengthByte < 192) {\n                    packetLength = lengthByte;\n                    // 4.2.2.2. Two-Octet Lengths\n                }\n                else if (lengthByte >= 192 && lengthByte < 224) {\n                    packetLength = ((lengthByte - 192) << 8) + (await reader.readByte()) + 192;\n                    // 4.2.2.4. Partial Body Lengths\n                }\n                else if (lengthByte > 223 && lengthByte < 255) {\n                    packetLength = 1 << (lengthByte & 0x1F);\n                    wasPartialLength = true;\n                    if (!packetSupportsStreaming) {\n                        throw new TypeError('This packet type does not support partial lengths.');\n                    }\n                    // 4.2.2.3. Five-Octet Lengths\n                }\n                else {\n                    packetLength = (await reader.readByte() << 24) | (await reader.readByte() << 16) | (await reader.readByte() <<\n                        8) | await reader.readByte();\n                }\n            }\n            if (packetLength > 0) {\n                let bytesRead = 0;\n                while (true) {\n                    if (writer)\n                        await writer.ready;\n                    const { done, value } = await reader.read();\n                    if (done) {\n                        if (packetLength === Infinity)\n                            break;\n                        throw new Error('Unexpected end of packet');\n                    }\n                    const chunk = packetLength === Infinity ? value : value.subarray(0, packetLength - bytesRead);\n                    if (writer)\n                        await writer.write(chunk);\n                    else\n                        packet.push(chunk);\n                    bytesRead += value.length;\n                    if (bytesRead >= packetLength) {\n                        reader.unshift(value.subarray(packetLength - bytesRead + value.length));\n                        break;\n                    }\n                }\n            }\n        } while (wasPartialLength);\n        if (writer) {\n            await writer.ready;\n            await writer.close();\n        }\n        else {\n            packet = util.concatUint8Array(packet);\n            await callback({ tag, packet });\n        }\n    }\n    catch (e) {\n        if (writer) {\n            await writer.abort(e);\n            return true;\n        }\n        else {\n            throw e;\n        }\n    }\n    finally {\n        if (writer) {\n            await callbackReturned;\n        }\n    }\n}\nclass UnsupportedError extends Error {\n    constructor(...params) {\n        super(...params);\n        if (Error.captureStackTrace) {\n            Error.captureStackTrace(this, UnsupportedError);\n        }\n        this.name = 'UnsupportedError';\n    }\n}\n// unknown packet types are handled differently depending on the packet criticality\nclass UnknownPacketError extends UnsupportedError {\n    constructor(...params) {\n        super(...params);\n        if (Error.captureStackTrace) {\n            Error.captureStackTrace(this, UnsupportedError);\n        }\n        this.name = 'UnknownPacketError';\n    }\n}\nclass MalformedPacketError extends UnsupportedError {\n    constructor(...params) {\n        super(...params);\n        if (Error.captureStackTrace) {\n            Error.captureStackTrace(this, UnsupportedError);\n        }\n        this.name = 'MalformedPacketError';\n    }\n}\nclass UnparseablePacket {\n    constructor(tag, rawContent) {\n        this.tag = tag;\n        this.rawContent = rawContent;\n    }\n    write() {\n        return this.rawContent;\n    }\n}\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2018 Proton Technologies AG\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview Implementation of EdDSA following RFC4880bis-03 for OpenPGP\n * @module crypto/public_key/elliptic/eddsa\n * @access private\n */\n/**\n * Generate (non-legacy) EdDSA key\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @returns {Promise<{ A: Uint8Array, seed: Uint8Array }>}\n */\nasync function generate$3(algo) {\n    switch (algo) {\n        case enums.publicKey.ed25519:\n            try {\n                const webCrypto = util.getWebCrypto();\n                const webCryptoKey = await webCrypto.generateKey('Ed25519', true, ['sign', 'verify'])\n                    .catch(err => {\n                    if (err.name === 'OperationError') { // Temporary (hopefully) fix for WebKit on Linux\n                        const newErr = new Error('Unexpected key generation issue');\n                        newErr.name = 'NotSupportedError';\n                        throw newErr;\n                    }\n                    throw err;\n                });\n                const privateKey = await webCrypto.exportKey('jwk', webCryptoKey.privateKey);\n                const publicKey = await webCrypto.exportKey('jwk', webCryptoKey.publicKey);\n                return {\n                    A: new Uint8Array(b64ToUint8Array(publicKey.x)),\n                    seed: b64ToUint8Array(privateKey.d, true)\n                };\n            }\n            catch (err) {\n                if (err.name !== 'NotSupportedError') {\n                    throw err;\n                }\n                const { default: ed25519 } = await Promise.resolve().then(function () { return naclFast; });\n                const seed = getRandomBytes(getPayloadSize$1(algo));\n                // not using `ed25519.sign.keyPair` since it returns the expanded secret, so using `fromSeed` instead is more straightforward\n                const { publicKey: A } = ed25519.sign.keyPair.fromSeed(seed);\n                return { A, seed };\n            }\n        case enums.publicKey.ed448: {\n            const ed448 = await util.getNobleCurve(enums.publicKey.ed448);\n            const { secretKey: seed, publicKey: A } = ed448.keygen();\n            return { A, seed };\n        }\n        default:\n            throw new Error('Unsupported EdDSA algorithm');\n    }\n}\n/**\n * Sign a message using the provided key\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @param {module:enums.hash} hashAlgo - Hash algorithm used to sign (must be sha256 or stronger)\n * @param {Uint8Array} message - Message to sign\n * @param {Uint8Array} publicKey - Public key\n * @param {Uint8Array} privateKey - Private key used to sign the message\n * @param {Uint8Array} hashed - The hashed message\n * @returns {Promise<{\n *   RS: Uint8Array\n * }>} Signature of the message\n * @async\n */\nasync function sign$5(algo, hashAlgo, message, publicKey, privateKey, hashed) {\n    if (getHashByteLength(hashAlgo) < getHashByteLength(getPreferredHashAlgo$2(algo))) {\n        // Enforce digest sizes:\n        // - Ed25519: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.4-4\n        // - Ed448: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.5-4\n        throw new Error('Hash algorithm too weak for EdDSA.');\n    }\n    switch (algo) {\n        case enums.publicKey.ed25519:\n            try {\n                const webCrypto = util.getWebCrypto();\n                const jwk = privateKeyToJWK$1(algo, publicKey, privateKey);\n                const key = await webCrypto.importKey('jwk', jwk, 'Ed25519', false, ['sign']);\n                const signature = new Uint8Array(await webCrypto.sign('Ed25519', key, hashed));\n                return { RS: signature };\n            }\n            catch (err) {\n                if (err.name !== 'NotSupportedError') {\n                    throw err;\n                }\n                const { default: ed25519 } = await Promise.resolve().then(function () { return naclFast; });\n                const secretKey = util.concatUint8Array([privateKey, publicKey]);\n                const signature = ed25519.sign.detached(hashed, secretKey);\n                return { RS: signature };\n            }\n        case enums.publicKey.ed448: {\n            const ed448 = await util.getNobleCurve(enums.publicKey.ed448);\n            const signature = ed448.sign(hashed, privateKey);\n            return { RS: signature };\n        }\n        default:\n            throw new Error('Unsupported EdDSA algorithm');\n    }\n}\n/**\n * Verifies if a signature is valid for a message\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @param {module:enums.hash} hashAlgo - Hash algorithm used in the signature\n * @param  {{ RS: Uint8Array }} signature Signature to verify the message\n * @param {Uint8Array} m - Message to verify\n * @param {Uint8Array} publicKey - Public key used to verify the message\n * @param {Uint8Array} hashed - The hashed message\n * @returns {Boolean}\n * @async\n */\nasync function verify$5(algo, hashAlgo, { RS }, m, publicKey, hashed) {\n    if (getHashByteLength(hashAlgo) < getHashByteLength(getPreferredHashAlgo$2(algo))) {\n        // Enforce digest sizes:\n        // - Ed25519: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.4-4\n        // - Ed448: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.5-4\n        throw new Error('Hash algorithm too weak for EdDSA.');\n    }\n    switch (algo) {\n        case enums.publicKey.ed25519:\n            try {\n                const webCrypto = util.getWebCrypto();\n                const jwk = publicKeyToJWK$1(algo, publicKey);\n                const key = await webCrypto.importKey('jwk', jwk, 'Ed25519', false, ['verify']);\n                const verified = await webCrypto.verify('Ed25519', key, RS, hashed);\n                return verified;\n            }\n            catch (err) {\n                if (err.name !== 'NotSupportedError') {\n                    throw err;\n                }\n                const { default: ed25519 } = await Promise.resolve().then(function () { return naclFast; });\n                return ed25519.sign.detached.verify(hashed, RS, publicKey);\n            }\n        case enums.publicKey.ed448: {\n            const ed448 = await util.getNobleCurve(enums.publicKey.ed448);\n            return ed448.verify(RS, hashed, publicKey);\n        }\n        default:\n            throw new Error('Unsupported EdDSA algorithm');\n    }\n}\n/**\n * Validate (non-legacy) EdDSA parameters\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @param {Uint8Array} A - EdDSA public point\n * @param {Uint8Array} seed - EdDSA secret seed\n * @param {Uint8Array} oid - (legacy only) EdDSA OID\n * @returns {Promise<Boolean>} Whether params are valid.\n * @async\n */\nasync function validateParams$7(algo, A, seed) {\n    switch (algo) {\n        case enums.publicKey.ed25519:\n            // If webcrypto support is available, we sign-verify random data, as the import-export\n            // functions might not implement validity checks.\n            // If we need to fallback to JS, we instead only re-derive the public key,\n            // as this is much faster than sign-verify.\n            try {\n                const webCrypto = util.getWebCrypto();\n                const jwkPrivate = privateKeyToJWK$1(algo, A, seed);\n                const jwkPublic = publicKeyToJWK$1(algo, A);\n                const privateCryptoKey = await webCrypto.importKey('jwk', jwkPrivate, 'Ed25519', false, ['sign']);\n                const publicCryptoKey = await webCrypto.importKey('jwk', jwkPublic, 'Ed25519', false, ['verify']);\n                const randomData = getRandomBytes(8);\n                const signature = new Uint8Array(await webCrypto.sign('Ed25519', privateCryptoKey, randomData));\n                const verified = await webCrypto.verify('Ed25519', publicCryptoKey, signature, randomData);\n                return verified;\n            }\n            catch (err) {\n                if (err.name !== 'NotSupportedError') {\n                    return false;\n                }\n                const { default: ed25519 } = await Promise.resolve().then(function () { return naclFast; });\n                const { publicKey } = ed25519.sign.keyPair.fromSeed(seed);\n                return util.equalsUint8Array(A, publicKey);\n            }\n        case enums.publicKey.ed448: {\n            const ed448 = await util.getNobleCurve(enums.publicKey.ed448);\n            const publicKey = ed448.getPublicKey(seed);\n            return util.equalsUint8Array(A, publicKey);\n        }\n        default:\n            return false;\n    }\n}\nfunction getPayloadSize$1(algo) {\n    switch (algo) {\n        case enums.publicKey.ed25519:\n            return 32;\n        case enums.publicKey.ed448:\n            return 57;\n        default:\n            throw new Error('Unsupported EdDSA algorithm');\n    }\n}\nfunction getPreferredHashAlgo$2(algo) {\n    switch (algo) {\n        case enums.publicKey.ed25519:\n            return enums.hash.sha256;\n        case enums.publicKey.ed448:\n            return enums.hash.sha512;\n        default:\n            throw new Error('Unknown EdDSA algo');\n    }\n}\nconst publicKeyToJWK$1 = (algo, publicKey) => {\n    switch (algo) {\n        case enums.publicKey.ed25519: {\n            const jwk = {\n                kty: 'OKP',\n                crv: 'Ed25519',\n                x: uint8ArrayToB64(publicKey),\n                ext: true\n            };\n            return jwk;\n        }\n        default:\n            throw new Error('Unsupported EdDSA algorithm');\n    }\n};\nconst privateKeyToJWK$1 = (algo, publicKey, privateKey) => {\n    switch (algo) {\n        case enums.publicKey.ed25519: {\n            const jwk = publicKeyToJWK$1(algo, publicKey);\n            jwk.d = uint8ArrayToB64(privateKey);\n            return jwk;\n        }\n        default:\n            throw new Error('Unsupported EdDSA algorithm');\n    }\n};\n\nvar eddsa$1 = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  generate: generate$3,\n  getPayloadSize: getPayloadSize$1,\n  getPreferredHashAlgo: getPreferredHashAlgo$2,\n  sign: sign$5,\n  validateParams: validateParams$7,\n  verify: verify$5\n});\n\n/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nfunction isBytes$1(a) {\n    return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is Uint8Array. */\nfunction abytes$1(b, ...lengths) {\n    if (!isBytes$1(b))\n        throw new Error('Uint8Array expected');\n    if (lengths.length > 0 && !lengths.includes(b.length))\n        throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nfunction aexists$1(instance, checkFinished = true) {\n    if (instance.destroyed)\n        throw new Error('Hash instance has been destroyed');\n    if (checkFinished && instance.finished)\n        throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nfunction aoutput$1(out, instance) {\n    abytes$1(out);\n    const min = instance.outputLen;\n    if (out.length < min) {\n        throw new Error('digestInto() expects output buffer of length at least ' + min);\n    }\n}\n/** Cast u8 / u16 / u32 to u8. */\nfunction u8$1(arr) {\n    return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Cast u8 / u16 / u32 to u32. */\nfunction u32$1(arr) {\n    return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nfunction clean$1(...arrays) {\n    for (let i = 0; i < arrays.length; i++) {\n        arrays[i].fill(0);\n    }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nfunction createView$1(arr) {\n    return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nconst isLE$1 = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes$1(str) {\n    if (typeof str !== 'string')\n        throw new Error('string expected');\n    return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes$1(data) {\n    if (typeof data === 'string')\n        data = utf8ToBytes$1(data);\n    else if (isBytes$1(data))\n        data = copyBytes$1(data);\n    else\n        throw new Error('Uint8Array expected, got ' + typeof data);\n    return data;\n}\n/**\n * Checks if two U8A use same underlying buffer and overlaps.\n * This is invalid and can corrupt data.\n */\nfunction overlapBytes(a, b) {\n    return (a.buffer === b.buffer && // best we can do, may fail with an obscure Proxy\n        a.byteOffset < b.byteOffset + b.byteLength && // a starts before b end\n        b.byteOffset < a.byteOffset + a.byteLength // b starts before a end\n    );\n}\n/**\n * If input and output overlap and input starts before output, we will overwrite end of input before\n * we start processing it, so this is not supported for most ciphers (except chacha/salse, which designed with this)\n */\nfunction complexOverlapBytes(input, output) {\n    // This is very cursed. It works somehow, but I'm completely unsure,\n    // reasoning about overlapping aligned windows is very hard.\n    if (overlapBytes(input, output) && input.byteOffset < output.byteOffset)\n        throw new Error('complex overlap of input and output is not supported');\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes$1(...arrays) {\n    let sum = 0;\n    for (let i = 0; i < arrays.length; i++) {\n        const a = arrays[i];\n        abytes$1(a);\n        sum += a.length;\n    }\n    const res = new Uint8Array(sum);\n    for (let i = 0, pad = 0; i < arrays.length; i++) {\n        const a = arrays[i];\n        res.set(a, pad);\n        pad += a.length;\n    }\n    return res;\n}\n/** Compares 2 uint8array-s in kinda constant time. */\nfunction equalBytes(a, b) {\n    if (a.length !== b.length)\n        return false;\n    let diff = 0;\n    for (let i = 0; i < a.length; i++)\n        diff |= a[i] ^ b[i];\n    return diff === 0;\n}\n/**\n * Wraps a cipher: validates args, ensures encrypt() can only be called once.\n * @__NO_SIDE_EFFECTS__\n */\nconst wrapCipher = (params, constructor) => {\n    function wrappedCipher(key, ...args) {\n        // Validate key\n        abytes$1(key);\n        // Big-Endian hardware is rare. Just in case someone still decides to run ciphers:\n        if (!isLE$1)\n            throw new Error('Non little-endian hardware is not yet supported');\n        // Validate nonce if nonceLength is present\n        if (params.nonceLength !== undefined) {\n            const nonce = args[0];\n            if (!nonce)\n                throw new Error('nonce / iv required');\n            if (params.varSizeNonce)\n                abytes$1(nonce);\n            else\n                abytes$1(nonce, params.nonceLength);\n        }\n        // Validate AAD if tagLength present\n        const tagl = params.tagLength;\n        if (tagl && args[1] !== undefined) {\n            abytes$1(args[1]);\n        }\n        const cipher = constructor(key, ...args);\n        const checkOutput = (fnLength, output) => {\n            if (output !== undefined) {\n                if (fnLength !== 2)\n                    throw new Error('cipher output not supported');\n                abytes$1(output);\n            }\n        };\n        // Create wrapped cipher with validation and single-use encryption\n        let called = false;\n        const wrCipher = {\n            encrypt(data, output) {\n                if (called)\n                    throw new Error('cannot encrypt() twice with same key + nonce');\n                called = true;\n                abytes$1(data);\n                checkOutput(cipher.encrypt.length, output);\n                return cipher.encrypt(data, output);\n            },\n            decrypt(data, output) {\n                abytes$1(data);\n                if (tagl && data.length < tagl)\n                    throw new Error('invalid ciphertext length: smaller than tagLength=' + tagl);\n                checkOutput(cipher.decrypt.length, output);\n                return cipher.decrypt(data, output);\n            },\n        };\n        return wrCipher;\n    }\n    Object.assign(wrappedCipher, params);\n    return wrappedCipher;\n};\n/**\n * By default, returns u8a of length.\n * When out is available, it checks it for validity and uses it.\n */\nfunction getOutput(expectedLength, out, onlyAligned = true) {\n    if (out === undefined)\n        return new Uint8Array(expectedLength);\n    if (out.length !== expectedLength)\n        throw new Error('invalid output length, expected ' + expectedLength + ', got: ' + out.length);\n    if (onlyAligned && !isAligned32(out))\n        throw new Error('invalid output, must be aligned');\n    return out;\n}\n/** Polyfill for Safari 14. */\nfunction setBigUint64$1(view, byteOffset, value, isLE) {\n    if (typeof view.setBigUint64 === 'function')\n        return view.setBigUint64(byteOffset, value, isLE);\n    const _32n = BigInt(32);\n    const _u32_max = BigInt(0xffffffff);\n    const wh = Number((value >> _32n) & _u32_max);\n    const wl = Number(value & _u32_max);\n    const h = 0;\n    const l = 4;\n    view.setUint32(byteOffset + h, wh, isLE);\n    view.setUint32(byteOffset + l, wl, isLE);\n}\nfunction u64Lengths(dataLength, aadLength, isLE) {\n    const num = new Uint8Array(16);\n    const view = createView$1(num);\n    setBigUint64$1(view, 0, BigInt(aadLength), isLE);\n    setBigUint64$1(view, 8, BigInt(dataLength), isLE);\n    return num;\n}\n// Is byte array aligned to 4 byte offset (u32)?\nfunction isAligned32(bytes) {\n    return bytes.byteOffset % 4 === 0;\n}\n// copy bytes to new u8a (aligned). Because Buffer.slice is broken.\nfunction copyBytes$1(bytes) {\n    return Uint8Array.from(bytes);\n}\n\n/**\n * GHash from AES-GCM and its little-endian \"mirror image\" Polyval from AES-SIV.\n *\n * Implemented in terms of GHash with conversion function for keys\n * GCM GHASH from\n * [NIST SP800-38d](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf),\n * SIV from\n * [RFC 8452](https://datatracker.ietf.org/doc/html/rfc8452).\n *\n * GHASH   modulo: x^128 + x^7   + x^2   + x     + 1\n * POLYVAL modulo: x^128 + x^127 + x^126 + x^121 + 1\n *\n * @module\n */\n// prettier-ignore\nconst BLOCK_SIZE$1 = 16;\n// TODO: rewrite\n// temporary padding buffer\nconst ZEROS16 = /* @__PURE__ */ new Uint8Array(16);\nconst ZEROS32 = u32$1(ZEROS16);\nconst POLY$1 = 0xe1; // v = 2*v % POLY\n// v = 2*v % POLY\n// NOTE: because x + x = 0 (add/sub is same), mul2(x) != x+x\n// We can multiply any number using montgomery ladder and this function (works as double, add is simple xor)\nconst mul2$1 = (s0, s1, s2, s3) => {\n    const hiBit = s3 & 1;\n    return {\n        s3: (s2 << 31) | (s3 >>> 1),\n        s2: (s1 << 31) | (s2 >>> 1),\n        s1: (s0 << 31) | (s1 >>> 1),\n        s0: (s0 >>> 1) ^ ((POLY$1 << 24) & -(hiBit & 1)), // reduce % poly\n    };\n};\nconst swapLE = (n) => (((n >>> 0) & 0xff) << 24) |\n    (((n >>> 8) & 0xff) << 16) |\n    (((n >>> 16) & 0xff) << 8) |\n    ((n >>> 24) & 0xff) |\n    0;\n/**\n * `mulX_POLYVAL(ByteReverse(H))` from spec\n * @param k mutated in place\n */\nfunction _toGHASHKey(k) {\n    k.reverse();\n    const hiBit = k[15] & 1;\n    // k >>= 1\n    let carry = 0;\n    for (let i = 0; i < k.length; i++) {\n        const t = k[i];\n        k[i] = (t >>> 1) | carry;\n        carry = (t & 1) << 7;\n    }\n    k[0] ^= -hiBit & 0xe1; // if (hiBit) n ^= 0xe1000000000000000000000000000000;\n    return k;\n}\nconst estimateWindow = (bytes) => {\n    if (bytes > 64 * 1024)\n        return 8;\n    if (bytes > 1024)\n        return 4;\n    return 2;\n};\nclass GHASH {\n    // We select bits per window adaptively based on expectedLength\n    constructor(key, expectedLength) {\n        this.blockLen = BLOCK_SIZE$1;\n        this.outputLen = BLOCK_SIZE$1;\n        this.s0 = 0;\n        this.s1 = 0;\n        this.s2 = 0;\n        this.s3 = 0;\n        this.finished = false;\n        key = toBytes$1(key);\n        abytes$1(key, 16);\n        const kView = createView$1(key);\n        let k0 = kView.getUint32(0, false);\n        let k1 = kView.getUint32(4, false);\n        let k2 = kView.getUint32(8, false);\n        let k3 = kView.getUint32(12, false);\n        // generate table of doubled keys (half of montgomery ladder)\n        const doubles = [];\n        for (let i = 0; i < 128; i++) {\n            doubles.push({ s0: swapLE(k0), s1: swapLE(k1), s2: swapLE(k2), s3: swapLE(k3) });\n            ({ s0: k0, s1: k1, s2: k2, s3: k3 } = mul2$1(k0, k1, k2, k3));\n        }\n        const W = estimateWindow(expectedLength || 1024);\n        if (![1, 2, 4, 8].includes(W))\n            throw new Error('ghash: invalid window size, expected 2, 4 or 8');\n        this.W = W;\n        const bits = 128; // always 128 bits;\n        const windows = bits / W;\n        const windowSize = (this.windowSize = 2 ** W);\n        const items = [];\n        // Create precompute table for window of W bits\n        for (let w = 0; w < windows; w++) {\n            // truth table: 00, 01, 10, 11\n            for (let byte = 0; byte < windowSize; byte++) {\n                // prettier-ignore\n                let s0 = 0, s1 = 0, s2 = 0, s3 = 0;\n                for (let j = 0; j < W; j++) {\n                    const bit = (byte >>> (W - j - 1)) & 1;\n                    if (!bit)\n                        continue;\n                    const { s0: d0, s1: d1, s2: d2, s3: d3 } = doubles[W * w + j];\n                    (s0 ^= d0), (s1 ^= d1), (s2 ^= d2), (s3 ^= d3);\n                }\n                items.push({ s0, s1, s2, s3 });\n            }\n        }\n        this.t = items;\n    }\n    _updateBlock(s0, s1, s2, s3) {\n        (s0 ^= this.s0), (s1 ^= this.s1), (s2 ^= this.s2), (s3 ^= this.s3);\n        const { W, t, windowSize } = this;\n        // prettier-ignore\n        let o0 = 0, o1 = 0, o2 = 0, o3 = 0;\n        const mask = (1 << W) - 1; // 2**W will kill performance.\n        let w = 0;\n        for (const num of [s0, s1, s2, s3]) {\n            for (let bytePos = 0; bytePos < 4; bytePos++) {\n                const byte = (num >>> (8 * bytePos)) & 0xff;\n                for (let bitPos = 8 / W - 1; bitPos >= 0; bitPos--) {\n                    const bit = (byte >>> (W * bitPos)) & mask;\n                    const { s0: e0, s1: e1, s2: e2, s3: e3 } = t[w * windowSize + bit];\n                    (o0 ^= e0), (o1 ^= e1), (o2 ^= e2), (o3 ^= e3);\n                    w += 1;\n                }\n            }\n        }\n        this.s0 = o0;\n        this.s1 = o1;\n        this.s2 = o2;\n        this.s3 = o3;\n    }\n    update(data) {\n        aexists$1(this);\n        data = toBytes$1(data);\n        abytes$1(data);\n        const b32 = u32$1(data);\n        const blocks = Math.floor(data.length / BLOCK_SIZE$1);\n        const left = data.length % BLOCK_SIZE$1;\n        for (let i = 0; i < blocks; i++) {\n            this._updateBlock(b32[i * 4 + 0], b32[i * 4 + 1], b32[i * 4 + 2], b32[i * 4 + 3]);\n        }\n        if (left) {\n            ZEROS16.set(data.subarray(blocks * BLOCK_SIZE$1));\n            this._updateBlock(ZEROS32[0], ZEROS32[1], ZEROS32[2], ZEROS32[3]);\n            clean$1(ZEROS32); // clean tmp buffer\n        }\n        return this;\n    }\n    destroy() {\n        const { t } = this;\n        // clean precompute table\n        for (const elm of t) {\n            (elm.s0 = 0), (elm.s1 = 0), (elm.s2 = 0), (elm.s3 = 0);\n        }\n    }\n    digestInto(out) {\n        aexists$1(this);\n        aoutput$1(out, this);\n        this.finished = true;\n        const { s0, s1, s2, s3 } = this;\n        const o32 = u32$1(out);\n        o32[0] = s0;\n        o32[1] = s1;\n        o32[2] = s2;\n        o32[3] = s3;\n        return out;\n    }\n    digest() {\n        const res = new Uint8Array(BLOCK_SIZE$1);\n        this.digestInto(res);\n        this.destroy();\n        return res;\n    }\n}\nclass Polyval extends GHASH {\n    constructor(key, expectedLength) {\n        key = toBytes$1(key);\n        abytes$1(key);\n        const ghKey = _toGHASHKey(copyBytes$1(key));\n        super(ghKey, expectedLength);\n        clean$1(ghKey);\n    }\n    update(data) {\n        data = toBytes$1(data);\n        aexists$1(this);\n        const b32 = u32$1(data);\n        const left = data.length % BLOCK_SIZE$1;\n        const blocks = Math.floor(data.length / BLOCK_SIZE$1);\n        for (let i = 0; i < blocks; i++) {\n            this._updateBlock(swapLE(b32[i * 4 + 3]), swapLE(b32[i * 4 + 2]), swapLE(b32[i * 4 + 1]), swapLE(b32[i * 4 + 0]));\n        }\n        if (left) {\n            ZEROS16.set(data.subarray(blocks * BLOCK_SIZE$1));\n            this._updateBlock(swapLE(ZEROS32[3]), swapLE(ZEROS32[2]), swapLE(ZEROS32[1]), swapLE(ZEROS32[0]));\n            clean$1(ZEROS32);\n        }\n        return this;\n    }\n    digestInto(out) {\n        aexists$1(this);\n        aoutput$1(out, this);\n        this.finished = true;\n        // tmp ugly hack\n        const { s0, s1, s2, s3 } = this;\n        const o32 = u32$1(out);\n        o32[0] = s0;\n        o32[1] = s1;\n        o32[2] = s2;\n        o32[3] = s3;\n        return out.reverse();\n    }\n}\nfunction wrapConstructorWithKey(hashCons) {\n    const hashC = (msg, key) => hashCons(key, msg.length).update(toBytes$1(msg)).digest();\n    const tmp = hashCons(new Uint8Array(16), 0);\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = (key, expectedLength) => hashCons(key, expectedLength);\n    return hashC;\n}\n/** GHash MAC for AES-GCM. */\nconst ghash = wrapConstructorWithKey((key, expectedLength) => new GHASH(key, expectedLength));\n/** Polyval MAC for AES-SIV. */\nwrapConstructorWithKey((key, expectedLength) => new Polyval(key, expectedLength));\n\n/**\n * [AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)\n * a.k.a. Advanced Encryption Standard\n * is a variant of Rijndael block cipher, standardized by NIST in 2001.\n * We provide the fastest available pure JS implementation.\n *\n * Data is split into 128-bit blocks. Encrypted in 10/12/14 rounds (128/192/256 bits). In every round:\n * 1. **S-box**, table substitution\n * 2. **Shift rows**, cyclic shift left of all rows of data array\n * 3. **Mix columns**, multiplying every column by fixed polynomial\n * 4. **Add round key**, round_key xor i-th column of array\n *\n * Check out [FIPS-197](https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf)\n * and [original proposal](https://csrc.nist.gov/csrc/media/projects/cryptographic-standards-and-guidelines/documents/aes-development/rijndael-ammended.pdf)\n * @module\n */\nconst BLOCK_SIZE = 16;\nconst BLOCK_SIZE32 = 4;\nconst EMPTY_BLOCK = /* @__PURE__ */ new Uint8Array(BLOCK_SIZE);\nconst POLY = 0x11b; // 1 + x + x**3 + x**4 + x**8\n// TODO: remove multiplication, binary ops only\nfunction mul2(n) {\n    return (n << 1) ^ (POLY & -(n >> 7));\n}\nfunction mul(a, b) {\n    let res = 0;\n    for (; b > 0; b >>= 1) {\n        // Montgomery ladder\n        res ^= a & -(b & 1); // if (b&1) res ^=a (but const-time).\n        a = mul2(a); // a = 2*a\n    }\n    return res;\n}\n// AES S-box is generated using finite field inversion,\n// an affine transform, and xor of a constant 0x63.\nconst sbox = /* @__PURE__ */ (() => {\n    const t = new Uint8Array(256);\n    for (let i = 0, x = 1; i < 256; i++, x ^= mul2(x))\n        t[i] = x;\n    const box = new Uint8Array(256);\n    box[0] = 0x63; // first elm\n    for (let i = 0; i < 255; i++) {\n        let x = t[255 - i];\n        x |= x << 8;\n        box[t[i]] = (x ^ (x >> 4) ^ (x >> 5) ^ (x >> 6) ^ (x >> 7) ^ 0x63) & 0xff;\n    }\n    clean$1(t);\n    return box;\n})();\n// Inverted S-box\nconst invSbox = /* @__PURE__ */ sbox.map((_, j) => sbox.indexOf(j));\n// Rotate u32 by 8\nconst rotr32_8 = (n) => (n << 24) | (n >>> 8);\nconst rotl32_8 = (n) => (n << 8) | (n >>> 24);\n// The byte swap operation for uint32 (LE<->BE)\nconst byteSwap$1 = (word) => ((word << 24) & 0xff000000) |\n    ((word << 8) & 0xff0000) |\n    ((word >>> 8) & 0xff00) |\n    ((word >>> 24) & 0xff);\n// T-table is optimization suggested in 5.2 of original proposal (missed from FIPS-197). Changes:\n// - LE instead of BE\n// - bigger tables: T0 and T1 are merged into T01 table and T2 & T3 into T23;\n//   so index is u16, instead of u8. This speeds up things, unexpectedly\nfunction genTtable(sbox, fn) {\n    if (sbox.length !== 256)\n        throw new Error('Wrong sbox length');\n    const T0 = new Uint32Array(256).map((_, j) => fn(sbox[j]));\n    const T1 = T0.map(rotl32_8);\n    const T2 = T1.map(rotl32_8);\n    const T3 = T2.map(rotl32_8);\n    const T01 = new Uint32Array(256 * 256);\n    const T23 = new Uint32Array(256 * 256);\n    const sbox2 = new Uint16Array(256 * 256);\n    for (let i = 0; i < 256; i++) {\n        for (let j = 0; j < 256; j++) {\n            const idx = i * 256 + j;\n            T01[idx] = T0[i] ^ T1[j];\n            T23[idx] = T2[i] ^ T3[j];\n            sbox2[idx] = (sbox[i] << 8) | sbox[j];\n        }\n    }\n    return { sbox, sbox2, T0, T1, T2, T3, T01, T23 };\n}\nconst tableEncoding = /* @__PURE__ */ genTtable(sbox, (s) => (mul(s, 3) << 24) | (s << 16) | (s << 8) | mul(s, 2));\nconst tableDecoding = /* @__PURE__ */ genTtable(invSbox, (s) => (mul(s, 11) << 24) | (mul(s, 13) << 16) | (mul(s, 9) << 8) | mul(s, 14));\nconst xPowers = /* @__PURE__ */ (() => {\n    const p = new Uint8Array(16);\n    for (let i = 0, x = 1; i < 16; i++, x = mul2(x))\n        p[i] = x;\n    return p;\n})();\n/** Key expansion used in CTR. */\nfunction expandKeyLE(key) {\n    abytes$1(key);\n    const len = key.length;\n    if (![16, 24, 32].includes(len))\n        throw new Error('aes: invalid key size, should be 16, 24 or 32, got ' + len);\n    const { sbox2 } = tableEncoding;\n    const toClean = [];\n    if (!isAligned32(key))\n        toClean.push((key = copyBytes$1(key)));\n    const k32 = u32$1(key);\n    const Nk = k32.length;\n    const subByte = (n) => applySbox(sbox2, n, n, n, n);\n    const xk = new Uint32Array(len + 28); // expanded key\n    xk.set(k32);\n    // 4.3.1 Key expansion\n    for (let i = Nk; i < xk.length; i++) {\n        let t = xk[i - 1];\n        if (i % Nk === 0)\n            t = subByte(rotr32_8(t)) ^ xPowers[i / Nk - 1];\n        else if (Nk > 6 && i % Nk === 4)\n            t = subByte(t);\n        xk[i] = xk[i - Nk] ^ t;\n    }\n    clean$1(...toClean);\n    return xk;\n}\nfunction expandKeyDecLE(key) {\n    const encKey = expandKeyLE(key);\n    const xk = encKey.slice();\n    const Nk = encKey.length;\n    const { sbox2 } = tableEncoding;\n    const { T0, T1, T2, T3 } = tableDecoding;\n    // Inverse key by chunks of 4 (rounds)\n    for (let i = 0; i < Nk; i += 4) {\n        for (let j = 0; j < 4; j++)\n            xk[i + j] = encKey[Nk - i - 4 + j];\n    }\n    clean$1(encKey);\n    // apply InvMixColumn except first & last round\n    for (let i = 4; i < Nk - 4; i++) {\n        const x = xk[i];\n        const w = applySbox(sbox2, x, x, x, x);\n        xk[i] = T0[w & 0xff] ^ T1[(w >>> 8) & 0xff] ^ T2[(w >>> 16) & 0xff] ^ T3[w >>> 24];\n    }\n    return xk;\n}\n// Apply tables\nfunction apply0123(T01, T23, s0, s1, s2, s3) {\n    return (T01[((s0 << 8) & 0xff00) | ((s1 >>> 8) & 0xff)] ^\n        T23[((s2 >>> 8) & 0xff00) | ((s3 >>> 24) & 0xff)]);\n}\nfunction applySbox(sbox2, s0, s1, s2, s3) {\n    return (sbox2[(s0 & 0xff) | (s1 & 0xff00)] |\n        (sbox2[((s2 >>> 16) & 0xff) | ((s3 >>> 16) & 0xff00)] << 16));\n}\nfunction encrypt$4(xk, s0, s1, s2, s3) {\n    const { sbox2, T01, T23 } = tableEncoding;\n    let k = 0;\n    (s0 ^= xk[k++]), (s1 ^= xk[k++]), (s2 ^= xk[k++]), (s3 ^= xk[k++]);\n    const rounds = xk.length / 4 - 2;\n    for (let i = 0; i < rounds; i++) {\n        const t0 = xk[k++] ^ apply0123(T01, T23, s0, s1, s2, s3);\n        const t1 = xk[k++] ^ apply0123(T01, T23, s1, s2, s3, s0);\n        const t2 = xk[k++] ^ apply0123(T01, T23, s2, s3, s0, s1);\n        const t3 = xk[k++] ^ apply0123(T01, T23, s3, s0, s1, s2);\n        (s0 = t0), (s1 = t1), (s2 = t2), (s3 = t3);\n    }\n    // last round (without mixcolumns, so using SBOX2 table)\n    const t0 = xk[k++] ^ applySbox(sbox2, s0, s1, s2, s3);\n    const t1 = xk[k++] ^ applySbox(sbox2, s1, s2, s3, s0);\n    const t2 = xk[k++] ^ applySbox(sbox2, s2, s3, s0, s1);\n    const t3 = xk[k++] ^ applySbox(sbox2, s3, s0, s1, s2);\n    return { s0: t0, s1: t1, s2: t2, s3: t3 };\n}\n// Can't be merged with encrypt: arg positions for apply0123 / applySbox are different\nfunction decrypt$4(xk, s0, s1, s2, s3) {\n    const { sbox2, T01, T23 } = tableDecoding;\n    let k = 0;\n    (s0 ^= xk[k++]), (s1 ^= xk[k++]), (s2 ^= xk[k++]), (s3 ^= xk[k++]);\n    const rounds = xk.length / 4 - 2;\n    for (let i = 0; i < rounds; i++) {\n        const t0 = xk[k++] ^ apply0123(T01, T23, s0, s3, s2, s1);\n        const t1 = xk[k++] ^ apply0123(T01, T23, s1, s0, s3, s2);\n        const t2 = xk[k++] ^ apply0123(T01, T23, s2, s1, s0, s3);\n        const t3 = xk[k++] ^ apply0123(T01, T23, s3, s2, s1, s0);\n        (s0 = t0), (s1 = t1), (s2 = t2), (s3 = t3);\n    }\n    // Last round\n    const t0 = xk[k++] ^ applySbox(sbox2, s0, s3, s2, s1);\n    const t1 = xk[k++] ^ applySbox(sbox2, s1, s0, s3, s2);\n    const t2 = xk[k++] ^ applySbox(sbox2, s2, s1, s0, s3);\n    const t3 = xk[k++] ^ applySbox(sbox2, s3, s2, s1, s0);\n    return { s0: t0, s1: t1, s2: t2, s3: t3 };\n}\n// TODO: investigate merging with ctr32\nfunction ctrCounter(xk, nonce, src, dst) {\n    abytes$1(nonce, BLOCK_SIZE);\n    abytes$1(src);\n    const srcLen = src.length;\n    dst = getOutput(srcLen, dst);\n    complexOverlapBytes(src, dst);\n    const ctr = nonce;\n    const c32 = u32$1(ctr);\n    // Fill block (empty, ctr=0)\n    let { s0, s1, s2, s3 } = encrypt$4(xk, c32[0], c32[1], c32[2], c32[3]);\n    const src32 = u32$1(src);\n    const dst32 = u32$1(dst);\n    // process blocks\n    for (let i = 0; i + 4 <= src32.length; i += 4) {\n        dst32[i + 0] = src32[i + 0] ^ s0;\n        dst32[i + 1] = src32[i + 1] ^ s1;\n        dst32[i + 2] = src32[i + 2] ^ s2;\n        dst32[i + 3] = src32[i + 3] ^ s3;\n        // Full 128 bit counter with wrap around\n        let carry = 1;\n        for (let i = ctr.length - 1; i >= 0; i--) {\n            carry = (carry + (ctr[i] & 0xff)) | 0;\n            ctr[i] = carry & 0xff;\n            carry >>>= 8;\n        }\n        ({ s0, s1, s2, s3 } = encrypt$4(xk, c32[0], c32[1], c32[2], c32[3]));\n    }\n    // leftovers (less than block)\n    // It's possible to handle > u32 fast, but is it worth it?\n    const start = BLOCK_SIZE * Math.floor(src32.length / BLOCK_SIZE32);\n    if (start < srcLen) {\n        const b32 = new Uint32Array([s0, s1, s2, s3]);\n        const buf = u8$1(b32);\n        for (let i = start, pos = 0; i < srcLen; i++, pos++)\n            dst[i] = src[i] ^ buf[pos];\n        clean$1(b32);\n    }\n    return dst;\n}\n// AES CTR with overflowing 32 bit counter\n// It's possible to do 32le significantly simpler (and probably faster) by using u32.\n// But, we need both, and perf bottleneck is in ghash anyway.\nfunction ctr32(xk, isLE, nonce, src, dst) {\n    abytes$1(nonce, BLOCK_SIZE);\n    abytes$1(src);\n    dst = getOutput(src.length, dst);\n    const ctr = nonce; // write new value to nonce, so it can be re-used\n    const c32 = u32$1(ctr);\n    const view = createView$1(ctr);\n    const src32 = u32$1(src);\n    const dst32 = u32$1(dst);\n    const ctrPos = isLE ? 0 : 12;\n    const srcLen = src.length;\n    // Fill block (empty, ctr=0)\n    let ctrNum = view.getUint32(ctrPos, isLE); // read current counter value\n    let { s0, s1, s2, s3 } = encrypt$4(xk, c32[0], c32[1], c32[2], c32[3]);\n    // process blocks\n    for (let i = 0; i + 4 <= src32.length; i += 4) {\n        dst32[i + 0] = src32[i + 0] ^ s0;\n        dst32[i + 1] = src32[i + 1] ^ s1;\n        dst32[i + 2] = src32[i + 2] ^ s2;\n        dst32[i + 3] = src32[i + 3] ^ s3;\n        ctrNum = (ctrNum + 1) >>> 0; // u32 wrap\n        view.setUint32(ctrPos, ctrNum, isLE);\n        ({ s0, s1, s2, s3 } = encrypt$4(xk, c32[0], c32[1], c32[2], c32[3]));\n    }\n    // leftovers (less than a block)\n    const start = BLOCK_SIZE * Math.floor(src32.length / BLOCK_SIZE32);\n    if (start < srcLen) {\n        const b32 = new Uint32Array([s0, s1, s2, s3]);\n        const buf = u8$1(b32);\n        for (let i = start, pos = 0; i < srcLen; i++, pos++)\n            dst[i] = src[i] ^ buf[pos];\n        clean$1(b32);\n    }\n    return dst;\n}\n/**\n * CTR: counter mode. Creates stream cipher.\n * Requires good IV. Parallelizable. OK, but no MAC.\n */\nconst ctr = /* @__PURE__ */ wrapCipher({ blockSize: 16, nonceLength: 16 }, function aesctr(key, nonce) {\n    function processCtr(buf, dst) {\n        abytes$1(buf);\n        if (dst !== undefined) {\n            abytes$1(dst);\n            if (!isAligned32(dst))\n                throw new Error('unaligned destination');\n        }\n        const xk = expandKeyLE(key);\n        const n = copyBytes$1(nonce); // align + avoid changing\n        const toClean = [xk, n];\n        if (!isAligned32(buf))\n            toClean.push((buf = copyBytes$1(buf)));\n        const out = ctrCounter(xk, n, buf, dst);\n        clean$1(...toClean);\n        return out;\n    }\n    return {\n        encrypt: (plaintext, dst) => processCtr(plaintext, dst),\n        decrypt: (ciphertext, dst) => processCtr(ciphertext, dst),\n    };\n});\nfunction validateBlockDecrypt(data) {\n    abytes$1(data);\n    if (data.length % BLOCK_SIZE !== 0) {\n        throw new Error('aes-(cbc/ecb).decrypt ciphertext should consist of blocks with size ' + BLOCK_SIZE);\n    }\n}\nfunction validateBlockEncrypt(plaintext, pcks5, dst) {\n    abytes$1(plaintext);\n    let outLen = plaintext.length;\n    const remaining = outLen % BLOCK_SIZE;\n    if (!pcks5 && remaining !== 0)\n        throw new Error('aec/(cbc-ecb): unpadded plaintext with disabled padding');\n    if (!isAligned32(plaintext))\n        plaintext = copyBytes$1(plaintext);\n    const b = u32$1(plaintext);\n    if (pcks5) {\n        let left = BLOCK_SIZE - remaining;\n        if (!left)\n            left = BLOCK_SIZE; // if no bytes left, create empty padding block\n        outLen = outLen + left;\n    }\n    dst = getOutput(outLen, dst);\n    complexOverlapBytes(plaintext, dst);\n    const o = u32$1(dst);\n    return { b, o, out: dst };\n}\nfunction validatePCKS(data, pcks5) {\n    if (!pcks5)\n        return data;\n    const len = data.length;\n    if (!len)\n        throw new Error('aes/pcks5: empty ciphertext not allowed');\n    const lastByte = data[len - 1];\n    if (lastByte <= 0 || lastByte > 16)\n        throw new Error('aes/pcks5: wrong padding');\n    const out = data.subarray(0, -lastByte);\n    for (let i = 0; i < lastByte; i++)\n        if (data[len - i - 1] !== lastByte)\n            throw new Error('aes/pcks5: wrong padding');\n    return out;\n}\nfunction padPCKS(left) {\n    const tmp = new Uint8Array(16);\n    const tmp32 = u32$1(tmp);\n    tmp.set(left);\n    const paddingByte = BLOCK_SIZE - left.length;\n    for (let i = BLOCK_SIZE - paddingByte; i < BLOCK_SIZE; i++)\n        tmp[i] = paddingByte;\n    return tmp32;\n}\n/**\n * CBC: Cipher-Block-Chaining. Key is previous round\u2019s block.\n * Fragile: needs proper padding. Unauthenticated: needs MAC.\n */\nconst cbc = /* @__PURE__ */ wrapCipher({ blockSize: 16, nonceLength: 16 }, function aescbc(key, iv, opts = {}) {\n    const pcks5 = !opts.disablePadding;\n    return {\n        encrypt(plaintext, dst) {\n            const xk = expandKeyLE(key);\n            const { b, o, out: _out } = validateBlockEncrypt(plaintext, pcks5, dst);\n            let _iv = iv;\n            const toClean = [xk];\n            if (!isAligned32(_iv))\n                toClean.push((_iv = copyBytes$1(_iv)));\n            const n32 = u32$1(_iv);\n            // prettier-ignore\n            let s0 = n32[0], s1 = n32[1], s2 = n32[2], s3 = n32[3];\n            let i = 0;\n            for (; i + 4 <= b.length;) {\n                (s0 ^= b[i + 0]), (s1 ^= b[i + 1]), (s2 ^= b[i + 2]), (s3 ^= b[i + 3]);\n                ({ s0, s1, s2, s3 } = encrypt$4(xk, s0, s1, s2, s3));\n                (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3);\n            }\n            if (pcks5) {\n                const tmp32 = padPCKS(plaintext.subarray(i * 4));\n                (s0 ^= tmp32[0]), (s1 ^= tmp32[1]), (s2 ^= tmp32[2]), (s3 ^= tmp32[3]);\n                ({ s0, s1, s2, s3 } = encrypt$4(xk, s0, s1, s2, s3));\n                (o[i++] = s0), (o[i++] = s1), (o[i++] = s2), (o[i++] = s3);\n            }\n            clean$1(...toClean);\n            return _out;\n        },\n        decrypt(ciphertext, dst) {\n            validateBlockDecrypt(ciphertext);\n            const xk = expandKeyDecLE(key);\n            let _iv = iv;\n            const toClean = [xk];\n            if (!isAligned32(_iv))\n                toClean.push((_iv = copyBytes$1(_iv)));\n            const n32 = u32$1(_iv);\n            dst = getOutput(ciphertext.length, dst);\n            if (!isAligned32(ciphertext))\n                toClean.push((ciphertext = copyBytes$1(ciphertext)));\n            complexOverlapBytes(ciphertext, dst);\n            const b = u32$1(ciphertext);\n            const o = u32$1(dst);\n            // prettier-ignore\n            let s0 = n32[0], s1 = n32[1], s2 = n32[2], s3 = n32[3];\n            for (let i = 0; i + 4 <= b.length;) {\n                // prettier-ignore\n                const ps0 = s0, ps1 = s1, ps2 = s2, ps3 = s3;\n                (s0 = b[i + 0]), (s1 = b[i + 1]), (s2 = b[i + 2]), (s3 = b[i + 3]);\n                const { s0: o0, s1: o1, s2: o2, s3: o3 } = decrypt$4(xk, s0, s1, s2, s3);\n                (o[i++] = o0 ^ ps0), (o[i++] = o1 ^ ps1), (o[i++] = o2 ^ ps2), (o[i++] = o3 ^ ps3);\n            }\n            clean$1(...toClean);\n            return validatePCKS(dst, pcks5);\n        },\n    };\n});\n/**\n * CFB: Cipher Feedback Mode. The input for the block cipher is the previous cipher output.\n * Unauthenticated: needs MAC.\n */\nconst cfb = /* @__PURE__ */ wrapCipher({ blockSize: 16, nonceLength: 16 }, function aescfb(key, iv) {\n    function processCfb(src, isEncrypt, dst) {\n        abytes$1(src);\n        const srcLen = src.length;\n        dst = getOutput(srcLen, dst);\n        if (overlapBytes(src, dst))\n            throw new Error('overlapping src and dst not supported.');\n        const xk = expandKeyLE(key);\n        let _iv = iv;\n        const toClean = [xk];\n        if (!isAligned32(_iv))\n            toClean.push((_iv = copyBytes$1(_iv)));\n        if (!isAligned32(src))\n            toClean.push((src = copyBytes$1(src)));\n        const src32 = u32$1(src);\n        const dst32 = u32$1(dst);\n        const next32 = isEncrypt ? dst32 : src32;\n        const n32 = u32$1(_iv);\n        // prettier-ignore\n        let s0 = n32[0], s1 = n32[1], s2 = n32[2], s3 = n32[3];\n        for (let i = 0; i + 4 <= src32.length;) {\n            const { s0: e0, s1: e1, s2: e2, s3: e3 } = encrypt$4(xk, s0, s1, s2, s3);\n            dst32[i + 0] = src32[i + 0] ^ e0;\n            dst32[i + 1] = src32[i + 1] ^ e1;\n            dst32[i + 2] = src32[i + 2] ^ e2;\n            dst32[i + 3] = src32[i + 3] ^ e3;\n            (s0 = next32[i++]), (s1 = next32[i++]), (s2 = next32[i++]), (s3 = next32[i++]);\n        }\n        // leftovers (less than block)\n        const start = BLOCK_SIZE * Math.floor(src32.length / BLOCK_SIZE32);\n        if (start < srcLen) {\n            ({ s0, s1, s2, s3 } = encrypt$4(xk, s0, s1, s2, s3));\n            const buf = u8$1(new Uint32Array([s0, s1, s2, s3]));\n            for (let i = start, pos = 0; i < srcLen; i++, pos++)\n                dst[i] = src[i] ^ buf[pos];\n            clean$1(buf);\n        }\n        clean$1(...toClean);\n        return dst;\n    }\n    return {\n        encrypt: (plaintext, dst) => processCfb(plaintext, true, dst),\n        decrypt: (ciphertext, dst) => processCfb(ciphertext, false, dst),\n    };\n});\n// TODO: merge with chacha, however gcm has bitLen while chacha has byteLen\nfunction computeTag(fn, isLE, key, data, AAD) {\n    const aadLength = AAD ? AAD.length : 0;\n    const h = fn.create(key, data.length + aadLength);\n    if (AAD)\n        h.update(AAD);\n    const num = u64Lengths(8 * data.length, 8 * aadLength, isLE);\n    h.update(data);\n    h.update(num);\n    const res = h.digest();\n    clean$1(num);\n    return res;\n}\n/**\n * GCM: Galois/Counter Mode.\n * Modern, parallel version of CTR, with MAC.\n * Be careful: MACs can be forged.\n * Unsafe to use random nonces under the same key, due to collision chance.\n * As for nonce size, prefer 12-byte, instead of 8-byte.\n */\nconst gcm = /* @__PURE__ */ wrapCipher({ blockSize: 16, nonceLength: 12, tagLength: 16, varSizeNonce: true }, function aesgcm(key, nonce, AAD) {\n    // NIST 800-38d doesn't enforce minimum nonce length.\n    // We enforce 8 bytes for compat with openssl.\n    // 12 bytes are recommended. More than 12 bytes would be converted into 12.\n    if (nonce.length < 8)\n        throw new Error('aes/gcm: invalid nonce length');\n    const tagLength = 16;\n    function _computeTag(authKey, tagMask, data) {\n        const tag = computeTag(ghash, false, authKey, data, AAD);\n        for (let i = 0; i < tagMask.length; i++)\n            tag[i] ^= tagMask[i];\n        return tag;\n    }\n    function deriveKeys() {\n        const xk = expandKeyLE(key);\n        const authKey = EMPTY_BLOCK.slice();\n        const counter = EMPTY_BLOCK.slice();\n        ctr32(xk, false, counter, counter, authKey);\n        // NIST 800-38d, page 15: different behavior for 96-bit and non-96-bit nonces\n        if (nonce.length === 12) {\n            counter.set(nonce);\n        }\n        else {\n            const nonceLen = EMPTY_BLOCK.slice();\n            const view = createView$1(nonceLen);\n            setBigUint64$1(view, 8, BigInt(nonce.length * 8), false);\n            // ghash(nonce || u64be(0) || u64be(nonceLen*8))\n            const g = ghash.create(authKey).update(nonce).update(nonceLen);\n            g.digestInto(counter); // digestInto doesn't trigger '.destroy'\n            g.destroy();\n        }\n        const tagMask = ctr32(xk, false, counter, EMPTY_BLOCK);\n        return { xk, authKey, counter, tagMask };\n    }\n    return {\n        encrypt(plaintext) {\n            const { xk, authKey, counter, tagMask } = deriveKeys();\n            const out = new Uint8Array(plaintext.length + tagLength);\n            const toClean = [xk, authKey, counter, tagMask];\n            if (!isAligned32(plaintext))\n                toClean.push((plaintext = copyBytes$1(plaintext)));\n            ctr32(xk, false, counter, plaintext, out.subarray(0, plaintext.length));\n            const tag = _computeTag(authKey, tagMask, out.subarray(0, out.length - tagLength));\n            toClean.push(tag);\n            out.set(tag, plaintext.length);\n            clean$1(...toClean);\n            return out;\n        },\n        decrypt(ciphertext) {\n            const { xk, authKey, counter, tagMask } = deriveKeys();\n            const toClean = [xk, authKey, tagMask, counter];\n            if (!isAligned32(ciphertext))\n                toClean.push((ciphertext = copyBytes$1(ciphertext)));\n            const data = ciphertext.subarray(0, -tagLength);\n            const passedTag = ciphertext.subarray(-tagLength);\n            const tag = _computeTag(authKey, tagMask, data);\n            toClean.push(tag);\n            if (!equalBytes(tag, passedTag))\n                throw new Error('aes/gcm: invalid ghash tag');\n            const out = ctr32(xk, false, counter, data);\n            clean$1(...toClean);\n            return out;\n        },\n    };\n});\nfunction isBytes32(a) {\n    return (a instanceof Uint32Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint32Array'));\n}\nfunction encryptBlock(xk, block) {\n    abytes$1(block, 16);\n    if (!isBytes32(xk))\n        throw new Error('_encryptBlock accepts result of expandKeyLE');\n    const b32 = u32$1(block);\n    let { s0, s1, s2, s3 } = encrypt$4(xk, b32[0], b32[1], b32[2], b32[3]);\n    (b32[0] = s0), (b32[1] = s1), (b32[2] = s2), (b32[3] = s3);\n    return block;\n}\nfunction decryptBlock(xk, block) {\n    abytes$1(block, 16);\n    if (!isBytes32(xk))\n        throw new Error('_decryptBlock accepts result of expandKeyLE');\n    const b32 = u32$1(block);\n    let { s0, s1, s2, s3 } = decrypt$4(xk, b32[0], b32[1], b32[2], b32[3]);\n    (b32[0] = s0), (b32[1] = s1), (b32[2] = s2), (b32[3] = s3);\n    return block;\n}\n/**\n * AES-W (base for AESKW/AESKWP).\n * Specs: [SP800-38F](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf),\n * [RFC 3394](https://datatracker.ietf.org/doc/rfc3394/),\n * [RFC 5649](https://datatracker.ietf.org/doc/rfc5649/).\n */\nconst AESW = {\n    /*\n    High-level pseudocode:\n    ```\n    A: u64 = IV\n    out = []\n    for (let i=0, ctr = 0; i<6; i++) {\n      for (const chunk of chunks(plaintext, 8)) {\n        A ^= swapEndianess(ctr++)\n        [A, res] = chunks(encrypt(A || chunk), 8);\n        out ||= res\n      }\n    }\n    out = A || out\n    ```\n    Decrypt is the same, but reversed.\n    */\n    encrypt(kek, out) {\n        // Size is limited to 4GB, otherwise ctr will overflow and we'll need to switch to bigints.\n        // If you need it larger, open an issue.\n        if (out.length >= 2 ** 32)\n            throw new Error('plaintext should be less than 4gb');\n        const xk = expandKeyLE(kek);\n        if (out.length === 16)\n            encryptBlock(xk, out);\n        else {\n            const o32 = u32$1(out);\n            // prettier-ignore\n            let a0 = o32[0], a1 = o32[1]; // A\n            for (let j = 0, ctr = 1; j < 6; j++) {\n                for (let pos = 2; pos < o32.length; pos += 2, ctr++) {\n                    const { s0, s1, s2, s3 } = encrypt$4(xk, a0, a1, o32[pos], o32[pos + 1]);\n                    // A = MSB(64, B) ^ t where t = (n*j)+i\n                    (a0 = s0), (a1 = s1 ^ byteSwap$1(ctr)), (o32[pos] = s2), (o32[pos + 1] = s3);\n                }\n            }\n            (o32[0] = a0), (o32[1] = a1); // out = A || out\n        }\n        xk.fill(0);\n    },\n    decrypt(kek, out) {\n        if (out.length - 8 >= 2 ** 32)\n            throw new Error('ciphertext should be less than 4gb');\n        const xk = expandKeyDecLE(kek);\n        const chunks = out.length / 8 - 1; // first chunk is IV\n        if (chunks === 1)\n            decryptBlock(xk, out);\n        else {\n            const o32 = u32$1(out);\n            // prettier-ignore\n            let a0 = o32[0], a1 = o32[1]; // A\n            for (let j = 0, ctr = chunks * 6; j < 6; j++) {\n                for (let pos = chunks * 2; pos >= 1; pos -= 2, ctr--) {\n                    a1 ^= byteSwap$1(ctr);\n                    const { s0, s1, s2, s3 } = decrypt$4(xk, a0, a1, o32[pos], o32[pos + 1]);\n                    (a0 = s0), (a1 = s1), (o32[pos] = s2), (o32[pos + 1] = s3);\n                }\n            }\n            (o32[0] = a0), (o32[1] = a1);\n        }\n        xk.fill(0);\n    },\n};\nconst AESKW_IV = /* @__PURE__ */ new Uint8Array(8).fill(0xa6); // A6A6A6A6A6A6A6A6\n/**\n * AES-KW (key-wrap). Injects static IV into plaintext, adds counter, encrypts 6 times.\n * Reduces block size from 16 to 8 bytes.\n * For padded version, use aeskwp.\n * [RFC 3394](https://datatracker.ietf.org/doc/rfc3394/),\n * [NIST.SP.800-38F](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38F.pdf).\n */\nconst aeskw = /* @__PURE__ */ wrapCipher({ blockSize: 8 }, (kek) => ({\n    encrypt(plaintext) {\n        if (!plaintext.length || plaintext.length % 8 !== 0)\n            throw new Error('invalid plaintext length');\n        if (plaintext.length === 8)\n            throw new Error('8-byte keys not allowed in AESKW, use AESKWP instead');\n        const out = concatBytes$1(AESKW_IV, plaintext);\n        AESW.encrypt(kek, out);\n        return out;\n    },\n    decrypt(ciphertext) {\n        // ciphertext must be at least 24 bytes and a multiple of 8 bytes\n        // 24 because should have at least two block (1 iv + 2).\n        // Replace with 16 to enable '8-byte keys'\n        if (ciphertext.length % 8 !== 0 || ciphertext.length < 3 * 8)\n            throw new Error('invalid ciphertext length');\n        const out = copyBytes$1(ciphertext);\n        AESW.decrypt(kek, out);\n        if (!equalBytes(out.subarray(0, 8), AESKW_IV))\n            throw new Error('integrity check failed');\n        out.subarray(0, 8).fill(0); // ciphertext.subarray(0, 8) === IV, but we clean it anyway\n        return out.subarray(8);\n    },\n}));\n/** Unsafe low-level internal methods. May change at any time. */\nconst unsafe = {\n    expandKeyLE,\n    expandKeyDecLE,\n    encrypt: encrypt$4,\n    decrypt: decrypt$4,\n    encryptBlock,\n    decryptBlock,\n    ctrCounter,\n    ctr32,\n};\n\n/**\n * @module crypto/cipher\n * @access private\n */\nasync function getLegacyCipher(algo) {\n    switch (algo) {\n        case enums.symmetric.aes128:\n        case enums.symmetric.aes192:\n        case enums.symmetric.aes256:\n            throw new Error('Not a legacy cipher');\n        case enums.symmetric.cast5:\n        case enums.symmetric.blowfish:\n        case enums.symmetric.twofish:\n        case enums.symmetric.tripledes: {\n            const { legacyCiphers } = await Promise.resolve().then(function () { return legacy_ciphers; });\n            const algoName = enums.read(enums.symmetric, algo);\n            const cipher = legacyCiphers.get(algoName);\n            if (!cipher) {\n                throw new Error('Unsupported cipher algorithm');\n            }\n            return cipher;\n        }\n        default:\n            throw new Error('Unsupported cipher algorithm');\n    }\n}\n/**\n * Get block size for given cipher algo\n * @param {module:enums.symmetric} algo - alrogithm identifier\n */\nfunction getCipherBlockSize(algo) {\n    switch (algo) {\n        case enums.symmetric.aes128:\n        case enums.symmetric.aes192:\n        case enums.symmetric.aes256:\n        case enums.symmetric.twofish:\n            return 16;\n        case enums.symmetric.blowfish:\n        case enums.symmetric.cast5:\n        case enums.symmetric.tripledes:\n            return 8;\n        default:\n            throw new Error('Unsupported cipher');\n    }\n}\n/**\n * Get key size for given cipher algo\n * @param {module:enums.symmetric} algo - alrogithm identifier\n */\nfunction getCipherKeySize(algo) {\n    switch (algo) {\n        case enums.symmetric.aes128:\n        case enums.symmetric.blowfish:\n        case enums.symmetric.cast5:\n            return 16;\n        case enums.symmetric.aes192:\n        case enums.symmetric.tripledes:\n            return 24;\n        case enums.symmetric.aes256:\n        case enums.symmetric.twofish:\n            return 32;\n        default:\n            throw new Error('Unsupported cipher');\n    }\n}\n/**\n * Get block and key size for given cipher algo\n * @param {module:enums.symmetric} algo - alrogithm identifier\n */\nfunction getCipherParams(algo) {\n    return { keySize: getCipherKeySize(algo), blockSize: getCipherBlockSize(algo) };\n}\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview Implementation of RFC 3394 AES Key Wrap & Key Unwrap funcions\n * @see module:crypto/public_key/elliptic/ecdh\n * @module crypto/aes_kw\n * @access private\n */\nconst webCrypto$6 = util.getWebCrypto();\n/**\n * AES key wrap\n * @param {enums.symmetric.aes128|enums.symmetric.aes256|enums.symmetric.aes192} algo - AES algo\n * @param {Uint8Array} key - wrapping key\n * @param {Uint8Array} dataToWrap\n * @returns {Promise<Uint8Array>} wrapped key\n */\nasync function wrap(algo, key, dataToWrap) {\n    const { keySize } = getCipherParams(algo);\n    // sanity checks, since WebCrypto does not use the `algo` input\n    if (!util.isAES(algo) || key.length !== keySize) {\n        throw new Error('Unexpected algorithm or key size');\n    }\n    try {\n        const wrappingKey = await webCrypto$6.importKey('raw', key, { name: 'AES-KW' }, false, ['wrapKey']);\n        // Import data as HMAC key, as it has no key length requirements\n        const keyToWrap = await webCrypto$6.importKey('raw', dataToWrap, { name: 'HMAC', hash: 'SHA-256' }, true, ['sign']);\n        const wrapped = await webCrypto$6.wrapKey('raw', keyToWrap, wrappingKey, { name: 'AES-KW' });\n        return new Uint8Array(wrapped);\n    }\n    catch (err) {\n        // no 192 bit support in Chromium, which throws `OperationError`, see: https://www.chromium.org/blink/webcrypto#TOC-AES-support\n        if (err.name !== 'NotSupportedError' &&\n            !(key.length === 24 && err.name === 'OperationError')) {\n            throw err;\n        }\n        util.printDebugError('Browser did not support operation: ' + err.message);\n    }\n    return aeskw(key).encrypt(dataToWrap);\n}\n/**\n * AES key unwrap\n * @param {enums.symmetric.aes128|enums.symmetric.aes256|enums.symmetric.aes192} algo - AES algo\n * @param {Uint8Array} key - wrapping key\n * @param {Uint8Array} wrappedData\n * @returns {Promise<Uint8Array>} unwrapped data\n */\nasync function unwrap(algo, key, wrappedData) {\n    const { keySize } = getCipherParams(algo);\n    // sanity checks, since WebCrypto does not use the `algo` input\n    if (!util.isAES(algo) || key.length !== keySize) {\n        throw new Error('Unexpected algorithm or key size');\n    }\n    let wrappingKey;\n    try {\n        wrappingKey = await webCrypto$6.importKey('raw', key, { name: 'AES-KW' }, false, ['unwrapKey']);\n    }\n    catch (err) {\n        // no 192 bit support in Chromium, which throws `OperationError`, see: https://www.chromium.org/blink/webcrypto#TOC-AES-support\n        if (err.name !== 'NotSupportedError' &&\n            !(key.length === 24 && err.name === 'OperationError')) {\n            throw err;\n        }\n        util.printDebugError('Browser did not support operation: ' + err.message);\n        return aeskw(key).decrypt(wrappedData);\n    }\n    try {\n        const unwrapped = await webCrypto$6.unwrapKey('raw', wrappedData, wrappingKey, { name: 'AES-KW' }, { name: 'HMAC', hash: 'SHA-256' }, true, ['sign']);\n        return new Uint8Array(await webCrypto$6.exportKey('raw', unwrapped));\n    }\n    catch (err) {\n        if (err.name === 'OperationError') {\n            throw new Error('Key Data Integrity failed');\n        }\n        throw err;\n    }\n}\n\n/**\n * @fileoverview This module implements HKDF using either the WebCrypto API or Node.js' crypto API.\n * @module crypto/hkdf\n * @access private\n */\nasync function computeHKDF(hashAlgo, inputKey, salt, info, outLen) {\n    const webCrypto = util.getWebCrypto();\n    const hash = enums.read(enums.webHash, hashAlgo);\n    if (!hash)\n        throw new Error('Hash algo not supported with HKDF');\n    const importedKey = await webCrypto.importKey('raw', inputKey, 'HKDF', false, ['deriveBits']);\n    const bits = await webCrypto.deriveBits({ name: 'HKDF', hash, salt, info }, importedKey, outLen * 8);\n    return new Uint8Array(bits);\n}\n\n/**\n * @fileoverview Key encryption and decryption for RFC 6637 ECDH\n * @module crypto/public_key/elliptic/ecdh\n * @access private\n */\nconst HKDF_INFO = {\n    x25519: util.encodeUTF8('OpenPGP X25519'),\n    x448: util.encodeUTF8('OpenPGP X448')\n};\n/**\n * Generate ECDH key for Montgomery curves\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @returns {Promise<{ A: Uint8Array, k: Uint8Array }>}\n */\nasync function generate$2(algo) {\n    switch (algo) {\n        case enums.publicKey.x25519:\n            try {\n                const webCrypto = util.getWebCrypto();\n                const webCryptoKey = await webCrypto.generateKey('X25519', true, ['deriveKey', 'deriveBits'])\n                    .catch(err => {\n                    if (err.name === 'OperationError') { // Temporary (hopefully) fix for WebKit on Linux\n                        const newErr = new Error('Unexpected key generation issue');\n                        newErr.name = 'NotSupportedError';\n                        throw newErr;\n                    }\n                    throw err;\n                });\n                const privateKey = await webCrypto.exportKey('jwk', webCryptoKey.privateKey);\n                const publicKey = await webCrypto.exportKey('jwk', webCryptoKey.publicKey);\n                if (privateKey.x !== publicKey.x) { // Weird issue with Webkit on Linux: https://bugs.webkit.org/show_bug.cgi?id=289693\n                    const err = new Error('Unexpected mismatching public point');\n                    err.name = 'NotSupportedError';\n                    throw err;\n                }\n                return {\n                    A: new Uint8Array(b64ToUint8Array(publicKey.x)),\n                    k: b64ToUint8Array(privateKey.d)\n                };\n            }\n            catch (err) {\n                if (err.name !== 'NotSupportedError') {\n                    throw err;\n                }\n                const { default: x25519 } = await Promise.resolve().then(function () { return naclFast; });\n                // k stays in little-endian, unlike legacy ECDH over curve25519\n                const { secretKey: k, publicKey: A } = x25519.box.keyPair();\n                return { A, k };\n            }\n        case enums.publicKey.x448: {\n            const x448 = await util.getNobleCurve(enums.publicKey.x448);\n            const { secretKey: k, publicKey: A } = x448.keygen();\n            return { A, k };\n        }\n        default:\n            throw new Error('Unsupported ECDH algorithm');\n    }\n}\n/**\n* Validate ECDH parameters\n* @param {module:enums.publicKey} algo - Algorithm identifier\n* @param {Uint8Array} A - ECDH public point\n* @param {Uint8Array} k - ECDH secret scalar\n* @returns {Promise<Boolean>} Whether params are valid.\n* @async\n*/\nasync function validateParams$6(algo, A, k) {\n    switch (algo) {\n        case enums.publicKey.x25519:\n            // Validation is typically not run for ECDH, since encryption subkeys are only validated\n            // for gnu-dummy keys.\n            // So, for simplicity, we do an encrypt-decrypt round even if WebCrypto support is not available\n            try {\n                const { ephemeralPublicKey, sharedSecret } = await generateEphemeralEncryptionMaterial(algo, A);\n                const recomputedSharedSecret = await recomputeSharedSecret(algo, ephemeralPublicKey, A, k);\n                return util.equalsUint8Array(sharedSecret, recomputedSharedSecret);\n            }\n            catch {\n                return false;\n            }\n        case enums.publicKey.x448: {\n            const x448 = await util.getNobleCurve(enums.publicKey.x448);\n            /**\n             * Derive public point A' from private key\n             * and expect A == A'\n             */\n            const publicKey = x448.getPublicKey(k);\n            return util.equalsUint8Array(A, publicKey);\n        }\n        default:\n            return false;\n    }\n}\n/**\n * Wrap and encrypt a session key\n *\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @param {Uint8Array} data - session key data to be encrypted\n * @param {Uint8Array} recipientA - Recipient public key (K_B)\n * @returns {Promise<{\n *  ephemeralPublicKey: Uint8Array,\n * wrappedKey: Uint8Array\n * }>} ephemeral public key (K_A) and encrypted key\n * @async\n */\nasync function encrypt$3(algo, data, recipientA) {\n    const { ephemeralPublicKey, sharedSecret } = await generateEphemeralEncryptionMaterial(algo, recipientA);\n    const hkdfInput = util.concatUint8Array([\n        ephemeralPublicKey,\n        recipientA,\n        sharedSecret\n    ]);\n    switch (algo) {\n        case enums.publicKey.x25519: {\n            const cipherAlgo = enums.symmetric.aes128;\n            const { keySize } = getCipherParams(cipherAlgo);\n            const encryptionKey = await computeHKDF(enums.hash.sha256, hkdfInput, new Uint8Array(), HKDF_INFO.x25519, keySize);\n            const wrappedKey = await wrap(cipherAlgo, encryptionKey, data);\n            return { ephemeralPublicKey, wrappedKey };\n        }\n        case enums.publicKey.x448: {\n            const cipherAlgo = enums.symmetric.aes256;\n            const { keySize } = getCipherParams(enums.symmetric.aes256);\n            const encryptionKey = await computeHKDF(enums.hash.sha512, hkdfInput, new Uint8Array(), HKDF_INFO.x448, keySize);\n            const wrappedKey = await wrap(cipherAlgo, encryptionKey, data);\n            return { ephemeralPublicKey, wrappedKey };\n        }\n        default:\n            throw new Error('Unsupported ECDH algorithm');\n    }\n}\n/**\n * Decrypt and unwrap the session key\n *\n * @param {module:enums.publicKey} algo - Algorithm identifier\n * @param {Uint8Array} ephemeralPublicKey - (K_A)\n * @param {Uint8Array} wrappedKey,\n * @param {Uint8Array} A - Recipient public key (K_b), needed for KDF\n * @param {Uint8Array} k - Recipient secret key (b)\n * @returns {Promise<Uint8Array>} decrypted session key data\n * @async\n */\nasync function decrypt$3(algo, ephemeralPublicKey, wrappedKey, A, k) {\n    const sharedSecret = await recomputeSharedSecret(algo, ephemeralPublicKey, A, k);\n    const hkdfInput = util.concatUint8Array([\n        ephemeralPublicKey,\n        A,\n        sharedSecret\n    ]);\n    switch (algo) {\n        case enums.publicKey.x25519: {\n            const cipherAlgo = enums.symmetric.aes128;\n            const { keySize } = getCipherParams(cipherAlgo);\n            const encryptionKey = await computeHKDF(enums.hash.sha256, hkdfInput, new Uint8Array(), HKDF_INFO.x25519, keySize);\n            return unwrap(cipherAlgo, encryptionKey, wrappedKey);\n        }\n        case enums.publicKey.x448: {\n            const cipherAlgo = enums.symmetric.aes256;\n            const { keySize } = getCipherParams(enums.symmetric.aes256);\n            const encryptionKey = await computeHKDF(enums.hash.sha512, hkdfInput, new Uint8Array(), HKDF_INFO.x448, keySize);\n            return unwrap(cipherAlgo, encryptionKey, wrappedKey);\n        }\n        default:\n            throw new Error('Unsupported ECDH algorithm');\n    }\n}\nfunction getPayloadSize(algo) {\n    switch (algo) {\n        case enums.publicKey.x25519:\n            return 32;\n        case enums.publicKey.x448:\n            return 56;\n        default:\n            throw new Error('Unsupported ECDH algorithm');\n    }\n}\n/**\n * Generate shared secret and ephemeral public key for encryption\n * @returns {Promise<{ ephemeralPublicKey: Uint8Array, sharedSecret: Uint8Array }>} ephemeral public key (K_A) and shared secret\n * @async\n */\nasync function generateEphemeralEncryptionMaterial(algo, recipientA) {\n    switch (algo) {\n        case enums.publicKey.x25519:\n            try {\n                const webCrypto = util.getWebCrypto();\n                const ephemeralKeyPair = await webCrypto.generateKey('X25519', true, ['deriveKey', 'deriveBits'])\n                    .catch(err => {\n                    if (err.name === 'OperationError') { // Temporary (hopefully) fix for WebKit on Linux\n                        const newErr = new Error('Unexpected key generation issue');\n                        newErr.name = 'NotSupportedError';\n                        throw newErr;\n                    }\n                    throw err;\n                });\n                const ephemeralPublicKeyJwt = await webCrypto.exportKey('jwk', ephemeralKeyPair.publicKey);\n                const ephemeralPrivateKeyJwt = await webCrypto.exportKey('jwk', ephemeralKeyPair.privateKey);\n                if (ephemeralPrivateKeyJwt.x !== ephemeralPublicKeyJwt.x) { // Weird issue with Webkit on Linux: https://bugs.webkit.org/show_bug.cgi?id=289693\n                    const err = new Error('Unexpected mismatching public point');\n                    err.name = 'NotSupportedError';\n                    throw err;\n                }\n                const jwk = publicKeyToJWK(algo, recipientA);\n                const recipientPublicKey = await webCrypto.importKey('jwk', jwk, 'X25519', false, []);\n                const sharedSecretBuffer = await webCrypto.deriveBits({ name: 'X25519', public: recipientPublicKey }, ephemeralKeyPair.privateKey, getPayloadSize(algo) * 8 // in bits\n                );\n                return {\n                    sharedSecret: new Uint8Array(sharedSecretBuffer),\n                    ephemeralPublicKey: new Uint8Array(b64ToUint8Array(ephemeralPublicKeyJwt.x))\n                };\n            }\n            catch (err) {\n                if (err.name !== 'NotSupportedError') {\n                    throw err;\n                }\n                const { default: x25519 } = await Promise.resolve().then(function () { return naclFast; });\n                const { secretKey: ephemeralSecretKey, publicKey: ephemeralPublicKey } = x25519.box.keyPair();\n                const sharedSecret = x25519.scalarMult(ephemeralSecretKey, recipientA);\n                assertNonZeroArray(sharedSecret);\n                return { ephemeralPublicKey, sharedSecret };\n            }\n        case enums.publicKey.x448: {\n            const x448 = await util.getNobleCurve(enums.publicKey.x448);\n            const { secretKey: ephemeralSecretKey, publicKey: ephemeralPublicKey } = x448.keygen();\n            const sharedSecret = x448.getSharedSecret(ephemeralSecretKey, recipientA);\n            assertNonZeroArray(sharedSecret);\n            return { ephemeralPublicKey, sharedSecret };\n        }\n        default:\n            throw new Error('Unsupported ECDH algorithm');\n    }\n}\nasync function recomputeSharedSecret(algo, ephemeralPublicKey, A, k) {\n    switch (algo) {\n        case enums.publicKey.x25519:\n            try {\n                const webCrypto = util.getWebCrypto();\n                const privateKeyJWK = privateKeyToJWK(algo, A, k);\n                const ephemeralPublicKeyJWK = publicKeyToJWK(algo, ephemeralPublicKey);\n                const privateKey = await webCrypto.importKey('jwk', privateKeyJWK, 'X25519', false, ['deriveKey', 'deriveBits']);\n                const ephemeralPublicKeyReference = await webCrypto.importKey('jwk', ephemeralPublicKeyJWK, 'X25519', false, []);\n                const sharedSecretBuffer = await webCrypto.deriveBits({ name: 'X25519', public: ephemeralPublicKeyReference }, privateKey, getPayloadSize(algo) * 8 // in bits\n                );\n                return new Uint8Array(sharedSecretBuffer);\n            }\n            catch (err) {\n                if (err.name !== 'NotSupportedError') {\n                    throw err;\n                }\n                const { default: x25519 } = await Promise.resolve().then(function () { return naclFast; });\n                const sharedSecret = x25519.scalarMult(k, ephemeralPublicKey);\n                assertNonZeroArray(sharedSecret);\n                return sharedSecret;\n            }\n        case enums.publicKey.x448: {\n            const x448 = await util.getNobleCurve(enums.publicKey.x448);\n            const sharedSecret = x448.getSharedSecret(k, ephemeralPublicKey);\n            assertNonZeroArray(sharedSecret);\n            return sharedSecret;\n        }\n        default:\n            throw new Error('Unsupported ECDH algorithm');\n    }\n}\n/**\n * x25519 and x448 produce an all-zero value when given as input a point with small order.\n * This does not lead to a security issue in the context of ECDH, but it is still unexpected,\n * hence we throw.\n * @param {Uint8Array} sharedSecret\n */\nfunction assertNonZeroArray(sharedSecret) {\n    let acc = 0;\n    for (let i = 0; i < sharedSecret.length; i++) {\n        acc |= sharedSecret[i];\n    }\n    if (acc === 0) {\n        throw new Error('Unexpected low order point');\n    }\n}\nfunction publicKeyToJWK(algo, publicKey) {\n    switch (algo) {\n        case enums.publicKey.x25519: {\n            const jwk = {\n                kty: 'OKP',\n                crv: 'X25519',\n                x: uint8ArrayToB64(publicKey),\n                ext: true\n            };\n            return jwk;\n        }\n        default:\n            throw new Error('Unsupported ECDH algorithm');\n    }\n}\nfunction privateKeyToJWK(algo, publicKey, privateKey) {\n    switch (algo) {\n        case enums.publicKey.x25519: {\n            const jwk = publicKeyToJWK(algo, publicKey);\n            jwk.d = uint8ArrayToB64(privateKey);\n            return jwk;\n        }\n        default:\n            throw new Error('Unsupported ECDH algorithm');\n    }\n}\n\nvar ecdh_x = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  decrypt: decrypt$3,\n  encrypt: encrypt$3,\n  generate: generate$2,\n  generateEphemeralEncryptionMaterial: generateEphemeralEncryptionMaterial,\n  getPayloadSize: getPayloadSize,\n  recomputeSharedSecret: recomputeSharedSecret,\n  validateParams: validateParams$6\n});\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview Wrapper of an instance of an Elliptic Curve\n * @module crypto/public_key/elliptic/curve\n * @access private\n */\nconst webCrypto$5 = util.getWebCrypto();\nconst nodeCrypto$5 = util.getNodeCrypto();\nconst webCurves = {\n    [enums.curve.nistP256]: 'P-256',\n    [enums.curve.nistP384]: 'P-384',\n    [enums.curve.nistP521]: 'P-521'\n};\nconst knownCurves = nodeCrypto$5 ? nodeCrypto$5.getCurves() : [];\nconst nodeCurves = nodeCrypto$5 ? {\n    [enums.curve.secp256k1]: knownCurves.includes('secp256k1') ? 'secp256k1' : undefined,\n    [enums.curve.nistP256]: knownCurves.includes('prime256v1') ? 'prime256v1' : undefined,\n    [enums.curve.nistP384]: knownCurves.includes('secp384r1') ? 'secp384r1' : undefined,\n    [enums.curve.nistP521]: knownCurves.includes('secp521r1') ? 'secp521r1' : undefined,\n    [enums.curve.ed25519Legacy]: knownCurves.includes('ED25519') ? 'ED25519' : undefined,\n    [enums.curve.curve25519Legacy]: knownCurves.includes('X25519') ? 'X25519' : undefined,\n    [enums.curve.brainpoolP256r1]: knownCurves.includes('brainpoolP256r1') ? 'brainpoolP256r1' : undefined,\n    [enums.curve.brainpoolP384r1]: knownCurves.includes('brainpoolP384r1') ? 'brainpoolP384r1' : undefined,\n    [enums.curve.brainpoolP512r1]: knownCurves.includes('brainpoolP512r1') ? 'brainpoolP512r1' : undefined\n} : {};\nconst curves = {\n    [enums.curve.nistP256]: {\n        oid: [0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07],\n        keyType: enums.publicKey.ecdsa,\n        hash: enums.hash.sha256,\n        cipher: enums.symmetric.aes128,\n        node: nodeCurves[enums.curve.nistP256],\n        web: webCurves[enums.curve.nistP256],\n        payloadSize: 32,\n        sharedSize: 256,\n        wireFormatLeadingByte: 0x04\n    },\n    [enums.curve.nistP384]: {\n        oid: [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x22],\n        keyType: enums.publicKey.ecdsa,\n        hash: enums.hash.sha384,\n        cipher: enums.symmetric.aes192,\n        node: nodeCurves[enums.curve.nistP384],\n        web: webCurves[enums.curve.nistP384],\n        payloadSize: 48,\n        sharedSize: 384,\n        wireFormatLeadingByte: 0x04\n    },\n    [enums.curve.nistP521]: {\n        oid: [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x23],\n        keyType: enums.publicKey.ecdsa,\n        hash: enums.hash.sha512,\n        cipher: enums.symmetric.aes256,\n        node: nodeCurves[enums.curve.nistP521],\n        web: webCurves[enums.curve.nistP521],\n        payloadSize: 66,\n        sharedSize: 528,\n        wireFormatLeadingByte: 0x04\n    },\n    [enums.curve.secp256k1]: {\n        oid: [0x06, 0x05, 0x2B, 0x81, 0x04, 0x00, 0x0A],\n        keyType: enums.publicKey.ecdsa,\n        hash: enums.hash.sha256,\n        cipher: enums.symmetric.aes128,\n        node: nodeCurves[enums.curve.secp256k1],\n        payloadSize: 32,\n        wireFormatLeadingByte: 0x04\n    },\n    [enums.curve.ed25519Legacy]: {\n        oid: [0x06, 0x09, 0x2B, 0x06, 0x01, 0x04, 0x01, 0xDA, 0x47, 0x0F, 0x01],\n        keyType: enums.publicKey.eddsaLegacy,\n        hash: enums.hash.sha512,\n        node: false, // nodeCurves.ed25519 TODO\n        payloadSize: 32,\n        wireFormatLeadingByte: 0x40\n    },\n    [enums.curve.curve25519Legacy]: {\n        oid: [0x06, 0x0A, 0x2B, 0x06, 0x01, 0x04, 0x01, 0x97, 0x55, 0x01, 0x05, 0x01],\n        keyType: enums.publicKey.ecdh,\n        hash: enums.hash.sha256,\n        cipher: enums.symmetric.aes128,\n        node: false, // nodeCurves.curve25519 TODO\n        payloadSize: 32,\n        wireFormatLeadingByte: 0x40\n    },\n    [enums.curve.brainpoolP256r1]: {\n        oid: [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x07],\n        keyType: enums.publicKey.ecdsa,\n        hash: enums.hash.sha256,\n        cipher: enums.symmetric.aes128,\n        node: nodeCurves[enums.curve.brainpoolP256r1],\n        payloadSize: 32,\n        wireFormatLeadingByte: 0x04\n    },\n    [enums.curve.brainpoolP384r1]: {\n        oid: [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0B],\n        keyType: enums.publicKey.ecdsa,\n        hash: enums.hash.sha384,\n        cipher: enums.symmetric.aes192,\n        node: nodeCurves[enums.curve.brainpoolP384r1],\n        payloadSize: 48,\n        wireFormatLeadingByte: 0x04\n    },\n    [enums.curve.brainpoolP512r1]: {\n        oid: [0x06, 0x09, 0x2B, 0x24, 0x03, 0x03, 0x02, 0x08, 0x01, 0x01, 0x0D],\n        keyType: enums.publicKey.ecdsa,\n        hash: enums.hash.sha512,\n        cipher: enums.symmetric.aes256,\n        node: nodeCurves[enums.curve.brainpoolP512r1],\n        payloadSize: 64,\n        wireFormatLeadingByte: 0x04\n    }\n};\nclass CurveWithOID {\n    constructor(oidOrName) {\n        try {\n            this.name = oidOrName instanceof OID ?\n                oidOrName.getName() :\n                enums.write(enums.curve, oidOrName);\n        }\n        catch {\n            throw new UnsupportedError('Unknown curve');\n        }\n        const params = curves[this.name];\n        this.keyType = params.keyType;\n        this.oid = params.oid;\n        this.hash = params.hash;\n        this.cipher = params.cipher;\n        this.node = params.node;\n        this.web = params.web;\n        this.payloadSize = params.payloadSize;\n        this.sharedSize = params.sharedSize;\n        this.wireFormatLeadingByte = params.wireFormatLeadingByte;\n        if (this.web && util.getWebCrypto()) {\n            this.type = 'web';\n        }\n        else if (this.node && util.getNodeCrypto()) {\n            this.type = 'node';\n        }\n        else if (this.name === enums.curve.curve25519Legacy) {\n            this.type = 'curve25519Legacy';\n        }\n        else if (this.name === enums.curve.ed25519Legacy) {\n            this.type = 'ed25519Legacy';\n        }\n    }\n    async genKeyPair() {\n        switch (this.type) {\n            case 'web':\n                try {\n                    return await webGenKeyPair(this.name, this.wireFormatLeadingByte);\n                }\n                catch (err) {\n                    util.printDebugError('Browser did not support generating ec key ' + err.message);\n                    return jsGenKeyPair(this.name);\n                }\n            case 'node':\n                return nodeGenKeyPair(this.name);\n            case 'curve25519Legacy': {\n                // the private key must be stored in big endian and already clamped: https://www.ietf.org/archive/id/draft-ietf-openpgp-crypto-refresh-13.html#section-5.5.5.6.1.1-3\n                const { k, A } = await generate$2(enums.publicKey.x25519);\n                const privateKey = k.slice().reverse();\n                privateKey[0] = (privateKey[0] & 127) | 64;\n                privateKey[31] &= 248;\n                const publicKey = util.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]), A]);\n                return { publicKey, privateKey };\n            }\n            case 'ed25519Legacy': {\n                const { seed: privateKey, A } = await generate$3(enums.publicKey.ed25519);\n                const publicKey = util.concatUint8Array([new Uint8Array([this.wireFormatLeadingByte]), A]);\n                return { publicKey, privateKey };\n            }\n            default:\n                return jsGenKeyPair(this.name);\n        }\n    }\n}\nasync function generate$1(curveName) {\n    const curve = new CurveWithOID(curveName);\n    const { oid, hash, cipher } = curve;\n    const keyPair = await curve.genKeyPair();\n    return {\n        oid,\n        Q: keyPair.publicKey,\n        secret: util.leftPad(keyPair.privateKey, curve.payloadSize),\n        hash,\n        cipher\n    };\n}\n/**\n * Get preferred hash algo to use with the given curve\n * @param {module:type/oid} oid - curve oid\n * @returns {enums.hash} hash algorithm\n */\nfunction getPreferredHashAlgo$1(oid) {\n    return curves[oid.getName()].hash;\n}\n/**\n * Validate ECDH and ECDSA parameters\n * Not suitable for EdDSA (different secret key format)\n * @param {module:enums.publicKey} algo - EC algorithm, to filter supported curves\n * @param {module:type/oid} oid - EC object identifier\n * @param {Uint8Array} Q - EC public point\n * @param {Uint8Array} d - EC secret scalar\n * @returns {Promise<Boolean>} Whether params are valid.\n * @async\n */\nasync function validateStandardParams(algo, oid, Q, d) {\n    const supportedCurves = {\n        [enums.curve.nistP256]: true,\n        [enums.curve.nistP384]: true,\n        [enums.curve.nistP521]: true,\n        [enums.curve.secp256k1]: true,\n        [enums.curve.curve25519Legacy]: algo === enums.publicKey.ecdh,\n        [enums.curve.brainpoolP256r1]: true,\n        [enums.curve.brainpoolP384r1]: true,\n        [enums.curve.brainpoolP512r1]: true\n    };\n    // Check whether the given curve is supported\n    const curveName = oid.getName();\n    if (!supportedCurves[curveName]) {\n        return false;\n    }\n    if (curveName === enums.curve.curve25519Legacy) {\n        const dLittleEndian = d.slice().reverse();\n        // First byte is relevant for encoding purposes only\n        if (Q.length < 1 || Q[0] !== 0x40) {\n            return false;\n        }\n        return validateParams$6(enums.publicKey.x25519, Q.subarray(1), dLittleEndian);\n    }\n    const nobleCurve = await util.getNobleCurve(enums.publicKey.ecdsa, curveName); // excluding curve25519Legacy, ecdh and ecdsa use the same curves\n    /*\n     * Re-derive public point Q' = dG from private key\n     * Expect Q == Q'\n     */\n    const dG = nobleCurve.getPublicKey(d, false);\n    if (!util.equalsUint8Array(dG, Q)) {\n        return false;\n    }\n    return true;\n}\n/**\n * Check whether the public point has a valid encoding.\n * NB: this function does not check e.g. whether the point belongs to the curve.\n */\nfunction checkPublicPointEnconding(curve, V) {\n    const { payloadSize, wireFormatLeadingByte, name: curveName } = curve;\n    const pointSize = (curveName === enums.curve.curve25519Legacy || curveName === enums.curve.ed25519Legacy) ? payloadSize : payloadSize * 2;\n    if (V[0] !== wireFormatLeadingByte || V.length !== pointSize + 1) {\n        throw new Error('Invalid point encoding');\n    }\n}\n//////////////////////////\n//                      //\n//   Helper functions   //\n//                      //\n//////////////////////////\nasync function jsGenKeyPair(name) {\n    const nobleCurve = await util.getNobleCurve(enums.publicKey.ecdsa, name); // excluding curve25519Legacy, ecdh and ecdsa use the same curves\n    const { secretKey: privateKey } = nobleCurve.keygen();\n    const publicKey = nobleCurve.getPublicKey(privateKey, false);\n    return { publicKey, privateKey };\n}\nasync function webGenKeyPair(name, wireFormatLeadingByte) {\n    // Note: keys generated with ECDSA and ECDH are structurally equivalent\n    const webCryptoKey = await webCrypto$5.generateKey({ name: 'ECDSA', namedCurve: webCurves[name] }, true, ['sign', 'verify']);\n    const privateKey = await webCrypto$5.exportKey('jwk', webCryptoKey.privateKey);\n    const publicKey = await webCrypto$5.exportKey('jwk', webCryptoKey.publicKey);\n    return {\n        publicKey: jwkToRawPublic(publicKey, wireFormatLeadingByte),\n        privateKey: b64ToUint8Array(privateKey.d)\n    };\n}\nfunction nodeGenKeyPair(name) {\n    // Note: ECDSA and ECDH key generation is structurally equivalent\n    const ecdh = nodeCrypto$5.createECDH(nodeCurves[name]);\n    ecdh.generateKeys();\n    return {\n        publicKey: new Uint8Array(ecdh.getPublicKey()),\n        privateKey: new Uint8Array(ecdh.getPrivateKey())\n    };\n}\n//////////////////////////\n//                      //\n//   Helper functions   //\n//                      //\n//////////////////////////\n/**\n * @param {JsonWebKey} jwk - key for conversion\n *\n * @returns {Uint8Array} Raw public key.\n */\nfunction jwkToRawPublic(jwk, wireFormatLeadingByte) {\n    const bufX = b64ToUint8Array(jwk.x);\n    const bufY = b64ToUint8Array(jwk.y);\n    const publicKey = new Uint8Array(bufX.length + bufY.length + 1);\n    publicKey[0] = wireFormatLeadingByte;\n    publicKey.set(bufX, 1);\n    publicKey.set(bufY, bufX.length + 1);\n    return publicKey;\n}\n/**\n * @param {Integer} payloadSize - ec payload size\n * @param {String} name - curve name\n * @param {Uint8Array} publicKey - public key\n *\n * @returns {JsonWebKey} Public key in jwk format.\n */\nfunction rawPublicToJWK(payloadSize, name, publicKey) {\n    const len = payloadSize;\n    const bufX = publicKey.slice(1, len + 1);\n    const bufY = publicKey.slice(len + 1, len * 2 + 1);\n    // https://www.rfc-editor.org/rfc/rfc7518.txt\n    const jwk = {\n        kty: 'EC',\n        crv: name,\n        x: uint8ArrayToB64(bufX),\n        y: uint8ArrayToB64(bufY),\n        ext: true\n    };\n    return jwk;\n}\n/**\n * @param {Integer} payloadSize - ec payload size\n * @param {String} name - curve name\n * @param {Uint8Array} publicKey - public key\n * @param {Uint8Array} privateKey - private key\n *\n * @returns {JsonWebKey} Private key in jwk format.\n */\nfunction privateToJWK(payloadSize, name, publicKey, privateKey) {\n    const jwk = rawPublicToJWK(payloadSize, name, publicKey);\n    jwk.d = uint8ArrayToB64(privateKey);\n    return jwk;\n}\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview Implementation of ECDSA following RFC6637 for Openpgpjs\n * @module crypto/public_key/elliptic/ecdsa\n * @access private\n */\nconst webCrypto$4 = util.getWebCrypto();\nconst nodeCrypto$4 = util.getNodeCrypto();\n/**\n * Sign a message using the provided key\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {module:enums.hash} hashAlgo - Hash algorithm used to sign\n * @param {Uint8Array} message - Message to sign\n * @param {Uint8Array} publicKey - Public key\n * @param {Uint8Array} privateKey - Private key used to sign the message\n * @param {Uint8Array} hashed - The hashed message\n * @returns {Promise<{\n *   r: Uint8Array,\n *   s: Uint8Array\n * }>} Signature of the message\n * @async\n */\nasync function sign$4(oid, hashAlgo, message, publicKey, privateKey, hashed) {\n    const curve = new CurveWithOID(oid);\n    checkPublicPointEnconding(curve, publicKey);\n    if (message && !util.isStream(message)) {\n        const keyPair = { publicKey, privateKey };\n        switch (curve.type) {\n            case 'web':\n                // If browser doesn't support a curve, we'll catch it\n                try {\n                    // Need to await to make sure browser succeeds\n                    return await webSign(curve, hashAlgo, message, keyPair);\n                }\n                catch (err) {\n                    // We do not fallback if the error is related to key integrity\n                    // Unfortunaley Safari does not support nistP521 and throws a DataError when using it\n                    // So we need to always fallback for that curve\n                    if (curve.name !== 'nistP521' && (err.name === 'DataError' || err.name === 'OperationError')) {\n                        throw err;\n                    }\n                    util.printDebugError('Browser did not support signing: ' + err.message);\n                }\n                break;\n            case 'node':\n                return nodeSign(curve, hashAlgo, message, privateKey);\n        }\n    }\n    const nobleCurve = await util.getNobleCurve(enums.publicKey.ecdsa, curve.name);\n    // lowS: non-canonical sig: https://stackoverflow.com/questions/74338846/ecdsa-signature-verification-mismatch\n    const signature = nobleCurve.sign(hashed, privateKey, { lowS: false });\n    return {\n        r: bigIntToUint8Array(signature.r, 'be', curve.payloadSize),\n        s: bigIntToUint8Array(signature.s, 'be', curve.payloadSize)\n    };\n}\n/**\n * Verifies if a signature is valid for a message\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {module:enums.hash} hashAlgo - Hash algorithm used in the signature\n * @param  {{r: Uint8Array,\n             s: Uint8Array}}   signature Signature to verify\n * @param {Uint8Array} message - Message to verify\n * @param {Uint8Array} publicKey - Public key used to verify the message\n * @param {Uint8Array} hashed - The hashed message\n * @returns {Promise<Boolean>}\n * @async\n */\nasync function verify$4(oid, hashAlgo, signature, message, publicKey, hashed) {\n    const curve = new CurveWithOID(oid);\n    checkPublicPointEnconding(curve, publicKey);\n    // See https://github.com/openpgpjs/openpgpjs/pull/948.\n    // NB: the impact was more likely limited to Brainpool curves, since thanks\n    // to WebCrypto availability, NIST curve should not have been affected.\n    // Similarly, secp256k1 should have been used rarely enough.\n    // However, we implement the fix for all curves, since it's only needed in case of\n    // verification failure, which is unexpected, hence a minor slowdown is acceptable.\n    const tryFallbackVerificationForOldBug = async () => (hashed[0] === 0 ?\n        jsVerify(curve, signature, hashed.subarray(1), publicKey) :\n        false);\n    if (message && !util.isStream(message)) {\n        switch (curve.type) {\n            case 'web':\n                try {\n                    // Need to await to make sure browser succeeds\n                    const verified = await webVerify(curve, hashAlgo, signature, message, publicKey);\n                    return verified || tryFallbackVerificationForOldBug();\n                }\n                catch (err) {\n                    // We do not fallback if the error is related to key integrity\n                    // Unfortunately Safari does not support nistP521 and throws a DataError when using it\n                    // So we need to always fallback for that curve\n                    if (curve.name !== 'nistP521' && (err.name === 'DataError' || err.name === 'OperationError')) {\n                        throw err;\n                    }\n                    util.printDebugError('Browser did not support verifying: ' + err.message);\n                }\n                break;\n            case 'node': {\n                const verified = nodeVerify(curve, hashAlgo, signature, message, publicKey);\n                return verified || tryFallbackVerificationForOldBug();\n            }\n        }\n    }\n    const verified = await jsVerify(curve, signature, hashed, publicKey);\n    return verified || tryFallbackVerificationForOldBug();\n}\n/**\n * Validate ECDSA parameters\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {Uint8Array} Q - ECDSA public point\n * @param {Uint8Array} d - ECDSA secret scalar\n * @returns {Promise<Boolean>} Whether params are valid.\n * @async\n */\nasync function validateParams$5(oid, Q, d) {\n    const curve = new CurveWithOID(oid);\n    // Reject curves x25519 and ed25519\n    if (curve.keyType !== enums.publicKey.ecdsa) {\n        return false;\n    }\n    // To speed up the validation, we try to use node- or webcrypto when available\n    // and sign + verify a random message\n    switch (curve.type) {\n        case 'web':\n        case 'node': {\n            const message = getRandomBytes(8);\n            const hashAlgo = enums.hash.sha256;\n            const hashed = await computeDigest(hashAlgo, message);\n            try {\n                const signature = await sign$4(oid, hashAlgo, message, Q, d, hashed);\n                return await verify$4(oid, hashAlgo, signature, message, Q, hashed);\n            }\n            catch {\n                return false;\n            }\n        }\n        default:\n            return validateStandardParams(enums.publicKey.ecdsa, oid, Q, d);\n    }\n}\n//////////////////////////\n//                      //\n//   Helper functions   //\n//                      //\n//////////////////////////\n/**\n * Fallback javascript implementation of ECDSA verification.\n * To be used if no native implementation is available for the given curve/operation.\n */\nasync function jsVerify(curve, signature, hashed, publicKey) {\n    const nobleCurve = await util.getNobleCurve(enums.publicKey.ecdsa, curve.name);\n    // lowS: non-canonical sig: https://stackoverflow.com/questions/74338846/ecdsa-signature-verification-mismatch\n    return nobleCurve.verify(util.concatUint8Array([signature.r, signature.s]), hashed, publicKey, { lowS: false });\n}\nasync function webSign(curve, hashAlgo, message, keyPair) {\n    const len = curve.payloadSize;\n    const jwk = privateToJWK(curve.payloadSize, webCurves[curve.name], keyPair.publicKey, keyPair.privateKey);\n    const key = await webCrypto$4.importKey('jwk', jwk, {\n        'name': 'ECDSA',\n        'namedCurve': webCurves[curve.name],\n        'hash': { name: enums.read(enums.webHash, curve.hash) }\n    }, false, ['sign']);\n    const signature = new Uint8Array(await webCrypto$4.sign({\n        'name': 'ECDSA',\n        'namedCurve': webCurves[curve.name],\n        'hash': { name: enums.read(enums.webHash, hashAlgo) }\n    }, key, message));\n    return {\n        r: signature.slice(0, len),\n        s: signature.slice(len, len << 1)\n    };\n}\nasync function webVerify(curve, hashAlgo, { r, s }, message, publicKey) {\n    const jwk = rawPublicToJWK(curve.payloadSize, webCurves[curve.name], publicKey);\n    const key = await webCrypto$4.importKey('jwk', jwk, {\n        'name': 'ECDSA',\n        'namedCurve': webCurves[curve.name],\n        'hash': { name: enums.read(enums.webHash, curve.hash) }\n    }, false, ['verify']);\n    const signature = util.concatUint8Array([r, s]).buffer;\n    return webCrypto$4.verify({\n        'name': 'ECDSA',\n        'namedCurve': webCurves[curve.name],\n        'hash': { name: enums.read(enums.webHash, hashAlgo) }\n    }, key, signature, message);\n}\nfunction nodeSign(curve, hashAlgo, message, privateKey) {\n    // JWT encoding cannot be used for now, as Brainpool curves are not supported\n    const ecKeyUtils = util.nodeRequire('eckey-utils');\n    const nodeBuffer = util.getNodeBuffer();\n    const { privateKey: derPrivateKey } = ecKeyUtils.generateDer({\n        curveName: nodeCurves[curve.name],\n        privateKey: nodeBuffer.from(privateKey)\n    });\n    const sign = nodeCrypto$4.createSign(enums.read(enums.hash, hashAlgo));\n    sign.write(message);\n    sign.end();\n    const signature = new Uint8Array(sign.sign({ key: derPrivateKey, format: 'der', type: 'sec1', dsaEncoding: 'ieee-p1363' }));\n    const len = curve.payloadSize;\n    return {\n        r: signature.subarray(0, len),\n        s: signature.subarray(len, len << 1)\n    };\n}\nfunction nodeVerify(curve, hashAlgo, { r, s }, message, publicKey) {\n    const ecKeyUtils = util.nodeRequire('eckey-utils');\n    const nodeBuffer = util.getNodeBuffer();\n    const { publicKey: derPublicKey } = ecKeyUtils.generateDer({\n        curveName: nodeCurves[curve.name],\n        publicKey: nodeBuffer.from(publicKey)\n    });\n    const verify = nodeCrypto$4.createVerify(enums.read(enums.hash, hashAlgo));\n    verify.write(message);\n    verify.end();\n    const signature = util.concatUint8Array([r, s]);\n    try {\n        return verify.verify({ key: derPublicKey, format: 'der', type: 'spki', dsaEncoding: 'ieee-p1363' }, signature);\n    }\n    catch {\n        return false;\n    }\n}\n\nvar ecdsa$1 = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  sign: sign$4,\n  validateParams: validateParams$5,\n  verify: verify$4\n});\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2018 Proton Technologies AG\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview Implementation of legacy EdDSA following RFC4880bis-03 for OpenPGP.\n * This key type has been deprecated by the crypto-refresh RFC.\n * @module crypto/public_key/elliptic/eddsa_legacy\n * @access private\n */\n/**\n * Sign a message using the provided legacy EdDSA key\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {module:enums.hash} hashAlgo - Hash algorithm used to sign (must be sha256 or stronger)\n * @param {Uint8Array} message - Message to sign\n * @param {Uint8Array} publicKey - Public key\n * @param {Uint8Array} privateKey - Private key used to sign the message\n * @param {Uint8Array} hashed - The hashed message\n * @returns {Promise<{\n *   r: Uint8Array,\n *   s: Uint8Array\n * }>} Signature of the message\n * @async\n */\nasync function sign$3(oid, hashAlgo, message, publicKey, privateKey, hashed) {\n    const curve = new CurveWithOID(oid);\n    checkPublicPointEnconding(curve, publicKey);\n    if (getHashByteLength(hashAlgo) < getHashByteLength(enums.hash.sha256)) {\n        // Enforce digest sizes, since the constraint was already present in RFC4880bis:\n        // see https://tools.ietf.org/id/draft-ietf-openpgp-rfc4880bis-10.html#section-15-7.2\n        // and https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.3-3\n        throw new Error('Hash algorithm too weak for EdDSA.');\n    }\n    const { RS: signature } = await sign$5(enums.publicKey.ed25519, hashAlgo, message, publicKey.subarray(1), privateKey, hashed);\n    // EdDSA signature params are returned in little-endian format\n    return {\n        r: signature.subarray(0, 32),\n        s: signature.subarray(32)\n    };\n}\n/**\n * Verifies if a legacy EdDSA signature is valid for a message\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {module:enums.hash} hashAlgo - Hash algorithm used in the signature\n * @param  {{r: Uint8Array,\n             s: Uint8Array}}   signature Signature to verify the message\n * @param {Uint8Array} m - Message to verify\n * @param {Uint8Array} publicKey - Public key used to verify the message\n * @param {Uint8Array} hashed - The hashed message\n * @returns {Boolean}\n * @async\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function verify$3(oid, hashAlgo, { r, s }, m, publicKey, hashed) {\n    const curve = new CurveWithOID(oid);\n    checkPublicPointEnconding(curve, publicKey);\n    if (getHashByteLength(hashAlgo) < getHashByteLength(enums.hash.sha256)) {\n        // Enforce digest sizes, since the constraint was already present in RFC4880bis:\n        // see https://tools.ietf.org/id/draft-ietf-openpgp-rfc4880bis-10.html#section-15-7.2\n        // and https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.3-3\n        throw new Error('Hash algorithm too weak for EdDSA.');\n    }\n    const RS = util.concatUint8Array([r, s]);\n    return verify$5(enums.publicKey.ed25519, hashAlgo, { RS }, m, publicKey.subarray(1), hashed);\n}\n/**\n * Validate legacy EdDSA parameters\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {Uint8Array} Q - EdDSA public point\n * @param {Uint8Array} k - EdDSA secret seed\n * @returns {Promise<Boolean>} Whether params are valid.\n * @async\n */\nasync function validateParams$4(oid, Q, k) {\n    // Check whether the given curve is supported\n    if (oid.getName() !== enums.curve.ed25519Legacy) {\n        return false;\n    }\n    // First byte is relevant for encoding purposes only\n    if (Q.length < 1 || Q[0] !== 0x40) {\n        return false;\n    }\n    return validateParams$7(enums.publicKey.ed25519, Q.subarray(1), k);\n}\n\nvar eddsa_legacy = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  sign: sign$3,\n  validateParams: validateParams$4,\n  verify: verify$3\n});\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview Functions to add and remove PKCS5 padding\n * @see PublicKeyEncryptedSessionKeyPacket\n * @module crypto/pkcs5\n * @access private\n */\n/**\n * Add pkcs5 padding to a message\n * @param {Uint8Array} message - message to pad\n * @returns {Uint8Array} Padded message.\n */\nfunction encode(message) {\n    const c = 8 - (message.length % 8);\n    const padded = new Uint8Array(message.length + c).fill(c);\n    padded.set(message);\n    return padded;\n}\n/**\n * Remove pkcs5 padding from a message\n * @param {Uint8Array} message - message to remove padding from\n * @returns {Uint8Array} Message without padding.\n */\nfunction decode(message) {\n    const len = message.length;\n    if (len > 0) {\n        const c = message[len - 1];\n        if (c >= 1) {\n            const provided = message.subarray(len - c);\n            const computed = new Uint8Array(c).fill(c);\n            if (util.equalsUint8Array(provided, computed)) {\n                return message.subarray(0, len - c);\n            }\n        }\n    }\n    throw new Error('Invalid padding');\n}\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview Key encryption and decryption for RFC 6637 ECDH\n * @module crypto/public_key/elliptic/ecdh\n * @access private\n */\n/**\n * Validate ECDH parameters\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {Uint8Array} Q - ECDH public point\n * @param {Uint8Array} d - ECDH secret scalar\n * @returns {Promise<Boolean>} Whether params are valid.\n * @async\n */\nasync function validateParams$3(oid, Q, d) {\n    return validateStandardParams(enums.publicKey.ecdh, oid, Q, d);\n}\n// Build Param for ECDH algorithm (RFC 6637)\nfunction buildEcdhParam(public_algo, oid, kdfParams, fingerprint) {\n    return util.concatUint8Array([\n        oid.write(),\n        new Uint8Array([public_algo]),\n        kdfParams.write(),\n        util.stringToUint8Array('Anonymous Sender    '),\n        fingerprint\n    ]);\n}\n// Key Derivation Function (RFC 6637)\nasync function kdf(hashAlgo, X, length, param, stripLeading = false, stripTrailing = false) {\n    // Note: X is little endian for Curve25519, big-endian for all others.\n    // This is not ideal, but the RFC's are unclear\n    // https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-02#appendix-B\n    let i;\n    if (stripLeading) {\n        // Work around old go crypto bug\n        for (i = 0; i < X.length && X[i] === 0; i++)\n            ;\n        X = X.subarray(i);\n    }\n    if (stripTrailing) {\n        // Work around old OpenPGP.js bug\n        for (i = X.length - 1; i >= 0 && X[i] === 0; i--)\n            ;\n        X = X.subarray(0, i + 1);\n    }\n    const digest = await computeDigest(hashAlgo, util.concatUint8Array([\n        new Uint8Array([0, 0, 0, 1]),\n        X,\n        param\n    ]));\n    return digest.subarray(0, length);\n}\n/**\n * Generate ECDHE ephemeral key and secret from public key\n *\n * @param {CurveWithOID} curve - Elliptic curve object\n * @param {Uint8Array} Q - Recipient public key\n * @returns {Promise<{publicKey: Uint8Array, sharedKey: Uint8Array}>}\n * @async\n */\nasync function genPublicEphemeralKey(curve, Q) {\n    switch (curve.type) {\n        case 'curve25519Legacy': {\n            const { sharedSecret: sharedKey, ephemeralPublicKey } = await generateEphemeralEncryptionMaterial(enums.publicKey.x25519, Q.subarray(1));\n            const publicKey = util.concatUint8Array([new Uint8Array([curve.wireFormatLeadingByte]), ephemeralPublicKey]);\n            return { publicKey, sharedKey }; // Note: sharedKey is little-endian here, unlike below\n        }\n        case 'web':\n            if (curve.web && util.getWebCrypto()) {\n                try {\n                    return await webPublicEphemeralKey(curve, Q);\n                }\n                catch (err) {\n                    util.printDebugError(err);\n                    return jsPublicEphemeralKey(curve, Q);\n                }\n            }\n            break;\n        case 'node':\n            return nodePublicEphemeralKey(curve, Q);\n        default:\n            return jsPublicEphemeralKey(curve, Q);\n    }\n}\n/**\n * Encrypt and wrap a session key\n *\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {module:type/kdf_params} kdfParams - KDF params including cipher and algorithm to use\n * @param {Uint8Array} data - Unpadded session key data\n * @param {Uint8Array} Q - Recipient public key\n * @param {Uint8Array} fingerprint - Recipient fingerprint, already truncated depending on the key version\n * @returns {Promise<{publicKey: Uint8Array, wrappedKey: Uint8Array}>}\n * @async\n */\nasync function encrypt$2(oid, kdfParams, data, Q, fingerprint) {\n    const m = encode(data);\n    const curve = new CurveWithOID(oid);\n    checkPublicPointEnconding(curve, Q);\n    const { publicKey, sharedKey } = await genPublicEphemeralKey(curve, Q);\n    const param = buildEcdhParam(enums.publicKey.ecdh, oid, kdfParams, fingerprint);\n    const { keySize } = getCipherParams(kdfParams.cipher);\n    const Z = await kdf(kdfParams.hash, sharedKey, keySize, param);\n    const wrappedKey = await wrap(kdfParams.cipher, Z, m);\n    return { publicKey, wrappedKey };\n}\n/**\n * Generate ECDHE secret from private key and public part of ephemeral key\n *\n * @param {CurveWithOID} curve - Elliptic curve object\n * @param {Uint8Array} V - Public part of ephemeral key\n * @param {Uint8Array} Q - Recipient public key\n * @param {Uint8Array} d - Recipient private key\n * @returns {Promise<{secretKey: Uint8Array, sharedKey: Uint8Array}>}\n * @async\n */\nasync function genPrivateEphemeralKey(curve, V, Q, d) {\n    if (d.length !== curve.payloadSize) {\n        const privateKey = new Uint8Array(curve.payloadSize);\n        privateKey.set(d, curve.payloadSize - d.length);\n        d = privateKey;\n    }\n    switch (curve.type) {\n        case 'curve25519Legacy': {\n            const secretKey = d.slice().reverse();\n            const sharedKey = await recomputeSharedSecret(enums.publicKey.x25519, V.subarray(1), Q.subarray(1), secretKey);\n            return { secretKey, sharedKey }; // Note: sharedKey is little-endian here, unlike below\n        }\n        case 'web':\n            if (curve.web && util.getWebCrypto()) {\n                try {\n                    return await webPrivateEphemeralKey(curve, V, Q, d);\n                }\n                catch (err) {\n                    util.printDebugError(err);\n                    return jsPrivateEphemeralKey(curve, V, d);\n                }\n            }\n            break;\n        case 'node':\n            return nodePrivateEphemeralKey(curve, V, d);\n        default:\n            return jsPrivateEphemeralKey(curve, V, d);\n    }\n}\n/**\n * Decrypt and unwrap the value derived from session key\n *\n * @param {module:type/oid} oid - Elliptic curve object identifier\n * @param {module:type/kdf_params} kdfParams - KDF params including cipher and algorithm to use\n * @param {Uint8Array} V - Public part of ephemeral key\n * @param {Uint8Array} C - Encrypted and wrapped value derived from session key\n * @param {Uint8Array} Q - Recipient public key\n * @param {Uint8Array} d - Recipient private key\n * @param {Uint8Array} fingerprint - Recipient fingerprint, already truncated depending on the key version\n * @returns {Promise<Uint8Array>} Value derived from session key.\n * @async\n */\nasync function decrypt$2(oid, kdfParams, V, C, Q, d, fingerprint) {\n    const curve = new CurveWithOID(oid);\n    checkPublicPointEnconding(curve, Q);\n    checkPublicPointEnconding(curve, V);\n    const { sharedKey } = await genPrivateEphemeralKey(curve, V, Q, d);\n    const param = buildEcdhParam(enums.publicKey.ecdh, oid, kdfParams, fingerprint);\n    const { keySize } = getCipherParams(kdfParams.cipher);\n    let err;\n    for (let i = 0; i < 3; i++) {\n        try {\n            // Work around old go crypto bug and old OpenPGP.js bug, respectively.\n            const Z = await kdf(kdfParams.hash, sharedKey, keySize, param, i === 1, i === 2);\n            return decode(await unwrap(kdfParams.cipher, Z, C));\n        }\n        catch (e) {\n            err = e;\n        }\n    }\n    throw err;\n}\nasync function jsPrivateEphemeralKey(curve, V, d) {\n    const nobleCurve = await util.getNobleCurve(enums.publicKey.ecdh, curve.name);\n    // The output includes parity byte\n    const sharedSecretWithParity = nobleCurve.getSharedSecret(d, V);\n    const sharedKey = sharedSecretWithParity.subarray(1);\n    return { secretKey: d, sharedKey };\n}\nasync function jsPublicEphemeralKey(curve, Q) {\n    const nobleCurve = await util.getNobleCurve(enums.publicKey.ecdh, curve.name);\n    const { publicKey: V, privateKey: v } = await curve.genKeyPair();\n    // The output includes parity byte\n    const sharedSecretWithParity = nobleCurve.getSharedSecret(v, Q);\n    const sharedKey = sharedSecretWithParity.subarray(1);\n    return { publicKey: V, sharedKey };\n}\n/**\n * Generate ECDHE secret from private key and public part of ephemeral key using webCrypto\n *\n * @param {CurveWithOID} curve - Elliptic curve object\n * @param {Uint8Array} V - Public part of ephemeral key\n * @param {Uint8Array} Q - Recipient public key\n * @param {Uint8Array} d - Recipient private key\n * @returns {Promise<{secretKey: Uint8Array, sharedKey: Uint8Array}>}\n * @async\n */\nasync function webPrivateEphemeralKey(curve, V, Q, d) {\n    const webCrypto = util.getWebCrypto();\n    const recipient = privateToJWK(curve.payloadSize, curve.web, Q, d);\n    let privateKey = webCrypto.importKey('jwk', recipient, {\n        name: 'ECDH',\n        namedCurve: curve.web\n    }, true, ['deriveKey', 'deriveBits']);\n    const jwk = rawPublicToJWK(curve.payloadSize, curve.web, V);\n    let sender = webCrypto.importKey('jwk', jwk, {\n        name: 'ECDH',\n        namedCurve: curve.web\n    }, true, []);\n    [privateKey, sender] = await Promise.all([privateKey, sender]);\n    let S = webCrypto.deriveBits({\n        name: 'ECDH',\n        namedCurve: curve.web,\n        public: sender\n    }, privateKey, curve.sharedSize);\n    let secret = webCrypto.exportKey('jwk', privateKey);\n    [S, secret] = await Promise.all([S, secret]);\n    const sharedKey = new Uint8Array(S);\n    const secretKey = b64ToUint8Array(secret.d);\n    return { secretKey, sharedKey };\n}\n/**\n * Generate ECDHE ephemeral key and secret from public key using webCrypto\n *\n * @param {CurveWithOID} curve - Elliptic curve object\n * @param {Uint8Array} Q - Recipient public key\n * @returns {Promise<{publicKey: Uint8Array, sharedKey: Uint8Array}>}\n * @async\n */\nasync function webPublicEphemeralKey(curve, Q) {\n    const webCrypto = util.getWebCrypto();\n    const jwk = rawPublicToJWK(curve.payloadSize, curve.web, Q);\n    let keyPair = webCrypto.generateKey({\n        name: 'ECDH',\n        namedCurve: curve.web\n    }, true, ['deriveKey', 'deriveBits']);\n    let recipient = webCrypto.importKey('jwk', jwk, {\n        name: 'ECDH',\n        namedCurve: curve.web\n    }, false, []);\n    [keyPair, recipient] = await Promise.all([keyPair, recipient]);\n    let s = webCrypto.deriveBits({\n        name: 'ECDH',\n        namedCurve: curve.web,\n        public: recipient\n    }, keyPair.privateKey, curve.sharedSize);\n    let p = webCrypto.exportKey('jwk', keyPair.publicKey);\n    [s, p] = await Promise.all([s, p]);\n    const sharedKey = new Uint8Array(s);\n    const publicKey = new Uint8Array(jwkToRawPublic(p, curve.wireFormatLeadingByte));\n    return { publicKey, sharedKey };\n}\n/**\n * Generate ECDHE secret from private key and public part of ephemeral key using nodeCrypto\n *\n * @param {CurveWithOID} curve - Elliptic curve object\n * @param {Uint8Array} V - Public part of ephemeral key\n * @param {Uint8Array} d - Recipient private key\n * @returns {Promise<{secretKey: Uint8Array, sharedKey: Uint8Array}>}\n * @async\n */\nfunction nodePrivateEphemeralKey(curve, V, d) {\n    const nodeCrypto = util.getNodeCrypto();\n    const recipient = nodeCrypto.createECDH(curve.node);\n    recipient.setPrivateKey(d);\n    const sharedKey = new Uint8Array(recipient.computeSecret(V));\n    const secretKey = new Uint8Array(recipient.getPrivateKey());\n    return { secretKey, sharedKey };\n}\n/**\n * Generate ECDHE ephemeral key and secret from public key using nodeCrypto\n *\n * @param {CurveWithOID} curve - Elliptic curve object\n * @param {Uint8Array} Q - Recipient public key\n * @returns {Promise<{publicKey: Uint8Array, sharedKey: Uint8Array}>}\n * @async\n */\nfunction nodePublicEphemeralKey(curve, Q) {\n    const nodeCrypto = util.getNodeCrypto();\n    const sender = nodeCrypto.createECDH(curve.node);\n    sender.generateKeys();\n    const sharedKey = new Uint8Array(sender.computeSecret(Q));\n    const publicKey = new Uint8Array(sender.getPublicKey());\n    return { publicKey, sharedKey };\n}\n\nvar ecdh$1 = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  decrypt: decrypt$2,\n  encrypt: encrypt$2,\n  validateParams: validateParams$3\n});\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview Functions to access Elliptic Curve Cryptography\n * @see module:crypto/public_key/elliptic/curve\n * @see module:crypto/public_key/elliptic/ecdh\n * @see module:crypto/public_key/elliptic/ecdsa\n * @see module:crypto/public_key/elliptic/eddsa\n * @module crypto/public_key/elliptic\n * @access private\n */\n\nvar elliptic = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  CurveWithOID: CurveWithOID,\n  ecdh: ecdh$1,\n  ecdhX: ecdh_x,\n  ecdsa: ecdsa$1,\n  eddsa: eddsa$1,\n  eddsaLegacy: eddsa_legacy,\n  generate: generate$1,\n  getPreferredHashAlgo: getPreferredHashAlgo$1\n});\n\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview A Digital signature algorithm implementation\n * @module crypto/public_key/dsa\n * @access private\n */\n/*\n  TODO regarding the hash function, read:\n   https://tools.ietf.org/html/rfc4880#section-13.6\n   https://tools.ietf.org/html/rfc4880#section-14\n*/\nconst _0n$7 = BigInt(0);\nconst _1n$8 = BigInt(1);\n/**\n * DSA Sign function\n * @param {Integer} hashAlgo\n * @param {Uint8Array} hashed\n * @param {Uint8Array} g\n * @param {Uint8Array} p\n * @param {Uint8Array} q\n * @param {Uint8Array} x\n * @returns {Promise<{ r: Uint8Array, s: Uint8Array }>}\n * @async\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function sign$2(hashAlgo, hashed, g, p, q, x) {\n    const _0n = BigInt(0);\n    p = uint8ArrayToBigInt(p);\n    q = uint8ArrayToBigInt(q);\n    g = uint8ArrayToBigInt(g);\n    x = uint8ArrayToBigInt(x);\n    let k;\n    let r;\n    let s;\n    let t;\n    g = mod$1(g, p);\n    x = mod$1(x, q);\n    // If the output size of the chosen hash is larger than the number of\n    // bits of q, the hash result is truncated to fit by taking the number\n    // of leftmost bits equal to the number of bits of q.  This (possibly\n    // truncated) hash function result is treated as a number and used\n    // directly in the DSA signature algorithm.\n    const h = mod$1(uint8ArrayToBigInt(hashed.subarray(0, byteLength(q))), q);\n    // FIPS-186-4, section 4.6:\n    // The values of r and s shall be checked to determine if r = 0 or s = 0.\n    // If either r = 0 or s = 0, a new value of k shall be generated, and the\n    // signature shall be recalculated. It is extremely unlikely that r = 0\n    // or s = 0 if signatures are generated properly.\n    while (true) {\n        // See Appendix B here: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf\n        k = getRandomBigInteger(_1n$8, q); // returns in [1, q-1]\n        r = mod$1(modExp(g, k, p), q); // (g**k mod p) mod q\n        if (r === _0n) {\n            continue;\n        }\n        const xr = mod$1(x * r, q);\n        t = mod$1(h + xr, q); // H(m) + x*r mod q\n        s = mod$1(modInv(k, q) * t, q); // k**-1 * (H(m) + x*r) mod q\n        if (s === _0n) {\n            continue;\n        }\n        break;\n    }\n    return {\n        r: bigIntToUint8Array(r, 'be', byteLength(p)),\n        s: bigIntToUint8Array(s, 'be', byteLength(p))\n    };\n}\n/**\n * DSA Verify function\n * @param {Integer} hashAlgo\n * @param {Uint8Array} r\n * @param {Uint8Array} s\n * @param {Uint8Array} hashed\n * @param {Uint8Array} g\n * @param {Uint8Array} p\n * @param {Uint8Array} q\n * @param {Uint8Array} y\n * @returns {boolean}\n * @async\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function verify$2(hashAlgo, r, s, hashed, g, p, q, y) {\n    r = uint8ArrayToBigInt(r);\n    s = uint8ArrayToBigInt(s);\n    p = uint8ArrayToBigInt(p);\n    q = uint8ArrayToBigInt(q);\n    g = uint8ArrayToBigInt(g);\n    y = uint8ArrayToBigInt(y);\n    if (r <= _0n$7 || r >= q ||\n        s <= _0n$7 || s >= q) {\n        util.printDebug('invalid DSA Signature');\n        return false;\n    }\n    const h = mod$1(uint8ArrayToBigInt(hashed.subarray(0, byteLength(q))), q);\n    const w = modInv(s, q); // s**-1 mod q\n    if (w === _0n$7) {\n        util.printDebug('invalid DSA Signature');\n        return false;\n    }\n    g = mod$1(g, p);\n    y = mod$1(y, p);\n    const u1 = mod$1(h * w, q); // H(m) * w mod q\n    const u2 = mod$1(r * w, q); // r * w mod q\n    const t1 = modExp(g, u1, p); // g**u1 mod p\n    const t2 = modExp(y, u2, p); // y**u2 mod p\n    const v = mod$1(mod$1(t1 * t2, p), q); // (g**u1 * y**u2 mod p) mod q\n    return v === r;\n}\n/**\n * Validate DSA parameters\n * @param {Uint8Array} pBytes - DSA prime\n * @param {Uint8Array} qBytes - DSA group order\n * @param {Uint8Array} gBytes - DSA sub-group generator\n * @param {Uint8Array} yBytes - DSA public key\n * @param {Uint8Array} xBytes - DSA private key\n * @returns {Promise<Boolean>} Whether params are valid.\n * @async\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function validateParams$2(pBytes, qBytes, gBytes, yBytes, xBytes) {\n    const p = uint8ArrayToBigInt(pBytes);\n    const q = uint8ArrayToBigInt(qBytes);\n    const g = uint8ArrayToBigInt(gBytes);\n    const y = uint8ArrayToBigInt(yBytes);\n    // Check that 1 < g < p\n    if (g <= _1n$8 || g >= p) {\n        return false;\n    }\n    /**\n     * Check that subgroup order q divides p-1\n     */\n    if (mod$1(p - _1n$8, q) !== _0n$7) {\n        return false;\n    }\n    /**\n     * g has order q\n     * Check that g ** q = 1 mod p\n     */\n    if (modExp(g, q, p) !== _1n$8) {\n        return false;\n    }\n    /**\n     * Check q is large and probably prime (we mainly want to avoid small factors)\n     */\n    const qSize = BigInt(bitLength(q));\n    const _150n = BigInt(150);\n    if (qSize < _150n || !isProbablePrime(q, null, 32)) {\n        return false;\n    }\n    /**\n     * Re-derive public key y' = g ** x mod p\n     * Expect y == y'\n     *\n     * Blinded exponentiation computes g**{rq + x} to compare to y\n     */\n    const x = uint8ArrayToBigInt(xBytes);\n    const _2n = BigInt(2);\n    const r = getRandomBigInteger(_2n << (qSize - _1n$8), _2n << qSize); // draw r of same size as q\n    const rqx = q * r + x;\n    if (y !== modExp(g, rqx, p)) {\n        return false;\n    }\n    return true;\n}\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Encoded symmetric key for ECDH (incl. legacy x25519)\n *\n * @module type/ecdh_symkey\n * @access private\n */\nclass ECDHSymmetricKey {\n    constructor(data) {\n        if (data) {\n            this.data = data;\n        }\n    }\n    /**\n     * Read an ECDHSymmetricKey from an Uint8Array:\n     * - 1 octect for the length `l`\n     * - `l` octects of encoded session key data\n     * @param {Uint8Array} bytes\n     * @returns {Number} Number of read bytes.\n     */\n    read(bytes) {\n        if (bytes.length >= 1) {\n            const length = bytes[0];\n            if (bytes.length >= 1 + length) {\n                this.data = bytes.subarray(1, 1 + length);\n                return 1 + this.data.length;\n            }\n        }\n        throw new Error('Invalid symmetric key');\n    }\n    /**\n     * Write an ECDHSymmetricKey as an Uint8Array\n     * @returns  {Uint8Array} Serialised data\n     */\n    write() {\n        return util.concatUint8Array([new Uint8Array([this.data.length]), this.data]);\n    }\n}\n\n/** @access private */\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Implementation of type KDF parameters\n *\n * {@link https://tools.ietf.org/html/rfc6637#section-7|RFC 6637 7}:\n * A key derivation function (KDF) is necessary to implement the EC\n * encryption.  The Concatenation Key Derivation Function (Approved\n * Alternative 1) [NIST-SP800-56A] with the KDF hash function that is\n * SHA2-256 [FIPS-180-3] or stronger is REQUIRED.\n * @access private\n */\nclass KDFParams {\n    /**\n     * @param {enums.hash} hash - Hash algorithm\n     * @param {enums.symmetric} cipher - Symmetric algorithm\n     */\n    constructor(data) {\n        if (data) {\n            const { hash, cipher } = data;\n            this.hash = hash;\n            this.cipher = cipher;\n        }\n        else {\n            this.hash = null;\n            this.cipher = null;\n        }\n    }\n    /**\n     * Read KDFParams from an Uint8Array\n     * @param {Uint8Array} input - Where to read the KDFParams from\n     * @returns {Number} Number of read bytes.\n     */\n    read(input) {\n        if (input.length < 4 || input[0] !== 3 || input[1] !== 1) {\n            throw new UnsupportedError('Cannot read KDFParams');\n        }\n        this.hash = input[2];\n        this.cipher = input[3];\n        return 4;\n    }\n    /**\n     * Write KDFParams to an Uint8Array\n     * @returns  {Uint8Array}  Array with the KDFParams value\n     */\n    write() {\n        return new Uint8Array([3, 1, this.hash, this.cipher]);\n    }\n}\n\n/**\n * Encoded symmetric key for x25519 and x448\n * The payload format varies for v3 and v6 PKESK:\n * the former includes an algorithm byte preceeding the encrypted session key.\n *\n * @module type/x25519x448_symkey\n * @access private\n */\nclass ECDHXSymmetricKey {\n    static fromObject({ wrappedKey, algorithm }) {\n        const instance = new ECDHXSymmetricKey();\n        instance.wrappedKey = wrappedKey;\n        instance.algorithm = algorithm;\n        return instance;\n    }\n    /**\n     * - 1 octect for the length `l`\n     * - `l` octects of encoded session key data (with optional leading algorithm byte)\n     * @param {Uint8Array} bytes\n     * @returns {Number} Number of read bytes.\n     */\n    read(bytes) {\n        let read = 0;\n        let followLength = bytes[read++];\n        this.algorithm = followLength % 2 ? bytes[read++] : null; // session key size is always even\n        followLength -= followLength % 2;\n        this.wrappedKey = util.readExactSubarray(bytes, read, read + followLength);\n        read += followLength;\n    }\n    /**\n     * Write an MontgomerySymmetricKey as an Uint8Array\n     * @returns  {Uint8Array} Serialised data\n     */\n    write() {\n        return util.concatUint8Array([\n            this.algorithm ?\n                new Uint8Array([this.wrappedKey.length + 1, this.algorithm]) :\n                new Uint8Array([this.wrappedKey.length]),\n            this.wrappedKey\n        ]);\n    }\n}\n\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n// The GPG4Browsers crypto interface\n/**\n * @fileoverview Provides functions for asymmetric encryption and decryption as\n * well as key generation and parameter handling for all public-key cryptosystems.\n * @module crypto/crypto\n * @access private\n */\n/**\n * Encrypts data using specified algorithm and public key parameters.\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.1|RFC 4880 9.1} for public key algorithms.\n * @param {module:enums.publicKey} keyAlgo - Public key algorithm\n * @param {module:enums.symmetric|null} symmetricAlgo - Cipher algorithm (v3 only)\n * @param {Object} publicParams - Algorithm-specific public key parameters\n * @param {Uint8Array} data - Session key data to be encrypted\n * @param {Uint8Array} fingerprint - Recipient fingerprint\n * @returns {Promise<Object>} Encrypted session key parameters.\n * @async\n */\nasync function publicKeyEncrypt(keyAlgo, symmetricAlgo, publicParams, data, fingerprint) {\n    switch (keyAlgo) {\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.rsaEncryptSign: {\n            const { n, e } = publicParams;\n            const c = await encrypt$6(data, n, e);\n            return { c };\n        }\n        case enums.publicKey.elgamal: {\n            const { p, g, y } = publicParams;\n            return encrypt$5(data, p, g, y);\n        }\n        case enums.publicKey.ecdh: {\n            const { oid, Q, kdfParams } = publicParams;\n            const { publicKey: V, wrappedKey: C } = await encrypt$2(oid, kdfParams, data, Q, fingerprint);\n            return { V, C: new ECDHSymmetricKey(C) };\n        }\n        case enums.publicKey.x25519:\n        case enums.publicKey.x448: {\n            if (symmetricAlgo && !util.isAES(symmetricAlgo)) {\n                // see https://gitlab.com/openpgp-wg/rfc4880bis/-/merge_requests/276\n                throw new Error('X25519 and X448 keys can only encrypt AES session keys');\n            }\n            const { A } = publicParams;\n            const { ephemeralPublicKey, wrappedKey } = await encrypt$3(keyAlgo, data, A);\n            const C = ECDHXSymmetricKey.fromObject({ algorithm: symmetricAlgo, wrappedKey });\n            return { ephemeralPublicKey, C };\n        }\n        default:\n            return [];\n    }\n}\n/**\n * Decrypts data using specified algorithm and private key parameters.\n * See {@link https://tools.ietf.org/html/rfc4880#section-5.5.3|RFC 4880 5.5.3}\n * @param {module:enums.publicKey} algo - Public key algorithm\n * @param {Object} publicKeyParams - Algorithm-specific public key parameters\n * @param {Object} privateKeyParams - Algorithm-specific private key parameters\n * @param {Object} sessionKeyParams - Encrypted session key parameters\n * @param {Uint8Array} fingerprint - Recipient fingerprint\n * @param {Uint8Array} [randomPayload] - Data to return on decryption error, instead of throwing\n *                                    (needed for constant-time processing in RSA and ElGamal)\n * @returns {Promise<Uint8Array>} Decrypted data.\n * @throws {Error} on sensitive decryption error, unless `randomPayload` is given\n * @async\n */\nasync function publicKeyDecrypt(algo, publicKeyParams, privateKeyParams, sessionKeyParams, fingerprint, randomPayload) {\n    switch (algo) {\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.rsaEncrypt: {\n            const { c } = sessionKeyParams;\n            const { n, e } = publicKeyParams;\n            const { d, p, q, u } = privateKeyParams;\n            return decrypt$6(c, n, e, d, p, q, u, randomPayload);\n        }\n        case enums.publicKey.elgamal: {\n            const { c1, c2 } = sessionKeyParams;\n            const p = publicKeyParams.p;\n            const x = privateKeyParams.x;\n            return decrypt$5(c1, c2, p, x, randomPayload);\n        }\n        case enums.publicKey.ecdh: {\n            const { oid, Q, kdfParams } = publicKeyParams;\n            const { d } = privateKeyParams;\n            const { V, C } = sessionKeyParams;\n            return decrypt$2(oid, kdfParams, V, C.data, Q, d, fingerprint);\n        }\n        case enums.publicKey.x25519:\n        case enums.publicKey.x448: {\n            const { A } = publicKeyParams;\n            const { k } = privateKeyParams;\n            const { ephemeralPublicKey, C } = sessionKeyParams;\n            if (C.algorithm !== null && !util.isAES(C.algorithm)) {\n                throw new Error('AES session key expected');\n            }\n            return decrypt$3(algo, ephemeralPublicKey, C.wrappedKey, A, k);\n        }\n        default:\n            throw new Error('Unknown public key encryption algorithm.');\n    }\n}\n/**\n * Parse public key material in binary form to get the key parameters\n * @param {module:enums.publicKey} algo - The key algorithm\n * @param {Uint8Array} bytes - The key material to parse\n * @returns {{ read: Number, publicParams: Object }} Number of read bytes plus key parameters referenced by name.\n */\nfunction parsePublicKeyParams(algo, bytes) {\n    let read = 0;\n    switch (algo) {\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.rsaSign: {\n            const n = util.readMPI(bytes.subarray(read));\n            read += n.length + 2;\n            const e = util.readMPI(bytes.subarray(read));\n            read += e.length + 2;\n            return { read, publicParams: { n, e } };\n        }\n        case enums.publicKey.dsa: {\n            const p = util.readMPI(bytes.subarray(read));\n            read += p.length + 2;\n            const q = util.readMPI(bytes.subarray(read));\n            read += q.length + 2;\n            const g = util.readMPI(bytes.subarray(read));\n            read += g.length + 2;\n            const y = util.readMPI(bytes.subarray(read));\n            read += y.length + 2;\n            return { read, publicParams: { p, q, g, y } };\n        }\n        case enums.publicKey.elgamal: {\n            const p = util.readMPI(bytes.subarray(read));\n            read += p.length + 2;\n            const g = util.readMPI(bytes.subarray(read));\n            read += g.length + 2;\n            const y = util.readMPI(bytes.subarray(read));\n            read += y.length + 2;\n            return { read, publicParams: { p, g, y } };\n        }\n        case enums.publicKey.ecdsa: {\n            const oid = new OID();\n            read += oid.read(bytes);\n            checkSupportedCurve(oid);\n            const Q = util.readMPI(bytes.subarray(read));\n            read += Q.length + 2;\n            return { read: read, publicParams: { oid, Q } };\n        }\n        case enums.publicKey.eddsaLegacy: {\n            const oid = new OID();\n            read += oid.read(bytes);\n            checkSupportedCurve(oid);\n            if (oid.getName() !== enums.curve.ed25519Legacy) {\n                throw new Error('Unexpected OID for eddsaLegacy');\n            }\n            let Q = util.readMPI(bytes.subarray(read));\n            read += Q.length + 2;\n            Q = util.leftPad(Q, 33);\n            return { read: read, publicParams: { oid, Q } };\n        }\n        case enums.publicKey.ecdh: {\n            const oid = new OID();\n            read += oid.read(bytes);\n            checkSupportedCurve(oid);\n            const Q = util.readMPI(bytes.subarray(read));\n            read += Q.length + 2;\n            const kdfParams = new KDFParams();\n            read += kdfParams.read(bytes.subarray(read));\n            return { read: read, publicParams: { oid, Q, kdfParams } };\n        }\n        case enums.publicKey.ed25519:\n        case enums.publicKey.ed448:\n        case enums.publicKey.x25519:\n        case enums.publicKey.x448: {\n            const A = util.readExactSubarray(bytes, read, read + getCurvePayloadSize(algo));\n            read += A.length;\n            return { read, publicParams: { A } };\n        }\n        default:\n            throw new UnsupportedError('Unknown public key encryption algorithm.');\n    }\n}\n/**\n * Parse private key material in binary form to get the key parameters\n * @param {module:enums.publicKey} algo - The key algorithm\n * @param {Uint8Array} bytes - The key material to parse\n * @param {Object} publicParams - (ECC only) public params, needed to format some private params\n * @returns {{ read: Number, privateParams: Object }} Number of read bytes plus the key parameters referenced by name.\n */\nfunction parsePrivateKeyParams(algo, bytes, publicParams) {\n    let read = 0;\n    switch (algo) {\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.rsaSign: {\n            const d = util.readMPI(bytes.subarray(read));\n            read += d.length + 2;\n            const p = util.readMPI(bytes.subarray(read));\n            read += p.length + 2;\n            const q = util.readMPI(bytes.subarray(read));\n            read += q.length + 2;\n            const u = util.readMPI(bytes.subarray(read));\n            read += u.length + 2;\n            return { read, privateParams: { d, p, q, u } };\n        }\n        case enums.publicKey.dsa:\n        case enums.publicKey.elgamal: {\n            const x = util.readMPI(bytes.subarray(read));\n            read += x.length + 2;\n            return { read, privateParams: { x } };\n        }\n        case enums.publicKey.ecdsa:\n        case enums.publicKey.ecdh: {\n            const payloadSize = getCurvePayloadSize(algo, publicParams.oid);\n            let d = util.readMPI(bytes.subarray(read));\n            read += d.length + 2;\n            d = util.leftPad(d, payloadSize);\n            return { read, privateParams: { d } };\n        }\n        case enums.publicKey.eddsaLegacy: {\n            const payloadSize = getCurvePayloadSize(algo, publicParams.oid);\n            if (publicParams.oid.getName() !== enums.curve.ed25519Legacy) {\n                throw new Error('Unexpected OID for eddsaLegacy');\n            }\n            let seed = util.readMPI(bytes.subarray(read));\n            read += seed.length + 2;\n            seed = util.leftPad(seed, payloadSize);\n            return { read, privateParams: { seed } };\n        }\n        case enums.publicKey.ed25519:\n        case enums.publicKey.ed448: {\n            const payloadSize = getCurvePayloadSize(algo);\n            const seed = util.readExactSubarray(bytes, read, read + payloadSize);\n            read += seed.length;\n            return { read, privateParams: { seed } };\n        }\n        case enums.publicKey.x25519:\n        case enums.publicKey.x448: {\n            const payloadSize = getCurvePayloadSize(algo);\n            const k = util.readExactSubarray(bytes, read, read + payloadSize);\n            read += k.length;\n            return { read, privateParams: { k } };\n        }\n        default:\n            throw new UnsupportedError('Unknown public key encryption algorithm.');\n    }\n}\n/** Returns the types comprising the encrypted session key of an algorithm\n * @param {module:enums.publicKey} algo - The key algorithm\n * @param {Uint8Array} bytes - The key material to parse\n * @returns {Object} The session key parameters referenced by name.\n */\nfunction parseEncSessionKeyParams(algo, bytes) {\n    let read = 0;\n    switch (algo) {\n        //   Algorithm-Specific Fields for RSA encrypted session keys:\n        //       - MPI of RSA encrypted value m**e mod n.\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.rsaEncryptSign: {\n            const c = util.readMPI(bytes.subarray(read));\n            return { c };\n        }\n        //   Algorithm-Specific Fields for Elgamal encrypted session keys:\n        //       - MPI of Elgamal value g**k mod p\n        //       - MPI of Elgamal value m * y**k mod p\n        case enums.publicKey.elgamal: {\n            const c1 = util.readMPI(bytes.subarray(read));\n            read += c1.length + 2;\n            const c2 = util.readMPI(bytes.subarray(read));\n            return { c1, c2 };\n        }\n        //   Algorithm-Specific Fields for ECDH encrypted session keys:\n        //       - MPI containing the ephemeral key used to establish the shared secret\n        //       - ECDH Symmetric Key\n        case enums.publicKey.ecdh: {\n            const V = util.readMPI(bytes.subarray(read));\n            read += V.length + 2;\n            const C = new ECDHSymmetricKey();\n            C.read(bytes.subarray(read));\n            return { V, C };\n        }\n        //   Algorithm-Specific Fields for X25519 or X448 encrypted session keys:\n        //       - 32 octets representing an ephemeral X25519 public key (or 57 octets for X448).\n        //       - A one-octet size of the following fields.\n        //       - The one-octet algorithm identifier, if it was passed (in the case of a v3 PKESK packet).\n        //       - The encrypted session key.\n        case enums.publicKey.x25519:\n        case enums.publicKey.x448: {\n            const pointSize = getCurvePayloadSize(algo);\n            const ephemeralPublicKey = util.readExactSubarray(bytes, read, read + pointSize);\n            read += ephemeralPublicKey.length;\n            const C = new ECDHXSymmetricKey();\n            C.read(bytes.subarray(read));\n            return { ephemeralPublicKey, C };\n        }\n        default:\n            throw new UnsupportedError('Unknown public key encryption algorithm.');\n    }\n}\n/**\n * Convert params to MPI and serializes them in the proper order\n * @param {module:enums.publicKey} algo - The public key algorithm\n * @param {Object} params - The key parameters indexed by name\n * @returns {Uint8Array} The array containing the MPIs.\n */\nfunction serializeParams(algo, params) {\n    // Some algorithms do not rely on MPIs to store the binary params\n    const algosWithNativeRepresentation = new Set([\n        enums.publicKey.ed25519,\n        enums.publicKey.x25519,\n        enums.publicKey.ed448,\n        enums.publicKey.x448\n    ]);\n    const orderedParams = Object.keys(params).map(name => {\n        const param = params[name];\n        if (!util.isUint8Array(param))\n            return param.write();\n        return algosWithNativeRepresentation.has(algo) ? param : util.uint8ArrayToMPI(param);\n    });\n    return util.concatUint8Array(orderedParams);\n}\n/**\n * Generate algorithm-specific key parameters\n * @param {module:enums.publicKey} algo - The public key algorithm\n * @param {Integer} bits - Bit length for RSA keys\n * @param {module:type/oid} oid - Object identifier for ECC keys\n * @returns {Promise<{ publicParams: {Object}, privateParams: {Object} }>} The parameters referenced by name.\n * @async\n */\nfunction generateParams(algo, bits, oid) {\n    switch (algo) {\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.rsaSign:\n            return generate$4(bits, 65537).then(({ n, e, d, p, q, u }) => ({\n                privateParams: { d, p, q, u },\n                publicParams: { n, e }\n            }));\n        case enums.publicKey.ecdsa:\n            return generate$1(oid).then(({ oid, Q, secret }) => ({\n                privateParams: { d: secret },\n                publicParams: { oid: new OID(oid), Q }\n            }));\n        case enums.publicKey.eddsaLegacy:\n            return generate$1(oid).then(({ oid, Q, secret }) => ({\n                privateParams: { seed: secret },\n                publicParams: { oid: new OID(oid), Q }\n            }));\n        case enums.publicKey.ecdh:\n            return generate$1(oid).then(({ oid, Q, secret, hash, cipher }) => ({\n                privateParams: { d: secret },\n                publicParams: {\n                    oid: new OID(oid),\n                    Q,\n                    kdfParams: new KDFParams({ hash, cipher })\n                }\n            }));\n        case enums.publicKey.ed25519:\n        case enums.publicKey.ed448:\n            return generate$3(algo).then(({ A, seed }) => ({\n                privateParams: { seed },\n                publicParams: { A }\n            }));\n        case enums.publicKey.x25519:\n        case enums.publicKey.x448:\n            return generate$2(algo).then(({ A, k }) => ({\n                privateParams: { k },\n                publicParams: { A }\n            }));\n        case enums.publicKey.dsa:\n        case enums.publicKey.elgamal:\n            throw new Error('Unsupported algorithm for key generation.');\n        default:\n            throw new Error('Unknown public key algorithm.');\n    }\n}\n/**\n * Validate algorithm-specific key parameters\n * @param {module:enums.publicKey} algo - The public key algorithm\n * @param {Object} publicParams - Algorithm-specific public key parameters\n * @param {Object} privateParams - Algorithm-specific private key parameters\n * @returns {Promise<Boolean>} Whether the parameters are valid.\n * @async\n */\nasync function validateParams$1(algo, publicParams, privateParams) {\n    if (!publicParams || !privateParams) {\n        throw new Error('Missing key parameters');\n    }\n    switch (algo) {\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.rsaSign: {\n            const { n, e } = publicParams;\n            const { d, p, q, u } = privateParams;\n            return validateParams$9(n, e, d, p, q, u);\n        }\n        case enums.publicKey.dsa: {\n            const { p, q, g, y } = publicParams;\n            const { x } = privateParams;\n            return validateParams$2(p, q, g, y, x);\n        }\n        case enums.publicKey.elgamal: {\n            const { p, g, y } = publicParams;\n            const { x } = privateParams;\n            return validateParams$8(p, g, y, x);\n        }\n        case enums.publicKey.ecdsa:\n        case enums.publicKey.ecdh: {\n            const algoModule = elliptic[enums.read(enums.publicKey, algo)];\n            const { oid, Q } = publicParams;\n            const { d } = privateParams;\n            return algoModule.validateParams(oid, Q, d);\n        }\n        case enums.publicKey.eddsaLegacy: {\n            const { Q, oid } = publicParams;\n            const { seed } = privateParams;\n            return validateParams$4(oid, Q, seed);\n        }\n        case enums.publicKey.ed25519:\n        case enums.publicKey.ed448: {\n            const { A } = publicParams;\n            const { seed } = privateParams;\n            return validateParams$7(algo, A, seed);\n        }\n        case enums.publicKey.x25519:\n        case enums.publicKey.x448: {\n            const { A } = publicParams;\n            const { k } = privateParams;\n            return validateParams$6(algo, A, k);\n        }\n        default:\n            throw new Error('Unknown public key algorithm.');\n    }\n}\n/**\n * Generating a session key for the specified symmetric algorithm\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.2|RFC 4880 9.2} for algorithms.\n * @param {module:enums.symmetric} algo - Symmetric encryption algorithm\n * @returns {Uint8Array} Random bytes as a string to be used as a key.\n */\nfunction generateSessionKey$1(algo) {\n    const { keySize } = getCipherParams(algo);\n    return getRandomBytes(keySize);\n}\n/**\n * Check whether the given curve OID is supported\n * @param {module:type/oid} oid - EC object identifier\n * @throws {UnsupportedError} if curve is not supported\n */\nfunction checkSupportedCurve(oid) {\n    try {\n        oid.getName();\n    }\n    catch {\n        throw new UnsupportedError('Unknown curve OID');\n    }\n}\n/**\n * Get encoded secret size for a given elliptic algo\n * @param {module:enums.publicKey} algo - alrogithm identifier\n * @param {module:type/oid} [oid] - curve OID if needed by algo\n */\nfunction getCurvePayloadSize(algo, oid) {\n    switch (algo) {\n        case enums.publicKey.ecdsa:\n        case enums.publicKey.ecdh:\n        case enums.publicKey.eddsaLegacy:\n            return new CurveWithOID(oid).payloadSize;\n        case enums.publicKey.ed25519:\n        case enums.publicKey.ed448:\n            return getPayloadSize$1(algo);\n        case enums.publicKey.x25519:\n        case enums.publicKey.x448:\n            return getPayloadSize(algo);\n        default:\n            throw new Error('Unknown elliptic algo');\n    }\n}\n/**\n * Get preferred signing hash algo for a given elliptic algo\n * @param {module:enums.publicKey} algo - alrogithm identifier\n * @param {module:type/oid} [oid] - curve OID if needed by algo\n */\nfunction getPreferredCurveHashAlgo(algo, oid) {\n    switch (algo) {\n        case enums.publicKey.ecdsa:\n        case enums.publicKey.eddsaLegacy:\n            return getPreferredHashAlgo$1(oid);\n        case enums.publicKey.ed25519:\n        case enums.publicKey.ed448:\n            return getPreferredHashAlgo$2(algo);\n        default:\n            throw new Error('Unknown elliptic signing algo');\n    }\n}\n\n// Modified by ProtonTech AG\n// Modified by Recurity Labs GmbH\n// modified version of https://www.hanewin.net/encrypt/PGdecode.js:\n/* OpenPGP encryption using RSA/AES\n * Copyright 2005-2006 Herbert Hanewinkel, www.haneWIN.de\n * version 2.0, check www.haneWIN.de for the latest version\n\n * This software is provided as-is, without express or implied warranty.\n * Permission to use, copy, modify, distribute or sell this software, with or\n * without fee, for any purpose and by any individual or organization, is hereby\n * granted, provided that the above copyright notice and this paragraph appear\n * in all copies. Distribution as a part of an application or binary must\n * include the above copyright notice in the documentation and/or other\n * materials provided with the application or distribution.\n */\n/**\n * @module crypto/mode/cfb\n * @access private\n */\nconst webCrypto$3 = util.getWebCrypto();\nconst nodeCrypto$3 = util.getNodeCrypto();\nconst knownAlgos = nodeCrypto$3 ? nodeCrypto$3.getCiphers() : [];\nconst nodeAlgos = {\n    idea: knownAlgos.includes('idea-cfb') ? 'idea-cfb' : undefined, /* Unused, not implemented */\n    tripledes: knownAlgos.includes('des-ede3-cfb') ? 'des-ede3-cfb' : undefined,\n    cast5: knownAlgos.includes('cast5-cfb') ? 'cast5-cfb' : undefined,\n    blowfish: knownAlgos.includes('bf-cfb') ? 'bf-cfb' : undefined,\n    aes128: knownAlgos.includes('aes-128-cfb') ? 'aes-128-cfb' : undefined,\n    aes192: knownAlgos.includes('aes-192-cfb') ? 'aes-192-cfb' : undefined,\n    aes256: knownAlgos.includes('aes-256-cfb') ? 'aes-256-cfb' : undefined\n    /* twofish is not implemented in OpenSSL */\n};\n/**\n * Generates a random byte prefix for the specified algorithm\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.2|RFC 4880 9.2} for algorithms.\n * @param {module:enums.symmetric} algo - Symmetric encryption algorithm\n * @returns {Promise<Uint8Array>} Random bytes with length equal to the block size of the cipher, plus the last two bytes repeated.\n */\nfunction getPrefixRandom(algo) {\n    const { blockSize } = getCipherParams(algo);\n    const prefixrandom = getRandomBytes(blockSize);\n    const repeat = new Uint8Array([prefixrandom[prefixrandom.length - 2], prefixrandom[prefixrandom.length - 1]]);\n    return util.concat([prefixrandom, repeat]);\n}\n/**\n * CFB encryption\n * @param {enums.symmetric} algo - block cipher algorithm\n * @param {Uint8Array} key\n * @param {MaybeStream<Uint8Array>} plaintext\n * @param {Uint8Array} iv\n * @param {Object} config - full configuration, defaults to openpgp.config\n * @returns MaybeStream<Uint8Array>\n */\nasync function encrypt$1(algo, key, plaintext, iv, config) {\n    const algoName = enums.read(enums.symmetric, algo);\n    if (util.getNodeCrypto() && nodeAlgos[algoName]) { // Node crypto library.\n        return nodeEncrypt(algo, key, plaintext, iv);\n    }\n    if (util.isAES(algo)) {\n        return aesEncrypt(algo, key, plaintext, iv);\n    }\n    const LegacyCipher = await getLegacyCipher(algo);\n    const cipherfn = new LegacyCipher(key);\n    const block_size = cipherfn.blockSize;\n    const blockc = iv.slice();\n    let pt = new Uint8Array();\n    const process = chunk => {\n        if (chunk) {\n            pt = util.concatUint8Array([pt, chunk]);\n        }\n        const ciphertext = new Uint8Array(pt.length);\n        let i;\n        let j = 0;\n        while (chunk ? pt.length >= block_size : pt.length) {\n            const encblock = cipherfn.encrypt(blockc);\n            for (i = 0; i < block_size; i++) {\n                blockc[i] = pt[i] ^ encblock[i];\n                ciphertext[j++] = blockc[i];\n            }\n            pt = pt.subarray(block_size);\n        }\n        return ciphertext.subarray(0, j);\n    };\n    return transform(plaintext, process, process);\n}\n/**\n * CFB decryption\n * @param {enums.symmetric} algo - block cipher algorithm\n * @param {Uint8Array} key\n * @param {MaybeStream<Uint8Array>} ciphertext\n * @param {Uint8Array} iv\n * @returns MaybeStream<Uint8Array>\n */\nasync function decrypt$1(algo, key, ciphertext, iv) {\n    const algoName = enums.read(enums.symmetric, algo);\n    if (nodeCrypto$3 && nodeAlgos[algoName]) { // Node crypto library.\n        return nodeDecrypt(algo, key, ciphertext, iv);\n    }\n    if (util.isAES(algo)) {\n        return aesDecrypt(algo, key, ciphertext, iv);\n    }\n    const LegacyCipher = await getLegacyCipher(algo);\n    const cipherfn = new LegacyCipher(key);\n    const block_size = cipherfn.blockSize;\n    let blockp = iv;\n    let ct = new Uint8Array();\n    const process = chunk => {\n        if (chunk) {\n            ct = util.concatUint8Array([ct, chunk]);\n        }\n        const plaintext = new Uint8Array(ct.length);\n        let i;\n        let j = 0;\n        while (chunk ? ct.length >= block_size : ct.length) {\n            const decblock = cipherfn.encrypt(blockp);\n            blockp = ct.subarray(0, block_size);\n            for (i = 0; i < block_size; i++) {\n                plaintext[j++] = blockp[i] ^ decblock[i];\n            }\n            ct = ct.subarray(block_size);\n        }\n        return plaintext.subarray(0, j);\n    };\n    return transform(ciphertext, process, process);\n}\nclass WebCryptoEncryptor {\n    constructor(algo, key, iv) {\n        const { blockSize } = getCipherParams(algo);\n        this.key = key;\n        this.iv = iv;\n        this.prevBlock = iv.slice();\n        this.nextBlock = new Uint8Array(blockSize);\n        this.i = 0; // pointer inside next block\n        this.blockSize = blockSize;\n        this.zeroBlock = new Uint8Array(this.blockSize);\n    }\n    /**\n     * @returns {Promise<boolean>}\n     */\n    static isSupported(algo) {\n        const { keySize } = getCipherParams(algo);\n        return webCrypto$3.importKey('raw', new Uint8Array(keySize), 'aes-cbc', false, ['encrypt'])\n            .then(() => true, () => false);\n    }\n    async _runCBC(plaintext, nonZeroIV) {\n        const mode = 'AES-CBC';\n        this.keyRef = this.keyRef || await webCrypto$3.importKey('raw', this.key, mode, false, ['encrypt']);\n        const ciphertext = await webCrypto$3.encrypt({ name: mode, iv: nonZeroIV || this.zeroBlock }, this.keyRef, plaintext);\n        return new Uint8Array(ciphertext).subarray(0, plaintext.length);\n    }\n    async encryptChunk(value) {\n        const missing = this.nextBlock.length - this.i;\n        const added = value.subarray(0, missing);\n        this.nextBlock.set(added, this.i);\n        if ((this.i + value.length) >= (2 * this.blockSize)) {\n            const leftover = (value.length - missing) % this.blockSize;\n            const plaintext = util.concatUint8Array([\n                this.nextBlock,\n                value.subarray(missing, value.length - leftover)\n            ]);\n            const toEncrypt = util.concatUint8Array([\n                this.prevBlock,\n                plaintext.subarray(0, plaintext.length - this.blockSize) // stop one block \"early\", since we only need to xor the plaintext and pass it over as prevBlock\n            ]);\n            const encryptedBlocks = await this._runCBC(toEncrypt);\n            xorMut$1(encryptedBlocks, plaintext);\n            this.prevBlock = encryptedBlocks.slice(-this.blockSize);\n            // take care of leftover data\n            if (leftover > 0)\n                this.nextBlock.set(value.subarray(-leftover));\n            this.i = leftover;\n            return encryptedBlocks;\n        }\n        this.i += added.length;\n        let encryptedBlock;\n        if (this.i === this.nextBlock.length) { // block ready to be encrypted\n            const curBlock = this.nextBlock;\n            encryptedBlock = await this._runCBC(this.prevBlock);\n            xorMut$1(encryptedBlock, curBlock);\n            this.prevBlock = encryptedBlock.slice();\n            this.i = 0;\n            const remaining = value.subarray(added.length);\n            this.nextBlock.set(remaining, this.i);\n            this.i += remaining.length;\n        }\n        else {\n            encryptedBlock = new Uint8Array();\n        }\n        return encryptedBlock;\n    }\n    async finish() {\n        let result;\n        if (this.i === 0) { // nothing more to encrypt\n            result = new Uint8Array();\n        }\n        else {\n            this.nextBlock = this.nextBlock.subarray(0, this.i);\n            const curBlock = this.nextBlock;\n            const encryptedBlock = await this._runCBC(this.prevBlock);\n            xorMut$1(encryptedBlock, curBlock);\n            result = encryptedBlock.subarray(0, curBlock.length);\n        }\n        this.clearSensitiveData();\n        return result;\n    }\n    clearSensitiveData() {\n        this.nextBlock.fill(0);\n        this.prevBlock.fill(0);\n        this.keyRef = null;\n        this.key = null;\n    }\n    async encrypt(plaintext) {\n        // plaintext is internally padded to block length before encryption\n        const encryptedWithPadding = await this._runCBC(util.concatUint8Array([new Uint8Array(this.blockSize), plaintext]), this.iv);\n        // drop encrypted padding\n        const ct = encryptedWithPadding.subarray(0, plaintext.length);\n        xorMut$1(ct, plaintext);\n        this.clearSensitiveData();\n        return ct;\n    }\n}\nclass NobleStreamProcessor {\n    constructor(forEncryption, algo, key, iv) {\n        this.forEncryption = forEncryption;\n        const { blockSize } = getCipherParams(algo);\n        this.key = unsafe.expandKeyLE(key);\n        if (iv.byteOffset % 4 !== 0)\n            iv = iv.slice(); // aligned arrays required by noble-ciphers\n        this.prevBlock = getUint32Array(iv);\n        this.nextBlock = new Uint8Array(blockSize);\n        this.i = 0; // pointer inside next block\n        this.blockSize = blockSize;\n    }\n    _runCFB(src) {\n        const src32 = getUint32Array(src);\n        const dst = new Uint8Array(src.length);\n        const dst32 = getUint32Array(dst);\n        for (let i = 0; i + 4 <= dst32.length; i += 4) {\n            const { s0: e0, s1: e1, s2: e2, s3: e3 } = unsafe.encrypt(this.key, this.prevBlock[0], this.prevBlock[1], this.prevBlock[2], this.prevBlock[3]);\n            dst32[i + 0] = src32[i + 0] ^ e0;\n            dst32[i + 1] = src32[i + 1] ^ e1;\n            dst32[i + 2] = src32[i + 2] ^ e2;\n            dst32[i + 3] = src32[i + 3] ^ e3;\n            this.prevBlock = (this.forEncryption ? dst32 : src32).slice(i, i + 4);\n        }\n        return dst;\n    }\n    // eslint-disable-next-line @typescript-eslint/require-await\n    async processChunk(value) {\n        const missing = this.nextBlock.length - this.i;\n        const added = value.subarray(0, missing);\n        this.nextBlock.set(added, this.i);\n        if ((this.i + value.length) >= (2 * this.blockSize)) {\n            const leftover = (value.length - missing) % this.blockSize;\n            const toProcess = util.concatUint8Array([\n                this.nextBlock,\n                value.subarray(missing, value.length - leftover)\n            ]);\n            const processedBlocks = this._runCFB(toProcess);\n            // take care of leftover data\n            if (leftover > 0)\n                this.nextBlock.set(value.subarray(-leftover));\n            this.i = leftover;\n            return processedBlocks;\n        }\n        this.i += added.length;\n        let processedBlock;\n        if (this.i === this.nextBlock.length) { // block ready to be encrypted\n            processedBlock = this._runCFB(this.nextBlock);\n            this.i = 0;\n            const remaining = value.subarray(added.length);\n            this.nextBlock.set(remaining, this.i);\n            this.i += remaining.length;\n        }\n        else {\n            processedBlock = new Uint8Array();\n        }\n        return processedBlock;\n    }\n    // eslint-disable-next-line @typescript-eslint/require-await\n    async finish() {\n        let result;\n        if (this.i === 0) { // nothing more to encrypt\n            result = new Uint8Array();\n        }\n        else {\n            const processedBlock = this._runCFB(this.nextBlock);\n            result = processedBlock.subarray(0, this.i);\n        }\n        this.clearSensitiveData();\n        return result;\n    }\n    clearSensitiveData() {\n        this.nextBlock.fill(0);\n        this.prevBlock.fill(0);\n        this.key.fill(0);\n    }\n}\nasync function aesEncrypt(algo, key, pt, iv) {\n    if (webCrypto$3 && await WebCryptoEncryptor.isSupported(algo)) { // Chromium does not implement AES with 192-bit keys\n        const cfb = new WebCryptoEncryptor(algo, key, iv);\n        return util.isStream(pt) ? transformAsync(pt, value => cfb.encryptChunk(value), () => cfb.finish()) : cfb.encrypt(pt);\n    }\n    else if (util.isStream(pt)) { // async callbacks are not accepted by streamTransform unless the input is a stream\n        const cfb = new NobleStreamProcessor(true, algo, key, iv);\n        return transformAsync(pt, value => cfb.processChunk(value), () => cfb.finish());\n    }\n    return cfb(key, iv).encrypt(pt);\n}\nfunction aesDecrypt(algo, key, ct, iv) {\n    if (util.isStream(ct)) {\n        const cfb = new NobleStreamProcessor(false, algo, key, iv);\n        return transformAsync(ct, value => cfb.processChunk(value), () => cfb.finish());\n    }\n    return cfb(key, iv).decrypt(ct);\n}\nfunction xorMut$1(a, b) {\n    const aLength = Math.min(a.length, b.length);\n    for (let i = 0; i < aLength; i++) {\n        a[i] = a[i] ^ b[i];\n    }\n}\nconst getUint32Array = arr => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\nfunction nodeEncrypt(algo, key, pt, iv) {\n    const algoName = enums.read(enums.symmetric, algo);\n    const cipherObj = new nodeCrypto$3.createCipheriv(nodeAlgos[algoName], key, iv);\n    return transform(pt, value => new Uint8Array(cipherObj.update(value)));\n}\nfunction nodeDecrypt(algo, key, ct, iv) {\n    const algoName = enums.read(enums.symmetric, algo);\n    const decipherObj = new nodeCrypto$3.createDecipheriv(nodeAlgos[algoName], key, iv);\n    return transform(ct, value => new Uint8Array(decipherObj.update(value)));\n}\n\n/**\n * @fileoverview This module implements AES-CMAC on top of\n * native AES-CBC using either the WebCrypto API or Node.js' crypto API.\n * @module crypto/cmac\n * @access private\n */\nconst webCrypto$2 = util.getWebCrypto();\nconst nodeCrypto$2 = util.getNodeCrypto();\n/**\n * This implementation of CMAC is based on the description of OMAC in\n * http://web.cs.ucdavis.edu/~rogaway/papers/eax.pdf. As per that\n * document:\n *\n * We have made a small modification to the OMAC algorithm as it was\n * originally presented, changing one of its two constants.\n * Specifically, the constant 4 at line 85 was the constant 1/2 (the\n * multiplicative inverse of 2) in the original definition of OMAC [14].\n * The OMAC authors indicate that they will promulgate this modification\n * [15], which slightly simplifies implementations.\n */\nconst blockLength$3 = 16;\n/**\n * xor `padding` into the end of `data`. This function implements \"the\n * operation xor\u2192 [which] xors the shorter string into the end of longer\n * one\". Since data is always as least as long as padding, we can\n * simplify the implementation.\n * @param {Uint8Array} data\n * @param {Uint8Array} padding\n */\nfunction rightXORMut(data, padding) {\n    const offset = data.length - blockLength$3;\n    for (let i = 0; i < blockLength$3; i++) {\n        data[i + offset] ^= padding[i];\n    }\n    return data;\n}\nfunction pad(data, padding, padding2) {\n    // if |M| in {n, 2n, 3n, ...}\n    if (data.length && data.length % blockLength$3 === 0) {\n        // then return M xor\u2192 B,\n        return rightXORMut(data, padding);\n    }\n    // else return (M || 10^(n\u22121\u2212(|M| mod n))) xor\u2192 P\n    const padded = new Uint8Array(data.length + (blockLength$3 - (data.length % blockLength$3)));\n    padded.set(data);\n    padded[data.length] = 0b10000000;\n    return rightXORMut(padded, padding2);\n}\nconst zeroBlock$1 = new Uint8Array(blockLength$3);\nasync function CMAC(key) {\n    const cbc = await CBC(key);\n    // L \u2190 E_K(0^n); B \u2190 2L; P \u2190 4L\n    const padding = util.double(await cbc(zeroBlock$1));\n    const padding2 = util.double(padding);\n    return async function (data) {\n        // return CBC_K(pad(M; B, P))\n        return (await cbc(pad(data, padding, padding2))).subarray(-blockLength$3);\n    };\n}\nasync function CBC(key) {\n    if (util.getNodeCrypto()) { // Node crypto library\n        // eslint-disable-next-line @typescript-eslint/require-await\n        return async function (pt) {\n            const en = new nodeCrypto$2.createCipheriv('aes-' + (key.length * 8) + '-cbc', key, zeroBlock$1);\n            const ct = en.update(pt);\n            return new Uint8Array(ct);\n        };\n    }\n    if (util.getWebCrypto()) {\n        try {\n            key = await webCrypto$2.importKey('raw', key, { name: 'AES-CBC', length: key.length * 8 }, false, ['encrypt']);\n            return async function (pt) {\n                const ct = await webCrypto$2.encrypt({ name: 'AES-CBC', iv: zeroBlock$1, length: blockLength$3 * 8 }, key, pt);\n                return new Uint8Array(ct).subarray(0, ct.byteLength - blockLength$3);\n            };\n        }\n        catch (err) {\n            // no 192 bit support in Chromium, which throws `OperationError`, see: https://www.chromium.org/blink/webcrypto#TOC-AES-support\n            if (err.name !== 'NotSupportedError' &&\n                !(key.length === 24 && err.name === 'OperationError')) {\n                throw err;\n            }\n            util.printDebugError('Browser did not support operation: ' + err.message);\n        }\n    }\n    // eslint-disable-next-line @typescript-eslint/require-await\n    return async function (pt) {\n        return cbc(key, zeroBlock$1, { disablePadding: true }).encrypt(pt);\n    };\n}\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2018 ProtonTech AG\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview This module implements AES-EAX en/decryption on top of\n * native AES-CTR using either the WebCrypto API or Node.js' crypto API.\n * @module crypto/mode/eax\n * @access private\n */\nconst webCrypto$1 = util.getWebCrypto();\nconst nodeCrypto$1 = util.getNodeCrypto();\nconst Buffer$1 = util.getNodeBuffer();\nconst blockLength$2 = 16;\nconst ivLength$2 = blockLength$2;\nconst tagLength$2 = blockLength$2;\nconst zero = new Uint8Array(blockLength$2);\nconst one$1 = new Uint8Array(blockLength$2);\none$1[blockLength$2 - 1] = 1;\nconst two = new Uint8Array(blockLength$2);\ntwo[blockLength$2 - 1] = 2;\nasync function OMAC(key) {\n    const cmac = await CMAC(key);\n    return function (t, message) {\n        return cmac(util.concatUint8Array([t, message]));\n    };\n}\nasync function CTR(key) {\n    if (util.getNodeCrypto()) { // Node crypto library\n        // eslint-disable-next-line @typescript-eslint/require-await\n        return async function (pt, iv) {\n            const en = new nodeCrypto$1.createCipheriv('aes-' + (key.length * 8) + '-ctr', key, iv);\n            const ct = Buffer$1.concat([en.update(pt), en.final()]);\n            return new Uint8Array(ct);\n        };\n    }\n    if (util.getWebCrypto()) {\n        try {\n            const keyRef = await webCrypto$1.importKey('raw', key, { name: 'AES-CTR', length: key.length * 8 }, false, ['encrypt']);\n            return async function (pt, iv) {\n                const ct = await webCrypto$1.encrypt({ name: 'AES-CTR', counter: iv, length: blockLength$2 * 8 }, keyRef, pt);\n                return new Uint8Array(ct);\n            };\n        }\n        catch (err) {\n            // no 192 bit support in Chromium, which throws `OperationError`, see: https://www.chromium.org/blink/webcrypto#TOC-AES-support\n            if (err.name !== 'NotSupportedError' &&\n                !(key.length === 24 && err.name === 'OperationError')) {\n                throw err;\n            }\n            util.printDebugError('Browser did not support operation: ' + err.message);\n        }\n    }\n    // eslint-disable-next-line @typescript-eslint/require-await\n    return async function (pt, iv) {\n        return ctr(key, iv).encrypt(pt);\n    };\n}\n/**\n * Class to en/decrypt using EAX mode.\n * @param {enums.symmetric} cipher - The symmetric cipher algorithm to use\n * @param {Uint8Array} key - The encryption key\n */\nasync function EAX(cipher, key) {\n    if (cipher !== enums.symmetric.aes128 &&\n        cipher !== enums.symmetric.aes192 &&\n        cipher !== enums.symmetric.aes256) {\n        throw new Error('EAX mode supports only AES cipher');\n    }\n    const [omac, ctr] = await Promise.all([\n        OMAC(key),\n        CTR(key)\n    ]);\n    return {\n        /**\n         * Encrypt plaintext input.\n         * @param {Uint8Array} plaintext - The cleartext input to be encrypted\n         * @param {Uint8Array} nonce - The nonce (16 bytes)\n         * @param {Uint8Array} adata - Associated data to sign\n         * @returns {Promise<Uint8Array>} The ciphertext output.\n         */\n        encrypt: async function (plaintext, nonce, adata) {\n            const [omacNonce, omacAdata] = await Promise.all([\n                omac(zero, nonce),\n                omac(one$1, adata)\n            ]);\n            const ciphered = await ctr(plaintext, omacNonce);\n            const omacCiphered = await omac(two, ciphered);\n            const tag = omacCiphered; // Assumes that omac(*).length === tagLength.\n            for (let i = 0; i < tagLength$2; i++) {\n                tag[i] ^= omacAdata[i] ^ omacNonce[i];\n            }\n            return util.concatUint8Array([ciphered, tag]);\n        },\n        /**\n         * Decrypt ciphertext input.\n         * @param {Uint8Array} ciphertext - The ciphertext input to be decrypted\n         * @param {Uint8Array} nonce - The nonce (16 bytes)\n         * @param {Uint8Array} adata - Associated data to verify\n         * @returns {Promise<Uint8Array>} The plaintext output.\n         */\n        decrypt: async function (ciphertext, nonce, adata) {\n            if (ciphertext.length < tagLength$2)\n                throw new Error('Invalid EAX ciphertext');\n            const ciphered = ciphertext.subarray(0, -tagLength$2);\n            const ctTag = ciphertext.subarray(-tagLength$2);\n            const [omacNonce, omacAdata, omacCiphered] = await Promise.all([\n                omac(zero, nonce),\n                omac(one$1, adata),\n                omac(two, ciphered)\n            ]);\n            const tag = omacCiphered; // Assumes that omac(*).length === tagLength.\n            for (let i = 0; i < tagLength$2; i++) {\n                tag[i] ^= omacAdata[i] ^ omacNonce[i];\n            }\n            if (!util.equalsUint8Array(ctTag, tag))\n                throw new Error('Authentication tag mismatch');\n            const plaintext = await ctr(ciphered, omacNonce);\n            return plaintext;\n        }\n    };\n}\n/**\n * Get EAX nonce as defined by {@link https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-04#section-5.16.1|RFC4880bis-04, section 5.16.1}.\n * @param {Uint8Array} iv - The initialization vector (16 bytes)\n * @param {Uint8Array} chunkIndex - The chunk index (8 bytes)\n */\nEAX.getNonce = function (iv, chunkIndex) {\n    const nonce = iv.slice();\n    for (let i = 0; i < chunkIndex.length; i++) {\n        nonce[8 + i] ^= chunkIndex[i];\n    }\n    return nonce;\n};\nEAX.blockLength = blockLength$2;\nEAX.ivLength = ivLength$2;\nEAX.tagLength = tagLength$2;\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2018 ProtonTech AG\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview This module implements AES-OCB en/decryption.\n * @module crypto/mode/ocb\n * @access private\n */\nconst blockLength$1 = 16;\nconst ivLength$1 = 15;\n// https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-04#section-5.16.2:\n// While OCB [RFC7253] allows the authentication tag length to be of any\n// number up to 128 bits long, this document requires a fixed\n// authentication tag length of 128 bits (16 octets) for simplicity.\nconst tagLength$1 = 16;\nfunction ntz(n) {\n    let ntz = 0;\n    for (let i = 1; (n & i) === 0; i <<= 1) {\n        ntz++;\n    }\n    return ntz;\n}\nfunction xorMut(S, T) {\n    for (let i = 0; i < S.length; i++) {\n        S[i] ^= T[i];\n    }\n    return S;\n}\nfunction xor(S, T) {\n    return xorMut(S.slice(), T);\n}\nconst zeroBlock = new Uint8Array(blockLength$1);\nconst one = new Uint8Array([1]);\n/**\n * Class to en/decrypt using OCB mode.\n * @param {enums.symmetric} cipher - The symmetric cipher algorithm to use\n * @param {Uint8Array} key - The encryption key\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function OCB(cipher, key) {\n    const { keySize } = getCipherParams(cipher);\n    // sanity checks\n    if (!util.isAES(cipher) || key.length !== keySize) {\n        throw new Error('Unexpected algorithm or key size');\n    }\n    let maxNtz = 0;\n    // `encipher` and `decipher` cannot be async, since `crypt` shares state across calls,\n    // hence its execution cannot be broken up.\n    // As a result, WebCrypto cannot currently be used for `encipher`.\n    const encipher = block => cbc(key, zeroBlock, { disablePadding: true }).encrypt(block);\n    const decipher = block => cbc(key, zeroBlock, { disablePadding: true }).decrypt(block);\n    let mask;\n    constructKeyVariables();\n    function constructKeyVariables() {\n        const mask_x = encipher(zeroBlock);\n        const mask_$ = util.double(mask_x);\n        mask = [];\n        mask[0] = util.double(mask_$);\n        mask.x = mask_x;\n        mask.$ = mask_$;\n    }\n    function extendKeyVariables(text, adata) {\n        const newMaxNtz = util.nbits(Math.max(text.length, adata.length) / blockLength$1 | 0) - 1;\n        for (let i = maxNtz + 1; i <= newMaxNtz; i++) {\n            mask[i] = util.double(mask[i - 1]);\n        }\n        maxNtz = newMaxNtz;\n    }\n    function hash(adata) {\n        if (!adata.length) {\n            // Fast path\n            return zeroBlock;\n        }\n        //\n        // Consider A as a sequence of 128-bit blocks\n        //\n        const m = adata.length / blockLength$1 | 0;\n        const offset = new Uint8Array(blockLength$1);\n        const sum = new Uint8Array(blockLength$1);\n        for (let i = 0; i < m; i++) {\n            xorMut(offset, mask[ntz(i + 1)]);\n            xorMut(sum, encipher(xor(offset, adata)));\n            adata = adata.subarray(blockLength$1);\n        }\n        //\n        // Process any final partial block; compute final hash value\n        //\n        if (adata.length) {\n            xorMut(offset, mask.x);\n            const cipherInput = new Uint8Array(blockLength$1);\n            cipherInput.set(adata, 0);\n            cipherInput[adata.length] = 0b10000000;\n            xorMut(cipherInput, offset);\n            xorMut(sum, encipher(cipherInput));\n        }\n        return sum;\n    }\n    /**\n     * Encrypt/decrypt data.\n     * @param {encipher|decipher} fn - Encryption/decryption block cipher function\n     * @param {Uint8Array} text - The cleartext or ciphertext (without tag) input\n     * @param {Uint8Array} nonce - The nonce (15 bytes)\n     * @param {Uint8Array} adata - Associated data to sign\n     * @returns {Promise<Uint8Array>} The ciphertext or plaintext output, with tag appended in both cases.\n     */\n    function crypt(fn, text, nonce, adata) {\n        //\n        // Consider P as a sequence of 128-bit blocks\n        //\n        const m = text.length / blockLength$1 | 0;\n        //\n        // Key-dependent variables\n        //\n        extendKeyVariables(text, adata);\n        //\n        // Nonce-dependent and per-encryption variables\n        //\n        //    Nonce = num2str(TAGLEN mod 128,7) || zeros(120-bitlen(N)) || 1 || N\n        // Note: We assume here that tagLength mod 16 == 0.\n        const paddedNonce = util.concatUint8Array([zeroBlock.subarray(0, ivLength$1 - nonce.length), one, nonce]);\n        //    bottom = str2num(Nonce[123..128])\n        const bottom = paddedNonce[blockLength$1 - 1] & 0b111111;\n        //    Ktop = ENCIPHER(K, Nonce[1..122] || zeros(6))\n        paddedNonce[blockLength$1 - 1] &= 0b11000000;\n        const kTop = encipher(paddedNonce);\n        //    Stretch = Ktop || (Ktop[1..64] xor Ktop[9..72])\n        const stretched = util.concatUint8Array([kTop, xor(kTop.subarray(0, 8), kTop.subarray(1, 9))]);\n        //    Offset_0 = Stretch[1+bottom..128+bottom]\n        const offset = util.shiftRight(stretched.subarray(0 + (bottom >> 3), 17 + (bottom >> 3)), 8 - (bottom & 7)).subarray(1);\n        //    Checksum_0 = zeros(128)\n        const checksum = new Uint8Array(blockLength$1);\n        const ct = new Uint8Array(text.length + tagLength$1);\n        //\n        // Process any whole blocks\n        //\n        let i;\n        let pos = 0;\n        for (i = 0; i < m; i++) {\n            // Offset_i = Offset_{i-1} xor L_{ntz(i)}\n            xorMut(offset, mask[ntz(i + 1)]);\n            // C_i = Offset_i xor ENCIPHER(K, P_i xor Offset_i)\n            // P_i = Offset_i xor DECIPHER(K, C_i xor Offset_i)\n            ct.set(xorMut(fn(xor(offset, text)), offset), pos);\n            // Checksum_i = Checksum_{i-1} xor P_i\n            xorMut(checksum, fn === encipher ? text : ct.subarray(pos));\n            text = text.subarray(blockLength$1);\n            pos += blockLength$1;\n        }\n        //\n        // Process any final partial block and compute raw tag\n        //\n        if (text.length) {\n            // Offset_* = Offset_m xor L_*\n            xorMut(offset, mask.x);\n            // Pad = ENCIPHER(K, Offset_*)\n            const padding = encipher(offset);\n            // C_* = P_* xor Pad[1..bitlen(P_*)]\n            ct.set(xor(text, padding), pos);\n            // Checksum_* = Checksum_m xor (P_* || 1 || new Uint8Array(127-bitlen(P_*)))\n            const xorInput = new Uint8Array(blockLength$1);\n            xorInput.set(fn === encipher ? text : ct.subarray(pos, -tagLength$1), 0);\n            xorInput[text.length] = 0b10000000;\n            xorMut(checksum, xorInput);\n            pos += text.length;\n        }\n        // Tag = ENCIPHER(K, Checksum_* xor Offset_* xor L_$) xor HASH(K,A)\n        const tag = xorMut(encipher(xorMut(xorMut(checksum, offset), mask.$)), hash(adata));\n        //\n        // Assemble ciphertext\n        //\n        // C = C_1 || C_2 || ... || C_m || C_* || Tag[1..TAGLEN]\n        ct.set(tag, pos);\n        return ct;\n    }\n    return {\n        /**\n         * Encrypt plaintext input.\n         * @param {Uint8Array} plaintext - The cleartext input to be encrypted\n         * @param {Uint8Array} nonce - The nonce (15 bytes)\n         * @param {Uint8Array} adata - Associated data to sign\n         * @returns {Promise<Uint8Array>} The ciphertext output.\n         */\n        encrypt: async function (plaintext, nonce, adata) {\n            return crypt(encipher, plaintext, nonce, adata);\n        },\n        /**\n         * Decrypt ciphertext input.\n         * @param {Uint8Array} ciphertext - The ciphertext input to be decrypted\n         * @param {Uint8Array} nonce - The nonce (15 bytes)\n         * @param {Uint8Array} adata - Associated data to sign\n         * @returns {Promise<Uint8Array>} The ciphertext output.\n         */\n        // eslint-disable-next-line @typescript-eslint/require-await\n        decrypt: async function (ciphertext, nonce, adata) {\n            if (ciphertext.length < tagLength$1)\n                throw new Error('Invalid OCB ciphertext');\n            const tag = ciphertext.subarray(-tagLength$1);\n            ciphertext = ciphertext.subarray(0, -tagLength$1);\n            const crypted = crypt(decipher, ciphertext, nonce, adata);\n            // if (Tag[1..TAGLEN] == T)\n            if (util.equalsUint8Array(tag, crypted.subarray(-tagLength$1))) {\n                return crypted.subarray(0, -tagLength$1);\n            }\n            throw new Error('Authentication tag mismatch');\n        }\n    };\n}\n/**\n * Get OCB nonce as defined by {@link https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-04#section-5.16.2|RFC4880bis-04, section 5.16.2}.\n * @param {Uint8Array} iv - The initialization vector (15 bytes)\n * @param {Uint8Array} chunkIndex - The chunk index (8 bytes)\n */\nOCB.getNonce = function (iv, chunkIndex) {\n    const nonce = iv.slice();\n    for (let i = 0; i < chunkIndex.length; i++) {\n        nonce[7 + i] ^= chunkIndex[i];\n    }\n    return nonce;\n};\nOCB.blockLength = blockLength$1;\nOCB.ivLength = ivLength$1;\nOCB.tagLength = tagLength$1;\n\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2016 Tankred Hase\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * @fileoverview This module wraps native AES-GCM en/decryption for both\n * the WebCrypto api as well as node.js' crypto api.\n * @module crypto/mode/gcm\n * @access private\n */\nconst webCrypto = util.getWebCrypto();\nconst nodeCrypto = util.getNodeCrypto();\nconst Buffer = util.getNodeBuffer();\nconst blockLength = 16;\nconst ivLength = 12; // size of the IV in bytes\nconst tagLength = 16; // size of the tag in bytes\nconst ALGO = 'AES-GCM';\n/**\n * Class to en/decrypt using GCM mode.\n * @param {enums.symmetric} cipher - The symmetric cipher algorithm to use\n * @param {Uint8Array} key - The encryption key\n */\nasync function GCM(cipher, key) {\n    if (cipher !== enums.symmetric.aes128 &&\n        cipher !== enums.symmetric.aes192 &&\n        cipher !== enums.symmetric.aes256) {\n        throw new Error('GCM mode supports only AES cipher');\n    }\n    if (util.getNodeCrypto()) { // Node crypto library\n        return {\n            // eslint-disable-next-line @typescript-eslint/require-await\n            encrypt: async function (pt, iv, adata = new Uint8Array()) {\n                const en = new nodeCrypto.createCipheriv('aes-' + (key.length * 8) + '-gcm', key, iv);\n                en.setAAD(adata);\n                const ct = Buffer.concat([en.update(pt), en.final(), en.getAuthTag()]); // append auth tag to ciphertext\n                return new Uint8Array(ct);\n            },\n            // eslint-disable-next-line @typescript-eslint/require-await\n            decrypt: async function (ct, iv, adata = new Uint8Array()) {\n                const de = new nodeCrypto.createDecipheriv('aes-' + (key.length * 8) + '-gcm', key, iv);\n                de.setAAD(adata);\n                de.setAuthTag(ct.slice(ct.length - tagLength, ct.length)); // read auth tag at end of ciphertext\n                const pt = Buffer.concat([de.update(ct.slice(0, ct.length - tagLength)), de.final()]);\n                return new Uint8Array(pt);\n            }\n        };\n    }\n    if (util.getWebCrypto()) {\n        try {\n            const _key = await webCrypto.importKey('raw', key, { name: ALGO }, false, ['encrypt', 'decrypt']);\n            // Safari 13 and Safari iOS 14 does not support GCM-en/decrypting empty messages\n            const webcryptoEmptyMessagesUnsupported = navigator.userAgent.match(/Version\\/13\\.\\d(\\.\\d)* Safari/) ||\n                navigator.userAgent.match(/Version\\/(13|14)\\.\\d(\\.\\d)* Mobile\\/\\S* Safari/);\n            return {\n                encrypt: async function (pt, iv, adata = new Uint8Array()) {\n                    if (webcryptoEmptyMessagesUnsupported && !pt.length) {\n                        return gcm(key, iv, adata).encrypt(pt);\n                    }\n                    const ct = await webCrypto.encrypt({ name: ALGO, iv, additionalData: adata, tagLength: tagLength * 8 }, _key, pt);\n                    return new Uint8Array(ct);\n                },\n                decrypt: async function (ct, iv, adata = new Uint8Array()) {\n                    if (webcryptoEmptyMessagesUnsupported && ct.length === tagLength) {\n                        return gcm(key, iv, adata).decrypt(ct);\n                    }\n                    try {\n                        const pt = await webCrypto.decrypt({ name: ALGO, iv, additionalData: adata, tagLength: tagLength * 8 }, _key, ct);\n                        return new Uint8Array(pt);\n                    }\n                    catch (e) {\n                        if (e.name === 'OperationError') {\n                            throw new Error('Authentication tag mismatch');\n                        }\n                    }\n                }\n            };\n        }\n        catch (err) {\n            // no 192 bit support in Chromium, which throws `OperationError`, see: https://www.chromium.org/blink/webcrypto#TOC-AES-support\n            if (err.name !== 'NotSupportedError' &&\n                !(key.length === 24 && err.name === 'OperationError')) {\n                throw err;\n            }\n            util.printDebugError('Browser did not support operation: ' + err.message);\n        }\n    }\n    return {\n        // eslint-disable-next-line @typescript-eslint/require-await\n        encrypt: async function (pt, iv, adata) {\n            return gcm(key, iv, adata).encrypt(pt);\n        },\n        // eslint-disable-next-line @typescript-eslint/require-await\n        decrypt: async function (ct, iv, adata) {\n            return gcm(key, iv, adata).decrypt(ct);\n        }\n    };\n}\n/**\n * Get GCM nonce. Note: this operation is not defined by the standard.\n * A future version of the standard may define GCM mode differently,\n * hopefully under a different ID (we use Private/Experimental algorithm\n * ID 100) so that we can maintain backwards compatibility.\n * @param {Uint8Array} iv - The initialization vector (12 bytes)\n * @param {Uint8Array} chunkIndex - The chunk index (8 bytes)\n */\nGCM.getNonce = function (iv, chunkIndex) {\n    const nonce = iv.slice();\n    for (let i = 0; i < chunkIndex.length; i++) {\n        nonce[4 + i] ^= chunkIndex[i];\n    }\n    return nonce;\n};\nGCM.blockLength = blockLength;\nGCM.ivLength = ivLength;\nGCM.tagLength = tagLength;\n\n/**\n * @fileoverview Cipher modes\n * @module crypto/cipherMode\n * @access private\n */\n/**\n* Get implementation of the given AEAD mode\n* @param {enums.aead} algo\n* @param {Boolean} [acceptExperimentalGCM] - whether to allow the non-standard, legacy `experimentalGCM` algo\n* @returns {Object}\n* @throws {Error} on invalid algo\n*/\nfunction getAEADMode(algo, acceptExperimentalGCM = false) {\n    switch (algo) {\n        case enums.aead.eax:\n            return EAX;\n        case enums.aead.ocb:\n            return OCB;\n        case enums.aead.gcm:\n            return GCM;\n        case enums.aead.experimentalGCM:\n            if (!acceptExperimentalGCM) {\n                throw new Error('Unexpected non-standard `experimentalGCM` AEAD algorithm provided in `config.preferredAEADAlgorithm`: use `gcm` instead');\n            }\n            return GCM;\n        default:\n            throw new Error('Unsupported AEAD mode');\n    }\n}\n\n/**\n * @fileoverview Provides functions for asymmetric signing and signature verification\n * @module crypto/signature\n * @access private\n */\n/**\n * Parse signature in binary form to get the parameters.\n * The returned values are only padded for EdDSA, since in the other cases their expected length\n * depends on the key params, hence we delegate the padding to the signature verification function.\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.1|RFC 4880 9.1}\n * See {@link https://tools.ietf.org/html/rfc4880#section-5.2.2|RFC 4880 5.2.2.}\n * @param {module:enums.publicKey} algo - Public key algorithm\n * @param {Uint8Array} signature - Data for which the signature was created\n * @returns {Promise<Object>} True if signature is valid.\n * @async\n */\nfunction parseSignatureParams(algo, signature) {\n    let read = 0;\n    switch (algo) {\n        // Algorithm-Specific Fields for RSA signatures:\n        // -  MPI of RSA signature value m**d mod n.\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.rsaSign: {\n            const s = util.readMPI(signature.subarray(read));\n            read += s.length + 2;\n            // The signature needs to be the same length as the public key modulo n.\n            // We pad s on signature verification, where we have access to n.\n            return { read, signatureParams: { s } };\n        }\n        // Algorithm-Specific Fields for DSA or ECDSA signatures:\n        // -  MPI of DSA or ECDSA value r.\n        // -  MPI of DSA or ECDSA value s.\n        case enums.publicKey.dsa:\n        case enums.publicKey.ecdsa:\n            {\n                // If the signature payload sizes are unexpected, we will throw on verification,\n                // where we also have access to the OID curve from the key.\n                const r = util.readMPI(signature.subarray(read));\n                read += r.length + 2;\n                const s = util.readMPI(signature.subarray(read));\n                read += s.length + 2;\n                return { read, signatureParams: { r, s } };\n            }\n        // Algorithm-Specific Fields for legacy EdDSA signatures:\n        // -  MPI of an EC point r.\n        // -  EdDSA value s, in MPI, in the little endian representation\n        case enums.publicKey.eddsaLegacy: {\n            // Only Curve25519Legacy is supported (no Curve448Legacy), but the relevant checks are done on key parsing and signature\n            // verification: if the signature payload sizes are unexpected, we will throw on verification,\n            // where we also have access to the OID curve from the key.\n            const r = util.readMPI(signature.subarray(read));\n            read += r.length + 2;\n            const s = util.readMPI(signature.subarray(read));\n            read += s.length + 2;\n            return { read, signatureParams: { r, s } };\n        }\n        // Algorithm-Specific Fields for Ed25519 signatures:\n        // - 64 octets of the native signature\n        // Algorithm-Specific Fields for Ed448 signatures:\n        // - 114 octets of the native signature\n        case enums.publicKey.ed25519:\n        case enums.publicKey.ed448: {\n            const rsSize = 2 * getPayloadSize$1(algo);\n            const RS = util.readExactSubarray(signature, read, read + rsSize);\n            read += RS.length;\n            return { read, signatureParams: { RS } };\n        }\n        default:\n            throw new UnsupportedError('Unknown signature algorithm.');\n    }\n}\n/**\n * Verifies the signature provided for data using specified algorithms and public key parameters.\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.1|RFC 4880 9.1}\n * and {@link https://tools.ietf.org/html/rfc4880#section-9.4|RFC 4880 9.4}\n * for public key and hash algorithms.\n * @param {module:enums.publicKey} algo - Public key algorithm\n * @param {module:enums.hash} hashAlgo - Hash algorithm\n * @param {Object} signature - Named algorithm-specific signature parameters\n * @param {Object} publicParams - Algorithm-specific public key parameters\n * @param {Uint8Array} data - Data for which the signature was created\n * @param {Uint8Array} hashed - The hashed data\n * @returns {Promise<Boolean>} True if signature is valid.\n * @async\n */\nasync function verify$1(algo, hashAlgo, signature, publicParams, data, hashed) {\n    switch (algo) {\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.rsaSign: {\n            const { n, e } = publicParams;\n            const s = util.leftPad(signature.s, n.length); // padding needed for webcrypto and node crypto\n            return verify$6(hashAlgo, data, s, n, e, hashed);\n        }\n        case enums.publicKey.dsa: {\n            const { g, p, q, y } = publicParams;\n            const { r, s } = signature; // no need to pad, since we always handle them as BigIntegers\n            return verify$2(hashAlgo, r, s, hashed, g, p, q, y);\n        }\n        case enums.publicKey.ecdsa: {\n            const { oid, Q } = publicParams;\n            const curveSize = new CurveWithOID(oid).payloadSize;\n            // padding needed for webcrypto\n            const r = util.leftPad(signature.r, curveSize);\n            const s = util.leftPad(signature.s, curveSize);\n            return verify$4(oid, hashAlgo, { r, s }, data, Q, hashed);\n        }\n        case enums.publicKey.eddsaLegacy: {\n            const { oid, Q } = publicParams;\n            const curveSize = new CurveWithOID(oid).payloadSize;\n            // When dealing little-endian MPI data, we always need to left-pad it, as done with big-endian values:\n            // https://www.ietf.org/archive/id/draft-ietf-openpgp-rfc4880bis-10.html#section-3.2-9\n            const r = util.leftPad(signature.r, curveSize);\n            const s = util.leftPad(signature.s, curveSize);\n            return verify$3(oid, hashAlgo, { r, s }, data, Q, hashed);\n        }\n        case enums.publicKey.ed25519:\n        case enums.publicKey.ed448: {\n            const { A } = publicParams;\n            return verify$5(algo, hashAlgo, signature, data, A, hashed);\n        }\n        default:\n            throw new Error('Unknown signature algorithm.');\n    }\n}\n/**\n * Creates a signature on data using specified algorithms and private key parameters.\n * See {@link https://tools.ietf.org/html/rfc4880#section-9.1|RFC 4880 9.1}\n * and {@link https://tools.ietf.org/html/rfc4880#section-9.4|RFC 4880 9.4}\n * for public key and hash algorithms.\n * @param {module:enums.publicKey} algo - Public key algorithm\n * @param {module:enums.hash} hashAlgo - Hash algorithm\n * @param {Object} publicKeyParams - Algorithm-specific public and private key parameters\n * @param {Object} privateKeyParams - Algorithm-specific public and private key parameters\n * @param {Uint8Array} data - Data to be signed\n * @param {Uint8Array} hashed - The hashed data\n * @returns {Promise<Object>} Signature                      Object containing named signature parameters.\n * @async\n */\nasync function sign$1(algo, hashAlgo, publicKeyParams, privateKeyParams, data, hashed) {\n    if (!publicKeyParams || !privateKeyParams) {\n        throw new Error('Missing key parameters');\n    }\n    switch (algo) {\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.rsaSign: {\n            const { n, e } = publicKeyParams;\n            const { d, p, q, u } = privateKeyParams;\n            const s = await sign$6(hashAlgo, data, n, e, d, p, q, u, hashed);\n            return { s };\n        }\n        case enums.publicKey.dsa: {\n            const { g, p, q } = publicKeyParams;\n            const { x } = privateKeyParams;\n            return sign$2(hashAlgo, hashed, g, p, q, x);\n        }\n        case enums.publicKey.elgamal:\n            throw new Error('Signing with Elgamal is not defined in the OpenPGP standard.');\n        case enums.publicKey.ecdsa: {\n            const { oid, Q } = publicKeyParams;\n            const { d } = privateKeyParams;\n            return sign$4(oid, hashAlgo, data, Q, d, hashed);\n        }\n        case enums.publicKey.eddsaLegacy: {\n            const { oid, Q } = publicKeyParams;\n            const { seed } = privateKeyParams;\n            return sign$3(oid, hashAlgo, data, Q, seed, hashed);\n        }\n        case enums.publicKey.ed25519:\n        case enums.publicKey.ed448: {\n            const { A } = publicKeyParams;\n            const { seed } = privateKeyParams;\n            return sign$5(algo, hashAlgo, data, A, seed, hashed);\n        }\n        default:\n            throw new Error('Unknown signature algorithm.');\n    }\n}\n\n/** @access private */\nconst ARGON2_TYPE = 0x02; // id\nconst ARGON2_VERSION = 0x13;\nconst ARGON2_SALT_SIZE = 16;\n// Max exponent supported, that applies regardless of `config.maxArgon2MemoryExponent`;\n// the argon2 lib in principle supports a larger value, but this is already unrealistically large,\n// and it enables us to use bitwise operations.\nconst ARGON2_MAX_ENCODEDM = 30;\nclass Argon2OutOfMemoryError extends Error {\n    constructor(...params) {\n        super(...params);\n        if (Error.captureStackTrace) {\n            Error.captureStackTrace(this, Argon2OutOfMemoryError);\n        }\n        this.name = 'Argon2OutOfMemoryError';\n    }\n}\n// cache argon wasm module\nlet loadArgonWasmModule;\nlet argon2Promise;\n// reload wasm module above this treshold, to deallocated used memory\nconst ARGON2_WASM_MEMORY_THRESHOLD_RELOAD = 2 << 19;\n/** @access private */\nclass Argon2S2K {\n    /**\n    * @param {Object} [config] - Full configuration, defaults to openpgp.config\n    */\n    constructor(config$1 = config) {\n        const { passes, parallelism, memoryExponent } = config$1.s2kArgon2Params;\n        this.type = 'argon2';\n        /**\n         * 16 bytes of salt\n         * @type {Uint8Array}\n         */\n        this.salt = null;\n        /**\n         * number of passes\n         * @type {Integer}\n         */\n        this.t = passes;\n        /**\n         * degree of parallelism (lanes)\n         * @type {Integer}\n         */\n        this.p = parallelism;\n        /**\n         * exponent indicating memory size\n         * @type {Integer}\n         */\n        this.encodedM = memoryExponent;\n    }\n    generateSalt() {\n        this.salt = getRandomBytes(ARGON2_SALT_SIZE);\n    }\n    /**\n    * Parsing function for argon2 string-to-key specifier.\n    * @param {Uint8Array} bytes - Payload of argon2 string-to-key specifier\n    * @returns {Integer} Actual length of the object.\n    */\n    read(bytes) {\n        let i = 0;\n        this.salt = bytes.subarray(i, i + 16);\n        i += 16;\n        this.t = bytes[i++];\n        this.p = bytes[i++];\n        this.encodedM = bytes[i++]; // memory size exponent, one-octect\n        return i;\n    }\n    /**\n    * Serializes s2k information\n    * @returns {Uint8Array} Binary representation of s2k.\n    */\n    write() {\n        const arr = [\n            new Uint8Array([enums.write(enums.s2k, this.type)]),\n            this.salt,\n            new Uint8Array([this.t, this.p, this.encodedM])\n        ];\n        return util.concatUint8Array(arr);\n    }\n    /**\n    * Produces a key using the specified passphrase and the defined\n    * hashAlgorithm\n    * @param {String} passphrase - Passphrase containing user input\n    * @param {Number} keySize\n    * @param {Object} config\n    * @returns {Promise<Uint8Array>} Produced key with a length corresponding to `keySize`\n    * @throws {Argon2OutOfMemoryError|Errors}\n    * @async\n    */\n    async produceKey(passphrase, keySize, config) {\n        if (config.maxArgon2MemoryExponent > ARGON2_MAX_ENCODEDM) {\n            throw new Argon2OutOfMemoryError(`'config.maxArgon2MemoryExponent' exceeds the max allowed value of ${ARGON2_MAX_ENCODEDM}`);\n        }\n        if (this.encodedM > config.maxArgon2MemoryExponent) {\n            throw new Argon2OutOfMemoryError('Argon2 required memory exceeds `config.maxArgon2MemoryExponent`');\n        }\n        const decodedM = 1 << this.encodedM;\n        try {\n            // on first load, the argon2 lib is imported and the WASM module is initialized.\n            // the two steps need to be atomic to avoid race conditions causing multiple wasm modules\n            // being loaded when `argon2Promise` is not initialized.\n            loadArgonWasmModule = loadArgonWasmModule || (await Promise.resolve().then(function () { return index$2; })).default;\n            argon2Promise = argon2Promise || loadArgonWasmModule();\n            // important to keep local ref to argon2 in case the module is reloaded by another instance\n            const argon2 = await argon2Promise;\n            const passwordBytes = util.encodeUTF8(passphrase);\n            const hash = argon2({\n                version: ARGON2_VERSION,\n                type: ARGON2_TYPE,\n                password: passwordBytes,\n                salt: this.salt,\n                tagLength: keySize,\n                memorySize: decodedM,\n                parallelism: this.p,\n                passes: this.t\n            });\n            // a lot of memory was used, reload to deallocate\n            if (decodedM > ARGON2_WASM_MEMORY_THRESHOLD_RELOAD) {\n                // it will be awaited if needed at the next `produceKey` invocation\n                argon2Promise = loadArgonWasmModule();\n                argon2Promise.catch(() => { });\n            }\n            return hash;\n        }\n        catch (e) {\n            if (e.message && (e.message.includes('Unable to grow instance memory') || // Chrome\n                e.message.includes('failed to grow memory') || // Firefox\n                e.message.includes('WebAssembly.Memory.grow') || // Safari\n                e.message.includes('Out of memory') // Safari iOS\n            )) {\n                throw new Argon2OutOfMemoryError('Could not allocate required memory for Argon2');\n            }\n            else {\n                throw e;\n            }\n        }\n    }\n}\n\n/** @access private */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Implementation of the String-to-key specifier\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-3.7|RFC4880 3.7}:\n * String-to-key (S2K) specifiers are used to convert passphrase strings\n * into symmetric-key encryption/decryption keys.  They are used in two\n * places, currently: to encrypt the secret part of private keys in the\n * private keyring, and to convert passphrases to encryption keys for\n * symmetrically encrypted messages.\n * @access private\n */\nclass GenericS2K {\n    /**\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     */\n    constructor(s2kType, config$1 = config) {\n        /**\n         * Hash function identifier, or 0 for gnu-dummy keys\n         * @type {module:enums.hash | 0}\n         */\n        this.algorithm = enums.hash.sha256;\n        /**\n         * enums.s2k identifier or 'gnu-dummy'\n         * @type {String}\n         */\n        this.type = enums.read(enums.s2k, s2kType);\n        /** @type {Integer} */\n        this.c = config$1.s2kIterationCountByte;\n        /** Eight bytes of salt in a binary string.\n         * @type {Uint8Array}\n         */\n        this.salt = null;\n    }\n    generateSalt() {\n        switch (this.type) {\n            case 'salted':\n            case 'iterated':\n                this.salt = getRandomBytes(8);\n        }\n    }\n    getCount() {\n        // Exponent bias, defined in RFC4880\n        const expbias = 6;\n        return (16 + (this.c & 15)) << ((this.c >> 4) + expbias);\n    }\n    /**\n     * Parsing function for a string-to-key specifier ({@link https://tools.ietf.org/html/rfc4880#section-3.7|RFC 4880 3.7}).\n     * @param {Uint8Array} bytes - Payload of string-to-key specifier\n     * @returns {Integer} Actual length of the object.\n     */\n    read(bytes) {\n        let i = 0;\n        this.algorithm = bytes[i++];\n        switch (this.type) {\n            case 'simple':\n                break;\n            case 'salted':\n                this.salt = bytes.subarray(i, i + 8);\n                i += 8;\n                break;\n            case 'iterated':\n                this.salt = bytes.subarray(i, i + 8);\n                i += 8;\n                // Octet 10: count, a one-octet, coded value\n                this.c = bytes[i++];\n                break;\n            case 'gnu':\n                if (util.uint8ArrayToString(bytes.subarray(i, i + 3)) === 'GNU') {\n                    i += 3; // GNU\n                    const gnuExtType = 1000 + bytes[i++];\n                    if (gnuExtType === 1001) {\n                        this.type = 'gnu-dummy';\n                        // GnuPG extension mode 1001 -- don't write secret key at all\n                    }\n                    else {\n                        throw new UnsupportedError('Unknown s2k gnu protection mode.');\n                    }\n                }\n                else {\n                    throw new UnsupportedError('Unknown s2k type.');\n                }\n                break;\n            default:\n                throw new UnsupportedError('Unknown s2k type.'); // unreachable\n        }\n        return i;\n    }\n    /**\n     * Serializes s2k information\n     * @returns {Uint8Array} Binary representation of s2k.\n     */\n    write() {\n        if (this.type === 'gnu-dummy') {\n            return new Uint8Array([101, 0, ...util.stringToUint8Array('GNU'), 1]);\n        }\n        const arr = [new Uint8Array([enums.write(enums.s2k, this.type), this.algorithm])];\n        switch (this.type) {\n            case 'simple':\n                break;\n            case 'salted':\n                arr.push(this.salt);\n                break;\n            case 'iterated':\n                arr.push(this.salt);\n                arr.push(new Uint8Array([this.c]));\n                break;\n            case 'gnu':\n                throw new Error('GNU s2k type not supported.');\n            default:\n                throw new Error('Unknown s2k type.');\n        }\n        return util.concatUint8Array(arr);\n    }\n    /**\n     * Produces a key using the specified passphrase and the defined\n     * hashAlgorithm\n     * @param {String} passphrase - Passphrase containing user input\n     * @returns {Promise<Uint8Array>} Produced key with a length corresponding to.\n     * hashAlgorithm hash length\n     * @async\n     */\n    async produceKey(passphrase, numBytes, _config) {\n        passphrase = util.encodeUTF8(passphrase);\n        const arr = [];\n        let rlength = 0;\n        let prefixlen = 0;\n        while (rlength < numBytes) {\n            let toHash;\n            switch (this.type) {\n                case 'simple':\n                    toHash = util.concatUint8Array([new Uint8Array(prefixlen), passphrase]);\n                    break;\n                case 'salted':\n                    toHash = util.concatUint8Array([new Uint8Array(prefixlen), this.salt, passphrase]);\n                    break;\n                case 'iterated': {\n                    const data = util.concatUint8Array([this.salt, passphrase]);\n                    let datalen = data.length;\n                    const count = Math.max(this.getCount(), datalen);\n                    toHash = new Uint8Array(prefixlen + count);\n                    toHash.set(data, prefixlen);\n                    for (let pos = prefixlen + datalen; pos < count; pos += datalen, datalen *= 2) {\n                        toHash.copyWithin(pos, prefixlen, pos);\n                    }\n                    break;\n                }\n                case 'gnu':\n                    throw new Error('GNU s2k type not supported.');\n                default:\n                    throw new Error('Unknown s2k type.');\n            }\n            const result = await computeDigest(this.algorithm, toHash);\n            arr.push(result);\n            rlength += result.length;\n            prefixlen++;\n        }\n        return util.concatUint8Array(arr).subarray(0, numBytes);\n    }\n}\n\n/**\n * @module type/s2k\n * @access private\n */\nconst allowedS2KTypesForEncryption = new Set([enums.s2k.argon2, enums.s2k.iterated]);\n/**\n * Instantiate a new S2K instance of the given type\n * @param {module:enums.s2k} type\n * @param {Object} [config]\n * @returns {Object} New s2k object\n * @throws {Error} for unknown or unsupported types\n\n */\nfunction newS2KFromType(type, config$1 = config) {\n    switch (type) {\n        case enums.s2k.argon2:\n            return new Argon2S2K(config$1);\n        case enums.s2k.iterated:\n        case enums.s2k.gnu:\n        case enums.s2k.salted:\n        case enums.s2k.simple:\n            return new GenericS2K(type, config$1);\n        default:\n            throw new UnsupportedError('Unsupported S2K type');\n    }\n}\n/**\n * Instantiate a new S2K instance based on the config settings\n * @oaram {Object} config\n * @returns {Object} New s2k object\n * @throws {Error} for unknown or unsupported types\n */\nfunction newS2KFromConfig(config) {\n    const { s2kType } = config;\n    if (!allowedS2KTypesForEncryption.has(s2kType)) {\n        throw new Error('The provided `config.s2kType` value is not allowed');\n    }\n    return newS2KFromType(s2kType, config);\n}\n\n// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n    var b = new u16(31);\n    for (var i = 0; i < 31; ++i) {\n        b[i] = start += 1 << eb[i - 1];\n    }\n    // numbers here are at max 18 bits\n    var r = new i32(b[30]);\n    for (var i = 1; i < 30; ++i) {\n        for (var j = b[i]; j < b[i + 1]; ++j) {\n            r[j] = ((j - b[i]) << 5) | i;\n        }\n    }\n    return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n    // reverse table algorithm from SO\n    var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n    x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n    x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n    rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n    var s = cd.length;\n    // index\n    var i = 0;\n    // u16 \"map\": index -> # of codes with bit length = index\n    var l = new u16(mb);\n    // length of cd must be 288 (total # of codes)\n    for (; i < s; ++i) {\n        if (cd[i])\n            ++l[cd[i] - 1];\n    }\n    // u16 \"map\": index -> minimum code for bit length = index\n    var le = new u16(mb);\n    for (i = 1; i < mb; ++i) {\n        le[i] = (le[i - 1] + l[i - 1]) << 1;\n    }\n    var co;\n    if (r) {\n        // u16 \"map\": index -> number of actual bits, symbol for code\n        co = new u16(1 << mb);\n        // bits to remove for reverser\n        var rvb = 15 - mb;\n        for (i = 0; i < s; ++i) {\n            // ignore 0 lengths\n            if (cd[i]) {\n                // num encoding both symbol and bits read\n                var sv = (i << 4) | cd[i];\n                // free bits\n                var r_1 = mb - cd[i];\n                // start value\n                var v = le[cd[i] - 1]++ << r_1;\n                // m is end value\n                for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n                    // every 16 bit value starting with the code yields the same result\n                    co[rev[v] >> rvb] = sv;\n                }\n            }\n        }\n    }\n    else {\n        co = new u16(s);\n        for (i = 0; i < s; ++i) {\n            if (cd[i]) {\n                co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n            }\n        }\n    }\n    return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n    flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n    flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n    flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n    flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n    fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n    var m = a[0];\n    for (var i = 1; i < a.length; ++i) {\n        if (a[i] > m)\n            m = a[i];\n    }\n    return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n    var o = (p / 8) | 0;\n    return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n    var o = (p / 8) | 0;\n    return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n    if (s == null || s < 0)\n        s = 0;\n    if (e == null || e > v.length)\n        e = v.length;\n    // can't use .constructor in case user-supplied\n    return new u8(v.subarray(s, e));\n};\n// error codes\nvar ec = [\n    'unexpected EOF',\n    'invalid block type',\n    'invalid length/literal',\n    'invalid distance',\n    'stream finished',\n    'no stream handler',\n    , // determined by compression function\n    'no callback',\n    'invalid UTF-8 data',\n    'extra field too long',\n    'date not in range 1980-2099',\n    'filename too long',\n    'stream finishing',\n    'invalid zip data'\n    // determined by unknown compression method\n];\nvar err = function (ind, msg, nt) {\n    var e = new Error(msg || ec[ind]);\n    e.code = ind;\n    if (Error.captureStackTrace)\n        Error.captureStackTrace(e, err);\n    if (!nt)\n        throw e;\n    return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n    // source length       dict length\n    var sl = dat.length, dl = 0;\n    if (!sl || st.f && !st.l)\n        return buf || new u8(0);\n    var noBuf = !buf;\n    // have to estimate size\n    var resize = noBuf || st.i != 2;\n    // no state\n    var noSt = st.i;\n    // Assumes roughly 33% compression ratio average\n    if (noBuf)\n        buf = new u8(sl * 3);\n    // ensure buffer can fit at least l elements\n    var cbuf = function (l) {\n        var bl = buf.length;\n        // need to increase size to fit\n        if (l > bl) {\n            // Double or set to necessary, whichever is greater\n            var nbuf = new u8(Math.max(bl * 2, l));\n            nbuf.set(buf);\n            buf = nbuf;\n        }\n    };\n    //  last chunk         bitpos           bytes\n    var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n    // total bits\n    var tbts = sl * 8;\n    do {\n        if (!lm) {\n            // BFINAL - this is only 1 when last chunk is next\n            final = bits(dat, pos, 1);\n            // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n            var type = bits(dat, pos + 1, 3);\n            pos += 3;\n            if (!type) {\n                // go to end of byte boundary\n                var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n                if (t > sl) {\n                    if (noSt)\n                        err(0);\n                    break;\n                }\n                // ensure size\n                if (resize)\n                    cbuf(bt + l);\n                // Copy over uncompressed data\n                buf.set(dat.subarray(s, t), bt);\n                // Get new bitpos, update byte count\n                st.b = bt += l, st.p = pos = t * 8, st.f = final;\n                continue;\n            }\n            else if (type == 1)\n                lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n            else if (type == 2) {\n                //  literal                            lengths\n                var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n                var tl = hLit + bits(dat, pos + 5, 31) + 1;\n                pos += 14;\n                // length+distance tree\n                var ldt = new u8(tl);\n                // code length tree\n                var clt = new u8(19);\n                for (var i = 0; i < hcLen; ++i) {\n                    // use index map to get real code\n                    clt[clim[i]] = bits(dat, pos + i * 3, 7);\n                }\n                pos += hcLen * 3;\n                // code lengths bits\n                var clb = max(clt), clbmsk = (1 << clb) - 1;\n                // code lengths map\n                var clm = hMap(clt, clb, 1);\n                for (var i = 0; i < tl;) {\n                    var r = clm[bits(dat, pos, clbmsk)];\n                    // bits read\n                    pos += r & 15;\n                    // symbol\n                    var s = r >> 4;\n                    // code length to copy\n                    if (s < 16) {\n                        ldt[i++] = s;\n                    }\n                    else {\n                        //  copy   count\n                        var c = 0, n = 0;\n                        if (s == 16)\n                            n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n                        else if (s == 17)\n                            n = 3 + bits(dat, pos, 7), pos += 3;\n                        else if (s == 18)\n                            n = 11 + bits(dat, pos, 127), pos += 7;\n                        while (n--)\n                            ldt[i++] = c;\n                    }\n                }\n                //    length tree                 distance tree\n                var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n                // max length bits\n                lbt = max(lt);\n                // max dist bits\n                dbt = max(dt);\n                lm = hMap(lt, lbt, 1);\n                dm = hMap(dt, dbt, 1);\n            }\n            else\n                err(1);\n            if (pos > tbts) {\n                if (noSt)\n                    err(0);\n                break;\n            }\n        }\n        // Make sure the buffer can hold this + the largest possible addition\n        // Maximum chunk size (practically, theoretically infinite) is 2^17\n        if (resize)\n            cbuf(bt + 131072);\n        var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n        var lpos = pos;\n        for (;; lpos = pos) {\n            // bits read, code\n            var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n            pos += c & 15;\n            if (pos > tbts) {\n                if (noSt)\n                    err(0);\n                break;\n            }\n            if (!c)\n                err(2);\n            if (sym < 256)\n                buf[bt++] = sym;\n            else if (sym == 256) {\n                lpos = pos, lm = null;\n                break;\n            }\n            else {\n                var add = sym - 254;\n                // no extra bits needed if less\n                if (sym > 264) {\n                    // index\n                    var i = sym - 257, b = fleb[i];\n                    add = bits(dat, pos, (1 << b) - 1) + fl[i];\n                    pos += b;\n                }\n                // dist\n                var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n                if (!d)\n                    err(3);\n                pos += d & 15;\n                var dt = fd[dsym];\n                if (dsym > 3) {\n                    var b = fdeb[dsym];\n                    dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n                }\n                if (pos > tbts) {\n                    if (noSt)\n                        err(0);\n                    break;\n                }\n                if (resize)\n                    cbuf(bt + 131072);\n                var end = bt + add;\n                if (bt < dt) {\n                    var shift = dl - dt, dend = Math.min(dt, end);\n                    if (shift + bt < 0)\n                        err(3);\n                    for (; bt < dend; ++bt)\n                        buf[bt] = dict[shift + bt];\n                }\n                for (; bt < end; ++bt)\n                    buf[bt] = buf[bt - dt];\n            }\n        }\n        st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n        if (lm)\n            final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n    } while (!final);\n    // don't reallocate for streams or user buffers\n    return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n    v <<= p & 7;\n    var o = (p / 8) | 0;\n    d[o] |= v;\n    d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n    v <<= p & 7;\n    var o = (p / 8) | 0;\n    d[o] |= v;\n    d[o + 1] |= v >> 8;\n    d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n    // Need extra info to make a tree\n    var t = [];\n    for (var i = 0; i < d.length; ++i) {\n        if (d[i])\n            t.push({ s: i, f: d[i] });\n    }\n    var s = t.length;\n    var t2 = t.slice();\n    if (!s)\n        return { t: et, l: 0 };\n    if (s == 1) {\n        var v = new u8(t[0].s + 1);\n        v[t[0].s] = 1;\n        return { t: v, l: 1 };\n    }\n    t.sort(function (a, b) { return a.f - b.f; });\n    // after i2 reaches last ind, will be stopped\n    // freq must be greater than largest possible number of symbols\n    t.push({ s: -1, f: 25001 });\n    var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n    t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n    // efficient algorithm from UZIP.js\n    // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n    // symbols that combined have high freq, will start processing i2 (high-freq,\n    // non-composite) symbols instead\n    // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n    while (i1 != s - 1) {\n        l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n        r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n        t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n    }\n    var maxSym = t2[0].s;\n    for (var i = 1; i < s; ++i) {\n        if (t2[i].s > maxSym)\n            maxSym = t2[i].s;\n    }\n    // code lengths\n    var tr = new u16(maxSym + 1);\n    // max bits in tree\n    var mbt = ln(t[i1 - 1], tr, 0);\n    if (mbt > mb) {\n        // more algorithms from UZIP.js\n        // TODO: find out how this code works (debt)\n        //  ind    debt\n        var i = 0, dt = 0;\n        //    left            cost\n        var lft = mbt - mb, cst = 1 << lft;\n        t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n        for (; i < s; ++i) {\n            var i2_1 = t2[i].s;\n            if (tr[i2_1] > mb) {\n                dt += cst - (1 << (mbt - tr[i2_1]));\n                tr[i2_1] = mb;\n            }\n            else\n                break;\n        }\n        dt >>= lft;\n        while (dt > 0) {\n            var i2_2 = t2[i].s;\n            if (tr[i2_2] < mb)\n                dt -= 1 << (mb - tr[i2_2]++ - 1);\n            else\n                ++i;\n        }\n        for (; i >= 0 && dt; --i) {\n            var i2_3 = t2[i].s;\n            if (tr[i2_3] == mb) {\n                --tr[i2_3];\n                ++dt;\n            }\n        }\n        mbt = mb;\n    }\n    return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n    return n.s == -1\n        ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n        : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n    var s = c.length;\n    // Note that the semicolon was intentional\n    while (s && !c[--s])\n        ;\n    var cl = new u16(++s);\n    //  ind      num         streak\n    var cli = 0, cln = c[0], cls = 1;\n    var w = function (v) { cl[cli++] = v; };\n    for (var i = 1; i <= s; ++i) {\n        if (c[i] == cln && i != s)\n            ++cls;\n        else {\n            if (!cln && cls > 2) {\n                for (; cls > 138; cls -= 138)\n                    w(32754);\n                if (cls > 2) {\n                    w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n                    cls = 0;\n                }\n            }\n            else if (cls > 3) {\n                w(cln), --cls;\n                for (; cls > 6; cls -= 6)\n                    w(8304);\n                if (cls > 2)\n                    w(((cls - 3) << 5) | 8208), cls = 0;\n            }\n            while (cls--)\n                w(cln);\n            cls = 1;\n            cln = c[i];\n        }\n    }\n    return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n    var l = 0;\n    for (var i = 0; i < cl.length; ++i)\n        l += cf[i] * cl[i];\n    return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n    // no need to write 00 as type: TypedArray defaults to 0\n    var s = dat.length;\n    var o = shft(pos + 2);\n    out[o] = s & 255;\n    out[o + 1] = s >> 8;\n    out[o + 2] = out[o] ^ 255;\n    out[o + 3] = out[o + 1] ^ 255;\n    for (var i = 0; i < s; ++i)\n        out[o + i + 4] = dat[i];\n    return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n    wbits(out, p++, final);\n    ++lf[256];\n    var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n    var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n    var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n    var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n    var lcfreq = new u16(19);\n    for (var i = 0; i < lclt.length; ++i)\n        ++lcfreq[lclt[i] & 31];\n    for (var i = 0; i < lcdt.length; ++i)\n        ++lcfreq[lcdt[i] & 31];\n    var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n    var nlcc = 19;\n    for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n        ;\n    var flen = (bl + 5) << 3;\n    var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n    var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n    if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n        return wfblk(out, p, dat.subarray(bs, bs + bl));\n    var lm, ll, dm, dl;\n    wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n    if (dtlen < ftlen) {\n        lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n        var llm = hMap(lct, mlcb, 0);\n        wbits(out, p, nlc - 257);\n        wbits(out, p + 5, ndc - 1);\n        wbits(out, p + 10, nlcc - 4);\n        p += 14;\n        for (var i = 0; i < nlcc; ++i)\n            wbits(out, p + 3 * i, lct[clim[i]]);\n        p += 3 * nlcc;\n        var lcts = [lclt, lcdt];\n        for (var it = 0; it < 2; ++it) {\n            var clct = lcts[it];\n            for (var i = 0; i < clct.length; ++i) {\n                var len = clct[i] & 31;\n                wbits(out, p, llm[len]), p += lct[len];\n                if (len > 15)\n                    wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n            }\n        }\n    }\n    else {\n        lm = flm, ll = flt, dm = fdm, dl = fdt;\n    }\n    for (var i = 0; i < li; ++i) {\n        var sym = syms[i];\n        if (sym > 255) {\n            var len = (sym >> 18) & 31;\n            wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n            if (len > 7)\n                wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n            var dst = sym & 31;\n            wbits16(out, p, dm[dst]), p += dl[dst];\n            if (dst > 3)\n                wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n        }\n        else {\n            wbits16(out, p, lm[sym]), p += ll[sym];\n        }\n    }\n    wbits16(out, p, lm[256]);\n    return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n    var s = st.z || dat.length;\n    var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n    // writing to this writes to the output buffer\n    var w = o.subarray(pre, o.length - post);\n    var lst = st.l;\n    var pos = (st.r || 0) & 7;\n    if (lvl) {\n        if (pos)\n            w[0] = st.r >> 3;\n        var opt = deo[lvl - 1];\n        var n = opt >> 13, c = opt & 8191;\n        var msk_1 = (1 << plvl) - 1;\n        //    prev 2-byte val map    curr 2-byte val map\n        var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n        var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n        var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n        // 24576 is an arbitrary number of maximum symbols per block\n        // 424 buffer for last block\n        var syms = new i32(25000);\n        // length/literal freq   distance freq\n        var lf = new u16(288), df = new u16(32);\n        //  l/lcnt  exbits  index          l/lind  waitdx          blkpos\n        var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n        for (; i + 2 < s; ++i) {\n            // hash value\n            var hv = hsh(i);\n            // index mod 32768    previous index mod\n            var imod = i & 32767, pimod = head[hv];\n            prev[imod] = pimod;\n            head[hv] = imod;\n            // We always should modify head and prev, but only add symbols if\n            // this data is not yet processed (\"wait\" for wait index)\n            if (wi <= i) {\n                // bytes remaining\n                var rem = s - i;\n                if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n                    pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n                    li = lc_1 = eb = 0, bs = i;\n                    for (var j = 0; j < 286; ++j)\n                        lf[j] = 0;\n                    for (var j = 0; j < 30; ++j)\n                        df[j] = 0;\n                }\n                //  len    dist   chain\n                var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n                if (rem > 2 && hv == hsh(i - dif)) {\n                    var maxn = Math.min(n, rem) - 1;\n                    var maxd = Math.min(32767, i);\n                    // max possible length\n                    // not capped at dif because decompressors implement \"rolling\" index population\n                    var ml = Math.min(258, rem);\n                    while (dif <= maxd && --ch_1 && imod != pimod) {\n                        if (dat[i + l] == dat[i + l - dif]) {\n                            var nl = 0;\n                            for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n                                ;\n                            if (nl > l) {\n                                l = nl, d = dif;\n                                // break out early when we reach \"nice\" (we are satisfied enough)\n                                if (nl > maxn)\n                                    break;\n                                // now, find the rarest 2-byte sequence within this\n                                // length of literals and search for that instead.\n                                // Much faster than just using the start\n                                var mmd = Math.min(dif, nl - 2);\n                                var md = 0;\n                                for (var j = 0; j < mmd; ++j) {\n                                    var ti = i - dif + j & 32767;\n                                    var pti = prev[ti];\n                                    var cd = ti - pti & 32767;\n                                    if (cd > md)\n                                        md = cd, pimod = ti;\n                                }\n                            }\n                        }\n                        // check the previous match\n                        imod = pimod, pimod = prev[imod];\n                        dif += imod - pimod & 32767;\n                    }\n                }\n                // d will be nonzero only when a match was found\n                if (d) {\n                    // store both dist and len data in one int32\n                    // Make sure this is recognized as a len/dist with 28th bit (2^28)\n                    syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n                    var lin = revfl[l] & 31, din = revfd[d] & 31;\n                    eb += fleb[lin] + fdeb[din];\n                    ++lf[257 + lin];\n                    ++df[din];\n                    wi = i + l;\n                    ++lc_1;\n                }\n                else {\n                    syms[li++] = dat[i];\n                    ++lf[dat[i]];\n                }\n            }\n        }\n        for (i = Math.max(i, wi); i < s; ++i) {\n            syms[li++] = dat[i];\n            ++lf[dat[i]];\n        }\n        pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n        if (!lst) {\n            st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n            // shft(pos) now 1 less if pos & 7 != 0\n            pos -= 7;\n            st.h = head, st.p = prev, st.i = i, st.w = wi;\n        }\n    }\n    else {\n        for (var i = st.w || 0; i < s + lst; i += 65535) {\n            // end\n            var e = i + 65535;\n            if (e >= s) {\n                // write final block\n                w[(pos / 8) | 0] = lst;\n                e = s;\n            }\n            pos = wfblk(w, pos + 1, dat.subarray(i, e));\n        }\n        st.i = s;\n    }\n    return slc(o, 0, pre + shft(pos) + post);\n};\n// Adler32\nvar adler = function () {\n    var a = 1, b = 0;\n    return {\n        p: function (d) {\n            // closures have awful performance\n            var n = a, m = b;\n            var l = d.length | 0;\n            for (var i = 0; i != l;) {\n                var e = Math.min(i + 2655, l);\n                for (; i < e; ++i)\n                    m += n += d[i];\n                n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n            }\n            a = n, b = m;\n        },\n        d: function () {\n            a %= 65521, b %= 65521;\n            return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n        }\n    };\n};\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n    if (!st) {\n        st = { l: 1 };\n        if (opt.dictionary) {\n            var dict = opt.dictionary.subarray(-32768);\n            var newDat = new u8(dict.length + dat.length);\n            newDat.set(dict);\n            newDat.set(dat, dict.length);\n            dat = newDat;\n            st.w = dict.length;\n        }\n    }\n    return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// write bytes\nvar wbytes = function (d, b, v) {\n    for (; v; ++b)\n        d[b] = v, v >>>= 8;\n};\n// zlib header\nvar zlh = function (c, o) {\n    var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n    c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n    c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n    if (o.dictionary) {\n        var h = adler();\n        h.p(o.dictionary);\n        wbytes(c, 2, h.d());\n    }\n};\n// zlib start\nvar zls = function (d, dict) {\n    if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n        err(6, 'invalid zlib data');\n    if ((d[1] >> 5 & 1) == +!dict)\n        err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n    return (d[1] >> 3 & 4) + 2;\n};\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n    function Deflate(opts, cb) {\n        if (typeof opts == 'function')\n            cb = opts, opts = {};\n        this.ondata = cb;\n        this.o = opts || {};\n        this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n        // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n        // 98304 = 32768 (lookback) + 65536 (common chunk size)\n        this.b = new u8(98304);\n        if (this.o.dictionary) {\n            var dict = this.o.dictionary.subarray(-32768);\n            this.b.set(dict, 32768 - dict.length);\n            this.s.i = 32768 - dict.length;\n        }\n    }\n    Deflate.prototype.p = function (c, f) {\n        this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n    };\n    /**\n     * Pushes a chunk to be deflated\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Deflate.prototype.push = function (chunk, final) {\n        if (!this.ondata)\n            err(5);\n        if (this.s.l)\n            err(4);\n        var endLen = chunk.length + this.s.z;\n        if (endLen > this.b.length) {\n            if (endLen > 2 * this.b.length - 32768) {\n                var newBuf = new u8(endLen & -32768);\n                newBuf.set(this.b.subarray(0, this.s.z));\n                this.b = newBuf;\n            }\n            var split = this.b.length - this.s.z;\n            this.b.set(chunk.subarray(0, split), this.s.z);\n            this.s.z = this.b.length;\n            this.p(this.b, false);\n            this.b.set(this.b.subarray(-32768));\n            this.b.set(chunk.subarray(split), 32768);\n            this.s.z = chunk.length - split + 32768;\n            this.s.i = 32766, this.s.w = 32768;\n        }\n        else {\n            this.b.set(chunk, this.s.z);\n            this.s.z += chunk.length;\n        }\n        this.s.l = final & 1;\n        if (this.s.z > this.s.w + 8191 || final) {\n            this.p(this.b, final || false);\n            this.s.w = this.s.i, this.s.i -= 2;\n        }\n        if (final) {\n            // cleanup unneeded buffers/state to reduce memory usage\n            this.s = this.o = {};\n            this.b = et;\n        }\n    };\n    /**\n     * Flushes buffered uncompressed data. Useful to immediately retrieve the\n     * deflated output for small inputs.\n     * @param sync Whether to flush to a byte boundary. A sync flush takes 4-5\n     *             extra bytes, but guarantees all pushed data is immediately\n     *             decompressible. A separate DEFLATE stream may be concatenated\n     *             with the current output after a sync flush.\n     */\n    Deflate.prototype.flush = function (sync) {\n        if (!this.ondata)\n            err(5);\n        if (this.s.l)\n            err(4);\n        this.p(this.b, false);\n        this.s.w = this.s.i, this.s.i -= 2;\n        // could technically skip writing the type-0 block for (this.s.r & 7) == 0,\n        // but the deterministic trailer (00 00 FF FF) is useful in some situations\n        if (sync) {\n            var c = new u8(6);\n            c[0] = this.s.r >> 3;\n            // write empty, non-final type-0 block\n            var ep = wfblk(c, this.s.r, et);\n            this.s.r = 0;\n            this.ondata(c.subarray(0, ep >> 3), false);\n        }\n    };\n    return Deflate;\n}());\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n    function Inflate(opts, cb) {\n        // no StrmOpt here to avoid adding to workerizer\n        if (typeof opts == 'function')\n            cb = opts, opts = {};\n        this.ondata = cb;\n        var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n        this.s = { i: 0, b: dict ? dict.length : 0 };\n        this.o = new u8(32768);\n        this.p = new u8(0);\n        if (dict)\n            this.o.set(dict);\n    }\n    Inflate.prototype.e = function (c) {\n        if (!this.ondata)\n            err(5);\n        if (this.d)\n            err(4);\n        if (!this.p.length)\n            this.p = c;\n        else if (c.length) {\n            var n = new u8(this.p.length + c.length);\n            n.set(this.p), n.set(c, this.p.length), this.p = n;\n        }\n    };\n    Inflate.prototype.c = function (final) {\n        this.s.i = +(this.d = final || false);\n        var bts = this.s.b;\n        var dt = inflt(this.p, this.s, this.o);\n        this.ondata(slc(dt, bts, this.s.b), this.d);\n        this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n        this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n    };\n    /**\n     * Pushes a chunk to be inflated\n     * @param chunk The chunk to push\n     * @param final Whether this is the final chunk\n     */\n    Inflate.prototype.push = function (chunk, final) {\n        this.e(chunk), this.c(final);\n    };\n    return Inflate;\n}());\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n    function Zlib(opts, cb) {\n        this.c = adler();\n        this.v = 1;\n        Deflate.call(this, opts, cb);\n    }\n    /**\n     * Pushes a chunk to be zlibbed\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Zlib.prototype.push = function (chunk, final) {\n        this.c.p(chunk);\n        Deflate.prototype.push.call(this, chunk, final);\n    };\n    Zlib.prototype.p = function (c, f) {\n        var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n        if (this.v)\n            zlh(raw, this.o), this.v = 0;\n        if (f)\n            wbytes(raw, raw.length - 4, this.c.d());\n        this.ondata(raw, f);\n    };\n    /**\n     * Flushes buffered uncompressed data. Useful to immediately retrieve the\n     * zlibbed output for small inputs.\n     * @param sync Whether to flush to a byte boundary. A sync flush takes 4-5\n     *             extra bytes, but guarantees all pushed data is immediately\n     *             decompressible.\n     */\n    Zlib.prototype.flush = function (sync) {\n        Deflate.prototype.flush.call(this, sync);\n    };\n    return Zlib;\n}());\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n    function Unzlib(opts, cb) {\n        Inflate.call(this, opts, cb);\n        this.v = opts && opts.dictionary ? 2 : 1;\n    }\n    /**\n     * Pushes a chunk to be unzlibbed\n     * @param chunk The chunk to push\n     * @param final Whether this is the last chunk\n     */\n    Unzlib.prototype.push = function (chunk, final) {\n        Inflate.prototype.e.call(this, chunk);\n        if (this.v) {\n            if (this.p.length < 6 && !final)\n                return;\n            this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n        }\n        if (final) {\n            if (this.p.length < 4)\n                err(6, 'invalid zlib data');\n            this.p = this.p.subarray(0, -4);\n        }\n        // necessary to prevent TS from using the closure value\n        // This allows for workerization to function correctly\n        Inflate.prototype.c.call(this, final);\n    };\n    return Unzlib;\n}());\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n    td.decode(et, { stream: true });\n    tds = 1;\n}\ncatch (e) { }\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Implementation of the Literal Data Packet (Tag 11)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.9|RFC4880 5.9}:\n * A Literal Data packet contains the body of a message; data that is not to be\n * further interpreted.\n */\nclass LiteralDataPacket {\n    static get tag() {\n        return enums.packet.literalData;\n    }\n    /**\n     * @param {Date} date - The creation date of the literal package\n     */\n    constructor(date = new Date()) {\n        this.format = enums.literal.utf8; // default format for literal data packets\n        this.date = util.normalizeDate(date);\n        this.text = null; // textual data representation\n        this.data = null; // literal data representation\n        this.filename = '';\n    }\n    /**\n     * Set the packet data to a javascript native string, end of line\n     * will be normalized to \\r\\n and by default text is converted to UTF8\n     * @param {String | ReadableStream<String>} text - Any native javascript string\n     * @param {enums.literal} [format] - The format of the string of bytes\n     */\n    setText(text, format = enums.literal.utf8) {\n        this.format = format;\n        this.text = text;\n        this.data = null;\n    }\n    /**\n     * Returns literal data packets as native JavaScript string\n     * with normalized end of line to \\n\n     * @param {Boolean} [clone] - Whether to return a clone so that getBytes/getText can be called again\n     * @returns {String | ReadableStream<String>} Literal data as text.\n     */\n    getText(clone = false) {\n        if (this.text === null || util.isStream(this.text)) { // Assume that this.text has been read\n            this.text = util.decodeUTF8(util.nativeEOL(this.getBytes(clone)));\n        }\n        return this.text;\n    }\n    /**\n     * Set the packet data to value represented by the provided string of bytes.\n     * @param {Uint8Array | ReadableStream<Uint8Array>} bytes - The string of bytes\n     * @param {enums.literal} format - The format of the string of bytes\n     */\n    setBytes(bytes, format) {\n        this.format = format;\n        this.data = bytes;\n        this.text = null;\n    }\n    /**\n     * Get the byte sequence representing the literal packet data\n     * @param {Boolean} [clone] - Whether to return a clone so that getBytes/getText can be called again\n     * @returns {Uint8Array | ReadableStream<Uint8Array>} A sequence of bytes.\n     */\n    getBytes(clone = false) {\n        if (this.data === null) {\n            // encode UTF8 and normalize EOL to \\r\\n\n            this.data = util.canonicalizeEOL(util.encodeUTF8(this.text));\n        }\n        if (clone) {\n            return passiveClone(this.data);\n        }\n        return this.data;\n    }\n    /**\n     * Sets the filename of the literal packet data\n     * @param {String} filename - Any native javascript string\n     */\n    setFilename(filename) {\n        this.filename = filename;\n    }\n    /**\n     * Get the filename of the literal packet data\n     * @returns {String} Filename.\n     */\n    getFilename() {\n        return this.filename;\n    }\n    /**\n     * Parsing function for a literal data packet (tag 11).\n     *\n     * @param {Uint8Array | ReadableStream<Uint8Array>} input - Payload of a tag 11 packet\n     * @returns {Promise<LiteralDataPacket>} Object representation.\n     * @async\n     */\n    async read(bytes) {\n        await parse(bytes, async (reader) => {\n            // - A one-octet field that describes how the data is formatted.\n            const format = await reader.readByte(); // enums.literal\n            const filename_len = await reader.readByte();\n            this.filename = util.decodeUTF8(await reader.readBytes(filename_len));\n            this.date = util.readDate(await reader.readBytes(4));\n            let data = reader.remainder();\n            if (isArrayStream(data))\n                data = await readToEnd(data);\n            this.setBytes(data, format);\n        });\n    }\n    /**\n     * Creates a Uint8Array representation of the packet, excluding the data\n     *\n     * @returns {Uint8Array} Uint8Array representation of the packet.\n     */\n    writeHeader() {\n        const filename = util.encodeUTF8(this.filename);\n        const filename_length = new Uint8Array([filename.length]);\n        const format = new Uint8Array([this.format]);\n        const date = util.writeDate(this.date);\n        return util.concatUint8Array([format, filename_length, filename, date]);\n    }\n    /**\n     * Creates a Uint8Array representation of the packet\n     *\n     * @returns {Uint8Array | ReadableStream<Uint8Array>} Uint8Array representation of the packet.\n     */\n    write() {\n        const header = this.writeHeader();\n        const data = this.getBytes();\n        return util.concat([header, data]);\n    }\n}\n\n/** @access private */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Implementation of type key id\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-3.3|RFC4880 3.3}:\n * A Key ID is an eight-octet scalar that identifies a key.\n * Implementations SHOULD NOT assume that Key IDs are unique.  The\n * section \"Enhanced Key Formats\" below describes how Key IDs are\n * formed.\n * @access private\n */\nclass KeyID {\n    constructor() {\n        this.bytes = '';\n    }\n    /**\n     * Parsing method for a key id\n     * @param {Uint8Array} bytes - Input to read the key id from\n     */\n    read(bytes) {\n        this.bytes = util.uint8ArrayToString(bytes.subarray(0, 8));\n        return this.bytes.length;\n    }\n    /**\n     * Serializes the Key ID\n     * @returns {Uint8Array} Key ID as a Uint8Array.\n     */\n    write() {\n        return util.stringToUint8Array(this.bytes);\n    }\n    /**\n     * Returns the Key ID represented as a hexadecimal string\n     * @returns {String} Key ID as a hexadecimal string.\n     */\n    toHex() {\n        return util.uint8ArrayToHex(util.stringToUint8Array(this.bytes));\n    }\n    /**\n     * Checks equality of Key ID's\n     * @param {KeyID} keyID\n     * @param {Boolean} matchWildcard - Indicates whether to check if either keyID is a wildcard\n     */\n    equals(keyID, matchWildcard = false) {\n        return (matchWildcard && (keyID.isWildcard() || this.isWildcard())) || this.bytes === keyID.bytes;\n    }\n    /**\n     * Checks to see if the Key ID is unset\n     * @returns {Boolean} True if the Key ID is null.\n     */\n    isNull() {\n        return this.bytes === '';\n    }\n    /**\n     * Checks to see if the Key ID is a \"wildcard\" Key ID (all zeros)\n     * @returns {Boolean} True if this is a wildcard Key ID.\n     */\n    isWildcard() {\n        return /^0+$/.test(this.toHex());\n    }\n    static mapToHex(keyID) {\n        return keyID.toHex();\n    }\n    static fromID(hex) {\n        const keyID = new KeyID();\n        keyID.read(util.hexToUint8Array(hex));\n        return keyID;\n    }\n    static wildcard() {\n        const keyID = new KeyID();\n        keyID.read(new Uint8Array(8));\n        return keyID;\n    }\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n// Symbol to store cryptographic validity of the signature, to avoid recomputing multiple times on verification.\nconst verified = Symbol('verified');\n// A salt notation is used to randomize signatures.\n// This is to protect EdDSA signatures in particular, which are known to be vulnerable to fault attacks\n// leading to secret key extraction if two signatures over the same data can be collected (see https://github.com/jedisct1/libsodium/issues/170).\n// For simplicity, we add the salt to all algos, as it may also serve as protection in case of weaknesses in the hash algo, potentially hindering e.g.\n// some chosen-prefix attacks.\n// v6 signatures do not need to rely on this notation, as they already include a separate, built-in salt.\nconst SALT_NOTATION_NAME = 'salt@notations.openpgpjs.org';\n// GPG puts the Issuer and Signature subpackets in the unhashed area.\n// Tampering with those invalidates the signature, so we still trust them and parse them.\n// All other unhashed subpackets are ignored.\nconst allowedUnhashedSubpackets = new Set([\n    enums.signatureSubpacket.issuerKeyID,\n    enums.signatureSubpacket.issuerFingerprint,\n    enums.signatureSubpacket.embeddedSignature\n]);\n/**\n * Implementation of the Signature Packet (Tag 2)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.2|RFC4480 5.2}:\n * A Signature packet describes a binding between some public key and\n * some data.  The most common signatures are a signature of a file or a\n * block of text, and a signature that is a certification of a User ID.\n */\nclass SignaturePacket {\n    static get tag() {\n        return enums.packet.signature;\n    }\n    constructor() {\n        this.version = null;\n        /** @type {enums.signature} */\n        this.signatureType = null;\n        /** @type {enums.hash} */\n        this.hashAlgorithm = null;\n        /** @type {enums.publicKey} */\n        this.publicKeyAlgorithm = null;\n        this.signatureData = null;\n        this.unhashedSubpackets = [];\n        this.unknownSubpackets = [];\n        this.signedHashValue = null;\n        this.salt = null;\n        this.created = null;\n        this.signatureExpirationTime = null;\n        this.signatureNeverExpires = true;\n        this.exportable = null;\n        this.trustLevel = null;\n        this.trustAmount = null;\n        this.regularExpression = null;\n        this.revocable = null;\n        this.keyExpirationTime = null;\n        this.keyNeverExpires = null;\n        this.preferredSymmetricAlgorithms = null;\n        this.revocationKeyClass = null;\n        this.revocationKeyAlgorithm = null;\n        this.revocationKeyFingerprint = null;\n        this.issuerKeyID = new KeyID();\n        this.rawNotations = [];\n        this.notations = {};\n        this.preferredHashAlgorithms = null;\n        this.preferredCompressionAlgorithms = null;\n        this.keyServerPreferences = null;\n        this.preferredKeyServer = null;\n        this.isPrimaryUserID = null;\n        this.policyURI = null;\n        this.keyFlags = null;\n        this.signersUserID = null;\n        this.reasonForRevocationFlag = null;\n        /** @type {String | null} */\n        this.reasonForRevocationString = null;\n        this.features = null;\n        this.signatureTargetPublicKeyAlgorithm = null;\n        this.signatureTargetHashAlgorithm = null;\n        this.signatureTargetHash = null;\n        this.embeddedSignature = null;\n        this.issuerKeyVersion = null;\n        this.issuerFingerprint = null;\n        this.preferredAEADAlgorithms = null;\n        this.preferredCipherSuites = null;\n        this.revoked = null;\n        this[verified] = null;\n    }\n    /**\n     * parsing function for a signature packet (tag 2).\n     * @param {String} bytes - Payload of a tag 2 packet\n     * @returns {SignaturePacket} Object representation.\n     */\n    read(bytes, config$1 = config) {\n        let i = 0;\n        this.version = bytes[i++];\n        if (this.version === 5 && !config$1.enableParsingV5Entities) {\n            throw new UnsupportedError('Support for v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed');\n        }\n        if (this.version !== 4 && this.version !== 5 && this.version !== 6) {\n            throw new UnsupportedError(`Version ${this.version} of the signature packet is unsupported.`);\n        }\n        this.signatureType = bytes[i++];\n        this.publicKeyAlgorithm = bytes[i++];\n        this.hashAlgorithm = bytes[i++];\n        // hashed subpackets\n        i += this.readSubPackets(bytes.subarray(i, bytes.length), true);\n        if (!this.created) {\n            throw new Error('Missing signature creation time subpacket.');\n        }\n        // A V4 signature hashes the packet body\n        // starting from its first field, the version number, through the end\n        // of the hashed subpacket data.  Thus, the fields hashed are the\n        // signature version, the signature type, the public-key algorithm, the\n        // hash algorithm, the hashed subpacket length, and the hashed\n        // subpacket body.\n        this.signatureData = bytes.subarray(0, i);\n        // unhashed subpackets\n        i += this.readSubPackets(bytes.subarray(i, bytes.length), false);\n        // Two-octet field holding left 16 bits of signed hash value.\n        this.signedHashValue = bytes.subarray(i, i + 2);\n        i += 2;\n        // Only for v6 signatures, a variable-length field containing:\n        if (this.version === 6) {\n            // A one-octet salt size. The value MUST match the value defined\n            // for the hash algorithm as specified in Table 23 (Hash algorithm registry).\n            // To allow parsing unknown hash algos, we only check the expected salt length when verifying.\n            const saltLength = bytes[i++];\n            // The salt; a random value value of the specified size.\n            this.salt = bytes.subarray(i, i + saltLength);\n            i += saltLength;\n        }\n        const signatureMaterial = bytes.subarray(i, bytes.length);\n        const { read, signatureParams } = parseSignatureParams(this.publicKeyAlgorithm, signatureMaterial);\n        if (read < signatureMaterial.length) {\n            throw new Error('Error reading MPIs');\n        }\n        this.params = signatureParams;\n    }\n    /**\n     * @returns {Uint8Array | ReadableStream<Uint8Array>}\n     */\n    writeParams() {\n        if (this.params instanceof Promise) {\n            return fromAsync(async () => serializeParams(this.publicKeyAlgorithm, await this.params));\n        }\n        return serializeParams(this.publicKeyAlgorithm, this.params);\n    }\n    write() {\n        const arr = [];\n        arr.push(this.signatureData);\n        arr.push(this.writeUnhashedSubPackets());\n        arr.push(this.signedHashValue);\n        if (this.version === 6) {\n            arr.push(new Uint8Array([this.salt.length]));\n            arr.push(this.salt);\n        }\n        arr.push(this.writeParams());\n        return util.concat(arr);\n    }\n    /**\n     * Signs provided data. This needs to be done prior to serialization.\n     * @param {SecretKeyPacket} key - Private key used to sign the message.\n     * @param {Object} data - Contains packets to be signed.\n     * @param {Date} [date] - The signature creation time.\n     * @param {Boolean} [detached] - Whether to create a detached signature\n     * @throws {Error} if signing failed\n     * @async\n     */\n    async sign(key, data, date = new Date(), detached = false, config) {\n        this.version = key.version;\n        this.created = util.normalizeDate(date);\n        this.issuerKeyVersion = key.version;\n        this.issuerFingerprint = key.getFingerprintBytes();\n        this.issuerKeyID = key.getKeyID();\n        const arr = [new Uint8Array([this.version, this.signatureType, this.publicKeyAlgorithm, this.hashAlgorithm])];\n        // add randomness to the signature\n        if (this.version === 6) {\n            const saltLength = saltLengthForHash(this.hashAlgorithm);\n            if (this.salt === null) {\n                this.salt = getRandomBytes(saltLength);\n            }\n            else if (saltLength !== this.salt.length) {\n                throw new Error('Provided salt does not have the required length');\n            }\n        }\n        else if (config.nonDeterministicSignaturesViaNotation) {\n            const saltNotations = this.rawNotations.filter(({ name }) => (name === SALT_NOTATION_NAME));\n            // since re-signing the same object is not supported, it's not expected to have multiple salt notations,\n            // but we guard against it as a sanity check\n            if (saltNotations.length === 0) {\n                const saltValue = getRandomBytes(saltLengthForHash(this.hashAlgorithm));\n                this.rawNotations.push({\n                    name: SALT_NOTATION_NAME,\n                    value: saltValue,\n                    humanReadable: false,\n                    critical: false\n                });\n            }\n            else {\n                throw new Error('Unexpected existing salt notation');\n            }\n        }\n        // Add hashed subpackets\n        arr.push(this.writeHashedSubPackets());\n        // Remove unhashed subpackets, in case some allowed unhashed\n        // subpackets existed, in order not to duplicate them (in both\n        // the hashed and unhashed subpackets) when re-signing.\n        this.unhashedSubpackets = [];\n        this.signatureData = util.concat(arr);\n        const toHash = this.toHash(this.signatureType, data, detached);\n        const hash = await this.hash(this.signatureType, data, toHash, detached);\n        this.signedHashValue = slice(clone(hash), 0, 2);\n        const signed = async () => sign$1(this.publicKeyAlgorithm, this.hashAlgorithm, key.publicParams, key.privateParams, toHash, await readToEnd(hash));\n        if (util.isStream(hash)) {\n            this.params = signed();\n        }\n        else {\n            this.params = await signed();\n            // Store the fact that this signature is valid, e.g. for when we call `await\n            // getLatestValidSignature(this.revocationSignatures, key, data)` later.\n            // Note that this only holds up if the key and data passed to verify are the\n            // same as the ones passed to sign.\n            this[verified] = true;\n        }\n    }\n    /**\n     * Creates Uint8Array of bytes of all subpacket data except Issuer and Embedded Signature subpackets\n     * @returns {Uint8Array} Subpacket data.\n     */\n    writeHashedSubPackets() {\n        const sub = enums.signatureSubpacket;\n        const arr = [];\n        let bytes;\n        if (this.created === null) {\n            throw new Error('Missing signature creation time');\n        }\n        arr.push(writeSubPacket(sub.signatureCreationTime, true, util.writeDate(this.created)));\n        if (this.signatureExpirationTime !== null) {\n            arr.push(writeSubPacket(sub.signatureExpirationTime, true, util.writeNumber(this.signatureExpirationTime, 4)));\n        }\n        if (this.exportable !== null) {\n            arr.push(writeSubPacket(sub.exportableCertification, true, new Uint8Array([this.exportable ? 1 : 0])));\n        }\n        if (this.trustLevel !== null) {\n            bytes = new Uint8Array([this.trustLevel, this.trustAmount]);\n            arr.push(writeSubPacket(sub.trustSignature, true, bytes));\n        }\n        if (this.regularExpression !== null) {\n            arr.push(writeSubPacket(sub.regularExpression, true, this.regularExpression));\n        }\n        if (this.revocable !== null) {\n            arr.push(writeSubPacket(sub.revocable, true, new Uint8Array([this.revocable ? 1 : 0])));\n        }\n        if (this.keyExpirationTime !== null) {\n            arr.push(writeSubPacket(sub.keyExpirationTime, true, util.writeNumber(this.keyExpirationTime, 4)));\n        }\n        if (this.preferredSymmetricAlgorithms !== null) {\n            bytes = util.stringToUint8Array(util.uint8ArrayToString(this.preferredSymmetricAlgorithms));\n            arr.push(writeSubPacket(sub.preferredSymmetricAlgorithms, false, bytes));\n        }\n        if (this.revocationKeyClass !== null) {\n            bytes = new Uint8Array([this.revocationKeyClass, this.revocationKeyAlgorithm]);\n            bytes = util.concat([bytes, this.revocationKeyFingerprint]);\n            arr.push(writeSubPacket(sub.revocationKey, false, bytes));\n        }\n        if (!this.issuerKeyID.isNull() && this.issuerKeyVersion < 5) {\n            // If the version of [the] key is greater than 4, this subpacket\n            // MUST NOT be included in the signature.\n            // Note: making this critical breaks RPM <=4.16.\n            // See: https://github.com/ProtonMail/go-crypto/issues/263\n            arr.push(writeSubPacket(sub.issuerKeyID, false, this.issuerKeyID.write()));\n        }\n        this.rawNotations.forEach(({ name, value, humanReadable, critical }) => {\n            bytes = [new Uint8Array([humanReadable ? 0x80 : 0, 0, 0, 0])];\n            const encodedName = util.encodeUTF8(name);\n            // 2 octets of name length\n            bytes.push(util.writeNumber(encodedName.length, 2));\n            // 2 octets of value length\n            bytes.push(util.writeNumber(value.length, 2));\n            bytes.push(encodedName);\n            bytes.push(value);\n            bytes = util.concat(bytes);\n            arr.push(writeSubPacket(sub.notationData, critical, bytes));\n        });\n        if (this.preferredHashAlgorithms !== null) {\n            bytes = util.stringToUint8Array(util.uint8ArrayToString(this.preferredHashAlgorithms));\n            arr.push(writeSubPacket(sub.preferredHashAlgorithms, false, bytes));\n        }\n        if (this.preferredCompressionAlgorithms !== null) {\n            bytes = util.stringToUint8Array(util.uint8ArrayToString(this.preferredCompressionAlgorithms));\n            arr.push(writeSubPacket(sub.preferredCompressionAlgorithms, false, bytes));\n        }\n        if (this.keyServerPreferences !== null) {\n            bytes = util.stringToUint8Array(util.uint8ArrayToString(this.keyServerPreferences));\n            arr.push(writeSubPacket(sub.keyServerPreferences, false, bytes));\n        }\n        if (this.preferredKeyServer !== null) {\n            arr.push(writeSubPacket(sub.preferredKeyServer, false, util.encodeUTF8(this.preferredKeyServer)));\n        }\n        if (this.isPrimaryUserID !== null) {\n            arr.push(writeSubPacket(sub.primaryUserID, false, new Uint8Array([this.isPrimaryUserID ? 1 : 0])));\n        }\n        if (this.policyURI !== null) {\n            arr.push(writeSubPacket(sub.policyURI, false, util.encodeUTF8(this.policyURI)));\n        }\n        if (this.keyFlags !== null) {\n            bytes = util.stringToUint8Array(util.uint8ArrayToString(this.keyFlags));\n            arr.push(writeSubPacket(sub.keyFlags, true, bytes));\n        }\n        if (this.signersUserID !== null) {\n            arr.push(writeSubPacket(sub.signersUserID, false, util.encodeUTF8(this.signersUserID)));\n        }\n        if (this.reasonForRevocationFlag !== null) {\n            bytes = util.stringToUint8Array(String.fromCharCode(this.reasonForRevocationFlag) + this.reasonForRevocationString);\n            arr.push(writeSubPacket(sub.reasonForRevocation, true, bytes));\n        }\n        if (this.features !== null) {\n            bytes = util.stringToUint8Array(util.uint8ArrayToString(this.features));\n            arr.push(writeSubPacket(sub.features, false, bytes));\n        }\n        if (this.signatureTargetPublicKeyAlgorithm !== null) {\n            bytes = [new Uint8Array([this.signatureTargetPublicKeyAlgorithm, this.signatureTargetHashAlgorithm])];\n            bytes.push(util.stringToUint8Array(this.signatureTargetHash));\n            bytes = util.concat(bytes);\n            arr.push(writeSubPacket(sub.signatureTarget, true, bytes));\n        }\n        if (this.embeddedSignature !== null) {\n            arr.push(writeSubPacket(sub.embeddedSignature, true, this.embeddedSignature.write()));\n        }\n        if (this.issuerFingerprint !== null) {\n            bytes = [new Uint8Array([this.issuerKeyVersion]), this.issuerFingerprint];\n            bytes = util.concat(bytes);\n            arr.push(writeSubPacket(sub.issuerFingerprint, this.version >= 5, bytes));\n        }\n        if (this.preferredAEADAlgorithms !== null) {\n            bytes = util.stringToUint8Array(util.uint8ArrayToString(this.preferredAEADAlgorithms));\n            arr.push(writeSubPacket(sub.preferredAEADAlgorithms, false, bytes));\n        }\n        if (this.preferredCipherSuites !== null) {\n            bytes = new Uint8Array([].concat(...this.preferredCipherSuites));\n            arr.push(writeSubPacket(sub.preferredCipherSuites, false, bytes));\n        }\n        const result = util.concat(arr);\n        const length = util.writeNumber(result.length, this.version === 6 ? 4 : 2);\n        return util.concat([length, result]);\n    }\n    /**\n     * Creates an Uint8Array containing the unhashed subpackets\n     * @returns {Uint8Array} Subpacket data.\n     */\n    writeUnhashedSubPackets() {\n        const arr = this.unhashedSubpackets.map(({ type, critical, body }) => {\n            return writeSubPacket(type, critical, body);\n        });\n        const result = util.concat(arr);\n        const length = util.writeNumber(result.length, this.version === 6 ? 4 : 2);\n        return util.concat([length, result]);\n    }\n    // Signature subpackets\n    readSubPacket(bytes, hashed = true) {\n        let mypos = 0;\n        // The leftmost bit denotes a \"critical\" packet\n        const critical = !!(bytes[mypos] & 0x80);\n        const type = bytes[mypos] & 0x7F;\n        mypos++;\n        if (!hashed) {\n            this.unhashedSubpackets.push({\n                type,\n                critical,\n                body: bytes.subarray(mypos, bytes.length)\n            });\n            if (!allowedUnhashedSubpackets.has(type)) {\n                return;\n            }\n        }\n        // subpacket type\n        switch (type) {\n            case enums.signatureSubpacket.signatureCreationTime:\n                // Signature Creation Time\n                this.created = util.readDate(bytes.subarray(mypos, bytes.length));\n                break;\n            case enums.signatureSubpacket.signatureExpirationTime: {\n                // Signature Expiration Time in seconds\n                const seconds = util.readNumber(bytes.subarray(mypos, bytes.length));\n                this.signatureNeverExpires = seconds === 0;\n                this.signatureExpirationTime = seconds;\n                break;\n            }\n            case enums.signatureSubpacket.exportableCertification:\n                // Exportable Certification\n                this.exportable = bytes[mypos++] === 1;\n                break;\n            case enums.signatureSubpacket.trustSignature:\n                // Trust Signature\n                this.trustLevel = bytes[mypos++];\n                this.trustAmount = bytes[mypos++];\n                break;\n            case enums.signatureSubpacket.regularExpression:\n                // Regular Expression\n                this.regularExpression = bytes[mypos];\n                break;\n            case enums.signatureSubpacket.revocable:\n                // Revocable\n                this.revocable = bytes[mypos++] === 1;\n                break;\n            case enums.signatureSubpacket.keyExpirationTime: {\n                // Key Expiration Time in seconds\n                const seconds = util.readNumber(bytes.subarray(mypos, bytes.length));\n                this.keyExpirationTime = seconds;\n                this.keyNeverExpires = seconds === 0;\n                break;\n            }\n            case enums.signatureSubpacket.preferredSymmetricAlgorithms:\n                // Preferred Symmetric Algorithms\n                this.preferredSymmetricAlgorithms = [...bytes.subarray(mypos, bytes.length)];\n                break;\n            case enums.signatureSubpacket.revocationKey:\n                // Revocation Key\n                // (1 octet of class, 1 octet of public-key algorithm ID, 20\n                // octets of\n                // fingerprint)\n                this.revocationKeyClass = bytes[mypos++];\n                this.revocationKeyAlgorithm = bytes[mypos++];\n                this.revocationKeyFingerprint = bytes.subarray(mypos, mypos + 20);\n                break;\n            case enums.signatureSubpacket.issuerKeyID:\n                // Issuer\n                if (this.version === 4) {\n                    this.issuerKeyID.read(bytes.subarray(mypos, bytes.length));\n                }\n                else if (hashed) {\n                    // If the version of the key is greater than 4, this subpacket MUST NOT be included in the signature,\n                    // since the Issuer Fingerprint subpacket is to be used instead.\n                    // The `issuerKeyID` value will be set when reading the issuerFingerprint packet.\n                    // For this reason, if the issuer Key ID packet is present but unhashed, we simply ignore it,\n                    // to avoid situations where `.getSigningKeyIDs()` returns a keyID potentially different from the (signed)\n                    // issuerFingerprint.\n                    // If the packet is hashed, then we reject the signature, to avoid verifying data different from\n                    // what was parsed.\n                    throw new Error('Unexpected Issuer Key ID subpacket');\n                }\n                break;\n            case enums.signatureSubpacket.notationData: {\n                // Notation Data\n                const humanReadable = !!(bytes[mypos] & 0x80);\n                // We extract key/value tuple from the byte stream.\n                mypos += 4;\n                const m = util.readNumber(bytes.subarray(mypos, mypos + 2));\n                mypos += 2;\n                const n = util.readNumber(bytes.subarray(mypos, mypos + 2));\n                mypos += 2;\n                const name = util.decodeUTF8(bytes.subarray(mypos, mypos + m));\n                const value = bytes.subarray(mypos + m, mypos + m + n);\n                this.rawNotations.push({ name, humanReadable, value, critical });\n                if (humanReadable) {\n                    this.notations[name] = util.decodeUTF8(value);\n                }\n                break;\n            }\n            case enums.signatureSubpacket.preferredHashAlgorithms:\n                // Preferred Hash Algorithms\n                this.preferredHashAlgorithms = [...bytes.subarray(mypos, bytes.length)];\n                break;\n            case enums.signatureSubpacket.preferredCompressionAlgorithms:\n                // Preferred Compression Algorithms\n                this.preferredCompressionAlgorithms = [...bytes.subarray(mypos, bytes.length)];\n                break;\n            case enums.signatureSubpacket.keyServerPreferences:\n                // Key Server Preferences\n                this.keyServerPreferences = [...bytes.subarray(mypos, bytes.length)];\n                break;\n            case enums.signatureSubpacket.preferredKeyServer:\n                // Preferred Key Server\n                this.preferredKeyServer = util.decodeUTF8(bytes.subarray(mypos, bytes.length));\n                break;\n            case enums.signatureSubpacket.primaryUserID:\n                // Primary User ID\n                this.isPrimaryUserID = bytes[mypos++] !== 0;\n                break;\n            case enums.signatureSubpacket.policyURI:\n                // Policy URI\n                this.policyURI = util.decodeUTF8(bytes.subarray(mypos, bytes.length));\n                break;\n            case enums.signatureSubpacket.keyFlags:\n                // Key Flags\n                this.keyFlags = [...bytes.subarray(mypos, bytes.length)];\n                break;\n            case enums.signatureSubpacket.signersUserID:\n                // Signer's User ID\n                this.signersUserID = util.decodeUTF8(bytes.subarray(mypos, bytes.length));\n                break;\n            case enums.signatureSubpacket.reasonForRevocation:\n                // Reason for Revocation\n                this.reasonForRevocationFlag = bytes[mypos++];\n                this.reasonForRevocationString = util.decodeUTF8(bytes.subarray(mypos, bytes.length));\n                break;\n            case enums.signatureSubpacket.features:\n                // Features\n                this.features = [...bytes.subarray(mypos, bytes.length)];\n                break;\n            case enums.signatureSubpacket.signatureTarget: {\n                // Signature Target\n                // (1 octet public-key algorithm, 1 octet hash algorithm, N octets hash)\n                this.signatureTargetPublicKeyAlgorithm = bytes[mypos++];\n                this.signatureTargetHashAlgorithm = bytes[mypos++];\n                const len = getHashByteLength(this.signatureTargetHashAlgorithm);\n                this.signatureTargetHash = util.uint8ArrayToString(bytes.subarray(mypos, mypos + len));\n                break;\n            }\n            case enums.signatureSubpacket.embeddedSignature:\n                // Embedded Signature\n                this.embeddedSignature = new SignaturePacket();\n                this.embeddedSignature.read(bytes.subarray(mypos, bytes.length));\n                break;\n            case enums.signatureSubpacket.issuerFingerprint:\n                // Issuer Fingerprint\n                this.issuerKeyVersion = bytes[mypos++];\n                this.issuerFingerprint = bytes.subarray(mypos, bytes.length);\n                if (this.issuerKeyVersion >= 5) {\n                    this.issuerKeyID.read(this.issuerFingerprint);\n                }\n                else {\n                    this.issuerKeyID.read(this.issuerFingerprint.subarray(-8));\n                }\n                break;\n            case enums.signatureSubpacket.preferredAEADAlgorithms:\n                // Preferred AEAD Algorithms\n                this.preferredAEADAlgorithms = [...bytes.subarray(mypos, bytes.length)];\n                break;\n            case enums.signatureSubpacket.preferredCipherSuites:\n                // Preferred AEAD Cipher Suites\n                this.preferredCipherSuites = [];\n                for (let i = mypos; i < bytes.length; i += 2) {\n                    this.preferredCipherSuites.push([bytes[i], bytes[i + 1]]);\n                }\n                break;\n            default:\n                this.unknownSubpackets.push({\n                    type,\n                    critical,\n                    body: bytes.subarray(mypos, bytes.length)\n                });\n                break;\n        }\n    }\n    readSubPackets(bytes, trusted = true, config) {\n        const subpacketLengthBytes = this.version === 6 ? 4 : 2;\n        // Two-octet scalar octet count for following subpacket data.\n        const subpacketLength = util.readNumber(bytes.subarray(0, subpacketLengthBytes));\n        let i = subpacketLengthBytes;\n        // subpacket data set (zero or more subpackets)\n        while (i < 2 + subpacketLength) {\n            const len = readSimpleLength(bytes.subarray(i, bytes.length));\n            i += len.offset;\n            this.readSubPacket(bytes.subarray(i, i + len.len), trusted, config);\n            i += len.len;\n        }\n        return i;\n    }\n    // Produces data to produce signature on\n    toSign(type, data) {\n        const t = enums.signature;\n        switch (type) {\n            case t.binary:\n                if (data.text !== null) {\n                    return util.encodeUTF8(data.getText(true));\n                }\n                return data.getBytes(true);\n            case t.text: {\n                const bytes = data.getBytes(true);\n                // normalize EOL to \\r\\n\n                return util.canonicalizeEOL(bytes);\n            }\n            case t.standalone:\n                return new Uint8Array(0);\n            case t.certGeneric:\n            case t.certPersona:\n            case t.certCasual:\n            case t.certPositive:\n            case t.certRevocation: {\n                let packet;\n                let tag;\n                if (data.userID) {\n                    tag = 0xB4;\n                    packet = data.userID;\n                }\n                else if (data.userAttribute) {\n                    tag = 0xD1;\n                    packet = data.userAttribute;\n                }\n                else {\n                    throw new Error('Either a userID or userAttribute packet needs to be ' +\n                        'supplied for certification.');\n                }\n                const bytes = packet.write();\n                return util.concat([this.toSign(t.key, data),\n                    new Uint8Array([tag]),\n                    util.writeNumber(bytes.length, 4),\n                    bytes]);\n            }\n            case t.subkeyBinding:\n            case t.subkeyRevocation:\n            case t.keyBinding:\n                return util.concat([this.toSign(t.key, data), this.toSign(t.key, {\n                        key: data.bind\n                    })]);\n            case t.key:\n                if (data.key === undefined) {\n                    throw new Error('Key packet is required for this signature.');\n                }\n                return data.key.writeForHash(this.version);\n            case t.keyRevocation:\n                return this.toSign(t.key, data);\n            case t.timestamp:\n                return new Uint8Array(0);\n            case t.thirdParty:\n                throw new Error('Not implemented');\n            default:\n                throw new Error('Unknown signature type.');\n        }\n    }\n    calculateTrailer(data, detached) {\n        let length = 0;\n        return transform(clone(this.signatureData), value => {\n            length += value.length;\n        }, () => {\n            const arr = [];\n            if (this.version === 5 && (this.signatureType === enums.signature.binary || this.signatureType === enums.signature.text)) {\n                if (detached) {\n                    arr.push(new Uint8Array(6));\n                }\n                else {\n                    arr.push(data.writeHeader());\n                }\n            }\n            arr.push(new Uint8Array([this.version, 0xFF]));\n            if (this.version === 5) {\n                arr.push(new Uint8Array(4));\n            }\n            arr.push(util.writeNumber(length, 4));\n            // For v5, this should really be writeNumber(length, 8) rather than the\n            // hardcoded 4 zero bytes above\n            return util.concat(arr);\n        });\n    }\n    toHash(signatureType, data, detached = false) {\n        const bytes = this.toSign(signatureType, data);\n        return util.concat([this.salt || new Uint8Array(), bytes, this.signatureData, this.calculateTrailer(data, detached)]);\n    }\n    async hash(signatureType, data, toHash, detached = false) {\n        if (this.version === 6 && this.salt.length !== saltLengthForHash(this.hashAlgorithm)) {\n            // avoid hashing unexpected salt size\n            throw new Error('Signature salt does not have the expected length');\n        }\n        if (!toHash)\n            toHash = this.toHash(signatureType, data, detached);\n        return computeDigest(this.hashAlgorithm, toHash);\n    }\n    /**\n     * verifies the signature packet. Note: not all signature types are implemented\n     * @param {PublicSubkeyPacket|PublicKeyPacket|\n     *         SecretSubkeyPacket|SecretKeyPacket} key - the public key to verify the signature\n     * @param {module:enums.signature} signatureType - Expected signature type\n     * @param {Uint8Array|Object} data - Data which on the signature applies\n     * @param {Date} [date] - Use the given date instead of the current time to check for signature validity and expiration\n     * @param {Boolean} [detached] - Whether to verify a detached signature\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @throws {Error} if signature validation failed\n     * @async\n     */\n    async verify(key, signatureType, data, date = new Date(), detached = false, config$1 = config) {\n        if (!this.issuerKeyID.equals(key.getKeyID())) {\n            throw new Error('Signature was not issued by the given public key');\n        }\n        if (this.publicKeyAlgorithm !== key.algorithm) {\n            throw new Error('Public key algorithm used to sign signature does not match issuer key algorithm.');\n        }\n        const isMessageSignature = signatureType === enums.signature.binary || signatureType === enums.signature.text;\n        // Cryptographic validity is cached after one successful verification.\n        // However, for message signatures, we always re-verify, since the passed `data` can change\n        const skipVerify = this[verified] && !isMessageSignature;\n        if (!skipVerify) {\n            let toHash;\n            let hash;\n            if (this.hashed) {\n                hash = await this.hashed;\n            }\n            else {\n                toHash = this.toHash(signatureType, data, detached);\n                hash = await this.hash(signatureType, data, toHash);\n            }\n            hash = await readToEnd(hash);\n            if (this.signedHashValue[0] !== hash[0] ||\n                this.signedHashValue[1] !== hash[1]) {\n                throw new Error('Signed digest did not match');\n            }\n            this.params = await this.params;\n            this[verified] = await verify$1(this.publicKeyAlgorithm, this.hashAlgorithm, this.params, key.publicParams, toHash, hash);\n            if (!this[verified]) {\n                throw new Error('Signature verification failed');\n            }\n        }\n        const normDate = util.normalizeDate(date);\n        if (normDate && this.created > normDate) {\n            throw new Error('Signature creation time is in the future');\n        }\n        if (normDate && normDate >= this.getExpirationTime()) {\n            throw new Error('Signature is expired');\n        }\n        if (config$1.rejectHashAlgorithms.has(this.hashAlgorithm)) {\n            throw new Error('Insecure hash algorithm: ' + enums.read(enums.hash, this.hashAlgorithm).toUpperCase());\n        }\n        if (config$1.rejectMessageHashAlgorithms.has(this.hashAlgorithm) &&\n            [enums.signature.binary, enums.signature.text].includes(this.signatureType)) {\n            throw new Error('Insecure message hash algorithm: ' + enums.read(enums.hash, this.hashAlgorithm).toUpperCase());\n        }\n        this.unknownSubpackets.forEach(({ type, critical }) => {\n            if (critical) {\n                throw new Error(`Unknown critical signature subpacket type ${type}`);\n            }\n        });\n        this.rawNotations.forEach(({ name, critical }) => {\n            if (critical && (config$1.knownNotations.indexOf(name) < 0)) {\n                throw new Error(`Unknown critical notation: ${name}`);\n            }\n        });\n        if (this.revocationKeyClass !== null) {\n            throw new Error('This key is intended to be revoked with an authorized key, which OpenPGP.js does not support.');\n        }\n    }\n    /**\n     * Verifies signature expiration date\n     * @param {Date} [date] - Use the given date for verification instead of the current time\n     * @returns {Boolean} True if expired.\n     */\n    isExpired(date = new Date()) {\n        const normDate = util.normalizeDate(date);\n        if (normDate !== null) {\n            return !(this.created <= normDate && normDate < this.getExpirationTime());\n        }\n        return false;\n    }\n    /**\n     * Returns the expiration time of the signature or Infinity if signature does not expire\n     * @returns {Date | Infinity} Expiration time.\n     */\n    getExpirationTime() {\n        return this.signatureNeverExpires ? Infinity : new Date(this.created.getTime() + this.signatureExpirationTime * 1000);\n    }\n}\n/**\n * Creates a Uint8Array representation of a sub signature packet\n * @see {@link https://tools.ietf.org/html/rfc4880#section-5.2.3.1|RFC4880 5.2.3.1}\n * @see {@link https://tools.ietf.org/html/rfc4880#section-5.2.3.2|RFC4880 5.2.3.2}\n * @param {Integer} type - Subpacket signature type.\n * @param {Boolean} critical - Whether the subpacket should be critical.\n * @param {String} data - Data to be included\n * @returns {Uint8Array} The signature subpacket.\n * @private\n */\nfunction writeSubPacket(type, critical, data) {\n    const arr = [];\n    arr.push(writeSimpleLength(data.length + 1));\n    arr.push(new Uint8Array([(critical ? 0x80 : 0) | type]));\n    arr.push(data);\n    return util.concat(arr);\n}\n/**\n * Select the required salt length for the given hash algorithm, as per Table 23 (Hash algorithm registry) of the crypto refresh.\n * @see {@link https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh#section-9.5|Crypto Refresh Section 9.5}\n * @param {enums.hash} hashAlgorithm - Hash algorithm.\n * @returns {Integer} Salt length.\n * @private\n */\nfunction saltLengthForHash(hashAlgorithm) {\n    switch (hashAlgorithm) {\n        case enums.hash.sha256: return 16;\n        case enums.hash.sha384: return 24;\n        case enums.hash.sha512: return 32;\n        case enums.hash.sha224: return 16;\n        case enums.hash.sha3_256: return 16;\n        case enums.hash.sha3_512: return 32;\n        default: throw new Error('Unsupported hash function');\n    }\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Implementation of the One-Pass Signature Packets (Tag 4)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.4|RFC4880 5.4}:\n * The One-Pass Signature packet precedes the signed data and contains\n * enough information to allow the receiver to begin calculating any\n * hashes needed to verify the signature.  It allows the Signature\n * packet to be placed at the end of the message, so that the signer\n * can compute the entire signed message in one pass.\n */\nclass OnePassSignaturePacket {\n    static get tag() {\n        return enums.packet.onePassSignature;\n    }\n    static fromSignaturePacket(signaturePacket, isLast) {\n        const onePassSig = new OnePassSignaturePacket();\n        onePassSig.version = signaturePacket.version === 6 ? 6 : 3;\n        onePassSig.signatureType = signaturePacket.signatureType;\n        onePassSig.hashAlgorithm = signaturePacket.hashAlgorithm;\n        onePassSig.publicKeyAlgorithm = signaturePacket.publicKeyAlgorithm;\n        onePassSig.issuerKeyID = signaturePacket.issuerKeyID;\n        onePassSig.salt = signaturePacket.salt; // v6 only\n        onePassSig.issuerFingerprint = signaturePacket.issuerFingerprint; // v6 only\n        onePassSig.flags = isLast ? 1 : 0;\n        return onePassSig;\n    }\n    constructor() {\n        /** A one-octet version number.  The current versions are 3 and 6. */\n        this.version = null;\n        /**\n         * A one-octet signature type.\n         * Signature types are described in\n         * {@link https://tools.ietf.org/html/rfc4880#section-5.2.1|RFC4880 Section 5.2.1}.\n         * @type {enums.signature}\n    \n         */\n        this.signatureType = null;\n        /**\n         * A one-octet number describing the hash algorithm used.\n         * @see {@link https://tools.ietf.org/html/rfc4880#section-9.4|RFC4880 9.4}\n         * @type {enums.hash}\n         */\n        this.hashAlgorithm = null;\n        /**\n         * A one-octet number describing the public-key algorithm used.\n         * @see {@link https://tools.ietf.org/html/rfc4880#section-9.1|RFC4880 9.1}\n         * @type {enums.publicKey}\n         */\n        this.publicKeyAlgorithm = null;\n        /** Only for v6, a variable-length field containing the salt. */\n        this.salt = null;\n        /** Only for v3 packets, an eight-octet number holding the Key ID of the signing key. */\n        this.issuerKeyID = null;\n        /** Only for v6 packets, 32 octets of the fingerprint of the signing key. */\n        this.issuerFingerprint = null;\n        /**\n         * A one-octet number holding a flag showing whether the signature is nested.\n         * A zero value indicates that the next packet is another One-Pass Signature packet\n         * that describes another signature to be applied to the same message data.\n         */\n        this.flags = null;\n    }\n    /**\n     * parsing function for a one-pass signature packet (tag 4).\n     * @param {Uint8Array} bytes - Payload of a tag 4 packet\n     * @returns {OnePassSignaturePacket} Object representation.\n     */\n    read(bytes) {\n        let mypos = 0;\n        // A one-octet version number.  The current versions are 3 or 6.\n        this.version = bytes[mypos++];\n        if (this.version !== 3 && this.version !== 6) {\n            throw new UnsupportedError(`Version ${this.version} of the one-pass signature packet is unsupported.`);\n        }\n        // A one-octet signature type.  Signature types are described in\n        //   Section 5.2.1.\n        this.signatureType = bytes[mypos++];\n        // A one-octet number describing the hash algorithm used.\n        this.hashAlgorithm = bytes[mypos++];\n        // A one-octet number describing the public-key algorithm used.\n        this.publicKeyAlgorithm = bytes[mypos++];\n        if (this.version === 6) {\n            // Only for v6 signatures, a variable-length field containing:\n            // A one-octet salt size. The value MUST match the value defined\n            // for the hash algorithm as specified in Table 23 (Hash algorithm registry).\n            // To allow parsing unknown hash algos, we only check the expected salt length when verifying.\n            const saltLength = bytes[mypos++];\n            // The salt; a random value value of the specified size.\n            this.salt = bytes.subarray(mypos, mypos + saltLength);\n            mypos += saltLength;\n            // Only for v6 packets, 32 octets of the fingerprint of the signing key.\n            this.issuerFingerprint = bytes.subarray(mypos, mypos + 32);\n            mypos += 32;\n            this.issuerKeyID = new KeyID();\n            // For v6 the Key ID is the high-order 64 bits of the fingerprint.\n            this.issuerKeyID.read(this.issuerFingerprint);\n        }\n        else {\n            // Only for v3 packets, an eight-octet number holding the Key ID of the signing key.\n            this.issuerKeyID = new KeyID();\n            this.issuerKeyID.read(bytes.subarray(mypos, mypos + 8));\n            mypos += 8;\n        }\n        // A one-octet number holding a flag showing whether the signature\n        //   is nested.  A zero value indicates that the next packet is\n        //   another One-Pass Signature packet that describes another\n        //   signature to be applied to the same message data.\n        this.flags = bytes[mypos++];\n        return this;\n    }\n    /**\n     * creates a string representation of a one-pass signature packet\n     * @returns {Uint8Array} A Uint8Array representation of a one-pass signature packet.\n     */\n    write() {\n        const arr = [new Uint8Array([\n                this.version,\n                this.signatureType,\n                this.hashAlgorithm,\n                this.publicKeyAlgorithm\n            ])];\n        if (this.version === 6) {\n            arr.push(new Uint8Array([this.salt.length]), this.salt, this.issuerFingerprint);\n        }\n        else {\n            arr.push(this.issuerKeyID.write());\n        }\n        arr.push(new Uint8Array([this.flags]));\n        return util.concatUint8Array(arr);\n    }\n    calculateTrailer(...args) {\n        return fromAsync(async () => SignaturePacket.prototype.calculateTrailer.apply(await this.correspondingSig, args));\n    }\n    async verify() {\n        const correspondingSig = await this.correspondingSig;\n        if (!correspondingSig || correspondingSig.constructor.tag !== enums.packet.signature) {\n            throw new Error('Corresponding signature packet missing');\n        }\n        if (correspondingSig.signatureType !== this.signatureType ||\n            correspondingSig.hashAlgorithm !== this.hashAlgorithm ||\n            correspondingSig.publicKeyAlgorithm !== this.publicKeyAlgorithm ||\n            !correspondingSig.issuerKeyID.equals(this.issuerKeyID) ||\n            (this.version === 3 && correspondingSig.version === 6) ||\n            (this.version === 6 && correspondingSig.version !== 6) ||\n            (this.version === 6 && !util.equalsUint8Array(correspondingSig.issuerFingerprint, this.issuerFingerprint)) ||\n            (this.version === 6 && !util.equalsUint8Array(correspondingSig.salt, this.salt))) {\n            throw new Error('Corresponding signature packet does not match one-pass signature packet');\n        }\n        correspondingSig.hashed = this.hashed;\n        return correspondingSig.verify.apply(correspondingSig, arguments);\n    }\n}\n// eslint-disable-next-line @typescript-eslint/unbound-method\nOnePassSignaturePacket.prototype.hash = SignaturePacket.prototype.hash;\n// eslint-disable-next-line @typescript-eslint/unbound-method\nOnePassSignaturePacket.prototype.toHash = SignaturePacket.prototype.toHash;\n// eslint-disable-next-line @typescript-eslint/unbound-method\nOnePassSignaturePacket.prototype.toSign = SignaturePacket.prototype.toSign;\n\n/** @access private */\n/**\n * Instantiate a new packet given its tag\n * @function newPacketFromTag\n * @param {module:enums.packet} tag - Property value from {@link module:enums.packet}\n * @param {Object} allowedPackets - mapping where keys are allowed packet tags, pointing to their Packet class\n * @returns {Object} New packet object with type based on tag\n * @throws {Error|UnsupportedError} for disallowed or unknown packets\n * @access private\n */\nfunction newPacketFromTag(tag, allowedPackets) {\n    if (!allowedPackets[tag]) {\n        // distinguish between disallowed packets and unknown ones\n        let packetType;\n        try {\n            packetType = enums.read(enums.packet, tag);\n        }\n        catch {\n            throw new UnknownPacketError(`Unknown packet type with tag: ${tag}`);\n        }\n        throw new Error(`Packet not allowed in this context: ${packetType}`);\n    }\n    return new allowedPackets[tag]();\n}\n/**\n * This class represents a list of openpgp packets.\n * Take care when iterating over it - the packets themselves\n * are stored as numerical indices.\n * @extends Array\n * @access public\n */\nclass PacketList extends Array {\n    /**\n     * Parses the given binary data and returns a list of packets.\n     * Equivalent to calling `read` on an empty PacketList instance.\n     * @param {Uint8Array | ReadableStream<Uint8Array>} bytes - binary data to parse\n     * @param {Object} allowedPackets - mapping where keys are allowed packet tags, pointing to their Packet class\n     * @param {Object} [config] - full configuration, defaults to openpgp.config\n     * @param {function(enums.packet[], boolean, Object): void} [grammarValidator]\n     * @param {Boolean} [delayErrors] - delay errors until the input stream has been read completely\n     * @returns {Promise<PacketList>} parsed list of packets\n     * @throws on parsing errors\n     * @async\n     */\n    static async fromBinary(bytes, allowedPackets, config$1 = config, grammarValidator = null, delayErrors = false) {\n        const packets = new PacketList();\n        await packets.read(bytes, allowedPackets, config$1, grammarValidator, delayErrors);\n        return packets;\n    }\n    /**\n     * Reads a stream of binary data and interprets it as a list of packets.\n     * @param {Uint8Array | ReadableStream<Uint8Array>} bytes - binary data to parse\n     * @param {Object} allowedPackets - mapping where keys are allowed packet tags, pointing to their Packet class\n     * @param {Object} [config] - full configuration, defaults to openpgp.config\n     * @param {function(enums.packet[], boolean, Object): void} [grammarValidator]\n     * @param {Boolean} [delayErrors] - delay errors until the input stream has been read completely\n     * @throws on parsing errors\n     * @async\n     */\n    async read(bytes, allowedPackets, config$1 = config, grammarValidator = null, delayErrors = false) {\n        let additionalAllowedPackets;\n        if (config$1.additionalAllowedPackets.length) {\n            additionalAllowedPackets = util.constructAllowedPackets(config$1.additionalAllowedPackets);\n            allowedPackets = { ...allowedPackets, ...additionalAllowedPackets };\n        }\n        this.stream = transformPair(bytes, async (readable, writable) => {\n            const reader = getReader(readable);\n            const writer = getWriter(writable);\n            try {\n                let useStreamType = util.isStream(readable);\n                while (true) {\n                    await writer.ready;\n                    let unauthenticatedError;\n                    let wasStream;\n                    await readPacket(reader, useStreamType, async (parsed) => {\n                        try {\n                            if (parsed.tag === enums.packet.marker || parsed.tag === enums.packet.trust || parsed.tag === enums.packet.padding) {\n                                // According to the spec, these packet types should be ignored and not cause parsing errors, even if not explicitly allowed:\n                                // - Marker packets MUST be ignored when received: https://github.com/openpgpjs/openpgpjs/issues/1145\n                                // - Trust packets SHOULD be ignored outside of keyrings (unsupported): https://datatracker.ietf.org/doc/html/rfc4880#section-5.10\n                                // - [Padding Packets] MUST be ignored when received: https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh#name-padding-packet-tag-21\n                                return;\n                            }\n                            const packet = newPacketFromTag(parsed.tag, allowedPackets);\n                            // Unknown packets throw in the call above, we ignore them\n                            // in the grammar checker.\n                            try {\n                                grammarValidator?.recordPacket(parsed.tag, additionalAllowedPackets);\n                            }\n                            catch (e) {\n                                if (config$1.enforceGrammar) {\n                                    throw e;\n                                }\n                                else {\n                                    util.printDebugError(e);\n                                }\n                            }\n                            packet.packets = new PacketList();\n                            packet.fromStream = util.isStream(parsed.packet);\n                            wasStream = packet.fromStream;\n                            try {\n                                await packet.read(parsed.packet, config$1);\n                            }\n                            catch (e) {\n                                if (!(e instanceof UnsupportedError)) {\n                                    throw util.wrapError(new MalformedPacketError(`Parsing ${packet.constructor.name} failed`), e);\n                                }\n                                throw e;\n                            }\n                            await writer.write(packet);\n                        }\n                        catch (e) {\n                            // If an implementation encounters a critical packet where the packet type is unknown in a packet sequence,\n                            // it MUST reject the whole packet sequence. On the other hand, an unknown non-critical packet MUST be ignored.\n                            // Packet Tags from 0 to 39 are critical. Packet Tags from 40 to 63 are non-critical.\n                            const throwUnknownPacketError = e instanceof UnknownPacketError &&\n                                parsed.tag <= 39;\n                            // In case of unsupported packet versions/algorithms/etc, we ignore the error by default\n                            // (unless the packet is a data packet, see below).\n                            const throwUnsupportedError = e instanceof UnsupportedError &&\n                                !(e instanceof UnknownPacketError) &&\n                                !config$1.ignoreUnsupportedPackets;\n                            // In case of packet parsing errors, e.name was set to 'MalformedPacketError' above.\n                            // By default, we throw for these errors.\n                            const throwMalformedPacketError = e instanceof MalformedPacketError &&\n                                !config$1.ignoreMalformedPackets;\n                            // The packets that support streaming are the ones that contain message data.\n                            // Those are also the ones we want to be more strict about and throw on all errors\n                            // (since we likely cannot process the message without these packets anyway).\n                            const throwDataPacketError = supportsStreaming(parsed.tag);\n                            // Throw all other errors, including `GrammarError`s, disallowed packet errors, and unexpected errors.\n                            const throwOtherError = !(e instanceof UnknownPacketError ||\n                                e instanceof UnsupportedError ||\n                                e instanceof MalformedPacketError);\n                            if (throwUnknownPacketError ||\n                                throwUnsupportedError ||\n                                throwMalformedPacketError ||\n                                throwDataPacketError ||\n                                throwOtherError) {\n                                if (delayErrors) {\n                                    unauthenticatedError = e;\n                                }\n                                else {\n                                    await writer.abort(e);\n                                }\n                            }\n                            else {\n                                const unparsedPacket = new UnparseablePacket(parsed.tag, parsed.packet);\n                                await writer.write(unparsedPacket);\n                            }\n                            util.printDebugError(e);\n                        }\n                    });\n                    if (wasStream) {\n                        // Don't allow more than one streaming packet, as read errors\n                        // may get lost in the second packet's data stream.\n                        useStreamType = null;\n                    }\n                    // If there was a parse error, read the entire input first\n                    // in case there's an MDC error, which should take precedence.\n                    if (unauthenticatedError) {\n                        await reader.readToEnd();\n                        // eslint-disable-next-line @typescript-eslint/only-throw-error\n                        throw unauthenticatedError;\n                    }\n                    // We peek to check whether this was the last packet.\n                    // We peek 2 bytes instead of 1 because `readPacket` also\n                    // peeks 2 bytes, and we want to cut a `subarray` of the\n                    // correct length into `web-stream-tools`' `externalBuffer`\n                    // as a tiny optimization here.\n                    const nextPacket = await reader.peekBytes(2);\n                    const done = !nextPacket || !nextPacket.length;\n                    if (done) {\n                        // Here we are past the MDC check for SEIPDv1 data, hence\n                        // the data is always authenticated at this point.\n                        try {\n                            grammarValidator?.recordEnd();\n                        }\n                        catch (e) {\n                            if (config$1.enforceGrammar) {\n                                throw e;\n                            }\n                            else {\n                                util.printDebugError(e);\n                            }\n                        }\n                        await writer.ready;\n                        await writer.close();\n                        return;\n                    }\n                }\n            }\n            catch (e) {\n                await writer.abort(e);\n            }\n        });\n        // Wait until first few packets have been read\n        const reader = getReader(this.stream);\n        while (true) {\n            const { done, value } = await reader.read();\n            if (!done) {\n                this.push(value);\n            }\n            else {\n                this.stream = null;\n            }\n            if (done || supportsStreaming(value.constructor.tag)) {\n                break;\n            }\n        }\n        reader.releaseLock();\n    }\n    /**\n     * Creates a binary representation of openpgp objects contained within the\n     * class instance.\n     * @returns {Uint8Array} A Uint8Array containing valid openpgp packets.\n     */\n    write() {\n        const arr = [];\n        for (let i = 0; i < this.length; i++) {\n            const tag = this[i] instanceof UnparseablePacket ? this[i].tag : this[i].constructor.tag;\n            const packetbytes = this[i].write();\n            if (util.isStream(packetbytes) && supportsStreaming(this[i].constructor.tag)) {\n                let buffer = [];\n                let bufferLength = 0;\n                const minLength = 512;\n                arr.push(writeTag(tag));\n                arr.push(transform(packetbytes, value => {\n                    buffer.push(value);\n                    bufferLength += value.length;\n                    if (bufferLength >= minLength) {\n                        const powerOf2 = Math.min(Math.log(bufferLength) / Math.LN2 | 0, 30);\n                        const chunkSize = 2 ** powerOf2;\n                        const bufferConcat = util.concat([writePartialLength(powerOf2)].concat(buffer));\n                        buffer = [bufferConcat.subarray(1 + chunkSize)];\n                        bufferLength = buffer[0].length;\n                        return bufferConcat.subarray(0, 1 + chunkSize);\n                    }\n                }, () => util.concat([writeSimpleLength(bufferLength)].concat(buffer))));\n            }\n            else {\n                if (util.isStream(packetbytes)) {\n                    let length = 0;\n                    arr.push(transform(clone(packetbytes), value => {\n                        length += value.length;\n                    }, () => writeHeader(tag, length)));\n                }\n                else {\n                    arr.push(writeHeader(tag, packetbytes.length));\n                }\n                arr.push(packetbytes);\n            }\n        }\n        return util.concat(arr);\n    }\n    /**\n     * Creates a new PacketList with all packets matching the given tag(s)\n     * @param {...module:enums.packet} tags - packet tags to look for\n     * @returns {PacketList}\n     */\n    filterByTag(...tags) {\n        const filtered = new PacketList();\n        const handle = tag => packetType => tag === packetType;\n        for (let i = 0; i < this.length; i++) {\n            if (tags.some(handle(this[i].constructor.tag))) {\n                filtered.push(this[i]);\n            }\n        }\n        return filtered;\n    }\n    /**\n     * Traverses packet list and returns first packet with matching tag\n     * @param {module:enums.packet} tag - The packet tag\n     * @returns {Packet|undefined}\n     */\n    findPacket(tag) {\n        return this.find(packet => packet.constructor.tag === tag);\n    }\n    /**\n     * Find indices of packets with the given tag(s)\n     * @param {...module:enums.packet} tags - packet tags to look for\n     * @returns {Integer[]} packet indices\n     */\n    indexOfTag(...tags) {\n        const tagIndex = [];\n        const that = this;\n        const handle = tag => packetType => tag === packetType;\n        for (let i = 0; i < this.length; i++) {\n            if (tags.some(handle(that[i].constructor.tag))) {\n                tagIndex.push(i);\n            }\n        }\n        return tagIndex;\n    }\n}\n\n/** @access private */\nclass GrammarError extends Error {\n    constructor(...params) {\n        super(...params);\n        if (Error.captureStackTrace) {\n            Error.captureStackTrace(this, GrammarError);\n        }\n        this.name = 'GrammarError';\n    }\n}\nvar MessageType;\n(function (MessageType) {\n    MessageType[MessageType[\"EmptyMessage\"] = 0] = \"EmptyMessage\";\n    MessageType[MessageType[\"PlaintextOrEncryptedData\"] = 1] = \"PlaintextOrEncryptedData\";\n    MessageType[MessageType[\"EncryptedSessionKeys\"] = 2] = \"EncryptedSessionKeys\";\n    MessageType[MessageType[\"StandaloneAdditionalAllowedData\"] = 3] = \"StandaloneAdditionalAllowedData\";\n})(MessageType || (MessageType = {}));\n/**\n * Implement OpenPGP message grammar based on: https://www.rfc-editor.org/rfc/rfc9580.html#section-10.3 .\n * It is slightly more lenient as it also allows standalone ESK sequences, as well as empty (signed) messages.\n * This latter case is needed to allow unknown packets.\n * A new `MessageGrammarValidator` instance must be created for each packet sequence, as the instance is stateful:\n * - `recordPacket` must be called for each packet in the sequence; the function will throw as soon as\n *  an invalid packet is detected.\n * - `recordEnd` must be called at the end of the packet sequence to confirm its validity.\n * @access private\n */\nclass MessageGrammarValidator {\n    constructor() {\n        // PDA validator inspired by https://blog.jabberhead.tk/2022/10/26/implementing-packet-sequence-validation-using-pushdown-automata/ .\n        this.state = MessageType.EmptyMessage;\n        this.leadingOnePassSignatureCounter = 0;\n    }\n    /**\n     * Determine validity of the next packet in the sequence.\n     * NB: padding, marker and unknown packets are expected to already be filtered out on parsing,\n     * and are not accepted by `recordPacket`.\n     * @param packet - packet to validate\n     * @param additionalAllowedPackets - object containing packets which are allowed anywhere in the sequence, except they cannot precede a OPS packet\n     * @throws {GrammarError} on invalid `packet` input\n     */\n    recordPacket(packet, additionalAllowedPackets) {\n        switch (this.state) {\n            case MessageType.EmptyMessage:\n            case MessageType.StandaloneAdditionalAllowedData:\n                switch (packet) {\n                    case enums.packet.literalData:\n                    case enums.packet.compressedData:\n                    case enums.packet.aeadEncryptedData:\n                    case enums.packet.symEncryptedIntegrityProtectedData:\n                    case enums.packet.symmetricallyEncryptedData:\n                        this.state = MessageType.PlaintextOrEncryptedData;\n                        return;\n                    case enums.packet.signature:\n                        // Signature | <AdditionalAllowedPacketsOnly> and\n                        // OPS | Signature | <AdditionalAllowedPacketsOnly> | Signature and\n                        // OPS | <AdditionalAllowedPacketsOnly> | Signature are allowed\n                        if (this.state === MessageType.StandaloneAdditionalAllowedData) {\n                            if (--this.leadingOnePassSignatureCounter < 0) {\n                                throw new GrammarError('Trailing signature packet without OPS');\n                            }\n                        }\n                        // this.state remains EmptyMessage or StandaloneAdditionalAllowedData\n                        return;\n                    case enums.packet.onePassSignature:\n                        if (this.state === MessageType.StandaloneAdditionalAllowedData) {\n                            // we do not allow this case, for simplicity\n                            throw new GrammarError('OPS following StandaloneAdditionalAllowedData');\n                        }\n                        this.leadingOnePassSignatureCounter++;\n                        // this.state remains EmptyMessage\n                        return;\n                    case enums.packet.publicKeyEncryptedSessionKey:\n                    case enums.packet.symEncryptedSessionKey:\n                        this.state = MessageType.EncryptedSessionKeys;\n                        return;\n                    default:\n                        if (!additionalAllowedPackets?.[packet]) {\n                            throw new GrammarError(`Unexpected packet ${packet} in state ${this.state}`);\n                        }\n                        this.state = MessageType.StandaloneAdditionalAllowedData;\n                        return;\n                }\n            case MessageType.PlaintextOrEncryptedData:\n                switch (packet) {\n                    case enums.packet.signature:\n                        if (--this.leadingOnePassSignatureCounter < 0) {\n                            throw new GrammarError('Trailing signature packet without OPS');\n                        }\n                        this.state = MessageType.PlaintextOrEncryptedData;\n                        return;\n                    default:\n                        if (!additionalAllowedPackets?.[packet]) {\n                            throw new GrammarError(`Unexpected packet ${packet} in state ${this.state}`);\n                        }\n                        this.state = MessageType.PlaintextOrEncryptedData;\n                        return;\n                }\n            case MessageType.EncryptedSessionKeys:\n                switch (packet) {\n                    case enums.packet.publicKeyEncryptedSessionKey:\n                    case enums.packet.symEncryptedSessionKey:\n                        this.state = MessageType.EncryptedSessionKeys;\n                        return;\n                    case enums.packet.symEncryptedIntegrityProtectedData:\n                    case enums.packet.aeadEncryptedData:\n                    case enums.packet.symmetricallyEncryptedData:\n                        this.state = MessageType.PlaintextOrEncryptedData;\n                        return;\n                    case enums.packet.signature:\n                        if (--this.leadingOnePassSignatureCounter < 0) {\n                            throw new GrammarError('Trailing signature packet without OPS');\n                        }\n                        this.state = MessageType.PlaintextOrEncryptedData;\n                        return;\n                    default:\n                        if (!additionalAllowedPackets?.[packet]) {\n                            throw new GrammarError(`Unexpected packet ${packet} in state ${this.state}`);\n                        }\n                        this.state = MessageType.EncryptedSessionKeys;\n                }\n        }\n    }\n    /**\n     * Signal end of the packet sequence for final validity check\n     * @throws {GrammarError} on invalid sequence\n     */\n    recordEnd() {\n        switch (this.state) {\n            case MessageType.EmptyMessage: // needs to be allowed for PacketLists that only include unknown packets\n            case MessageType.PlaintextOrEncryptedData:\n            case MessageType.EncryptedSessionKeys:\n            case MessageType.StandaloneAdditionalAllowedData:\n                if (this.leadingOnePassSignatureCounter > 0) {\n                    throw new GrammarError('Missing trailing signature packets');\n                }\n        }\n    }\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n// A Compressed Data packet can contain the following packet types\nconst allowedPackets$5 = /*#__PURE__*/ util.constructAllowedPackets([\n    LiteralDataPacket,\n    OnePassSignaturePacket,\n    SignaturePacket\n]);\n/**\n * Implementation of the Compressed Data Packet (Tag 8)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.6|RFC4880 5.6}:\n * The Compressed Data packet contains compressed data.  Typically,\n * this packet is found as the contents of an encrypted packet, or following\n * a Signature or One-Pass Signature packet, and contains a literal data packet.\n */\nclass CompressedDataPacket {\n    static get tag() {\n        return enums.packet.compressedData;\n    }\n    /**\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     */\n    constructor(config$1 = config) {\n        /**\n         * List of packets\n         * @type {PacketList}\n         */\n        this.packets = null;\n        /**\n         * Compression algorithm\n         * @type {enums.compression}\n         */\n        this.algorithm = config$1.preferredCompressionAlgorithm;\n        /**\n         * Compressed packet data\n         * @type {Uint8Array | ReadableStream<Uint8Array>}\n         */\n        this.compressed = null;\n    }\n    /**\n     * Parsing function for the packet.\n     * @param {Uint8Array | ReadableStream<Uint8Array>} bytes - Payload of a tag 8 packet\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     */\n    async read(bytes, config$1 = config) {\n        await parse(bytes, async (reader) => {\n            // One octet that gives the algorithm used to compress the packet.\n            this.algorithm = await reader.readByte();\n            // Compressed data, which makes up the remainder of the packet.\n            this.compressed = reader.remainder();\n            await this.decompress(config$1);\n        });\n    }\n    /**\n     * Return the compressed packet.\n     * @returns {Uint8Array | ReadableStream<Uint8Array>} Binary compressed packet.\n     */\n    write() {\n        if (this.compressed === null) {\n            this.compress();\n        }\n        return util.concat([new Uint8Array([this.algorithm]), this.compressed]);\n    }\n    /**\n     * Decompression method for decompressing the compressed data\n     * read by read_packet\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     */\n    async decompress(config$1 = config) {\n        const compressionName = enums.read(enums.compression, this.algorithm);\n        const decompressionFn = decompress_fns[compressionName]; // bzip decompression is async\n        if (!decompressionFn) {\n            throw new Error(`${compressionName} decompression not supported`);\n        }\n        let decompressed = await decompressionFn(this.compressed);\n        if (config$1.maxDecompressedMessageSize !== Infinity) {\n            let decompressedSize = 0;\n            decompressed = transform(decompressed, chunk => {\n                decompressedSize += chunk.length;\n                if (decompressedSize > config$1.maxDecompressedMessageSize) {\n                    throw new Error('Maximum decompressed message size exceeded');\n                }\n                return chunk;\n            });\n        }\n        if (!isStream(this.compressed) || isArrayStream(this.compressed)) {\n            decompressed = await readToEnd(decompressed);\n        }\n        // Decompressing a Compressed Data packet MUST also yield a valid OpenPGP Message\n        this.packets = await PacketList.fromBinary(decompressed, allowedPackets$5, config$1, new MessageGrammarValidator());\n    }\n    /**\n     * Compress the packet data (member decompressedData)\n     */\n    compress() {\n        const compressionName = enums.read(enums.compression, this.algorithm);\n        const compressionFn = compress_fns[compressionName];\n        if (!compressionFn) {\n            throw new Error(`${compressionName} compression not supported`);\n        }\n        const data = this.packets.write();\n        let compressed = compressionFn(data);\n        if (!isStream(data) || isArrayStream(data)) {\n            // Convert back to an ArrayStream when we weren't streaming before,\n            // even if web streams were used internally while compressing,\n            // so that we don't return a stream from the high-level function.\n            compressed = fromAsync(() => readToEnd(compressed));\n        }\n        this.compressed = compressed;\n    }\n}\n//////////////////////////\n//                      //\n//   Helper functions   //\n//                      //\n//////////////////////////\nfunction splitStream(data) {\n    const chunkSize = 65536;\n    const reader = getReader(data);\n    return new ReadableStream({\n        async pull(controller) {\n            try {\n                const { value, done } = await reader.read();\n                if (done) {\n                    controller.close();\n                    return;\n                }\n                for (let i = 0; i <= value.length; i += chunkSize) {\n                    if (!i || i < value.length) {\n                        controller.enqueue(value.subarray(i, i + chunkSize));\n                    }\n                }\n            }\n            catch (e) {\n                controller.error(e);\n            }\n        }\n    }, { highWaterMark: 0 });\n}\n/**\n * Zlib processor relying on Compression Stream API if available, or falling back to fflate otherwise.\n * @param {function(): CompressionStream|function(): DecompressionStream} compressionStreamInstantiator\n * @param {FunctionConstructor} ZlibStreamedConstructor - fflate constructor\n * @returns {ReadableStream<Uint8Array>} compressed or decompressed data\n * @private\n */\nfunction zlib(compressionStreamInstantiator, ZlibStreamedConstructor) {\n    return data => {\n        let stream;\n        if (isArrayStream(data)) {\n            stream = new ReadableStream({\n                async start(controller) {\n                    try {\n                        controller.enqueue(await readToEnd(data));\n                        controller.close();\n                    }\n                    catch (e) {\n                        controller.error(e);\n                    }\n                }\n            });\n        }\n        else if (isStream(data)) {\n            stream = data;\n        }\n        else {\n            stream = toStream(data);\n        }\n        // Split the input stream into chunks of 64KiB.\n        // This is only necessary for the fflate fallback decompressor, and\n        // the native Compression API in WebKit, as they decompress the\n        // entire input chunk and emit one output chunk, rather than\n        // outputting chunks incrementally as it decompresses the input.\n        // Therefore, for backpressure to work properly, we need to split\n        // the input chunks.\n        // We do it unconditionally here (regardless of the platform and\n        // API used) for simplicity and because it doesn't hurt much.\n        // (This only does anything if the input chunks aren't already 64KiB\n        // or smaller, e.g. when a large message is passed all at once.)\n        stream = splitStream(stream);\n        // Use Compression Streams API if available (see https://developer.mozilla.org/en-US/docs/Web/API/Compression_Streams_API)\n        if (compressionStreamInstantiator) {\n            try {\n                const compressorOrDecompressor = compressionStreamInstantiator();\n                return stream.pipeThrough(compressorOrDecompressor);\n            }\n            catch (err) {\n                // If format is unsupported in Compression/DecompressionStream, then a TypeError is thrown, and we fallback to fflate.\n                if (err.name !== 'TypeError') {\n                    throw err;\n                }\n            }\n        }\n        // JS fallback\n        const inputReader = getReader(stream);\n        const zlibStream = new ZlibStreamedConstructor();\n        let providedData = false;\n        let allDone = false;\n        return new ReadableStream({\n            start(controller) {\n                zlibStream.ondata = (value, isLast) => {\n                    controller.enqueue(value);\n                    providedData = true;\n                    if (isLast) {\n                        controller.close();\n                        allDone = true;\n                    }\n                };\n            },\n            async pull() {\n                providedData = false;\n                while (!providedData && !allDone) {\n                    const { done, value } = await inputReader.read();\n                    if (done) {\n                        zlibStream.push(new Uint8Array(), true);\n                        return;\n                    }\n                    else if (value.length) {\n                        zlibStream.push(value);\n                    }\n                }\n            }\n        }, { highWaterMark: 0 });\n    };\n}\nfunction bzip2Decompress() {\n    return async function (data) {\n        const { default: unbzip2Stream } = await Promise.resolve().then(function () { return index$1; });\n        return unbzip2Stream(toStream(data));\n    };\n}\n/**\n * Get Compression Stream API instantiators if the constructors are implemented.\n * NB: the return instantiator functions will throw when called if the provided `compressionFormat` is not supported\n * (supported formats cannot be determined in advance).\n * @param {'deflate-raw'|'deflate'|'gzip'|string} compressionFormat\n * @returns {{ compressor: function(): CompressionStream | false, decompressor: function(): DecompressionStream | false }}\n * @private\n */\nconst getCompressionStreamInstantiators = compressionFormat => ({\n    compressor: typeof CompressionStream !== 'undefined' && (() => new CompressionStream(compressionFormat)),\n    decompressor: typeof DecompressionStream !== 'undefined' && (() => new DecompressionStream(compressionFormat))\n});\nconst compress_fns = {\n    zip: /*#__PURE__*/ zlib(getCompressionStreamInstantiators('deflate-raw').compressor, Deflate),\n    zlib: /*#__PURE__*/ zlib(getCompressionStreamInstantiators('deflate').compressor, Zlib)\n};\nconst decompress_fns = {\n    uncompressed: data => data,\n    zip: /*#__PURE__*/ zlib(getCompressionStreamInstantiators('deflate-raw').decompressor, Inflate),\n    zlib: /*#__PURE__*/ zlib(getCompressionStreamInstantiators('deflate').decompressor, Unzlib),\n    bzip2: /*#__PURE__*/ bzip2Decompress() // NB: async due to dynamic lib import\n};\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n// A SEIP packet can contain the following packet types\nconst allowedPackets$4 = /*#__PURE__*/ util.constructAllowedPackets([\n    LiteralDataPacket,\n    CompressedDataPacket,\n    OnePassSignaturePacket,\n    SignaturePacket\n]);\n/**\n * Implementation of the Sym. Encrypted Integrity Protected Data Packet (Tag 18)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.13|RFC4880 5.13}:\n * The Symmetrically Encrypted Integrity Protected Data packet is\n * a variant of the Symmetrically Encrypted Data packet. It is a new feature\n * created for OpenPGP that addresses the problem of detecting a modification to\n * encrypted data. It is used in combination with a Modification Detection Code\n * packet.\n */\nclass SymEncryptedIntegrityProtectedDataPacket {\n    static get tag() {\n        return enums.packet.symEncryptedIntegrityProtectedData;\n    }\n    static fromObject({ version, aeadAlgorithm }) {\n        if (version !== 1 && version !== 2) {\n            throw new Error('Unsupported SEIPD version');\n        }\n        const seip = new SymEncryptedIntegrityProtectedDataPacket();\n        seip.version = version;\n        if (version === 2) {\n            seip.aeadAlgorithm = aeadAlgorithm;\n        }\n        return seip;\n    }\n    constructor() {\n        this.version = null;\n        // The following 4 fields are for V2 only.\n        /** @type {enums.symmetric} */\n        this.cipherAlgorithm = null;\n        /** @type {enums.aead} */\n        this.aeadAlgorithm = null;\n        this.chunkSizeByte = null;\n        this.salt = null;\n        this.encrypted = null;\n        this.packets = null;\n    }\n    async read(bytes) {\n        await parse(bytes, async (reader) => {\n            this.version = await reader.readByte();\n            // - A one-octet version number with value 1 or 2.\n            if (this.version !== 1 && this.version !== 2) {\n                throw new UnsupportedError(`Version ${this.version} of the SEIP packet is unsupported.`);\n            }\n            if (this.version === 2) {\n                // - A one-octet cipher algorithm.\n                this.cipherAlgorithm = await reader.readByte();\n                // - A one-octet AEAD algorithm.\n                this.aeadAlgorithm = await reader.readByte();\n                // - A one-octet chunk size.\n                this.chunkSizeByte = await reader.readByte();\n                // - Thirty-two octets of salt. The salt is used to derive the message key and must be unique.\n                this.salt = await reader.readBytes(32);\n            }\n            // For V1:\n            // - Encrypted data, the output of the selected symmetric-key cipher\n            //   operating in Cipher Feedback mode with shift amount equal to the\n            //   block size of the cipher (CFB-n where n is the block size).\n            // For V2:\n            // - Encrypted data, the output of the selected symmetric-key cipher operating in the given AEAD mode.\n            // - A final, summary authentication tag for the AEAD mode.\n            this.encrypted = reader.remainder();\n        });\n    }\n    write() {\n        if (this.version === 2) {\n            return util.concat([new Uint8Array([this.version, this.cipherAlgorithm, this.aeadAlgorithm, this.chunkSizeByte]), this.salt, this.encrypted]);\n        }\n        return util.concat([new Uint8Array([this.version]), this.encrypted]);\n    }\n    /**\n     * Encrypt the payload in the packet.\n     * @param {enums.symmetric} sessionKeyAlgorithm - The symmetric encryption algorithm to use\n     * @param {Uint8Array} key - The key of cipher blocksize length to be used\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Boolean>}\n     * @throws {Error} on encryption failure\n     * @async\n     */\n    async encrypt(sessionKeyAlgorithm, key, config$1 = config) {\n        // We check that the session key size matches the one expected by the symmetric algorithm.\n        // This is especially important for SEIPDv2 session keys, as a key derivation step is run where the resulting key will always match the expected cipher size,\n        // but we want to ensure that the input key isn't e.g. too short.\n        // The check is done here, instead of on encrypted session key (ESK) encryption, because v6 ESK packets do not store the session key algorithm,\n        // which is instead included in the SEIPDv2 data.\n        const { blockSize, keySize } = getCipherParams(sessionKeyAlgorithm);\n        if (key.length !== keySize) {\n            throw new Error('Unexpected session key size');\n        }\n        let bytes = this.packets.write();\n        if (isArrayStream(bytes))\n            bytes = await readToEnd(bytes);\n        if (this.version === 2) {\n            this.cipherAlgorithm = sessionKeyAlgorithm;\n            this.salt = getRandomBytes(32);\n            this.chunkSizeByte = config$1.aeadChunkSizeByte;\n            this.encrypted = await runAEAD(this, 'encrypt', key, bytes);\n        }\n        else {\n            const prefix = await getPrefixRandom(sessionKeyAlgorithm);\n            const mdc = new Uint8Array([0xD3, 0x14]); // modification detection code packet\n            const tohash = util.concat([prefix, bytes, mdc]);\n            const hash = await computeDigest(enums.hash.sha1, passiveClone(tohash));\n            const plaintext = util.concat([tohash, hash]);\n            this.encrypted = await encrypt$1(sessionKeyAlgorithm, key, plaintext, new Uint8Array(blockSize));\n        }\n        return true;\n    }\n    /**\n     * Decrypts the encrypted data contained in the packet.\n     * @param {enums.symmetric} sessionKeyAlgorithm - The selected symmetric encryption algorithm to be used\n     * @param {Uint8Array} key - The key of cipher blocksize length to be used\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Boolean>}\n     * @throws {Error} on decryption failure\n     * @async\n     */\n    async decrypt(sessionKeyAlgorithm, key, config$1 = config) {\n        // We check that the session key size matches the one expected by the symmetric algorithm.\n        // This is especially important for SEIPDv2 session keys, as a key derivation step is run where the resulting key will always match the expected cipher size,\n        // but we want to ensure that the input key isn't e.g. too short.\n        // The check is done here, instead of on encrypted session key (ESK) decryption, because v6 ESK packets do not store the session key algorithm,\n        // which is instead included in the SEIPDv2 data.\n        if (key.length !== getCipherParams(sessionKeyAlgorithm).keySize) {\n            throw new Error('Unexpected session key size');\n        }\n        let encrypted = clone(this.encrypted);\n        if (isArrayStream(encrypted))\n            encrypted = await readToEnd(encrypted);\n        let packetbytes;\n        let delayErrors = false;\n        if (this.version === 2) {\n            if (this.cipherAlgorithm !== sessionKeyAlgorithm) {\n                // sanity check\n                throw new Error('Unexpected session key algorithm');\n            }\n            packetbytes = await runAEAD(this, 'decrypt', key, encrypted);\n        }\n        else {\n            const { blockSize } = getCipherParams(sessionKeyAlgorithm);\n            const decrypted = await decrypt$1(sessionKeyAlgorithm, key, encrypted, new Uint8Array(blockSize));\n            // there must be a modification detection code packet as the\n            // last packet and everything gets hashed except the hash itself\n            const realHash = slice(passiveClone(decrypted), -20);\n            const tohash = slice(decrypted, 0, -20);\n            const verifyHash = Promise.all([\n                readToEnd(await computeDigest(enums.hash.sha1, passiveClone(tohash))),\n                readToEnd(realHash)\n            ]).then(([hash, mdc]) => {\n                if (!util.equalsUint8Array(hash, mdc)) {\n                    throw new Error('Modification detected.');\n                }\n                // this last chunk comes at the end of the stream passed to Packetlist.read's streamTransformPair,\n                // which can thus be 'done' only after the MDC has been checked.\n                return new Uint8Array();\n            });\n            const bytes = slice(tohash, blockSize + 2); // Remove random prefix\n            packetbytes = slice(bytes, 0, -2); // Remove MDC packet\n            packetbytes = concat([packetbytes, fromAsync(() => verifyHash)]);\n            if (util.isStream(encrypted) && config$1.allowUnauthenticatedStream) {\n                delayErrors = true;\n            }\n            else {\n                packetbytes = await readToEnd(packetbytes);\n            }\n        }\n        // - Decrypting a version 1 Symmetrically Encrypted and Integrity Protected Data packet\n        // MUST yield a valid OpenPGP Message.\n        // - Decrypting a version 2 Symmetrically Encrypted and Integrity Protected Data packet\n        // MUST yield a valid Optionally Padded Message.\n        this.packets = await PacketList.fromBinary(packetbytes, allowedPackets$4, config$1, new MessageGrammarValidator(), delayErrors);\n        return true;\n    }\n}\n/**\n * En/decrypt the payload.\n * @param {encrypt|decrypt} fn - Whether to encrypt or decrypt\n * @param {Uint8Array} key - The session key used to en/decrypt the payload\n * @param {Uint8Array | ReadableStream<Uint8Array>} data - The data to en/decrypt\n * @returns {Promise<Uint8Array | ReadableStream<Uint8Array>>}\n * @async\n * @access private\n */\nasync function runAEAD(packet, fn, key, data) {\n    const isSEIPDv2 = packet instanceof SymEncryptedIntegrityProtectedDataPacket && packet.version === 2;\n    const isAEADP = !isSEIPDv2 && packet.constructor.tag === enums.packet.aeadEncryptedData; // no `instanceof` to avoid importing the corresponding class (circular import)\n    if (!isSEIPDv2 && !isAEADP)\n        throw new Error('Unexpected packet type');\n    // we allow `experimentalGCM` for AEADP for backwards compatibility, since v5 keys from OpenPGP.js v5 might be declaring\n    // that preference, as the `gcm` ID had not been standardized at the time.\n    // NB: AEADP are never automatically generate as part of message encryption by OpenPGP.js, the packet must be manually created.\n    const mode = getAEADMode(packet.aeadAlgorithm, isAEADP);\n    const tagLengthIfDecrypting = fn === 'decrypt' ? mode.tagLength : 0;\n    const tagLengthIfEncrypting = fn === 'encrypt' ? mode.tagLength : 0;\n    const chunkSize = 2 ** (packet.chunkSizeByte + 6) + tagLengthIfDecrypting; // ((uint64_t)1 << (c + 6))\n    const chunkIndexSizeIfAEADEP = isAEADP ? 8 : 0;\n    const adataBuffer = new ArrayBuffer(13 + chunkIndexSizeIfAEADEP);\n    const adataArray = new Uint8Array(adataBuffer, 0, 5 + chunkIndexSizeIfAEADEP);\n    const adataTagArray = new Uint8Array(adataBuffer);\n    const adataView = new DataView(adataBuffer);\n    const chunkIndexArray = new Uint8Array(adataBuffer, 5, 8);\n    adataArray.set([0xC0 | packet.constructor.tag, packet.version, packet.cipherAlgorithm, packet.aeadAlgorithm, packet.chunkSizeByte], 0);\n    let chunkIndex = 0;\n    let latestPromise = Promise.resolve();\n    let cryptedBytes = 0;\n    let queuedBytes = 0;\n    let iv;\n    let ivView;\n    if (isSEIPDv2) {\n        const { keySize } = getCipherParams(packet.cipherAlgorithm);\n        const { ivLength } = mode;\n        const info = new Uint8Array(adataBuffer, 0, 5);\n        const derived = await computeHKDF(enums.hash.sha256, key, packet.salt, info, keySize + ivLength);\n        key = derived.subarray(0, keySize);\n        iv = derived.subarray(keySize); // The last 8 bytes of HKDF output are unneeded, but this avoids one copy.\n        iv.fill(0, iv.length - 8);\n        ivView = new DataView(iv.buffer, iv.byteOffset, iv.byteLength);\n    }\n    else { // AEADEncryptedDataPacket\n        iv = packet.iv;\n        // ivView is unused in this case\n    }\n    const modeInstance = await mode(packet.cipherAlgorithm, key);\n    return transformPair(data, async (readable, writable) => {\n        if (util.isStream(readable) !== 'array') {\n            const buffer = new TransformStream({}, {\n                highWaterMark: util.getHardwareConcurrency() * 2 ** (packet.chunkSizeByte + 6),\n                size: array => array.length\n            });\n            pipe(buffer.readable, writable);\n            writable = buffer.writable;\n        }\n        const reader = getReader(readable);\n        const writer = getWriter(writable);\n        try {\n            while (true) {\n                let chunk = await reader.readBytes(chunkSize + tagLengthIfDecrypting) || new Uint8Array();\n                const finalChunk = chunk.subarray(chunk.length - tagLengthIfDecrypting);\n                chunk = chunk.subarray(0, chunk.length - tagLengthIfDecrypting);\n                let cryptedPromise;\n                let done;\n                let nonce;\n                if (isSEIPDv2) { // SEIPD V2\n                    nonce = iv;\n                }\n                else { // AEADEncryptedDataPacket\n                    nonce = iv.slice();\n                    for (let i = 0; i < 8; i++) {\n                        nonce[iv.length - 8 + i] ^= chunkIndexArray[i];\n                    }\n                }\n                if (!chunkIndex || chunk.length) {\n                    reader.unshift(finalChunk);\n                    cryptedPromise = modeInstance[fn](chunk, nonce, adataArray);\n                    cryptedPromise.catch(() => { });\n                    queuedBytes += chunk.length - tagLengthIfDecrypting + tagLengthIfEncrypting;\n                }\n                else {\n                    // After the last chunk, we either encrypt a final, empty\n                    // data chunk to get the final authentication tag or\n                    // validate that final authentication tag.\n                    adataView.setInt32(5 + chunkIndexSizeIfAEADEP + 4, cryptedBytes); // Should be setInt64(5 + chunkIndexSizeIfAEADEP, ...)\n                    cryptedPromise = modeInstance[fn](finalChunk, nonce, adataTagArray);\n                    cryptedPromise.catch(() => { });\n                    queuedBytes += tagLengthIfEncrypting;\n                    done = true;\n                }\n                cryptedBytes += chunk.length - tagLengthIfDecrypting;\n                latestPromise = latestPromise.then(() => cryptedPromise).then(async (crypted) => {\n                    await writer.ready;\n                    await writer.write(crypted);\n                    queuedBytes -= crypted.length;\n                }).catch(err => writer.abort(err));\n                if (done || queuedBytes > writer.desiredSize) {\n                    await latestPromise; // Respect backpressure\n                }\n                if (!done) {\n                    if (isSEIPDv2) { // SEIPD V2\n                        ivView.setInt32(iv.length - 4, ++chunkIndex); // Should be setInt64(iv.length - 8, ...)\n                    }\n                    else { // AEADEncryptedDataPacket\n                        adataView.setInt32(5 + 4, ++chunkIndex); // Should be setInt64(5, ...)\n                    }\n                }\n                else {\n                    await writer.close();\n                    break;\n                }\n            }\n        }\n        catch (e) {\n            await writer.ready.catch(() => { });\n            await writer.abort(e);\n        }\n    });\n}\n\n/** @access public */\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2016 Tankred Hase\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n// An AEAD-encrypted Data packet can contain the following packet types\nconst allowedPackets$3 = /*#__PURE__*/ util.constructAllowedPackets([\n    LiteralDataPacket,\n    CompressedDataPacket,\n    OnePassSignaturePacket,\n    SignaturePacket\n]);\nconst VERSION$1 = 1; // A one-octet version number of the data packet.\n/**\n * Implementation of the Symmetrically Encrypted Authenticated Encryption with\n * Additional Data (AEAD) Protected Data Packet\n *\n * {@link https://tools.ietf.org/html/draft-ford-openpgp-format-00#section-2.1}:\n * AEAD Protected Data Packet\n */\nclass AEADEncryptedDataPacket {\n    static get tag() {\n        return enums.packet.aeadEncryptedData;\n    }\n    constructor() {\n        this.version = VERSION$1;\n        /** @type {enums.symmetric} */\n        this.cipherAlgorithm = null;\n        /** @type {enums.aead} */\n        this.aeadAlgorithm = enums.aead.eax;\n        this.chunkSizeByte = null;\n        this.iv = null;\n        this.encrypted = null;\n        this.packets = null;\n    }\n    /**\n     * Parse an encrypted payload of bytes in the order: version, IV, ciphertext (see specification)\n     * @param {Uint8Array | ReadableStream<Uint8Array>} bytes\n     * @throws {Error} on parsing failure\n     */\n    async read(bytes) {\n        await parse(bytes, async (reader) => {\n            const version = await reader.readByte();\n            if (version !== VERSION$1) { // The only currently defined value is 1.\n                throw new UnsupportedError(`Version ${version} of the AEAD-encrypted data packet is not supported.`);\n            }\n            this.cipherAlgorithm = await reader.readByte();\n            this.aeadAlgorithm = await reader.readByte();\n            this.chunkSizeByte = await reader.readByte();\n            const mode = getAEADMode(this.aeadAlgorithm, true);\n            this.iv = await reader.readBytes(mode.ivLength);\n            this.encrypted = reader.remainder();\n        });\n    }\n    /**\n     * Write the encrypted payload of bytes in the order: version, IV, ciphertext (see specification)\n     * @returns {Uint8Array | ReadableStream<Uint8Array>} The encrypted payload.\n     */\n    write() {\n        return util.concat([new Uint8Array([this.version, this.cipherAlgorithm, this.aeadAlgorithm, this.chunkSizeByte]), this.iv, this.encrypted]);\n    }\n    /**\n     * Decrypt the encrypted payload.\n     * @param {enums.symmetric} sessionKeyAlgorithm - The session key's cipher algorithm\n     * @param {Uint8Array} key - The session key used to encrypt the payload\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @throws {Error} if decryption was not successful\n     * @async\n     */\n    async decrypt(sessionKeyAlgorithm, key, config$1 = config) {\n        this.packets = await PacketList.fromBinary(await runAEAD(this, 'decrypt', key, clone(this.encrypted)), allowedPackets$3, config$1, new MessageGrammarValidator());\n    }\n    /**\n     * Encrypt the packet payload.\n     * @param {enums.symmetric} sessionKeyAlgorithm - The session key's cipher algorithm\n     * @param {Uint8Array} key - The session key used to encrypt the payload\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @throws {Error} if encryption was not successful\n     * @async\n     */\n    async encrypt(sessionKeyAlgorithm, key, config$1 = config) {\n        this.cipherAlgorithm = sessionKeyAlgorithm;\n        const { ivLength } = getAEADMode(this.aeadAlgorithm, true);\n        this.iv = getRandomBytes(ivLength); // generate new random IV\n        this.chunkSizeByte = config$1.aeadChunkSizeByte;\n        const data = this.packets.write();\n        this.encrypted = await runAEAD(this, 'encrypt', key, data);\n    }\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Public-Key Encrypted Session Key Packets (Tag 1)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.1|RFC4880 5.1}:\n * A Public-Key Encrypted Session Key packet holds the session key\n * used to encrypt a message. Zero or more Public-Key Encrypted Session Key\n * packets and/or Symmetric-Key Encrypted Session Key packets may precede a\n * Symmetrically Encrypted Data Packet, which holds an encrypted message. The\n * message is encrypted with the session key, and the session key is itself\n * encrypted and stored in the Encrypted Session Key packet(s). The\n * Symmetrically Encrypted Data Packet is preceded by one Public-Key Encrypted\n * Session Key packet for each OpenPGP key to which the message is encrypted.\n * The recipient of the message finds a session key that is encrypted to their\n * public key, decrypts the session key, and then uses the session key to\n * decrypt the message.\n */\nclass PublicKeyEncryptedSessionKeyPacket {\n    static get tag() {\n        return enums.packet.publicKeyEncryptedSessionKey;\n    }\n    constructor() {\n        this.version = null;\n        // For version 3, but also used internally by v6 in e.g. `getEncryptionKeyIDs()`\n        this.publicKeyID = new KeyID();\n        // For version 6:\n        this.publicKeyVersion = null;\n        this.publicKeyFingerprint = null;\n        // For all versions:\n        /** @type {enums.publicKey | null} */\n        this.publicKeyAlgorithm = null;\n        this.sessionKey = null;\n        /**\n         * Algorithm to encrypt the message with\n         * @type {enums.symmetric}\n         */\n        this.sessionKeyAlgorithm = null;\n        /** @type {Object} */\n        this.encrypted = {};\n    }\n    static fromObject({ version, encryptionKeyPacket, anonymousRecipient, sessionKey, sessionKeyAlgorithm }) {\n        const pkesk = new PublicKeyEncryptedSessionKeyPacket();\n        if (version !== 3 && version !== 6) {\n            throw new Error('Unsupported PKESK version');\n        }\n        pkesk.version = version;\n        if (version === 6) {\n            pkesk.publicKeyVersion = anonymousRecipient ? null : encryptionKeyPacket.version;\n            pkesk.publicKeyFingerprint = anonymousRecipient ? null : encryptionKeyPacket.getFingerprintBytes();\n        }\n        pkesk.publicKeyID = anonymousRecipient ? KeyID.wildcard() : encryptionKeyPacket.getKeyID();\n        pkesk.publicKeyAlgorithm = encryptionKeyPacket.algorithm;\n        pkesk.sessionKey = sessionKey;\n        pkesk.sessionKeyAlgorithm = sessionKeyAlgorithm;\n        return pkesk;\n    }\n    /**\n     * Parsing function for a publickey encrypted session key packet (tag 1).\n     *\n     * @param {Uint8Array} bytes - Payload of a tag 1 packet\n     */\n    read(bytes) {\n        let offset = 0;\n        this.version = bytes[offset++];\n        if (this.version !== 3 && this.version !== 6) {\n            throw new UnsupportedError(`Version ${this.version} of the PKESK packet is unsupported.`);\n        }\n        if (this.version === 6) {\n            // A one-octet size of the following two fields:\n            // - A one octet key version number.\n            // - The fingerprint of the public key or subkey to which the session key is encrypted.\n            // The size may also be zero.\n            const versionAndFingerprintLength = bytes[offset++];\n            if (versionAndFingerprintLength) {\n                this.publicKeyVersion = bytes[offset++];\n                const fingerprintLength = versionAndFingerprintLength - 1;\n                this.publicKeyFingerprint = bytes.subarray(offset, offset + fingerprintLength);\n                offset += fingerprintLength;\n                if (this.publicKeyVersion >= 5) {\n                    // For v5/6 the Key ID is the high-order 64 bits of the fingerprint.\n                    this.publicKeyID.read(this.publicKeyFingerprint);\n                }\n                else {\n                    // For v4 The Key ID is the low-order 64 bits of the fingerprint.\n                    this.publicKeyID.read(this.publicKeyFingerprint.subarray(-8));\n                }\n            }\n            else {\n                // The size may also be zero, and the key version and\n                // fingerprint omitted for an \"anonymous recipient\"\n                this.publicKeyID = KeyID.wildcard();\n            }\n        }\n        else {\n            offset += this.publicKeyID.read(bytes.subarray(offset, offset + 8));\n        }\n        this.publicKeyAlgorithm = bytes[offset++];\n        this.encrypted = parseEncSessionKeyParams(this.publicKeyAlgorithm, bytes.subarray(offset));\n        if (this.publicKeyAlgorithm === enums.publicKey.x25519 || this.publicKeyAlgorithm === enums.publicKey.x448) {\n            if (this.version === 3) {\n                this.sessionKeyAlgorithm = enums.write(enums.symmetric, this.encrypted.C.algorithm);\n            }\n            else if (this.encrypted.C.algorithm !== null) {\n                throw new Error('Unexpected cleartext symmetric algorithm');\n            }\n        }\n    }\n    /**\n     * Create a binary representation of a tag 1 packet\n     *\n     * @returns {Uint8Array} The Uint8Array representation.\n     */\n    write() {\n        const arr = [\n            new Uint8Array([this.version])\n        ];\n        if (this.version === 6) {\n            if (this.publicKeyFingerprint !== null) {\n                arr.push(new Uint8Array([\n                    this.publicKeyFingerprint.length + 1,\n                    this.publicKeyVersion\n                ]));\n                arr.push(this.publicKeyFingerprint);\n            }\n            else {\n                arr.push(new Uint8Array([0]));\n            }\n        }\n        else {\n            arr.push(this.publicKeyID.write());\n        }\n        arr.push(new Uint8Array([this.publicKeyAlgorithm]), serializeParams(this.publicKeyAlgorithm, this.encrypted));\n        return util.concatUint8Array(arr);\n    }\n    /**\n     * Encrypt session key packet\n     * @param {PublicKeyPacket} key - Public key\n     * @throws {Error} if encryption failed\n     * @async\n     */\n    async encrypt(key) {\n        const algo = enums.write(enums.publicKey, this.publicKeyAlgorithm);\n        // No symmetric encryption algorithm identifier is passed to the public-key algorithm for a\n        // v6 PKESK packet, as it is included in the v2 SEIPD packet.\n        const sessionKeyAlgorithm = this.version === 3 ? this.sessionKeyAlgorithm : null;\n        const fingerprint = key.version === 5 ? key.getFingerprintBytes().subarray(0, 20) : key.getFingerprintBytes();\n        const encoded = encodeSessionKey(this.version, algo, sessionKeyAlgorithm, this.sessionKey);\n        this.encrypted = await publicKeyEncrypt(algo, sessionKeyAlgorithm, key.publicParams, encoded, fingerprint);\n    }\n    /**\n     * Decrypts the session key (only for public key encrypted session key packets (tag 1)\n     * @param {SecretKeyPacket} key - decrypted private key\n     * @param {Object} [randomSessionKey] - Bogus session key to use in case of sensitive decryption error, or if the decrypted session key is of a different type/size.\n     *                                      This is needed for constant-time processing. Expected object of the form: { sessionKey: Uint8Array, sessionKeyAlgorithm: enums.symmetric }\n     * @throws {Error} if decryption failed, unless `randomSessionKey` is given\n     * @async\n     */\n    async decrypt(key, randomSessionKey) {\n        // check that session key algo matches the secret key algo\n        if (this.publicKeyAlgorithm !== key.algorithm) {\n            throw new Error('Decryption error');\n        }\n        const randomPayload = randomSessionKey ?\n            encodeSessionKey(this.version, this.publicKeyAlgorithm, randomSessionKey.sessionKeyAlgorithm, randomSessionKey.sessionKey) :\n            null;\n        const fingerprint = key.version === 5 ? key.getFingerprintBytes().subarray(0, 20) : key.getFingerprintBytes();\n        const decryptedData = await publicKeyDecrypt(this.publicKeyAlgorithm, key.publicParams, key.privateParams, this.encrypted, fingerprint, randomPayload);\n        const { sessionKey, sessionKeyAlgorithm } = decodeSessionKey(this.version, this.publicKeyAlgorithm, decryptedData, randomSessionKey);\n        if (this.version === 3) {\n            // v3 Montgomery curves have cleartext cipher algo\n            const hasEncryptedAlgo = this.publicKeyAlgorithm !== enums.publicKey.x25519 && this.publicKeyAlgorithm !== enums.publicKey.x448;\n            this.sessionKeyAlgorithm = hasEncryptedAlgo ? sessionKeyAlgorithm : this.sessionKeyAlgorithm;\n            if (sessionKey.length !== getCipherParams(this.sessionKeyAlgorithm).keySize) {\n                throw new Error('Unexpected session key size');\n            }\n        }\n        this.sessionKey = sessionKey;\n    }\n}\nfunction encodeSessionKey(version, keyAlgo, cipherAlgo, sessionKeyData) {\n    switch (keyAlgo) {\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.elgamal:\n        case enums.publicKey.ecdh:\n            // add checksum\n            return util.concatUint8Array([\n                new Uint8Array(version === 6 ? [] : [cipherAlgo]),\n                sessionKeyData,\n                util.writeChecksum(sessionKeyData.subarray(sessionKeyData.length % 8))\n            ]);\n        case enums.publicKey.x25519:\n        case enums.publicKey.x448:\n            return sessionKeyData;\n        default:\n            throw new Error('Unsupported public key algorithm');\n    }\n}\nfunction decodeSessionKey(version, keyAlgo, decryptedData, randomSessionKey) {\n    switch (keyAlgo) {\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.elgamal:\n        case enums.publicKey.ecdh: {\n            // verify checksum in constant time\n            const result = decryptedData.subarray(0, decryptedData.length - 2);\n            const checksum = decryptedData.subarray(decryptedData.length - 2);\n            const computedChecksum = util.writeChecksum(result.subarray(result.length % 8));\n            const isValidChecksum = computedChecksum[0] === checksum[0] & computedChecksum[1] === checksum[1];\n            const decryptedSessionKey = version === 6 ?\n                { sessionKeyAlgorithm: null, sessionKey: result } :\n                { sessionKeyAlgorithm: result[0], sessionKey: result.subarray(1) };\n            if (randomSessionKey) {\n                // We must not leak info about the validity of the decrypted checksum or cipher algo.\n                // The decrypted session key must be of the same algo and size as the random session key, otherwise we discard it and use the random data.\n                const isValidPayload = isValidChecksum &\n                    decryptedSessionKey.sessionKeyAlgorithm === randomSessionKey.sessionKeyAlgorithm &\n                    decryptedSessionKey.sessionKey.length === randomSessionKey.sessionKey.length;\n                return {\n                    sessionKey: util.selectUint8Array(isValidPayload, decryptedSessionKey.sessionKey, randomSessionKey.sessionKey),\n                    sessionKeyAlgorithm: version === 6 ? null : util.selectUint8(isValidPayload, decryptedSessionKey.sessionKeyAlgorithm, randomSessionKey.sessionKeyAlgorithm)\n                };\n            }\n            else {\n                const isValidPayload = isValidChecksum && (version === 6 || enums.read(enums.symmetric, decryptedSessionKey.sessionKeyAlgorithm));\n                if (isValidPayload) {\n                    return decryptedSessionKey;\n                }\n                else {\n                    throw new Error('Decryption error');\n                }\n            }\n        }\n        case enums.publicKey.x25519:\n        case enums.publicKey.x448:\n            return {\n                sessionKeyAlgorithm: null,\n                sessionKey: decryptedData\n            };\n        default:\n            throw new Error('Unsupported public key algorithm');\n    }\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Symmetric-Key Encrypted Session Key Packets (Tag 3)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.3|RFC4880 5.3}:\n * The Symmetric-Key Encrypted Session Key packet holds the\n * symmetric-key encryption of a session key used to encrypt a message.\n * Zero or more Public-Key Encrypted Session Key packets and/or\n * Symmetric-Key Encrypted Session Key packets may precede a\n * Symmetrically Encrypted Data packet that holds an encrypted message.\n * The message is encrypted with a session key, and the session key is\n * itself encrypted and stored in the Encrypted Session Key packet or\n * the Symmetric-Key Encrypted Session Key packet.\n */\nclass SymEncryptedSessionKeyPacket {\n    static get tag() {\n        return enums.packet.symEncryptedSessionKey;\n    }\n    /**\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     */\n    constructor(config$1 = config) {\n        this.version = config$1.aeadProtect ? 6 : 4;\n        this.sessionKey = null;\n        /**\n         * Algorithm to encrypt the session key with\n         * @type {enums.symmetric}\n         */\n        this.sessionKeyEncryptionAlgorithm = null;\n        /**\n         * Algorithm to encrypt the message with\n         * @type {enums.symmetric}\n         */\n        this.sessionKeyAlgorithm = null;\n        /**\n         * AEAD mode to encrypt the session key with (if AEAD protection is enabled)\n         * @type {enums.aead}\n         */\n        this.aeadAlgorithm = enums.write(enums.aead, config$1.preferredAEADAlgorithm);\n        this.encrypted = null;\n        this.s2k = null;\n        this.iv = null;\n    }\n    /**\n     * Parsing function for a symmetric encrypted session key packet (tag 3).\n     *\n     * @param {Uint8Array} bytes - Payload of a tag 3 packet\n     */\n    read(bytes) {\n        let offset = 0;\n        // A one-octet version number with value 4, 5 or 6.\n        this.version = bytes[offset++];\n        if (this.version !== 4 && this.version !== 5 && this.version !== 6) {\n            throw new UnsupportedError(`Version ${this.version} of the SKESK packet is unsupported.`);\n        }\n        if (this.version === 6) {\n            // A one-octet scalar octet count of the following 5 fields.\n            offset++;\n        }\n        // A one-octet number describing the symmetric algorithm used.\n        const algo = bytes[offset++];\n        if (this.version >= 5) {\n            // A one-octet AEAD algorithm.\n            this.aeadAlgorithm = bytes[offset++];\n            if (this.version === 6) {\n                // A one-octet scalar octet count of the following field.\n                offset++;\n            }\n        }\n        // A string-to-key (S2K) specifier, length as defined above.\n        const s2kType = bytes[offset++];\n        this.s2k = newS2KFromType(s2kType);\n        offset += this.s2k.read(bytes.subarray(offset, bytes.length));\n        if (this.version >= 5) {\n            const mode = getAEADMode(this.aeadAlgorithm, true);\n            // A starting initialization vector of size specified by the AEAD\n            // algorithm.\n            this.iv = bytes.subarray(offset, offset += mode.ivLength);\n        }\n        // The encrypted session key itself, which is decrypted with the\n        // string-to-key object. This is optional in version 4.\n        if (this.version >= 5 || offset < bytes.length) {\n            this.encrypted = bytes.subarray(offset, bytes.length);\n            this.sessionKeyEncryptionAlgorithm = algo;\n        }\n        else {\n            this.sessionKeyAlgorithm = algo;\n        }\n    }\n    /**\n     * Create a binary representation of a tag 3 packet\n     *\n     * @returns {Uint8Array} The Uint8Array representation.\n    */\n    write() {\n        const algo = this.encrypted === null ?\n            this.sessionKeyAlgorithm :\n            this.sessionKeyEncryptionAlgorithm;\n        let bytes;\n        const s2k = this.s2k.write();\n        if (this.version === 6) {\n            const s2kLen = s2k.length;\n            const fieldsLen = 3 + s2kLen + this.iv.length;\n            bytes = util.concatUint8Array([new Uint8Array([this.version, fieldsLen, algo, this.aeadAlgorithm, s2kLen]), s2k, this.iv, this.encrypted]);\n        }\n        else if (this.version === 5) {\n            bytes = util.concatUint8Array([new Uint8Array([this.version, algo, this.aeadAlgorithm]), s2k, this.iv, this.encrypted]);\n        }\n        else {\n            bytes = util.concatUint8Array([new Uint8Array([this.version, algo]), s2k]);\n            if (this.encrypted !== null) {\n                bytes = util.concatUint8Array([bytes, this.encrypted]);\n            }\n        }\n        return bytes;\n    }\n    /**\n     * Decrypts the session key with the given passphrase\n     * @param {String} passphrase - The passphrase in string form\n     * @param {Object} config\n     * @throws {Error} if decryption was not successful\n     * @async\n     */\n    async decrypt(passphrase, config$1 = config) {\n        const algo = this.sessionKeyEncryptionAlgorithm !== null ?\n            this.sessionKeyEncryptionAlgorithm :\n            this.sessionKeyAlgorithm;\n        const { blockSize, keySize } = getCipherParams(algo);\n        const key = await this.s2k.produceKey(passphrase, keySize, config$1);\n        if (this.version >= 5) {\n            const mode = getAEADMode(this.aeadAlgorithm, true);\n            const adata = new Uint8Array([0xC0 | SymEncryptedSessionKeyPacket.tag, this.version, this.sessionKeyEncryptionAlgorithm, this.aeadAlgorithm]);\n            const encryptionKey = this.version === 6 ? await computeHKDF(enums.hash.sha256, key, new Uint8Array(), adata, keySize) : key;\n            const modeInstance = await mode(algo, encryptionKey);\n            this.sessionKey = await modeInstance.decrypt(this.encrypted, this.iv, adata);\n        }\n        else if (this.encrypted !== null) {\n            const decrypted = await decrypt$1(algo, key, this.encrypted, new Uint8Array(blockSize));\n            this.sessionKeyAlgorithm = enums.write(enums.symmetric, decrypted[0]);\n            this.sessionKey = decrypted.subarray(1, decrypted.length);\n            if (this.sessionKey.length !== getCipherParams(this.sessionKeyAlgorithm).keySize) {\n                throw new Error('Unexpected session key size');\n            }\n        }\n        else {\n            // session key size is checked as part of SEIPDv2 decryption, where we know the expected symmetric algo\n            this.sessionKey = key;\n        }\n    }\n    /**\n     * Encrypts the session key with the given passphrase\n     * @param {String} passphrase - The passphrase in string form\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @throws {Error} if encryption was not successful\n     * @async\n     */\n    async encrypt(passphrase, config$1 = config) {\n        const algo = this.sessionKeyEncryptionAlgorithm !== null ?\n            this.sessionKeyEncryptionAlgorithm :\n            this.sessionKeyAlgorithm;\n        this.sessionKeyEncryptionAlgorithm = algo;\n        this.s2k = newS2KFromConfig(config$1);\n        this.s2k.generateSalt();\n        const { blockSize, keySize } = getCipherParams(algo);\n        const key = await this.s2k.produceKey(passphrase, keySize, config$1);\n        if (this.sessionKey === null) {\n            this.sessionKey = generateSessionKey$1(this.sessionKeyAlgorithm);\n        }\n        if (this.version >= 5) {\n            const mode = getAEADMode(this.aeadAlgorithm);\n            this.iv = getRandomBytes(mode.ivLength); // generate new random IV\n            const adata = new Uint8Array([0xC0 | SymEncryptedSessionKeyPacket.tag, this.version, this.sessionKeyEncryptionAlgorithm, this.aeadAlgorithm]);\n            const encryptionKey = this.version === 6 ? await computeHKDF(enums.hash.sha256, key, new Uint8Array(), adata, keySize) : key;\n            const modeInstance = await mode(algo, encryptionKey);\n            this.encrypted = await modeInstance.encrypt(this.sessionKey, this.iv, adata);\n        }\n        else {\n            const toEncrypt = util.concatUint8Array([\n                new Uint8Array([this.sessionKeyAlgorithm]),\n                this.sessionKey\n            ]);\n            this.encrypted = await encrypt$1(algo, key, toEncrypt, new Uint8Array(blockSize));\n        }\n    }\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Implementation of the Key Material Packet (Tag 5,6,7,14)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.5|RFC4480 5.5}:\n * A key material packet contains all the information about a public or\n * private key.  There are four variants of this packet type, and two\n * major versions.\n *\n * A Public-Key packet starts a series of packets that forms an OpenPGP\n * key (sometimes called an OpenPGP certificate).\n */\nclass PublicKeyPacket {\n    static get tag() {\n        return enums.packet.publicKey;\n    }\n    /**\n     * @param {Date} [date] - Creation date\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     */\n    constructor(date = new Date(), config$1 = config) {\n        /**\n         * Packet version\n         * @type {Integer}\n         */\n        this.version = config$1.v6Keys ? 6 : 4;\n        /**\n         * Key creation date.\n         * @type {Date}\n         */\n        this.created = util.normalizeDate(date);\n        /**\n         * Public key algorithm.\n         * @type {enums.publicKey}\n         */\n        this.algorithm = null;\n        /**\n         * Algorithm specific public params\n         * @type {Object}\n         */\n        this.publicParams = null;\n        /**\n         * Time until expiration in days (V3 only)\n         * @type {Integer}\n         */\n        this.expirationTimeV3 = 0;\n        /**\n         * Fingerprint bytes\n         * @type {Uint8Array}\n         */\n        this.fingerprint = null;\n        /**\n         * KeyID\n         * @type {module:type/keyid~KeyID}\n         */\n        this.keyID = null;\n    }\n    /**\n     * Create a PublicKeyPacket from a SecretKeyPacket\n     * @param {SecretKeyPacket} secretKeyPacket - key packet to convert\n     * @returns {PublicKeyPacket} public key packet\n     * @static\n     */\n    static fromSecretKeyPacket(secretKeyPacket) {\n        const keyPacket = new PublicKeyPacket();\n        const { version, created, algorithm, publicParams, keyID, fingerprint } = secretKeyPacket;\n        keyPacket.version = version;\n        keyPacket.created = created;\n        keyPacket.algorithm = algorithm;\n        keyPacket.publicParams = publicParams;\n        keyPacket.keyID = keyID;\n        keyPacket.fingerprint = fingerprint;\n        return keyPacket;\n    }\n    /**\n     * Internal Parser for public keys as specified in {@link https://tools.ietf.org/html/rfc4880#section-5.5.2|RFC 4880 section 5.5.2 Public-Key Packet Formats}\n     * @param {Uint8Array} bytes - Input array to read the packet from\n     * @returns {Promise<number>} The number of bytes read from `bytes`\n     * @async\n     */\n    async read(bytes, config$1 = config) {\n        let pos = 0;\n        // A one-octet version number (4, 5 or 6).\n        this.version = bytes[pos++];\n        if (this.version === 5 && !config$1.enableParsingV5Entities) {\n            throw new UnsupportedError('Support for parsing v5 entities is disabled; turn on `config.enableParsingV5Entities` if needed');\n        }\n        if (this.version === 4 || this.version === 5 || this.version === 6) {\n            // - A four-octet number denoting the time that the key was created.\n            this.created = util.readDate(bytes.subarray(pos, pos + 4));\n            pos += 4;\n            // - A one-octet number denoting the public-key algorithm of this key.\n            this.algorithm = bytes[pos++];\n            if (this.version >= 5) {\n                // - A four-octet scalar octet count for the following key material.\n                pos += 4;\n            }\n            // - A series of values comprising the key material.\n            const { read, publicParams } = parsePublicKeyParams(this.algorithm, bytes.subarray(pos));\n            // The deprecated OIDs for Ed25519Legacy and Curve25519Legacy are used in legacy version 4 keys and signatures.\n            // Implementations MUST NOT accept or generate v6 key material using the deprecated OIDs.\n            if (this.version === 6 &&\n                publicParams.oid && (publicParams.oid.getName() === enums.curve.curve25519Legacy ||\n                publicParams.oid.getName() === enums.curve.ed25519Legacy)) {\n                throw new Error('Legacy curve25519 cannot be used with v6 keys');\n            }\n            this.publicParams = publicParams;\n            pos += read;\n            // we set the fingerprint and keyID already to make it possible to put together the key packets directly in the Key constructor\n            await this.computeFingerprintAndKeyID();\n            return pos;\n        }\n        throw new UnsupportedError(`Version ${this.version} of the key packet is unsupported.`);\n    }\n    /**\n     * Creates an OpenPGP public key packet for the given key.\n     * @returns {Uint8Array} Bytes encoding the public key OpenPGP packet.\n     */\n    write() {\n        const arr = [];\n        // Version\n        arr.push(new Uint8Array([this.version]));\n        arr.push(util.writeDate(this.created));\n        // A one-octet number denoting the public-key algorithm of this key\n        arr.push(new Uint8Array([this.algorithm]));\n        const params = serializeParams(this.algorithm, this.publicParams);\n        if (this.version >= 5) {\n            // A four-octet scalar octet count for the following key material\n            arr.push(util.writeNumber(params.length, 4));\n        }\n        // Algorithm-specific params\n        arr.push(params);\n        return util.concatUint8Array(arr);\n    }\n    /**\n     * Write packet in order to be hashed; either for a signature or a fingerprint\n     * @param {Integer} version - target version of signature or key\n     */\n    writeForHash(version) {\n        const bytes = this.writePublicKey();\n        const versionOctet = 0x95 + version;\n        const lengthOctets = version >= 5 ? 4 : 2;\n        return util.concatUint8Array([new Uint8Array([versionOctet]), util.writeNumber(bytes.length, lengthOctets), bytes]);\n    }\n    /**\n     * Check whether secret-key data is available in decrypted form. Returns null for public keys.\n     * @returns {Boolean|null}\n     */\n    isDecrypted() {\n        return null;\n    }\n    /**\n     * Returns the creation time of the key\n     * @returns {Date}\n     */\n    getCreationTime() {\n        return this.created;\n    }\n    /**\n     * Return the key ID of the key\n     * @returns {module:type/keyid~KeyID} The 8-byte key ID\n     */\n    getKeyID() {\n        return this.keyID;\n    }\n    /**\n     * Computes and set the key ID and fingerprint of the key\n     * @async\n     */\n    async computeFingerprintAndKeyID() {\n        await this.computeFingerprint();\n        this.keyID = new KeyID();\n        if (this.version >= 5) {\n            this.keyID.read(this.fingerprint.subarray(0, 8));\n        }\n        else if (this.version === 4) {\n            this.keyID.read(this.fingerprint.subarray(12, 20));\n        }\n        else {\n            throw new Error('Unsupported key version');\n        }\n    }\n    /**\n     * Computes and set the fingerprint of the key\n     */\n    async computeFingerprint() {\n        const toHash = this.writeForHash(this.version);\n        if (this.version >= 5) {\n            this.fingerprint = await computeDigest(enums.hash.sha256, toHash);\n        }\n        else if (this.version === 4) {\n            this.fingerprint = await computeDigest(enums.hash.sha1, toHash);\n        }\n        else {\n            throw new Error('Unsupported key version');\n        }\n    }\n    /**\n     * Returns the fingerprint of the key, as an array of bytes\n     * @returns {Uint8Array} A Uint8Array containing the fingerprint\n     */\n    getFingerprintBytes() {\n        return this.fingerprint;\n    }\n    /**\n     * Calculates and returns the fingerprint of the key, as a string\n     * @returns {String} A string containing the fingerprint in lowercase hex\n     */\n    getFingerprint() {\n        return util.uint8ArrayToHex(this.getFingerprintBytes());\n    }\n    /**\n     * Calculates whether two keys have the same fingerprint without actually calculating the fingerprint\n     * @returns {Boolean} Whether the two keys have the same version and public key data.\n     */\n    hasSameFingerprintAs(other) {\n        return this.version === other.version && util.equalsUint8Array(this.writePublicKey(), other.writePublicKey());\n    }\n    /**\n     * Returns algorithm information\n     * @returns {Object} An object of the form {algorithm: String, bits:int, curve:String}.\n     */\n    getAlgorithmInfo() {\n        const result = {};\n        result.algorithm = enums.read(enums.publicKey, this.algorithm);\n        // RSA, DSA or ElGamal public modulo\n        const modulo = this.publicParams.n || this.publicParams.p;\n        if (modulo) {\n            result.bits = util.uint8ArrayBitLength(modulo);\n        }\n        else if (this.publicParams.oid) {\n            result.curve = this.publicParams.oid.getName();\n        }\n        return result;\n    }\n}\n/**\n * Alias of read()\n * @see PublicKeyPacket#read\n */\n// eslint-disable-next-line @typescript-eslint/unbound-method\nPublicKeyPacket.prototype.readPublicKey = PublicKeyPacket.prototype.read;\n/**\n * Alias of write()\n * @see PublicKeyPacket#write\n */\n// eslint-disable-next-line @typescript-eslint/unbound-method\nPublicKeyPacket.prototype.writePublicKey = PublicKeyPacket.prototype.write;\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n// A SE packet can contain the following packet types\nconst allowedPackets$2 = /*#__PURE__*/ util.constructAllowedPackets([\n    LiteralDataPacket,\n    CompressedDataPacket,\n    OnePassSignaturePacket,\n    SignaturePacket\n]);\n/**\n * Implementation of the Symmetrically Encrypted Data Packet (Tag 9)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.7|RFC4880 5.7}:\n * The Symmetrically Encrypted Data packet contains data encrypted with a\n * symmetric-key algorithm. When it has been decrypted, it contains other\n * packets (usually a literal data packet or compressed data packet, but in\n * theory other Symmetrically Encrypted Data packets or sequences of packets\n * that form whole OpenPGP messages).\n */\nclass SymmetricallyEncryptedDataPacket {\n    static get tag() {\n        return enums.packet.symmetricallyEncryptedData;\n    }\n    constructor() {\n        /**\n         * Encrypted secret-key data\n         */\n        this.encrypted = null;\n        /**\n         * Decrypted packets contained within.\n         * @type {PacketList}\n         */\n        this.packets = null;\n    }\n    read(bytes) {\n        this.encrypted = bytes;\n    }\n    write() {\n        return this.encrypted;\n    }\n    /**\n     * Decrypt the symmetrically-encrypted packet data\n     * See {@link https://tools.ietf.org/html/rfc4880#section-9.2|RFC 4880 9.2} for algorithms.\n     * @param {module:enums.symmetric} sessionKeyAlgorithm - Symmetric key algorithm to use\n     * @param {Uint8Array} key - The key of cipher blocksize length to be used\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n  \n     * @throws {Error} if decryption was not successful\n     * @async\n     */\n    async decrypt(sessionKeyAlgorithm, key, config$1 = config) {\n        // If MDC errors are not being ignored, all missing MDC packets in symmetrically encrypted data should throw an error\n        if (!config$1.allowUnauthenticatedMessages) {\n            throw new Error('Message is not authenticated.');\n        }\n        const { blockSize } = getCipherParams(sessionKeyAlgorithm);\n        const encrypted = await readToEnd(clone(this.encrypted));\n        const decrypted = await decrypt$1(sessionKeyAlgorithm, key, encrypted.subarray(blockSize + 2), encrypted.subarray(2, blockSize + 2));\n        // Decrypting a Symmetrically Encrypted Data packet MUST yield a valid OpenPGP Message.\n        // But due to the lack of authentication over the decrypted data,\n        // we do not run any grammarValidator, to avoid enabling a decryption oracle\n        // (plus, there is probably a higher chance that these messages have an expected structure).\n        this.packets = await PacketList.fromBinary(decrypted, allowedPackets$2, config$1);\n    }\n    /**\n     * Encrypt the symmetrically-encrypted packet data\n     * See {@link https://tools.ietf.org/html/rfc4880#section-9.2|RFC 4880 9.2} for algorithms.\n     * @param {module:enums.symmetric} sessionKeyAlgorithm - Symmetric key algorithm to use\n     * @param {Uint8Array} key - The key of cipher blocksize length to be used\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @throws {Error} if encryption was not successful\n     * @async\n     */\n    async encrypt(sessionKeyAlgorithm, key, config$1 = config) {\n        const data = this.packets.write();\n        const { blockSize } = getCipherParams(sessionKeyAlgorithm);\n        const prefix = await getPrefixRandom(sessionKeyAlgorithm);\n        const FRE = await encrypt$1(sessionKeyAlgorithm, key, prefix, new Uint8Array(blockSize));\n        const ciphertext = await encrypt$1(sessionKeyAlgorithm, key, data, FRE.subarray(2));\n        this.encrypted = util.concat([FRE, ciphertext]);\n    }\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Implementation of the strange \"Marker packet\" (Tag 10)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.8|RFC4880 5.8}:\n * An experimental version of PGP used this packet as the Literal\n * packet, but no released version of PGP generated Literal packets with this\n * tag. With PGP 5.x, this packet has been reassigned and is reserved for use as\n * the Marker packet.\n *\n * The body of this packet consists of:\n *   The three octets 0x50, 0x47, 0x50 (which spell \"PGP\" in UTF-8).\n *\n * Such a packet MUST be ignored when received. It may be placed at the\n * beginning of a message that uses features not available in PGP\n * version 2.6 in order to cause that version to report that newer\n * software is necessary to process the message.\n */\nclass MarkerPacket {\n    static get tag() {\n        return enums.packet.marker;\n    }\n    /**\n     * Parsing function for a marker data packet (tag 10).\n     * @param {Uint8Array} bytes - Payload of a tag 10 packet\n     * @returns {Boolean} whether the packet payload contains \"PGP\"\n     */\n    read(bytes) {\n        if (bytes[0] === 0x50 && // P\n            bytes[1] === 0x47 && // G\n            bytes[2] === 0x50) { // P\n            return true;\n        }\n        return false;\n    }\n    write() {\n        return new Uint8Array([0x50, 0x47, 0x50]);\n    }\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * A Public-Subkey packet (tag 14) has exactly the same format as a\n * Public-Key packet, but denotes a subkey.  One or more subkeys may be\n * associated with a top-level key.  By convention, the top-level key\n * provides signature services, and the subkeys provide encryption\n * services.\n * @extends PublicKeyPacket\n */\nclass PublicSubkeyPacket extends PublicKeyPacket {\n    static get tag() {\n        return enums.packet.publicSubkey;\n    }\n    /**\n     * @param {Date} [date] - Creation date\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     */\n    constructor(date, config) {\n        super(date, config);\n    }\n    /**\n     * Create a PublicSubkeyPacket from a SecretSubkeyPacket\n     * @param {SecretSubkeyPacket} secretSubkeyPacket - subkey packet to convert\n     * @returns {SecretSubkeyPacket} public key packet\n     * @static\n     */\n    static fromSecretSubkeyPacket(secretSubkeyPacket) {\n        const keyPacket = new PublicSubkeyPacket();\n        const { version, created, algorithm, publicParams, keyID, fingerprint } = secretSubkeyPacket;\n        keyPacket.version = version;\n        keyPacket.created = created;\n        keyPacket.algorithm = algorithm;\n        keyPacket.publicParams = publicParams;\n        keyPacket.keyID = keyID;\n        keyPacket.fingerprint = fingerprint;\n        return keyPacket;\n    }\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Implementation of the User Attribute Packet (Tag 17)\n *\n * The User Attribute packet is a variation of the User ID packet.  It\n * is capable of storing more types of data than the User ID packet,\n * which is limited to text.  Like the User ID packet, a User Attribute\n * packet may be certified by the key owner (\"self-signed\") or any other\n * key owner who cares to certify it.  Except as noted, a User Attribute\n * packet may be used anywhere that a User ID packet may be used.\n *\n * While User Attribute packets are not a required part of the OpenPGP\n * standard, implementations SHOULD provide at least enough\n * compatibility to properly handle a certification signature on the\n * User Attribute packet.  A simple way to do this is by treating the\n * User Attribute packet as a User ID packet with opaque contents, but\n * an implementation may use any method desired.\n */\nclass UserAttributePacket {\n    static get tag() {\n        return enums.packet.userAttribute;\n    }\n    constructor() {\n        this.attributes = [];\n    }\n    /**\n     * parsing function for a user attribute packet (tag 17).\n     * @param {Uint8Array} input - Payload of a tag 17 packet\n     */\n    read(bytes) {\n        let i = 0;\n        while (i < bytes.length) {\n            const len = readSimpleLength(bytes.subarray(i, bytes.length));\n            i += len.offset;\n            this.attributes.push(util.uint8ArrayToString(bytes.subarray(i, i + len.len)));\n            i += len.len;\n        }\n    }\n    /**\n     * Creates a binary representation of the user attribute packet\n     * @returns {Uint8Array} String representation.\n     */\n    write() {\n        const arr = [];\n        for (let i = 0; i < this.attributes.length; i++) {\n            arr.push(writeSimpleLength(this.attributes[i].length));\n            arr.push(util.stringToUint8Array(this.attributes[i]));\n        }\n        return util.concatUint8Array(arr);\n    }\n    /**\n     * Compare for equality\n     * @param {UserAttributePacket} usrAttr\n     * @returns {Boolean} True if equal.\n     */\n    equals(usrAttr) {\n        if (!usrAttr || !(usrAttr instanceof UserAttributePacket)) {\n            return false;\n        }\n        return this.attributes.every(function (attr, index) {\n            return attr === usrAttr.attributes[index];\n        });\n    }\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * A Secret-Key packet contains all the information that is found in a\n * Public-Key packet, including the public-key material, but also\n * includes the secret-key material after all the public-key fields.\n * @extends PublicKeyPacket\n */\nclass SecretKeyPacket extends PublicKeyPacket {\n    static get tag() {\n        return enums.packet.secretKey;\n    }\n    /**\n     * @param {Date} [date] - Creation date\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     */\n    constructor(date = new Date(), config$1 = config) {\n        super(date, config$1);\n        /**\n         * Secret-key data\n         */\n        this.keyMaterial = null;\n        /**\n         * Indicates whether secret-key data is encrypted. `this.isEncrypted === false` means data is available in decrypted form.\n         */\n        this.isEncrypted = null;\n        /**\n         * S2K usage\n         * @type {number}\n         */\n        this.s2kUsage = 0;\n        /**\n         * S2K object\n         * @type {type/s2k}\n         */\n        this.s2k = null;\n        /**\n         * Symmetric algorithm to encrypt the key with\n         * @type {enums.symmetric}\n         */\n        this.symmetric = null;\n        /**\n         * AEAD algorithm to encrypt the key with (if AEAD protection is enabled)\n         * @type {enums.aead}\n         */\n        this.aead = null;\n        /**\n         * Whether the key is encrypted using the legacy AEAD format proposal from RFC4880bis\n         * (i.e. it was encrypted with the flag `config.aeadProtect` in OpenPGP.js v5 or older).\n         * This value is only relevant to know how to decrypt the key:\n         * if AEAD is enabled, a v4 key is always re-encrypted using the standard AEAD mechanism.\n         * @type {Boolean}\n         * @private\n         */\n        this.isLegacyAEAD = null;\n        /**\n         * Decrypted private parameters, referenced by name\n         * @type {Object}\n         */\n        this.privateParams = null;\n        /**\n         * `true` for keys whose integrity is already confirmed, based on\n         * the AEAD encryption mechanism\n         * @type {Boolean}\n         * @private\n         */\n        this.usedModernAEAD = null;\n    }\n    // 5.5.3.  Secret-Key Packet Formats\n    /**\n     * Internal parser for private keys as specified in\n     * {@link https://tools.ietf.org/html/draft-ietf-openpgp-rfc4880bis-04#section-5.5.3|RFC4880bis-04 section 5.5.3}\n     * @param {Uint8Array} bytes - Input string to read the packet from\n     * @async\n     */\n    async read(bytes, config$1 = config) {\n        // - A Public-Key or Public-Subkey packet, as described above.\n        let i = await this.readPublicKey(bytes, config$1);\n        const startOfSecretKeyData = i;\n        // - One octet indicating string-to-key usage conventions.  Zero\n        //   indicates that the secret-key data is not encrypted.  255 or 254\n        //   indicates that a string-to-key specifier is being given.  Any\n        //   other value is a symmetric-key encryption algorithm identifier.\n        this.s2kUsage = bytes[i++];\n        // - Only for a version 5 packet, a one-octet scalar octet count of\n        //   the next 4 optional fields.\n        if (this.version === 5) {\n            i++;\n        }\n        // - Only for a version 6 packet where the secret key material is\n        //   encrypted (that is, where the previous octet is not zero), a one-\n        //   octet scalar octet count of the cumulative length of all the\n        //   following optional string-to-key parameter fields.\n        if (this.version === 6 && this.s2kUsage) {\n            i++;\n        }\n        try {\n            // - [Optional] If string-to-key usage octet was 255, 254, or 253, a\n            //   one-octet symmetric encryption algorithm.\n            if (this.s2kUsage === 255 || this.s2kUsage === 254 || this.s2kUsage === 253) {\n                this.symmetric = bytes[i++];\n                // - [Optional] If string-to-key usage octet was 253, a one-octet\n                //   AEAD algorithm.\n                if (this.s2kUsage === 253) {\n                    this.aead = bytes[i++];\n                }\n                // - [Optional] Only for a version 6 packet, and if string-to-key usage\n                //   octet was 255, 254, or 253, an one-octet count of the following field.\n                if (this.version === 6) {\n                    i++;\n                }\n                // - [Optional] If string-to-key usage octet was 255, 254, or 253, a\n                //   string-to-key specifier.  The length of the string-to-key\n                //   specifier is implied by its type, as described above.\n                const s2kType = bytes[i++];\n                this.s2k = newS2KFromType(s2kType);\n                i += this.s2k.read(bytes.subarray(i, bytes.length));\n                if (this.s2k.type === 'gnu-dummy') {\n                    return;\n                }\n            }\n            else if (this.s2kUsage) {\n                this.symmetric = this.s2kUsage;\n            }\n            if (this.s2kUsage) {\n                // OpenPGP.js up to v5 used to support encrypting v4 keys using AEAD as specified by draft RFC4880bis (https://www.ietf.org/archive/id/draft-ietf-openpgp-rfc4880bis-10.html#section-5.5.3-3.5).\n                // This legacy format is incompatible, but fundamentally indistinguishable, from that of the crypto-refresh for v4 keys (v5 keys are always in legacy format).\n                // While parsing the key may succeed (if IV and AES block sizes match), key decryption will always\n                // fail if the key was parsed according to the wrong format, since the keys are processed differently.\n                // Thus, for v4 keys, we rely on the caller to instruct us to process the key as legacy, via config flag.\n                this.isLegacyAEAD = this.s2kUsage === 253 && (this.version === 5 || (this.version === 4 && config$1.parseAEADEncryptedV4KeysAsLegacy));\n                // - crypto-refresh: If string-to-key usage octet was 255, 254 [..], an initialization vector (IV)\n                // of the same length as the cipher's block size.\n                // - RFC4880bis (v5 keys, regardless of AEAD): an Initial Vector (IV) of the same length as the\n                //   cipher's block size. If string-to-key usage octet was 253 the IV is used as the nonce for the AEAD algorithm.\n                // If the AEAD algorithm requires a shorter nonce, the high-order bits of the IV are used and the remaining bits MUST be zero\n                if (this.s2kUsage !== 253 || this.isLegacyAEAD) {\n                    this.iv = bytes.subarray(i, i + getCipherParams(this.symmetric).blockSize);\n                    this.usedModernAEAD = false;\n                }\n                else {\n                    // crypto-refresh: If string-to-key usage octet was 253 (that is, the secret data is AEAD-encrypted),\n                    // an initialization vector (IV) of size specified by the AEAD algorithm (see Section 5.13.2), which\n                    // is used as the nonce for the AEAD algorithm.\n                    this.iv = bytes.subarray(i, i + getAEADMode(this.aead).ivLength);\n                    // the non-legacy AEAD encryption mechanism also authenticates public key params; no need for manual validation.\n                    this.usedModernAEAD = true;\n                }\n                i += this.iv.length;\n            }\n        }\n        catch (e) {\n            // if the s2k is unsupported, we still want to support encrypting and verifying with the given key\n            if (!this.s2kUsage)\n                throw e; // always throw for decrypted keys\n            this.unparseableKeyMaterial = bytes.subarray(startOfSecretKeyData);\n            this.isEncrypted = true;\n        }\n        // - Only for a version 5 packet, a four-octet scalar octet count for\n        //   the following key material.\n        if (this.version === 5) {\n            i += 4;\n        }\n        // - Plain or encrypted multiprecision integers comprising the secret\n        //   key data.  These algorithm-specific fields are as described\n        //   below.\n        this.keyMaterial = bytes.subarray(i);\n        this.isEncrypted = !!this.s2kUsage;\n        if (!this.isEncrypted) {\n            let cleartext;\n            if (this.version === 6) {\n                cleartext = this.keyMaterial;\n            }\n            else {\n                cleartext = this.keyMaterial.subarray(0, -2);\n                if (!util.equalsUint8Array(util.writeChecksum(cleartext), this.keyMaterial.subarray(-2))) {\n                    throw new Error('Key checksum mismatch');\n                }\n            }\n            try {\n                const { read, privateParams } = parsePrivateKeyParams(this.algorithm, cleartext, this.publicParams);\n                if (read < cleartext.length) {\n                    throw new Error('Error reading MPIs');\n                }\n                this.privateParams = privateParams;\n            }\n            catch (err) {\n                if (err instanceof UnsupportedError)\n                    throw err;\n                // avoid throwing potentially sensitive errors\n                throw new Error('Error reading MPIs');\n            }\n        }\n    }\n    /**\n     * Creates an OpenPGP key packet for the given key.\n     * @returns {Uint8Array} A string of bytes containing the secret key OpenPGP packet.\n     */\n    write() {\n        const serializedPublicKey = this.writePublicKey();\n        if (this.unparseableKeyMaterial) {\n            return util.concatUint8Array([\n                serializedPublicKey,\n                this.unparseableKeyMaterial\n            ]);\n        }\n        const arr = [serializedPublicKey];\n        arr.push(new Uint8Array([this.s2kUsage]));\n        const optionalFieldsArr = [];\n        // - [Optional] If string-to-key usage octet was 255, 254, or 253, a\n        //   one- octet symmetric encryption algorithm.\n        if (this.s2kUsage === 255 || this.s2kUsage === 254 || this.s2kUsage === 253) {\n            optionalFieldsArr.push(this.symmetric);\n            // - [Optional] If string-to-key usage octet was 253, a one-octet\n            //   AEAD algorithm.\n            if (this.s2kUsage === 253) {\n                optionalFieldsArr.push(this.aead);\n            }\n            const s2k = this.s2k.write();\n            // - [Optional] Only for a version 6 packet, and if string-to-key usage\n            //   octet was 255, 254, or 253, an one-octet count of the following field.\n            if (this.version === 6) {\n                optionalFieldsArr.push(s2k.length);\n            }\n            // - [Optional] If string-to-key usage octet was 255, 254, or 253, a\n            //   string-to-key specifier.  The length of the string-to-key\n            //   specifier is implied by its type, as described above.\n            optionalFieldsArr.push(...s2k);\n        }\n        // - [Optional] If secret data is encrypted (string-to-key usage octet\n        //   not zero), an Initial Vector (IV) of the same length as the\n        //   cipher's block size.\n        if (this.s2kUsage && this.s2k.type !== 'gnu-dummy') {\n            optionalFieldsArr.push(...this.iv);\n        }\n        if (this.version === 5 || (this.version === 6 && this.s2kUsage)) {\n            arr.push(new Uint8Array([optionalFieldsArr.length]));\n        }\n        arr.push(new Uint8Array(optionalFieldsArr));\n        if (!this.isDummy()) {\n            if (!this.s2kUsage) {\n                this.keyMaterial = serializeParams(this.algorithm, this.privateParams);\n            }\n            if (this.version === 5) {\n                arr.push(util.writeNumber(this.keyMaterial.length, 4));\n            }\n            arr.push(this.keyMaterial);\n            if (!this.s2kUsage && this.version !== 6) {\n                arr.push(util.writeChecksum(this.keyMaterial));\n            }\n        }\n        return util.concatUint8Array(arr);\n    }\n    /**\n     * Check whether secret-key data is available in decrypted form.\n     * Returns false for gnu-dummy keys and null for public keys.\n     * @returns {Boolean|null}\n     */\n    isDecrypted() {\n        return this.isEncrypted === false;\n    }\n    /**\n     * Check whether the key includes secret key material.\n     * Some secret keys do not include it, and can thus only be used\n     * for public-key operations (encryption and verification).\n     * Such keys are:\n     * - GNU-dummy keys, where the secret material has been stripped away\n     * - encrypted keys with unsupported S2K or cipher\n     */\n    isMissingSecretKeyMaterial() {\n        return this.unparseableKeyMaterial !== undefined || this.isDummy();\n    }\n    /**\n     * Check whether this is a gnu-dummy key\n     * @returns {Boolean}\n     */\n    isDummy() {\n        return !!(this.s2k && this.s2k.type === 'gnu-dummy');\n    }\n    /**\n     * Remove private key material, converting the key to a dummy one.\n     * The resulting key cannot be used for signing/decrypting but can still verify signatures.\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     */\n    makeDummy(config$1 = config) {\n        if (this.isDummy()) {\n            return;\n        }\n        if (this.isDecrypted()) {\n            this.clearPrivateParams();\n        }\n        delete this.unparseableKeyMaterial;\n        this.isEncrypted = null;\n        this.keyMaterial = null;\n        this.s2k = newS2KFromType(enums.s2k.gnu, config$1);\n        this.s2k.algorithm = 0;\n        this.s2k.c = 0;\n        this.s2k.type = 'gnu-dummy';\n        this.s2kUsage = 254;\n        this.symmetric = enums.symmetric.aes256;\n        this.isLegacyAEAD = null;\n        this.usedModernAEAD = null;\n    }\n    /**\n     * Encrypt the payload. By default, we use aes256 and iterated, salted string\n     * to key specifier. If the key is in a decrypted state (isEncrypted === false)\n     * and the passphrase is empty or undefined, the key will be set as not encrypted.\n     * This can be used to remove passphrase protection after calling decrypt().\n     * @param {String} passphrase\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @throws {Error} if encryption was not successful\n     * @async\n     */\n    async encrypt(passphrase, config$1 = config) {\n        if (this.isDummy()) {\n            return;\n        }\n        if (!this.isDecrypted()) {\n            throw new Error('Key packet is already encrypted');\n        }\n        if (!passphrase) {\n            throw new Error('A non-empty passphrase is required for key encryption.');\n        }\n        this.s2k = newS2KFromConfig(config$1);\n        this.s2k.generateSalt();\n        const cleartext = serializeParams(this.algorithm, this.privateParams);\n        this.symmetric = enums.symmetric.aes256;\n        const { blockSize } = getCipherParams(this.symmetric);\n        if (config$1.aeadProtect) {\n            this.s2kUsage = 253;\n            this.aead = config$1.preferredAEADAlgorithm;\n            const mode = getAEADMode(this.aead);\n            this.isLegacyAEAD = this.version === 5; // v4 is always re-encrypted with standard format instead.\n            this.usedModernAEAD = !this.isLegacyAEAD; // legacy AEAD does not guarantee integrity of public key material\n            const serializedPacketTag = writeTag(this.constructor.tag);\n            const key = await produceEncryptionKey(this.version, this.s2k, passphrase, this.symmetric, this.aead, serializedPacketTag, this.isLegacyAEAD, config$1);\n            const modeInstance = await mode(this.symmetric, key);\n            this.iv = this.isLegacyAEAD ? getRandomBytes(blockSize) : getRandomBytes(mode.ivLength);\n            const associateData = this.isLegacyAEAD ?\n                new Uint8Array() :\n                util.concatUint8Array([serializedPacketTag, this.writePublicKey()]);\n            this.keyMaterial = await modeInstance.encrypt(cleartext, this.iv.subarray(0, mode.ivLength), associateData);\n        }\n        else {\n            this.s2kUsage = 254;\n            this.usedModernAEAD = false;\n            const key = await produceEncryptionKey(this.version, this.s2k, passphrase, this.symmetric, undefined, undefined, undefined, config$1);\n            this.iv = getRandomBytes(blockSize);\n            this.keyMaterial = await encrypt$1(this.symmetric, key, util.concatUint8Array([\n                cleartext,\n                await computeDigest(enums.hash.sha1, cleartext)\n            ]), this.iv);\n        }\n    }\n    /**\n     * Decrypts the private key params which are needed to use the key.\n     * Successful decryption does not imply key integrity, call validate() to confirm that.\n     * {@link SecretKeyPacket.isDecrypted} should be false, as\n     * otherwise calls to this function will throw an error.\n     * @param {String} passphrase - The passphrase for this private key as string\n     * @param {Object} config\n     * @throws {Error} if the key is already decrypted, or if decryption was not successful\n     * @async\n     */\n    async decrypt(passphrase, config$1 = config) {\n        if (this.isDummy()) {\n            return false;\n        }\n        if (this.unparseableKeyMaterial) {\n            throw new Error('Key packet cannot be decrypted: unsupported S2K or cipher algo');\n        }\n        if (this.isDecrypted()) {\n            throw new Error('Key packet is already decrypted.');\n        }\n        let key;\n        const serializedPacketTag = writeTag(this.constructor.tag); // relevant for AEAD only\n        if (this.s2kUsage === 254 || this.s2kUsage === 253) {\n            key = await produceEncryptionKey(this.version, this.s2k, passphrase, this.symmetric, this.aead, serializedPacketTag, this.isLegacyAEAD, config$1);\n        }\n        else if (this.s2kUsage === 255) {\n            throw new Error('Encrypted private key is authenticated using an insecure two-byte hash');\n        }\n        else {\n            throw new Error('Private key is encrypted using an insecure S2K function: unsalted MD5');\n        }\n        let cleartext;\n        if (this.s2kUsage === 253) {\n            const mode = getAEADMode(this.aead, true);\n            const modeInstance = await mode(this.symmetric, key);\n            try {\n                const associateData = this.isLegacyAEAD ?\n                    new Uint8Array() :\n                    util.concatUint8Array([serializedPacketTag, this.writePublicKey()]);\n                cleartext = await modeInstance.decrypt(this.keyMaterial, this.iv.subarray(0, mode.ivLength), associateData);\n            }\n            catch (err) {\n                if (err.message === 'Authentication tag mismatch') {\n                    throw new Error('Incorrect key passphrase: ' + err.message);\n                }\n                throw err;\n            }\n        }\n        else {\n            const cleartextWithHash = await decrypt$1(this.symmetric, key, this.keyMaterial, this.iv);\n            cleartext = cleartextWithHash.subarray(0, -20);\n            const hash = await computeDigest(enums.hash.sha1, cleartext);\n            if (!util.equalsUint8Array(hash, cleartextWithHash.subarray(-20))) {\n                throw new Error('Incorrect key passphrase');\n            }\n        }\n        try {\n            const { privateParams } = parsePrivateKeyParams(this.algorithm, cleartext, this.publicParams);\n            this.privateParams = privateParams;\n        }\n        catch {\n            throw new Error('Error reading MPIs');\n        }\n        this.isEncrypted = false;\n        this.keyMaterial = null;\n        this.s2kUsage = 0;\n        this.aead = null;\n        this.symmetric = null;\n        this.isLegacyAEAD = null;\n    }\n    /**\n     * Checks that the key parameters are consistent\n     * @throws {Error} if validation was not successful\n     * @async\n     */\n    async validate() {\n        if (this.isDummy()) {\n            return;\n        }\n        if (!this.isDecrypted()) {\n            throw new Error('Key is not decrypted');\n        }\n        if (this.usedModernAEAD) {\n            // key integrity confirmed by successful AEAD decryption\n            return;\n        }\n        let validParams;\n        try {\n            // this can throw if some parameters are undefined\n            validParams = await validateParams$1(this.algorithm, this.publicParams, this.privateParams);\n        }\n        catch {\n            validParams = false;\n        }\n        if (!validParams) {\n            throw new Error('Key is invalid');\n        }\n    }\n    async generate(bits, curve) {\n        // The deprecated OIDs for Ed25519Legacy and Curve25519Legacy are used in legacy version 4 keys and signatures.\n        // Implementations MUST NOT accept or generate v6 key material using the deprecated OIDs.\n        if (this.version === 6 && ((this.algorithm === enums.publicKey.ecdh && curve === enums.curve.curve25519Legacy) ||\n            this.algorithm === enums.publicKey.eddsaLegacy)) {\n            throw new Error(`Cannot generate v6 keys of type 'ecc' with curve ${curve}. Generate a key of type 'curve25519' instead`);\n        }\n        const { privateParams, publicParams } = await generateParams(this.algorithm, bits, curve);\n        this.privateParams = privateParams;\n        this.publicParams = publicParams;\n        this.isEncrypted = false;\n    }\n    /**\n     * Clear private key parameters\n     */\n    clearPrivateParams() {\n        if (this.isMissingSecretKeyMaterial()) {\n            return;\n        }\n        Object.keys(this.privateParams).forEach(name => {\n            const param = this.privateParams[name];\n            param.fill(0);\n            delete this.privateParams[name];\n        });\n        this.privateParams = null;\n        this.isEncrypted = true;\n    }\n}\n/**\n * Derive encryption key\n * @param {Number} keyVersion - key derivation differs for v5 keys\n * @param {module:type/s2k} s2k\n * @param {String} passphrase\n * @param {module:enums.symmetric} cipherAlgo\n * @param {module:enums.aead} [aeadMode] - for AEAD-encrypted keys only (excluding v5)\n * @param {Uint8Array} [serializedPacketTag] - for AEAD-encrypted keys only (excluding v5)\n * @param {Boolean} [isLegacyAEAD] - for AEAD-encrypted keys from RFC4880bis (v4 and v5 only)\n * @param {Object} config\n * @returns encryption key\n * @access private\n */\nasync function produceEncryptionKey(keyVersion, s2k, passphrase, cipherAlgo, aeadMode, serializedPacketTag, isLegacyAEAD, config) {\n    if (s2k.type === 'argon2' && !aeadMode) {\n        throw new Error('Using Argon2 S2K without AEAD is not allowed');\n    }\n    if (s2k.type === 'simple' && keyVersion === 6) {\n        throw new Error('Using Simple S2K with version 6 keys is not allowed');\n    }\n    const { keySize } = getCipherParams(cipherAlgo);\n    const derivedKey = await s2k.produceKey(passphrase, keySize, config);\n    if (!aeadMode || keyVersion === 5 || isLegacyAEAD) {\n        return derivedKey;\n    }\n    const info = util.concatUint8Array([\n        serializedPacketTag,\n        new Uint8Array([keyVersion, cipherAlgo, aeadMode])\n    ]);\n    return computeHKDF(enums.hash.sha256, derivedKey, new Uint8Array(), info, keySize);\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Implementation of the User ID Packet (Tag 13)\n *\n * A User ID packet consists of UTF-8 text that is intended to represent\n * the name and email address of the key holder.  By convention, it\n * includes an RFC 2822 [RFC2822] mail name-addr, but there are no\n * restrictions on its content.  The packet length in the header\n * specifies the length of the User ID.\n */\nclass UserIDPacket {\n    static get tag() {\n        return enums.packet.userID;\n    }\n    constructor() {\n        /** A string containing the user id. Usually in the form\n         * John Doe <john@example.com>\n         * @type {String}\n         */\n        this.userID = '';\n        this.name = '';\n        this.email = '';\n        this.comment = '';\n    }\n    /**\n     * Create UserIDPacket instance from object\n     * @param {Object} userID - Object specifying userID name, email and comment\n     * @returns {UserIDPacket}\n     * @static\n     */\n    static fromObject(userID) {\n        if (util.isString(userID) ||\n            (userID.name && !util.isString(userID.name)) ||\n            (userID.email && !util.isEmailAddress(userID.email)) ||\n            (userID.comment && !util.isString(userID.comment))) {\n            throw new Error('Invalid user ID format');\n        }\n        const packet = new UserIDPacket();\n        Object.assign(packet, userID);\n        const components = [];\n        if (packet.name)\n            components.push(packet.name);\n        if (packet.comment)\n            components.push(`(${packet.comment})`);\n        if (packet.email)\n            components.push(`<${packet.email}>`);\n        packet.userID = components.join(' ');\n        return packet;\n    }\n    /**\n     * Parsing function for a user id packet (tag 13).\n     * @param {Uint8Array} input - Payload of a tag 13 packet\n     */\n    read(bytes, config$1 = config) {\n        const userID = util.decodeUTF8(bytes);\n        if (userID.length > config$1.maxUserIDLength) {\n            throw new Error('User ID string is too long');\n        }\n        /**\n         * We support the conventional cases described in https://www.ietf.org/id/draft-dkg-openpgp-userid-conventions-00.html#section-4.1,\n         * as well comments placed between the name (if present) and the bracketed email address:\n         * - name (comment) <email>\n         * - email\n         * In the first case, the `email` is the only required part, and it must contain the `@` symbol.\n         * The `name` and `comment` parts can include any letters, whitespace, and symbols, except for `(` and `)`,\n         * since they interfere with `comment` parsing.\n         */\n        const isValidEmail = str => /^[^\\s@]+@[^\\s@]+$/.test(str); // enforce single @ and no whitespace\n        const firstBracket = userID.indexOf('<');\n        const lastBracket = userID.lastIndexOf('>');\n        if (firstBracket !== -1 &&\n            lastBracket !== -1 &&\n            lastBracket > firstBracket) {\n            const potentialEmail = userID.substring(firstBracket + 1, lastBracket);\n            if (isValidEmail(potentialEmail)) {\n                this.email = potentialEmail;\n                const beforeEmail = userID.substring(0, firstBracket).trim();\n                const firstParen = beforeEmail.indexOf('(');\n                const lastParen = beforeEmail.lastIndexOf(')');\n                if (firstParen !== -1 && lastParen !== -1 && lastParen > firstParen) {\n                    this.comment = beforeEmail\n                        .substring(firstParen + 1, lastParen)\n                        .trim();\n                    this.name = beforeEmail.substring(0, firstParen).trim();\n                }\n                else {\n                    this.name = beforeEmail;\n                    this.comment = '';\n                }\n            }\n        }\n        else if (isValidEmail(userID.trim())) {\n            // unbracketed email case\n            this.email = userID.trim();\n            this.name = '';\n            this.comment = '';\n        }\n        this.userID = userID;\n    }\n    /**\n     * Creates a binary representation of the user id packet\n     * @returns {Uint8Array} Binary representation.\n     */\n    write() {\n        return util.encodeUTF8(this.userID);\n    }\n    equals(otherUserID) {\n        return otherUserID && otherUserID.userID === this.userID;\n    }\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * A Secret-Subkey packet (tag 7) is the subkey analog of the Secret\n * Key packet and has exactly the same format.\n * @extends SecretKeyPacket\n */\nclass SecretSubkeyPacket extends SecretKeyPacket {\n    static get tag() {\n        return enums.packet.secretSubkey;\n    }\n    /**\n     * @param {Date} [date] - Creation date\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     */\n    constructor(date = new Date(), config$1 = config) {\n        super(date, config$1);\n    }\n}\n\n/** @access public */\n/**\n * Implementation of the Trust Packet (Tag 12)\n *\n * {@link https://tools.ietf.org/html/rfc4880#section-5.10|RFC4880 5.10}:\n * The Trust packet is used only within keyrings and is not normally\n * exported.  Trust packets contain data that record the user's\n * specifications of which key holders are trustworthy introducers,\n * along with other information that implementing software uses for\n * trust information.  The format of Trust packets is defined by a given\n * implementation.\n *\n * Trust packets SHOULD NOT be emitted to output streams that are\n * transferred to other users, and they SHOULD be ignored on any input\n * other than local keyring files.\n */\nclass TrustPacket {\n    static get tag() {\n        return enums.packet.trust;\n    }\n    /**\n     * Parsing function for a trust packet (tag 12).\n     * Currently not implemented as we ignore trust packets\n     */\n    read() {\n        throw new UnsupportedError('Trust packets are not supported');\n    }\n    write() {\n        throw new UnsupportedError('Trust packets are not supported');\n    }\n}\n\n/** @access public */\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2022 Proton AG\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Implementation of the Padding Packet\n *\n * {@link https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh#name-padding-packet-tag-21}:\n * Padding Packet\n */\nclass PaddingPacket {\n    static get tag() {\n        return enums.packet.padding;\n    }\n    constructor() {\n        this.padding = null;\n    }\n    /**\n     * Read a padding packet\n     * @param {Uint8Array | ReadableStream<Uint8Array>} bytes\n     */\n    read(bytes) {\n        // Padding packets are ignored, so this function is never called.\n    }\n    /**\n     * Write the padding packet\n     * @returns {Uint8Array} The padding packet.\n     */\n    write() {\n        return this.padding;\n    }\n    /**\n     * Create random padding.\n     * @param {Number} length - The length of padding to be generated.\n     * @throws {Error} if padding generation was not successful\n     * @async needed to avoid breaking change until next major release\n     */\n    // eslint-disable-next-line @typescript-eslint/require-await\n    async createPadding(length) {\n        this.padding = getRandomBytes(length);\n    }\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n// A Signature can contain the following packets\nconst allowedPackets$1 = /*#__PURE__*/ util.constructAllowedPackets([SignaturePacket]);\n/**\n * Class that represents an OpenPGP signature.\n */\nclass Signature {\n    /**\n     * @param {PacketList} packetlist - The signature packets\n     */\n    constructor(packetlist) {\n        this.packets = packetlist || new PacketList();\n    }\n    /**\n     * Returns binary encoded signature\n     * @returns {ReadableStream<Uint8Array>} Binary signature.\n     */\n    write() {\n        return this.packets.write();\n    }\n    /**\n     * Returns ASCII armored text of signature\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {ReadableStream<String>} ASCII armor.\n     */\n    armor(config$1 = config) {\n        // An ASCII-armored sequence of Signature packets that only includes v6 Signature packets MUST NOT contain a CRC24 footer.\n        const emitChecksum = this.packets.some(packet => packet.constructor.tag === SignaturePacket.tag && packet.version !== 6);\n        return armor(enums.armor.signature, this.write(), undefined, undefined, undefined, emitChecksum, config$1);\n    }\n    /**\n     * Returns an array of KeyIDs of all of the issuers who created this signature\n     * @returns {Array<KeyID>} The Key IDs of the signing keys\n     */\n    getSigningKeyIDs() {\n        return this.packets.map(packet => packet.issuerKeyID);\n    }\n}\n/**\n * reads an (optionally armored) OpenPGP signature and returns a signature object\n * @param {Object} options\n * @param {String} [options.armoredSignature] - Armored signature to be parsed\n * @param {Uint8Array} [options.binarySignature] - Binary signature to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<Signature>} New signature object.\n * @async\n * @static\n */\nasync function readSignature({ armoredSignature, binarySignature, config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    let input = armoredSignature || binarySignature;\n    if (!input) {\n        throw new Error('readSignature: must pass options object containing `armoredSignature` or `binarySignature`');\n    }\n    if (armoredSignature && !util.isString(armoredSignature)) {\n        throw new Error('readSignature: options.armoredSignature must be a string');\n    }\n    if (binarySignature && !util.isUint8Array(binarySignature)) {\n        throw new Error('readSignature: options.binarySignature must be a Uint8Array');\n    }\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    if (armoredSignature) {\n        const { type, data } = await unarmor(input);\n        if (type !== enums.armor.signature) {\n            throw new Error('Armored text not of type signature');\n        }\n        input = data;\n    }\n    const packetlist = await PacketList.fromBinary(input, allowedPackets$1, config$1);\n    return new Signature(packetlist);\n}\n\n/**\n * @fileoverview Provides helpers methods for key module\n * @module key/helper\n * @access private\n */\nasync function generateSecretSubkey(options, config) {\n    const secretSubkeyPacket = new SecretSubkeyPacket(options.date, config);\n    secretSubkeyPacket.packets = null;\n    secretSubkeyPacket.algorithm = enums.write(enums.publicKey, options.algorithm);\n    await secretSubkeyPacket.generate(options.rsaBits, options.curve);\n    await secretSubkeyPacket.computeFingerprintAndKeyID();\n    return secretSubkeyPacket;\n}\nasync function generateSecretKey(options, config) {\n    const secretKeyPacket = new SecretKeyPacket(options.date, config);\n    secretKeyPacket.packets = null;\n    secretKeyPacket.algorithm = enums.write(enums.publicKey, options.algorithm);\n    await secretKeyPacket.generate(options.rsaBits, options.curve, options.config);\n    await secretKeyPacket.computeFingerprintAndKeyID();\n    return secretKeyPacket;\n}\n/**\n * Returns the valid and non-expired signature that has the latest creation date, while ignoring signatures created in the future.\n * @param {Array<SignaturePacket>} signatures - List of signatures\n * @param {PublicKeyPacket|PublicSubkeyPacket} publicKey - Public key packet to verify the signature\n * @param {module:enums.signature} signatureType - Signature type to determine how to hash the data (NB: for userID signatures,\n *                          `enums.signatures.certGeneric` should be given regardless of the actual trust level)\n * @param {Date} date - Use the given date instead of the current time\n * @param {Object} config - full configuration\n * @returns {Promise<SignaturePacket>} The latest valid signature.\n * @async\n */\nasync function getLatestValidSignature(signatures, publicKey, signatureType, dataToVerify, date = new Date(), config) {\n    let latestValid;\n    let exception;\n    for (let i = signatures.length - 1; i >= 0; i--) {\n        try {\n            if ((!latestValid || signatures[i].created >= latestValid.created)) {\n                await signatures[i].verify(publicKey, signatureType, dataToVerify, date, undefined, config);\n                latestValid = signatures[i];\n            }\n        }\n        catch (e) {\n            exception = e;\n        }\n    }\n    if (!latestValid) {\n        throw util.wrapError(`Could not find valid ${enums.read(enums.signature, signatureType)} signature in key ${publicKey.getKeyID().toHex()}`\n            .replace('certGeneric ', 'self-')\n            .replace(/([a-z])([A-Z])/g, (_, $1, $2) => $1 + ' ' + $2.toLowerCase()), exception);\n    }\n    return latestValid;\n}\nfunction isDataExpired(keyPacket, signature, date = new Date()) {\n    const normDate = util.normalizeDate(date);\n    if (normDate !== null) {\n        const expirationTime = getKeyExpirationTime(keyPacket, signature);\n        return !(keyPacket.created <= normDate && normDate < expirationTime);\n    }\n    return false;\n}\n/**\n * Create Binding signature to the key according to the {@link https://tools.ietf.org/html/rfc4880#section-5.2.1}\n * @param {SecretSubkeyPacket} subkey - Subkey key packet\n * @param {SecretKeyPacket} primaryKey - Primary key packet\n * @param {Object} options\n * @param {Object} config - Full configuration\n */\nasync function createBindingSignature(subkey, primaryKey, options, config) {\n    const dataToSign = {};\n    dataToSign.key = primaryKey;\n    dataToSign.bind = subkey;\n    const signatureProperties = { signatureType: enums.signature.subkeyBinding };\n    if (options.sign) {\n        signatureProperties.keyFlags = [enums.keyFlags.signData];\n        signatureProperties.embeddedSignature = await createSignaturePacket(dataToSign, [], subkey, {\n            signatureType: enums.signature.keyBinding\n        }, options.date, undefined, undefined, undefined, config);\n    }\n    else {\n        signatureProperties.keyFlags = [enums.keyFlags.encryptCommunication | enums.keyFlags.encryptStorage];\n    }\n    if (options.keyExpirationTime > 0) {\n        signatureProperties.keyExpirationTime = options.keyExpirationTime;\n        signatureProperties.keyNeverExpires = false;\n    }\n    const subkeySignaturePacket = await createSignaturePacket(dataToSign, [], primaryKey, signatureProperties, options.date, undefined, undefined, undefined, config);\n    return subkeySignaturePacket;\n}\n/**\n * Returns the preferred signature hash algorithm for a set of keys.\n * @param {Array<Key>} [targetKeys] - The keys to get preferences from\n * @param {SecretKeyPacket|SecretSubkeyPacket} signingKeyPacket - key packet used for signing\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Object} [targetUserID] - User IDs corresponding to `targetKeys` to get preferences from\n * @param {Object} config - full configuration\n * @returns {Promise<enums.hash>}\n * @async\n */\nasync function getPreferredHashAlgo(targetKeys, signingKeyPacket, date = new Date(), targetUserIDs = [], config) {\n    /**\n     * If `preferredSenderAlgo` appears in the prefs of all recipients, we pick it; otherwise, we use the\n     * strongest supported algo (`defaultAlgo` is always implicitly supported by all keys).\n     * if no keys are available, `preferredSenderAlgo` is returned.\n     * For ECC signing key, the curve preferred hash is taken into account as well (see logic below).\n     */\n    const defaultAlgo = enums.hash.sha256; // MUST implement\n    const preferredSenderAlgo = config.preferredHashAlgorithm;\n    const supportedAlgosPerTarget = await Promise.all(targetKeys.map(async (key, i) => {\n        const selfCertification = await key.getPrimarySelfSignature(date, targetUserIDs[i], config);\n        const targetPrefs = selfCertification.preferredHashAlgorithms;\n        return targetPrefs || [];\n    }));\n    const supportedAlgosMap = new Map(); // use Map over object to preserve numeric keys\n    for (const supportedAlgos of supportedAlgosPerTarget) {\n        for (const hashAlgo of supportedAlgos) {\n            try {\n                // ensure that `hashAlgo` is recognized/implemented by us, otherwise e.g. `getHashByteLength` will throw later on\n                const supportedAlgo = enums.write(enums.hash, hashAlgo);\n                supportedAlgosMap.set(supportedAlgo, supportedAlgosMap.has(supportedAlgo) ? supportedAlgosMap.get(supportedAlgo) + 1 : 1);\n            }\n            catch { }\n        }\n    }\n    const isSupportedHashAlgo = hashAlgo => targetKeys.length === 0 || supportedAlgosMap.get(hashAlgo) === targetKeys.length || hashAlgo === defaultAlgo;\n    const getStrongestSupportedHashAlgo = () => {\n        if (supportedAlgosMap.size === 0) {\n            return defaultAlgo;\n        }\n        const sortedHashAlgos = Array.from(supportedAlgosMap.keys())\n            .filter(hashAlgo => isSupportedHashAlgo(hashAlgo))\n            .sort((algoA, algoB) => getHashByteLength(algoA) - getHashByteLength(algoB));\n        const strongestHashAlgo = sortedHashAlgos[0];\n        // defaultAlgo is always implicitly supported, and might be stronger than the rest\n        return getHashByteLength(strongestHashAlgo) >= getHashByteLength(defaultAlgo) ? strongestHashAlgo : defaultAlgo;\n    };\n    const eccAlgos = new Set([\n        enums.publicKey.ecdsa,\n        enums.publicKey.eddsaLegacy,\n        enums.publicKey.ed25519,\n        enums.publicKey.ed448\n    ]);\n    if (eccAlgos.has(signingKeyPacket.algorithm)) {\n        // For ECC, the returned hash algo MUST be at least as strong as `preferredCurveHashAlgo`, see:\n        // - ECDSA: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.2-5\n        // - EdDSALegacy: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.3-3\n        // - Ed25519: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.4-4\n        // - Ed448: https://www.rfc-editor.org/rfc/rfc9580.html#section-5.2.3.5-4\n        // Hence, we return the `preferredHashAlgo` as long as it's supported and strong enough;\n        // Otherwise, we look at the strongest supported algo, and ultimately fallback to the curve\n        // preferred algo, even if not supported by all targets.\n        const preferredCurveAlgo = getPreferredCurveHashAlgo(signingKeyPacket.algorithm, signingKeyPacket.publicParams.oid);\n        const preferredSenderAlgoIsSupported = isSupportedHashAlgo(preferredSenderAlgo);\n        const preferredSenderAlgoStrongerThanCurveAlgo = getHashByteLength(preferredSenderAlgo) >= getHashByteLength(preferredCurveAlgo);\n        if (preferredSenderAlgoIsSupported && preferredSenderAlgoStrongerThanCurveAlgo) {\n            return preferredSenderAlgo;\n        }\n        else {\n            const strongestSupportedAlgo = getStrongestSupportedHashAlgo();\n            return getHashByteLength(strongestSupportedAlgo) >= getHashByteLength(preferredCurveAlgo) ?\n                strongestSupportedAlgo :\n                preferredCurveAlgo;\n        }\n    }\n    // `preferredSenderAlgo` may be weaker than the default, but we do not guard against this,\n    // since it was manually set by the sender.\n    return isSupportedHashAlgo(preferredSenderAlgo) ? preferredSenderAlgo : getStrongestSupportedHashAlgo();\n}\n/**\n * Returns the preferred compression algorithm for a set of keys\n * @param {Array<Key>} [keys] - Set of keys\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Array} [userIDs] - User IDs\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise<module:enums.compression>} Preferred compression algorithm\n * @async\n */\nasync function getPreferredCompressionAlgo(keys = [], date = new Date(), userIDs = [], config$1 = config) {\n    const defaultAlgo = enums.compression.uncompressed;\n    const preferredSenderAlgo = config$1.preferredCompressionAlgorithm;\n    // if preferredSenderAlgo appears in the prefs of all recipients, we pick it\n    // otherwise we use the default algo\n    // if no keys are available, preferredSenderAlgo is returned\n    const senderAlgoSupport = await Promise.all(keys.map(async function (key, i) {\n        const selfCertification = await key.getPrimarySelfSignature(date, userIDs[i], config$1);\n        const recipientPrefs = selfCertification.preferredCompressionAlgorithms;\n        return !!recipientPrefs && recipientPrefs.indexOf(preferredSenderAlgo) >= 0;\n    }));\n    return senderAlgoSupport.every(Boolean) ? preferredSenderAlgo : defaultAlgo;\n}\n/**\n * Returns the preferred symmetric and AEAD algorithm (if any) for a set of keys\n * @param {Array<Key>} [keys] - Set of keys\n * @param {Date} [date] - Use the given date for verification instead of the current time\n * @param {Array} [userIDs] - User IDs\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise<{ symmetricAlgo: module:enums.symmetric, aeadAlgo: module:enums.aead | undefined }>} Object containing the preferred symmetric algorithm, and the preferred AEAD algorithm, or undefined if CFB is preferred\n * @async\n */\nasync function getPreferredCipherSuite(keys = [], date = new Date(), userIDs = [], config$1 = config) {\n    const selfSigs = await Promise.all(keys.map((key, i) => key.getPrimarySelfSignature(date, userIDs[i], config$1)));\n    const withAEAD = keys.length ?\n        selfSigs.every(selfSig => selfSig.features && (selfSig.features[0] & enums.features.seipdv2)) :\n        config$1.aeadProtect;\n    if (withAEAD) {\n        const defaultCipherSuite = { symmetricAlgo: enums.symmetric.aes128, aeadAlgo: enums.aead.ocb };\n        const desiredCipherSuites = [\n            { symmetricAlgo: config$1.preferredSymmetricAlgorithm, aeadAlgo: config$1.preferredAEADAlgorithm },\n            { symmetricAlgo: config$1.preferredSymmetricAlgorithm, aeadAlgo: enums.aead.ocb },\n            { symmetricAlgo: enums.symmetric.aes128, aeadAlgo: config$1.preferredAEADAlgorithm }\n        ];\n        for (const desiredCipherSuite of desiredCipherSuites) {\n            if (selfSigs.every(selfSig => selfSig.preferredCipherSuites && selfSig.preferredCipherSuites.some(cipherSuite => cipherSuite[0] === desiredCipherSuite.symmetricAlgo && cipherSuite[1] === desiredCipherSuite.aeadAlgo))) {\n                return desiredCipherSuite;\n            }\n        }\n        return defaultCipherSuite;\n    }\n    const defaultSymAlgo = enums.symmetric.aes128;\n    const desiredSymAlgo = config$1.preferredSymmetricAlgorithm;\n    return {\n        symmetricAlgo: selfSigs.every(selfSig => selfSig.preferredSymmetricAlgorithms && selfSig.preferredSymmetricAlgorithms.includes(desiredSymAlgo)) ?\n            desiredSymAlgo :\n            defaultSymAlgo,\n        aeadAlgo: undefined\n    };\n}\n/**\n * Create signature packet\n * @param {Object} dataToSign - Contains packets to be signed\n * @param {Array<Key>} recipientKeys - keys to get preferences from\n * @param  {SecretKeyPacket|\n *          SecretSubkeyPacket}              signingKeyPacket secret key packet for signing\n * @param {Object} [signatureProperties] - Properties to write on the signature packet before signing\n * @param {Date} [date] - Override the creationtime of the signature\n * @param {Object} [userID] - User ID\n * @param {Array} [notations] - Notation Data to add to the signature, e.g. [{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]\n * @param {Object} [detached] - Whether to create a detached signature packet\n * @param {Object} config - full configuration\n * @returns {Promise<SignaturePacket>} Signature packet.\n */\nasync function createSignaturePacket(dataToSign, recipientKeys, signingKeyPacket, signatureProperties, date, recipientUserIDs, notations = [], detached = false, config) {\n    if (signingKeyPacket.isDummy()) {\n        throw new Error('Cannot sign with a gnu-dummy key.');\n    }\n    if (!signingKeyPacket.isDecrypted()) {\n        throw new Error('Signing key is not decrypted.');\n    }\n    const signaturePacket = new SignaturePacket();\n    Object.assign(signaturePacket, signatureProperties);\n    signaturePacket.publicKeyAlgorithm = signingKeyPacket.algorithm;\n    signaturePacket.hashAlgorithm = await getPreferredHashAlgo(recipientKeys, signingKeyPacket, date, recipientUserIDs, config);\n    signaturePacket.rawNotations = [...notations];\n    await signaturePacket.sign(signingKeyPacket, dataToSign, date, detached, config);\n    return signaturePacket;\n}\n/**\n * Merges signatures from source[attr] to dest[attr]\n * @param {Object} source\n * @param {Object} dest\n * @param {String} attr\n * @param {Date} [date] - date to use for signature expiration check, instead of the current time\n * @param {Function} [checkFn] - signature only merged if true\n */\nasync function mergeSignatures(source, dest, attr, date = new Date(), checkFn) {\n    source = source[attr];\n    if (source) {\n        if (!dest[attr].length) {\n            dest[attr] = source;\n        }\n        else {\n            await Promise.all(source.map(async function (sourceSig) {\n                if (!sourceSig.isExpired(date) && (!checkFn || await checkFn(sourceSig)) &&\n                    !dest[attr].some(function (destSig) {\n                        return util.equalsUint8Array(destSig.writeParams(), sourceSig.writeParams());\n                    })) {\n                    dest[attr].push(sourceSig);\n                }\n            }));\n        }\n    }\n}\n/**\n * Checks if a given certificate or binding signature is revoked\n * @param  {SecretKeyPacket|\n *          PublicKeyPacket}        primaryKey   The primary key packet\n * @param {Object} dataToVerify - The data to check\n * @param {Array<SignaturePacket>} revocations - The revocation signatures to check\n * @param {SignaturePacket} signature - The certificate or signature to check\n * @param  {PublicSubkeyPacket|\n *          SecretSubkeyPacket|\n *          PublicKeyPacket|\n *          SecretKeyPacket} key, optional The key packet to verify the signature, instead of the primary key\n * @param {Date} date - Use the given date instead of the current time\n * @param {Object} config - Full configuration\n * @returns {Promise<Boolean>} True if the signature revokes the data.\n * @async\n */\nasync function isDataRevoked(primaryKey, signatureType, dataToVerify, revocations, signature, key, date = new Date(), config) {\n    key = key || primaryKey;\n    const revocationKeyIDs = [];\n    await Promise.all(revocations.map(async function (revocationSignature) {\n        try {\n            if (\n            // Note: a third-party revocation signature could legitimately revoke a\n            // self-signature if the signature has an authorized revocation key.\n            // However, we don't support passing authorized revocation keys, nor\n            // verifying such revocation signatures. Instead, we indicate an error\n            // when parsing a key with an authorized revocation key, and ignore\n            // third-party revocation signatures here. (It could also be revoking a\n            // third-party key certification, which should only affect\n            // `verifyAllCertifications`.)\n            !signature || revocationSignature.issuerKeyID.equals(signature.issuerKeyID)) {\n                const isHardRevocation = ![\n                    enums.reasonForRevocation.keyRetired,\n                    enums.reasonForRevocation.keySuperseded,\n                    enums.reasonForRevocation.userIDInvalid\n                ].includes(revocationSignature.reasonForRevocationFlag);\n                await revocationSignature.verify(key, signatureType, dataToVerify, isHardRevocation ? null : date, false, config);\n                // TODO get an identifier of the revoked object instead\n                revocationKeyIDs.push(revocationSignature.issuerKeyID);\n            }\n        }\n        catch { }\n    }));\n    // TODO further verify that this is the signature that should be revoked\n    if (signature) {\n        signature.revoked = revocationKeyIDs.some(keyID => keyID.equals(signature.issuerKeyID)) ? true :\n            signature.revoked || false;\n        return signature.revoked;\n    }\n    return revocationKeyIDs.length > 0;\n}\n/**\n * Returns key expiration time based on the given certification signature.\n * The expiration time of the signature is ignored.\n * @param {PublicSubkeyPacket|PublicKeyPacket} keyPacket - key to check\n * @param {SignaturePacket} signature - signature to process\n * @returns {Date|Infinity} expiration time or infinity if the key does not expire\n */\nfunction getKeyExpirationTime(keyPacket, signature) {\n    let expirationTime;\n    // check V4 expiration time\n    if (signature.keyNeverExpires === false) {\n        expirationTime = keyPacket.created.getTime() + signature.keyExpirationTime * 1000;\n    }\n    return expirationTime ? new Date(expirationTime) : Infinity;\n}\nfunction sanitizeKeyOptions(options, subkeyDefaults = {}) {\n    options.type = options.type || subkeyDefaults.type;\n    options.curve = options.curve || subkeyDefaults.curve;\n    options.rsaBits = options.rsaBits || subkeyDefaults.rsaBits;\n    options.keyExpirationTime = options.keyExpirationTime !== undefined ? options.keyExpirationTime : subkeyDefaults.keyExpirationTime;\n    options.passphrase = util.isString(options.passphrase) ? options.passphrase : subkeyDefaults.passphrase;\n    options.date = options.date || subkeyDefaults.date;\n    options.sign = options.sign || false;\n    switch (options.type) {\n        case 'ecc': // NB: this case also handles legacy eddsa and x25519 keys, based on `options.curve`\n            try {\n                options.curve = enums.write(enums.curve, options.curve);\n            }\n            catch {\n                throw new Error('Unknown curve');\n            }\n            if (options.curve === enums.curve.ed25519Legacy || options.curve === enums.curve.curve25519Legacy ||\n                options.curve === 'ed25519' || options.curve === 'curve25519') { // keep support for curve names without 'Legacy' addition, for now\n                options.curve = options.sign ? enums.curve.ed25519Legacy : enums.curve.curve25519Legacy;\n            }\n            if (options.sign) {\n                options.algorithm = options.curve === enums.curve.ed25519Legacy ? enums.publicKey.eddsaLegacy : enums.publicKey.ecdsa;\n            }\n            else {\n                options.algorithm = enums.publicKey.ecdh;\n            }\n            break;\n        case 'curve25519':\n            options.algorithm = options.sign ? enums.publicKey.ed25519 : enums.publicKey.x25519;\n            break;\n        case 'curve448':\n            options.algorithm = options.sign ? enums.publicKey.ed448 : enums.publicKey.x448;\n            break;\n        case 'rsa':\n            options.algorithm = enums.publicKey.rsaEncryptSign;\n            break;\n        default:\n            throw new Error(`Unsupported key type ${options.type}`);\n    }\n    return options;\n}\nfunction validateSigningKeyPacket(keyPacket, signature, config) {\n    switch (keyPacket.algorithm) {\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.rsaSign:\n        case enums.publicKey.dsa:\n        case enums.publicKey.ecdsa:\n        case enums.publicKey.eddsaLegacy:\n        case enums.publicKey.ed25519:\n        case enums.publicKey.ed448:\n            if (!signature.keyFlags && !config.allowMissingKeyFlags) {\n                throw new Error('None of the key flags is set: consider passing `config.allowMissingKeyFlags`');\n            }\n            return !signature.keyFlags ||\n                (signature.keyFlags[0] & enums.keyFlags.signData) !== 0;\n        default:\n            return false;\n    }\n}\nfunction validateEncryptionKeyPacket(keyPacket, signature, config) {\n    switch (keyPacket.algorithm) {\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.elgamal:\n        case enums.publicKey.ecdh:\n        case enums.publicKey.x25519:\n        case enums.publicKey.x448:\n            if (!signature.keyFlags && !config.allowMissingKeyFlags) {\n                throw new Error('None of the key flags is set: consider passing `config.allowMissingKeyFlags`');\n            }\n            return !signature.keyFlags ||\n                (signature.keyFlags[0] & enums.keyFlags.encryptCommunication) !== 0 ||\n                (signature.keyFlags[0] & enums.keyFlags.encryptStorage) !== 0;\n        default:\n            return false;\n    }\n}\nfunction validateDecryptionKeyPacket(keyPacket, signature, config) {\n    if (!signature.keyFlags && !config.allowMissingKeyFlags) {\n        throw new Error('None of the key flags is set: consider passing `config.allowMissingKeyFlags`');\n    }\n    switch (keyPacket.algorithm) {\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.elgamal:\n        case enums.publicKey.ecdh:\n        case enums.publicKey.x25519:\n        case enums.publicKey.x448: {\n            const isValidSigningKeyPacket = !signature.keyFlags || (signature.keyFlags[0] & enums.keyFlags.signData) !== 0;\n            if (isValidSigningKeyPacket && config.allowInsecureDecryptionWithSigningKeys) {\n                // This is only relevant for RSA keys, all other signing algorithms cannot decrypt\n                return true;\n            }\n            return !signature.keyFlags ||\n                (signature.keyFlags[0] & enums.keyFlags.encryptCommunication) !== 0 ||\n                (signature.keyFlags[0] & enums.keyFlags.encryptStorage) !== 0;\n        }\n        default:\n            return false;\n    }\n}\n/**\n * Check key against blacklisted algorithms and minimum strength requirements.\n * @param {SecretKeyPacket|PublicKeyPacket|\n *        SecretSubkeyPacket|PublicSubkeyPacket} keyPacket\n * @param {Config} config\n * @throws {Error} if the key packet does not meet the requirements\n */\nfunction checkKeyRequirements(keyPacket, config) {\n    const keyAlgo = enums.write(enums.publicKey, keyPacket.algorithm);\n    const algoInfo = keyPacket.getAlgorithmInfo();\n    if (config.rejectPublicKeyAlgorithms.has(keyAlgo)) {\n        throw new Error(`${algoInfo.algorithm} keys are considered too weak.`);\n    }\n    switch (keyAlgo) {\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.rsaSign:\n        case enums.publicKey.rsaEncrypt:\n            if (algoInfo.bits < config.minRSABits) {\n                throw new Error(`RSA keys shorter than ${config.minRSABits} bits are considered too weak.`);\n            }\n            break;\n        case enums.publicKey.ecdsa:\n        case enums.publicKey.eddsaLegacy:\n        case enums.publicKey.ecdh:\n            if (config.rejectCurves.has(algoInfo.curve)) {\n                throw new Error(`Support for ${algoInfo.algorithm} keys using curve ${algoInfo.curve} is disabled.`);\n            }\n            break;\n    }\n}\n\n/**\n * @module key/User\n * @access private\n */\n/**\n * Class that represents an user ID or attribute packet and the relevant signatures.\n  * @param {UserIDPacket|UserAttributePacket} userPacket - packet containing the user info\n  * @param {Key} mainKey - reference to main Key object containing the primary key and subkeys that the user is associated with\n */\nclass User {\n    constructor(userPacket, mainKey) {\n        this.userID = userPacket.constructor.tag === enums.packet.userID ? userPacket : null;\n        this.userAttribute = userPacket.constructor.tag === enums.packet.userAttribute ? userPacket : null;\n        this.selfCertifications = [];\n        this.otherCertifications = [];\n        this.revocationSignatures = [];\n        this.mainKey = mainKey;\n    }\n    /**\n     * Transforms structured user data to packetlist\n     * @returns {PacketList}\n     */\n    toPacketList() {\n        const packetlist = new PacketList();\n        packetlist.push(this.userID || this.userAttribute);\n        packetlist.push(...this.revocationSignatures);\n        packetlist.push(...this.selfCertifications);\n        packetlist.push(...this.otherCertifications);\n        return packetlist;\n    }\n    /**\n     * Shallow clone\n     * @returns {User}\n     */\n    clone() {\n        const user = new User(this.userID || this.userAttribute, this.mainKey);\n        user.selfCertifications = [...this.selfCertifications];\n        user.otherCertifications = [...this.otherCertifications];\n        user.revocationSignatures = [...this.revocationSignatures];\n        return user;\n    }\n    /**\n     * Generate third-party certifications over this user and its primary key\n     * @param {Array<PrivateKey>} signingKeys - Decrypted private keys for signing\n     * @param {Date} [date] - Date to use as creation date of the certificate, instead of the current time\n     * @param {Object} config - Full configuration\n     * @returns {Promise<User>} New user with new certifications.\n     * @async\n     */\n    async certify(signingKeys, date, config) {\n        const primaryKey = this.mainKey.keyPacket;\n        const dataToSign = {\n            userID: this.userID,\n            userAttribute: this.userAttribute,\n            key: primaryKey\n        };\n        const user = new User(dataToSign.userID || dataToSign.userAttribute, this.mainKey);\n        user.otherCertifications = await Promise.all(signingKeys.map(async function (privateKey) {\n            if (!privateKey.isPrivate()) {\n                throw new Error('Need private key for signing');\n            }\n            if (privateKey.hasSameFingerprintAs(primaryKey)) {\n                throw new Error(\"The user's own key can only be used for self-certifications\");\n            }\n            const signingKey = await privateKey.getSigningKey(undefined, date, undefined, config);\n            return createSignaturePacket(dataToSign, [privateKey], signingKey.keyPacket, {\n                // Most OpenPGP implementations use generic certification (0x10)\n                signatureType: enums.signature.certGeneric,\n                keyFlags: [enums.keyFlags.certifyKeys | enums.keyFlags.signData]\n            }, date, undefined, undefined, undefined, config);\n        }));\n        await user.update(this, date, config);\n        return user;\n    }\n    /**\n     * Checks if a given certificate of the user is revoked\n     * @param {SignaturePacket} certificate - The certificate to verify\n     * @param  {PublicSubkeyPacket|\n     *          SecretSubkeyPacket|\n     *          PublicKeyPacket|\n     *          SecretKeyPacket} [keyPacket] The key packet to verify the signature, instead of the primary key\n     * @param {Date} [date] - Use the given date for verification instead of the current time\n     * @param {Object} config - Full configuration\n     * @returns {Promise<Boolean>} True if the certificate is revoked.\n     * @async\n     */\n    async isRevoked(certificate, keyPacket, date = new Date(), config$1 = config) {\n        const primaryKey = this.mainKey.keyPacket;\n        return isDataRevoked(primaryKey, enums.signature.certRevocation, {\n            key: primaryKey,\n            userID: this.userID,\n            userAttribute: this.userAttribute\n        }, this.revocationSignatures, certificate, keyPacket, date, config$1);\n    }\n    /**\n     * Verifies the user certificate.\n     * @param {SignaturePacket} certificate - A certificate of this user\n     * @param {Array<PublicKey>} verificationKeys - Array of keys to verify certificate signatures\n     * @param {Date} [date] - Use the given date instead of the current time\n     * @param {Object} config - Full configuration\n     * @returns {Promise<true|null>} true if the certificate could be verified, or null if the verification keys do not correspond to the certificate\n     * @throws if the user certificate is invalid.\n     * @async\n     */\n    async verifyCertificate(certificate, verificationKeys, date = new Date(), config) {\n        const that = this;\n        const primaryKey = this.mainKey.keyPacket;\n        const dataToVerify = {\n            userID: this.userID,\n            userAttribute: this.userAttribute,\n            key: primaryKey\n        };\n        const { issuerKeyID } = certificate;\n        const issuerKeys = verificationKeys.filter(key => key.getKeys(issuerKeyID).length > 0);\n        if (issuerKeys.length === 0) {\n            return null;\n        }\n        await Promise.all(issuerKeys.map(async (key) => {\n            const signingKey = await key.getSigningKey(issuerKeyID, certificate.created, undefined, config);\n            if (certificate.revoked || await that.isRevoked(certificate, signingKey.keyPacket, date, config)) {\n                throw new Error('User certificate is revoked');\n            }\n            try {\n                await certificate.verify(signingKey.keyPacket, enums.signature.certGeneric, dataToVerify, date, undefined, config);\n            }\n            catch (e) {\n                throw util.wrapError('User certificate is invalid', e);\n            }\n        }));\n        return true;\n    }\n    /**\n     * Verifies all user certificates\n     * @param {Array<PublicKey>} verificationKeys - Array of keys to verify certificate signatures\n     * @param {Date} [date] - Use the given date instead of the current time\n     * @param {Object} config - Full configuration\n     * @returns {Promise<Array<{\n     *   keyID: module:type/keyid~KeyID,\n     *   valid: Boolean | null\n     * }>>} List of signer's keyID and validity of signature.\n     *      Signature validity is null if the verification keys do not correspond to the certificate.\n     * @async\n     */\n    async verifyAllCertifications(verificationKeys, date = new Date(), config) {\n        const that = this;\n        const certifications = this.selfCertifications.concat(this.otherCertifications);\n        return Promise.all(certifications.map(async (certification) => ({\n            keyID: certification.issuerKeyID,\n            valid: await that.verifyCertificate(certification, verificationKeys, date, config).catch(() => false)\n        })));\n    }\n    /**\n     * Verify User. Checks for existence of self signatures, revocation signatures\n     * and validity of self signature.\n     * @param {Date} date - Use the given date instead of the current time\n     * @param {Object} config - Full configuration\n     * @returns {Promise<true>} Status of user.\n     * @throws {Error} if there are no valid self signatures.\n     * @async\n     */\n    async verify(date = new Date(), config) {\n        if (!this.selfCertifications.length) {\n            throw new Error('No self-certifications found');\n        }\n        const that = this;\n        const primaryKey = this.mainKey.keyPacket;\n        const dataToVerify = {\n            userID: this.userID,\n            userAttribute: this.userAttribute,\n            key: primaryKey\n        };\n        // TODO replace when Promise.some or Promise.any are implemented\n        let exception;\n        for (let i = this.selfCertifications.length - 1; i >= 0; i--) {\n            try {\n                const selfCertification = this.selfCertifications[i];\n                if (selfCertification.revoked || await that.isRevoked(selfCertification, undefined, date, config)) {\n                    throw new Error('Self-certification is revoked');\n                }\n                try {\n                    await selfCertification.verify(primaryKey, enums.signature.certGeneric, dataToVerify, date, undefined, config);\n                }\n                catch (e) {\n                    throw util.wrapError('Self-certification is invalid', e);\n                }\n                return true;\n            }\n            catch (e) {\n                exception = e;\n            }\n        }\n        throw exception;\n    }\n    /**\n     * Update user with new components from specified user\n     * @param {User} sourceUser - Source user to merge\n     * @param {Date} date - Date to verify the validity of signatures\n     * @param {Object} config - Full configuration\n     * @returns {Promise<undefined>}\n     * @async\n     */\n    async update(sourceUser, date, config) {\n        const primaryKey = this.mainKey.keyPacket;\n        const dataToVerify = {\n            userID: this.userID,\n            userAttribute: this.userAttribute,\n            key: primaryKey\n        };\n        // self signatures\n        await mergeSignatures(sourceUser, this, 'selfCertifications', date, async function (srcSelfSig) {\n            try {\n                await srcSelfSig.verify(primaryKey, enums.signature.certGeneric, dataToVerify, date, false, config);\n                return true;\n            }\n            catch {\n                return false;\n            }\n        });\n        // other signatures\n        await mergeSignatures(sourceUser, this, 'otherCertifications', date);\n        // revocation signatures\n        await mergeSignatures(sourceUser, this, 'revocationSignatures', date, function (srcRevSig) {\n            return isDataRevoked(primaryKey, enums.signature.certRevocation, dataToVerify, [srcRevSig], undefined, undefined, date, config);\n        });\n    }\n    /**\n     * Revokes the user\n     * @param {SecretKeyPacket} primaryKey - decrypted private primary key for revocation\n     * @param {Object} reasonForRevocation - optional, object indicating the reason for revocation\n     * @param  {module:enums.reasonForRevocation} reasonForRevocation.flag optional, flag indicating the reason for revocation\n     * @param  {String} reasonForRevocation.string optional, string explaining the reason for revocation\n     * @param {Date} date - optional, override the creationtime of the revocation signature\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<User>} New user with revocation signature.\n     * @async\n     */\n    async revoke(primaryKey, { flag: reasonForRevocationFlag = enums.reasonForRevocation.noReason, string: reasonForRevocationString = '' } = {}, date = new Date(), config$1 = config) {\n        const dataToSign = {\n            userID: this.userID,\n            userAttribute: this.userAttribute,\n            key: primaryKey\n        };\n        const user = new User(dataToSign.userID || dataToSign.userAttribute, this.mainKey);\n        user.revocationSignatures.push(await createSignaturePacket(dataToSign, [], primaryKey, {\n            signatureType: enums.signature.certRevocation,\n            reasonForRevocationFlag: enums.write(enums.reasonForRevocation, reasonForRevocationFlag),\n            reasonForRevocationString\n        }, date, undefined, undefined, false, config$1));\n        await user.update(this);\n        return user;\n    }\n}\n\n/**\n * @module key/Subkey\n * @access private\n */\n/**\n * Class that represents a subkey packet and the relevant signatures.\n * @borrows PublicSubkeyPacket#getKeyID as Subkey#getKeyID\n * @borrows PublicSubkeyPacket#getFingerprint as Subkey#getFingerprint\n * @borrows PublicSubkeyPacket#hasSameFingerprintAs as Subkey#hasSameFingerprintAs\n * @borrows PublicSubkeyPacket#getAlgorithmInfo as Subkey#getAlgorithmInfo\n * @borrows PublicSubkeyPacket#getCreationTime as Subkey#getCreationTime\n * @borrows PublicSubkeyPacket#isDecrypted as Subkey#isDecrypted\n */\nclass Subkey {\n    /**\n     * @param {SecretSubkeyPacket|PublicSubkeyPacket} subkeyPacket - subkey packet to hold in the Subkey\n     * @param {Key} mainKey - reference to main Key object, containing the primary key packet corresponding to the subkey\n     */\n    constructor(subkeyPacket, mainKey) {\n        this.keyPacket = subkeyPacket;\n        this.bindingSignatures = [];\n        this.revocationSignatures = [];\n        this.mainKey = mainKey;\n    }\n    /**\n     * Transforms structured subkey data to packetlist\n     * @returns {PacketList}\n     */\n    toPacketList() {\n        const packetlist = new PacketList();\n        packetlist.push(this.keyPacket);\n        packetlist.push(...this.revocationSignatures);\n        packetlist.push(...this.bindingSignatures);\n        return packetlist;\n    }\n    /**\n     * Shallow clone\n     * @return {Subkey}\n     */\n    clone() {\n        const subkey = new Subkey(this.keyPacket, this.mainKey);\n        subkey.bindingSignatures = [...this.bindingSignatures];\n        subkey.revocationSignatures = [...this.revocationSignatures];\n        return subkey;\n    }\n    /**\n     * Checks if a binding signature of a subkey is revoked\n     * @param {SignaturePacket} signature - The binding signature to verify\n     * @param  {PublicSubkeyPacket|\n     *          SecretSubkeyPacket|\n     *          PublicKeyPacket|\n     *          SecretKeyPacket} key, optional The key to verify the signature\n     * @param {Date} [date] - Use the given date for verification instead of the current time\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Boolean>} True if the binding signature is revoked.\n     * @async\n     */\n    async isRevoked(signature, key, date = new Date(), config$1 = config) {\n        const primaryKey = this.mainKey.keyPacket;\n        return isDataRevoked(primaryKey, enums.signature.subkeyRevocation, {\n            key: primaryKey,\n            bind: this.keyPacket\n        }, this.revocationSignatures, signature, key, date, config$1);\n    }\n    /**\n     * Verify subkey. Checks for revocation signatures, expiration time\n     * and valid binding signature.\n     * @param {Date} date - Use the given date instead of the current time\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<SignaturePacket>}\n     * @throws {Error}           if the subkey is invalid.\n     * @async\n     */\n    async verify(date = new Date(), config$1 = config) {\n        const primaryKey = this.mainKey.keyPacket;\n        const dataToVerify = { key: primaryKey, bind: this.keyPacket };\n        // check subkey binding signatures\n        const bindingSignature = await getLatestValidSignature(this.bindingSignatures, primaryKey, enums.signature.subkeyBinding, dataToVerify, date, config$1);\n        // check binding signature is not revoked\n        if (bindingSignature.revoked || await this.isRevoked(bindingSignature, null, date, config$1)) {\n            throw new Error('Subkey is revoked');\n        }\n        // check for expiration time\n        if (isDataExpired(this.keyPacket, bindingSignature, date)) {\n            throw new Error('Subkey is expired');\n        }\n        return bindingSignature;\n    }\n    /**\n     * Returns the expiration time of the subkey or Infinity if key does not expire.\n     * Returns null if the subkey is invalid.\n     * @param {Date} date - Use the given date instead of the current time\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Date | Infinity | null>}\n     * @async\n     */\n    async getExpirationTime(date = new Date(), config$1 = config) {\n        const primaryKey = this.mainKey.keyPacket;\n        const dataToVerify = { key: primaryKey, bind: this.keyPacket };\n        let bindingSignature;\n        try {\n            bindingSignature = await getLatestValidSignature(this.bindingSignatures, primaryKey, enums.signature.subkeyBinding, dataToVerify, date, config$1);\n        }\n        catch {\n            return null;\n        }\n        const keyExpiry = getKeyExpirationTime(this.keyPacket, bindingSignature);\n        const sigExpiry = bindingSignature.getExpirationTime();\n        return keyExpiry < sigExpiry ? keyExpiry : sigExpiry;\n    }\n    /**\n     * Update subkey with new components from specified subkey\n     * @param {Subkey} subkey - Source subkey to merge\n     * @param {Date} [date] - Date to verify validity of signatures\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @throws {Error} if update failed\n     * @async\n     */\n    async update(subkey, date = new Date(), config$1 = config) {\n        const primaryKey = this.mainKey.keyPacket;\n        if (!this.hasSameFingerprintAs(subkey)) {\n            throw new Error('Subkey update method: fingerprints of subkeys not equal');\n        }\n        // key packet\n        if (this.keyPacket.constructor.tag === enums.packet.publicSubkey &&\n            subkey.keyPacket.constructor.tag === enums.packet.secretSubkey) {\n            this.keyPacket = subkey.keyPacket;\n        }\n        // update missing binding signatures\n        const that = this;\n        const dataToVerify = { key: primaryKey, bind: that.keyPacket };\n        await mergeSignatures(subkey, this, 'bindingSignatures', date, async function (srcBindSig) {\n            for (let i = 0; i < that.bindingSignatures.length; i++) {\n                if (that.bindingSignatures[i].issuerKeyID.equals(srcBindSig.issuerKeyID)) {\n                    if (srcBindSig.created > that.bindingSignatures[i].created) {\n                        that.bindingSignatures[i] = srcBindSig;\n                    }\n                    return false;\n                }\n            }\n            try {\n                await srcBindSig.verify(primaryKey, enums.signature.subkeyBinding, dataToVerify, date, undefined, config$1);\n                return true;\n            }\n            catch {\n                return false;\n            }\n        });\n        // revocation signatures\n        await mergeSignatures(subkey, this, 'revocationSignatures', date, function (srcRevSig) {\n            return isDataRevoked(primaryKey, enums.signature.subkeyRevocation, dataToVerify, [srcRevSig], undefined, undefined, date, config$1);\n        });\n    }\n    /**\n     * Revokes the subkey\n     * @param {SecretKeyPacket} primaryKey - decrypted private primary key for revocation\n     * @param {Object} reasonForRevocation - optional, object indicating the reason for revocation\n     * @param  {module:enums.reasonForRevocation} reasonForRevocation.flag optional, flag indicating the reason for revocation\n     * @param  {String} reasonForRevocation.string optional, string explaining the reason for revocation\n     * @param {Date} date - optional, override the creationtime of the revocation signature\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Subkey>} New subkey with revocation signature.\n     * @async\n     */\n    async revoke(primaryKey, { flag: reasonForRevocationFlag = enums.reasonForRevocation.noReason, string: reasonForRevocationString = '' } = {}, date = new Date(), config$1 = config) {\n        const dataToSign = { key: primaryKey, bind: this.keyPacket };\n        const subkey = new Subkey(this.keyPacket, this.mainKey);\n        subkey.revocationSignatures.push(await createSignaturePacket(dataToSign, [], primaryKey, {\n            signatureType: enums.signature.subkeyRevocation,\n            reasonForRevocationFlag: enums.write(enums.reasonForRevocation, reasonForRevocationFlag),\n            reasonForRevocationString\n        }, date, undefined, undefined, false, config$1));\n        await subkey.update(this);\n        return subkey;\n    }\n    hasSameFingerprintAs(other) {\n        return this.keyPacket.hasSameFingerprintAs(other.keyPacket || other);\n    }\n}\n['getKeyID', 'getFingerprint', 'getAlgorithmInfo', 'getCreationTime', 'isDecrypted'].forEach(name => {\n    Subkey.prototype[name] =\n        function () {\n            return this.keyPacket[name]();\n        };\n});\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n// A key revocation certificate can contain the following packets\nconst allowedRevocationPackets = /*#__PURE__*/ util.constructAllowedPackets([SignaturePacket]);\nconst mainKeyPacketTags = new Set([enums.packet.publicKey, enums.packet.privateKey]);\nconst keyPacketTags = new Set([\n    enums.packet.publicKey, enums.packet.privateKey,\n    enums.packet.publicSubkey, enums.packet.privateSubkey\n]);\n/**\n * Abstract class that represents an OpenPGP key. Must contain a primary key.\n * Can contain additional subkeys, signatures, user ids, user attributes.\n * @borrows PublicKeyPacket#getKeyID as Key#getKeyID\n * @borrows PublicKeyPacket#getFingerprint as Key#getFingerprint\n * @borrows PublicKeyPacket#hasSameFingerprintAs as Key#hasSameFingerprintAs\n * @borrows PublicKeyPacket#getAlgorithmInfo as Key#getAlgorithmInfo\n * @borrows PublicKeyPacket#getCreationTime as Key#getCreationTime\n */\nclass Key {\n    /**\n     * Transforms packetlist to structured key data\n     * @param {PacketList} packetlist - The packets that form a key\n     * @param {Set<enums.packet>} disallowedPackets - disallowed packet tags\n     */\n    packetListToStructure(packetlist, disallowedPackets = new Set()) {\n        let user;\n        let primaryKeyID;\n        let subkey;\n        let ignoreUntil;\n        for (const packet of packetlist) {\n            if (packet instanceof UnparseablePacket) {\n                const isUnparseableKeyPacket = keyPacketTags.has(packet.tag);\n                if (isUnparseableKeyPacket && !ignoreUntil) {\n                    // Since non-key packets apply to the preceding key packet, if a (sub)key is Unparseable we must\n                    // discard all non-key packets that follow, until another (sub)key packet is found.\n                    if (mainKeyPacketTags.has(packet.tag)) {\n                        ignoreUntil = mainKeyPacketTags;\n                    }\n                    else {\n                        ignoreUntil = keyPacketTags;\n                    }\n                }\n                continue;\n            }\n            const tag = packet.constructor.tag;\n            if (ignoreUntil) {\n                if (!ignoreUntil.has(tag))\n                    continue;\n                ignoreUntil = null;\n            }\n            if (disallowedPackets.has(tag)) {\n                throw new Error(`Unexpected packet type: ${tag}`);\n            }\n            switch (tag) {\n                case enums.packet.publicKey:\n                case enums.packet.secretKey:\n                    if (this.keyPacket) {\n                        throw new Error('Key block contains multiple keys');\n                    }\n                    this.keyPacket = packet;\n                    primaryKeyID = this.getKeyID();\n                    if (!primaryKeyID) {\n                        throw new Error('Missing Key ID');\n                    }\n                    break;\n                case enums.packet.userID:\n                case enums.packet.userAttribute:\n                    user = new User(packet, this);\n                    this.users.push(user);\n                    break;\n                case enums.packet.publicSubkey:\n                case enums.packet.secretSubkey:\n                    user = null;\n                    subkey = new Subkey(packet, this);\n                    this.subkeys.push(subkey);\n                    break;\n                case enums.packet.signature:\n                    switch (packet.signatureType) {\n                        case enums.signature.certGeneric:\n                        case enums.signature.certPersona:\n                        case enums.signature.certCasual:\n                        case enums.signature.certPositive:\n                            if (!user) {\n                                util.printDebug('Dropping certification signatures without preceding user packet');\n                                continue;\n                            }\n                            if (packet.issuerKeyID.equals(primaryKeyID)) {\n                                user.selfCertifications.push(packet);\n                            }\n                            else {\n                                user.otherCertifications.push(packet);\n                            }\n                            break;\n                        case enums.signature.certRevocation:\n                            if (user) {\n                                user.revocationSignatures.push(packet);\n                            }\n                            else {\n                                this.directSignatures.push(packet);\n                            }\n                            break;\n                        case enums.signature.key:\n                            this.directSignatures.push(packet);\n                            break;\n                        case enums.signature.subkeyBinding:\n                            if (!subkey) {\n                                util.printDebug('Dropping subkey binding signature without preceding subkey packet');\n                                continue;\n                            }\n                            subkey.bindingSignatures.push(packet);\n                            break;\n                        case enums.signature.keyRevocation:\n                            this.revocationSignatures.push(packet);\n                            break;\n                        case enums.signature.subkeyRevocation:\n                            if (!subkey) {\n                                util.printDebug('Dropping subkey revocation signature without preceding subkey packet');\n                                continue;\n                            }\n                            subkey.revocationSignatures.push(packet);\n                            break;\n                    }\n                    break;\n            }\n        }\n    }\n    /**\n     * Transforms structured key data to packetlist\n     * @returns {PacketList} The packets that form a key.\n     */\n    toPacketList() {\n        const packetlist = new PacketList();\n        packetlist.push(this.keyPacket);\n        packetlist.push(...this.revocationSignatures);\n        packetlist.push(...this.directSignatures);\n        this.users.map(user => packetlist.push(...user.toPacketList()));\n        this.subkeys.map(subkey => packetlist.push(...subkey.toPacketList()));\n        return packetlist;\n    }\n    /**\n     * Clones the key object. The copy is shallow, as it references the same packet objects as the original. However, if the top-level API is used, the two key instances are effectively independent.\n     * @param {Boolean} [clonePrivateParams=false] Only relevant for private keys: whether the secret key paramenters should be deeply copied. This is needed if e.g. `encrypt()` is to be called either on the clone or the original key.\n     * @returns {Promise<Key>} Clone of the key.\n     */\n    clone(clonePrivateParams = false) {\n        const key = new this.constructor(this.toPacketList());\n        if (clonePrivateParams) {\n            key.getKeys().forEach(k => {\n                // shallow clone the key packets\n                k.keyPacket = Object.create(Object.getPrototypeOf(k.keyPacket), Object.getOwnPropertyDescriptors(k.keyPacket));\n                if (!k.keyPacket.isDecrypted())\n                    return;\n                // deep clone the private params, which are cleared during encryption\n                const privateParams = {};\n                Object.keys(k.keyPacket.privateParams).forEach(name => {\n                    privateParams[name] = new Uint8Array(k.keyPacket.privateParams[name]);\n                });\n                k.keyPacket.privateParams = privateParams;\n            });\n        }\n        return key;\n    }\n    /**\n     * Returns an array containing all public or private subkeys matching keyID;\n     * If no keyID is given, returns all subkeys.\n     * @param {type/keyID} [keyID] - key ID to look for\n     * @returns {Array<Subkey>} array of subkeys\n     */\n    getSubkeys(keyID = null) {\n        const subkeys = this.subkeys.filter(subkey => (!keyID || subkey.getKeyID().equals(keyID, true)));\n        return subkeys;\n    }\n    /**\n     * Returns an array containing all public or private keys matching keyID.\n     * If no keyID is given, returns all keys, starting with the primary key.\n     * @param {type/keyid~KeyID} [keyID] - key ID to look for\n     * @returns {Array<Key|Subkey>} array of keys\n     */\n    getKeys(keyID = null) {\n        const keys = [];\n        if (!keyID || this.getKeyID().equals(keyID, true)) {\n            keys.push(this);\n        }\n        return keys.concat(this.getSubkeys(keyID));\n    }\n    /**\n     * Returns key IDs of all keys\n     * @returns {Array<module:type/keyid~KeyID>}\n     */\n    getKeyIDs() {\n        return this.getKeys().map(key => key.getKeyID());\n    }\n    /**\n     * Returns userIDs\n     * @returns {Array<string>} Array of userIDs.\n     */\n    getUserIDs() {\n        return this.users.map(user => {\n            return user.userID ? user.userID.userID : null;\n        }).filter(userID => userID !== null);\n    }\n    /**\n     * Returns binary encoded key\n     * @returns {Uint8Array} Binary key.\n     */\n    write() {\n        return this.toPacketList().write();\n    }\n    /**\n     * Returns last created key or key by given keyID that is available for signing and verification\n     * @param  {module:type/keyid~KeyID} [keyID] - key ID of a specific key to retrieve\n     * @param  {Date} [date] - use the fiven date date to  to check key validity instead of the current date\n     * @param  {Object} [userID] - filter keys for the given user ID\n     * @param  {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Key|Subkey>} signing key\n     * @throws if no valid signing key was found\n     * @async\n     */\n    async getSigningKey(keyID = null, date = new Date(), userID = {}, config$1 = config) {\n        await this.verifyPrimaryKey(date, userID, config$1);\n        const primaryKey = this.keyPacket;\n        try {\n            checkKeyRequirements(primaryKey, config$1);\n        }\n        catch (err) {\n            throw util.wrapError('Could not verify primary key', err);\n        }\n        // Prefer the most recently created valid subkey, or the subkey with\n        // the highest algorithm ID in case of equal creation timestamps.\n        const subkeys = this.subkeys.slice().sort((a, b) => (b.keyPacket.created - a.keyPacket.created ||\n            b.keyPacket.algorithm - a.keyPacket.algorithm));\n        let exception;\n        for (const subkey of subkeys) {\n            if (!keyID || subkey.getKeyID().equals(keyID)) {\n                try {\n                    await subkey.verify(date, config$1);\n                    const dataToVerify = { key: primaryKey, bind: subkey.keyPacket };\n                    const bindingSignature = await getLatestValidSignature(subkey.bindingSignatures, primaryKey, enums.signature.subkeyBinding, dataToVerify, date, config$1);\n                    if (!validateSigningKeyPacket(subkey.keyPacket, bindingSignature, config$1)) {\n                        continue;\n                    }\n                    if (!bindingSignature.embeddedSignature) {\n                        throw new Error('Missing embedded signature');\n                    }\n                    // verify embedded signature\n                    await getLatestValidSignature([bindingSignature.embeddedSignature], subkey.keyPacket, enums.signature.keyBinding, dataToVerify, date, config$1);\n                    checkKeyRequirements(subkey.keyPacket, config$1);\n                    return subkey;\n                }\n                catch (e) {\n                    exception = e;\n                }\n            }\n        }\n        try {\n            const selfCertification = await this.getPrimarySelfSignature(date, userID, config$1);\n            if ((!keyID || primaryKey.getKeyID().equals(keyID)) &&\n                validateSigningKeyPacket(primaryKey, selfCertification, config$1)) {\n                checkKeyRequirements(primaryKey, config$1);\n                return this;\n            }\n        }\n        catch (e) {\n            exception = e;\n        }\n        throw util.wrapError('Could not find valid signing key packet in key ' + this.getKeyID().toHex(), exception);\n    }\n    /**\n     * Returns last created key or key by given keyID that is available for encryption or decryption\n     * @param  {module:type/keyid~KeyID} [keyID] - key ID of a specific key to retrieve\n     * @param  {Date}   [date] - use the fiven date date to  to check key validity instead of the current date\n     * @param  {Object} [userID] - filter keys for the given user ID\n     * @param  {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Key|Subkey>} encryption key\n     * @throws if no valid encryption key was found\n     * @async\n     */\n    async getEncryptionKey(keyID, date = new Date(), userID = {}, config$1 = config) {\n        await this.verifyPrimaryKey(date, userID, config$1);\n        const primaryKey = this.keyPacket;\n        try {\n            checkKeyRequirements(primaryKey, config$1);\n        }\n        catch (err) {\n            throw util.wrapError('Could not verify primary key', err);\n        }\n        // Prefer the most recently created valid subkey, or the subkey with\n        // the highest algorithm ID in case of equal creation timestamps.\n        const subkeys = this.subkeys.slice().sort((a, b) => (b.keyPacket.created - a.keyPacket.created ||\n            b.keyPacket.algorithm - a.keyPacket.algorithm));\n        let exception;\n        for (const subkey of subkeys) {\n            if (!keyID || subkey.getKeyID().equals(keyID)) {\n                try {\n                    await subkey.verify(date, config$1);\n                    const dataToVerify = { key: primaryKey, bind: subkey.keyPacket };\n                    const bindingSignature = await getLatestValidSignature(subkey.bindingSignatures, primaryKey, enums.signature.subkeyBinding, dataToVerify, date, config$1);\n                    if (validateEncryptionKeyPacket(subkey.keyPacket, bindingSignature, config$1)) {\n                        checkKeyRequirements(subkey.keyPacket, config$1);\n                        return subkey;\n                    }\n                }\n                catch (e) {\n                    exception = e;\n                }\n            }\n        }\n        try {\n            // if no valid subkey for encryption, evaluate primary key\n            const selfCertification = await this.getPrimarySelfSignature(date, userID, config$1);\n            if ((!keyID || primaryKey.getKeyID().equals(keyID)) &&\n                validateEncryptionKeyPacket(primaryKey, selfCertification, config$1)) {\n                checkKeyRequirements(primaryKey, config$1);\n                return this;\n            }\n        }\n        catch (e) {\n            exception = e;\n        }\n        throw util.wrapError('Could not find valid encryption key packet in key ' + this.getKeyID().toHex(), exception);\n    }\n    /**\n     * Checks if a signature on a key is revoked\n     * @param {SignaturePacket} signature - The signature to verify\n     * @param  {PublicSubkeyPacket|\n     *          SecretSubkeyPacket|\n     *          PublicKeyPacket|\n     *          SecretKeyPacket} key, optional The key to verify the signature\n     * @param {Date} [date] - Use the given date for verification, instead of the current time\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Boolean>} True if the certificate is revoked.\n     * @async\n     */\n    async isRevoked(signature, key, date = new Date(), config$1 = config) {\n        return isDataRevoked(this.keyPacket, enums.signature.keyRevocation, { key: this.keyPacket }, this.revocationSignatures, signature, key, date, config$1);\n    }\n    /**\n     * Verify primary key. Checks for revocation signatures, expiration time\n     * and valid self signature. Throws if the primary key is invalid.\n     * @param {Date} [date] - Use the given date for verification instead of the current time\n     * @param {Object} [userID] - User ID\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @throws {Error} If key verification failed\n     * @async\n     */\n    async verifyPrimaryKey(date = new Date(), userID = {}, config$1 = config) {\n        const primaryKey = this.keyPacket;\n        // check for key revocation signatures\n        if (await this.isRevoked(null, null, date, config$1)) {\n            throw new Error('Primary key is revoked');\n        }\n        // check for valid, unrevoked, unexpired self signature\n        const selfCertification = await this.getPrimarySelfSignature(date, userID, config$1);\n        // check for expiration time in binding signatures\n        if (isDataExpired(primaryKey, selfCertification, date)) {\n            throw new Error('Primary key is expired');\n        }\n        if (primaryKey.version !== 6) {\n            // check for expiration time in direct signatures (for V6 keys, the above already did so)\n            const directSignature = await getLatestValidSignature(this.directSignatures, primaryKey, enums.signature.key, { key: primaryKey }, date, config$1).catch(() => { }); // invalid signatures are discarded, to avoid breaking the key\n            if (directSignature && isDataExpired(primaryKey, directSignature, date)) {\n                throw new Error('Primary key is expired');\n            }\n        }\n    }\n    /**\n     * Returns the expiration date of the primary key, considering self-certifications and direct-key signatures.\n     * Returns `Infinity` if the key doesn't expire, or `null` if the key is revoked or invalid.\n     * @param  {Object} [userID] - User ID to consider instead of the primary user\n     * @param  {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Date | Infinity | null>}\n     * @async\n     */\n    async getExpirationTime(userID, config$1 = config) {\n        let primaryKeyExpiry;\n        try {\n            const selfCertification = await this.getPrimarySelfSignature(null, userID, config$1);\n            const selfSigKeyExpiry = getKeyExpirationTime(this.keyPacket, selfCertification);\n            const selfSigExpiry = selfCertification.getExpirationTime();\n            const directSignature = this.keyPacket.version !== 6 && // For V6 keys, the above already returns the direct-key signature.\n                await getLatestValidSignature(this.directSignatures, this.keyPacket, enums.signature.key, { key: this.keyPacket }, null, config$1).catch(() => { });\n            if (directSignature) {\n                const directSigKeyExpiry = getKeyExpirationTime(this.keyPacket, directSignature);\n                // We do not support the edge case where the direct signature expires, since it would invalidate the corresponding key expiration,\n                // causing a discountinous validy period for the key\n                primaryKeyExpiry = Math.min(selfSigKeyExpiry, selfSigExpiry, directSigKeyExpiry);\n            }\n            else {\n                primaryKeyExpiry = selfSigKeyExpiry < selfSigExpiry ? selfSigKeyExpiry : selfSigExpiry;\n            }\n        }\n        catch {\n            primaryKeyExpiry = null;\n        }\n        return util.normalizeDate(primaryKeyExpiry);\n    }\n    /**\n     * For V4 keys, returns the self-signature of the primary user.\n     * For V5 keys, returns the latest valid direct-key self-signature.\n     * This self-signature is to be used to check the key expiration,\n     * algorithm preferences, and so on.\n     * @param {Date} [date] - Use the given date for verification instead of the current time\n     * @param {Object} [userID] - User ID to get instead of the primary user for V4 keys, if it exists\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<SignaturePacket>} The primary self-signature\n     * @async\n     */\n    async getPrimarySelfSignature(date = new Date(), userID = {}, config$1 = config) {\n        const primaryKey = this.keyPacket;\n        if (primaryKey.version === 6) {\n            return getLatestValidSignature(this.directSignatures, primaryKey, enums.signature.key, { key: primaryKey }, date, config$1);\n        }\n        const { selfCertification } = await this.getPrimaryUser(date, userID, config$1);\n        return selfCertification;\n    }\n    /**\n     * Returns primary user and most significant (latest valid) self signature\n     * - if multiple primary users exist, returns the one with the latest self signature\n     * - otherwise, returns the user with the latest self signature\n     * @param {Date} [date] - Use the given date for verification instead of the current time\n     * @param {Object} [userID] - User ID to get instead of the primary user, if it exists\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<{\n     *   user: User,\n     *   selfCertification: SignaturePacket\n     * }>} The primary user and the self signature\n     * @async\n     */\n    async getPrimaryUser(date = new Date(), userID = {}, config$1 = config) {\n        const primaryKey = this.keyPacket;\n        const users = [];\n        let exception;\n        for (let i = 0; i < this.users.length; i++) {\n            try {\n                const user = this.users[i];\n                if (!user.userID) {\n                    continue;\n                }\n                if ((userID.name !== undefined && user.userID.name !== userID.name) ||\n                    (userID.email !== undefined && user.userID.email !== userID.email) ||\n                    (userID.comment !== undefined && user.userID.comment !== userID.comment)) {\n                    throw new Error('Could not find user that matches that user ID');\n                }\n                const dataToVerify = { userID: user.userID, key: primaryKey };\n                const selfCertification = await getLatestValidSignature(user.selfCertifications, primaryKey, enums.signature.certGeneric, dataToVerify, date, config$1);\n                users.push({ index: i, user, selfCertification });\n            }\n            catch (e) {\n                exception = e;\n            }\n        }\n        if (!users.length) {\n            // eslint-disable-next-line @typescript-eslint/only-throw-error\n            throw exception || new Error('Could not find primary user');\n        }\n        // Update `revoked` status, whose value is discarded here but used below;\n        // see https://github.com/openpgpjs/openpgpjs/issues/880 for Promise.all motivation\n        await Promise.all(users.map(async (a) => {\n            a.selfCertification.revoked || await a.user.isRevoked(a.selfCertification, null, date, config$1);\n        }));\n        // sort by primary user flag and signature creation time\n        const primaryUser = users.sort(function (a, b) {\n            const A = a.selfCertification;\n            const B = b.selfCertification;\n            return B.revoked - A.revoked || A.isPrimaryUserID - B.isPrimaryUserID || A.created - B.created;\n        }).pop();\n        const { user, selfCertification: cert } = primaryUser;\n        if (cert.revoked || await user.isRevoked(cert, null, date, config$1)) {\n            throw new Error('Primary user is revoked');\n        }\n        return primaryUser;\n    }\n    /**\n     * Update key with new components from specified key with same key ID:\n     * users, subkeys, certificates are merged into the destination key,\n     * duplicates and expired signatures are ignored.\n     *\n     * If the source key is a private key and the destination key is public,\n     * a private key is returned.\n     * @param {Key} sourceKey - Source key to merge\n     * @param {Date} [date] - Date to verify validity of signatures and keys\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Key>} updated key\n     * @async\n     */\n    async update(sourceKey, date = new Date(), config$1 = config) {\n        if (!this.hasSameFingerprintAs(sourceKey)) {\n            throw new Error('Primary key fingerprints must be equal to update the key');\n        }\n        if (!this.isPrivate() && sourceKey.isPrivate()) {\n            // check for equal subkey packets\n            const equal = (this.subkeys.length === sourceKey.subkeys.length) &&\n                (this.subkeys.every(destSubkey => {\n                    return sourceKey.subkeys.some(srcSubkey => {\n                        return destSubkey.hasSameFingerprintAs(srcSubkey);\n                    });\n                }));\n            if (!equal) {\n                throw new Error('Cannot update public key with private key if subkeys mismatch');\n            }\n            return sourceKey.update(this, config$1);\n        }\n        // from here on, either:\n        // - destination key is private, source key is public\n        // - the keys are of the same type\n        // hence we don't need to convert the destination key type\n        const updatedKey = this.clone();\n        // revocation signatures\n        await mergeSignatures(sourceKey, updatedKey, 'revocationSignatures', date, srcRevSig => {\n            return isDataRevoked(updatedKey.keyPacket, enums.signature.keyRevocation, updatedKey, [srcRevSig], null, sourceKey.keyPacket, date, config$1);\n        });\n        // direct signatures\n        await mergeSignatures(sourceKey, updatedKey, 'directSignatures', date);\n        // update users\n        await Promise.all(sourceKey.users.map(async (srcUser) => {\n            // multiple users with the same ID/attribute are not explicitly disallowed by the spec\n            // hence we support them, just in case\n            const usersToUpdate = updatedKey.users.filter(dstUser => ((srcUser.userID && srcUser.userID.equals(dstUser.userID)) ||\n                (srcUser.userAttribute && srcUser.userAttribute.equals(dstUser.userAttribute))));\n            if (usersToUpdate.length > 0) {\n                await Promise.all(usersToUpdate.map(userToUpdate => userToUpdate.update(srcUser, date, config$1)));\n            }\n            else {\n                const newUser = srcUser.clone();\n                newUser.mainKey = updatedKey;\n                updatedKey.users.push(newUser);\n            }\n        }));\n        // update subkeys\n        await Promise.all(sourceKey.subkeys.map(async (srcSubkey) => {\n            // multiple subkeys with same fingerprint might be preset\n            const subkeysToUpdate = updatedKey.subkeys.filter(dstSubkey => (dstSubkey.hasSameFingerprintAs(srcSubkey)));\n            if (subkeysToUpdate.length > 0) {\n                await Promise.all(subkeysToUpdate.map(subkeyToUpdate => subkeyToUpdate.update(srcSubkey, date, config$1)));\n            }\n            else {\n                const newSubkey = srcSubkey.clone();\n                newSubkey.mainKey = updatedKey;\n                updatedKey.subkeys.push(newSubkey);\n            }\n        }));\n        return updatedKey;\n    }\n    /**\n     * Get revocation certificate from a revoked key.\n     *   (To get a revocation certificate for an unrevoked key, call revoke() first.)\n     * @param {Date} date - Use the given date instead of the current time\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<String>} Armored revocation certificate.\n     * @async\n     */\n    async getRevocationCertificate(date = new Date(), config$1 = config) {\n        const dataToVerify = { key: this.keyPacket };\n        const revocationSignature = await getLatestValidSignature(this.revocationSignatures, this.keyPacket, enums.signature.keyRevocation, dataToVerify, date, config$1);\n        const packetlist = new PacketList();\n        packetlist.push(revocationSignature);\n        // An ASCII-armored Transferable Public Key packet sequence of a v6 key MUST NOT contain a CRC24 footer.\n        const emitChecksum = this.keyPacket.version !== 6;\n        return armor(enums.armor.publicKey, packetlist.write(), null, null, 'This is a revocation certificate', emitChecksum, config$1);\n    }\n    /**\n     * Applies a revocation certificate to a key\n     * This adds the first signature packet in the armored text to the key,\n     * if it is a valid revocation signature.\n     * @param {String} revocationCertificate - armored revocation certificate\n     * @param {Date} [date] - Date to verify the certificate\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Key>} Revoked key.\n     * @async\n     */\n    async applyRevocationCertificate(revocationCertificate, date = new Date(), config$1 = config) {\n        const input = await unarmor(revocationCertificate);\n        const packetlist = await PacketList.fromBinary(input.data, allowedRevocationPackets, config$1);\n        const revocationSignature = packetlist.findPacket(enums.packet.signature);\n        if (!revocationSignature || revocationSignature.signatureType !== enums.signature.keyRevocation) {\n            throw new Error('Could not find revocation signature packet');\n        }\n        if (!revocationSignature.issuerKeyID.equals(this.getKeyID())) {\n            throw new Error('Revocation signature does not match key');\n        }\n        try {\n            await revocationSignature.verify(this.keyPacket, enums.signature.keyRevocation, { key: this.keyPacket }, date, undefined, config$1);\n        }\n        catch (e) {\n            throw util.wrapError('Could not verify revocation signature', e);\n        }\n        const key = this.clone();\n        key.revocationSignatures.push(revocationSignature);\n        return key;\n    }\n    /**\n     * Signs primary user of key\n     * @param {Array<PrivateKey>} privateKeys - decrypted private keys for signing\n     * @param {Date} [date] - Use the given date for verification instead of the current time\n     * @param {Object} [userID] - User ID to get instead of the primary user, if it exists\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Key>} Key with new certificate signature.\n     * @async\n     */\n    async signPrimaryUser(privateKeys, date, userID, config$1 = config) {\n        const { index, user } = await this.getPrimaryUser(date, userID, config$1);\n        const userSign = await user.certify(privateKeys, date, config$1);\n        const key = this.clone();\n        key.users[index] = userSign;\n        return key;\n    }\n    /**\n     * Signs all users of key\n     * @param {Array<PrivateKey>} privateKeys - decrypted private keys for signing\n     * @param {Date} [date] - Use the given date for signing, instead of the current time\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Key>} Key with new certificate signature.\n     * @async\n     */\n    async signAllUsers(privateKeys, date = new Date(), config$1 = config) {\n        const key = this.clone();\n        key.users = await Promise.all(this.users.map(function (user) {\n            return user.certify(privateKeys, date, config$1);\n        }));\n        return key;\n    }\n    /**\n     * Verifies primary user of key\n     * - if no arguments are given, verifies the self certificates;\n     * - otherwise, verifies all certificates signed with given keys.\n     * @param {Array<PublicKey>} [verificationKeys] - array of keys to verify certificate signatures, instead of the primary key\n     * @param {Date} [date] - Use the given date for verification instead of the current time\n     * @param {Object} [userID] - User ID to get instead of the primary user, if it exists\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Array<{\n     *   keyID: module:type/keyid~KeyID,\n     *   valid: Boolean|null\n     * }>>} List of signer's keyID and validity of signature.\n     *      Signature validity is null if the verification keys do not correspond to the certificate.\n     * @async\n     */\n    async verifyPrimaryUser(verificationKeys, date = new Date(), userID, config$1 = config) {\n        const primaryKey = this.keyPacket;\n        const { user } = await this.getPrimaryUser(date, userID, config$1);\n        const results = verificationKeys ?\n            await user.verifyAllCertifications(verificationKeys, date, config$1) :\n            [{ keyID: primaryKey.getKeyID(), valid: await user.verify(date, config$1).catch(() => false) }];\n        return results;\n    }\n    /**\n     * Verifies all users of key\n     * - if no arguments are given, verifies the self certificates;\n     * - otherwise, verifies all certificates signed with given keys.\n     * @param {Array<PublicKey>} [verificationKeys] - array of keys to verify certificate signatures\n     * @param {Date} [date] - Use the given date for verification instead of the current time\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Array<{\n     *   userID: String,\n     *   keyID: module:type/keyid~KeyID,\n     *   valid: Boolean|null\n     * }>>} List of userID, signer's keyID and validity of signature.\n     *      Signature validity is null if the verification keys do not correspond to the certificate.\n     * @async\n     */\n    async verifyAllUsers(verificationKeys, date = new Date(), config$1 = config) {\n        const primaryKey = this.keyPacket;\n        const results = [];\n        await Promise.all(this.users.map(async (user) => {\n            const signatures = verificationKeys ?\n                await user.verifyAllCertifications(verificationKeys, date, config$1) :\n                [{ keyID: primaryKey.getKeyID(), valid: await user.verify(date, config$1).catch(() => false) }];\n            results.push(...signatures.map(signature => ({\n                userID: user.userID ? user.userID.userID : null,\n                userAttribute: user.userAttribute,\n                keyID: signature.keyID,\n                valid: signature.valid\n            })));\n        }));\n        return results;\n    }\n}\n['getKeyID', 'getFingerprint', 'getAlgorithmInfo', 'getCreationTime', 'hasSameFingerprintAs'].forEach(name => {\n    Key.prototype[name] = Subkey.prototype[name];\n});\n\n/** @access public */\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n/**\n * Class that represents an OpenPGP Public Key\n */\nclass PublicKey extends Key {\n    /**\n     * @param {PacketList} packetlist - The packets that form this key\n     */\n    constructor(packetlist) {\n        super();\n        this.keyPacket = null;\n        this.revocationSignatures = [];\n        this.directSignatures = [];\n        this.users = [];\n        this.subkeys = [];\n        if (packetlist) {\n            this.packetListToStructure(packetlist, new Set([enums.packet.secretKey, enums.packet.secretSubkey]));\n            if (!this.keyPacket) {\n                throw new Error('Invalid key: missing public-key packet');\n            }\n        }\n    }\n    /**\n     * Returns true if this is a private key\n     * @returns {false}\n     */\n    isPrivate() {\n        return false;\n    }\n    /**\n     * Returns key as public key (shallow copy)\n     * @returns {PublicKey} New public Key\n     */\n    toPublic() {\n        return this;\n    }\n    /**\n     * Returns ASCII armored text of key\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {ReadableStream<String>} ASCII armor.\n     */\n    armor(config$1 = config) {\n        // An ASCII-armored Transferable Public Key packet sequence of a v6 key MUST NOT contain a CRC24 footer.\n        const emitChecksum = this.keyPacket.version !== 6;\n        return armor(enums.armor.publicKey, this.toPacketList().write(), undefined, undefined, undefined, emitChecksum, config$1);\n    }\n}\n\n/** @access public */\n/**\n * Class that represents an OpenPGP Private key\n */\nclass PrivateKey extends PublicKey {\n    /**\n   * @param {PacketList} packetlist - The packets that form this key\n   */\n    constructor(packetlist) {\n        super();\n        this.packetListToStructure(packetlist, new Set([enums.packet.publicKey, enums.packet.publicSubkey]));\n        if (!this.keyPacket) {\n            throw new Error('Invalid key: missing private-key packet');\n        }\n    }\n    /**\n     * Returns true if this is a private key\n     * @returns {Boolean}\n     */\n    isPrivate() {\n        return true;\n    }\n    /**\n     * Returns key as public key (shallow copy)\n     * @returns {PublicKey} New public Key\n     */\n    toPublic() {\n        const packetlist = new PacketList();\n        const keyPackets = this.toPacketList();\n        for (const keyPacket of keyPackets) {\n            switch (keyPacket.constructor.tag) {\n                case enums.packet.secretKey: {\n                    const pubKeyPacket = PublicKeyPacket.fromSecretKeyPacket(keyPacket);\n                    packetlist.push(pubKeyPacket);\n                    break;\n                }\n                case enums.packet.secretSubkey: {\n                    const pubSubkeyPacket = PublicSubkeyPacket.fromSecretSubkeyPacket(keyPacket);\n                    packetlist.push(pubSubkeyPacket);\n                    break;\n                }\n                default:\n                    packetlist.push(keyPacket);\n            }\n        }\n        return new PublicKey(packetlist);\n    }\n    /**\n     * Returns ASCII armored text of key\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {ReadableStream<String>} ASCII armor.\n     */\n    armor(config$1 = config) {\n        // An ASCII-armored Transferable Public Key packet sequence of a v6 key MUST NOT contain a CRC24 footer.\n        const emitChecksum = this.keyPacket.version !== 6;\n        return armor(enums.armor.privateKey, this.toPacketList().write(), undefined, undefined, undefined, emitChecksum, config$1);\n    }\n    /**\n     * Returns all keys that are available for decryption, matching the keyID when given\n     * This is useful to retrieve keys for session key decryption\n     * @param  {module:type/keyid~KeyID} keyID, optional\n     * @param  {Date}              date, optional\n     * @param  {String}            userID, optional\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Array<Key|Subkey>>} Array of decryption keys.\n     * @throws {Error} if no decryption key is found\n     * @async\n     */\n    async getDecryptionKeys(keyID, date = new Date(), userID = {}, config$1 = config) {\n        const primaryKey = this.keyPacket;\n        const keys = [];\n        let exception = null;\n        for (let i = 0; i < this.subkeys.length; i++) {\n            if (!keyID || this.subkeys[i].getKeyID().equals(keyID, true)) {\n                if (this.subkeys[i].keyPacket.isDummy()) {\n                    exception = exception || new Error('Gnu-dummy key packets cannot be used for decryption');\n                    continue;\n                }\n                try {\n                    const dataToVerify = { key: primaryKey, bind: this.subkeys[i].keyPacket };\n                    const bindingSignature = await getLatestValidSignature(this.subkeys[i].bindingSignatures, primaryKey, enums.signature.subkeyBinding, dataToVerify, date, config$1);\n                    if (validateDecryptionKeyPacket(this.subkeys[i].keyPacket, bindingSignature, config$1)) {\n                        keys.push(this.subkeys[i]);\n                    }\n                }\n                catch (e) {\n                    exception = e;\n                }\n            }\n        }\n        // evaluate primary key\n        const selfCertification = await this.getPrimarySelfSignature(date, userID, config$1);\n        if ((!keyID || primaryKey.getKeyID().equals(keyID, true)) && validateDecryptionKeyPacket(primaryKey, selfCertification, config$1)) {\n            if (primaryKey.isDummy()) {\n                exception = exception || new Error('Gnu-dummy key packets cannot be used for decryption');\n            }\n            else {\n                keys.push(this);\n            }\n        }\n        if (keys.length === 0) {\n            // eslint-disable-next-line @typescript-eslint/only-throw-error\n            throw exception || new Error('No decryption key packets found');\n        }\n        return keys;\n    }\n    /**\n     * Returns true if the primary key or any subkey is decrypted.\n     * A dummy key is considered encrypted.\n     */\n    isDecrypted() {\n        return this.getKeys().some(({ keyPacket }) => keyPacket.isDecrypted());\n    }\n    /**\n     * Check whether the private and public primary key parameters correspond\n     * Together with verification of binding signatures, this guarantees key integrity\n     * In case of gnu-dummy primary key, it is enough to validate any signing subkeys\n     *   otherwise all encryption subkeys are validated\n     * If only gnu-dummy keys are found, we cannot properly validate so we throw an error\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @throws {Error} if validation was not successful and the key cannot be trusted\n     * @async\n     */\n    async validate(config$1 = config) {\n        if (!this.isPrivate()) {\n            throw new Error('Cannot validate a public key');\n        }\n        let signingKeyPacket;\n        if (!this.keyPacket.isDummy()) {\n            signingKeyPacket = this.keyPacket;\n        }\n        else {\n            /**\n             * It is enough to validate any signing keys\n             * since its binding signatures are also checked\n             */\n            const signingKey = await this.getSigningKey(null, null, undefined, { ...config$1, rejectPublicKeyAlgorithms: new Set(), minRSABits: 0 });\n            // This could again be a dummy key\n            if (signingKey && !signingKey.keyPacket.isDummy()) {\n                signingKeyPacket = signingKey.keyPacket;\n            }\n        }\n        if (signingKeyPacket) {\n            return signingKeyPacket.validate();\n        }\n        else {\n            const keys = this.getKeys();\n            const allDummies = keys.map(key => key.keyPacket.isDummy()).every(Boolean);\n            if (allDummies) {\n                throw new Error('Cannot validate an all-gnu-dummy key');\n            }\n            return Promise.all(keys.map(key => key.keyPacket.validate()));\n        }\n    }\n    /**\n     * Clear private key parameters\n     */\n    clearPrivateParams() {\n        this.getKeys().forEach(({ keyPacket }) => {\n            if (keyPacket.isDecrypted()) {\n                keyPacket.clearPrivateParams();\n            }\n        });\n    }\n    /**\n     * Revokes the key\n     * @param {Object} reasonForRevocation - optional, object indicating the reason for revocation\n     * @param  {module:enums.reasonForRevocation} reasonForRevocation.flag optional, flag indicating the reason for revocation\n     * @param  {String} reasonForRevocation.string optional, string explaining the reason for revocation\n     * @param {Date} date - optional, override the creationtime of the revocation signature\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<PrivateKey>} New key with revocation signature.\n     * @async\n     */\n    async revoke({ flag: reasonForRevocationFlag = enums.reasonForRevocation.noReason, string: reasonForRevocationString = '' } = {}, date = new Date(), config$1 = config) {\n        if (!this.isPrivate()) {\n            throw new Error('Need private key for revoking');\n        }\n        const dataToSign = { key: this.keyPacket };\n        const key = this.clone();\n        key.revocationSignatures.push(await createSignaturePacket(dataToSign, [], this.keyPacket, {\n            signatureType: enums.signature.keyRevocation,\n            reasonForRevocationFlag: enums.write(enums.reasonForRevocation, reasonForRevocationFlag),\n            reasonForRevocationString\n        }, date, undefined, undefined, undefined, config$1));\n        return key;\n    }\n    /**\n     * Generates a new OpenPGP subkey, and returns a clone of the Key object with the new subkey added.\n     * Supports RSA and ECC keys, as well as the newer Curve448 and Curve25519.\n     * Defaults to the algorithm and bit size/curve of the primary key. DSA primary keys default to RSA subkeys.\n     * @param {ecc|rsa|curve25519|curve448} options.type The subkey algorithm: ECC, RSA, Curve448 or Curve25519 (new format).\n     *                                                   Note: Curve448 and Curve25519 are not widely supported yet.\n     * @param {String}  options.curve      (optional) Elliptic curve for ECC keys\n     * @param {Integer} options.rsaBits    (optional) Number of bits for RSA subkeys\n     * @param {Number}  options.keyExpirationTime (optional) Number of seconds from the key creation time after which the key expires\n     * @param {Date}    options.date       (optional) Override the creation date of the key and the key signatures\n     * @param {Boolean} options.sign       (optional) Indicates whether the subkey should sign rather than encrypt. Defaults to false\n     * @param {Object}  options.config     (optional) custom configuration settings to overwrite those in [config]{@link module:config}\n     * @returns {Promise<PrivateKey>}\n     * @async\n     */\n    async addSubkey(options = {}) {\n        const config$1 = { ...config, ...options.config };\n        if (options.passphrase) {\n            throw new Error('Subkey could not be encrypted here, please encrypt whole key');\n        }\n        if (options.rsaBits < config$1.minRSABits) {\n            throw new Error(`rsaBits should be at least ${config$1.minRSABits}, got: ${options.rsaBits}`);\n        }\n        const secretKeyPacket = this.keyPacket;\n        if (secretKeyPacket.isDummy()) {\n            throw new Error('Cannot add subkey to gnu-dummy primary key');\n        }\n        if (!secretKeyPacket.isDecrypted()) {\n            throw new Error('Key is not decrypted');\n        }\n        const defaultOptions = secretKeyPacket.getAlgorithmInfo();\n        defaultOptions.type = getDefaultSubkeyType(defaultOptions.algorithm);\n        defaultOptions.rsaBits = defaultOptions.bits || 4096;\n        defaultOptions.curve = defaultOptions.curve || 'curve25519Legacy';\n        options = sanitizeKeyOptions(options, defaultOptions);\n        // Every subkey for a v4 primary key MUST be a v4 subkey.\n        // Every subkey for a v6 primary key MUST be a v6 subkey.\n        // For v5 keys, since we dropped generation support, a v4 subkey is added.\n        // The config is always overwritten since we cannot tell if the defaultConfig was changed by the user.\n        const keyPacket = await generateSecretSubkey(options, { ...config$1, v6Keys: this.keyPacket.version === 6 });\n        checkKeyRequirements(keyPacket, config$1);\n        const bindingSignature = await createBindingSignature(keyPacket, secretKeyPacket, options, config$1);\n        const packetList = this.toPacketList();\n        packetList.push(keyPacket, bindingSignature);\n        return new PrivateKey(packetList);\n    }\n}\nfunction getDefaultSubkeyType(algoName) {\n    const algo = enums.write(enums.publicKey, algoName);\n    // NB: no encryption-only algos, since they cannot be in primary keys\n    switch (algo) {\n        case enums.publicKey.rsaEncrypt:\n        case enums.publicKey.rsaEncryptSign:\n        case enums.publicKey.rsaSign:\n        case enums.publicKey.dsa:\n            return 'rsa';\n        case enums.publicKey.ecdsa:\n        case enums.publicKey.eddsaLegacy:\n            return 'ecc';\n        case enums.publicKey.ed25519:\n            return 'curve25519';\n        case enums.publicKey.ed448:\n            return 'curve448';\n        default:\n            throw new Error('Unsupported algorithm');\n    }\n}\n\n/**\n * @module key/factory\n * @access private\n */\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2015-2016 Decentral\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n// A Key can contain the following packets\nconst allowedKeyPackets = /*#__PURE__*/ util.constructAllowedPackets([\n    PublicKeyPacket,\n    PublicSubkeyPacket,\n    SecretKeyPacket,\n    SecretSubkeyPacket,\n    UserIDPacket,\n    UserAttributePacket,\n    SignaturePacket\n]);\n/**\n * Creates a PublicKey or PrivateKey depending on the packetlist in input\n * @param {PacketList} - packets to parse\n * @return {Key} parsed key\n * @throws if no key packet was found\n */\nfunction createKey(packetlist) {\n    for (const packet of packetlist) {\n        switch (packet.constructor.tag) {\n            case enums.packet.secretKey:\n                return new PrivateKey(packetlist);\n            case enums.packet.publicKey:\n                return new PublicKey(packetlist);\n        }\n    }\n    throw new Error('No key packet found');\n}\n/**\n * Generates a new OpenPGP key. Supports RSA and ECC keys, as well as the newer Curve448 and Curve25519 keys.\n * By default, primary and subkeys will be of same type.\n * @param {ecc|rsa|curve448|curve25519} options.type                  The primary key algorithm type: ECC, RSA, Curve448 or Curve25519 (new format).\n * @param {String}  options.curve                 Elliptic curve for ECC keys\n * @param {Integer} options.rsaBits               Number of bits for RSA keys\n * @param {Array<String|Object>} options.userIDs  User IDs as strings or objects: 'Jo Doe <info@jo.com>' or { name:'Jo Doe', email:'info@jo.com' }\n * @param {String}  options.passphrase            Passphrase used to encrypt the resulting private key\n * @param {Number}  options.keyExpirationTime     (optional) Number of seconds from the key creation time after which the key expires\n * @param {Date}    options.date                  Creation date of the key and the key signatures\n * @param {Object} config - Full configuration\n * @param {Array<Object>} options.subkeys         (optional) options for each subkey, default to main key options. e.g. [{sign: true, passphrase: '123'}]\n *                                                  sign parameter defaults to false, and indicates whether the subkey should sign rather than encrypt\n * @returns {Promise<{{ key: PrivateKey, revocationCertificate: String }}>}\n * @async\n * @static\n * @private\n */\nasync function generate(options, config) {\n    options.sign = true; // primary key is always a signing key\n    options = sanitizeKeyOptions(options);\n    options.subkeys = options.subkeys.map((subkey, index) => sanitizeKeyOptions(options.subkeys[index], options));\n    let promises = [generateSecretKey(options, config)];\n    promises = promises.concat(options.subkeys.map(options => generateSecretSubkey(options, config)));\n    const packets = await Promise.all(promises);\n    const key = await wrapKeyObject(packets[0], packets.slice(1), options, config);\n    const revocationCertificate = await key.getRevocationCertificate(options.date, config);\n    key.revocationSignatures = [];\n    return { key, revocationCertificate };\n}\n/**\n * Reformats and signs an OpenPGP key with a given User ID. Currently only supports RSA keys.\n * @param {PrivateKey} options.privateKey         The private key to reformat\n * @param {Array<String|Object>} options.userIDs  User IDs as strings or objects: 'Jo Doe <info@jo.com>' or { name:'Jo Doe', email:'info@jo.com' }\n * @param {String} options.passphrase             Passphrase used to encrypt the resulting private key\n * @param {Number} options.keyExpirationTime      Number of seconds from the key creation time after which the key expires\n * @param {Date}   options.date                   Override the creation date of the key signatures\n * @param {Array<Object>} options.subkeys         (optional) options for each subkey, default to main key options. e.g. [{sign: true, passphrase: '123'}]\n * @param {Object} config - Full configuration\n *\n * @returns {Promise<{{ key: PrivateKey, revocationCertificate: String }}>}\n * @async\n * @static\n * @private\n */\nasync function reformat(options, config) {\n    options = sanitize(options);\n    const { privateKey } = options;\n    if (!privateKey.isPrivate()) {\n        throw new Error('Cannot reformat a public key');\n    }\n    if (privateKey.keyPacket.isDummy()) {\n        throw new Error('Cannot reformat a gnu-dummy primary key');\n    }\n    const isDecrypted = privateKey.getKeys().every(({ keyPacket }) => keyPacket.isDecrypted());\n    if (!isDecrypted) {\n        throw new Error('Key is not decrypted');\n    }\n    const secretKeyPacket = privateKey.keyPacket;\n    if (!options.subkeys) {\n        options.subkeys = await Promise.all(privateKey.subkeys.map(async (subkey) => {\n            const secretSubkeyPacket = subkey.keyPacket;\n            const dataToVerify = { key: secretKeyPacket, bind: secretSubkeyPacket };\n            const bindingSignature = await (getLatestValidSignature(subkey.bindingSignatures, secretKeyPacket, enums.signature.subkeyBinding, dataToVerify, null, config)).catch(() => ({}));\n            return {\n                sign: bindingSignature.keyFlags && (bindingSignature.keyFlags[0] & enums.keyFlags.signData)\n            };\n        }));\n    }\n    const secretSubkeyPackets = privateKey.subkeys.map(subkey => subkey.keyPacket);\n    if (options.subkeys.length !== secretSubkeyPackets.length) {\n        throw new Error('Number of subkey options does not match number of subkeys');\n    }\n    options.subkeys = options.subkeys.map(subkeyOptions => sanitize(subkeyOptions, options));\n    const key = await wrapKeyObject(secretKeyPacket, secretSubkeyPackets, options, config);\n    const revocationCertificate = await key.getRevocationCertificate(options.date, config);\n    key.revocationSignatures = [];\n    return { key, revocationCertificate };\n    function sanitize(options, subkeyDefaults = {}) {\n        options.keyExpirationTime = options.keyExpirationTime || subkeyDefaults.keyExpirationTime;\n        options.passphrase = util.isString(options.passphrase) ? options.passphrase : subkeyDefaults.passphrase;\n        options.date = options.date || subkeyDefaults.date;\n        return options;\n    }\n}\n/**\n * Construct PrivateKey object from the given key packets, add certification signatures and set passphrase protection\n * The new key includes a revocation certificate that must be removed before returning the key, otherwise the key is considered revoked.\n * @param {SecretKeyPacket} secretKeyPacket\n * @param {Array<SecretSubkeyPacket>} secretSubkeyPackets\n * @param {Object} options\n * @param {Object} config - Full configuration\n * @returns {Promise<PrivateKey>}\n */\nasync function wrapKeyObject(secretKeyPacket, secretSubkeyPackets, options, config) {\n    // set passphrase protection\n    if (options.passphrase) {\n        await secretKeyPacket.encrypt(options.passphrase, config);\n    }\n    await Promise.all(secretSubkeyPackets.map(async function (secretSubkeyPacket, index) {\n        const subkeyPassphrase = options.subkeys[index].passphrase;\n        if (subkeyPassphrase) {\n            await secretSubkeyPacket.encrypt(subkeyPassphrase, config);\n        }\n    }));\n    const packetlist = new PacketList();\n    packetlist.push(secretKeyPacket);\n    function createPreferredAlgos(algos, preferredAlgo) {\n        return [preferredAlgo, ...algos.filter(algo => algo !== preferredAlgo)];\n    }\n    function getKeySignatureProperties() {\n        const signatureProperties = {};\n        signatureProperties.keyFlags = [enums.keyFlags.certifyKeys | enums.keyFlags.signData];\n        const symmetricAlgorithms = createPreferredAlgos([\n            // prefer aes256, aes128, no aes192 (no Web Crypto support in Chrome: https://www.chromium.org/blink/webcrypto#TOC-AES-support)\n            enums.symmetric.aes256,\n            enums.symmetric.aes128\n        ], config.preferredSymmetricAlgorithm);\n        signatureProperties.preferredSymmetricAlgorithms = symmetricAlgorithms;\n        if (config.aeadProtect) {\n            const aeadAlgorithms = createPreferredAlgos([\n                enums.aead.gcm,\n                enums.aead.eax,\n                enums.aead.ocb\n            ], config.preferredAEADAlgorithm);\n            signatureProperties.preferredCipherSuites = aeadAlgorithms.flatMap(aeadAlgorithm => {\n                return symmetricAlgorithms.map(symmetricAlgorithm => {\n                    return [symmetricAlgorithm, aeadAlgorithm];\n                });\n            });\n        }\n        signatureProperties.preferredHashAlgorithms = createPreferredAlgos([\n            enums.hash.sha512,\n            enums.hash.sha256,\n            enums.hash.sha3_512,\n            enums.hash.sha3_256\n        ], config.preferredHashAlgorithm);\n        signatureProperties.preferredCompressionAlgorithms = createPreferredAlgos([\n            enums.compression.uncompressed,\n            enums.compression.zlib,\n            enums.compression.zip\n        ], config.preferredCompressionAlgorithm);\n        // integrity protection always enabled\n        signatureProperties.features = [0];\n        signatureProperties.features[0] |= enums.features.modificationDetection;\n        if (config.aeadProtect) {\n            signatureProperties.features[0] |= enums.features.seipdv2;\n        }\n        if (options.keyExpirationTime > 0) {\n            signatureProperties.keyExpirationTime = options.keyExpirationTime;\n            signatureProperties.keyNeverExpires = false;\n        }\n        return signatureProperties;\n    }\n    if (secretKeyPacket.version === 6) { // add direct key signature with key prefs\n        const dataToSign = {\n            key: secretKeyPacket\n        };\n        const signatureProperties = getKeySignatureProperties();\n        signatureProperties.signatureType = enums.signature.key;\n        const signaturePacket = await createSignaturePacket(dataToSign, [], secretKeyPacket, signatureProperties, options.date, undefined, options.signatureNotations, undefined, config);\n        packetlist.push(signaturePacket);\n    }\n    await Promise.all(options.userIDs.map(async function (userID, index) {\n        const userIDPacket = UserIDPacket.fromObject(userID);\n        const dataToSign = {\n            userID: userIDPacket,\n            key: secretKeyPacket\n        };\n        const signatureProperties = secretKeyPacket.version !== 6 ? getKeySignatureProperties() : {};\n        signatureProperties.signatureType = enums.signature.certPositive;\n        if (index === 0) {\n            signatureProperties.isPrimaryUserID = true;\n        }\n        const signaturePacket = await createSignaturePacket(dataToSign, [], secretKeyPacket, signatureProperties, options.date, undefined, options.signatureNotations, undefined, config);\n        return { userIDPacket, signaturePacket };\n    })).then(list => {\n        list.forEach(({ userIDPacket, signaturePacket }) => {\n            packetlist.push(userIDPacket);\n            packetlist.push(signaturePacket);\n        });\n    });\n    await Promise.all(secretSubkeyPackets.map(async function (secretSubkeyPacket, index) {\n        const subkeyOptions = options.subkeys[index];\n        const subkeySignaturePacket = await createBindingSignature(secretSubkeyPacket, secretKeyPacket, subkeyOptions, config);\n        return { secretSubkeyPacket, subkeySignaturePacket };\n    })).then(packets => {\n        packets.forEach(({ secretSubkeyPacket, subkeySignaturePacket }) => {\n            packetlist.push(secretSubkeyPacket);\n            packetlist.push(subkeySignaturePacket);\n        });\n    });\n    // Add revocation signature packet for creating a revocation certificate.\n    // This packet should be removed before returning the key.\n    const dataToSign = { key: secretKeyPacket };\n    packetlist.push(await createSignaturePacket(dataToSign, [], secretKeyPacket, {\n        signatureType: enums.signature.keyRevocation,\n        reasonForRevocationFlag: enums.reasonForRevocation.noReason,\n        reasonForRevocationString: ''\n    }, options.date, undefined, undefined, undefined, config));\n    if (options.passphrase) {\n        secretKeyPacket.clearPrivateParams();\n    }\n    secretSubkeyPackets.map(function (secretSubkeyPacket, index) {\n        const subkeyPassphrase = options.subkeys[index].passphrase;\n        if (subkeyPassphrase) {\n            secretSubkeyPacket.clearPrivateParams();\n        }\n    });\n    return new PrivateKey(packetlist);\n}\n/**\n * Reads an (optionally armored) OpenPGP key and returns a key object\n * @param {Object} options\n * @param {String} [options.armoredKey] - Armored key to be parsed\n * @param {Uint8Array} [options.binaryKey] - Binary key to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<Key>} Key object.\n * @async\n * @static\n */\nasync function readKey({ armoredKey, binaryKey, config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    if (!armoredKey && !binaryKey) {\n        throw new Error('readKey: must pass options object containing `armoredKey` or `binaryKey`');\n    }\n    if (armoredKey && !util.isString(armoredKey)) {\n        throw new Error('readKey: options.armoredKey must be a string');\n    }\n    if (binaryKey && !util.isUint8Array(binaryKey)) {\n        throw new Error('readKey: options.binaryKey must be a Uint8Array');\n    }\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    let input;\n    if (armoredKey) {\n        const { type, data } = await unarmor(armoredKey);\n        if (!(type === enums.armor.publicKey || type === enums.armor.privateKey)) {\n            throw new Error('Armored text not of type key');\n        }\n        input = data;\n    }\n    else {\n        input = binaryKey;\n    }\n    const packetlist = await PacketList.fromBinary(input, allowedKeyPackets, config$1);\n    const keyIndex = packetlist.indexOfTag(enums.packet.publicKey, enums.packet.secretKey);\n    if (keyIndex.length === 0) {\n        throw new Error('No key packet found');\n    }\n    const firstKeyPacketList = packetlist.slice(keyIndex[0], keyIndex[1]);\n    return createKey(firstKeyPacketList);\n}\n/**\n * Reads an (optionally armored) OpenPGP private key and returns a PrivateKey object\n * @param {Object} options\n * @param {String} [options.armoredKey] - Armored key to be parsed\n * @param {Uint8Array} [options.binaryKey] - Binary key to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<PrivateKey>} Key object.\n * @async\n * @static\n */\nasync function readPrivateKey({ armoredKey, binaryKey, config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    if (!armoredKey && !binaryKey) {\n        throw new Error('readPrivateKey: must pass options object containing `armoredKey` or `binaryKey`');\n    }\n    if (armoredKey && !util.isString(armoredKey)) {\n        throw new Error('readPrivateKey: options.armoredKey must be a string');\n    }\n    if (binaryKey && !util.isUint8Array(binaryKey)) {\n        throw new Error('readPrivateKey: options.binaryKey must be a Uint8Array');\n    }\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    let input;\n    if (armoredKey) {\n        const { type, data } = await unarmor(armoredKey);\n        if (!(type === enums.armor.privateKey)) {\n            throw new Error('Armored text not of type private key');\n        }\n        input = data;\n    }\n    else {\n        input = binaryKey;\n    }\n    const packetlist = await PacketList.fromBinary(input, allowedKeyPackets, config$1);\n    const keyIndex = packetlist.indexOfTag(enums.packet.publicKey, enums.packet.secretKey);\n    for (let i = 0; i < keyIndex.length; i++) {\n        if (packetlist[keyIndex[i]].constructor.tag === enums.packet.publicKey) {\n            continue;\n        }\n        const firstPrivateKeyList = packetlist.slice(keyIndex[i], keyIndex[i + 1]);\n        return new PrivateKey(firstPrivateKeyList);\n    }\n    throw new Error('No secret key packet found');\n}\n/**\n * Reads an (optionally armored) OpenPGP key block and returns a list of key objects\n * @param {Object} options\n * @param {String} [options.armoredKeys] - Armored keys to be parsed\n * @param {Uint8Array} [options.binaryKeys] - Binary keys to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<Array<Key>>} Key objects.\n * @async\n * @static\n */\nasync function readKeys({ armoredKeys, binaryKeys, config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    let input = armoredKeys || binaryKeys;\n    if (!input) {\n        throw new Error('readKeys: must pass options object containing `armoredKeys` or `binaryKeys`');\n    }\n    if (armoredKeys && !util.isString(armoredKeys)) {\n        throw new Error('readKeys: options.armoredKeys must be a string');\n    }\n    if (binaryKeys && !util.isUint8Array(binaryKeys)) {\n        throw new Error('readKeys: options.binaryKeys must be a Uint8Array');\n    }\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    if (armoredKeys) {\n        const { type, data } = await unarmor(armoredKeys);\n        if (type !== enums.armor.publicKey && type !== enums.armor.privateKey) {\n            throw new Error('Armored text not of type key');\n        }\n        input = data;\n    }\n    const keys = [];\n    const packetlist = await PacketList.fromBinary(input, allowedKeyPackets, config$1);\n    const keyIndex = packetlist.indexOfTag(enums.packet.publicKey, enums.packet.secretKey);\n    if (keyIndex.length === 0) {\n        throw new Error('No key packet found');\n    }\n    for (let i = 0; i < keyIndex.length; i++) {\n        const oneKeyList = packetlist.slice(keyIndex[i], keyIndex[i + 1]);\n        const newKey = createKey(oneKeyList);\n        keys.push(newKey);\n    }\n    return keys;\n}\n/**\n * Reads an (optionally armored) OpenPGP private key block and returns a list of PrivateKey objects\n * @param {Object} options\n * @param {String} [options.armoredKeys] - Armored keys to be parsed\n * @param {Uint8Array} [options.binaryKeys] - Binary keys to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<Array<PrivateKey>>} Key objects.\n * @async\n * @static\n */\nasync function readPrivateKeys({ armoredKeys, binaryKeys, config: config$1 }) {\n    config$1 = { ...config, ...config$1 };\n    let input = armoredKeys || binaryKeys;\n    if (!input) {\n        throw new Error('readPrivateKeys: must pass options object containing `armoredKeys` or `binaryKeys`');\n    }\n    if (armoredKeys && !util.isString(armoredKeys)) {\n        throw new Error('readPrivateKeys: options.armoredKeys must be a string');\n    }\n    if (binaryKeys && !util.isUint8Array(binaryKeys)) {\n        throw new Error('readPrivateKeys: options.binaryKeys must be a Uint8Array');\n    }\n    if (armoredKeys) {\n        const { type, data } = await unarmor(armoredKeys);\n        if (type !== enums.armor.privateKey) {\n            throw new Error('Armored text not of type private key');\n        }\n        input = data;\n    }\n    const keys = [];\n    const packetlist = await PacketList.fromBinary(input, allowedKeyPackets, config$1);\n    const keyIndex = packetlist.indexOfTag(enums.packet.publicKey, enums.packet.secretKey);\n    for (let i = 0; i < keyIndex.length; i++) {\n        if (packetlist[keyIndex[i]].constructor.tag === enums.packet.publicKey) {\n            continue;\n        }\n        const oneKeyList = packetlist.slice(keyIndex[i], keyIndex[i + 1]);\n        const newKey = new PrivateKey(oneKeyList);\n        keys.push(newKey);\n    }\n    if (keys.length === 0) {\n        throw new Error('No secret key packet found');\n    }\n    return keys;\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n// A Message can contain the following packets\nconst allowedMessagePackets = /*#__PURE__*/ util.constructAllowedPackets([\n    LiteralDataPacket,\n    CompressedDataPacket,\n    AEADEncryptedDataPacket,\n    SymEncryptedIntegrityProtectedDataPacket,\n    SymmetricallyEncryptedDataPacket,\n    PublicKeyEncryptedSessionKeyPacket,\n    SymEncryptedSessionKeyPacket,\n    OnePassSignaturePacket,\n    SignaturePacket\n]);\n// A SKESK packet can contain the following packets\nconst allowedSymSessionKeyPackets = /*#__PURE__*/ util.constructAllowedPackets([SymEncryptedSessionKeyPacket]);\n// A detached signature can contain the following packets\nconst allowedDetachedSignaturePackets = /*#__PURE__*/ util.constructAllowedPackets([SignaturePacket]);\n/**\n * Class that represents an OpenPGP message.\n * Can be an encrypted message, signed message, compressed message or literal message\n * See {@link https://tools.ietf.org/html/rfc4880#section-11.3}\n */\nclass Message {\n    /**\n     * @param {PacketList} packetlist - The packets that form this message\n     */\n    constructor(packetlist) {\n        this.packets = packetlist || new PacketList();\n    }\n    /**\n     * Returns the key IDs of the keys to which the session key is encrypted\n     * @returns {Array<module:type/keyid~KeyID>} Array of keyID objects.\n     */\n    getEncryptionKeyIDs() {\n        const keyIDs = [];\n        const pkESKeyPacketlist = this.packets.filterByTag(enums.packet.publicKeyEncryptedSessionKey);\n        pkESKeyPacketlist.forEach(function (packet) {\n            keyIDs.push(packet.publicKeyID);\n        });\n        return keyIDs;\n    }\n    /**\n     * Returns the key IDs of the keys that signed the message\n     * @returns {Array<module:type/keyid~KeyID>} Array of keyID objects.\n     */\n    getSigningKeyIDs() {\n        const msg = this.unwrapCompressed();\n        // search for one pass signatures\n        const onePassSigList = msg.packets.filterByTag(enums.packet.onePassSignature);\n        if (onePassSigList.length > 0) {\n            return onePassSigList.map(packet => packet.issuerKeyID);\n        }\n        // if nothing found look for signature packets\n        const signatureList = msg.packets.filterByTag(enums.packet.signature);\n        return signatureList.map(packet => packet.issuerKeyID);\n    }\n    /**\n     * Decrypt the message. Either a private key, a session key, or a password must be specified.\n     * @param {Array<PrivateKey>} [decryptionKeys] - Private keys with decrypted secret data\n     * @param {Array<String>} [passwords] - Passwords used to decrypt\n     * @param {Array<Object>} [sessionKeys] - Session keys in the form: { data:Uint8Array, algorithm:String, [aeadAlgorithm:String] }\n     * @param {Date} [date] - Use the given date for key verification instead of the current time\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Message>} New message with decrypted content.\n     * @async\n     */\n    async decrypt(decryptionKeys, passwords, sessionKeys, date = new Date(), config$1 = config) {\n        const symEncryptedPacketlist = this.packets.filterByTag(enums.packet.symmetricallyEncryptedData, enums.packet.symEncryptedIntegrityProtectedData, enums.packet.aeadEncryptedData);\n        if (symEncryptedPacketlist.length === 0) {\n            throw new Error('No encrypted data found');\n        }\n        const symEncryptedPacket = symEncryptedPacketlist[0];\n        const expectedSymmetricAlgorithm = symEncryptedPacket.cipherAlgorithm;\n        const sessionKeyObjects = sessionKeys || await this.decryptSessionKeys(decryptionKeys, passwords, expectedSymmetricAlgorithm, date, config$1);\n        let exception = null;\n        const decryptedPromise = Promise.all(sessionKeyObjects.map(async ({ algorithm: algorithmName, data }) => {\n            if (!util.isUint8Array(data) || (!symEncryptedPacket.cipherAlgorithm && !util.isString(algorithmName))) {\n                throw new Error('Invalid session key for decryption.');\n            }\n            try {\n                const algo = symEncryptedPacket.cipherAlgorithm || enums.write(enums.symmetric, algorithmName);\n                await symEncryptedPacket.decrypt(algo, data, config$1);\n            }\n            catch (e) {\n                util.printDebugError(e);\n                exception = e;\n            }\n        }));\n        // We don't await stream.cancel here because it only returns when the other copy is canceled too.\n        cancel(symEncryptedPacket.encrypted); // Don't keep copy of encrypted data in memory.\n        symEncryptedPacket.encrypted = null;\n        await decryptedPromise;\n        if (!symEncryptedPacket.packets || !symEncryptedPacket.packets.length) {\n            throw exception || new Error('Decryption failed.');\n        }\n        const resultMsg = new Message(symEncryptedPacket.packets);\n        symEncryptedPacket.packets = new PacketList(); // remove packets after decryption\n        return resultMsg;\n    }\n    /**\n     * Decrypt encrypted session keys either with private keys or passwords.\n     * @param {Array<PrivateKey>} [decryptionKeys] - Private keys with decrypted secret data\n     * @param {Array<String>} [passwords] - Passwords used to decrypt\n     * @param {enums.symmetric} [expectedSymmetricAlgorithm] - The symmetric algorithm the SEIPDv2 / AEAD packet is encrypted with (if applicable)\n     * @param {Date} [date] - Use the given date for key verification, instead of current time\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Array<{\n     *   data: Uint8Array,\n     *   algorithm: String\n     * }>>} array of object with potential sessionKey, algorithm pairs\n     * @async\n     */\n    async decryptSessionKeys(decryptionKeys, passwords, expectedSymmetricAlgorithm, date = new Date(), config$1 = config) {\n        let decryptedSessionKeyPackets = [];\n        let exception;\n        if (passwords) {\n            const skeskPackets = this.packets.filterByTag(enums.packet.symEncryptedSessionKey);\n            if (skeskPackets.length === 0) {\n                throw new Error('No symmetrically encrypted session key packet found.');\n            }\n            await Promise.all(passwords.map(async function (password, i) {\n                let packets;\n                if (i) {\n                    packets = await PacketList.fromBinary(skeskPackets.write(), allowedSymSessionKeyPackets, config$1);\n                }\n                else {\n                    packets = skeskPackets;\n                }\n                await Promise.all(packets.map(async function (skeskPacket) {\n                    try {\n                        await skeskPacket.decrypt(password, config$1);\n                        decryptedSessionKeyPackets.push(skeskPacket);\n                    }\n                    catch (err) {\n                        util.printDebugError(err);\n                        if (err instanceof Argon2OutOfMemoryError) {\n                            exception = err;\n                        }\n                    }\n                }));\n            }));\n        }\n        else if (decryptionKeys) {\n            const pkeskPackets = this.packets.filterByTag(enums.packet.publicKeyEncryptedSessionKey);\n            if (pkeskPackets.length === 0) {\n                throw new Error('No public key encrypted session key packet found.');\n            }\n            await Promise.all(pkeskPackets.map(async function (pkeskPacket) {\n                await Promise.all(decryptionKeys.map(async function (decryptionKey) {\n                    let decryptionKeyPackets;\n                    try {\n                        // do not check key expiration to allow decryption of old messages\n                        decryptionKeyPackets = (await decryptionKey.getDecryptionKeys(pkeskPacket.publicKeyID, null, undefined, config$1)).map(key => key.keyPacket);\n                    }\n                    catch (err) {\n                        exception = err;\n                        return;\n                    }\n                    let algos = [\n                        enums.symmetric.aes256, // Old OpenPGP.js default fallback\n                        enums.symmetric.aes128, // RFC4880bis fallback\n                        enums.symmetric.tripledes, // RFC4880 fallback\n                        enums.symmetric.cast5 // Golang OpenPGP fallback\n                    ];\n                    try {\n                        const selfCertification = await decryptionKey.getPrimarySelfSignature(date, undefined, config$1); // TODO: Pass userID from somewhere.\n                        if (selfCertification.preferredSymmetricAlgorithms) {\n                            algos = algos.concat(selfCertification.preferredSymmetricAlgorithms);\n                        }\n                    }\n                    catch { }\n                    await Promise.all(decryptionKeyPackets.map(async function (decryptionKeyPacket) {\n                        if (!decryptionKeyPacket.isDecrypted()) {\n                            throw new Error('Decryption key is not decrypted.');\n                        }\n                        // To hinder CCA attacks against PKCS1, we carry out a constant-time decryption flow if the `constantTimePKCS1Decryption` config option is set.\n                        const doConstantTimeDecryption = config$1.constantTimePKCS1Decryption && (pkeskPacket.publicKeyAlgorithm === enums.publicKey.rsaEncrypt ||\n                            pkeskPacket.publicKeyAlgorithm === enums.publicKey.rsaEncryptSign ||\n                            pkeskPacket.publicKeyAlgorithm === enums.publicKey.rsaSign ||\n                            pkeskPacket.publicKeyAlgorithm === enums.publicKey.elgamal);\n                        if (doConstantTimeDecryption) {\n                            // The goal is to not reveal whether PKESK decryption (specifically the PKCS1 decoding step) failed, hence, we always proceed to decrypt the message,\n                            // either with the successfully decrypted session key, or with a randomly generated one.\n                            // Since the SEIP/AEAD's symmetric algorithm and key size are stored in the encrypted portion of the PKESK, and the execution flow cannot depend on\n                            // the decrypted payload, we always assume the message to be encrypted with one of the symmetric algorithms specified in `config.constantTimePKCS1DecryptionSupportedSymmetricAlgorithms`:\n                            // - If the PKESK decryption succeeds, and the session key cipher is in the supported set, then we try to decrypt the data with the decrypted session key as well as with the\n                            // randomly generated keys of the remaining key types.\n                            // - If the PKESK decryptions fails, or if it succeeds but support for the cipher is not enabled, then we discard the session key and try to decrypt the data using only the randomly\n                            // generated session keys.\n                            // NB: as a result, if the data is encrypted with a non-suported cipher, decryption will always fail.\n                            const serialisedPKESK = pkeskPacket.write(); // make copies to be able to decrypt the PKESK packet multiple times\n                            await Promise.all((expectedSymmetricAlgorithm ?\n                                [expectedSymmetricAlgorithm] :\n                                Array.from(config$1.constantTimePKCS1DecryptionSupportedSymmetricAlgorithms)).map(async (sessionKeyAlgorithm) => {\n                                const pkeskPacketCopy = new PublicKeyEncryptedSessionKeyPacket();\n                                pkeskPacketCopy.read(serialisedPKESK);\n                                const randomSessionKey = {\n                                    sessionKeyAlgorithm,\n                                    sessionKey: generateSessionKey$1(sessionKeyAlgorithm)\n                                };\n                                try {\n                                    await pkeskPacketCopy.decrypt(decryptionKeyPacket, randomSessionKey);\n                                    decryptedSessionKeyPackets.push(pkeskPacketCopy);\n                                }\n                                catch (err) {\n                                    // `decrypt` can still throw some non-security-sensitive errors\n                                    util.printDebugError(err);\n                                    exception = err;\n                                }\n                            }));\n                        }\n                        else {\n                            try {\n                                await pkeskPacket.decrypt(decryptionKeyPacket);\n                                const symmetricAlgorithm = expectedSymmetricAlgorithm || pkeskPacket.sessionKeyAlgorithm;\n                                if (symmetricAlgorithm && !algos.includes(enums.write(enums.symmetric, symmetricAlgorithm))) {\n                                    throw new Error('A non-preferred symmetric algorithm was used.');\n                                }\n                                decryptedSessionKeyPackets.push(pkeskPacket);\n                            }\n                            catch (err) {\n                                util.printDebugError(err);\n                                exception = err;\n                            }\n                        }\n                    }));\n                }));\n                cancel(pkeskPacket.encrypted); // Don't keep copy of encrypted data in memory.\n                pkeskPacket.encrypted = null;\n            }));\n        }\n        else {\n            throw new Error('No key or password specified.');\n        }\n        if (decryptedSessionKeyPackets.length > 0) {\n            // Return only unique session keys\n            if (decryptedSessionKeyPackets.length > 1) {\n                const seen = new Set();\n                decryptedSessionKeyPackets = decryptedSessionKeyPackets.filter(item => {\n                    const k = item.sessionKeyAlgorithm + util.uint8ArrayToString(item.sessionKey);\n                    if (seen.has(k)) {\n                        return false;\n                    }\n                    seen.add(k);\n                    return true;\n                });\n            }\n            return decryptedSessionKeyPackets.map(packet => ({\n                data: packet.sessionKey,\n                algorithm: packet.sessionKeyAlgorithm && enums.read(enums.symmetric, packet.sessionKeyAlgorithm)\n            }));\n        }\n        throw exception || new Error('Session key decryption failed.');\n    }\n    /**\n     * Get literal data that is the body of the message\n     * @returns {(Uint8Array|null)} Literal body of the message as Uint8Array.\n     */\n    getLiteralData() {\n        const msg = this.unwrapCompressed();\n        const literal = msg.packets.findPacket(enums.packet.literalData);\n        return (literal && literal.getBytes()) || null;\n    }\n    /**\n     * Get filename from literal data packet\n     * @returns {(String|null)} Filename of literal data packet as string.\n     */\n    getFilename() {\n        const msg = this.unwrapCompressed();\n        const literal = msg.packets.findPacket(enums.packet.literalData);\n        return (literal && literal.getFilename()) || null;\n    }\n    /**\n     * Get literal data as text\n     * @returns {(String|null)} Literal body of the message interpreted as text.\n     */\n    getText() {\n        const msg = this.unwrapCompressed();\n        const literal = msg.packets.findPacket(enums.packet.literalData);\n        if (literal) {\n            return literal.getText();\n        }\n        return null;\n    }\n    /**\n     * Generate a new session key object, taking the algorithm preferences of the passed encryption keys into account, if any.\n     * @param {Array<PublicKey>} [encryptionKeys] - Public key(s) to select algorithm preferences for\n     * @param {Date} [date] - Date to select algorithm preferences at\n     * @param {Array<Object>} [userIDs] - User IDs to select algorithm preferences for\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<{ data: Uint8Array, algorithm: String, aeadAlgorithm: undefined|String }>} Object with session key data and algorithms.\n     * @async\n     */\n    static async generateSessionKey(encryptionKeys = [], date = new Date(), userIDs = [], config$1 = config) {\n        const { symmetricAlgo, aeadAlgo } = await getPreferredCipherSuite(encryptionKeys, date, userIDs, config$1);\n        const symmetricAlgoName = enums.read(enums.symmetric, symmetricAlgo);\n        const aeadAlgoName = aeadAlgo ? enums.read(enums.aead, aeadAlgo) : undefined;\n        await Promise.all(encryptionKeys.map(key => key.getEncryptionKey()\n            .catch(() => null) // ignore key strength requirements\n            .then(maybeKey => {\n            if (maybeKey && (maybeKey.keyPacket.algorithm === enums.publicKey.x25519 || maybeKey.keyPacket.algorithm === enums.publicKey.x448) &&\n                !aeadAlgoName && !util.isAES(symmetricAlgo)) { // if AEAD is defined, then PKESK v6 are used, and the algo info is encrypted\n                throw new Error('Could not generate a session key compatible with the given `encryptionKeys`: X22519 and X448 keys can only be used to encrypt AES session keys; change `config.preferredSymmetricAlgorithm` accordingly.');\n            }\n        })));\n        const sessionKeyData = generateSessionKey$1(symmetricAlgo);\n        return { data: sessionKeyData, algorithm: symmetricAlgoName, aeadAlgorithm: aeadAlgoName };\n    }\n    /**\n     * Encrypt the message either with public keys, passwords, or both at once.\n     * @param {Array<PublicKey>} [encryptionKeys] - Public key(s) for message encryption\n     * @param {Array<String>} [passwords] - Password(s) for message encryption\n     * @param {Object} [sessionKey] - Session key in the form: { data:Uint8Array, algorithm:String, [aeadAlgorithm:String] }\n     * @param {Boolean} [wildcard] - Use a key ID of 0 instead of the public key IDs\n     * @param {Array<module:type/keyid~KeyID>} [encryptionKeyIDs] - Array of key IDs to use for encryption. Each encryptionKeyIDs[i] corresponds to keys[i]\n     * @param {Date} [date] - Override the creation date of the literal package\n     * @param {Array<Object>} [userIDs] - User IDs to encrypt for, e.g. [{ name:'Robert Receiver', email:'robert@openpgp.org' }]\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Message>} New message with encrypted content.\n     * @async\n     */\n    async encrypt(encryptionKeys, passwords, sessionKey, wildcard = false, encryptionKeyIDs = [], date = new Date(), userIDs = [], config$1 = config) {\n        if (sessionKey) {\n            if (!util.isUint8Array(sessionKey.data) || !util.isString(sessionKey.algorithm)) {\n                throw new Error('Invalid session key for encryption.');\n            }\n        }\n        else if (encryptionKeys && encryptionKeys.length) {\n            sessionKey = await Message.generateSessionKey(encryptionKeys, date, userIDs, config$1);\n        }\n        else if (passwords && passwords.length) {\n            sessionKey = await Message.generateSessionKey(undefined, undefined, undefined, config$1);\n        }\n        else {\n            throw new Error('No keys, passwords, or session key provided.');\n        }\n        const { data: sessionKeyData, algorithm: algorithmName, aeadAlgorithm: aeadAlgorithmName } = sessionKey;\n        const msg = await Message.encryptSessionKey(sessionKeyData, algorithmName, aeadAlgorithmName, encryptionKeys, passwords, wildcard, encryptionKeyIDs, date, userIDs, config$1);\n        const symEncryptedPacket = SymEncryptedIntegrityProtectedDataPacket.fromObject({\n            version: aeadAlgorithmName ? 2 : 1,\n            aeadAlgorithm: aeadAlgorithmName ? enums.write(enums.aead, aeadAlgorithmName) : null\n        });\n        symEncryptedPacket.packets = this.packets;\n        const algorithm = enums.write(enums.symmetric, algorithmName);\n        await symEncryptedPacket.encrypt(algorithm, sessionKeyData, config$1);\n        msg.packets.push(symEncryptedPacket);\n        symEncryptedPacket.packets = new PacketList(); // remove packets after encryption\n        return msg;\n    }\n    /**\n     * Encrypt a session key either with public keys, passwords, or both at once.\n     * @param {Uint8Array} sessionKey - session key for encryption\n     * @param {String} algorithmName - session key algorithm\n     * @param {String} [aeadAlgorithmName] - AEAD algorithm, e.g. 'eax' or 'ocb'\n     * @param {Array<PublicKey>} [encryptionKeys] - Public key(s) for message encryption\n     * @param {Array<String>} [passwords] - For message encryption\n     * @param {Boolean} [wildcard] - Use a key ID of 0 instead of the public key IDs\n     * @param {Array<module:type/keyid~KeyID>} [encryptionKeyIDs] - Array of key IDs to use for encryption. Each encryptionKeyIDs[i] corresponds to encryptionKeys[i]\n     * @param {Date} [date] - Override the date\n     * @param {Array} [userIDs] - User IDs to encrypt for, e.g. [{ name:'Robert Receiver', email:'robert@openpgp.org' }]\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Message>} New message with encrypted content.\n     * @async\n     */\n    static async encryptSessionKey(sessionKey, algorithmName, aeadAlgorithmName, encryptionKeys, passwords, wildcard = false, encryptionKeyIDs = [], date = new Date(), userIDs = [], config$1 = config) {\n        const packetlist = new PacketList();\n        const symmetricAlgorithm = enums.write(enums.symmetric, algorithmName);\n        const aeadAlgorithm = aeadAlgorithmName && enums.write(enums.aead, aeadAlgorithmName);\n        if (encryptionKeys) {\n            const results = await Promise.all(encryptionKeys.map(async function (primaryKey, i) {\n                const encryptionKey = await primaryKey.getEncryptionKey(encryptionKeyIDs[i], date, userIDs, config$1);\n                const pkESKeyPacket = PublicKeyEncryptedSessionKeyPacket.fromObject({\n                    version: aeadAlgorithm ? 6 : 3,\n                    encryptionKeyPacket: encryptionKey.keyPacket,\n                    anonymousRecipient: wildcard,\n                    sessionKey,\n                    sessionKeyAlgorithm: symmetricAlgorithm\n                });\n                await pkESKeyPacket.encrypt(encryptionKey.keyPacket);\n                delete pkESKeyPacket.sessionKey; // delete plaintext session key after encryption\n                return pkESKeyPacket;\n            }));\n            packetlist.push(...results);\n        }\n        if (passwords) {\n            const testDecrypt = async function (keyPacket, password) {\n                try {\n                    await keyPacket.decrypt(password, config$1);\n                    return 1;\n                }\n                catch {\n                    return 0;\n                }\n            };\n            const sum = (accumulator, currentValue) => accumulator + currentValue;\n            const encryptPassword = async function (sessionKey, algorithm, aeadAlgorithm, password) {\n                const symEncryptedSessionKeyPacket = new SymEncryptedSessionKeyPacket(config$1);\n                symEncryptedSessionKeyPacket.sessionKey = sessionKey;\n                symEncryptedSessionKeyPacket.sessionKeyAlgorithm = algorithm;\n                if (aeadAlgorithm) {\n                    symEncryptedSessionKeyPacket.aeadAlgorithm = aeadAlgorithm;\n                }\n                await symEncryptedSessionKeyPacket.encrypt(password, config$1);\n                if (config$1.passwordCollisionCheck) {\n                    const results = await Promise.all(passwords.map(pwd => testDecrypt(symEncryptedSessionKeyPacket, pwd)));\n                    if (results.reduce(sum) !== 1) {\n                        return encryptPassword(sessionKey, algorithm, password);\n                    }\n                }\n                delete symEncryptedSessionKeyPacket.sessionKey; // delete plaintext session key after encryption\n                return symEncryptedSessionKeyPacket;\n            };\n            const results = await Promise.all(passwords.map(pwd => encryptPassword(sessionKey, symmetricAlgorithm, aeadAlgorithm, pwd)));\n            packetlist.push(...results);\n        }\n        return new Message(packetlist);\n    }\n    /**\n     * Sign the message (the literal data packet of the message)\n     * @param {Array<PrivateKey>} signingKeys - private keys with decrypted secret key data for signing\n     * @param {Array<Key>} recipientKeys - recipient keys to get the signing preferences from\n     * @param {Signature} [signature] - Any existing detached signature to add to the message\n     * @param {Array<module:type/keyid~KeyID>} [signingKeyIDs] - Array of key IDs to use for signing. Each signingKeyIDs[i] corresponds to signingKeys[i]\n     * @param {Date} [date] - Override the creation time of the signature\n     * @param {Array<UserID>} [signingUserIDs] - User IDs to sign with, e.g. [{ name:'Steve Sender', email:'steve@openpgp.org' }]\n     * @param {Array<UserID>} [recipientUserIDs] - User IDs associated with `recipientKeys` to get the signing preferences from\n     * @param {Array} [notations] - Notation Data to add to the signatures, e.g. [{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Message>} New message with signed content.\n     * @async\n     */\n    async sign(signingKeys = [], recipientKeys = [], signature = null, signingKeyIDs = [], date = new Date(), signingUserIDs = [], recipientUserIDs = [], notations = [], config$1 = config) {\n        const packetlist = new PacketList();\n        const literalDataPacket = this.packets.findPacket(enums.packet.literalData);\n        if (!literalDataPacket) {\n            throw new Error('No literal data packet to sign.');\n        }\n        const signaturePackets = await createSignaturePackets(literalDataPacket, signingKeys, recipientKeys, signature, signingKeyIDs, date, signingUserIDs, recipientUserIDs, notations, false, config$1); // this returns the existing signature packets as well\n        const onePassSignaturePackets = signaturePackets.map((signaturePacket, i) => OnePassSignaturePacket.fromSignaturePacket(signaturePacket, i === 0))\n            .reverse(); // innermost OPS refers to the first signature packet\n        packetlist.push(...onePassSignaturePackets);\n        packetlist.push(literalDataPacket);\n        packetlist.push(...signaturePackets);\n        return new Message(packetlist);\n    }\n    /**\n     * Compresses the message (the literal and -if signed- signature data packets of the message)\n     * @param {module:enums.compression} algo - compression algorithm\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Message} New message with compressed content.\n     */\n    compress(algo, config$1 = config) {\n        if (algo === enums.compression.uncompressed) {\n            return this;\n        }\n        const compressed = new CompressedDataPacket(config$1);\n        compressed.algorithm = algo;\n        compressed.packets = this.packets;\n        const packetList = new PacketList();\n        packetList.push(compressed);\n        return new Message(packetList);\n    }\n    /**\n     * Create a detached signature for the message (the literal data packet of the message)\n     * @param {Array<PrivateKey>} signingKeys - private keys with decrypted secret key data for signing\n     * @param {Array<Key>} recipientKeys - recipient keys to get the signing preferences from\n     * @param {Signature} [signature] - Any existing detached signature\n     * @param {Array<module:type/keyid~KeyID>} [signingKeyIDs] - Array of key IDs to use for signing. Each signingKeyIDs[i] corresponds to signingKeys[i]\n     * @param {Date} [date] - Override the creation time of the signature\n     * @param {Array<UserID>} [signingUserIDs] - User IDs to sign with, e.g. [{ name:'Steve Sender', email:'steve@openpgp.org' }]\n     * @param {Array<UserID>} [recipientUserIDs] - User IDs associated with `recipientKeys` to get the signing preferences from\n     * @param {Array} [notations] - Notation Data to add to the signatures, e.g. [{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Signature>} New detached signature of message content.\n     * @async\n     */\n    async signDetached(signingKeys = [], recipientKeys = [], signature = null, signingKeyIDs = [], recipientKeyIDs = [], date = new Date(), userIDs = [], notations = [], config$1 = config) {\n        const literalDataPacket = this.packets.findPacket(enums.packet.literalData);\n        if (!literalDataPacket) {\n            throw new Error('No literal data packet to sign.');\n        }\n        return new Signature(await createSignaturePackets(literalDataPacket, signingKeys, recipientKeys, signature, signingKeyIDs, recipientKeyIDs, date, userIDs, notations, true, config$1));\n    }\n    /**\n     * Verify message signatures\n     * @param {Array<PublicKey>} verificationKeys - Array of public keys to verify signatures\n     * @param {Date} [date] - Verify the signature against the given date, i.e. check signature creation time < date < expiration time\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Array<{\n     *   keyID: module:type/keyid~KeyID,\n     *   signature: Promise<Signature>,\n     *   verified: Promise<true>\n     * }>>} List of signer's keyID and validity of signatures.\n     * @async\n     */\n    async verify(verificationKeys, date = new Date(), config$1 = config) {\n        const msg = this.unwrapCompressed();\n        const literalDataList = msg.packets.filterByTag(enums.packet.literalData);\n        if (literalDataList.length !== 1) {\n            throw new Error('Can only verify message with one literal data packet.');\n        }\n        let packets = msg.packets;\n        if (isArrayStream(packets.stream)) {\n            packets = packets.concat(await readToEnd(packets.stream, _ => _ || []));\n        }\n        const onePassSigList = packets.filterByTag(enums.packet.onePassSignature).reverse();\n        const signatureList = packets.filterByTag(enums.packet.signature);\n        if (onePassSigList.length && !signatureList.length && util.isStream(packets.stream) && !isArrayStream(packets.stream)) {\n            await Promise.all(onePassSigList.map(async (onePassSig) => {\n                onePassSig.correspondingSig = new Promise((resolve, reject) => {\n                    onePassSig.correspondingSigResolve = resolve;\n                    onePassSig.correspondingSigReject = reject;\n                });\n                onePassSig.signatureData = fromAsync(async () => (await onePassSig.correspondingSig).signatureData);\n                onePassSig.hashed = readToEnd(await onePassSig.hash(onePassSig.signatureType, literalDataList[0], undefined, false));\n                onePassSig.hashed.catch(() => { });\n            }));\n            packets.stream = transformPair(packets.stream, async (readable, writable) => {\n                const reader = getReader(readable);\n                const writer = getWriter(writable);\n                try {\n                    for (let i = 0; i < onePassSigList.length; i++) {\n                        const { value: signature } = await reader.read();\n                        onePassSigList[i].correspondingSigResolve(signature);\n                    }\n                    await reader.readToEnd();\n                    await writer.ready;\n                    await writer.close();\n                }\n                catch (e) {\n                    onePassSigList.forEach(onePassSig => {\n                        onePassSig.correspondingSigReject(e);\n                    });\n                    await writer.abort(e);\n                }\n            });\n            return createVerificationObjects(onePassSigList, literalDataList, verificationKeys, date, false, config$1);\n        }\n        return createVerificationObjects(signatureList, literalDataList, verificationKeys, date, false, config$1);\n    }\n    /**\n     * Verify detached message signature\n     * @param {Array<PublicKey>} verificationKeys - Array of public keys to verify signatures\n     * @param {Signature} signature\n     * @param {Date} date - Verify the signature against the given date, i.e. check signature creation time < date < expiration time\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Array<{\n     *   keyID: module:type/keyid~KeyID,\n     *   signature: Promise<Signature>,\n     *   verified: Promise<true>\n     * }>>} List of signer's keyID and validity of signature.\n     * @async needed to avoid breaking change until next major release\n     */\n    // eslint-disable-next-line @typescript-eslint/require-await\n    async verifyDetached(signature, verificationKeys, date = new Date(), config$1 = config) {\n        const msg = this.unwrapCompressed();\n        const literalDataList = msg.packets.filterByTag(enums.packet.literalData);\n        if (literalDataList.length !== 1) {\n            throw new Error('Can only verify message with one literal data packet.');\n        }\n        const signatureList = signature.packets.filterByTag(enums.packet.signature); // drop UnparsablePackets\n        return createVerificationObjects(signatureList, literalDataList, verificationKeys, date, true, config$1);\n    }\n    /**\n     * Unwrap compressed message\n     * @returns {Message} Message Content of compressed message.\n     */\n    unwrapCompressed() {\n        const compressed = this.packets.filterByTag(enums.packet.compressedData);\n        if (compressed.length) {\n            return new Message(compressed[0].packets);\n        }\n        return this;\n    }\n    /**\n     * Append signature to unencrypted message object\n     * @param {String|Uint8Array} detachedSignature - The detached ASCII-armored or Uint8Array PGP signature\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     */\n    async appendSignature(detachedSignature, config$1 = config) {\n        await this.packets.read(util.isUint8Array(detachedSignature) ? detachedSignature : (await unarmor(detachedSignature)).data, allowedDetachedSignaturePackets, config$1);\n    }\n    /**\n     * Returns binary encoded message\n     * @returns {ReadableStream<Uint8Array>} Binary message.\n     */\n    write() {\n        return this.packets.write();\n    }\n    /**\n     * Returns ASCII armored text of message\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {ReadableStream<String>} ASCII armor.\n     */\n    armor(config$1 = config) {\n        const trailingPacket = this.packets[this.packets.length - 1];\n        // An ASCII-armored Encrypted Message packet sequence that ends in an v2 SEIPD packet MUST NOT contain a CRC24 footer.\n        // An ASCII-armored sequence of Signature packets that only includes v6 Signature packets MUST NOT contain a CRC24 footer.\n        const emitChecksum = trailingPacket.constructor.tag === SymEncryptedIntegrityProtectedDataPacket.tag ?\n            trailingPacket.version !== 2 :\n            this.packets.some(packet => packet.constructor.tag === SignaturePacket.tag && packet.version !== 6);\n        return armor(enums.armor.message, this.write(), null, null, null, emitChecksum, config$1);\n    }\n}\n/**\n * Create signature packets for the message\n * @param {LiteralDataPacket} literalDataPacket - the literal data packet to sign\n * @param {Array<PrivateKey>} [signingKeys] - private keys with decrypted secret key data for signing\n * @param {Array<Key>} [recipientKeys] - recipient keys to get the signing preferences from\n * @param {Signature} [signature] - Any existing detached signature to append\n * @param {Array<module:type/keyid~KeyID>} [signingKeyIDs] - Array of key IDs to use for signing. Each signingKeyIDs[i] corresponds to signingKeys[i]\n * @param {Date} [date] - Override the creationtime of the signature\n * @param {Array<UserID>} [signingUserIDs] - User IDs to sign to, e.g. [{ name:'Steve Sender', email:'steve@openpgp.org' }]\n * @param {Array<UserID>} [recipientUserIDs] - User IDs associated with `recipientKeys` to get the signing preferences from\n * @param {Array} [notations] - Notation Data to add to the signatures, e.g. [{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]\n * @param {Array} [signatureSalts] - A list of signature salts matching the number of signingKeys that should be used for v6 signatures\n * @param {Boolean} [detached] - Whether to create detached signature packets\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Promise<PacketList>} List of signature packets.\n * @async\n * @private\n */\nasync function createSignaturePackets(literalDataPacket, signingKeys, recipientKeys = [], signature = null, signingKeyIDs = [], date = new Date(), signingUserIDs = [], recipientUserIDs = [], notations = [], detached = false, config$1 = config) {\n    const packetlist = new PacketList();\n    // If data packet was created from Uint8Array, use binary, otherwise use text\n    const signatureType = literalDataPacket.text === null ?\n        enums.signature.binary : enums.signature.text;\n    await Promise.all(signingKeys.map(async (primaryKey, i) => {\n        const signingUserID = signingUserIDs[i];\n        if (!primaryKey.isPrivate()) {\n            throw new Error('Need private key for signing');\n        }\n        const signingKey = await primaryKey.getSigningKey(signingKeyIDs[i], date, signingUserID, config$1);\n        return createSignaturePacket(literalDataPacket, recipientKeys.length ? recipientKeys : [primaryKey], signingKey.keyPacket, { signatureType }, date, recipientUserIDs, notations, detached, config$1);\n    })).then(signatureList => {\n        packetlist.push(...signatureList);\n    });\n    if (signature) {\n        const existingSigPacketlist = signature.packets.filterByTag(enums.packet.signature);\n        packetlist.push(...existingSigPacketlist);\n    }\n    return packetlist;\n}\n/**\n * Create object containing signer's keyID and validity of signature\n * @param {SignaturePacket} signature - Signature packet\n * @param {Array<LiteralDataPacket>} literalDataList - Array of literal data packets\n * @param {Array<PublicKey>} verificationKeys - Array of public keys to verify signatures\n * @param {Date} [date] - Check signature validity with respect to the given date\n * @param {Boolean} [detached] - Whether to verify detached signature packets\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {{\n *   keyID: module:type/keyid~KeyID,\n *   signature: Promise<Signature>,\n *   verified: Promise<true>\n * }} signer's keyID and validity of signature\n * @async\n * @private\n */\nfunction createVerificationObject(signature, literalDataList, verificationKeys, date = new Date(), detached = false, config$1 = config) {\n    let primaryKey;\n    let unverifiedSigningKey;\n    for (const key of verificationKeys) {\n        const issuerKeys = key.getKeys(signature.issuerKeyID);\n        if (issuerKeys.length > 0) {\n            primaryKey = key;\n            unverifiedSigningKey = issuerKeys[0];\n            break;\n        }\n    }\n    const isOnePassSignature = signature instanceof OnePassSignaturePacket;\n    const signaturePacketPromise = isOnePassSignature ? signature.correspondingSig : signature;\n    const verifiedSig = {\n        keyID: signature.issuerKeyID,\n        verified: (async () => {\n            if (!unverifiedSigningKey) {\n                throw new Error(`Could not find signing key with key ID ${signature.issuerKeyID.toHex()}`);\n            }\n            await signature.verify(unverifiedSigningKey.keyPacket, signature.signatureType, literalDataList[0], date, detached, config$1);\n            const signaturePacket = await signaturePacketPromise;\n            if (unverifiedSigningKey.getCreationTime() > signaturePacket.created) {\n                throw new Error('Key is newer than the signature');\n            }\n            // We pass the signature creation time to check whether the key was expired at the time of signing.\n            // We check this after signature verification because for streamed one-pass signatures, the creation time is not available before\n            try {\n                await primaryKey.getSigningKey(unverifiedSigningKey.getKeyID(), signaturePacket.created, undefined, config$1);\n            }\n            catch (e) {\n                // If a key was reformatted then the self-signatures of the signing key might be in the future compared to the message signature,\n                // making the key invalid at the time of signing.\n                // However, if the key is valid at the given `date`, we still allow using it provided the relevant `config` setting is enabled.\n                // Note: we do not support the edge case of a key that was reformatted and it has expired.\n                if (config$1.allowInsecureVerificationWithReformattedKeys && e.message.match(/Signature creation time is in the future/)) {\n                    await primaryKey.getSigningKey(unverifiedSigningKey.getKeyID(), date, undefined, config$1);\n                }\n                else {\n                    throw e;\n                }\n            }\n            return true;\n        })(),\n        signature: (async () => {\n            const signaturePacket = await signaturePacketPromise;\n            const packetlist = new PacketList();\n            signaturePacket && packetlist.push(signaturePacket);\n            return new Signature(packetlist);\n        })()\n    };\n    // Mark potential promise rejections as \"handled\". This is needed because in\n    // some cases, we reject them before the user has a reasonable chance to\n    // handle them (e.g. `await readToEnd(result.data); await result.verified` and\n    // the data stream errors).\n    verifiedSig.signature.catch(() => { });\n    verifiedSig.verified.catch(() => { });\n    return verifiedSig;\n}\n/**\n * Create list of objects containing signer's keyID and validity of signature\n * @param {Array<SignaturePacket>} signatureList - Array of signature packets\n * @param {Array<LiteralDataPacket>} literalDataList - Array of literal data packets\n * @param {Array<PublicKey>} verificationKeys - Array of public keys to verify signatures\n * @param {Date} date - Verify the signature against the given date,\n *                    i.e. check signature creation time < date < expiration time\n * @param {Boolean} [detached] - Whether to verify detached signature packets\n * @param {Object} [config] - Full configuration, defaults to openpgp.config\n * @returns {Array<{\n *   keyID: module:type/keyid~KeyID,\n *   signature: Promise<Signature>,\n *   verified: Promise<true>\n * }>} list of signer's keyID and validity of signatures (one entry per signature packet in input)\n * @private\n */\nfunction createVerificationObjects(signatureList, literalDataList, verificationKeys, date = new Date(), detached = false, config$1 = config) {\n    return signatureList\n        .filter(signature => ['text', 'binary'].includes(enums.read(enums.signature, signature.signatureType)))\n        .map(signature => createVerificationObject(signature, literalDataList, verificationKeys, date, detached, config$1));\n}\n/**\n * Reads an (optionally armored) OpenPGP message and returns a Message object\n * @param {Object} options\n * @param {String | ReadableStream<String>} [options.armoredMessage] - Armored message to be parsed\n * @param {Uint8Array | ReadableStream<Uint8Array>} [options.binaryMessage] - Binary to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<Message>} New message object.\n * @async\n * @static\n */\nasync function readMessage({ armoredMessage, binaryMessage, config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    let input = armoredMessage || binaryMessage;\n    if (!input) {\n        throw new Error('readMessage: must pass options object containing `armoredMessage` or `binaryMessage`');\n    }\n    if (armoredMessage && !util.isString(armoredMessage) && !util.isStream(armoredMessage)) {\n        throw new Error('readMessage: options.armoredMessage must be a string or stream');\n    }\n    if (binaryMessage && !util.isUint8Array(binaryMessage) && !util.isStream(binaryMessage)) {\n        throw new Error('readMessage: options.binaryMessage must be a Uint8Array or stream');\n    }\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    const streamType = util.isStream(input);\n    if (armoredMessage) {\n        const { type, data } = await unarmor(input);\n        if (type !== enums.armor.message) {\n            throw new Error('Armored text not of type message');\n        }\n        input = data;\n    }\n    const packetlist = await PacketList.fromBinary(input, allowedMessagePackets, config$1, new MessageGrammarValidator());\n    const message = new Message(packetlist);\n    message.fromStream = streamType;\n    return message;\n}\n/**\n * Creates new message object from text or binary data.\n * @param {Object} options\n * @param {String | ReadableStream<String>} [options.text] - The text message contents\n * @param {Uint8Array | ReadableStream<Uint8Array>} [options.binary] - The binary message contents\n * @param {String} [options.filename=\"\"] - Name of the file (if any)\n * @param {Date} [options.date=current date] - Date of the message, or modification date of the file\n * @param {'utf8'|'binary'|'text'|'mime'} [options.format='utf8' if text is passed, 'binary' otherwise] - Data packet type\n * @returns {Promise<Message>} New message object.\n * @async not necessary, but needed to align with readMessage\n * @static\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function createMessage({ text, binary, filename, date = new Date(), format = text !== undefined ? 'utf8' : 'binary', ...rest }) {\n    const input = text !== undefined ? text : binary;\n    if (input === undefined) {\n        throw new Error('createMessage: must pass options object containing `text` or `binary`');\n    }\n    if (text && !util.isString(text) && !util.isStream(text)) {\n        throw new Error('createMessage: options.text must be a string or stream');\n    }\n    if (binary && !util.isUint8Array(binary) && !util.isStream(binary)) {\n        throw new Error('createMessage: options.binary must be a Uint8Array or stream');\n    }\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    const streamType = util.isStream(input);\n    const literalDataPacket = new LiteralDataPacket(date);\n    if (text !== undefined) {\n        literalDataPacket.setText(input, enums.write(enums.literal, format));\n    }\n    else {\n        literalDataPacket.setBytes(input, enums.write(enums.literal, format));\n    }\n    if (filename !== undefined) {\n        literalDataPacket.setFilename(filename);\n    }\n    const literalDataPacketlist = new PacketList();\n    literalDataPacketlist.push(literalDataPacket);\n    const message = new Message(literalDataPacketlist);\n    message.fromStream = streamType;\n    return message;\n}\n\n/** @access public */\n// GPG4Browsers - An OpenPGP implementation in javascript\n// Copyright (C) 2011 Recurity Labs GmbH\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n// A Cleartext message can contain the following packets\nconst allowedPackets = /*#__PURE__*/ util.constructAllowedPackets([SignaturePacket]);\n/**\n * Class that represents an OpenPGP cleartext signed message.\n * See {@link https://tools.ietf.org/html/rfc4880#section-7}\n */\nclass CleartextMessage {\n    /**\n     * @param {String} text - The cleartext of the signed message\n     * @param {Signature} signature - The detached signature or an empty signature for unsigned messages\n     */\n    constructor(text, signature) {\n        // remove trailing whitespace and normalize EOL to canonical form <CR><LF>\n        this.text = util.removeTrailingSpaces(text).replace(/\\r?\\n/g, '\\r\\n');\n        if (signature && !(signature instanceof Signature)) {\n            throw new Error('Invalid signature input');\n        }\n        this.signature = signature || new Signature(new PacketList());\n    }\n    /**\n     * Returns the key IDs of the keys that signed the cleartext message\n     * @returns {Array<module:type/keyid~KeyID>} Array of keyID objects.\n     */\n    getSigningKeyIDs() {\n        const keyIDs = [];\n        const signatureList = this.signature.packets;\n        signatureList.forEach(function (packet) {\n            keyIDs.push(packet.issuerKeyID);\n        });\n        return keyIDs;\n    }\n    /**\n     * Sign the cleartext message\n     * @param {Array<Key>} signingKeys - private keys with decrypted secret key data for signing\n     * @param {Array<Key>} recipientKeys - recipient keys to get the signing preferences from\n     * @param {Signature} [signature] - Any existing detached signature\n     * @param {Array<module:type/keyid~KeyID>} [signingKeyIDs] - Array of key IDs to use for signing. Each signingKeyIDs[i] corresponds to privateKeys[i]\n     * @param {Date} [date] - The creation time of the signature that should be created\n     * @param {Array} [signingKeyIDs] - User IDs to sign with, e.g. [{ name:'Steve Sender', email:'steve@openpgp.org' }]\n     * @param {Array} [recipientUserIDs] - User IDs associated with `recipientKeys` to get the signing preferences from\n     * @param {Array} [notations] - Notation Data to add to the signatures, e.g. [{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<CleartextMessage>} New cleartext message with signed content.\n     * @async\n     */\n    async sign(signingKeys, recipientKeys = [], signature = null, signingKeyIDs = [], date = new Date(), signingUserIDs = [], recipientUserIDs = [], notations = [], config$1 = config) {\n        const literalDataPacket = new LiteralDataPacket();\n        literalDataPacket.setText(this.text);\n        const newSignature = new Signature(await createSignaturePackets(literalDataPacket, signingKeys, recipientKeys, signature, signingKeyIDs, date, signingUserIDs, recipientUserIDs, notations, true, config$1));\n        return new CleartextMessage(this.text, newSignature);\n    }\n    /**\n     * Verify signatures of cleartext signed message\n     * @param {Array<Key>} keys - Array of keys to verify signatures\n     * @param {Date} [date] - Verify the signature against the given date, i.e. check signature creation time < date < expiration time\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {Promise<Array<{\n     *   keyID: module:type/keyid~KeyID,\n     *   signature: Promise<Signature>,\n     *   verified: Promise<true>\n     * }>>} List of signer's keyID and validity of signature.\n     * @async\n     */\n    verify(keys, date = new Date(), config$1 = config) {\n        const signatureList = this.signature.packets.filterByTag(enums.packet.signature); // drop UnparsablePackets\n        const literalDataPacket = new LiteralDataPacket();\n        // we assume that cleartext signature is generated based on UTF8 cleartext\n        literalDataPacket.setText(this.text);\n        return createVerificationObjects(signatureList, [literalDataPacket], keys, date, true, config$1);\n    }\n    /**\n     * Get cleartext\n     * @returns {String} Cleartext of message.\n     */\n    getText() {\n        // normalize end of line to \\n\n        return this.text.replace(/\\r\\n/g, '\\n');\n    }\n    /**\n     * Returns ASCII armored text of cleartext signed message\n     * @param {Object} [config] - Full configuration, defaults to openpgp.config\n     * @returns {String | ReadableStream<String>} ASCII armor.\n     */\n    armor(config$1 = config) {\n        // emit header and checksum if one of the signatures has a version not 6\n        const emitHeaderAndChecksum = this.signature.packets.some(packet => packet.version !== 6);\n        const hash = emitHeaderAndChecksum ?\n            Array.from(new Set(this.signature.packets.map(packet => enums.read(enums.hash, packet.hashAlgorithm).toUpperCase()))).join() :\n            null;\n        const body = {\n            hash,\n            text: this.text,\n            data: this.signature.packets.write()\n        };\n        // An ASCII-armored sequence of Signature packets that only includes v6 Signature packets MUST NOT contain a CRC24 footer.\n        return armor(enums.armor.signed, body, undefined, undefined, undefined, emitHeaderAndChecksum, config$1);\n    }\n}\n/**\n * Reads an OpenPGP cleartext signed message and returns a CleartextMessage object\n * @param {Object} options\n * @param {String} options.cleartextMessage - Text to be parsed\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<CleartextMessage>} New cleartext message object.\n * @async\n * @static\n */\nasync function readCleartextMessage({ cleartextMessage, config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    if (!cleartextMessage) {\n        throw new Error('readCleartextMessage: must pass options object containing `cleartextMessage`');\n    }\n    if (!util.isString(cleartextMessage)) {\n        throw new Error('readCleartextMessage: options.cleartextMessage must be a string');\n    }\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    const input = await unarmor(cleartextMessage);\n    if (input.type !== enums.armor.signed) {\n        throw new Error('No cleartext signed message.');\n    }\n    const packetlist = await PacketList.fromBinary(input.data, allowedPackets, config$1);\n    verifyHeaders(input.headers, packetlist);\n    const signature = new Signature(packetlist);\n    return new CleartextMessage(input.text, signature);\n}\n/**\n * Compare hash algorithm specified in the armor header with signatures\n * @param {Array<String>} headers - Armor headers\n * @param {PacketList} packetlist - The packetlist with signature packets\n * @private\n */\nfunction verifyHeaders(headers, packetlist) {\n    const checkHashAlgos = function (hashAlgos) {\n        const check = packet => algo => packet.hashAlgorithm === algo;\n        for (let i = 0; i < packetlist.length; i++) {\n            if (packetlist[i].constructor.tag === enums.packet.signature && !hashAlgos.some(check(packetlist[i]))) {\n                return false;\n            }\n        }\n        return true;\n    };\n    const hashAlgos = [];\n    headers.forEach(header => {\n        const hashHeader = header.match(/^Hash: (.+)$/); // get header value\n        if (hashHeader) {\n            const parsedHashIDs = hashHeader[1]\n                .replace(/\\s/g, '') // remove whitespace\n                .split(',')\n                .map(hashName => {\n                try {\n                    return enums.write(enums.hash, hashName.toLowerCase());\n                }\n                catch {\n                    throw new Error('Unknown hash algorithm in armor header: ' + hashName.toLowerCase());\n                }\n            });\n            hashAlgos.push(...parsedHashIDs);\n        }\n        else {\n            throw new Error('Only \"Hash\" header allowed in cleartext signed message');\n        }\n    });\n    if (hashAlgos.length && !checkHashAlgos(hashAlgos)) {\n        throw new Error('Hash algorithm mismatch in armor header and signature');\n    }\n}\n/**\n * Creates a new CleartextMessage object from text\n * @param {Object} options\n * @param {String} options.text\n * @static\n * @async not necessary, but needed to align with createMessage\n */\n// eslint-disable-next-line @typescript-eslint/require-await\nasync function createCleartextMessage({ text, ...rest }) {\n    if (!text) {\n        throw new Error('createCleartextMessage: must pass options object containing `text`');\n    }\n    if (!util.isString(text)) {\n        throw new Error('createCleartextMessage: options.text must be a string');\n    }\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    return new CleartextMessage(text);\n}\n\n/** @access public */\n// OpenPGP.js - An OpenPGP implementation in javascript\n// Copyright (C) 2016 Tankred Hase\n//\n// This library is free software; you can redistribute it and/or\n// modify it under the terms of the GNU Lesser General Public\n// License as published by the Free Software Foundation; either\n// version 3.0 of the License, or (at your option) any later version.\n//\n// This library is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n// Lesser General Public License for more details.\n//\n// You should have received a copy of the GNU Lesser General Public\n// License along with this library; if not, write to the Free Software\n// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n//////////////////////\n//                  //\n//   Key handling   //\n//                  //\n//////////////////////\n/**\n * Generates a new OpenPGP key pair. Supports RSA and ECC keys, as well as the newer Curve448 and Curve25519 keys.\n * By default, primary and subkeys will be of same type.\n * The generated primary key will have signing capabilities. By default, one subkey with encryption capabilities is also generated.\n * @param {Object} options\n * @param {Object|Array<Object>} options.userIDs - User IDs as objects: `{ name: 'Jo Doe', email: 'info@jo.com' }`\n * @param {'ecc'|'rsa'|'curve448'|'curve25519'} [options.type='ecc'] - The primary key algorithm type: ECC (default for v4 keys), RSA, Curve448 or Curve25519 (new format, default for v6 keys).\n *                                                                     Note: Curve448 and Curve25519 (new format) are not widely supported yet.\n * @param {String} [options.passphrase=(not protected)] - The passphrase used to encrypt the generated private key. If omitted or empty, the key won't be encrypted.\n * @param {Number} [options.rsaBits=4096] - Number of bits for RSA keys\n * @param {String} [options.curve='curve25519Legacy'] - Elliptic curve for ECC keys:\n *                                             curve25519Legacy (default), nistP256, nistP384, nistP521, secp256k1,\n *                                             brainpoolP256r1, brainpoolP384r1, or brainpoolP512r1\n * @param {Date} [options.date=current date] - Override the creation date of the key and the key signatures\n * @param {Number} [options.keyExpirationTime=0 (never expires)] - Number of seconds from the key creation time after which the key expires\n * @param {Array<Object>} [options.subkeys=a single encryption subkey] - Options for each subkey e.g. `[{sign: true, passphrase: '123'}]`\n *                                             default to main key options, except for `sign` parameter that defaults to false, and indicates whether the subkey should sign rather than encrypt\n * @param {'armored'|'binary'|'object'} [options.format='armored'] - format of the output keys\n * @param {Object|Object[]} [options.signatureNotations=[]] - Array of notations to add to the primary self-signature, e.g. `[{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]`\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<Object>} The generated key object in the form:\n *                                     { privateKey:PrivateKey|Uint8Array|String, publicKey:PublicKey|Uint8Array|String, revocationCertificate:String }\n * @async\n * @static\n */\nasync function generateKey({ userIDs = [], passphrase, type, curve, rsaBits = 4096, keyExpirationTime = 0, date = new Date(), subkeys = [{}], format = 'armored', signatureNotations = [], config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    checkConfig(config$1);\n    if (!type && !curve) {\n        type = config$1.v6Keys ? 'curve25519' : 'ecc'; // default to new curve25519 for v6 keys (legacy curve25519 cannot be used with them)\n        curve = 'curve25519Legacy'; // unused with type != 'ecc'\n    }\n    else {\n        type = type || 'ecc';\n        curve = curve || 'curve25519Legacy';\n    }\n    userIDs = toArray(userIDs);\n    signatureNotations = toArray(signatureNotations);\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    if (userIDs.length === 0 && !config$1.v6Keys) {\n        throw new Error('UserIDs are required for V4 keys');\n    }\n    if (type === 'rsa' && rsaBits < config$1.minRSABits) {\n        throw new Error(`rsaBits should be at least ${config$1.minRSABits}, got: ${rsaBits}`);\n    }\n    const options = { userIDs, passphrase, type, rsaBits, curve, keyExpirationTime, date, subkeys, signatureNotations };\n    try {\n        const { key, revocationCertificate } = await generate(options, config$1);\n        key.getKeys().forEach(({ keyPacket }) => checkKeyRequirements(keyPacket, config$1));\n        return {\n            privateKey: formatObject(key, format, config$1),\n            publicKey: formatObject(key.toPublic(), format, config$1),\n            revocationCertificate\n        };\n    }\n    catch (err) {\n        throw util.wrapError('Error generating keypair', err);\n    }\n}\n/**\n * Reformats signature packets for a key and rewraps key object.\n * @param {Object} options\n * @param {PrivateKey} options.privateKey - Private key to reformat\n * @param {Object|Array<Object>} options.userIDs - User IDs as objects: `{ name: 'Jo Doe', email: 'info@jo.com' }`\n * @param {String} [options.passphrase=(not protected)] - The passphrase used to encrypt the reformatted private key. If omitted or empty, the key won't be encrypted.\n * @param {Number} [options.keyExpirationTime=0 (never expires)] - Number of seconds from the key creation time after which the key expires\n * @param {Date}   [options.date] - Override the creation date of the key signatures. If the key was previously used to sign messages, it is recommended\n *                                  to set the same date as the key creation time to ensure that old message signatures will still be verifiable using the reformatted key.\n * @param {'armored'|'binary'|'object'} [options.format='armored'] - format of the output keys\n * @param {Object|Object[]} [options.signatureNotations=[]] - Array of notations to add to the primary self-signature, e.g. `[{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]`\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<Object>} The generated key object in the form:\n *                                     { privateKey:PrivateKey|Uint8Array|String, publicKey:PublicKey|Uint8Array|String, revocationCertificate:String }\n * @async\n * @static\n */\nasync function reformatKey({ privateKey, userIDs = [], passphrase, keyExpirationTime = 0, date, format = 'armored', signatureNotations = [], config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    checkConfig(config$1);\n    userIDs = toArray(userIDs);\n    signatureNotations = toArray(signatureNotations);\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    if (userIDs.length === 0 && privateKey.keyPacket.version !== 6) {\n        throw new Error('UserIDs are required for V4 keys');\n    }\n    const options = { privateKey, userIDs, passphrase, keyExpirationTime, date, signatureNotations };\n    try {\n        const { key: reformattedKey, revocationCertificate } = await reformat(options, config$1);\n        return {\n            privateKey: formatObject(reformattedKey, format, config$1),\n            publicKey: formatObject(reformattedKey.toPublic(), format, config$1),\n            revocationCertificate\n        };\n    }\n    catch (err) {\n        throw util.wrapError('Error reformatting keypair', err);\n    }\n}\n/**\n * Revokes a key. Requires either a private key or a revocation certificate.\n *   If a revocation certificate is passed, the reasonForRevocation parameter will be ignored.\n * @param {Object} options\n * @param {Key} options.key - Public or private key to revoke\n * @param {String} [options.revocationCertificate] - Revocation certificate to revoke the key with\n * @param {Object} [options.reasonForRevocation] - Object indicating the reason for revocation\n * @param {module:enums.reasonForRevocation} [options.reasonForRevocation.flag=[noReason]{@link module:enums.reasonForRevocation}] - Flag indicating the reason for revocation\n * @param {String} [options.reasonForRevocation.string=\"\"] - String explaining the reason for revocation\n * @param {Date} [options.date] - Use the given date instead of the current time to verify validity of revocation certificate (if provided), or as creation time of the revocation signature\n * @param {'armored'|'binary'|'object'} [options.format='armored'] - format of the output key(s)\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<Object>} The revoked key in the form:\n *                              { privateKey:PrivateKey|Uint8Array|String, publicKey:PublicKey|Uint8Array|String } if private key is passed, or\n *                              { privateKey: null, publicKey:PublicKey|Uint8Array|String } otherwise\n * @async\n * @static\n */\nasync function revokeKey({ key, revocationCertificate, reasonForRevocation, date = new Date(), format = 'armored', config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    checkConfig(config$1);\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    try {\n        const revokedKey = revocationCertificate ?\n            await key.applyRevocationCertificate(revocationCertificate, date, config$1) :\n            await key.revoke(reasonForRevocation, date, config$1);\n        return revokedKey.isPrivate() ? {\n            privateKey: formatObject(revokedKey, format, config$1),\n            publicKey: formatObject(revokedKey.toPublic(), format, config$1)\n        } : {\n            privateKey: null,\n            publicKey: formatObject(revokedKey, format, config$1)\n        };\n    }\n    catch (err) {\n        throw util.wrapError('Error revoking key', err);\n    }\n}\n/**\n * Unlock a private key with the given passphrase.\n * This method does not change the original key.\n * @param {Object} options\n * @param {PrivateKey} options.privateKey - The private key to decrypt\n * @param {String|Array<String>} options.passphrase - The user's passphrase(s)\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<PrivateKey>} The unlocked key object.\n * @async\n */\nasync function decryptKey({ privateKey, passphrase, config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    checkConfig(config$1);\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    if (!privateKey.isPrivate()) {\n        throw new Error('Cannot decrypt a public key');\n    }\n    const clonedPrivateKey = privateKey.clone(true);\n    const passphrases = util.isArray(passphrase) ? passphrase : [passphrase];\n    try {\n        await Promise.all(clonedPrivateKey.getKeys().map(key => (\n        // try to decrypt each key with any of the given passphrases\n        util.anyPromise(passphrases.map(passphrase => key.keyPacket.decrypt(passphrase, config$1))))));\n        await clonedPrivateKey.validate(config$1);\n        return clonedPrivateKey;\n    }\n    catch (err) {\n        clonedPrivateKey.clearPrivateParams();\n        throw util.wrapError('Error decrypting private key', err);\n    }\n}\n/**\n * Lock a private key with the given passphrase.\n * This method does not change the original key.\n * @param {Object} options\n * @param {PrivateKey} options.privateKey - The private key to encrypt\n * @param {String|Array<String>} options.passphrase - If multiple passphrases, they should be in the same order as the packets each should encrypt\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<PrivateKey>} The locked key object.\n * @async\n */\nasync function encryptKey({ privateKey, passphrase, config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    checkConfig(config$1);\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    if (!privateKey.isPrivate()) {\n        throw new Error('Cannot encrypt a public key');\n    }\n    const clonedPrivateKey = privateKey.clone(true);\n    const keys = clonedPrivateKey.getKeys();\n    const passphrases = util.isArray(passphrase) ? passphrase : new Array(keys.length).fill(passphrase);\n    if (passphrases.length !== keys.length) {\n        throw new Error('Invalid number of passphrases given for key encryption');\n    }\n    try {\n        await Promise.all(keys.map(async (key, i) => {\n            const { keyPacket } = key;\n            await keyPacket.encrypt(passphrases[i], config$1);\n            keyPacket.clearPrivateParams();\n        }));\n        return clonedPrivateKey;\n    }\n    catch (err) {\n        clonedPrivateKey.clearPrivateParams();\n        throw util.wrapError('Error encrypting private key', err);\n    }\n}\n///////////////////////////////////////////\n//                                       //\n//   Message encryption and decryption   //\n//                                       //\n///////////////////////////////////////////\n/**\n * Encrypts a message using public keys, passwords or both at once. At least one of `encryptionKeys`, `passwords` or `sessionKeys`\n *   must be specified. If signing keys are specified, those will be used to sign the message.\n * @param {Object} options\n * @param {Message} options.message - Message to be encrypted as created by {@link createMessage}\n * @param {PublicKey|PublicKey[]} [options.encryptionKeys] - Array of keys or single key, used to encrypt the message\n * @param {PrivateKey|PrivateKey[]} [options.signingKeys] - Private keys for signing. If omitted message will not be signed\n * @param {String|String[]} [options.passwords] - Array of passwords or a single password to encrypt the message\n * @param {Object} [options.sessionKey] - Session key in the form: `{ data:Uint8Array, algorithm:String }`\n * @param {'armored'|'binary'|'object'} [options.format='armored'] - Format of the returned message\n * @param {Signature} [options.signature] - A detached signature to add to the encrypted message\n * @param {Boolean} [options.wildcard=false] - Use a key ID of 0 instead of the public key IDs\n * @param {KeyID|KeyID[]} [options.signingKeyIDs=latest-created valid signing (sub)keys] - Array of key IDs to use for signing. Each `signingKeyIDs[i]` corresponds to `signingKeys[i]`\n * @param {KeyID|KeyID[]} [options.encryptionKeyIDs=latest-created valid encryption (sub)keys] - Array of key IDs to use for encryption. Each `encryptionKeyIDs[i]` corresponds to `encryptionKeys[i]`\n * @param {Date} [options.date=current date] - Override the creation date of the message signature\n * @param {Object|Object[]} [options.signingUserIDs=primary user IDs] - Array of user IDs to sign with, one per key in `signingKeys`, e.g. `[{ name: 'Steve Sender', email: 'steve@openpgp.org' }]`\n * @param {Object|Object[]} [options.encryptionUserIDs=primary user IDs] - Array of user IDs to encrypt for, one per key in `encryptionKeys`, e.g. `[{ name: 'Robert Receiver', email: 'robert@openpgp.org' }]`\n * @param {Object|Object[]} [options.signatureNotations=[]] - Array of notations to add to the signatures, e.g. `[{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]`\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<MaybeStream<String>|MaybeStream<Uint8Array>>} Encrypted message (string if `armor` was true, the default; Uint8Array if `armor` was false).\n * @async\n * @static\n */\nasync function encrypt({ message, encryptionKeys, signingKeys, passwords, sessionKey, format = 'armored', signature = null, wildcard = false, signingKeyIDs = [], encryptionKeyIDs = [], date = new Date(), signingUserIDs = [], encryptionUserIDs = [], signatureNotations = [], config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    checkConfig(config$1);\n    checkMessage(message);\n    checkOutputMessageFormat(format);\n    encryptionKeys = toArray(encryptionKeys);\n    signingKeys = toArray(signingKeys);\n    passwords = toArray(passwords);\n    signingKeyIDs = toArray(signingKeyIDs);\n    encryptionKeyIDs = toArray(encryptionKeyIDs);\n    signingUserIDs = toArray(signingUserIDs);\n    encryptionUserIDs = toArray(encryptionUserIDs);\n    signatureNotations = toArray(signatureNotations);\n    if (rest.detached) {\n        throw new Error(\"The `detached` option has been removed from openpgp.encrypt, separately call openpgp.sign instead. Don't forget to remove the `privateKeys` option as well.\");\n    }\n    if (rest.publicKeys)\n        throw new Error('The `publicKeys` option has been removed from openpgp.encrypt, pass `encryptionKeys` instead');\n    if (rest.privateKeys)\n        throw new Error('The `privateKeys` option has been removed from openpgp.encrypt, pass `signingKeys` instead');\n    if (rest.armor !== undefined)\n        throw new Error('The `armor` option has been removed from openpgp.encrypt, pass `format` instead.');\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    if (!signingKeys) {\n        signingKeys = [];\n    }\n    try {\n        if (signingKeys.length || signature) { // sign the message only if signing keys or signature is specified\n            message = await message.sign(signingKeys, encryptionKeys, signature, signingKeyIDs, date, signingUserIDs, encryptionKeyIDs, signatureNotations, config$1);\n        }\n        message = message.compress(await getPreferredCompressionAlgo(encryptionKeys, date, encryptionUserIDs, config$1), config$1);\n        message = await message.encrypt(encryptionKeys, passwords, sessionKey, wildcard, encryptionKeyIDs, date, encryptionUserIDs, config$1);\n        if (format === 'object')\n            return message;\n        // serialize data\n        const armor = format === 'armored';\n        const data = armor ? message.armor(config$1) : message.write();\n        return await convertStream(data);\n    }\n    catch (err) {\n        throw util.wrapError('Error encrypting message', err);\n    }\n}\n/**\n * Decrypts a message with the user's private key, a session key or a password.\n * One of `decryptionKeys`, `sessionkeys` or `passwords` must be specified (passing a combination of these options is not supported).\n * @param {Object} options\n * @param {Message} options.message - The message object with the encrypted data\n * @param {PrivateKey|PrivateKey[]} [options.decryptionKeys] - Private keys with decrypted secret key data or session key\n * @param {String|String[]} [options.passwords] - Passwords to decrypt the message\n * @param {Object|Object[]} [options.sessionKeys] - Session keys in the form: { data:Uint8Array, algorithm:String }\n * @param {PublicKey|PublicKey[]} [options.verificationKeys] - Array of public keys or single key, to verify signatures\n * @param {Boolean} [options.expectSigned=false] - If true, data decryption fails if the message is not signed with the provided publicKeys\n * @param {'utf8'|'binary'} [options.format='utf8'] - Whether to return data as a string(Stream) or Uint8Array(Stream). If 'utf8' (the default), also normalize newlines.\n * @param {Signature} [options.signature] - Detached signature for verification\n * @param {Date} [options.date=current date] - Use the given date for verification instead of the current time\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<Object>} Object containing decrypted and verified message in the form:\n *\n *     {\n *       data: MaybeStream<String>, (if format was 'utf8', the default)\n *       data: MaybeStream<Uint8Array>, (if format was 'binary')\n *       filename: String,\n *       signatures: [\n *         {\n *           keyID: module:type/keyid~KeyID,\n *           verified: Promise<true>,\n *           signature: Promise<Signature>\n *         }, ...\n *       ]\n *     }\n *\n *     where `signatures` contains a separate entry for each signature packet found in the input message.\n * @async\n * @static\n */\nasync function decrypt({ message, decryptionKeys, passwords, sessionKeys, verificationKeys, expectSigned = false, format = 'utf8', signature = null, date = new Date(), config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    checkConfig(config$1);\n    checkMessage(message);\n    verificationKeys = toArray(verificationKeys);\n    decryptionKeys = toArray(decryptionKeys);\n    passwords = toArray(passwords);\n    sessionKeys = toArray(sessionKeys);\n    if (rest.privateKeys)\n        throw new Error('The `privateKeys` option has been removed from openpgp.decrypt, pass `decryptionKeys` instead');\n    if (rest.publicKeys)\n        throw new Error('The `publicKeys` option has been removed from openpgp.decrypt, pass `verificationKeys` instead');\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    try {\n        const decrypted = await message.decrypt(decryptionKeys, passwords, sessionKeys, date, config$1);\n        if (!verificationKeys) {\n            verificationKeys = [];\n        }\n        const result = {};\n        result.signatures = signature ? await decrypted.verifyDetached(signature, verificationKeys, date, config$1) : await decrypted.verify(verificationKeys, date, config$1);\n        result.data = format === 'binary' ? decrypted.getLiteralData() : decrypted.getText();\n        result.filename = decrypted.getFilename();\n        linkStreams(result, message, ...new Set([decrypted, decrypted.unwrapCompressed()]));\n        if (expectSigned) {\n            if (verificationKeys.length === 0) {\n                throw new Error('Verification keys are required to verify message signatures');\n            }\n            if (result.signatures.length === 0) {\n                throw new Error('Message is not signed');\n            }\n            result.data = concat([\n                result.data,\n                fromAsync(async () => {\n                    await util.anyPromise(result.signatures.map(sig => sig.verified));\n                    return format === 'binary' ? new Uint8Array() : '';\n                })\n            ]);\n        }\n        result.data = await convertStream(result.data);\n        return result;\n    }\n    catch (err) {\n        throw util.wrapError('Error decrypting message', err);\n    }\n}\n//////////////////////////////////////////\n//                                      //\n//   Message signing and verification   //\n//                                      //\n//////////////////////////////////////////\n/**\n * Signs a message.\n * @param {Object} options\n * @param {CleartextMessage|Message} options.message - (cleartext) message to be signed\n * @param {PrivateKey|PrivateKey[]} options.signingKeys - Array of keys or single key with decrypted secret key data to sign cleartext\n * @param {Key|Key[]} options.recipientKeys - Array of keys or single to get the signing preferences from\n * @param {'armored'|'binary'|'object'} [options.format='armored'] - Format of the returned message\n * @param {Boolean} [options.detached=false] - If the return value should contain a detached signature\n * @param {KeyID|KeyID[]} [options.signingKeyIDs=latest-created valid signing (sub)keys] - Array of key IDs to use for signing. Each signingKeyIDs[i] corresponds to signingKeys[i]\n * @param {Date} [options.date=current date] - Override the creation date of the signature\n * @param {Object|Object[]} [options.signingUserIDs=primary user IDs] - Array of user IDs to sign with, one per key in `signingKeys`, e.g. `[{ name: 'Steve Sender', email: 'steve@openpgp.org' }]`\n * @param {Object|Object[]} [options.recipientUserIDs=primary user IDs] - Array of user IDs to get the signing preferences from, one per key in `recipientKeys`\n * @param {Object|Object[]} [options.signatureNotations=[]] - Array of notations to add to the signatures, e.g. `[{ name: 'test@example.org', value: new TextEncoder().encode('test'), humanReadable: true, critical: false }]`\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<MaybeStream<String|Uint8Array>>} Signed message (string if `armor` was true, the default; Uint8Array if `armor` was false).\n * @async\n * @static\n */\nasync function sign({ message, signingKeys, recipientKeys = [], format = 'armored', detached = false, signingKeyIDs = [], date = new Date(), signingUserIDs = [], recipientUserIDs = [], signatureNotations = [], config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    checkConfig(config$1);\n    checkCleartextOrMessage(message);\n    checkOutputMessageFormat(format);\n    signingKeys = toArray(signingKeys);\n    signingKeyIDs = toArray(signingKeyIDs);\n    signingUserIDs = toArray(signingUserIDs);\n    recipientKeys = toArray(recipientKeys);\n    recipientUserIDs = toArray(recipientUserIDs);\n    signatureNotations = toArray(signatureNotations);\n    if (rest.privateKeys)\n        throw new Error('The `privateKeys` option has been removed from openpgp.sign, pass `signingKeys` instead');\n    if (rest.armor !== undefined)\n        throw new Error('The `armor` option has been removed from openpgp.sign, pass `format` instead.');\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    if (message instanceof CleartextMessage && format === 'binary')\n        throw new Error('Cannot return signed cleartext message in binary format');\n    if (message instanceof CleartextMessage && detached)\n        throw new Error('Cannot detach-sign a cleartext message');\n    if (!signingKeys || signingKeys.length === 0) {\n        throw new Error('No signing keys provided');\n    }\n    try {\n        let signature;\n        if (detached) {\n            signature = await message.signDetached(signingKeys, recipientKeys, undefined, signingKeyIDs, date, signingUserIDs, recipientUserIDs, signatureNotations, config$1);\n        }\n        else {\n            signature = await message.sign(signingKeys, recipientKeys, undefined, signingKeyIDs, date, signingUserIDs, recipientUserIDs, signatureNotations, config$1);\n        }\n        if (format === 'object')\n            return signature;\n        const armor = format === 'armored';\n        signature = armor ? signature.armor(config$1) : signature.write();\n        if (detached) {\n            signature = transformPair(message.packets.write(), async (readable, writable) => {\n                await Promise.all([\n                    pipe(signature, writable),\n                    readToEnd(readable).catch(() => { })\n                ]);\n            });\n        }\n        return await convertStream(signature);\n    }\n    catch (err) {\n        throw util.wrapError('Error signing message', err);\n    }\n}\n/**\n * Verifies signatures of cleartext signed message\n * @param {Object} options\n * @param {CleartextMessage|Message} options.message - (cleartext) message object with signatures\n * @param {PublicKey|PublicKey[]} options.verificationKeys - Array of publicKeys or single key, to verify signatures\n * @param {Boolean} [options.expectSigned=false] - If true, verification throws if the message is not signed with the provided publicKeys\n * @param {'utf8'|'binary'} [options.format='utf8'] - Whether to return data as a string(Stream) or Uint8Array(Stream). If 'utf8' (the default), also normalize newlines.\n * @param {Signature} [options.signature] - Detached signature for verification\n * @param {Date} [options.date=current date] - Use the given date for verification instead of the current time\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<Object>} Object containing verified message in the form:\n *\n *     {\n *       data: MaybeStream<String>, (if `message` was a CleartextMessage)\n *       data: MaybeStream<Uint8Array>, (if `message` was a Message)\n *       signatures: [\n *         {\n *           keyID: module:type/keyid~KeyID,\n *           verified: Promise<true>,\n *           signature: Promise<Signature>\n *         }, ...\n *       ]\n *     }\n *\n *     where `signatures` contains a separate entry for each signature packet found in the input message.\n * @async\n * @static\n */\nasync function verify({ message, verificationKeys, expectSigned = false, format = 'utf8', signature = null, date = new Date(), config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    checkConfig(config$1);\n    checkCleartextOrMessage(message);\n    verificationKeys = toArray(verificationKeys);\n    if (rest.publicKeys)\n        throw new Error('The `publicKeys` option has been removed from openpgp.verify, pass `verificationKeys` instead');\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    if (message instanceof CleartextMessage && format === 'binary')\n        throw new Error(\"Can't return cleartext message data as binary\");\n    if (message instanceof CleartextMessage && signature)\n        throw new Error(\"Can't verify detached cleartext signature\");\n    try {\n        const result = {};\n        if (signature) {\n            result.signatures = await message.verifyDetached(signature, verificationKeys, date, config$1);\n        }\n        else {\n            result.signatures = await message.verify(verificationKeys, date, config$1);\n        }\n        result.data = format === 'binary' ? message.getLiteralData() : message.getText();\n        if (message.fromStream && !signature) {\n            linkStreams(result, ...new Set([message, message.unwrapCompressed()]));\n        }\n        if (expectSigned) {\n            if (result.signatures.length === 0) {\n                throw new Error('Message is not signed');\n            }\n            result.data = concat([\n                result.data,\n                fromAsync(async () => {\n                    await util.anyPromise(result.signatures.map(sig => sig.verified));\n                    return format === 'binary' ? new Uint8Array() : '';\n                })\n            ]);\n        }\n        result.data = await convertStream(result.data);\n        return result;\n    }\n    catch (err) {\n        throw util.wrapError('Error verifying signed message', err);\n    }\n}\n///////////////////////////////////////////////\n//                                           //\n//   Session key encryption and decryption   //\n//                                           //\n///////////////////////////////////////////////\n/**\n * Generate a new session key object, taking the algorithm preferences of the passed public keys into account, if any.\n * @param {Object} options\n * @param {PublicKey|PublicKey[]} [options.encryptionKeys] - Array of public keys or single key used to select algorithm preferences for. If no keys are given, the algorithm will be [config.preferredSymmetricAlgorithm]{@link module:config.preferredSymmetricAlgorithm}\n * @param {Date} [options.date=current date] - Date to select algorithm preferences at\n * @param {Object|Object[]} [options.encryptionUserIDs=primary user IDs] - User IDs to select algorithm preferences for\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<{ data: Uint8Array, algorithm: String }>} Object with session key data and algorithm.\n * @async\n * @static\n */\nasync function generateSessionKey({ encryptionKeys, date = new Date(), encryptionUserIDs = [], config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    checkConfig(config$1);\n    encryptionKeys = toArray(encryptionKeys);\n    encryptionUserIDs = toArray(encryptionUserIDs);\n    if (rest.publicKeys)\n        throw new Error('The `publicKeys` option has been removed from openpgp.generateSessionKey, pass `encryptionKeys` instead');\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    try {\n        const sessionKeys = await Message.generateSessionKey(encryptionKeys, date, encryptionUserIDs, config$1);\n        return sessionKeys;\n    }\n    catch (err) {\n        throw util.wrapError('Error generating session key', err);\n    }\n}\n/**\n * Encrypt a symmetric session key with public keys, passwords, or both at once.\n * At least one of `encryptionKeys` or `passwords` must be specified.\n * @param {Object} options\n * @param {Uint8Array} options.data - The session key to be encrypted e.g. 16 random bytes (for aes128)\n * @param {String} options.algorithm - Algorithm of the symmetric session key e.g. 'aes128' or 'aes256'\n * @param {String} [options.aeadAlgorithm] - AEAD algorithm, e.g. 'eax' or 'ocb'\n * @param {PublicKey|PublicKey[]} [options.encryptionKeys] - Array of public keys or single key, used to encrypt the key\n * @param {String|String[]} [options.passwords] - Passwords for the message\n * @param {'armored'|'binary'} [options.format='armored'] - Format of the returned value\n * @param {Boolean} [options.wildcard=false] - Use a key ID of 0 instead of the public key IDs\n * @param {KeyID|KeyID[]} [options.encryptionKeyIDs=latest-created valid encryption (sub)keys] - Array of key IDs to use for encryption. Each encryptionKeyIDs[i] corresponds to encryptionKeys[i]\n * @param {Date} [options.date=current date] - Override the date\n * @param {Object|Object[]} [options.encryptionUserIDs=primary user IDs] - Array of user IDs to encrypt for, one per key in `encryptionKeys`, e.g. `[{ name: 'Phil Zimmermann', email: 'phil@openpgp.org' }]`\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<String|Uint8Array>} Encrypted session keys (string if `armor` was true, the default; Uint8Array if `armor` was false).\n * @async\n * @static\n */\nasync function encryptSessionKey({ data, algorithm, aeadAlgorithm, encryptionKeys, passwords, format = 'armored', wildcard = false, encryptionKeyIDs = [], date = new Date(), encryptionUserIDs = [], config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    checkConfig(config$1);\n    checkBinary(data);\n    checkString(algorithm, 'algorithm');\n    checkOutputMessageFormat(format);\n    encryptionKeys = toArray(encryptionKeys);\n    passwords = toArray(passwords);\n    encryptionKeyIDs = toArray(encryptionKeyIDs);\n    encryptionUserIDs = toArray(encryptionUserIDs);\n    if (rest.publicKeys)\n        throw new Error('The `publicKeys` option has been removed from openpgp.encryptSessionKey, pass `encryptionKeys` instead');\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    if ((!encryptionKeys || encryptionKeys.length === 0) && (!passwords || passwords.length === 0)) {\n        throw new Error('No encryption keys or passwords provided.');\n    }\n    try {\n        const message = await Message.encryptSessionKey(data, algorithm, aeadAlgorithm, encryptionKeys, passwords, wildcard, encryptionKeyIDs, date, encryptionUserIDs, config$1);\n        return formatObject(message, format, config$1);\n    }\n    catch (err) {\n        throw util.wrapError('Error encrypting session key', err);\n    }\n}\n/**\n * Decrypt symmetric session keys using private keys or passwords (not both).\n * One of `decryptionKeys` or `passwords` must be specified.\n * @param {Object} options\n * @param {Message} options.message - A message object containing the encrypted session key packets\n * @param {PrivateKey|PrivateKey[]} [options.decryptionKeys] - Private keys with decrypted secret key data\n * @param {String|String[]} [options.passwords] - Passwords to decrypt the session key\n * @param {Date} [options.date] - Date to use for key verification instead of the current time\n * @param {Object} [options.config] - Custom configuration settings to overwrite those in [config]{@link module:config}\n * @returns {Promise<Object[]>} Array of decrypted session key, algorithm pairs in the form:\n *                                            { data:Uint8Array, algorithm:String }\n * @throws if no session key could be found or decrypted\n * @async\n * @static\n */\nasync function decryptSessionKeys({ message, decryptionKeys, passwords, date = new Date(), config: config$1, ...rest }) {\n    config$1 = { ...config, ...config$1 };\n    checkConfig(config$1);\n    checkMessage(message);\n    decryptionKeys = toArray(decryptionKeys);\n    passwords = toArray(passwords);\n    if (rest.privateKeys)\n        throw new Error('The `privateKeys` option has been removed from openpgp.decryptSessionKeys, pass `decryptionKeys` instead');\n    const unknownOptions = Object.keys(rest);\n    if (unknownOptions.length > 0)\n        throw new Error(`Unknown option: ${unknownOptions.join(', ')}`);\n    try {\n        const sessionKeys = await message.decryptSessionKeys(decryptionKeys, passwords, undefined, date, config$1);\n        return sessionKeys;\n    }\n    catch (err) {\n        throw util.wrapError('Error decrypting session keys', err);\n    }\n}\n//////////////////////////\n//                      //\n//   Helper functions   //\n//                      //\n//////////////////////////\n/**\n * Input validation\n * @private\n */\nfunction checkString(data, name) {\n    if (!util.isString(data)) {\n        throw new Error('Parameter [' + (name) + '] must be of type String');\n    }\n}\nfunction checkBinary(data, name) {\n    if (!util.isUint8Array(data)) {\n        throw new Error('Parameter [' + ('data') + '] must be of type Uint8Array');\n    }\n}\nfunction checkMessage(message) {\n    if (!(message instanceof Message)) {\n        throw new Error('Parameter [message] needs to be of type Message');\n    }\n}\nfunction checkCleartextOrMessage(message) {\n    if (!(message instanceof CleartextMessage) && !(message instanceof Message)) {\n        throw new Error('Parameter [message] needs to be of type Message or CleartextMessage');\n    }\n}\nfunction checkOutputMessageFormat(format) {\n    if (format !== 'armored' && format !== 'binary' && format !== 'object') {\n        throw new Error(`Unsupported format ${format}`);\n    }\n}\nconst defaultConfigPropsCount = Object.keys(config).length;\nfunction checkConfig(config$1) {\n    const inputConfigProps = Object.keys(config$1);\n    if (inputConfigProps.length !== defaultConfigPropsCount) {\n        for (const inputProp of inputConfigProps) {\n            if (config[inputProp] === undefined) {\n                throw new Error(`Unknown config property: ${inputProp}`);\n            }\n        }\n    }\n}\n/**\n * Normalize parameter to an array if it is not undefined.\n * @param {Object} param - the parameter to be normalized\n * @returns {Array<Object>|undefined} The resulting array or undefined.\n * @private\n */\nfunction toArray(param) {\n    if (param && !util.isArray(param)) {\n        param = [param];\n    }\n    return param;\n}\n/**\n * Convert data to or from Stream\n * @param {Object} data - the data to convert\n * @returns {Promise<Object>} The data in the respective format.\n * @async\n * @private\n */\nasync function convertStream(data) {\n    const streamType = util.isStream(data);\n    if (streamType === 'array') {\n        return readToEnd(data);\n    }\n    return data;\n}\n/**\n * Link result.data to the input message stream for cancellation.\n * Also, forward errors in the input message and intermediate messages to result.data.\n * @param {Object} result - the data to convert\n * @param {Message} message - message object provided by the user\n * @param {Message} intermediateMessages - intermediate message object with packet streams to link\n * @returns {Object}\n * @private\n */\nfunction linkStreams(result, inputMessage, ...intermediateMessages) {\n    result.data = transformPair(inputMessage.packets.stream, async (readable, writable) => {\n        await pipe(result.data, writable, {\n            preventClose: true\n        });\n        const writer = getWriter(writable);\n        try {\n            // Forward errors in the message streams to result.data.\n            await readToEnd(readable, _ => _);\n            await Promise.all(intermediateMessages.map(intermediate => readToEnd(intermediate.packets.stream, _ => _)));\n            // if result.data throws, the writable will be in errored state, and `close()` fails, but its ok.\n            await writer.close();\n        }\n        catch (e) {\n            await writer.abort(e);\n        }\n    });\n}\n/**\n * Convert the object to the given format\n * @param {Key|Message} object\n * @param {'armored'|'binary'|'object'} format\n * @param {Object} config - Full configuration\n * @returns {String|Uint8Array|Object}\n * @access private\n */\nfunction formatObject(object, format, config) {\n    switch (format) {\n        case 'object':\n            return object;\n        case 'armored':\n            return object.armor(config);\n        case 'binary':\n            return object.write();\n        default:\n            throw new Error(`Unsupported format ${format}`);\n    }\n}\n\nconst crypto$2 = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n\n/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nfunction isBytes(a) {\n    return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is positive integer. */\nfunction anumber(n) {\n    if (!Number.isSafeInteger(n) || n < 0)\n        throw new Error('positive integer expected, got ' + n);\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b, ...lengths) {\n    if (!isBytes(b))\n        throw new Error('Uint8Array expected');\n    if (lengths.length > 0 && !lengths.includes(b.length))\n        throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nfunction ahash(h) {\n    if (typeof h !== 'function' || typeof h.create !== 'function')\n        throw new Error('Hash should be wrapped by utils.createHasher');\n    anumber(h.outputLen);\n    anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nfunction aexists(instance, checkFinished = true) {\n    if (instance.destroyed)\n        throw new Error('Hash instance has been destroyed');\n    if (checkFinished && instance.finished)\n        throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nfunction aoutput(out, instance) {\n    abytes(out);\n    const min = instance.outputLen;\n    if (out.length < min) {\n        throw new Error('digestInto() expects output buffer of length at least ' + min);\n    }\n}\n/** Cast u8 / u16 / u32 to u32. */\nfunction u32(arr) {\n    return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nfunction clean(...arrays) {\n    for (let i = 0; i < arrays.length; i++) {\n        arrays[i].fill(0);\n    }\n}\n/** Create DataView of an array for easy byte-level manipulation. */\nfunction createView(arr) {\n    return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nfunction rotr(word, shift) {\n    return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nfunction rotl(word, shift) {\n    return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nconst isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n/** The byte swap operation for uint32 */\nfunction byteSwap(word) {\n    return (((word << 24) & 0xff000000) |\n        ((word << 8) & 0xff0000) |\n        ((word >>> 8) & 0xff00) |\n        ((word >>> 24) & 0xff));\n}\n/** In place byte swap for Uint32Array */\nfunction byteSwap32(arr) {\n    for (let i = 0; i < arr.length; i++) {\n        arr[i] = byteSwap(arr[i]);\n    }\n    return arr;\n}\nconst swap32IfBE = isLE\n    ? (u) => u\n    : byteSwap32;\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = /* @__PURE__ */ (() => \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n    abytes(bytes);\n    // @ts-ignore\n    if (hasHexBuiltin)\n        return bytes.toHex();\n    // pre-caching improves the speed 6x\n    let hex = '';\n    for (let i = 0; i < bytes.length; i++) {\n        hex += hexes[bytes[i]];\n    }\n    return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n    if (ch >= asciis._0 && ch <= asciis._9)\n        return ch - asciis._0; // '2' => 50-48\n    if (ch >= asciis.A && ch <= asciis.F)\n        return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n    if (ch >= asciis.a && ch <= asciis.f)\n        return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n    return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n    if (typeof hex !== 'string')\n        throw new Error('hex string expected, got ' + typeof hex);\n    // @ts-ignore\n    if (hasHexBuiltin)\n        return Uint8Array.fromHex(hex);\n    const hl = hex.length;\n    const al = hl / 2;\n    if (hl % 2)\n        throw new Error('hex string expected, got unpadded hex of length ' + hl);\n    const array = new Uint8Array(al);\n    for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n        const n1 = asciiToBase16(hex.charCodeAt(hi));\n        const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n        if (n1 === undefined || n2 === undefined) {\n            const char = hex[hi] + hex[hi + 1];\n            throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n        }\n        array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n    }\n    return array;\n}\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n    if (typeof str !== 'string')\n        throw new Error('string expected');\n    return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n    if (typeof data === 'string')\n        data = utf8ToBytes(data);\n    abytes(data);\n    return data;\n}\n/** Copies several Uint8Arrays into one. */\nfunction concatBytes(...arrays) {\n    let sum = 0;\n    for (let i = 0; i < arrays.length; i++) {\n        const a = arrays[i];\n        abytes(a);\n        sum += a.length;\n    }\n    const res = new Uint8Array(sum);\n    for (let i = 0, pad = 0; i < arrays.length; i++) {\n        const a = arrays[i];\n        res.set(a, pad);\n        pad += a.length;\n    }\n    return res;\n}\n/** For runtime check if class implements interface */\nclass Hash {\n}\n/** Wraps hash function, creating an interface on top of it */\nfunction createHasher(hashCons) {\n    const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n    const tmp = hashCons();\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = () => hashCons();\n    return hashC;\n}\nfunction createXOFer(hashCons) {\n    const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n    const tmp = hashCons({});\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = (opts) => hashCons(opts);\n    return hashC;\n}\nconst wrapConstructor = createHasher;\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nfunction randomBytes(bytesLength = 32) {\n    if (crypto$2 && typeof crypto$2.getRandomValues === 'function') {\n        return crypto$2.getRandomValues(new Uint8Array(bytesLength));\n    }\n    // Legacy Node.js compatibility\n    if (crypto$2 && typeof crypto$2.randomBytes === 'function') {\n        return Uint8Array.from(crypto$2.randomBytes(bytesLength));\n    }\n    throw new Error('crypto.getRandomValues must be defined');\n}\n\n/**\n * Hex, bytes and number utilities.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst _0n$6 = /* @__PURE__ */ BigInt(0);\nconst _1n$7 = /* @__PURE__ */ BigInt(1);\n// tmp name until v2\nfunction _abool2(value, title = '') {\n    if (typeof value !== 'boolean') {\n        const prefix = title && `\"${title}\"`;\n        throw new Error(prefix + 'expected boolean, got type=' + typeof value);\n    }\n    return value;\n}\n// tmp name until v2\n/** Asserts something is Uint8Array. */\nfunction _abytes2(value, length, title = '') {\n    const bytes = isBytes(value);\n    const len = value?.length;\n    const needsLen = length !== undefined;\n    if (!bytes || (needsLen && len !== length)) {\n        const prefix = title && `\"${title}\" `;\n        const ofLen = needsLen ? ` of length ${length}` : '';\n        const got = bytes ? `length=${len}` : `type=${typeof value}`;\n        throw new Error(prefix + 'expected Uint8Array' + ofLen + ', got ' + got);\n    }\n    return value;\n}\n// Used in weierstrass, der\nfunction numberToHexUnpadded(num) {\n    const hex = num.toString(16);\n    return hex.length & 1 ? '0' + hex : hex;\n}\nfunction hexToNumber(hex) {\n    if (typeof hex !== 'string')\n        throw new Error('hex string expected, got ' + typeof hex);\n    return hex === '' ? _0n$6 : BigInt('0x' + hex); // Big Endian\n}\n// BE: Big Endian, LE: Little Endian\nfunction bytesToNumberBE(bytes) {\n    return hexToNumber(bytesToHex(bytes));\n}\nfunction bytesToNumberLE(bytes) {\n    abytes(bytes);\n    return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nfunction numberToBytesBE(n, len) {\n    return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nfunction numberToBytesLE(n, len) {\n    return numberToBytesBE(n, len).reverse();\n}\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'secret key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nfunction ensureBytes(title, hex, expectedLength) {\n    let res;\n    if (typeof hex === 'string') {\n        try {\n            res = hexToBytes(hex);\n        }\n        catch (e) {\n            throw new Error(title + ' must be hex string or Uint8Array, cause: ' + e);\n        }\n    }\n    else if (isBytes(hex)) {\n        // Uint8Array.from() instead of hash.slice() because node.js Buffer\n        // is instance of Uint8Array, and its slice() creates **mutable** copy\n        res = Uint8Array.from(hex);\n    }\n    else {\n        throw new Error(title + ' must be hex string or Uint8Array');\n    }\n    const len = res.length;\n    if (typeof expectedLength === 'number' && len !== expectedLength)\n        throw new Error(title + ' of length ' + expectedLength + ' expected, got ' + len);\n    return res;\n}\n/**\n * Copies Uint8Array. We can't use u8a.slice(), because u8a can be Buffer,\n * and Buffer#slice creates mutable copy. Never use Buffers!\n */\nfunction copyBytes(bytes) {\n    return Uint8Array.from(bytes);\n}\n/**\n * Decodes 7-bit ASCII string to Uint8Array, throws on non-ascii symbols\n * Should be safe to use for things expected to be ASCII.\n * Returns exact same result as utf8ToBytes for ASCII or throws.\n */\nfunction asciiToBytes(ascii) {\n    return Uint8Array.from(ascii, (c, i) => {\n        const charCode = c.charCodeAt(0);\n        if (c.length !== 1 || charCode > 127) {\n            throw new Error(`string contains non-ASCII character \"${ascii[i]}\" with code ${charCode} at position ${i}`);\n        }\n        return charCode;\n    });\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\n// export const utf8ToBytes: typeof utf8ToBytes_ = utf8ToBytes_;\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\n// export const bytesToUtf8: typeof bytesToUtf8_ = bytesToUtf8_;\n// Is positive bigint\nconst isPosBig = (n) => typeof n === 'bigint' && _0n$6 <= n;\nfunction inRange(n, min, max) {\n    return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max;\n}\n/**\n * Asserts min <= n < max. NOTE: It's < max and not <= max.\n * @example\n * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n)\n */\nfunction aInRange(title, n, min, max) {\n    // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)?\n    // consider P=256n, min=0n, max=P\n    // - a for min=0 would require -1:          `inRange('x', x, -1n, P)`\n    // - b would commonly require subtraction:  `inRange('x', x, 0n, P - 1n)`\n    // - our way is the cleanest:               `inRange('x', x, 0n, P)\n    if (!inRange(n, min, max))\n        throw new Error('expected valid ' + title + ': ' + min + ' <= n < ' + max + ', got ' + n);\n}\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n * TODO: merge with nLength in modular\n */\nfunction bitLen(n) {\n    let len;\n    for (len = 0; n > _0n$6; n >>= _1n$7, len += 1)\n        ;\n    return len;\n}\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nconst bitMask = (n) => (_1n$7 << BigInt(n)) - _1n$7;\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n *   const drbg = createHmacDRBG<Key>(32, 32, hmac);\n *   drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nfunction createHmacDrbg(hashLen, qByteLen, hmacFn) {\n    if (typeof hashLen !== 'number' || hashLen < 2)\n        throw new Error('hashLen must be a number');\n    if (typeof qByteLen !== 'number' || qByteLen < 2)\n        throw new Error('qByteLen must be a number');\n    if (typeof hmacFn !== 'function')\n        throw new Error('hmacFn must be a function');\n    // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n    const u8n = (len) => new Uint8Array(len); // creates Uint8Array\n    const u8of = (byte) => Uint8Array.of(byte); // another shortcut\n    let v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n    let k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n    let i = 0; // Iterations counter, will throw when over 1000\n    const reset = () => {\n        v.fill(1);\n        k.fill(0);\n        i = 0;\n    };\n    const h = (...b) => hmacFn(k, v, ...b); // hmac(k)(v, ...values)\n    const reseed = (seed = u8n(0)) => {\n        // HMAC-DRBG reseed() function. Steps D-G\n        k = h(u8of(0x00), seed); // k = hmac(k || v || 0x00 || seed)\n        v = h(); // v = hmac(k || v)\n        if (seed.length === 0)\n            return;\n        k = h(u8of(0x01), seed); // k = hmac(k || v || 0x01 || seed)\n        v = h(); // v = hmac(k || v)\n    };\n    const gen = () => {\n        // HMAC-DRBG generate() function\n        if (i++ >= 1000)\n            throw new Error('drbg: tried 1000 values');\n        let len = 0;\n        const out = [];\n        while (len < qByteLen) {\n            v = h();\n            const sl = v.slice();\n            out.push(sl);\n            len += v.length;\n        }\n        return concatBytes(...out);\n    };\n    const genUntil = (seed, pred) => {\n        reset();\n        reseed(seed); // Steps D-G\n        let res = undefined; // Step H: grind until k is in [1..n-1]\n        while (!(res = pred(gen())))\n            reseed();\n        reset();\n        return res;\n    };\n    return genUntil;\n}\nfunction _validateObject(object, fields, optFields = {}) {\n    if (!object || typeof object !== 'object')\n        throw new Error('expected valid options object');\n    function checkField(fieldName, expectedType, isOpt) {\n        const val = object[fieldName];\n        if (isOpt && val === undefined)\n            return;\n        const current = typeof val;\n        if (current !== expectedType || val === null)\n            throw new Error(`param \"${fieldName}\" is invalid: expected ${expectedType}, got ${current}`);\n    }\n    Object.entries(fields).forEach(([k, v]) => checkField(k, v, false));\n    Object.entries(optFields).forEach(([k, v]) => checkField(k, v, true));\n}\n/**\n * Memoizes (caches) computation result.\n * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed.\n */\nfunction memoized(fn) {\n    const map = new WeakMap();\n    return (arg, ...args) => {\n        const val = map.get(arg);\n        if (val !== undefined)\n            return val;\n        const computed = fn(arg, ...args);\n        map.set(arg, computed);\n        return computed;\n    };\n}\n\n/**\n * Utils for modular division and fields.\n * Field over 11 is a finite (Galois) field is integer number operations `mod 11`.\n * There is no division: it is replaced by modular multiplicative inverse.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// prettier-ignore\nconst _0n$5 = BigInt(0), _1n$6 = BigInt(1), _2n$6 = /* @__PURE__ */ BigInt(2), _3n$2 = /* @__PURE__ */ BigInt(3);\n// prettier-ignore\nconst _4n$1 = /* @__PURE__ */ BigInt(4), _5n = /* @__PURE__ */ BigInt(5), _7n$1 = /* @__PURE__ */ BigInt(7);\n// prettier-ignore\nconst _8n$1 = /* @__PURE__ */ BigInt(8), _9n = /* @__PURE__ */ BigInt(9), _16n = /* @__PURE__ */ BigInt(16);\n// Calculates a modulo b\nfunction mod(a, b) {\n    const result = a % b;\n    return result >= _0n$5 ? result : b + result;\n}\n/** Does `x^(2^power)` mod p. `pow2(30, 4)` == `30^(2^4)` */\nfunction pow2(x, power, modulo) {\n    let res = x;\n    while (power-- > _0n$5) {\n        res *= res;\n        res %= modulo;\n    }\n    return res;\n}\n/**\n * Inverses number over modulo.\n * Implemented using [Euclidean GCD](https://brilliant.org/wiki/extended-euclidean-algorithm/).\n */\nfunction invert(number, modulo) {\n    if (number === _0n$5)\n        throw new Error('invert: expected non-zero number');\n    if (modulo <= _0n$5)\n        throw new Error('invert: expected positive modulus, got ' + modulo);\n    // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n    let a = mod(number, modulo);\n    let b = modulo;\n    // prettier-ignore\n    let x = _0n$5, u = _1n$6;\n    while (a !== _0n$5) {\n        // JIT applies optimization if those two lines follow each other\n        const q = b / a;\n        const r = b % a;\n        const m = x - u * q;\n        // prettier-ignore\n        b = a, a = r, x = u, u = m;\n    }\n    const gcd = b;\n    if (gcd !== _1n$6)\n        throw new Error('invert: does not exist');\n    return mod(x, modulo);\n}\nfunction assertIsSquare(Fp, root, n) {\n    if (!Fp.eql(Fp.sqr(root), n))\n        throw new Error('Cannot find square root');\n}\n// Not all roots are possible! Example which will throw:\n// const NUM =\n// n = 72057594037927816n;\n// Fp = Field(BigInt('0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab'));\nfunction sqrt3mod4(Fp, n) {\n    const p1div4 = (Fp.ORDER + _1n$6) / _4n$1;\n    const root = Fp.pow(n, p1div4);\n    assertIsSquare(Fp, root, n);\n    return root;\n}\nfunction sqrt5mod8(Fp, n) {\n    const p5div8 = (Fp.ORDER - _5n) / _8n$1;\n    const n2 = Fp.mul(n, _2n$6);\n    const v = Fp.pow(n2, p5div8);\n    const nv = Fp.mul(n, v);\n    const i = Fp.mul(Fp.mul(nv, _2n$6), v);\n    const root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n    assertIsSquare(Fp, root, n);\n    return root;\n}\n// Based on RFC9380, Kong algorithm\n// prettier-ignore\nfunction sqrt9mod16(P) {\n    const Fp_ = Field(P);\n    const tn = tonelliShanks(P);\n    const c1 = tn(Fp_, Fp_.neg(Fp_.ONE)); //  1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n    const c2 = tn(Fp_, c1); //  2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n    const c3 = tn(Fp_, Fp_.neg(c1)); //  3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n    const c4 = (P + _7n$1) / _16n; //  4. c4 = (q + 7) / 16        # Integer arithmetic\n    return (Fp, n) => {\n        let tv1 = Fp.pow(n, c4); //  1. tv1 = x^c4\n        let tv2 = Fp.mul(tv1, c1); //  2. tv2 = c1 * tv1\n        const tv3 = Fp.mul(tv1, c2); //  3. tv3 = c2 * tv1\n        const tv4 = Fp.mul(tv1, c3); //  4. tv4 = c3 * tv1\n        const e1 = Fp.eql(Fp.sqr(tv2), n); //  5.  e1 = (tv2^2) == x\n        const e2 = Fp.eql(Fp.sqr(tv3), n); //  6.  e2 = (tv3^2) == x\n        tv1 = Fp.cmov(tv1, tv2, e1); //  7. tv1 = CMOV(tv1, tv2, e1)  # Select tv2 if (tv2^2) == x\n        tv2 = Fp.cmov(tv4, tv3, e2); //  8. tv2 = CMOV(tv4, tv3, e2)  # Select tv3 if (tv3^2) == x\n        const e3 = Fp.eql(Fp.sqr(tv2), n); //  9.  e3 = (tv2^2) == x\n        const root = Fp.cmov(tv1, tv2, e3); // 10.  z = CMOV(tv1, tv2, e3)   # Select sqrt from tv1 & tv2\n        assertIsSquare(Fp, root, n);\n        return root;\n    };\n}\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nfunction tonelliShanks(P) {\n    // Initialization (precomputation).\n    // Caching initialization could boost perf by 7%.\n    if (P < _3n$2)\n        throw new Error('sqrt is not defined for small field');\n    // Factor P - 1 = Q * 2^S, where Q is odd\n    let Q = P - _1n$6;\n    let S = 0;\n    while (Q % _2n$6 === _0n$5) {\n        Q /= _2n$6;\n        S++;\n    }\n    // Find the first quadratic non-residue Z >= 2\n    let Z = _2n$6;\n    const _Fp = Field(P);\n    while (FpLegendre(_Fp, Z) === 1) {\n        // Basic primality test for P. After x iterations, chance of\n        // not finding quadratic non-residue is 2^x, so 2^1000.\n        if (Z++ > 1000)\n            throw new Error('Cannot find square root: probably non-prime P');\n    }\n    // Fast-path; usually done before Z, but we do \"primality test\".\n    if (S === 1)\n        return sqrt3mod4;\n    // Slow-path\n    // TODO: test on Fp2 and others\n    let cc = _Fp.pow(Z, Q); // c = z^Q\n    const Q1div2 = (Q + _1n$6) / _2n$6;\n    return function tonelliSlow(Fp, n) {\n        if (Fp.is0(n))\n            return n;\n        // Check if n is a quadratic residue using Legendre symbol\n        if (FpLegendre(Fp, n) !== 1)\n            throw new Error('Cannot find square root');\n        // Initialize variables for the main loop\n        let M = S;\n        let c = Fp.mul(Fp.ONE, cc); // c = z^Q, move cc from field _Fp into field Fp\n        let t = Fp.pow(n, Q); // t = n^Q, first guess at the fudge factor\n        let R = Fp.pow(n, Q1div2); // R = n^((Q+1)/2), first guess at the square root\n        // Main loop\n        // while t != 1\n        while (!Fp.eql(t, Fp.ONE)) {\n            if (Fp.is0(t))\n                return Fp.ZERO; // if t=0 return R=0\n            let i = 1;\n            // Find the smallest i >= 1 such that t^(2^i) \u2261 1 (mod P)\n            let t_tmp = Fp.sqr(t); // t^(2^1)\n            while (!Fp.eql(t_tmp, Fp.ONE)) {\n                i++;\n                t_tmp = Fp.sqr(t_tmp); // t^(2^2)...\n                if (i === M)\n                    throw new Error('Cannot find square root');\n            }\n            // Calculate the exponent for b: 2^(M - i - 1)\n            const exponent = _1n$6 << BigInt(M - i - 1); // bigint is important\n            const b = Fp.pow(c, exponent); // b = 2^(M - i - 1)\n            // Update variables\n            M = i;\n            c = Fp.sqr(b); // c = b^2\n            t = Fp.mul(t, c); // t = (t * b^2)\n            R = Fp.mul(R, b); // R = R*b\n        }\n        return R;\n    };\n}\n/**\n * Square root for a finite field. Will try optimized versions first:\n *\n * 1. P \u2261 3 (mod 4)\n * 2. P \u2261 5 (mod 8)\n * 3. P \u2261 9 (mod 16)\n * 4. Tonelli-Shanks algorithm\n *\n * Different algorithms can give different roots, it is up to user to decide which one they want.\n * For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n */\nfunction FpSqrt(P) {\n    // P \u2261 3 (mod 4) => \u221An = n^((P+1)/4)\n    if (P % _4n$1 === _3n$2)\n        return sqrt3mod4;\n    // P \u2261 5 (mod 8) => Atkin algorithm, page 10 of https://eprint.iacr.org/2012/685.pdf\n    if (P % _8n$1 === _5n)\n        return sqrt5mod8;\n    // P \u2261 9 (mod 16) => Kong algorithm, page 11 of https://eprint.iacr.org/2012/685.pdf (algorithm 4)\n    if (P % _16n === _9n)\n        return sqrt9mod16(P);\n    // Tonelli-Shanks algorithm\n    return tonelliShanks(P);\n}\n// prettier-ignore\nconst FIELD_FIELDS = [\n    'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n    'eql', 'add', 'sub', 'mul', 'pow', 'div',\n    'addN', 'subN', 'mulN', 'sqrN'\n];\nfunction validateField(field) {\n    const initial = {\n        ORDER: 'bigint',\n        MASK: 'bigint',\n        BYTES: 'number',\n        BITS: 'number',\n    };\n    const opts = FIELD_FIELDS.reduce((map, val) => {\n        map[val] = 'function';\n        return map;\n    }, initial);\n    _validateObject(field, opts);\n    // const max = 16384;\n    // if (field.BYTES < 1 || field.BYTES > max) throw new Error('invalid field');\n    // if (field.BITS < 1 || field.BITS > 8 * max) throw new Error('invalid field');\n    return field;\n}\n// Generic field functions\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nfunction FpPow(Fp, num, power) {\n    if (power < _0n$5)\n        throw new Error('invalid exponent, negatives unsupported');\n    if (power === _0n$5)\n        return Fp.ONE;\n    if (power === _1n$6)\n        return num;\n    let p = Fp.ONE;\n    let d = num;\n    while (power > _0n$5) {\n        if (power & _1n$6)\n            p = Fp.mul(p, d);\n        d = Fp.sqr(d);\n        power >>= _1n$6;\n    }\n    return p;\n}\n/**\n * Efficiently invert an array of Field elements.\n * Exception-free. Will return `undefined` for 0 elements.\n * @param passZero map 0 to 0 (instead of undefined)\n */\nfunction FpInvertBatch(Fp, nums, passZero = false) {\n    const inverted = new Array(nums.length).fill(passZero ? Fp.ZERO : undefined);\n    // Walk from first to last, multiply them by each other MOD p\n    const multipliedAcc = nums.reduce((acc, num, i) => {\n        if (Fp.is0(num))\n            return acc;\n        inverted[i] = acc;\n        return Fp.mul(acc, num);\n    }, Fp.ONE);\n    // Invert last element\n    const invertedAcc = Fp.inv(multipliedAcc);\n    // Walk from last to first, multiply them by inverted each other MOD p\n    nums.reduceRight((acc, num, i) => {\n        if (Fp.is0(num))\n            return acc;\n        inverted[i] = Fp.mul(acc, inverted[i]);\n        return Fp.mul(acc, num);\n    }, invertedAcc);\n    return inverted;\n}\n/**\n * Legendre symbol.\n * Legendre constant is used to calculate Legendre symbol (a | p)\n * which denotes the value of a^((p-1)/2) (mod p).\n *\n * * (a | p) \u2261 1    if a is a square (mod p), quadratic residue\n * * (a | p) \u2261 -1   if a is not a square (mod p), quadratic non residue\n * * (a | p) \u2261 0    if a \u2261 0 (mod p)\n */\nfunction FpLegendre(Fp, n) {\n    // We can use 3rd argument as optional cache of this value\n    // but seems unneeded for now. The operation is very fast.\n    const p1mod2 = (Fp.ORDER - _1n$6) / _2n$6;\n    const powered = Fp.pow(n, p1mod2);\n    const yes = Fp.eql(powered, Fp.ONE);\n    const zero = Fp.eql(powered, Fp.ZERO);\n    const no = Fp.eql(powered, Fp.neg(Fp.ONE));\n    if (!yes && !zero && !no)\n        throw new Error('invalid Legendre symbol result');\n    return yes ? 1 : zero ? 0 : -1;\n}\n// CURVE.n lengths\nfunction nLength(n, nBitLength) {\n    // Bit size, byte size of CURVE.n\n    if (nBitLength !== undefined)\n        anumber(nBitLength);\n    const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n    const nByteLength = Math.ceil(_nBitLength / 8);\n    return { nBitLength: _nBitLength, nByteLength };\n}\n/**\n * Creates a finite field. Major performance optimizations:\n * * 1. Denormalized operations like mulN instead of mul.\n * * 2. Identical object shape: never add or remove keys.\n * * 3. `Object.freeze`.\n * Fragile: always run a benchmark on a change.\n * Security note: operations don't check 'isValid' for all elements for performance reasons,\n * it is caller responsibility to check this.\n * This is low-level code, please make sure you know what you're doing.\n *\n * Note about field properties:\n * * CHARACTERISTIC p = prime number, number of elements in main subgroup.\n * * ORDER q = similar to cofactor in curves, may be composite `q = p^m`.\n *\n * @param ORDER field order, probably prime, or could be composite\n * @param bitLen how many bits the field consumes\n * @param isLE (default: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nfunction Field(ORDER, bitLenOrOpts, // TODO: use opts only in v2?\nisLE = false, opts = {}) {\n    if (ORDER <= _0n$5)\n        throw new Error('invalid field: expected ORDER > 0, got ' + ORDER);\n    let _nbitLength = undefined;\n    let _sqrt = undefined;\n    let modFromBytes = false;\n    let allowedLengths = undefined;\n    if (typeof bitLenOrOpts === 'object' && bitLenOrOpts != null) {\n        if (opts.sqrt || isLE)\n            throw new Error('cannot specify opts in two arguments');\n        const _opts = bitLenOrOpts;\n        if (_opts.BITS)\n            _nbitLength = _opts.BITS;\n        if (_opts.sqrt)\n            _sqrt = _opts.sqrt;\n        if (typeof _opts.isLE === 'boolean')\n            isLE = _opts.isLE;\n        if (typeof _opts.modFromBytes === 'boolean')\n            modFromBytes = _opts.modFromBytes;\n        allowedLengths = _opts.allowedLengths;\n    }\n    else {\n        if (typeof bitLenOrOpts === 'number')\n            _nbitLength = bitLenOrOpts;\n        if (opts.sqrt)\n            _sqrt = opts.sqrt;\n    }\n    const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, _nbitLength);\n    if (BYTES > 2048)\n        throw new Error('invalid field: expected ORDER of <= 2048 bytes');\n    let sqrtP; // cached sqrtP\n    const f = Object.freeze({\n        ORDER,\n        isLE,\n        BITS,\n        BYTES,\n        MASK: bitMask(BITS),\n        ZERO: _0n$5,\n        ONE: _1n$6,\n        allowedLengths: allowedLengths,\n        create: (num) => mod(num, ORDER),\n        isValid: (num) => {\n            if (typeof num !== 'bigint')\n                throw new Error('invalid field element: expected bigint, got ' + typeof num);\n            return _0n$5 <= num && num < ORDER; // 0 is valid element, but it's not invertible\n        },\n        is0: (num) => num === _0n$5,\n        // is valid and invertible\n        isValidNot0: (num) => !f.is0(num) && f.isValid(num),\n        isOdd: (num) => (num & _1n$6) === _1n$6,\n        neg: (num) => mod(-num, ORDER),\n        eql: (lhs, rhs) => lhs === rhs,\n        sqr: (num) => mod(num * num, ORDER),\n        add: (lhs, rhs) => mod(lhs + rhs, ORDER),\n        sub: (lhs, rhs) => mod(lhs - rhs, ORDER),\n        mul: (lhs, rhs) => mod(lhs * rhs, ORDER),\n        pow: (num, power) => FpPow(f, num, power),\n        div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER),\n        // Same as above, but doesn't normalize\n        sqrN: (num) => num * num,\n        addN: (lhs, rhs) => lhs + rhs,\n        subN: (lhs, rhs) => lhs - rhs,\n        mulN: (lhs, rhs) => lhs * rhs,\n        inv: (num) => invert(num, ORDER),\n        sqrt: _sqrt ||\n            ((n) => {\n                if (!sqrtP)\n                    sqrtP = FpSqrt(ORDER);\n                return sqrtP(f, n);\n            }),\n        toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)),\n        fromBytes: (bytes, skipValidation = true) => {\n            if (allowedLengths) {\n                if (!allowedLengths.includes(bytes.length) || bytes.length > BYTES) {\n                    throw new Error('Field.fromBytes: expected ' + allowedLengths + ' bytes, got ' + bytes.length);\n                }\n                const padded = new Uint8Array(BYTES);\n                // isLE add 0 to right, !isLE to the left.\n                padded.set(bytes, isLE ? 0 : padded.length - bytes.length);\n                bytes = padded;\n            }\n            if (bytes.length !== BYTES)\n                throw new Error('Field.fromBytes: expected ' + BYTES + ' bytes, got ' + bytes.length);\n            let scalar = isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes);\n            if (modFromBytes)\n                scalar = mod(scalar, ORDER);\n            if (!skipValidation)\n                if (!f.isValid(scalar))\n                    throw new Error('invalid field element: outside of range 0..ORDER');\n            // NOTE: we don't validate scalar here, please use isValid. This done such way because some\n            // protocol may allow non-reduced scalar that reduced later or changed some other way.\n            return scalar;\n        },\n        // TODO: we don't need it here, move out to separate fn\n        invertBatch: (lst) => FpInvertBatch(f, lst),\n        // We can't move this out because Fp6, Fp12 implement it\n        // and it's unclear what to return in there.\n        cmov: (a, b, c) => (c ? b : a),\n    });\n    return Object.freeze(f);\n}\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nfunction getFieldBytesLength(fieldOrder) {\n    if (typeof fieldOrder !== 'bigint')\n        throw new Error('field order must be bigint');\n    const bitLength = fieldOrder.toString(2).length;\n    return Math.ceil(bitLength / 8);\n}\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nfunction getMinHashLength(fieldOrder) {\n    const length = getFieldBytesLength(fieldOrder);\n    return length + Math.ceil(length / 2);\n}\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nfunction mapHashToField(key, fieldOrder, isLE = false) {\n    const len = key.length;\n    const fieldLen = getFieldBytesLength(fieldOrder);\n    const minLen = getMinHashLength(fieldOrder);\n    // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n    if (len < 16 || len < minLen || len > 1024)\n        throw new Error('expected ' + minLen + '-1024 bytes of input, got ' + len);\n    const num = isLE ? bytesToNumberLE(key) : bytesToNumberBE(key);\n    // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n    const reduced = mod(num, fieldOrder - _1n$6) + _1n$6;\n    return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n\n/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nfunction setBigUint64(view, byteOffset, value, isLE) {\n    if (typeof view.setBigUint64 === 'function')\n        return view.setBigUint64(byteOffset, value, isLE);\n    const _32n = BigInt(32);\n    const _u32_max = BigInt(0xffffffff);\n    const wh = Number((value >> _32n) & _u32_max);\n    const wl = Number(value & _u32_max);\n    const h = isLE ? 4 : 0;\n    const l = isLE ? 0 : 4;\n    view.setUint32(byteOffset + h, wh, isLE);\n    view.setUint32(byteOffset + l, wl, isLE);\n}\n/** Choice: a ? b : c */\nfunction Chi$1(a, b, c) {\n    return (a & b) ^ (~a & c);\n}\n/** Majority function, true if any two inputs is true. */\nfunction Maj(a, b, c) {\n    return (a & b) ^ (a & c) ^ (b & c);\n}\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nclass HashMD extends Hash {\n    constructor(blockLen, outputLen, padOffset, isLE) {\n        super();\n        this.finished = false;\n        this.length = 0;\n        this.pos = 0;\n        this.destroyed = false;\n        this.blockLen = blockLen;\n        this.outputLen = outputLen;\n        this.padOffset = padOffset;\n        this.isLE = isLE;\n        this.buffer = new Uint8Array(blockLen);\n        this.view = createView(this.buffer);\n    }\n    update(data) {\n        aexists(this);\n        data = toBytes(data);\n        abytes(data);\n        const { view, buffer, blockLen } = this;\n        const len = data.length;\n        for (let pos = 0; pos < len;) {\n            const take = Math.min(blockLen - this.pos, len - pos);\n            // Fast path: we have at least one block in input, cast it to view and process\n            if (take === blockLen) {\n                const dataView = createView(data);\n                for (; blockLen <= len - pos; pos += blockLen)\n                    this.process(dataView, pos);\n                continue;\n            }\n            buffer.set(data.subarray(pos, pos + take), this.pos);\n            this.pos += take;\n            pos += take;\n            if (this.pos === blockLen) {\n                this.process(view, 0);\n                this.pos = 0;\n            }\n        }\n        this.length += data.length;\n        this.roundClean();\n        return this;\n    }\n    digestInto(out) {\n        aexists(this);\n        aoutput(out, this);\n        this.finished = true;\n        // Padding\n        // We can avoid allocation of buffer for padding completely if it\n        // was previously not allocated here. But it won't change performance.\n        const { buffer, view, blockLen, isLE } = this;\n        let { pos } = this;\n        // append the bit '1' to the message\n        buffer[pos++] = 0b10000000;\n        clean(this.buffer.subarray(pos));\n        // we have less than padOffset left in buffer, so we cannot put length in\n        // current block, need process it and pad again\n        if (this.padOffset > blockLen - pos) {\n            this.process(view, 0);\n            pos = 0;\n        }\n        // Pad until full block byte with zeros\n        for (let i = pos; i < blockLen; i++)\n            buffer[i] = 0;\n        // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n        // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n        // So we just write lowest 64 bits of that value.\n        setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n        this.process(view, 0);\n        const oview = createView(out);\n        const len = this.outputLen;\n        // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n        if (len % 4)\n            throw new Error('_sha2: outputLen should be aligned to 32bit');\n        const outLen = len / 4;\n        const state = this.get();\n        if (outLen > state.length)\n            throw new Error('_sha2: outputLen bigger than state');\n        for (let i = 0; i < outLen; i++)\n            oview.setUint32(4 * i, state[i], isLE);\n    }\n    digest() {\n        const { buffer, outputLen } = this;\n        this.digestInto(buffer);\n        const res = buffer.slice(0, outputLen);\n        this.destroy();\n        return res;\n    }\n    _cloneInto(to) {\n        to || (to = new this.constructor());\n        to.set(...this.get());\n        const { blockLen, buffer, length, finished, destroyed, pos } = this;\n        to.destroyed = destroyed;\n        to.finished = finished;\n        to.length = length;\n        to.pos = pos;\n        if (length % blockLen)\n            to.buffer.set(buffer);\n        return to;\n    }\n    clone() {\n        return this._cloneInto();\n    }\n}\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */\nconst SHA256_IV = /* @__PURE__ */ Uint32Array.from([\n    0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */\nconst SHA224_IV = /* @__PURE__ */ Uint32Array.from([\n    0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */\nconst SHA384_IV = /* @__PURE__ */ Uint32Array.from([\n    0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n    0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */\nconst SHA512_IV = /* @__PURE__ */ Uint32Array.from([\n    0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n    0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n\n/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\nfunction fromBig(n, le = false) {\n    if (le)\n        return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n    return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n    const len = lst.length;\n    let Ah = new Uint32Array(len);\n    let Al = new Uint32Array(len);\n    for (let i = 0; i < len; i++) {\n        const { h, l } = fromBig(lst[i], le);\n        [Ah[i], Al[i]] = [h, l];\n    }\n    return [Ah, Al];\n}\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add$1(Ah, Al, Bh, Bl) {\n    const l = (Al >>> 0) + (Bl >>> 0);\n    return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n\n/**\n * SHA2 hash function. A.k.a. sha256, sha384, sha512, sha512_224, sha512_256.\n * SHA256 is the fastest hash implementable in JS, even faster than Blake3.\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\n/**\n * Round constants:\n * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)\n */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ Uint32Array.from([\n    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n    0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n    0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n    0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n    0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n    0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n/** Reusable temporary buffer. \"W\" comes straight from spec. */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends HashMD {\n    constructor(outputLen = 32) {\n        super(64, outputLen, 8, false);\n        // We cannot use array here since array allows indexing by variable\n        // which means optimizer/compiler cannot use registers.\n        this.A = SHA256_IV[0] | 0;\n        this.B = SHA256_IV[1] | 0;\n        this.C = SHA256_IV[2] | 0;\n        this.D = SHA256_IV[3] | 0;\n        this.E = SHA256_IV[4] | 0;\n        this.F = SHA256_IV[5] | 0;\n        this.G = SHA256_IV[6] | 0;\n        this.H = SHA256_IV[7] | 0;\n    }\n    get() {\n        const { A, B, C, D, E, F, G, H } = this;\n        return [A, B, C, D, E, F, G, H];\n    }\n    // prettier-ignore\n    set(A, B, C, D, E, F, G, H) {\n        this.A = A | 0;\n        this.B = B | 0;\n        this.C = C | 0;\n        this.D = D | 0;\n        this.E = E | 0;\n        this.F = F | 0;\n        this.G = G | 0;\n        this.H = H | 0;\n    }\n    process(view, offset) {\n        // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n        for (let i = 0; i < 16; i++, offset += 4)\n            SHA256_W[i] = view.getUint32(offset, false);\n        for (let i = 16; i < 64; i++) {\n            const W15 = SHA256_W[i - 15];\n            const W2 = SHA256_W[i - 2];\n            const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n            const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n            SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n        }\n        // Compression function main loop, 64 rounds\n        let { A, B, C, D, E, F, G, H } = this;\n        for (let i = 0; i < 64; i++) {\n            const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n            const T1 = (H + sigma1 + Chi$1(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n            const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n            const T2 = (sigma0 + Maj(A, B, C)) | 0;\n            H = G;\n            G = F;\n            F = E;\n            E = (D + T1) | 0;\n            D = C;\n            C = B;\n            B = A;\n            A = (T1 + T2) | 0;\n        }\n        // Add the compressed chunk to the current hash value\n        A = (A + this.A) | 0;\n        B = (B + this.B) | 0;\n        C = (C + this.C) | 0;\n        D = (D + this.D) | 0;\n        E = (E + this.E) | 0;\n        F = (F + this.F) | 0;\n        G = (G + this.G) | 0;\n        H = (H + this.H) | 0;\n        this.set(A, B, C, D, E, F, G, H);\n    }\n    roundClean() {\n        clean(SHA256_W);\n    }\n    destroy() {\n        this.set(0, 0, 0, 0, 0, 0, 0, 0);\n        clean(this.buffer);\n    }\n}\nclass SHA224 extends SHA256 {\n    constructor() {\n        super(28);\n        this.A = SHA224_IV[0] | 0;\n        this.B = SHA224_IV[1] | 0;\n        this.C = SHA224_IV[2] | 0;\n        this.D = SHA224_IV[3] | 0;\n        this.E = SHA224_IV[4] | 0;\n        this.F = SHA224_IV[5] | 0;\n        this.G = SHA224_IV[6] | 0;\n        this.H = SHA224_IV[7] | 0;\n    }\n}\n// SHA2-512 is slower than sha256 in js because u64 operations are slow.\n// Round contants\n// First 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409\n// prettier-ignore\nconst K512 = /* @__PURE__ */ (() => split([\n    '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n    '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n    '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n    '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n    '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n    '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n    '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n    '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n    '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n    '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n    '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n    '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n    '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n    '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n    '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n    '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n    '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n    '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n    '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n    '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\nconst SHA512_Kh = /* @__PURE__ */ (() => K512[0])();\nconst SHA512_Kl = /* @__PURE__ */ (() => K512[1])();\n// Reusable temporary buffers\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nclass SHA512 extends HashMD {\n    constructor(outputLen = 64) {\n        super(128, outputLen, 16, false);\n        // We cannot use array here since array allows indexing by variable\n        // which means optimizer/compiler cannot use registers.\n        // h -- high 32 bits, l -- low 32 bits\n        this.Ah = SHA512_IV[0] | 0;\n        this.Al = SHA512_IV[1] | 0;\n        this.Bh = SHA512_IV[2] | 0;\n        this.Bl = SHA512_IV[3] | 0;\n        this.Ch = SHA512_IV[4] | 0;\n        this.Cl = SHA512_IV[5] | 0;\n        this.Dh = SHA512_IV[6] | 0;\n        this.Dl = SHA512_IV[7] | 0;\n        this.Eh = SHA512_IV[8] | 0;\n        this.El = SHA512_IV[9] | 0;\n        this.Fh = SHA512_IV[10] | 0;\n        this.Fl = SHA512_IV[11] | 0;\n        this.Gh = SHA512_IV[12] | 0;\n        this.Gl = SHA512_IV[13] | 0;\n        this.Hh = SHA512_IV[14] | 0;\n        this.Hl = SHA512_IV[15] | 0;\n    }\n    // prettier-ignore\n    get() {\n        const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n        return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n    }\n    // prettier-ignore\n    set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n        this.Ah = Ah | 0;\n        this.Al = Al | 0;\n        this.Bh = Bh | 0;\n        this.Bl = Bl | 0;\n        this.Ch = Ch | 0;\n        this.Cl = Cl | 0;\n        this.Dh = Dh | 0;\n        this.Dl = Dl | 0;\n        this.Eh = Eh | 0;\n        this.El = El | 0;\n        this.Fh = Fh | 0;\n        this.Fl = Fl | 0;\n        this.Gh = Gh | 0;\n        this.Gl = Gl | 0;\n        this.Hh = Hh | 0;\n        this.Hl = Hl | 0;\n    }\n    process(view, offset) {\n        // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n        for (let i = 0; i < 16; i++, offset += 4) {\n            SHA512_W_H[i] = view.getUint32(offset);\n            SHA512_W_L[i] = view.getUint32((offset += 4));\n        }\n        for (let i = 16; i < 80; i++) {\n            // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n            const W15h = SHA512_W_H[i - 15] | 0;\n            const W15l = SHA512_W_L[i - 15] | 0;\n            const s0h = rotrSH(W15h, W15l, 1) ^ rotrSH(W15h, W15l, 8) ^ shrSH(W15h, W15l, 7);\n            const s0l = rotrSL(W15h, W15l, 1) ^ rotrSL(W15h, W15l, 8) ^ shrSL(W15h, W15l, 7);\n            // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n            const W2h = SHA512_W_H[i - 2] | 0;\n            const W2l = SHA512_W_L[i - 2] | 0;\n            const s1h = rotrSH(W2h, W2l, 19) ^ rotrBH(W2h, W2l, 61) ^ shrSH(W2h, W2l, 6);\n            const s1l = rotrSL(W2h, W2l, 19) ^ rotrBL(W2h, W2l, 61) ^ shrSL(W2h, W2l, 6);\n            // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n            const SUMl = add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n            const SUMh = add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n            SHA512_W_H[i] = SUMh | 0;\n            SHA512_W_L[i] = SUMl | 0;\n        }\n        let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n        // Compression function main loop, 80 rounds\n        for (let i = 0; i < 80; i++) {\n            // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n            const sigma1h = rotrSH(Eh, El, 14) ^ rotrSH(Eh, El, 18) ^ rotrBH(Eh, El, 41);\n            const sigma1l = rotrSL(Eh, El, 14) ^ rotrSL(Eh, El, 18) ^ rotrBL(Eh, El, 41);\n            //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n            const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n            const CHIl = (El & Fl) ^ (~El & Gl);\n            // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n            // prettier-ignore\n            const T1ll = add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n            const T1h = add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n            const T1l = T1ll | 0;\n            // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n            const sigma0h = rotrSH(Ah, Al, 28) ^ rotrBH(Ah, Al, 34) ^ rotrBH(Ah, Al, 39);\n            const sigma0l = rotrSL(Ah, Al, 28) ^ rotrBL(Ah, Al, 34) ^ rotrBL(Ah, Al, 39);\n            const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n            const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n            Hh = Gh | 0;\n            Hl = Gl | 0;\n            Gh = Fh | 0;\n            Gl = Fl | 0;\n            Fh = Eh | 0;\n            Fl = El | 0;\n            ({ h: Eh, l: El } = add$1(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n            Dh = Ch | 0;\n            Dl = Cl | 0;\n            Ch = Bh | 0;\n            Cl = Bl | 0;\n            Bh = Ah | 0;\n            Bl = Al | 0;\n            const All = add3L(T1l, sigma0l, MAJl);\n            Ah = add3H(All, T1h, sigma0h, MAJh);\n            Al = All | 0;\n        }\n        // Add the compressed chunk to the current hash value\n        ({ h: Ah, l: Al } = add$1(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n        ({ h: Bh, l: Bl } = add$1(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n        ({ h: Ch, l: Cl } = add$1(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n        ({ h: Dh, l: Dl } = add$1(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n        ({ h: Eh, l: El } = add$1(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n        ({ h: Fh, l: Fl } = add$1(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n        ({ h: Gh, l: Gl } = add$1(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n        ({ h: Hh, l: Hl } = add$1(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n        this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n    }\n    roundClean() {\n        clean(SHA512_W_H, SHA512_W_L);\n    }\n    destroy() {\n        clean(this.buffer);\n        this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n    }\n}\nclass SHA384 extends SHA512 {\n    constructor() {\n        super(48);\n        this.Ah = SHA384_IV[0] | 0;\n        this.Al = SHA384_IV[1] | 0;\n        this.Bh = SHA384_IV[2] | 0;\n        this.Bl = SHA384_IV[3] | 0;\n        this.Ch = SHA384_IV[4] | 0;\n        this.Cl = SHA384_IV[5] | 0;\n        this.Dh = SHA384_IV[6] | 0;\n        this.Dl = SHA384_IV[7] | 0;\n        this.Eh = SHA384_IV[8] | 0;\n        this.El = SHA384_IV[9] | 0;\n        this.Fh = SHA384_IV[10] | 0;\n        this.Fl = SHA384_IV[11] | 0;\n        this.Gh = SHA384_IV[12] | 0;\n        this.Gl = SHA384_IV[13] | 0;\n        this.Hh = SHA384_IV[14] | 0;\n        this.Hl = SHA384_IV[15] | 0;\n    }\n}\n/**\n * SHA2-256 hash function from RFC 4634.\n *\n * It is the fastest JS hash, even faster than Blake3.\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n */\nconst sha256$1 = /* @__PURE__ */ createHasher(() => new SHA256());\n/** SHA2-224 hash function from RFC 4634 */\nconst sha224$1 = /* @__PURE__ */ createHasher(() => new SHA224());\n/** SHA2-512 hash function from RFC 4634. */\nconst sha512$1 = /* @__PURE__ */ createHasher(() => new SHA512());\n/** SHA2-384 hash function from RFC 4634. */\nconst sha384$1 = /* @__PURE__ */ createHasher(() => new SHA384());\n\n/**\n * HMAC: RFC2104 message authentication code.\n * @module\n */\nclass HMAC extends Hash {\n    constructor(hash, _key) {\n        super();\n        this.finished = false;\n        this.destroyed = false;\n        ahash(hash);\n        const key = toBytes(_key);\n        this.iHash = hash.create();\n        if (typeof this.iHash.update !== 'function')\n            throw new Error('Expected instance of class which extends utils.Hash');\n        this.blockLen = this.iHash.blockLen;\n        this.outputLen = this.iHash.outputLen;\n        const blockLen = this.blockLen;\n        const pad = new Uint8Array(blockLen);\n        // blockLen can be bigger than outputLen\n        pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n        for (let i = 0; i < pad.length; i++)\n            pad[i] ^= 0x36;\n        this.iHash.update(pad);\n        // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n        this.oHash = hash.create();\n        // Undo internal XOR && apply outer XOR\n        for (let i = 0; i < pad.length; i++)\n            pad[i] ^= 0x36 ^ 0x5c;\n        this.oHash.update(pad);\n        clean(pad);\n    }\n    update(buf) {\n        aexists(this);\n        this.iHash.update(buf);\n        return this;\n    }\n    digestInto(out) {\n        aexists(this);\n        abytes(out, this.outputLen);\n        this.finished = true;\n        this.iHash.digestInto(out);\n        this.oHash.update(out);\n        this.oHash.digestInto(out);\n        this.destroy();\n    }\n    digest() {\n        const out = new Uint8Array(this.oHash.outputLen);\n        this.digestInto(out);\n        return out;\n    }\n    _cloneInto(to) {\n        // Create new instance without calling constructor since key already in state and we don't know it.\n        to || (to = Object.create(Object.getPrototypeOf(this), {}));\n        const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n        to = to;\n        to.finished = finished;\n        to.destroyed = destroyed;\n        to.blockLen = blockLen;\n        to.outputLen = outputLen;\n        to.oHash = oHash._cloneInto(to.oHash);\n        to.iHash = iHash._cloneInto(to.iHash);\n        return to;\n    }\n    clone() {\n        return this._cloneInto();\n    }\n    destroy() {\n        this.destroyed = true;\n        this.oHash.destroy();\n        this.iHash.destroy();\n    }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n\n/**\n * Methods for elliptic curve multiplication by scalars.\n * Contains wNAF, pippenger.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst _0n$4 = BigInt(0);\nconst _1n$5 = BigInt(1);\nfunction negateCt(condition, item) {\n    const neg = item.negate();\n    return condition ? neg : item;\n}\n/**\n * Takes a bunch of Projective Points but executes only one\n * inversion on all of them. Inversion is very slow operation,\n * so this improves performance massively.\n * Optimization: converts a list of projective points to a list of identical points with Z=1.\n */\nfunction normalizeZ(c, points) {\n    const invertedZs = FpInvertBatch(c.Fp, points.map((p) => p.Z));\n    return points.map((p, i) => c.fromAffine(p.toAffine(invertedZs[i])));\n}\nfunction validateW(W, bits) {\n    if (!Number.isSafeInteger(W) || W <= 0 || W > bits)\n        throw new Error('invalid window size, expected [1..' + bits + '], got W=' + W);\n}\nfunction calcWOpts(W, scalarBits) {\n    validateW(W, scalarBits);\n    const windows = Math.ceil(scalarBits / W) + 1; // W=8 33. Not 32, because we skip zero\n    const windowSize = 2 ** (W - 1); // W=8 128. Not 256, because we skip zero\n    const maxNumber = 2 ** W; // W=8 256\n    const mask = bitMask(W); // W=8 255 == mask 0b11111111\n    const shiftBy = BigInt(W); // W=8 8\n    return { windows, windowSize, mask, maxNumber, shiftBy };\n}\nfunction calcOffsets(n, window, wOpts) {\n    const { windowSize, mask, maxNumber, shiftBy } = wOpts;\n    let wbits = Number(n & mask); // extract W bits.\n    let nextN = n >> shiftBy; // shift number by W bits.\n    // What actually happens here:\n    // const highestBit = Number(mask ^ (mask >> 1n));\n    // let wbits2 = wbits - 1; // skip zero\n    // if (wbits2 & highestBit) { wbits2 ^= Number(mask); // (~);\n    // split if bits > max: +224 => 256-32\n    if (wbits > windowSize) {\n        // we skip zero, which means instead of `>= size-1`, we do `> size`\n        wbits -= maxNumber; // -32, can be maxNumber - wbits, but then we need to set isNeg here.\n        nextN += _1n$5; // +256 (carry)\n    }\n    const offsetStart = window * windowSize;\n    const offset = offsetStart + Math.abs(wbits) - 1; // -1 because we skip zero\n    const isZero = wbits === 0; // is current window slice a 0?\n    const isNeg = wbits < 0; // is current window slice negative?\n    const isNegF = window % 2 !== 0; // fake random statement for noise\n    const offsetF = offsetStart; // fake offset for noise\n    return { nextN, offset, isZero, isNeg, isNegF, offsetF };\n}\nfunction validateMSMPoints(points, c) {\n    if (!Array.isArray(points))\n        throw new Error('array expected');\n    points.forEach((p, i) => {\n        if (!(p instanceof c))\n            throw new Error('invalid point at index ' + i);\n    });\n}\nfunction validateMSMScalars(scalars, field) {\n    if (!Array.isArray(scalars))\n        throw new Error('array of scalars expected');\n    scalars.forEach((s, i) => {\n        if (!field.isValid(s))\n            throw new Error('invalid scalar at index ' + i);\n    });\n}\n// Since points in different groups cannot be equal (different object constructor),\n// we can have single place to store precomputes.\n// Allows to make points frozen / immutable.\nconst pointPrecomputes = new WeakMap();\nconst pointWindowSizes = new WeakMap();\nfunction getW$1(P) {\n    // To disable precomputes:\n    // return 1;\n    return pointWindowSizes.get(P) || 1;\n}\nfunction assert0(n) {\n    if (n !== _0n$4)\n        throw new Error('invalid wNAF');\n}\n/**\n * Elliptic curve multiplication of Point by scalar. Fragile.\n * Table generation takes **30MB of ram and 10ms on high-end CPU**,\n * but may take much longer on slow devices. Actual generation will happen on\n * first call of `multiply()`. By default, `BASE` point is precomputed.\n *\n * Scalars should always be less than curve order: this should be checked inside of a curve itself.\n * Creates precomputation tables for fast multiplication:\n * - private scalar is split by fixed size windows of W bits\n * - every window point is collected from window's table & added to accumulator\n * - since windows are different, same point inside tables won't be accessed more than once per calc\n * - each multiplication is 'Math.ceil(CURVE_ORDER / \uD835\uDC4A) + 1' point additions (fixed for any scalar)\n * - +1 window is neccessary for wNAF\n * - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n *\n * @todo Research returning 2d JS array of windows, instead of a single window.\n * This would allow windows to be in different memory locations\n */\nclass wNAF {\n    // Parametrized with a given Point class (not individual point)\n    constructor(Point, bits) {\n        this.BASE = Point.BASE;\n        this.ZERO = Point.ZERO;\n        this.Fn = Point.Fn;\n        this.bits = bits;\n    }\n    // non-const time multiplication ladder\n    _unsafeLadder(elm, n, p = this.ZERO) {\n        let d = elm;\n        while (n > _0n$4) {\n            if (n & _1n$5)\n                p = p.add(d);\n            d = d.double();\n            n >>= _1n$5;\n        }\n        return p;\n    }\n    /**\n     * Creates a wNAF precomputation window. Used for caching.\n     * Default window size is set by `utils.precompute()` and is equal to 8.\n     * Number of precomputed points depends on the curve size:\n     * 2^(\uD835\uDC4A\u22121) * (Math.ceil(\uD835\uDC5B / \uD835\uDC4A) + 1), where:\n     * - \uD835\uDC4A is the window size\n     * - \uD835\uDC5B is the bitlength of the curve order.\n     * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n     * @param point Point instance\n     * @param W window size\n     * @returns precomputed point tables flattened to a single array\n     */\n    precomputeWindow(point, W) {\n        const { windows, windowSize } = calcWOpts(W, this.bits);\n        const points = [];\n        let p = point;\n        let base = p;\n        for (let window = 0; window < windows; window++) {\n            base = p;\n            points.push(base);\n            // i=1, bc we skip 0\n            for (let i = 1; i < windowSize; i++) {\n                base = base.add(p);\n                points.push(base);\n            }\n            p = base.double();\n        }\n        return points;\n    }\n    /**\n     * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n     * More compact implementation:\n     * https://github.com/paulmillr/noble-secp256k1/blob/47cb1669b6e506ad66b35fe7d76132ae97465da2/index.ts#L502-L541\n     * @returns real and fake (for const-time) points\n     */\n    wNAF(W, precomputes, n) {\n        // Scalar should be smaller than field order\n        if (!this.Fn.isValid(n))\n            throw new Error('invalid scalar');\n        // Accumulators\n        let p = this.ZERO;\n        let f = this.BASE;\n        // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n        // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n        // there is negate now: it is possible that negated element from low value\n        // would be the same as high element, which will create carry into next window.\n        // It's not obvious how this can fail, but still worth investigating later.\n        const wo = calcWOpts(W, this.bits);\n        for (let window = 0; window < wo.windows; window++) {\n            // (n === _0n) is handled and not early-exited. isEven and offsetF are used for noise\n            const { nextN, offset, isZero, isNeg, isNegF, offsetF } = calcOffsets(n, window, wo);\n            n = nextN;\n            if (isZero) {\n                // bits are 0: add garbage to fake point\n                // Important part for const-time getPublicKey: add random \"noise\" point to f.\n                f = f.add(negateCt(isNegF, precomputes[offsetF]));\n            }\n            else {\n                // bits are 1: add to result point\n                p = p.add(negateCt(isNeg, precomputes[offset]));\n            }\n        }\n        assert0(n);\n        // Return both real and fake points: JIT won't eliminate f.\n        // At this point there is a way to F be infinity-point even if p is not,\n        // which makes it less const-time: around 1 bigint multiply.\n        return { p, f };\n    }\n    /**\n     * Implements ec unsafe (non const-time) multiplication using precomputed tables and w-ary non-adjacent form.\n     * @param acc accumulator point to add result of multiplication\n     * @returns point\n     */\n    wNAFUnsafe(W, precomputes, n, acc = this.ZERO) {\n        const wo = calcWOpts(W, this.bits);\n        for (let window = 0; window < wo.windows; window++) {\n            if (n === _0n$4)\n                break; // Early-exit, skip 0 value\n            const { nextN, offset, isZero, isNeg } = calcOffsets(n, window, wo);\n            n = nextN;\n            if (isZero) {\n                // Window bits are 0: skip processing.\n                // Move to next window.\n                continue;\n            }\n            else {\n                const item = precomputes[offset];\n                acc = acc.add(isNeg ? item.negate() : item); // Re-using acc allows to save adds in MSM\n            }\n        }\n        assert0(n);\n        return acc;\n    }\n    getPrecomputes(W, point, transform) {\n        // Calculate precomputes on a first run, reuse them after\n        let comp = pointPrecomputes.get(point);\n        if (!comp) {\n            comp = this.precomputeWindow(point, W);\n            if (W !== 1) {\n                // Doing transform outside of if brings 15% perf hit\n                if (typeof transform === 'function')\n                    comp = transform(comp);\n                pointPrecomputes.set(point, comp);\n            }\n        }\n        return comp;\n    }\n    cached(point, scalar, transform) {\n        const W = getW$1(point);\n        return this.wNAF(W, this.getPrecomputes(W, point, transform), scalar);\n    }\n    unsafe(point, scalar, transform, prev) {\n        const W = getW$1(point);\n        if (W === 1)\n            return this._unsafeLadder(point, scalar, prev); // For W=1 ladder is ~x2 faster\n        return this.wNAFUnsafe(W, this.getPrecomputes(W, point, transform), scalar, prev);\n    }\n    // We calculate precomputes for elliptic curve point multiplication\n    // using windowed method. This specifies window size and\n    // stores precomputed values. Usually only base point would be precomputed.\n    createCache(P, W) {\n        validateW(W, this.bits);\n        pointWindowSizes.set(P, W);\n        pointPrecomputes.delete(P);\n    }\n    hasCache(elm) {\n        return getW$1(elm) !== 1;\n    }\n}\n/**\n * Endomorphism-specific multiplication for Koblitz curves.\n * Cost: 128 dbl, 0-256 adds.\n */\nfunction mulEndoUnsafe(Point, point, k1, k2) {\n    let acc = point;\n    let p1 = Point.ZERO;\n    let p2 = Point.ZERO;\n    while (k1 > _0n$4 || k2 > _0n$4) {\n        if (k1 & _1n$5)\n            p1 = p1.add(acc);\n        if (k2 & _1n$5)\n            p2 = p2.add(acc);\n        acc = acc.double();\n        k1 >>= _1n$5;\n        k2 >>= _1n$5;\n    }\n    return { p1, p2 };\n}\n/**\n * Pippenger algorithm for multi-scalar multiplication (MSM, Pa + Qb + Rc + ...).\n * 30x faster vs naive addition on L=4096, 10x faster than precomputes.\n * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL.\n * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0.\n * @param c Curve Point constructor\n * @param fieldN field over CURVE.N - important that it's not over CURVE.P\n * @param points array of L curve points\n * @param scalars array of L scalars (aka secret keys / bigints)\n */\nfunction pippenger(c, fieldN, points, scalars) {\n    // If we split scalars by some window (let's say 8 bits), every chunk will only\n    // take 256 buckets even if there are 4096 scalars, also re-uses double.\n    // TODO:\n    // - https://eprint.iacr.org/2024/750.pdf\n    // - https://tches.iacr.org/index.php/TCHES/article/view/10287\n    // 0 is accepted in scalars\n    validateMSMPoints(points, c);\n    validateMSMScalars(scalars, fieldN);\n    const plength = points.length;\n    const slength = scalars.length;\n    if (plength !== slength)\n        throw new Error('arrays of points and scalars must have equal length');\n    // if (plength === 0) throw new Error('array must be of length >= 2');\n    const zero = c.ZERO;\n    const wbits = bitLen(BigInt(plength));\n    let windowSize = 1; // bits\n    if (wbits > 12)\n        windowSize = wbits - 3;\n    else if (wbits > 4)\n        windowSize = wbits - 2;\n    else if (wbits > 0)\n        windowSize = 2;\n    const MASK = bitMask(windowSize);\n    const buckets = new Array(Number(MASK) + 1).fill(zero); // +1 for zero array\n    const lastBits = Math.floor((fieldN.BITS - 1) / windowSize) * windowSize;\n    let sum = zero;\n    for (let i = lastBits; i >= 0; i -= windowSize) {\n        buckets.fill(zero);\n        for (let j = 0; j < slength; j++) {\n            const scalar = scalars[j];\n            const wbits = Number((scalar >> BigInt(i)) & MASK);\n            buckets[wbits] = buckets[wbits].add(points[j]);\n        }\n        let resI = zero; // not using this will do small speed-up, but will lose ct\n        // Skip first bucket, because it is zero\n        for (let j = buckets.length - 1, sumI = zero; j > 0; j--) {\n            sumI = sumI.add(buckets[j]);\n            resI = resI.add(sumI);\n        }\n        sum = sum.add(resI);\n        if (i !== 0)\n            for (let j = 0; j < windowSize; j++)\n                sum = sum.double();\n    }\n    return sum;\n}\nfunction createField(order, field, isLE) {\n    if (field) {\n        if (field.ORDER !== order)\n            throw new Error('Field.ORDER must match order: Fp == p, Fn == n');\n        validateField(field);\n        return field;\n    }\n    else {\n        return Field(order, { isLE });\n    }\n}\n/** Validates CURVE opts and creates fields */\nfunction _createCurveFields(type, CURVE, curveOpts = {}, FpFnLE) {\n    if (FpFnLE === undefined)\n        FpFnLE = type === 'edwards';\n    if (!CURVE || typeof CURVE !== 'object')\n        throw new Error(`expected valid ${type} CURVE object`);\n    for (const p of ['p', 'n', 'h']) {\n        const val = CURVE[p];\n        if (!(typeof val === 'bigint' && val > _0n$4))\n            throw new Error(`CURVE.${p} must be positive bigint`);\n    }\n    const Fp = createField(CURVE.p, curveOpts.Fp, FpFnLE);\n    const Fn = createField(CURVE.n, curveOpts.Fn, FpFnLE);\n    const _b = type === 'weierstrass' ? 'b' : 'd';\n    const params = ['Gx', 'Gy', 'a', _b];\n    for (const p of params) {\n        // @ts-ignore\n        if (!Fp.isValid(CURVE[p]))\n            throw new Error(`CURVE.${p} must be valid field element of CURVE.Fp`);\n    }\n    CURVE = Object.freeze(Object.assign({}, CURVE));\n    return { CURVE, Fp, Fn };\n}\n\n/**\n * Short Weierstrass curve methods. The formula is: y\u00B2 = x\u00B3 + ax + b.\n *\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n *   `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n *   `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n *   it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance\n * of nominative types in TypeScript and interfaces only check for shape, so it's hard to create\n * unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n *     1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n *     which is hard to debug.\n *     2. Params can be generic and we can't enforce them to be constant value:\n *     if somebody creates curve from non-constant params,\n *     it would be allowed to interact with other curves with non-constant params\n *\n * @todo https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We construct basis in such way that den is always positive and equals n, but num sign depends on basis (not on secret value)\nconst divNearest = (num, den) => (num + (num >= 0 ? den : -den) / _2n$5) / den;\n/**\n * Splits scalar for GLV endomorphism.\n */\nfunction _splitEndoScalar(k, basis, n) {\n    // Split scalar into two such that part is ~half bits: `abs(part) < sqrt(N)`\n    // Since part can be negative, we need to do this on point.\n    // TODO: verifyScalar function which consumes lambda\n    const [[a1, b1], [a2, b2]] = basis;\n    const c1 = divNearest(b2 * k, n);\n    const c2 = divNearest(-b1 * k, n);\n    // |k1|/|k2| is < sqrt(N), but can be negative.\n    // If we do `k1 mod N`, we'll get big scalar (`> sqrt(N)`): so, we do cheaper negation instead.\n    let k1 = k - c1 * a1 - c2 * a2;\n    let k2 = -c1 * b1 - c2 * b2;\n    const k1neg = k1 < _0n$3;\n    const k2neg = k2 < _0n$3;\n    if (k1neg)\n        k1 = -k1;\n    if (k2neg)\n        k2 = -k2;\n    // Double check that resulting scalar less than half bits of N: otherwise wNAF will fail.\n    // This should only happen on wrong basises. Also, math inside is too complex and I don't trust it.\n    const MAX_NUM = bitMask(Math.ceil(bitLen(n) / 2)) + _1n$4; // Half bits of N\n    if (k1 < _0n$3 || k1 >= MAX_NUM || k2 < _0n$3 || k2 >= MAX_NUM) {\n        throw new Error('splitScalar (endomorphism): failed, k=' + k);\n    }\n    return { k1neg, k1, k2neg, k2 };\n}\nfunction validateSigFormat(format) {\n    if (!['compact', 'recovered', 'der'].includes(format))\n        throw new Error('Signature format must be \"compact\", \"recovered\", or \"der\"');\n    return format;\n}\nfunction validateSigOpts(opts, def) {\n    const optsn = {};\n    for (let optName of Object.keys(def)) {\n        // @ts-ignore\n        optsn[optName] = opts[optName] === undefined ? def[optName] : opts[optName];\n    }\n    _abool2(optsn.lowS, 'lowS');\n    _abool2(optsn.prehash, 'prehash');\n    if (optsn.format !== undefined)\n        validateSigFormat(optsn.format);\n    return optsn;\n}\nclass DERErr extends Error {\n    constructor(m = '') {\n        super(m);\n    }\n}\n/**\n * ASN.1 DER encoding utilities. ASN is very complex & fragile. Format:\n *\n *     [0x30 (SEQUENCE), bytelength, 0x02 (INTEGER), intLength, R, 0x02 (INTEGER), intLength, S]\n *\n * Docs: https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/, https://luca.ntop.org/Teaching/Appunti/asn1.html\n */\nconst DER = {\n    // asn.1 DER encoding utils\n    Err: DERErr,\n    // Basic building block is TLV (Tag-Length-Value)\n    _tlv: {\n        encode: (tag, data) => {\n            const { Err: E } = DER;\n            if (tag < 0 || tag > 256)\n                throw new E('tlv.encode: wrong tag');\n            if (data.length & 1)\n                throw new E('tlv.encode: unpadded data');\n            const dataLen = data.length / 2;\n            const len = numberToHexUnpadded(dataLen);\n            if ((len.length / 2) & 128)\n                throw new E('tlv.encode: long form length too big');\n            // length of length with long form flag\n            const lenLen = dataLen > 127 ? numberToHexUnpadded((len.length / 2) | 128) : '';\n            const t = numberToHexUnpadded(tag);\n            return t + lenLen + len + data;\n        },\n        // v - value, l - left bytes (unparsed)\n        decode(tag, data) {\n            const { Err: E } = DER;\n            let pos = 0;\n            if (tag < 0 || tag > 256)\n                throw new E('tlv.encode: wrong tag');\n            if (data.length < 2 || data[pos++] !== tag)\n                throw new E('tlv.decode: wrong tlv');\n            const first = data[pos++];\n            const isLong = !!(first & 128); // First bit of first length byte is flag for short/long form\n            let length = 0;\n            if (!isLong)\n                length = first;\n            else {\n                // Long form: [longFlag(1bit), lengthLength(7bit), length (BE)]\n                const lenLen = first & 127;\n                if (!lenLen)\n                    throw new E('tlv.decode(long): indefinite length not supported');\n                if (lenLen > 4)\n                    throw new E('tlv.decode(long): byte length is too big'); // this will overflow u32 in js\n                const lengthBytes = data.subarray(pos, pos + lenLen);\n                if (lengthBytes.length !== lenLen)\n                    throw new E('tlv.decode: length bytes not complete');\n                if (lengthBytes[0] === 0)\n                    throw new E('tlv.decode(long): zero leftmost byte');\n                for (const b of lengthBytes)\n                    length = (length << 8) | b;\n                pos += lenLen;\n                if (length < 128)\n                    throw new E('tlv.decode(long): not minimal encoding');\n            }\n            const v = data.subarray(pos, pos + length);\n            if (v.length !== length)\n                throw new E('tlv.decode: wrong value length');\n            return { v, l: data.subarray(pos + length) };\n        },\n    },\n    // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n    // since we always use positive integers here. It must always be empty:\n    // - add zero byte if exists\n    // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n    _int: {\n        encode(num) {\n            const { Err: E } = DER;\n            if (num < _0n$3)\n                throw new E('integer: negative integers are not allowed');\n            let hex = numberToHexUnpadded(num);\n            // Pad with zero byte if negative flag is present\n            if (Number.parseInt(hex[0], 16) & 0b1000)\n                hex = '00' + hex;\n            if (hex.length & 1)\n                throw new E('unexpected DER parsing assertion: unpadded hex');\n            return hex;\n        },\n        decode(data) {\n            const { Err: E } = DER;\n            if (data[0] & 128)\n                throw new E('invalid signature integer: negative');\n            if (data[0] === 0x00 && !(data[1] & 128))\n                throw new E('invalid signature integer: unnecessary leading zero');\n            return bytesToNumberBE(data);\n        },\n    },\n    toSig(hex) {\n        // parse DER signature\n        const { Err: E, _int: int, _tlv: tlv } = DER;\n        const data = ensureBytes('signature', hex);\n        const { v: seqBytes, l: seqLeftBytes } = tlv.decode(0x30, data);\n        if (seqLeftBytes.length)\n            throw new E('invalid signature: left bytes after parsing');\n        const { v: rBytes, l: rLeftBytes } = tlv.decode(0x02, seqBytes);\n        const { v: sBytes, l: sLeftBytes } = tlv.decode(0x02, rLeftBytes);\n        if (sLeftBytes.length)\n            throw new E('invalid signature: left bytes after parsing');\n        return { r: int.decode(rBytes), s: int.decode(sBytes) };\n    },\n    hexFromSig(sig) {\n        const { _tlv: tlv, _int: int } = DER;\n        const rs = tlv.encode(0x02, int.encode(sig.r));\n        const ss = tlv.encode(0x02, int.encode(sig.s));\n        const seq = rs + ss;\n        return tlv.encode(0x30, seq);\n    },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n$3 = BigInt(0), _1n$4 = BigInt(1), _2n$5 = BigInt(2), _3n$1 = BigInt(3), _4n = BigInt(4);\nfunction _normFnElement(Fn, key) {\n    const { BYTES: expected } = Fn;\n    let num;\n    if (typeof key === 'bigint') {\n        num = key;\n    }\n    else {\n        let bytes = ensureBytes('private key', key);\n        try {\n            num = Fn.fromBytes(bytes);\n        }\n        catch (error) {\n            throw new Error(`invalid private key: expected ui8a of size ${expected}, got ${typeof key}`);\n        }\n    }\n    if (!Fn.isValidNot0(num))\n        throw new Error('invalid private key: out of range [1..N-1]');\n    return num;\n}\n/**\n * Creates weierstrass Point constructor, based on specified curve options.\n *\n * @example\n```js\nconst opts = {\n  p: BigInt('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'),\n  n: BigInt('0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551'),\n  h: BigInt(1),\n  a: BigInt('0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc'),\n  b: BigInt('0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b'),\n  Gx: BigInt('0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296'),\n  Gy: BigInt('0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5'),\n};\nconst p256_Point = weierstrass(opts);\n```\n */\nfunction weierstrassN(params, extraOpts = {}) {\n    const validated = _createCurveFields('weierstrass', params, extraOpts);\n    const { Fp, Fn } = validated;\n    let CURVE = validated.CURVE;\n    const { h: cofactor, n: CURVE_ORDER } = CURVE;\n    _validateObject(extraOpts, {}, {\n        allowInfinityPoint: 'boolean',\n        clearCofactor: 'function',\n        isTorsionFree: 'function',\n        fromBytes: 'function',\n        toBytes: 'function',\n        endo: 'object',\n        wrapPrivateKey: 'boolean',\n    });\n    const { endo } = extraOpts;\n    if (endo) {\n        // validateObject(endo, { beta: 'bigint', splitScalar: 'function' });\n        if (!Fp.is0(CURVE.a) || typeof endo.beta !== 'bigint' || !Array.isArray(endo.basises)) {\n            throw new Error('invalid endo: expected \"beta\": bigint and \"basises\": array');\n        }\n    }\n    const lengths = getWLengths(Fp, Fn);\n    function assertCompressionIsSupported() {\n        if (!Fp.isOdd)\n            throw new Error('compression is not supported: Field does not have .isOdd()');\n    }\n    // Implements IEEE P1363 point encoding\n    function pointToBytes(_c, point, isCompressed) {\n        const { x, y } = point.toAffine();\n        const bx = Fp.toBytes(x);\n        _abool2(isCompressed, 'isCompressed');\n        if (isCompressed) {\n            assertCompressionIsSupported();\n            const hasEvenY = !Fp.isOdd(y);\n            return concatBytes(pprefix(hasEvenY), bx);\n        }\n        else {\n            return concatBytes(Uint8Array.of(0x04), bx, Fp.toBytes(y));\n        }\n    }\n    function pointFromBytes(bytes) {\n        _abytes2(bytes, undefined, 'Point');\n        const { publicKey: comp, publicKeyUncompressed: uncomp } = lengths; // e.g. for 32-byte: 33, 65\n        const length = bytes.length;\n        const head = bytes[0];\n        const tail = bytes.subarray(1);\n        // No actual validation is done here: use .assertValidity()\n        if (length === comp && (head === 0x02 || head === 0x03)) {\n            const x = Fp.fromBytes(tail);\n            if (!Fp.isValid(x))\n                throw new Error('bad point: is not on curve, wrong x');\n            const y2 = weierstrassEquation(x); // y\u00B2 = x\u00B3 + ax + b\n            let y;\n            try {\n                y = Fp.sqrt(y2); // y = y\u00B2 ^ (p+1)/4\n            }\n            catch (sqrtError) {\n                const err = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n                throw new Error('bad point: is not on curve, sqrt error' + err);\n            }\n            assertCompressionIsSupported();\n            const isYOdd = Fp.isOdd(y); // (y & _1n) === _1n;\n            const isHeadOdd = (head & 1) === 1; // ECDSA-specific\n            if (isHeadOdd !== isYOdd)\n                y = Fp.neg(y);\n            return { x, y };\n        }\n        else if (length === uncomp && head === 0x04) {\n            // TODO: more checks\n            const L = Fp.BYTES;\n            const x = Fp.fromBytes(tail.subarray(0, L));\n            const y = Fp.fromBytes(tail.subarray(L, L * 2));\n            if (!isValidXY(x, y))\n                throw new Error('bad point: is not on curve');\n            return { x, y };\n        }\n        else {\n            throw new Error(`bad point: got length ${length}, expected compressed=${comp} or uncompressed=${uncomp}`);\n        }\n    }\n    const encodePoint = extraOpts.toBytes || pointToBytes;\n    const decodePoint = extraOpts.fromBytes || pointFromBytes;\n    function weierstrassEquation(x) {\n        const x2 = Fp.sqr(x); // x * x\n        const x3 = Fp.mul(x2, x); // x\u00B2 * x\n        return Fp.add(Fp.add(x3, Fp.mul(x, CURVE.a)), CURVE.b); // x\u00B3 + a * x + b\n    }\n    // TODO: move top-level\n    /** Checks whether equation holds for given x, y: y\u00B2 == x\u00B3 + ax + b */\n    function isValidXY(x, y) {\n        const left = Fp.sqr(y); // y\u00B2\n        const right = weierstrassEquation(x); // x\u00B3 + ax + b\n        return Fp.eql(left, right);\n    }\n    // Validate whether the passed curve params are valid.\n    // Test 1: equation y\u00B2 = x\u00B3 + ax + b should work for generator point.\n    if (!isValidXY(CURVE.Gx, CURVE.Gy))\n        throw new Error('bad curve params: generator point');\n    // Test 2: discriminant \u0394 part should be non-zero: 4a\u00B3 + 27b\u00B2 != 0.\n    // Guarantees curve is genus-1, smooth (non-singular).\n    const _4a3 = Fp.mul(Fp.pow(CURVE.a, _3n$1), _4n);\n    const _27b2 = Fp.mul(Fp.sqr(CURVE.b), BigInt(27));\n    if (Fp.is0(Fp.add(_4a3, _27b2)))\n        throw new Error('bad curve params: a or b');\n    /** Asserts coordinate is valid: 0 <= n < Fp.ORDER. */\n    function acoord(title, n, banZero = false) {\n        if (!Fp.isValid(n) || (banZero && Fp.is0(n)))\n            throw new Error(`bad point coordinate ${title}`);\n        return n;\n    }\n    function aprjpoint(other) {\n        if (!(other instanceof Point))\n            throw new Error('ProjectivePoint expected');\n    }\n    function splitEndoScalarN(k) {\n        if (!endo || !endo.basises)\n            throw new Error('no endo');\n        return _splitEndoScalar(k, endo.basises, Fn.ORDER);\n    }\n    // Memoized toAffine / validity check. They are heavy. Points are immutable.\n    // Converts Projective point to affine (x, y) coordinates.\n    // Can accept precomputed Z^-1 - for example, from invertBatch.\n    // (X, Y, Z) \u220B (x=X/Z, y=Y/Z)\n    const toAffineMemo = memoized((p, iz) => {\n        const { X, Y, Z } = p;\n        // Fast-path for normalized points\n        if (Fp.eql(Z, Fp.ONE))\n            return { x: X, y: Y };\n        const is0 = p.is0();\n        // If invZ was 0, we return zero point. However we still want to execute\n        // all operations, so we replace invZ with a random number, 1.\n        if (iz == null)\n            iz = is0 ? Fp.ONE : Fp.inv(Z);\n        const x = Fp.mul(X, iz);\n        const y = Fp.mul(Y, iz);\n        const zz = Fp.mul(Z, iz);\n        if (is0)\n            return { x: Fp.ZERO, y: Fp.ZERO };\n        if (!Fp.eql(zz, Fp.ONE))\n            throw new Error('invZ was invalid');\n        return { x, y };\n    });\n    // NOTE: on exception this will crash 'cached' and no value will be set.\n    // Otherwise true will be return\n    const assertValidMemo = memoized((p) => {\n        if (p.is0()) {\n            // (0, 1, 0) aka ZERO is invalid in most contexts.\n            // In BLS, ZERO can be serialized, so we allow it.\n            // (0, 0, 0) is invalid representation of ZERO.\n            if (extraOpts.allowInfinityPoint && !Fp.is0(p.Y))\n                return;\n            throw new Error('bad point: ZERO');\n        }\n        // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n        const { x, y } = p.toAffine();\n        if (!Fp.isValid(x) || !Fp.isValid(y))\n            throw new Error('bad point: x or y not field elements');\n        if (!isValidXY(x, y))\n            throw new Error('bad point: equation left != right');\n        if (!p.isTorsionFree())\n            throw new Error('bad point: not in prime-order subgroup');\n        return true;\n    });\n    function finishEndo(endoBeta, k1p, k2p, k1neg, k2neg) {\n        k2p = new Point(Fp.mul(k2p.X, endoBeta), k2p.Y, k2p.Z);\n        k1p = negateCt(k1neg, k1p);\n        k2p = negateCt(k2neg, k2p);\n        return k1p.add(k2p);\n    }\n    /**\n     * Projective Point works in 3d / projective (homogeneous) coordinates:(X, Y, Z) \u220B (x=X/Z, y=Y/Z).\n     * Default Point works in 2d / affine coordinates: (x, y).\n     * We're doing calculations in projective, because its operations don't require costly inversion.\n     */\n    class Point {\n        /** Does NOT validate if the point is valid. Use `.assertValidity()`. */\n        constructor(X, Y, Z) {\n            this.X = acoord('x', X);\n            this.Y = acoord('y', Y, true);\n            this.Z = acoord('z', Z);\n            Object.freeze(this);\n        }\n        static CURVE() {\n            return CURVE;\n        }\n        /** Does NOT validate if the point is valid. Use `.assertValidity()`. */\n        static fromAffine(p) {\n            const { x, y } = p || {};\n            if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n                throw new Error('invalid affine point');\n            if (p instanceof Point)\n                throw new Error('projective point not allowed');\n            // (0, 0) would've produced (0, 0, 1) - instead, we need (0, 1, 0)\n            if (Fp.is0(x) && Fp.is0(y))\n                return Point.ZERO;\n            return new Point(x, y, Fp.ONE);\n        }\n        static fromBytes(bytes) {\n            const P = Point.fromAffine(decodePoint(_abytes2(bytes, undefined, 'point')));\n            P.assertValidity();\n            return P;\n        }\n        static fromHex(hex) {\n            return Point.fromBytes(ensureBytes('pointHex', hex));\n        }\n        get x() {\n            return this.toAffine().x;\n        }\n        get y() {\n            return this.toAffine().y;\n        }\n        /**\n         *\n         * @param windowSize\n         * @param isLazy true will defer table computation until the first multiplication\n         * @returns\n         */\n        precompute(windowSize = 8, isLazy = true) {\n            wnaf.createCache(this, windowSize);\n            if (!isLazy)\n                this.multiply(_3n$1); // random number\n            return this;\n        }\n        // TODO: return `this`\n        /** A point on curve is valid if it conforms to equation. */\n        assertValidity() {\n            assertValidMemo(this);\n        }\n        hasEvenY() {\n            const { y } = this.toAffine();\n            if (!Fp.isOdd)\n                throw new Error(\"Field doesn't support isOdd\");\n            return !Fp.isOdd(y);\n        }\n        /** Compare one point to another. */\n        equals(other) {\n            aprjpoint(other);\n            const { X: X1, Y: Y1, Z: Z1 } = this;\n            const { X: X2, Y: Y2, Z: Z2 } = other;\n            const U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n            const U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n            return U1 && U2;\n        }\n        /** Flips point to one corresponding to (x, -y) in Affine coordinates. */\n        negate() {\n            return new Point(this.X, Fp.neg(this.Y), this.Z);\n        }\n        // Renes-Costello-Batina exception-free doubling formula.\n        // There is 30% faster Jacobian formula, but it is not complete.\n        // https://eprint.iacr.org/2015/1060, algorithm 3\n        // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n        double() {\n            const { a, b } = CURVE;\n            const b3 = Fp.mul(b, _3n$1);\n            const { X: X1, Y: Y1, Z: Z1 } = this;\n            let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n            let t0 = Fp.mul(X1, X1); // step 1\n            let t1 = Fp.mul(Y1, Y1);\n            let t2 = Fp.mul(Z1, Z1);\n            let t3 = Fp.mul(X1, Y1);\n            t3 = Fp.add(t3, t3); // step 5\n            Z3 = Fp.mul(X1, Z1);\n            Z3 = Fp.add(Z3, Z3);\n            X3 = Fp.mul(a, Z3);\n            Y3 = Fp.mul(b3, t2);\n            Y3 = Fp.add(X3, Y3); // step 10\n            X3 = Fp.sub(t1, Y3);\n            Y3 = Fp.add(t1, Y3);\n            Y3 = Fp.mul(X3, Y3);\n            X3 = Fp.mul(t3, X3);\n            Z3 = Fp.mul(b3, Z3); // step 15\n            t2 = Fp.mul(a, t2);\n            t3 = Fp.sub(t0, t2);\n            t3 = Fp.mul(a, t3);\n            t3 = Fp.add(t3, Z3);\n            Z3 = Fp.add(t0, t0); // step 20\n            t0 = Fp.add(Z3, t0);\n            t0 = Fp.add(t0, t2);\n            t0 = Fp.mul(t0, t3);\n            Y3 = Fp.add(Y3, t0);\n            t2 = Fp.mul(Y1, Z1); // step 25\n            t2 = Fp.add(t2, t2);\n            t0 = Fp.mul(t2, t3);\n            X3 = Fp.sub(X3, t0);\n            Z3 = Fp.mul(t2, t1);\n            Z3 = Fp.add(Z3, Z3); // step 30\n            Z3 = Fp.add(Z3, Z3);\n            return new Point(X3, Y3, Z3);\n        }\n        // Renes-Costello-Batina exception-free addition formula.\n        // There is 30% faster Jacobian formula, but it is not complete.\n        // https://eprint.iacr.org/2015/1060, algorithm 1\n        // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n        add(other) {\n            aprjpoint(other);\n            const { X: X1, Y: Y1, Z: Z1 } = this;\n            const { X: X2, Y: Y2, Z: Z2 } = other;\n            let X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n            const a = CURVE.a;\n            const b3 = Fp.mul(CURVE.b, _3n$1);\n            let t0 = Fp.mul(X1, X2); // step 1\n            let t1 = Fp.mul(Y1, Y2);\n            let t2 = Fp.mul(Z1, Z2);\n            let t3 = Fp.add(X1, Y1);\n            let t4 = Fp.add(X2, Y2); // step 5\n            t3 = Fp.mul(t3, t4);\n            t4 = Fp.add(t0, t1);\n            t3 = Fp.sub(t3, t4);\n            t4 = Fp.add(X1, Z1);\n            let t5 = Fp.add(X2, Z2); // step 10\n            t4 = Fp.mul(t4, t5);\n            t5 = Fp.add(t0, t2);\n            t4 = Fp.sub(t4, t5);\n            t5 = Fp.add(Y1, Z1);\n            X3 = Fp.add(Y2, Z2); // step 15\n            t5 = Fp.mul(t5, X3);\n            X3 = Fp.add(t1, t2);\n            t5 = Fp.sub(t5, X3);\n            Z3 = Fp.mul(a, t4);\n            X3 = Fp.mul(b3, t2); // step 20\n            Z3 = Fp.add(X3, Z3);\n            X3 = Fp.sub(t1, Z3);\n            Z3 = Fp.add(t1, Z3);\n            Y3 = Fp.mul(X3, Z3);\n            t1 = Fp.add(t0, t0); // step 25\n            t1 = Fp.add(t1, t0);\n            t2 = Fp.mul(a, t2);\n            t4 = Fp.mul(b3, t4);\n            t1 = Fp.add(t1, t2);\n            t2 = Fp.sub(t0, t2); // step 30\n            t2 = Fp.mul(a, t2);\n            t4 = Fp.add(t4, t2);\n            t0 = Fp.mul(t1, t4);\n            Y3 = Fp.add(Y3, t0);\n            t0 = Fp.mul(t5, t4); // step 35\n            X3 = Fp.mul(t3, X3);\n            X3 = Fp.sub(X3, t0);\n            t0 = Fp.mul(t3, t1);\n            Z3 = Fp.mul(t5, Z3);\n            Z3 = Fp.add(Z3, t0); // step 40\n            return new Point(X3, Y3, Z3);\n        }\n        subtract(other) {\n            return this.add(other.negate());\n        }\n        is0() {\n            return this.equals(Point.ZERO);\n        }\n        /**\n         * Constant time multiplication.\n         * Uses wNAF method. Windowed method may be 10% faster,\n         * but takes 2x longer to generate and consumes 2x memory.\n         * Uses precomputes when available.\n         * Uses endomorphism for Koblitz curves.\n         * @param scalar by which the point would be multiplied\n         * @returns New point\n         */\n        multiply(scalar) {\n            const { endo } = extraOpts;\n            if (!Fn.isValidNot0(scalar))\n                throw new Error('invalid scalar: out of range'); // 0 is invalid\n            let point, fake; // Fake point is used to const-time mult\n            const mul = (n) => wnaf.cached(this, n, (p) => normalizeZ(Point, p));\n            /** See docs for {@link EndomorphismOpts} */\n            if (endo) {\n                const { k1neg, k1, k2neg, k2 } = splitEndoScalarN(scalar);\n                const { p: k1p, f: k1f } = mul(k1);\n                const { p: k2p, f: k2f } = mul(k2);\n                fake = k1f.add(k2f);\n                point = finishEndo(endo.beta, k1p, k2p, k1neg, k2neg);\n            }\n            else {\n                const { p, f } = mul(scalar);\n                point = p;\n                fake = f;\n            }\n            // Normalize `z` for both points, but return only real one\n            return normalizeZ(Point, [point, fake])[0];\n        }\n        /**\n         * Non-constant-time multiplication. Uses double-and-add algorithm.\n         * It's faster, but should only be used when you don't care about\n         * an exposed secret key e.g. sig verification, which works over *public* keys.\n         */\n        multiplyUnsafe(sc) {\n            const { endo } = extraOpts;\n            const p = this;\n            if (!Fn.isValid(sc))\n                throw new Error('invalid scalar: out of range'); // 0 is valid\n            if (sc === _0n$3 || p.is0())\n                return Point.ZERO;\n            if (sc === _1n$4)\n                return p; // fast-path\n            if (wnaf.hasCache(this))\n                return this.multiply(sc);\n            if (endo) {\n                const { k1neg, k1, k2neg, k2 } = splitEndoScalarN(sc);\n                const { p1, p2 } = mulEndoUnsafe(Point, p, k1, k2); // 30% faster vs wnaf.unsafe\n                return finishEndo(endo.beta, p1, p2, k1neg, k2neg);\n            }\n            else {\n                return wnaf.unsafe(p, sc);\n            }\n        }\n        multiplyAndAddUnsafe(Q, a, b) {\n            const sum = this.multiplyUnsafe(a).add(Q.multiplyUnsafe(b));\n            return sum.is0() ? undefined : sum;\n        }\n        /**\n         * Converts Projective point to affine (x, y) coordinates.\n         * @param invertedZ Z^-1 (inverted zero) - optional, precomputation is useful for invertBatch\n         */\n        toAffine(invertedZ) {\n            return toAffineMemo(this, invertedZ);\n        }\n        /**\n         * Checks whether Point is free of torsion elements (is in prime subgroup).\n         * Always torsion-free for cofactor=1 curves.\n         */\n        isTorsionFree() {\n            const { isTorsionFree } = extraOpts;\n            if (cofactor === _1n$4)\n                return true;\n            if (isTorsionFree)\n                return isTorsionFree(Point, this);\n            return wnaf.unsafe(this, CURVE_ORDER).is0();\n        }\n        clearCofactor() {\n            const { clearCofactor } = extraOpts;\n            if (cofactor === _1n$4)\n                return this; // Fast-path\n            if (clearCofactor)\n                return clearCofactor(Point, this);\n            return this.multiplyUnsafe(cofactor);\n        }\n        isSmallOrder() {\n            // can we use this.clearCofactor()?\n            return this.multiplyUnsafe(cofactor).is0();\n        }\n        toBytes(isCompressed = true) {\n            _abool2(isCompressed, 'isCompressed');\n            this.assertValidity();\n            return encodePoint(Point, this, isCompressed);\n        }\n        toHex(isCompressed = true) {\n            return bytesToHex(this.toBytes(isCompressed));\n        }\n        toString() {\n            return `<Point ${this.is0() ? 'ZERO' : this.toHex()}>`;\n        }\n        // TODO: remove\n        get px() {\n            return this.X;\n        }\n        get py() {\n            return this.X;\n        }\n        get pz() {\n            return this.Z;\n        }\n        toRawBytes(isCompressed = true) {\n            return this.toBytes(isCompressed);\n        }\n        _setWindowSize(windowSize) {\n            this.precompute(windowSize);\n        }\n        static normalizeZ(points) {\n            return normalizeZ(Point, points);\n        }\n        static msm(points, scalars) {\n            return pippenger(Point, Fn, points, scalars);\n        }\n        static fromPrivateKey(privateKey) {\n            return Point.BASE.multiply(_normFnElement(Fn, privateKey));\n        }\n    }\n    // base / generator point\n    Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n    // zero / infinity / identity point\n    Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO); // 0, 1, 0\n    // math field\n    Point.Fp = Fp;\n    // scalar field\n    Point.Fn = Fn;\n    const bits = Fn.BITS;\n    const wnaf = new wNAF(Point, extraOpts.endo ? Math.ceil(bits / 2) : bits);\n    Point.BASE.precompute(8); // Enable precomputes. Slows down first publicKey computation by 20ms.\n    return Point;\n}\n// Points start with byte 0x02 when y is even; otherwise 0x03\nfunction pprefix(hasEvenY) {\n    return Uint8Array.of(hasEvenY ? 0x02 : 0x03);\n}\nfunction getWLengths(Fp, Fn) {\n    return {\n        secretKey: Fn.BYTES,\n        publicKey: 1 + Fp.BYTES,\n        publicKeyUncompressed: 1 + 2 * Fp.BYTES,\n        publicKeyHasPrefix: true,\n        signature: 2 * Fn.BYTES,\n    };\n}\n/**\n * Sometimes users only need getPublicKey, getSharedSecret, and secret key handling.\n * This helper ensures no signature functionality is present. Less code, smaller bundle size.\n */\nfunction ecdh(Point, ecdhOpts = {}) {\n    const { Fn } = Point;\n    const randomBytes_ = ecdhOpts.randomBytes || randomBytes;\n    const lengths = Object.assign(getWLengths(Point.Fp, Fn), { seed: getMinHashLength(Fn.ORDER) });\n    function isValidSecretKey(secretKey) {\n        try {\n            return !!_normFnElement(Fn, secretKey);\n        }\n        catch (error) {\n            return false;\n        }\n    }\n    function isValidPublicKey(publicKey, isCompressed) {\n        const { publicKey: comp, publicKeyUncompressed } = lengths;\n        try {\n            const l = publicKey.length;\n            if (isCompressed === true && l !== comp)\n                return false;\n            if (isCompressed === false && l !== publicKeyUncompressed)\n                return false;\n            return !!Point.fromBytes(publicKey);\n        }\n        catch (error) {\n            return false;\n        }\n    }\n    /**\n     * Produces cryptographically secure secret key from random of size\n     * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n     */\n    function randomSecretKey(seed = randomBytes_(lengths.seed)) {\n        return mapHashToField(_abytes2(seed, lengths.seed, 'seed'), Fn.ORDER);\n    }\n    /**\n     * Computes public key for a secret key. Checks for validity of the secret key.\n     * @param isCompressed whether to return compact (default), or full key\n     * @returns Public key, full when isCompressed=false; short when isCompressed=true\n     */\n    function getPublicKey(secretKey, isCompressed = true) {\n        return Point.BASE.multiply(_normFnElement(Fn, secretKey)).toBytes(isCompressed);\n    }\n    function keygen(seed) {\n        const secretKey = randomSecretKey(seed);\n        return { secretKey, publicKey: getPublicKey(secretKey) };\n    }\n    /**\n     * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n     */\n    function isProbPub(item) {\n        if (typeof item === 'bigint')\n            return false;\n        if (item instanceof Point)\n            return true;\n        const { secretKey, publicKey, publicKeyUncompressed } = lengths;\n        if (Fn.allowedLengths || secretKey === publicKey)\n            return undefined;\n        const l = ensureBytes('key', item).length;\n        return l === publicKey || l === publicKeyUncompressed;\n    }\n    /**\n     * ECDH (Elliptic Curve Diffie Hellman).\n     * Computes shared public key from secret key A and public key B.\n     * Checks: 1) secret key validity 2) shared key is on-curve.\n     * Does NOT hash the result.\n     * @param isCompressed whether to return compact (default), or full key\n     * @returns shared public key\n     */\n    function getSharedSecret(secretKeyA, publicKeyB, isCompressed = true) {\n        if (isProbPub(secretKeyA) === true)\n            throw new Error('first arg must be private key');\n        if (isProbPub(publicKeyB) === false)\n            throw new Error('second arg must be public key');\n        const s = _normFnElement(Fn, secretKeyA);\n        const b = Point.fromHex(publicKeyB); // checks for being on-curve\n        return b.multiply(s).toBytes(isCompressed);\n    }\n    const utils = {\n        isValidSecretKey,\n        isValidPublicKey,\n        randomSecretKey,\n        // TODO: remove\n        isValidPrivateKey: isValidSecretKey,\n        randomPrivateKey: randomSecretKey,\n        normPrivateKeyToScalar: (key) => _normFnElement(Fn, key),\n        precompute(windowSize = 8, point = Point.BASE) {\n            return point.precompute(windowSize, false);\n        },\n    };\n    return Object.freeze({ getPublicKey, getSharedSecret, keygen, Point, utils, lengths });\n}\n/**\n * Creates ECDSA signing interface for given elliptic curve `Point` and `hash` function.\n * We need `hash` for 2 features:\n * 1. Message prehash-ing. NOT used if `sign` / `verify` are called with `prehash: false`\n * 2. k generation in `sign`, using HMAC-drbg(hash)\n *\n * ECDSAOpts are only rarely needed.\n *\n * @example\n * ```js\n * const p256_Point = weierstrass(...);\n * const p256_sha256 = ecdsa(p256_Point, sha256);\n * const p256_sha224 = ecdsa(p256_Point, sha224);\n * const p256_sha224_r = ecdsa(p256_Point, sha224, { randomBytes: (length) => { ... } });\n * ```\n */\nfunction ecdsa(Point, hash, ecdsaOpts = {}) {\n    ahash(hash);\n    _validateObject(ecdsaOpts, {}, {\n        hmac: 'function',\n        lowS: 'boolean',\n        randomBytes: 'function',\n        bits2int: 'function',\n        bits2int_modN: 'function',\n    });\n    const randomBytes$1 = ecdsaOpts.randomBytes || randomBytes;\n    const hmac$1 = ecdsaOpts.hmac ||\n        ((key, ...msgs) => hmac(hash, key, concatBytes(...msgs)));\n    const { Fp, Fn } = Point;\n    const { ORDER: CURVE_ORDER, BITS: fnBits } = Fn;\n    const { keygen, getPublicKey, getSharedSecret, utils, lengths } = ecdh(Point, ecdsaOpts);\n    const defaultSigOpts = {\n        prehash: false,\n        lowS: typeof ecdsaOpts.lowS === 'boolean' ? ecdsaOpts.lowS : false,\n        format: undefined, //'compact' as ECDSASigFormat,\n        extraEntropy: false,\n    };\n    const defaultSigOpts_format = 'compact';\n    function isBiggerThanHalfOrder(number) {\n        const HALF = CURVE_ORDER >> _1n$4;\n        return number > HALF;\n    }\n    function validateRS(title, num) {\n        if (!Fn.isValidNot0(num))\n            throw new Error(`invalid signature ${title}: out of range 1..Point.Fn.ORDER`);\n        return num;\n    }\n    function validateSigLength(bytes, format) {\n        validateSigFormat(format);\n        const size = lengths.signature;\n        const sizer = format === 'compact' ? size : format === 'recovered' ? size + 1 : undefined;\n        return _abytes2(bytes, sizer, `${format} signature`);\n    }\n    /**\n     * ECDSA signature with its (r, s) properties. Supports compact, recovered & DER representations.\n     */\n    class Signature {\n        constructor(r, s, recovery) {\n            this.r = validateRS('r', r); // r in [1..N-1];\n            this.s = validateRS('s', s); // s in [1..N-1];\n            if (recovery != null)\n                this.recovery = recovery;\n            Object.freeze(this);\n        }\n        static fromBytes(bytes, format = defaultSigOpts_format) {\n            validateSigLength(bytes, format);\n            let recid;\n            if (format === 'der') {\n                const { r, s } = DER.toSig(_abytes2(bytes));\n                return new Signature(r, s);\n            }\n            if (format === 'recovered') {\n                recid = bytes[0];\n                format = 'compact';\n                bytes = bytes.subarray(1);\n            }\n            const L = Fn.BYTES;\n            const r = bytes.subarray(0, L);\n            const s = bytes.subarray(L, L * 2);\n            return new Signature(Fn.fromBytes(r), Fn.fromBytes(s), recid);\n        }\n        static fromHex(hex, format) {\n            return this.fromBytes(hexToBytes(hex), format);\n        }\n        addRecoveryBit(recovery) {\n            return new Signature(this.r, this.s, recovery);\n        }\n        recoverPublicKey(messageHash) {\n            const FIELD_ORDER = Fp.ORDER;\n            const { r, s, recovery: rec } = this;\n            if (rec == null || ![0, 1, 2, 3].includes(rec))\n                throw new Error('recovery id invalid');\n            // ECDSA recovery is hard for cofactor > 1 curves.\n            // In sign, `r = q.x mod n`, and here we recover q.x from r.\n            // While recovering q.x >= n, we need to add r+n for cofactor=1 curves.\n            // However, for cofactor>1, r+n may not get q.x:\n            // r+n*i would need to be done instead where i is unknown.\n            // To easily get i, we either need to:\n            // a. increase amount of valid recid values (4, 5...); OR\n            // b. prohibit non-prime-order signatures (recid > 1).\n            const hasCofactor = CURVE_ORDER * _2n$5 < FIELD_ORDER;\n            if (hasCofactor && rec > 1)\n                throw new Error('recovery id is ambiguous for h>1 curve');\n            const radj = rec === 2 || rec === 3 ? r + CURVE_ORDER : r;\n            if (!Fp.isValid(radj))\n                throw new Error('recovery id 2 or 3 invalid');\n            const x = Fp.toBytes(radj);\n            const R = Point.fromBytes(concatBytes(pprefix((rec & 1) === 0), x));\n            const ir = Fn.inv(radj); // r^-1\n            const h = bits2int_modN(ensureBytes('msgHash', messageHash)); // Truncate hash\n            const u1 = Fn.create(-h * ir); // -hr^-1\n            const u2 = Fn.create(s * ir); // sr^-1\n            // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1). unsafe is fine: there is no private data.\n            const Q = Point.BASE.multiplyUnsafe(u1).add(R.multiplyUnsafe(u2));\n            if (Q.is0())\n                throw new Error('point at infinify');\n            Q.assertValidity();\n            return Q;\n        }\n        // Signatures should be low-s, to prevent malleability.\n        hasHighS() {\n            return isBiggerThanHalfOrder(this.s);\n        }\n        toBytes(format = defaultSigOpts_format) {\n            validateSigFormat(format);\n            if (format === 'der')\n                return hexToBytes(DER.hexFromSig(this));\n            const r = Fn.toBytes(this.r);\n            const s = Fn.toBytes(this.s);\n            if (format === 'recovered') {\n                if (this.recovery == null)\n                    throw new Error('recovery bit must be present');\n                return concatBytes(Uint8Array.of(this.recovery), r, s);\n            }\n            return concatBytes(r, s);\n        }\n        toHex(format) {\n            return bytesToHex(this.toBytes(format));\n        }\n        // TODO: remove\n        assertValidity() { }\n        static fromCompact(hex) {\n            return Signature.fromBytes(ensureBytes('sig', hex), 'compact');\n        }\n        static fromDER(hex) {\n            return Signature.fromBytes(ensureBytes('sig', hex), 'der');\n        }\n        normalizeS() {\n            return this.hasHighS() ? new Signature(this.r, Fn.neg(this.s), this.recovery) : this;\n        }\n        toDERRawBytes() {\n            return this.toBytes('der');\n        }\n        toDERHex() {\n            return bytesToHex(this.toBytes('der'));\n        }\n        toCompactRawBytes() {\n            return this.toBytes('compact');\n        }\n        toCompactHex() {\n            return bytesToHex(this.toBytes('compact'));\n        }\n    }\n    // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n    // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n    // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n    // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n    const bits2int = ecdsaOpts.bits2int ||\n        function bits2int_def(bytes) {\n            // Our custom check \"just in case\", for protection against DoS\n            if (bytes.length > 8192)\n                throw new Error('input is too large');\n            // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n            // for some cases, since bytes.length * 8 is not actual bitLength.\n            const num = bytesToNumberBE(bytes); // check for == u8 done here\n            const delta = bytes.length * 8 - fnBits; // truncate to nBitLength leftmost bits\n            return delta > 0 ? num >> BigInt(delta) : num;\n        };\n    const bits2int_modN = ecdsaOpts.bits2int_modN ||\n        function bits2int_modN_def(bytes) {\n            return Fn.create(bits2int(bytes)); // can't use bytesToNumberBE here\n        };\n    // Pads output with zero as per spec\n    const ORDER_MASK = bitMask(fnBits);\n    /** Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`. */\n    function int2octets(num) {\n        // IMPORTANT: the check ensures working for case `Fn.BYTES != Fn.BITS * 8`\n        aInRange('num < 2^' + fnBits, num, _0n$3, ORDER_MASK);\n        return Fn.toBytes(num);\n    }\n    function validateMsgAndHash(message, prehash) {\n        _abytes2(message, undefined, 'message');\n        return prehash ? _abytes2(hash(message), undefined, 'prehashed message') : message;\n    }\n    /**\n     * Steps A, D of RFC6979 3.2.\n     * Creates RFC6979 seed; converts msg/privKey to numbers.\n     * Used only in sign, not in verify.\n     *\n     * Warning: we cannot assume here that message has same amount of bytes as curve order,\n     * this will be invalid at least for P521. Also it can be bigger for P224 + SHA256.\n     */\n    function prepSig(message, privateKey, opts) {\n        if (['recovered', 'canonical'].some((k) => k in opts))\n            throw new Error('sign() legacy options not supported');\n        const { lowS, prehash, extraEntropy } = validateSigOpts(opts, defaultSigOpts);\n        message = validateMsgAndHash(message, prehash); // RFC6979 3.2 A: h1 = H(m)\n        // We can't later call bits2octets, since nested bits2int is broken for curves\n        // with fnBits % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n        // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n        const h1int = bits2int_modN(message);\n        const d = _normFnElement(Fn, privateKey); // validate secret key, convert to bigint\n        const seedArgs = [int2octets(d), int2octets(h1int)];\n        // extraEntropy. RFC6979 3.6: additional k' (optional).\n        if (extraEntropy != null && extraEntropy !== false) {\n            // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n            // gen random bytes OR pass as-is\n            const e = extraEntropy === true ? randomBytes$1(lengths.secretKey) : extraEntropy;\n            seedArgs.push(ensureBytes('extraEntropy', e)); // check for being bytes\n        }\n        const seed = concatBytes(...seedArgs); // Step D of RFC6979 3.2\n        const m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n        // Converts signature params into point w r/s, checks result for validity.\n        // To transform k => Signature:\n        // q = k\u22C5G\n        // r = q.x mod n\n        // s = k^-1(m + rd) mod n\n        // Can use scalar blinding b^-1(bm + bdr) where b \u2208 [1,q\u22121] according to\n        // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n        // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n        function k2sig(kBytes) {\n            // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n            // Important: all mod() calls here must be done over N\n            const k = bits2int(kBytes); // mod n, not mod p\n            if (!Fn.isValidNot0(k))\n                return; // Valid scalars (including k) must be in 1..N-1\n            const ik = Fn.inv(k); // k^-1 mod n\n            const q = Point.BASE.multiply(k).toAffine(); // q = k\u22C5G\n            const r = Fn.create(q.x); // r = q.x mod n\n            if (r === _0n$3)\n                return;\n            const s = Fn.create(ik * Fn.create(m + r * d)); // Not using blinding here, see comment above\n            if (s === _0n$3)\n                return;\n            let recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n$4); // recovery bit (2 or 3, when q.x > n)\n            let normS = s;\n            if (lowS && isBiggerThanHalfOrder(s)) {\n                normS = Fn.neg(s); // if lowS was passed, ensure s is always\n                recovery ^= 1; // // in the bottom half of N\n            }\n            return new Signature(r, normS, recovery); // use normS, not s\n        }\n        return { seed, k2sig };\n    }\n    /**\n     * Signs message hash with a secret key.\n     *\n     * ```\n     * sign(m, d) where\n     *   k = rfc6979_hmac_drbg(m, d)\n     *   (x, y) = G \u00D7 k\n     *   r = x mod n\n     *   s = (m + dr) / k mod n\n     * ```\n     */\n    function sign(message, secretKey, opts = {}) {\n        message = ensureBytes('message', message);\n        const { seed, k2sig } = prepSig(message, secretKey, opts); // Steps A, D of RFC6979 3.2.\n        const drbg = createHmacDrbg(hash.outputLen, Fn.BYTES, hmac$1);\n        const sig = drbg(seed, k2sig); // Steps B, C, D, E, F, G\n        return sig;\n    }\n    function tryParsingSig(sg) {\n        // Try to deduce format\n        let sig = undefined;\n        const isHex = typeof sg === 'string' || isBytes(sg);\n        const isObj = !isHex &&\n            sg !== null &&\n            typeof sg === 'object' &&\n            typeof sg.r === 'bigint' &&\n            typeof sg.s === 'bigint';\n        if (!isHex && !isObj)\n            throw new Error('invalid signature, expected Uint8Array, hex string or Signature instance');\n        if (isObj) {\n            sig = new Signature(sg.r, sg.s);\n        }\n        else if (isHex) {\n            try {\n                sig = Signature.fromBytes(ensureBytes('sig', sg), 'der');\n            }\n            catch (derError) {\n                if (!(derError instanceof DER.Err))\n                    throw derError;\n            }\n            if (!sig) {\n                try {\n                    sig = Signature.fromBytes(ensureBytes('sig', sg), 'compact');\n                }\n                catch (error) {\n                    return false;\n                }\n            }\n        }\n        if (!sig)\n            return false;\n        return sig;\n    }\n    /**\n     * Verifies a signature against message and public key.\n     * Rejects lowS signatures by default: see {@link ECDSAVerifyOpts}.\n     * Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n     *\n     * ```\n     * verify(r, s, h, P) where\n     *   u1 = hs^-1 mod n\n     *   u2 = rs^-1 mod n\n     *   R = u1\u22C5G + u2\u22C5P\n     *   mod(R.x, n) == r\n     * ```\n     */\n    function verify(signature, message, publicKey, opts = {}) {\n        const { lowS, prehash, format } = validateSigOpts(opts, defaultSigOpts);\n        publicKey = ensureBytes('publicKey', publicKey);\n        message = validateMsgAndHash(ensureBytes('message', message), prehash);\n        if ('strict' in opts)\n            throw new Error('options.strict was renamed to lowS');\n        const sig = format === undefined\n            ? tryParsingSig(signature)\n            : Signature.fromBytes(ensureBytes('sig', signature), format);\n        if (sig === false)\n            return false;\n        try {\n            const P = Point.fromBytes(publicKey);\n            if (lowS && sig.hasHighS())\n                return false;\n            const { r, s } = sig;\n            const h = bits2int_modN(message); // mod n, not mod p\n            const is = Fn.inv(s); // s^-1 mod n\n            const u1 = Fn.create(h * is); // u1 = hs^-1 mod n\n            const u2 = Fn.create(r * is); // u2 = rs^-1 mod n\n            const R = Point.BASE.multiplyUnsafe(u1).add(P.multiplyUnsafe(u2)); // u1\u22C5G + u2\u22C5P\n            if (R.is0())\n                return false;\n            const v = Fn.create(R.x); // v = r.x mod n\n            return v === r;\n        }\n        catch (e) {\n            return false;\n        }\n    }\n    function recoverPublicKey(signature, message, opts = {}) {\n        const { prehash } = validateSigOpts(opts, defaultSigOpts);\n        message = validateMsgAndHash(message, prehash);\n        return Signature.fromBytes(signature, 'recovered').recoverPublicKey(message).toBytes();\n    }\n    return Object.freeze({\n        keygen,\n        getPublicKey,\n        getSharedSecret,\n        utils,\n        lengths,\n        Point,\n        sign,\n        verify,\n        recoverPublicKey,\n        Signature,\n        hash,\n    });\n}\nfunction _weierstrass_legacy_opts_to_new(c) {\n    const CURVE = {\n        a: c.a,\n        b: c.b,\n        p: c.Fp.ORDER,\n        n: c.n,\n        h: c.h,\n        Gx: c.Gx,\n        Gy: c.Gy,\n    };\n    const Fp = c.Fp;\n    let allowedLengths = c.allowedPrivateKeyLengths\n        ? Array.from(new Set(c.allowedPrivateKeyLengths.map((l) => Math.ceil(l / 2))))\n        : undefined;\n    const Fn = Field(CURVE.n, {\n        BITS: c.nBitLength,\n        allowedLengths: allowedLengths,\n        modFromBytes: c.wrapPrivateKey,\n    });\n    const curveOpts = {\n        Fp,\n        Fn,\n        allowInfinityPoint: c.allowInfinityPoint,\n        endo: c.endo,\n        isTorsionFree: c.isTorsionFree,\n        clearCofactor: c.clearCofactor,\n        fromBytes: c.fromBytes,\n        toBytes: c.toBytes,\n    };\n    return { CURVE, curveOpts };\n}\nfunction _ecdsa_legacy_opts_to_new(c) {\n    const { CURVE, curveOpts } = _weierstrass_legacy_opts_to_new(c);\n    const ecdsaOpts = {\n        hmac: c.hmac,\n        randomBytes: c.randomBytes,\n        lowS: c.lowS,\n        bits2int: c.bits2int,\n        bits2int_modN: c.bits2int_modN,\n    };\n    return { CURVE, curveOpts, hash: c.hash, ecdsaOpts };\n}\nfunction _ecdsa_new_output_to_legacy(c, _ecdsa) {\n    const Point = _ecdsa.Point;\n    return Object.assign({}, _ecdsa, {\n        ProjectivePoint: Point,\n        CURVE: Object.assign({}, c, nLength(Point.Fn.ORDER, Point.Fn.BITS)),\n    });\n}\n// _ecdsa_legacy\nfunction weierstrass(c) {\n    const { CURVE, curveOpts, hash, ecdsaOpts } = _ecdsa_legacy_opts_to_new(c);\n    const Point = weierstrassN(CURVE, curveOpts);\n    const signs = ecdsa(Point, hash, ecdsaOpts);\n    return _ecdsa_new_output_to_legacy(c, signs);\n}\n\n/**\n * Utilities for short weierstrass curves, combined with noble-hashes.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n/** @deprecated use new `weierstrass()` and `ecdsa()` methods */\nfunction createCurve(curveDef, defHash) {\n    const create = (hash) => weierstrass({ ...curveDef, hash: hash });\n    return { ...create(defHash), create };\n}\n\n/**\n * Internal module for NIST P256, P384, P521 curves.\n * Do not use for now.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// p = 2n**224n * (2n**32n-1n) + 2n**192n + 2n**96n - 1n\n// a = Fp256.create(BigInt('-3'));\nconst p256_CURVE = {\n    p: BigInt('0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff'),\n    n: BigInt('0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551'),\n    h: BigInt(1),\n    a: BigInt('0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc'),\n    b: BigInt('0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b'),\n    Gx: BigInt('0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296'),\n    Gy: BigInt('0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5'),\n};\n// p = 2n**384n - 2n**128n - 2n**96n + 2n**32n - 1n\nconst p384_CURVE = {\n    p: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff'),\n    n: BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973'),\n    h: BigInt(1),\n    a: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc'),\n    b: BigInt('0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef'),\n    Gx: BigInt('0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7'),\n    Gy: BigInt('0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f'),\n};\n// p = 2n**521n - 1n\nconst p521_CURVE = {\n    p: BigInt('0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'),\n    n: BigInt('0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409'),\n    h: BigInt(1),\n    a: BigInt('0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc'),\n    b: BigInt('0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00'),\n    Gx: BigInt('0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66'),\n    Gy: BigInt('0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650'),\n};\nconst Fp256 = Field(p256_CURVE.p);\nconst Fp384 = Field(p384_CURVE.p);\nconst Fp521 = Field(p521_CURVE.p);\n/** NIST P256 (aka secp256r1, prime256v1) curve, ECDSA and ECDH methods. */\nconst p256$1 = createCurve({ ...p256_CURVE, Fp: Fp256, lowS: false }, sha256$1);\n// export const p256_oprf: OPRF = createORPF({\n//   name: 'P256-SHA256',\n//   Point: p256.Point,\n//   hash: sha256,\n//   hashToGroup: p256_hasher.hashToCurve,\n//   hashToScalar: p256_hasher.hashToScalar,\n// });\n/** NIST P384 (aka secp384r1) curve, ECDSA and ECDH methods. */\nconst p384$1 = createCurve({ ...p384_CURVE, Fp: Fp384, lowS: false }, sha384$1);\n// export const p384_oprf: OPRF = createORPF({\n//   name: 'P384-SHA384',\n//   Point: p384.Point,\n//   hash: sha384,\n//   hashToGroup: p384_hasher.hashToCurve,\n//   hashToScalar: p384_hasher.hashToScalar,\n// });\n// const Fn521 = Field(p521_CURVE.n, { allowedScalarLengths: [65, 66] });\n/** NIST P521 (aka secp521r1) curve, ECDSA and ECDH methods. */\nconst p521$1 = createCurve({ ...p521_CURVE, Fp: Fp521, lowS: false, allowedPrivateKeyLengths: [130, 131, 132] }, sha512$1);\n// export const p521_oprf: OPRF = createORPF({\n//   name: 'P521-SHA512',\n//   Point: p521.Point,\n//   hash: sha512,\n//   hashToGroup: p521_hasher.hashToCurve,\n//   hashToScalar: p521_hasher.hashToScalar, // produces L=98 just like in RFC\n// });\n\n/**\n * NIST secp256r1 aka p256.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n/** @deprecated use `import { p256 } from '@noble/curves/nist.js';` */\nconst p256 = p256$1;\n\n/**\n * NIST secp384r1 aka p384.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n/** @deprecated use `import { p384 } from '@noble/curves/nist.js';` */\nconst p384 = p384$1;\n\n/**\n * NIST secp521r1 aka p521.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n/** @deprecated use `import { p521 } from '@noble/curves/nist.js';` */\nconst p521 = p521$1;\n\n/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\n// No __PURE__ annotations in sha3 header:\n// EVERYTHING is in fact used on every export.\n// Various per round constants calculations\nconst _0n$2 = BigInt(0);\nconst _1n$3 = BigInt(1);\nconst _2n$4 = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nconst SHA3_PI = [];\nconst SHA3_ROTL = [];\nconst _SHA3_IOTA = [];\nfor (let round = 0, R = _1n$3, x = 1, y = 0; round < 24; round++) {\n    // Pi\n    [x, y] = [y, (2 * x + 3 * y) % 5];\n    SHA3_PI.push(2 * (5 * y + x));\n    // Rotational\n    SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n    // Iota\n    let t = _0n$2;\n    for (let j = 0; j < 7; j++) {\n        R = ((R << _1n$3) ^ ((R >> _7n) * _0x71n)) % _256n;\n        if (R & _2n$4)\n            t ^= _1n$3 << ((_1n$3 << /* @__PURE__ */ BigInt(j)) - _1n$3);\n    }\n    _SHA3_IOTA.push(t);\n}\nconst IOTAS = split(_SHA3_IOTA, true);\nconst SHA3_IOTA_H = IOTAS[0];\nconst SHA3_IOTA_L = IOTAS[1];\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n/** `keccakf1600` internal function, additionally allows to adjust round count. */\nfunction keccakP(s, rounds = 24) {\n    const B = new Uint32Array(5 * 2);\n    // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n    for (let round = 24 - rounds; round < 24; round++) {\n        // Theta \u03B8\n        for (let x = 0; x < 10; x++)\n            B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n        for (let x = 0; x < 10; x += 2) {\n            const idx1 = (x + 8) % 10;\n            const idx0 = (x + 2) % 10;\n            const B0 = B[idx0];\n            const B1 = B[idx0 + 1];\n            const Th = rotlH(B0, B1, 1) ^ B[idx1];\n            const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n            for (let y = 0; y < 50; y += 10) {\n                s[x + y] ^= Th;\n                s[x + y + 1] ^= Tl;\n            }\n        }\n        // Rho (\u03C1) and Pi (\u03C0)\n        let curH = s[2];\n        let curL = s[3];\n        for (let t = 0; t < 24; t++) {\n            const shift = SHA3_ROTL[t];\n            const Th = rotlH(curH, curL, shift);\n            const Tl = rotlL(curH, curL, shift);\n            const PI = SHA3_PI[t];\n            curH = s[PI];\n            curL = s[PI + 1];\n            s[PI] = Th;\n            s[PI + 1] = Tl;\n        }\n        // Chi (\u03C7)\n        for (let y = 0; y < 50; y += 10) {\n            for (let x = 0; x < 10; x++)\n                B[x] = s[y + x];\n            for (let x = 0; x < 10; x++)\n                s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n        }\n        // Iota (\u03B9)\n        s[0] ^= SHA3_IOTA_H[round];\n        s[1] ^= SHA3_IOTA_L[round];\n    }\n    clean(B);\n}\n/** Keccak sponge function. */\nclass Keccak extends Hash {\n    // NOTE: we accept arguments in bytes instead of bits here.\n    constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n        super();\n        this.pos = 0;\n        this.posOut = 0;\n        this.finished = false;\n        this.destroyed = false;\n        this.enableXOF = false;\n        this.blockLen = blockLen;\n        this.suffix = suffix;\n        this.outputLen = outputLen;\n        this.enableXOF = enableXOF;\n        this.rounds = rounds;\n        // Can be passed from user as dkLen\n        anumber(outputLen);\n        // 1600 = 5x5 matrix of 64bit.  1600 bits === 200 bytes\n        // 0 < blockLen < 200\n        if (!(0 < blockLen && blockLen < 200))\n            throw new Error('only keccak-f1600 function is supported');\n        this.state = new Uint8Array(200);\n        this.state32 = u32(this.state);\n    }\n    clone() {\n        return this._cloneInto();\n    }\n    keccak() {\n        swap32IfBE(this.state32);\n        keccakP(this.state32, this.rounds);\n        swap32IfBE(this.state32);\n        this.posOut = 0;\n        this.pos = 0;\n    }\n    update(data) {\n        aexists(this);\n        data = toBytes(data);\n        abytes(data);\n        const { blockLen, state } = this;\n        const len = data.length;\n        for (let pos = 0; pos < len;) {\n            const take = Math.min(blockLen - this.pos, len - pos);\n            for (let i = 0; i < take; i++)\n                state[this.pos++] ^= data[pos++];\n            if (this.pos === blockLen)\n                this.keccak();\n        }\n        return this;\n    }\n    finish() {\n        if (this.finished)\n            return;\n        this.finished = true;\n        const { state, suffix, pos, blockLen } = this;\n        // Do the padding\n        state[pos] ^= suffix;\n        if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n            this.keccak();\n        state[blockLen - 1] ^= 0x80;\n        this.keccak();\n    }\n    writeInto(out) {\n        aexists(this, false);\n        abytes(out);\n        this.finish();\n        const bufferOut = this.state;\n        const { blockLen } = this;\n        for (let pos = 0, len = out.length; pos < len;) {\n            if (this.posOut >= blockLen)\n                this.keccak();\n            const take = Math.min(blockLen - this.posOut, len - pos);\n            out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n            this.posOut += take;\n            pos += take;\n        }\n        return out;\n    }\n    xofInto(out) {\n        // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n        if (!this.enableXOF)\n            throw new Error('XOF is not possible for this instance');\n        return this.writeInto(out);\n    }\n    xof(bytes) {\n        anumber(bytes);\n        return this.xofInto(new Uint8Array(bytes));\n    }\n    digestInto(out) {\n        aoutput(out, this);\n        if (this.finished)\n            throw new Error('digest() was already called');\n        this.writeInto(out);\n        this.destroy();\n        return out;\n    }\n    digest() {\n        return this.digestInto(new Uint8Array(this.outputLen));\n    }\n    destroy() {\n        this.destroyed = true;\n        clean(this.state);\n    }\n    _cloneInto(to) {\n        const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n        to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n        to.state32.set(this.state32);\n        to.pos = this.pos;\n        to.posOut = this.posOut;\n        to.finished = this.finished;\n        to.rounds = rounds;\n        // Suffix can change in cSHAKE\n        to.suffix = suffix;\n        to.outputLen = outputLen;\n        to.enableXOF = enableXOF;\n        to.destroyed = this.destroyed;\n        return to;\n    }\n}\nconst gen = (suffix, blockLen, outputLen) => createHasher(() => new Keccak(blockLen, suffix, outputLen));\n/** SHA3-256 hash function. Different from keccak-256. */\nconst sha3_256 = /* @__PURE__ */ (() => gen(0x06, 136, 256 / 8))();\n/** SHA3-512 hash function. */\nconst sha3_512 = /* @__PURE__ */ (() => gen(0x06, 72, 512 / 8))();\nconst genShake = (suffix, blockLen, outputLen) => createXOFer((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\n/** SHAKE256 XOF with 256-bit security. */\nconst shake256 = /* @__PURE__ */ (() => genShake(0x1f, 136, 256 / 8))();\n\n/**\n * Twisted Edwards curve. The formula is: ax\u00B2 + y\u00B2 = 1 + dx\u00B2y\u00B2.\n * For design rationale of types / exports, see weierstrass module documentation.\n * Untwisted Edwards curves exist, but they aren't used in real-world protocols.\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nconst _0n$1 = BigInt(0), _1n$2 = BigInt(1), _2n$3 = BigInt(2), _8n = BigInt(8);\nfunction isEdValidXY(Fp, CURVE, x, y) {\n    const x2 = Fp.sqr(x);\n    const y2 = Fp.sqr(y);\n    const left = Fp.add(Fp.mul(CURVE.a, x2), y2);\n    const right = Fp.add(Fp.ONE, Fp.mul(CURVE.d, Fp.mul(x2, y2)));\n    return Fp.eql(left, right);\n}\nfunction edwards(params, extraOpts = {}) {\n    const validated = _createCurveFields('edwards', params, extraOpts, extraOpts.FpFnLE);\n    const { Fp, Fn } = validated;\n    let CURVE = validated.CURVE;\n    const { h: cofactor } = CURVE;\n    _validateObject(extraOpts, {}, { uvRatio: 'function' });\n    // Important:\n    // There are some places where Fp.BYTES is used instead of nByteLength.\n    // So far, everything has been tested with curves of Fp.BYTES == nByteLength.\n    // TODO: test and find curves which behave otherwise.\n    const MASK = _2n$3 << (BigInt(Fn.BYTES * 8) - _1n$2);\n    const modP = (n) => Fp.create(n); // Function overrides\n    // sqrt(u/v)\n    const uvRatio = extraOpts.uvRatio ||\n        ((u, v) => {\n            try {\n                return { isValid: true, value: Fp.sqrt(Fp.div(u, v)) };\n            }\n            catch (e) {\n                return { isValid: false, value: _0n$1 };\n            }\n        });\n    // Validate whether the passed curve params are valid.\n    // equation ax\u00B2 + y\u00B2 = 1 + dx\u00B2y\u00B2 should work for generator point.\n    if (!isEdValidXY(Fp, CURVE, CURVE.Gx, CURVE.Gy))\n        throw new Error('bad curve params: generator point');\n    /**\n     * Asserts coordinate is valid: 0 <= n < MASK.\n     * Coordinates >= Fp.ORDER are allowed for zip215.\n     */\n    function acoord(title, n, banZero = false) {\n        const min = banZero ? _1n$2 : _0n$1;\n        aInRange('coordinate ' + title, n, min, MASK);\n        return n;\n    }\n    function aextpoint(other) {\n        if (!(other instanceof Point))\n            throw new Error('ExtendedPoint expected');\n    }\n    // Converts Extended point to default (x, y) coordinates.\n    // Can accept precomputed Z^-1 - for example, from invertBatch.\n    const toAffineMemo = memoized((p, iz) => {\n        const { X, Y, Z } = p;\n        const is0 = p.is0();\n        if (iz == null)\n            iz = is0 ? _8n : Fp.inv(Z); // 8 was chosen arbitrarily\n        const x = modP(X * iz);\n        const y = modP(Y * iz);\n        const zz = Fp.mul(Z, iz);\n        if (is0)\n            return { x: _0n$1, y: _1n$2 };\n        if (zz !== _1n$2)\n            throw new Error('invZ was invalid');\n        return { x, y };\n    });\n    const assertValidMemo = memoized((p) => {\n        const { a, d } = CURVE;\n        if (p.is0())\n            throw new Error('bad point: ZERO'); // TODO: optimize, with vars below?\n        // Equation in affine coordinates: ax\u00B2 + y\u00B2 = 1 + dx\u00B2y\u00B2\n        // Equation in projective coordinates (X/Z, Y/Z, Z):  (aX\u00B2 + Y\u00B2)Z\u00B2 = Z\u2074 + dX\u00B2Y\u00B2\n        const { X, Y, Z, T } = p;\n        const X2 = modP(X * X); // X\u00B2\n        const Y2 = modP(Y * Y); // Y\u00B2\n        const Z2 = modP(Z * Z); // Z\u00B2\n        const Z4 = modP(Z2 * Z2); // Z\u2074\n        const aX2 = modP(X2 * a); // aX\u00B2\n        const left = modP(Z2 * modP(aX2 + Y2)); // (aX\u00B2 + Y\u00B2)Z\u00B2\n        const right = modP(Z4 + modP(d * modP(X2 * Y2))); // Z\u2074 + dX\u00B2Y\u00B2\n        if (left !== right)\n            throw new Error('bad point: equation left != right (1)');\n        // In Extended coordinates we also have T, which is x*y=T/Z: check X*Y == Z*T\n        const XY = modP(X * Y);\n        const ZT = modP(Z * T);\n        if (XY !== ZT)\n            throw new Error('bad point: equation left != right (2)');\n        return true;\n    });\n    // Extended Point works in extended coordinates: (X, Y, Z, T) \u220B (x=X/Z, y=Y/Z, T=xy).\n    // https://en.wikipedia.org/wiki/Twisted_Edwards_curve#Extended_coordinates\n    class Point {\n        constructor(X, Y, Z, T) {\n            this.X = acoord('x', X);\n            this.Y = acoord('y', Y);\n            this.Z = acoord('z', Z, true);\n            this.T = acoord('t', T);\n            Object.freeze(this);\n        }\n        static CURVE() {\n            return CURVE;\n        }\n        static fromAffine(p) {\n            if (p instanceof Point)\n                throw new Error('extended point not allowed');\n            const { x, y } = p || {};\n            acoord('x', x);\n            acoord('y', y);\n            return new Point(x, y, _1n$2, modP(x * y));\n        }\n        // Uses algo from RFC8032 5.1.3.\n        static fromBytes(bytes, zip215 = false) {\n            const len = Fp.BYTES;\n            const { a, d } = CURVE;\n            bytes = copyBytes(_abytes2(bytes, len, 'point'));\n            _abool2(zip215, 'zip215');\n            const normed = copyBytes(bytes); // copy again, we'll manipulate it\n            const lastByte = bytes[len - 1]; // select last byte\n            normed[len - 1] = lastByte & -129; // clear last bit\n            const y = bytesToNumberLE(normed);\n            // zip215=true is good for consensus-critical apps. =false follows RFC8032 / NIST186-5.\n            // RFC8032 prohibits >= p, but ZIP215 doesn't\n            // zip215=true:  0 <= y < MASK (2^256 for ed25519)\n            // zip215=false: 0 <= y < P (2^255-19 for ed25519)\n            const max = zip215 ? MASK : Fp.ORDER;\n            aInRange('point.y', y, _0n$1, max);\n            // Ed25519: x\u00B2 = (y\u00B2-1)/(dy\u00B2+1) mod p. Ed448: x\u00B2 = (y\u00B2-1)/(dy\u00B2-1) mod p. Generic case:\n            // ax\u00B2+y\u00B2=1+dx\u00B2y\u00B2 => y\u00B2-1=dx\u00B2y\u00B2-ax\u00B2 => y\u00B2-1=x\u00B2(dy\u00B2-a) => x\u00B2=(y\u00B2-1)/(dy\u00B2-a)\n            const y2 = modP(y * y); // denominator is always non-0 mod p.\n            const u = modP(y2 - _1n$2); // u = y\u00B2 - 1\n            const v = modP(d * y2 - a); // v = d y\u00B2 + 1.\n            let { isValid, value: x } = uvRatio(u, v); // \u221A(u/v)\n            if (!isValid)\n                throw new Error('bad point: invalid y coordinate');\n            const isXOdd = (x & _1n$2) === _1n$2; // There are 2 square roots. Use x_0 bit to select proper\n            const isLastByteOdd = (lastByte & 0x80) !== 0; // x_0, last bit\n            if (!zip215 && x === _0n$1 && isLastByteOdd)\n                // if x=0 and x_0 = 1, fail\n                throw new Error('bad point: x=0 and x_0=1');\n            if (isLastByteOdd !== isXOdd)\n                x = modP(-x); // if x_0 != x mod 2, set x = p-x\n            return Point.fromAffine({ x, y });\n        }\n        static fromHex(bytes, zip215 = false) {\n            return Point.fromBytes(ensureBytes('point', bytes), zip215);\n        }\n        get x() {\n            return this.toAffine().x;\n        }\n        get y() {\n            return this.toAffine().y;\n        }\n        precompute(windowSize = 8, isLazy = true) {\n            wnaf.createCache(this, windowSize);\n            if (!isLazy)\n                this.multiply(_2n$3); // random number\n            return this;\n        }\n        // Useful in fromAffine() - not for fromBytes(), which always created valid points.\n        assertValidity() {\n            assertValidMemo(this);\n        }\n        // Compare one point to another.\n        equals(other) {\n            aextpoint(other);\n            const { X: X1, Y: Y1, Z: Z1 } = this;\n            const { X: X2, Y: Y2, Z: Z2 } = other;\n            const X1Z2 = modP(X1 * Z2);\n            const X2Z1 = modP(X2 * Z1);\n            const Y1Z2 = modP(Y1 * Z2);\n            const Y2Z1 = modP(Y2 * Z1);\n            return X1Z2 === X2Z1 && Y1Z2 === Y2Z1;\n        }\n        is0() {\n            return this.equals(Point.ZERO);\n        }\n        negate() {\n            // Flips point sign to a negative one (-x, y in affine coords)\n            return new Point(modP(-this.X), this.Y, this.Z, modP(-this.T));\n        }\n        // Fast algo for doubling Extended Point.\n        // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#doubling-dbl-2008-hwcd\n        // Cost: 4M + 4S + 1*a + 6add + 1*2.\n        double() {\n            const { a } = CURVE;\n            const { X: X1, Y: Y1, Z: Z1 } = this;\n            const A = modP(X1 * X1); // A = X12\n            const B = modP(Y1 * Y1); // B = Y12\n            const C = modP(_2n$3 * modP(Z1 * Z1)); // C = 2*Z12\n            const D = modP(a * A); // D = a*A\n            const x1y1 = X1 + Y1;\n            const E = modP(modP(x1y1 * x1y1) - A - B); // E = (X1+Y1)2-A-B\n            const G = D + B; // G = D+B\n            const F = G - C; // F = G-C\n            const H = D - B; // H = D-B\n            const X3 = modP(E * F); // X3 = E*F\n            const Y3 = modP(G * H); // Y3 = G*H\n            const T3 = modP(E * H); // T3 = E*H\n            const Z3 = modP(F * G); // Z3 = F*G\n            return new Point(X3, Y3, Z3, T3);\n        }\n        // Fast algo for adding 2 Extended Points.\n        // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#addition-add-2008-hwcd\n        // Cost: 9M + 1*a + 1*d + 7add.\n        add(other) {\n            aextpoint(other);\n            const { a, d } = CURVE;\n            const { X: X1, Y: Y1, Z: Z1, T: T1 } = this;\n            const { X: X2, Y: Y2, Z: Z2, T: T2 } = other;\n            const A = modP(X1 * X2); // A = X1*X2\n            const B = modP(Y1 * Y2); // B = Y1*Y2\n            const C = modP(T1 * d * T2); // C = T1*d*T2\n            const D = modP(Z1 * Z2); // D = Z1*Z2\n            const E = modP((X1 + Y1) * (X2 + Y2) - A - B); // E = (X1+Y1)*(X2+Y2)-A-B\n            const F = D - C; // F = D-C\n            const G = D + C; // G = D+C\n            const H = modP(B - a * A); // H = B-a*A\n            const X3 = modP(E * F); // X3 = E*F\n            const Y3 = modP(G * H); // Y3 = G*H\n            const T3 = modP(E * H); // T3 = E*H\n            const Z3 = modP(F * G); // Z3 = F*G\n            return new Point(X3, Y3, Z3, T3);\n        }\n        subtract(other) {\n            return this.add(other.negate());\n        }\n        // Constant-time multiplication.\n        multiply(scalar) {\n            // 1 <= scalar < L\n            if (!Fn.isValidNot0(scalar))\n                throw new Error('invalid scalar: expected 1 <= sc < curve.n');\n            const { p, f } = wnaf.cached(this, scalar, (p) => normalizeZ(Point, p));\n            return normalizeZ(Point, [p, f])[0];\n        }\n        // Non-constant-time multiplication. Uses double-and-add algorithm.\n        // It's faster, but should only be used when you don't care about\n        // an exposed private key e.g. sig verification.\n        // Does NOT allow scalars higher than CURVE.n.\n        // Accepts optional accumulator to merge with multiply (important for sparse scalars)\n        multiplyUnsafe(scalar, acc = Point.ZERO) {\n            // 0 <= scalar < L\n            if (!Fn.isValid(scalar))\n                throw new Error('invalid scalar: expected 0 <= sc < curve.n');\n            if (scalar === _0n$1)\n                return Point.ZERO;\n            if (this.is0() || scalar === _1n$2)\n                return this;\n            return wnaf.unsafe(this, scalar, (p) => normalizeZ(Point, p), acc);\n        }\n        // Checks if point is of small order.\n        // If you add something to small order point, you will have \"dirty\"\n        // point with torsion component.\n        // Multiplies point by cofactor and checks if the result is 0.\n        isSmallOrder() {\n            return this.multiplyUnsafe(cofactor).is0();\n        }\n        // Multiplies point by curve order and checks if the result is 0.\n        // Returns `false` is the point is dirty.\n        isTorsionFree() {\n            return wnaf.unsafe(this, CURVE.n).is0();\n        }\n        // Converts Extended point to default (x, y) coordinates.\n        // Can accept precomputed Z^-1 - for example, from invertBatch.\n        toAffine(invertedZ) {\n            return toAffineMemo(this, invertedZ);\n        }\n        clearCofactor() {\n            if (cofactor === _1n$2)\n                return this;\n            return this.multiplyUnsafe(cofactor);\n        }\n        toBytes() {\n            const { x, y } = this.toAffine();\n            // Fp.toBytes() allows non-canonical encoding of y (>= p).\n            const bytes = Fp.toBytes(y);\n            // Each y has 2 valid points: (x, y), (x,-y).\n            // When compressing, it's enough to store y and use the last byte to encode sign of x\n            bytes[bytes.length - 1] |= x & _1n$2 ? 0x80 : 0;\n            return bytes;\n        }\n        toHex() {\n            return bytesToHex(this.toBytes());\n        }\n        toString() {\n            return `<Point ${this.is0() ? 'ZERO' : this.toHex()}>`;\n        }\n        // TODO: remove\n        get ex() {\n            return this.X;\n        }\n        get ey() {\n            return this.Y;\n        }\n        get ez() {\n            return this.Z;\n        }\n        get et() {\n            return this.T;\n        }\n        static normalizeZ(points) {\n            return normalizeZ(Point, points);\n        }\n        static msm(points, scalars) {\n            return pippenger(Point, Fn, points, scalars);\n        }\n        _setWindowSize(windowSize) {\n            this.precompute(windowSize);\n        }\n        toRawBytes() {\n            return this.toBytes();\n        }\n    }\n    // base / generator point\n    Point.BASE = new Point(CURVE.Gx, CURVE.Gy, _1n$2, modP(CURVE.Gx * CURVE.Gy));\n    // zero / infinity / identity point\n    Point.ZERO = new Point(_0n$1, _1n$2, _1n$2, _0n$1); // 0, 1, 1, 0\n    // math field\n    Point.Fp = Fp;\n    // scalar field\n    Point.Fn = Fn;\n    const wnaf = new wNAF(Point, Fn.BITS);\n    Point.BASE.precompute(8); // Enable precomputes. Slows down first publicKey computation by 20ms.\n    return Point;\n}\n/**\n * Initializes EdDSA signatures over given Edwards curve.\n */\nfunction eddsa(Point, cHash, eddsaOpts = {}) {\n    if (typeof cHash !== 'function')\n        throw new Error('\"hash\" function param is required');\n    _validateObject(eddsaOpts, {}, {\n        adjustScalarBytes: 'function',\n        randomBytes: 'function',\n        domain: 'function',\n        prehash: 'function',\n        mapToCurve: 'function',\n    });\n    const { prehash } = eddsaOpts;\n    const { BASE, Fp, Fn } = Point;\n    const randomBytes$1 = eddsaOpts.randomBytes || randomBytes;\n    const adjustScalarBytes = eddsaOpts.adjustScalarBytes || ((bytes) => bytes);\n    const domain = eddsaOpts.domain ||\n        ((data, ctx, phflag) => {\n            _abool2(phflag, 'phflag');\n            if (ctx.length || phflag)\n                throw new Error('Contexts/pre-hash are not supported');\n            return data;\n        }); // NOOP\n    // Little-endian SHA512 with modulo n\n    function modN_LE(hash) {\n        return Fn.create(bytesToNumberLE(hash)); // Not Fn.fromBytes: it has length limit\n    }\n    // Get the hashed private scalar per RFC8032 5.1.5\n    function getPrivateScalar(key) {\n        const len = lengths.secretKey;\n        key = ensureBytes('private key', key, len);\n        // Hash private key with curve's hash function to produce uniformingly random input\n        // Check byte lengths: ensure(64, h(ensure(32, key)))\n        const hashed = ensureBytes('hashed private key', cHash(key), 2 * len);\n        const head = adjustScalarBytes(hashed.slice(0, len)); // clear first half bits, produce FE\n        const prefix = hashed.slice(len, 2 * len); // second half is called key prefix (5.1.6)\n        const scalar = modN_LE(head); // The actual private scalar\n        return { head, prefix, scalar };\n    }\n    /** Convenience method that creates public key from scalar. RFC8032 5.1.5 */\n    function getExtendedPublicKey(secretKey) {\n        const { head, prefix, scalar } = getPrivateScalar(secretKey);\n        const point = BASE.multiply(scalar); // Point on Edwards curve aka public key\n        const pointBytes = point.toBytes();\n        return { head, prefix, scalar, point, pointBytes };\n    }\n    /** Calculates EdDSA pub key. RFC8032 5.1.5. */\n    function getPublicKey(secretKey) {\n        return getExtendedPublicKey(secretKey).pointBytes;\n    }\n    // int('LE', SHA512(dom2(F, C) || msgs)) mod N\n    function hashDomainToScalar(context = Uint8Array.of(), ...msgs) {\n        const msg = concatBytes(...msgs);\n        return modN_LE(cHash(domain(msg, ensureBytes('context', context), !!prehash)));\n    }\n    /** Signs message with privateKey. RFC8032 5.1.6 */\n    function sign(msg, secretKey, options = {}) {\n        msg = ensureBytes('message', msg);\n        if (prehash)\n            msg = prehash(msg); // for ed25519ph etc.\n        const { prefix, scalar, pointBytes } = getExtendedPublicKey(secretKey);\n        const r = hashDomainToScalar(options.context, prefix, msg); // r = dom2(F, C) || prefix || PH(M)\n        const R = BASE.multiply(r).toBytes(); // R = rG\n        const k = hashDomainToScalar(options.context, R, pointBytes, msg); // R || A || PH(M)\n        const s = Fn.create(r + k * scalar); // S = (r + k * s) mod L\n        if (!Fn.isValid(s))\n            throw new Error('sign failed: invalid s'); // 0 <= s < L\n        const rs = concatBytes(R, Fn.toBytes(s));\n        return _abytes2(rs, lengths.signature, 'result');\n    }\n    // verification rule is either zip215 or rfc8032 / nist186-5. Consult fromHex:\n    const verifyOpts = { zip215: true };\n    /**\n     * Verifies EdDSA signature against message and public key. RFC8032 5.1.7.\n     * An extended group equation is checked.\n     */\n    function verify(sig, msg, publicKey, options = verifyOpts) {\n        const { context, zip215 } = options;\n        const len = lengths.signature;\n        sig = ensureBytes('signature', sig, len);\n        msg = ensureBytes('message', msg);\n        publicKey = ensureBytes('publicKey', publicKey, lengths.publicKey);\n        if (zip215 !== undefined)\n            _abool2(zip215, 'zip215');\n        if (prehash)\n            msg = prehash(msg); // for ed25519ph, etc\n        const mid = len / 2;\n        const r = sig.subarray(0, mid);\n        const s = bytesToNumberLE(sig.subarray(mid, len));\n        let A, R, SB;\n        try {\n            // zip215=true is good for consensus-critical apps. =false follows RFC8032 / NIST186-5.\n            // zip215=true:  0 <= y < MASK (2^256 for ed25519)\n            // zip215=false: 0 <= y < P (2^255-19 for ed25519)\n            A = Point.fromBytes(publicKey, zip215);\n            R = Point.fromBytes(r, zip215);\n            SB = BASE.multiplyUnsafe(s); // 0 <= s < l is done inside\n        }\n        catch (error) {\n            return false;\n        }\n        if (!zip215 && A.isSmallOrder())\n            return false; // zip215 allows public keys of small order\n        const k = hashDomainToScalar(context, R.toBytes(), A.toBytes(), msg);\n        const RkA = R.add(A.multiplyUnsafe(k));\n        // Extended group equation\n        // [8][S]B = [8]R + [8][k]A'\n        return RkA.subtract(SB).clearCofactor().is0();\n    }\n    const _size = Fp.BYTES; // 32 for ed25519, 57 for ed448\n    const lengths = {\n        secretKey: _size,\n        publicKey: _size,\n        signature: 2 * _size,\n        seed: _size,\n    };\n    function randomSecretKey(seed = randomBytes$1(lengths.seed)) {\n        return _abytes2(seed, lengths.seed, 'seed');\n    }\n    function keygen(seed) {\n        const secretKey = utils.randomSecretKey(seed);\n        return { secretKey, publicKey: getPublicKey(secretKey) };\n    }\n    function isValidSecretKey(key) {\n        return isBytes(key) && key.length === Fn.BYTES;\n    }\n    function isValidPublicKey(key, zip215) {\n        try {\n            return !!Point.fromBytes(key, zip215);\n        }\n        catch (error) {\n            return false;\n        }\n    }\n    const utils = {\n        getExtendedPublicKey,\n        randomSecretKey,\n        isValidSecretKey,\n        isValidPublicKey,\n        /**\n         * Converts ed public key to x public key. Uses formula:\n         * - ed25519:\n         *   - `(u, v) = ((1+y)/(1-y), sqrt(-486664)*u/x)`\n         *   - `(x, y) = (sqrt(-486664)*u/v, (u-1)/(u+1))`\n         * - ed448:\n         *   - `(u, v) = ((y-1)/(y+1), sqrt(156324)*u/x)`\n         *   - `(x, y) = (sqrt(156324)*u/v, (1+u)/(1-u))`\n         */\n        toMontgomery(publicKey) {\n            const { y } = Point.fromBytes(publicKey);\n            const size = lengths.publicKey;\n            const is25519 = size === 32;\n            if (!is25519 && size !== 57)\n                throw new Error('only defined for 25519 and 448');\n            const u = is25519 ? Fp.div(_1n$2 + y, _1n$2 - y) : Fp.div(y - _1n$2, y + _1n$2);\n            return Fp.toBytes(u);\n        },\n        toMontgomerySecret(secretKey) {\n            const size = lengths.secretKey;\n            _abytes2(secretKey, size);\n            const hashed = cHash(secretKey.subarray(0, size));\n            return adjustScalarBytes(hashed).subarray(0, size);\n        },\n        /** @deprecated */\n        randomPrivateKey: randomSecretKey,\n        /** @deprecated */\n        precompute(windowSize = 8, point = Point.BASE) {\n            return point.precompute(windowSize, false);\n        },\n    };\n    return Object.freeze({\n        keygen,\n        getPublicKey,\n        sign,\n        verify,\n        utils,\n        Point,\n        lengths,\n    });\n}\nfunction _eddsa_legacy_opts_to_new(c) {\n    const CURVE = {\n        a: c.a,\n        d: c.d,\n        p: c.Fp.ORDER,\n        n: c.n,\n        h: c.h,\n        Gx: c.Gx,\n        Gy: c.Gy,\n    };\n    const Fp = c.Fp;\n    const Fn = Field(CURVE.n, c.nBitLength, true);\n    const curveOpts = { Fp, Fn, uvRatio: c.uvRatio };\n    const eddsaOpts = {\n        randomBytes: c.randomBytes,\n        adjustScalarBytes: c.adjustScalarBytes,\n        domain: c.domain,\n        prehash: c.prehash,\n        mapToCurve: c.mapToCurve,\n    };\n    return { CURVE, curveOpts, hash: c.hash, eddsaOpts };\n}\nfunction _eddsa_new_output_to_legacy(c, eddsa) {\n    const Point = eddsa.Point;\n    const legacy = Object.assign({}, eddsa, {\n        ExtendedPoint: Point,\n        CURVE: c,\n        nBitLength: Point.Fn.BITS,\n        nByteLength: Point.Fn.BYTES,\n    });\n    return legacy;\n}\n// TODO: remove. Use eddsa\nfunction twistedEdwards(c) {\n    const { CURVE, curveOpts, hash, eddsaOpts } = _eddsa_legacy_opts_to_new(c);\n    const Point = edwards(CURVE, curveOpts);\n    const EDDSA = eddsa(Point, hash, eddsaOpts);\n    return _eddsa_new_output_to_legacy(c, EDDSA);\n}\n\n/**\n * Montgomery curve methods. It's not really whole montgomery curve,\n * just bunch of very specific methods for X25519 / X448 from\n * [RFC 7748](https://www.rfc-editor.org/rfc/rfc7748)\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst _0n = BigInt(0);\nconst _1n$1 = BigInt(1);\nconst _2n$2 = BigInt(2);\nfunction validateOpts(curve) {\n    _validateObject(curve, {\n        adjustScalarBytes: 'function',\n        powPminus2: 'function',\n    });\n    return Object.freeze({ ...curve });\n}\nfunction montgomery(curveDef) {\n    const CURVE = validateOpts(curveDef);\n    const { P, type, adjustScalarBytes, powPminus2, randomBytes: rand } = CURVE;\n    const is25519 = type === 'x25519';\n    if (!is25519 && type !== 'x448')\n        throw new Error('invalid type');\n    const randomBytes_ = rand || randomBytes;\n    const montgomeryBits = is25519 ? 255 : 448;\n    const fieldLen = is25519 ? 32 : 56;\n    const Gu = is25519 ? BigInt(9) : BigInt(5);\n    // RFC 7748 #5:\n    // The constant a24 is (486662 - 2) / 4 = 121665 for curve25519/X25519 and\n    // (156326 - 2) / 4 = 39081 for curve448/X448\n    // const a = is25519 ? 156326n : 486662n;\n    const a24 = is25519 ? BigInt(121665) : BigInt(39081);\n    // RFC: x25519 \"the resulting integer is of the form 2^254 plus\n    // eight times a value between 0 and 2^251 - 1 (inclusive)\"\n    // x448: \"2^447 plus four times a value between 0 and 2^445 - 1 (inclusive)\"\n    const minScalar = is25519 ? _2n$2 ** BigInt(254) : _2n$2 ** BigInt(447);\n    const maxAdded = is25519\n        ? BigInt(8) * _2n$2 ** BigInt(251) - _1n$1\n        : BigInt(4) * _2n$2 ** BigInt(445) - _1n$1;\n    const maxScalar = minScalar + maxAdded + _1n$1; // (inclusive)\n    const modP = (n) => mod(n, P);\n    const GuBytes = encodeU(Gu);\n    function encodeU(u) {\n        return numberToBytesLE(modP(u), fieldLen);\n    }\n    function decodeU(u) {\n        const _u = ensureBytes('u coordinate', u, fieldLen);\n        // RFC: When receiving such an array, implementations of X25519\n        // (but not X448) MUST mask the most significant bit in the final byte.\n        if (is25519)\n            _u[31] &= 127; // 0b0111_1111\n        // RFC: Implementations MUST accept non-canonical values and process them as\n        // if they had been reduced modulo the field prime.  The non-canonical\n        // values are 2^255 - 19 through 2^255 - 1 for X25519 and 2^448 - 2^224\n        // - 1 through 2^448 - 1 for X448.\n        return modP(bytesToNumberLE(_u));\n    }\n    function decodeScalar(scalar) {\n        return bytesToNumberLE(adjustScalarBytes(ensureBytes('scalar', scalar, fieldLen)));\n    }\n    function scalarMult(scalar, u) {\n        const pu = montgomeryLadder(decodeU(u), decodeScalar(scalar));\n        // Some public keys are useless, of low-order. Curve author doesn't think\n        // it needs to be validated, but we do it nonetheless.\n        // https://cr.yp.to/ecdh.html#validate\n        if (pu === _0n)\n            throw new Error('invalid private or public key received');\n        return encodeU(pu);\n    }\n    // Computes public key from private. By doing scalar multiplication of base point.\n    function scalarMultBase(scalar) {\n        return scalarMult(scalar, GuBytes);\n    }\n    // cswap from RFC7748 \"example code\"\n    function cswap(swap, x_2, x_3) {\n        // dummy = mask(swap) AND (x_2 XOR x_3)\n        // Where mask(swap) is the all-1 or all-0 word of the same length as x_2\n        // and x_3, computed, e.g., as mask(swap) = 0 - swap.\n        const dummy = modP(swap * (x_2 - x_3));\n        x_2 = modP(x_2 - dummy); // x_2 = x_2 XOR dummy\n        x_3 = modP(x_3 + dummy); // x_3 = x_3 XOR dummy\n        return { x_2, x_3 };\n    }\n    /**\n     * Montgomery x-only multiplication ladder.\n     * @param pointU u coordinate (x) on Montgomery Curve 25519\n     * @param scalar by which the point would be multiplied\n     * @returns new Point on Montgomery curve\n     */\n    function montgomeryLadder(u, scalar) {\n        aInRange('u', u, _0n, P);\n        aInRange('scalar', scalar, minScalar, maxScalar);\n        const k = scalar;\n        const x_1 = u;\n        let x_2 = _1n$1;\n        let z_2 = _0n;\n        let x_3 = u;\n        let z_3 = _1n$1;\n        let swap = _0n;\n        for (let t = BigInt(montgomeryBits - 1); t >= _0n; t--) {\n            const k_t = (k >> t) & _1n$1;\n            swap ^= k_t;\n            ({ x_2, x_3 } = cswap(swap, x_2, x_3));\n            ({ x_2: z_2, x_3: z_3 } = cswap(swap, z_2, z_3));\n            swap = k_t;\n            const A = x_2 + z_2;\n            const AA = modP(A * A);\n            const B = x_2 - z_2;\n            const BB = modP(B * B);\n            const E = AA - BB;\n            const C = x_3 + z_3;\n            const D = x_3 - z_3;\n            const DA = modP(D * A);\n            const CB = modP(C * B);\n            const dacb = DA + CB;\n            const da_cb = DA - CB;\n            x_3 = modP(dacb * dacb);\n            z_3 = modP(x_1 * modP(da_cb * da_cb));\n            x_2 = modP(AA * BB);\n            z_2 = modP(E * (AA + modP(a24 * E)));\n        }\n        ({ x_2, x_3 } = cswap(swap, x_2, x_3));\n        ({ x_2: z_2, x_3: z_3 } = cswap(swap, z_2, z_3));\n        const z2 = powPminus2(z_2); // `Fp.pow(x, P - _2n)` is much slower equivalent\n        return modP(x_2 * z2); // Return x_2 * (z_2^(p - 2))\n    }\n    const lengths = {\n        secretKey: fieldLen,\n        publicKey: fieldLen,\n        seed: fieldLen,\n    };\n    const randomSecretKey = (seed = randomBytes_(fieldLen)) => {\n        abytes(seed, lengths.seed);\n        return seed;\n    };\n    function keygen(seed) {\n        const secretKey = randomSecretKey(seed);\n        return { secretKey, publicKey: scalarMultBase(secretKey) };\n    }\n    const utils = {\n        randomSecretKey,\n        randomPrivateKey: randomSecretKey,\n    };\n    return {\n        keygen,\n        getSharedSecret: (secretKey, publicKey) => scalarMult(secretKey, publicKey),\n        getPublicKey: (secretKey) => scalarMultBase(secretKey),\n        scalarMult,\n        scalarMultBase,\n        utils,\n        GuBytes: GuBytes.slice(),\n        lengths,\n    };\n}\n\n/**\n * Edwards448 (not Ed448-Goldilocks) curve with following addons:\n * - X448 ECDH\n * - Decaf cofactor elimination\n * - Elligator hash-to-group / point indistinguishability\n * Conforms to RFC 8032 https://www.rfc-editor.org/rfc/rfc8032.html#section-5.2\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// edwards448 curve\n// a = 1n\n// d = Fp.neg(39081n)\n// Finite field 2n**448n - 2n**224n - 1n\n// Subgroup order\n// 2n**446n - 13818066809895115352007386748515426880336692474882178609894547503885n\nconst ed448_CURVE = {\n    p: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff'),\n    n: BigInt('0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3'),\n    h: BigInt(4),\n    a: BigInt(1),\n    d: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff6756'),\n    Gx: BigInt('0x4f1970c66bed0ded221d15a622bf36da9e146570470f1767ea6de324a3d3a46412ae1af72ab66511433b80e18b00938e2626a82bc70cc05e'),\n    Gy: BigInt('0x693f46716eb6bc248876203756c9c7624bea73736ca3984087789c1e05a0c2d73ad3ff1ce67c39c4fdbd132c4ed7c8ad9808795bf230fa14'),\n};\n// E448 NIST curve is identical to edwards448, except for:\n// d = 39082/39081\n// Gx = 3/2\nconst E448_CURVE = Object.assign({}, ed448_CURVE, {\n    d: BigInt('0xd78b4bdc7f0daf19f24f38c29373a2ccad46157242a50f37809b1da3412a12e79ccc9c81264cfe9ad080997058fb61c4243cc32dbaa156b9'),\n    Gx: BigInt('0x79a70b2b70400553ae7c9df416c792c61128751ac92969240c25a07d728bdc93e21f7787ed6972249de732f38496cd11698713093e9c04fc'),\n    Gy: BigInt('0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000001'),\n});\nconst shake256_114 = /* @__PURE__ */ createHasher(() => shake256.create({ dkLen: 114 }));\n// prettier-ignore\nconst _1n = BigInt(1), _2n$1 = BigInt(2), _3n = BigInt(3); BigInt(4); const _11n = BigInt(11);\n// prettier-ignore\nconst _22n = BigInt(22), _44n = BigInt(44), _88n = BigInt(88), _223n = BigInt(223);\n// powPminus3div4 calculates z = x^k mod p, where k = (p-3)/4.\n// Used for efficient square root calculation.\n// ((P-3)/4).toString(2) would produce bits [223x 1, 0, 222x 1]\nfunction ed448_pow_Pminus3div4(x) {\n    const P = ed448_CURVE.p;\n    const b2 = (x * x * x) % P;\n    const b3 = (b2 * b2 * x) % P;\n    const b6 = (pow2(b3, _3n, P) * b3) % P;\n    const b9 = (pow2(b6, _3n, P) * b3) % P;\n    const b11 = (pow2(b9, _2n$1, P) * b2) % P;\n    const b22 = (pow2(b11, _11n, P) * b11) % P;\n    const b44 = (pow2(b22, _22n, P) * b22) % P;\n    const b88 = (pow2(b44, _44n, P) * b44) % P;\n    const b176 = (pow2(b88, _88n, P) * b88) % P;\n    const b220 = (pow2(b176, _44n, P) * b44) % P;\n    const b222 = (pow2(b220, _2n$1, P) * b2) % P;\n    const b223 = (pow2(b222, _1n, P) * x) % P;\n    return (pow2(b223, _223n, P) * b222) % P;\n}\nfunction adjustScalarBytes(bytes) {\n    // Section 5: Likewise, for X448, set the two least significant bits of the first byte to 0,\n    bytes[0] &= 252; // 0b11111100\n    // and the most significant bit of the last byte to 1.\n    bytes[55] |= 128; // 0b10000000\n    // NOTE: is NOOP for 56 bytes scalars (X25519/X448)\n    bytes[56] = 0; // Byte outside of group (456 buts vs 448 bits)\n    return bytes;\n}\n// Constant-time ratio of u to v. Allows to combine inversion and square root u/\u221Av.\n// Uses algo from RFC8032 5.1.3.\nfunction uvRatio(u, v) {\n    const P = ed448_CURVE.p;\n    // https://www.rfc-editor.org/rfc/rfc8032#section-5.2.3\n    // To compute the square root of (u/v), the first step is to compute the\n    //   candidate root x = (u/v)^((p+1)/4).  This can be done using the\n    // following trick, to use a single modular powering for both the\n    // inversion of v and the square root:\n    // x = (u/v)^((p+1)/4)   = u\u00B3v(u\u2075v\u00B3)^((p-3)/4)   (mod p)\n    const u2v = mod(u * u * v, P); // u\u00B2v\n    const u3v = mod(u2v * u, P); // u\u00B3v\n    const u5v3 = mod(u3v * u2v * v, P); // u\u2075v\u00B3\n    const root = ed448_pow_Pminus3div4(u5v3);\n    const x = mod(u3v * root, P);\n    // Verify that root is exists\n    const x2 = mod(x * x, P); // x\u00B2\n    // If vx\u00B2 = u, the recovered x-coordinate is x.  Otherwise, no\n    // square root exists, and the decoding fails.\n    return { isValid: mod(x2 * v, P) === u, value: x };\n}\n// Finite field 2n**448n - 2n**224n - 1n\n// The value fits in 448 bits, but we use 456-bit (57-byte) elements because of bitflags.\n// - ed25519 fits in 255 bits, allowing using last 1 byte for specifying bit flag of point negation.\n// - ed448 fits in 448 bits. We can't use last 1 byte: we can only use a bit 224 in the middle.\nconst Fp$3 = /* @__PURE__ */ (() => Field(ed448_CURVE.p, { BITS: 456, isLE: true }))();\nconst Fn = /* @__PURE__ */ (() => Field(ed448_CURVE.n, { BITS: 456, isLE: true }))();\n// SHAKE256(dom4(phflag,context)||x, 114)\nfunction dom4(data, ctx, phflag) {\n    if (ctx.length > 255)\n        throw new Error('context must be smaller than 255, got: ' + ctx.length);\n    return concatBytes(asciiToBytes('SigEd448'), new Uint8Array([phflag ? 1 : 0, ctx.length]), ctx, data);\n}\n// const ed448_eddsa_opts = { adjustScalarBytes, domain: dom4 };\n// const ed448_Point = edwards(ed448_CURVE, { Fp, Fn, uvRatio });\nconst ED448_DEF = /* @__PURE__ */ (() => ({\n    ...ed448_CURVE,\n    Fp: Fp$3,\n    Fn,\n    nBitLength: Fn.BITS,\n    hash: shake256_114,\n    adjustScalarBytes,\n    domain: dom4,\n    uvRatio,\n}))();\n/**\n * ed448 EdDSA curve and methods.\n * @example\n * import { ed448 } from '@noble/curves/ed448';\n * const { secretKey, publicKey } = ed448.keygen();\n * const msg = new TextEncoder().encode('hello');\n * const sig = ed448.sign(msg, secretKey);\n * const isValid = ed448.verify(sig, msg, publicKey);\n */\nconst ed448 = twistedEdwards(ED448_DEF);\n/**\n * E448 curve, defined by NIST.\n * E448 != edwards448 used in ed448.\n * E448 is birationally equivalent to edwards448.\n */\nedwards(E448_CURVE);\n/**\n * ECDH using curve448 aka x448.\n * x448 has 56-byte keys as per RFC 7748, while\n * ed448 has 57-byte keys as per RFC 8032.\n */\nconst x448 = /* @__PURE__ */ (() => {\n    const P = ed448_CURVE.p;\n    return montgomery({\n        P,\n        type: 'x448',\n        powPminus2: (x) => {\n            const Pminus3div4 = ed448_pow_Pminus3div4(x);\n            const Pminus3 = pow2(Pminus3div4, _2n$1, P);\n            return mod(Pminus3 * x, P); // Pminus3 * x = Pminus2\n        },\n        adjustScalarBytes,\n    });\n})();\n\n/**\n * SECG secp256k1. See [pdf](https://www.secg.org/sec2-v2.pdf).\n *\n * Belongs to Koblitz curves: it has efficiently-computable GLV endomorphism \u03C8,\n * check out {@link EndomorphismOpts}. Seems to be rigid (not backdoored).\n * @module\n */\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Seems like generator was produced from some seed:\n// `Point.BASE.multiply(Point.Fn.inv(2n, N)).toAffine().x`\n// // gives short x 0x3b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63n\nconst secp256k1_CURVE = {\n    p: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f'),\n    n: BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141'),\n    h: BigInt(1),\n    a: BigInt(0),\n    b: BigInt(7),\n    Gx: BigInt('0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'),\n    Gy: BigInt('0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8'),\n};\nconst secp256k1_ENDO = {\n    beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n    basises: [\n        [BigInt('0x3086d221a7d46bcde86c90e49284eb15'), -BigInt('0xe4437ed6010e88286f547fa90abfe4c3')],\n        [BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8'), BigInt('0x3086d221a7d46bcde86c90e49284eb15')],\n    ],\n};\nconst _2n = /* @__PURE__ */ BigInt(2);\n/**\n * \u221An = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n    const P = secp256k1_CURVE.p;\n    // prettier-ignore\n    const _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n    // prettier-ignore\n    const _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n    const b2 = (y * y * y) % P; // x^3, 11\n    const b3 = (b2 * b2 * y) % P; // x^7\n    const b6 = (pow2(b3, _3n, P) * b3) % P;\n    const b9 = (pow2(b6, _3n, P) * b3) % P;\n    const b11 = (pow2(b9, _2n, P) * b2) % P;\n    const b22 = (pow2(b11, _11n, P) * b11) % P;\n    const b44 = (pow2(b22, _22n, P) * b22) % P;\n    const b88 = (pow2(b44, _44n, P) * b44) % P;\n    const b176 = (pow2(b88, _88n, P) * b88) % P;\n    const b220 = (pow2(b176, _44n, P) * b44) % P;\n    const b223 = (pow2(b220, _3n, P) * b3) % P;\n    const t1 = (pow2(b223, _23n, P) * b22) % P;\n    const t2 = (pow2(t1, _6n, P) * b2) % P;\n    const root = pow2(t2, _2n, P);\n    if (!Fpk1.eql(Fpk1.sqr(root), y))\n        throw new Error('Cannot find square root');\n    return root;\n}\nconst Fpk1 = Field(secp256k1_CURVE.p, { sqrt: sqrtMod });\n/**\n * secp256k1 curve, ECDSA and ECDH methods.\n *\n * Field: `2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n`\n *\n * @example\n * ```js\n * import { secp256k1 } from '@noble/curves/secp256k1';\n * const { secretKey, publicKey } = secp256k1.keygen();\n * const msg = new TextEncoder().encode('hello');\n * const sig = secp256k1.sign(msg, secretKey);\n * const isValid = secp256k1.verify(sig, msg, publicKey) === true;\n * ```\n */\nconst secp256k1 = createCurve({ ...secp256k1_CURVE, Fp: Fpk1, lowS: true, endo: secp256k1_ENDO }, sha256$1);\n\n/**\n * SHA2-256 a.k.a. sha256. In JS, it is the fastest hash, even faster than Blake3.\n *\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n *\n * Check out [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n * @deprecated\n */\n/** @deprecated Use import from `noble/hashes/sha2` module */\nconst sha256 = sha256$1;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nconst sha224 = sha224$1;\n\n/** @access private */\n// brainpoolP256r1: https://datatracker.ietf.org/doc/html/rfc5639#section-3.4\nconst Fp$2 = Field(BigInt('0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377'));\nconst CURVE_A$2 = Fp$2.create(BigInt('0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9'));\nconst CURVE_B$2 = BigInt('0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6');\n// prettier-ignore\nconst brainpoolP256r1 = createCurve({\n    a: CURVE_A$2, // Equation params: a, b\n    b: CURVE_B$2,\n    Fp: Fp$2,\n    // Curve order (q), total count of valid points in the field\n    n: BigInt('0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7'),\n    // Base (generator) point (x, y)\n    Gx: BigInt('0x8bd2aeb9cb7e57cb2c4b482ffc81b7afb9de27e1e3bd23c23a4453bd9ace3262'),\n    Gy: BigInt('0x547ef835c3dac4fd97f8461a14611dc9c27745132ded8e545c1d54c72f046997'),\n    h: BigInt(1),\n    lowS: false\n}, sha256);\n\n/**\n * SHA2-512 a.k.a. sha512 and sha384. It is slower than sha256 in js because u64 operations are slow.\n *\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [the paper on truncated SHA512/256](https://eprint.iacr.org/2010/548.pdf).\n * @module\n * @deprecated\n */\n/** @deprecated Use import from `noble/hashes/sha2` module */\nconst sha512 = sha512$1;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nconst sha384 = sha384$1;\n\n/** @access private */\n// brainpoolP384 r1: https://datatracker.ietf.org/doc/html/rfc5639#section-3.6\nconst Fp$1 = Field(BigInt('0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53'));\nconst CURVE_A$1 = Fp$1.create(BigInt('0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826'));\nconst CURVE_B$1 = BigInt('0x04a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11');\n// prettier-ignore\nconst brainpoolP384r1 = createCurve({\n    a: CURVE_A$1, // Equation params: a, b\n    b: CURVE_B$1,\n    Fp: Fp$1,\n    // Curve order (q), total count of valid points in the field\n    n: BigInt('0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565'),\n    // Base (generator) point (x, y)\n    Gx: BigInt('0x1d1c64f068cf45ffa2a63a81b7c13f6b8847a3e77ef14fe3db7fcafe0cbd10e8e826e03436d646aaef87b2e247d4af1e'),\n    Gy: BigInt('0x8abe1d7520f9c2a45cb1eb8e95cfd55262b70b29feec5864e19c054ff99129280e4646217791811142820341263c5315'),\n    h: BigInt(1),\n    lowS: false\n}, sha384);\n\n/** @access private */\n// brainpoolP512r1: https://datatracker.ietf.org/doc/html/rfc5639#section-3.7\nconst Fp = Field(BigInt('0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3'));\nconst CURVE_A = Fp.create(BigInt('0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94ca'));\nconst CURVE_B = BigInt('0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723');\n// prettier-ignore\nconst brainpoolP512r1 = createCurve({\n    a: CURVE_A, // Equation params: a, b\n    b: CURVE_B,\n    Fp,\n    // Curve order (q), total count of valid points in the field\n    n: BigInt('0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069'),\n    // Base (generator) point (x, y)\n    Gx: BigInt('0x81aee4bdd82ed9645a21322e9c4c6a9385ed9f70b5d916c1b43b62eef4d0098eff3b1f78e2d0d48d50d1687b93b97d5f7c6d5047406a5e688b352209bcb9f822'),\n    Gy: BigInt('0x7dde385d566332ecc0eabfa9cf7822fdf209f70024a57b1aa000c55b881f8111b2dcde494a5f485e5bca4bd88a2763aed1ca2b2fa8f0540678cd1e0f3ad80892'),\n    h: BigInt(1),\n    lowS: false\n}, sha512);\n\n/**\n * @access private\n * This file is needed to dynamic import the noble-curves.\n * Separate dynamic imports are not convenient as they result in too many chunks,\n * which share a lot of code anyway.\n */\nconst nobleCurves = new Map(Object.entries({\n    nistP256: p256,\n    nistP384: p384,\n    nistP521: p521,\n    brainpoolP256r1,\n    brainpoolP384r1,\n    brainpoolP512r1,\n    secp256k1,\n    x448,\n    ed448\n}));\n\nvar noble_curves = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  nobleCurves: nobleCurves\n});\n\n/**\n\nSHA1 (RFC 3174), MD5 (RFC 1321) and RIPEMD160 (RFC 2286) legacy, weak hash functions.\nDon't use them in a new protocol. What \"weak\" means:\n\n- Collisions can be made with 2^18 effort in MD5, 2^60 in SHA1, 2^80 in RIPEMD160.\n- No practical pre-image attacks (only theoretical, 2^123.4)\n- HMAC seems kinda ok: https://datatracker.ietf.org/doc/html/rfc6151\n * @module\n */\n/** Initial SHA1 state */\nconst SHA1_IV = /* @__PURE__ */ Uint32Array.from([\n    0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0,\n]);\n// Reusable temporary buffer\nconst SHA1_W = /* @__PURE__ */ new Uint32Array(80);\n/** SHA1 legacy hash class. */\nclass SHA1 extends HashMD {\n    constructor() {\n        super(64, 20, 8, false);\n        this.A = SHA1_IV[0] | 0;\n        this.B = SHA1_IV[1] | 0;\n        this.C = SHA1_IV[2] | 0;\n        this.D = SHA1_IV[3] | 0;\n        this.E = SHA1_IV[4] | 0;\n    }\n    get() {\n        const { A, B, C, D, E } = this;\n        return [A, B, C, D, E];\n    }\n    set(A, B, C, D, E) {\n        this.A = A | 0;\n        this.B = B | 0;\n        this.C = C | 0;\n        this.D = D | 0;\n        this.E = E | 0;\n    }\n    process(view, offset) {\n        for (let i = 0; i < 16; i++, offset += 4)\n            SHA1_W[i] = view.getUint32(offset, false);\n        for (let i = 16; i < 80; i++)\n            SHA1_W[i] = rotl(SHA1_W[i - 3] ^ SHA1_W[i - 8] ^ SHA1_W[i - 14] ^ SHA1_W[i - 16], 1);\n        // Compression function main loop, 80 rounds\n        let { A, B, C, D, E } = this;\n        for (let i = 0; i < 80; i++) {\n            let F, K;\n            if (i < 20) {\n                F = Chi$1(B, C, D);\n                K = 0x5a827999;\n            }\n            else if (i < 40) {\n                F = B ^ C ^ D;\n                K = 0x6ed9eba1;\n            }\n            else if (i < 60) {\n                F = Maj(B, C, D);\n                K = 0x8f1bbcdc;\n            }\n            else {\n                F = B ^ C ^ D;\n                K = 0xca62c1d6;\n            }\n            const T = (rotl(A, 5) + F + E + K + SHA1_W[i]) | 0;\n            E = D;\n            D = C;\n            C = rotl(B, 30);\n            B = A;\n            A = T;\n        }\n        // Add the compressed chunk to the current hash value\n        A = (A + this.A) | 0;\n        B = (B + this.B) | 0;\n        C = (C + this.C) | 0;\n        D = (D + this.D) | 0;\n        E = (E + this.E) | 0;\n        this.set(A, B, C, D, E);\n    }\n    roundClean() {\n        clean(SHA1_W);\n    }\n    destroy() {\n        this.set(0, 0, 0, 0, 0);\n        clean(this.buffer);\n    }\n}\n/** SHA1 (RFC 3174) legacy hash function. It was cryptographically broken. */\nconst sha1$1 = /* @__PURE__ */ createHasher(() => new SHA1());\n// RIPEMD-160\nconst Rho160 = /* @__PURE__ */ Uint8Array.from([\n    7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n]);\nconst Id160 = /* @__PURE__ */ (() => Uint8Array.from(new Array(16).fill(0).map((_, i) => i)))();\nconst Pi160 = /* @__PURE__ */ (() => Id160.map((i) => (9 * i + 5) % 16))();\nconst idxLR = /* @__PURE__ */ (() => {\n    const L = [Id160];\n    const R = [Pi160];\n    const res = [L, R];\n    for (let i = 0; i < 4; i++)\n        for (let j of res)\n            j.push(j[i].map((k) => Rho160[k]));\n    return res;\n})();\nconst idxL = /* @__PURE__ */ (() => idxLR[0])();\nconst idxR = /* @__PURE__ */ (() => idxLR[1])();\n// const [idxL, idxR] = idxLR;\nconst shifts160 = /* @__PURE__ */ [\n    [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n    [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n    [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n    [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n    [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => Uint8Array.from(i));\nconst shiftsL160 = /* @__PURE__ */ idxL.map((idx, i) => idx.map((j) => shifts160[i][j]));\nconst shiftsR160 = /* @__PURE__ */ idxR.map((idx, i) => idx.map((j) => shifts160[i][j]));\nconst Kl160 = /* @__PURE__ */ Uint32Array.from([\n    0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e,\n]);\nconst Kr160 = /* @__PURE__ */ Uint32Array.from([\n    0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000,\n]);\n// It's called f() in spec.\nfunction ripemd_f(group, x, y, z) {\n    if (group === 0)\n        return x ^ y ^ z;\n    if (group === 1)\n        return (x & y) | (~x & z);\n    if (group === 2)\n        return (x | ~y) ^ z;\n    if (group === 3)\n        return (x & z) | (y & ~z);\n    return x ^ (y | ~z);\n}\n// Reusable temporary buffer\nconst BUF_160 = /* @__PURE__ */ new Uint32Array(16);\nclass RIPEMD160 extends HashMD {\n    constructor() {\n        super(64, 20, 8, true);\n        this.h0 = 0x67452301 | 0;\n        this.h1 = 0xefcdab89 | 0;\n        this.h2 = 0x98badcfe | 0;\n        this.h3 = 0x10325476 | 0;\n        this.h4 = 0xc3d2e1f0 | 0;\n    }\n    get() {\n        const { h0, h1, h2, h3, h4 } = this;\n        return [h0, h1, h2, h3, h4];\n    }\n    set(h0, h1, h2, h3, h4) {\n        this.h0 = h0 | 0;\n        this.h1 = h1 | 0;\n        this.h2 = h2 | 0;\n        this.h3 = h3 | 0;\n        this.h4 = h4 | 0;\n    }\n    process(view, offset) {\n        for (let i = 0; i < 16; i++, offset += 4)\n            BUF_160[i] = view.getUint32(offset, true);\n        // prettier-ignore\n        let al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n        // Instead of iterating 0 to 80, we split it into 5 groups\n        // And use the groups in constants, functions, etc. Much simpler\n        for (let group = 0; group < 5; group++) {\n            const rGroup = 4 - group;\n            const hbl = Kl160[group], hbr = Kr160[group]; // prettier-ignore\n            const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n            const sl = shiftsL160[group], sr = shiftsR160[group]; // prettier-ignore\n            for (let i = 0; i < 16; i++) {\n                const tl = (rotl(al + ripemd_f(group, bl, cl, dl) + BUF_160[rl[i]] + hbl, sl[i]) + el) | 0;\n                al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n            }\n            // 2 loops are 10% faster\n            for (let i = 0; i < 16; i++) {\n                const tr = (rotl(ar + ripemd_f(rGroup, br, cr, dr) + BUF_160[rr[i]] + hbr, sr[i]) + er) | 0;\n                ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n            }\n        }\n        // Add the compressed chunk to the current hash value\n        this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n    }\n    roundClean() {\n        clean(BUF_160);\n    }\n    destroy() {\n        this.destroyed = true;\n        clean(this.buffer);\n        this.set(0, 0, 0, 0, 0);\n    }\n}\n/**\n * RIPEMD-160 - a legacy hash function from 1990s.\n * * https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n * * https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\n */\nconst ripemd160$1 = /* @__PURE__ */ createHasher(() => new RIPEMD160());\n\n/**\n * SHA1 (RFC 3174) legacy hash function.\n * @module\n * @deprecated\n */\n/** @deprecated Use import from `noble/hashes/legacy` module */\nconst sha1 = sha1$1;\n\n/**\n * RIPEMD-160 legacy hash function.\n * https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n * https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\n * @module\n * @deprecated\n */\n/** @deprecated Use import from `noble/hashes/legacy` module */\nconst ripemd160 = ripemd160$1;\n\n/** @access private */\n// Copied from https://github.com/paulmillr/noble-hashes/blob/main/test/misc/md5.ts\n// Per-round constants\nconst K$1 = Array.from({ length: 64 }, (_, i) => Math.floor(2 ** 32 * Math.abs(Math.sin(i + 1))));\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Initial state (same as sha1, but 4 u32 instead of 5)\nconst IV = /* @__PURE__ */ new Uint32Array([0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476]);\n// Temporary buffer, not used to store anything between runs\n// Named this way for SHA1 compat\nconst MD5_W = /* @__PURE__ */ new Uint32Array(16);\nclass MD5 extends HashMD {\n    constructor() {\n        super(64, 16, 8, true);\n        this.A = IV[0] | 0;\n        this.B = IV[1] | 0;\n        this.C = IV[2] | 0;\n        this.D = IV[3] | 0;\n    }\n    get() {\n        const { A, B, C, D } = this;\n        return [A, B, C, D];\n    }\n    set(A, B, C, D) {\n        this.A = A | 0;\n        this.B = B | 0;\n        this.C = C | 0;\n        this.D = D | 0;\n    }\n    process(view, offset) {\n        for (let i = 0; i < 16; i++, offset += 4)\n            MD5_W[i] = view.getUint32(offset, true);\n        // Compression function main loop, 64 rounds\n        let { A, B, C, D } = this;\n        for (let i = 0; i < 64; i++) {\n            let F, g, s;\n            if (i < 16) {\n                F = Chi(B, C, D);\n                g = i;\n                s = [7, 12, 17, 22];\n            }\n            else if (i < 32) {\n                F = Chi(D, B, C);\n                g = (5 * i + 1) % 16;\n                s = [5, 9, 14, 20];\n            }\n            else if (i < 48) {\n                F = B ^ C ^ D;\n                g = (3 * i + 5) % 16;\n                s = [4, 11, 16, 23];\n            }\n            else {\n                F = C ^ (B | ~D);\n                g = (7 * i) % 16;\n                s = [6, 10, 15, 21];\n            }\n            F = F + A + K$1[i] + MD5_W[g];\n            A = D;\n            D = C;\n            C = B;\n            B = B + rotl(F, s[i % 4]);\n        }\n        // Add the compressed chunk to the current hash value\n        A = (A + this.A) | 0;\n        B = (B + this.B) | 0;\n        C = (C + this.C) | 0;\n        D = (D + this.D) | 0;\n        this.set(A, B, C, D);\n    }\n    roundClean() {\n        MD5_W.fill(0);\n    }\n    destroy() {\n        this.set(0, 0, 0, 0);\n        this.buffer.fill(0);\n    }\n}\nconst md5 = /* @__PURE__ */ wrapConstructor(() => new MD5());\n\n/**\n * @access private\n * This file is needed to dynamic import the noble-hashes.\n * Separate dynamic imports are not convenient as they result in too many chunks,\n * which share a lot of code anyway.\n */\nconst nobleHashes = new Map(Object.entries({\n    md5,\n    sha1,\n    sha224,\n    sha256,\n    sha384,\n    sha512,\n    sha3_256,\n    sha3_512,\n    ripemd160\n}));\n\nvar noble_hashes = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  nobleHashes: nobleHashes\n});\n\n// declare const globalThis: Record<string, any> | undefined;\nconst crypto$1 =\n  typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n\nconst nacl = {};\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n  var i, r = new Float64Array(16);\n  if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n  return r;\n};\n\n//  Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n    gf1 = gf([1]),\n    _121665 = gf([0xdb41, 1]),\n    D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n    D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n    X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n    Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n    I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n  x[i]   = (h >> 24) & 0xff;\n  x[i+1] = (h >> 16) & 0xff;\n  x[i+2] = (h >>  8) & 0xff;\n  x[i+3] = h & 0xff;\n  x[i+4] = (l >> 24)  & 0xff;\n  x[i+5] = (l >> 16)  & 0xff;\n  x[i+6] = (l >>  8)  & 0xff;\n  x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n  var i,d = 0;\n  for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n  return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n  return vn(x,xi,y,yi,32);\n}\n\nfunction set25519(r, a) {\n  var i;\n  for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n  var i, v, c = 1;\n  for (i = 0; i < 16; i++) {\n    v = o[i] + c + 65535;\n    c = Math.floor(v / 65536);\n    o[i] = v - c * 65536;\n  }\n  o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n  var t, c = ~(b-1);\n  for (var i = 0; i < 16; i++) {\n    t = c & (p[i] ^ q[i]);\n    p[i] ^= t;\n    q[i] ^= t;\n  }\n}\n\nfunction pack25519(o, n) {\n  var i, j, b;\n  var m = gf(), t = gf();\n  for (i = 0; i < 16; i++) t[i] = n[i];\n  car25519(t);\n  car25519(t);\n  car25519(t);\n  for (j = 0; j < 2; j++) {\n    m[0] = t[0] - 0xffed;\n    for (i = 1; i < 15; i++) {\n      m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n      m[i-1] &= 0xffff;\n    }\n    m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n    b = (m[15]>>16) & 1;\n    m[14] &= 0xffff;\n    sel25519(t, m, 1-b);\n  }\n  for (i = 0; i < 16; i++) {\n    o[2*i] = t[i] & 0xff;\n    o[2*i+1] = t[i]>>8;\n  }\n}\n\nfunction neq25519(a, b) {\n  var c = new Uint8Array(32), d = new Uint8Array(32);\n  pack25519(c, a);\n  pack25519(d, b);\n  return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n  var d = new Uint8Array(32);\n  pack25519(d, a);\n  return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n  var i;\n  for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n  o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n  for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n  for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n  var v, c,\n     t0 = 0,  t1 = 0,  t2 = 0,  t3 = 0,  t4 = 0,  t5 = 0,  t6 = 0,  t7 = 0,\n     t8 = 0,  t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n    t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n    t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n    b0 = b[0],\n    b1 = b[1],\n    b2 = b[2],\n    b3 = b[3],\n    b4 = b[4],\n    b5 = b[5],\n    b6 = b[6],\n    b7 = b[7],\n    b8 = b[8],\n    b9 = b[9],\n    b10 = b[10],\n    b11 = b[11],\n    b12 = b[12],\n    b13 = b[13],\n    b14 = b[14],\n    b15 = b[15];\n\n  v = a[0];\n  t0 += v * b0;\n  t1 += v * b1;\n  t2 += v * b2;\n  t3 += v * b3;\n  t4 += v * b4;\n  t5 += v * b5;\n  t6 += v * b6;\n  t7 += v * b7;\n  t8 += v * b8;\n  t9 += v * b9;\n  t10 += v * b10;\n  t11 += v * b11;\n  t12 += v * b12;\n  t13 += v * b13;\n  t14 += v * b14;\n  t15 += v * b15;\n  v = a[1];\n  t1 += v * b0;\n  t2 += v * b1;\n  t3 += v * b2;\n  t4 += v * b3;\n  t5 += v * b4;\n  t6 += v * b5;\n  t7 += v * b6;\n  t8 += v * b7;\n  t9 += v * b8;\n  t10 += v * b9;\n  t11 += v * b10;\n  t12 += v * b11;\n  t13 += v * b12;\n  t14 += v * b13;\n  t15 += v * b14;\n  t16 += v * b15;\n  v = a[2];\n  t2 += v * b0;\n  t3 += v * b1;\n  t4 += v * b2;\n  t5 += v * b3;\n  t6 += v * b4;\n  t7 += v * b5;\n  t8 += v * b6;\n  t9 += v * b7;\n  t10 += v * b8;\n  t11 += v * b9;\n  t12 += v * b10;\n  t13 += v * b11;\n  t14 += v * b12;\n  t15 += v * b13;\n  t16 += v * b14;\n  t17 += v * b15;\n  v = a[3];\n  t3 += v * b0;\n  t4 += v * b1;\n  t5 += v * b2;\n  t6 += v * b3;\n  t7 += v * b4;\n  t8 += v * b5;\n  t9 += v * b6;\n  t10 += v * b7;\n  t11 += v * b8;\n  t12 += v * b9;\n  t13 += v * b10;\n  t14 += v * b11;\n  t15 += v * b12;\n  t16 += v * b13;\n  t17 += v * b14;\n  t18 += v * b15;\n  v = a[4];\n  t4 += v * b0;\n  t5 += v * b1;\n  t6 += v * b2;\n  t7 += v * b3;\n  t8 += v * b4;\n  t9 += v * b5;\n  t10 += v * b6;\n  t11 += v * b7;\n  t12 += v * b8;\n  t13 += v * b9;\n  t14 += v * b10;\n  t15 += v * b11;\n  t16 += v * b12;\n  t17 += v * b13;\n  t18 += v * b14;\n  t19 += v * b15;\n  v = a[5];\n  t5 += v * b0;\n  t6 += v * b1;\n  t7 += v * b2;\n  t8 += v * b3;\n  t9 += v * b4;\n  t10 += v * b5;\n  t11 += v * b6;\n  t12 += v * b7;\n  t13 += v * b8;\n  t14 += v * b9;\n  t15 += v * b10;\n  t16 += v * b11;\n  t17 += v * b12;\n  t18 += v * b13;\n  t19 += v * b14;\n  t20 += v * b15;\n  v = a[6];\n  t6 += v * b0;\n  t7 += v * b1;\n  t8 += v * b2;\n  t9 += v * b3;\n  t10 += v * b4;\n  t11 += v * b5;\n  t12 += v * b6;\n  t13 += v * b7;\n  t14 += v * b8;\n  t15 += v * b9;\n  t16 += v * b10;\n  t17 += v * b11;\n  t18 += v * b12;\n  t19 += v * b13;\n  t20 += v * b14;\n  t21 += v * b15;\n  v = a[7];\n  t7 += v * b0;\n  t8 += v * b1;\n  t9 += v * b2;\n  t10 += v * b3;\n  t11 += v * b4;\n  t12 += v * b5;\n  t13 += v * b6;\n  t14 += v * b7;\n  t15 += v * b8;\n  t16 += v * b9;\n  t17 += v * b10;\n  t18 += v * b11;\n  t19 += v * b12;\n  t20 += v * b13;\n  t21 += v * b14;\n  t22 += v * b15;\n  v = a[8];\n  t8 += v * b0;\n  t9 += v * b1;\n  t10 += v * b2;\n  t11 += v * b3;\n  t12 += v * b4;\n  t13 += v * b5;\n  t14 += v * b6;\n  t15 += v * b7;\n  t16 += v * b8;\n  t17 += v * b9;\n  t18 += v * b10;\n  t19 += v * b11;\n  t20 += v * b12;\n  t21 += v * b13;\n  t22 += v * b14;\n  t23 += v * b15;\n  v = a[9];\n  t9 += v * b0;\n  t10 += v * b1;\n  t11 += v * b2;\n  t12 += v * b3;\n  t13 += v * b4;\n  t14 += v * b5;\n  t15 += v * b6;\n  t16 += v * b7;\n  t17 += v * b8;\n  t18 += v * b9;\n  t19 += v * b10;\n  t20 += v * b11;\n  t21 += v * b12;\n  t22 += v * b13;\n  t23 += v * b14;\n  t24 += v * b15;\n  v = a[10];\n  t10 += v * b0;\n  t11 += v * b1;\n  t12 += v * b2;\n  t13 += v * b3;\n  t14 += v * b4;\n  t15 += v * b5;\n  t16 += v * b6;\n  t17 += v * b7;\n  t18 += v * b8;\n  t19 += v * b9;\n  t20 += v * b10;\n  t21 += v * b11;\n  t22 += v * b12;\n  t23 += v * b13;\n  t24 += v * b14;\n  t25 += v * b15;\n  v = a[11];\n  t11 += v * b0;\n  t12 += v * b1;\n  t13 += v * b2;\n  t14 += v * b3;\n  t15 += v * b4;\n  t16 += v * b5;\n  t17 += v * b6;\n  t18 += v * b7;\n  t19 += v * b8;\n  t20 += v * b9;\n  t21 += v * b10;\n  t22 += v * b11;\n  t23 += v * b12;\n  t24 += v * b13;\n  t25 += v * b14;\n  t26 += v * b15;\n  v = a[12];\n  t12 += v * b0;\n  t13 += v * b1;\n  t14 += v * b2;\n  t15 += v * b3;\n  t16 += v * b4;\n  t17 += v * b5;\n  t18 += v * b6;\n  t19 += v * b7;\n  t20 += v * b8;\n  t21 += v * b9;\n  t22 += v * b10;\n  t23 += v * b11;\n  t24 += v * b12;\n  t25 += v * b13;\n  t26 += v * b14;\n  t27 += v * b15;\n  v = a[13];\n  t13 += v * b0;\n  t14 += v * b1;\n  t15 += v * b2;\n  t16 += v * b3;\n  t17 += v * b4;\n  t18 += v * b5;\n  t19 += v * b6;\n  t20 += v * b7;\n  t21 += v * b8;\n  t22 += v * b9;\n  t23 += v * b10;\n  t24 += v * b11;\n  t25 += v * b12;\n  t26 += v * b13;\n  t27 += v * b14;\n  t28 += v * b15;\n  v = a[14];\n  t14 += v * b0;\n  t15 += v * b1;\n  t16 += v * b2;\n  t17 += v * b3;\n  t18 += v * b4;\n  t19 += v * b5;\n  t20 += v * b6;\n  t21 += v * b7;\n  t22 += v * b8;\n  t23 += v * b9;\n  t24 += v * b10;\n  t25 += v * b11;\n  t26 += v * b12;\n  t27 += v * b13;\n  t28 += v * b14;\n  t29 += v * b15;\n  v = a[15];\n  t15 += v * b0;\n  t16 += v * b1;\n  t17 += v * b2;\n  t18 += v * b3;\n  t19 += v * b4;\n  t20 += v * b5;\n  t21 += v * b6;\n  t22 += v * b7;\n  t23 += v * b8;\n  t24 += v * b9;\n  t25 += v * b10;\n  t26 += v * b11;\n  t27 += v * b12;\n  t28 += v * b13;\n  t29 += v * b14;\n  t30 += v * b15;\n\n  t0  += 38 * t16;\n  t1  += 38 * t17;\n  t2  += 38 * t18;\n  t3  += 38 * t19;\n  t4  += 38 * t20;\n  t5  += 38 * t21;\n  t6  += 38 * t22;\n  t7  += 38 * t23;\n  t8  += 38 * t24;\n  t9  += 38 * t25;\n  t10 += 38 * t26;\n  t11 += 38 * t27;\n  t12 += 38 * t28;\n  t13 += 38 * t29;\n  t14 += 38 * t30;\n  // t15 left as is\n\n  // first car\n  c = 1;\n  v =  t0 + c + 65535; c = Math.floor(v / 65536);  t0 = v - c * 65536;\n  v =  t1 + c + 65535; c = Math.floor(v / 65536);  t1 = v - c * 65536;\n  v =  t2 + c + 65535; c = Math.floor(v / 65536);  t2 = v - c * 65536;\n  v =  t3 + c + 65535; c = Math.floor(v / 65536);  t3 = v - c * 65536;\n  v =  t4 + c + 65535; c = Math.floor(v / 65536);  t4 = v - c * 65536;\n  v =  t5 + c + 65535; c = Math.floor(v / 65536);  t5 = v - c * 65536;\n  v =  t6 + c + 65535; c = Math.floor(v / 65536);  t6 = v - c * 65536;\n  v =  t7 + c + 65535; c = Math.floor(v / 65536);  t7 = v - c * 65536;\n  v =  t8 + c + 65535; c = Math.floor(v / 65536);  t8 = v - c * 65536;\n  v =  t9 + c + 65535; c = Math.floor(v / 65536);  t9 = v - c * 65536;\n  v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n  v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n  v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n  v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n  v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n  v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n  t0 += c-1 + 37 * (c-1);\n\n  // second car\n  c = 1;\n  v =  t0 + c + 65535; c = Math.floor(v / 65536);  t0 = v - c * 65536;\n  v =  t1 + c + 65535; c = Math.floor(v / 65536);  t1 = v - c * 65536;\n  v =  t2 + c + 65535; c = Math.floor(v / 65536);  t2 = v - c * 65536;\n  v =  t3 + c + 65535; c = Math.floor(v / 65536);  t3 = v - c * 65536;\n  v =  t4 + c + 65535; c = Math.floor(v / 65536);  t4 = v - c * 65536;\n  v =  t5 + c + 65535; c = Math.floor(v / 65536);  t5 = v - c * 65536;\n  v =  t6 + c + 65535; c = Math.floor(v / 65536);  t6 = v - c * 65536;\n  v =  t7 + c + 65535; c = Math.floor(v / 65536);  t7 = v - c * 65536;\n  v =  t8 + c + 65535; c = Math.floor(v / 65536);  t8 = v - c * 65536;\n  v =  t9 + c + 65535; c = Math.floor(v / 65536);  t9 = v - c * 65536;\n  v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n  v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n  v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n  v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n  v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n  v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n  t0 += c-1 + 37 * (c-1);\n\n  o[ 0] = t0;\n  o[ 1] = t1;\n  o[ 2] = t2;\n  o[ 3] = t3;\n  o[ 4] = t4;\n  o[ 5] = t5;\n  o[ 6] = t6;\n  o[ 7] = t7;\n  o[ 8] = t8;\n  o[ 9] = t9;\n  o[10] = t10;\n  o[11] = t11;\n  o[12] = t12;\n  o[13] = t13;\n  o[14] = t14;\n  o[15] = t15;\n}\n\nfunction S(o, a) {\n  M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n  var c = gf();\n  var a;\n  for (a = 0; a < 16; a++) c[a] = i[a];\n  for (a = 253; a >= 0; a--) {\n    S(c, c);\n    if(a !== 2 && a !== 4) M(c, c, i);\n  }\n  for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n  var c = gf();\n  var a;\n  for (a = 0; a < 16; a++) c[a] = i[a];\n  for (a = 250; a >= 0; a--) {\n      S(c, c);\n      if(a !== 1) M(c, c, i);\n  }\n  for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n  var z = new Uint8Array(32);\n  var x = new Float64Array(80), r, i;\n  var a = gf(), b = gf(), c = gf(),\n      d = gf(), e = gf(), f = gf();\n  for (i = 0; i < 31; i++) z[i] = n[i];\n  z[31]=(n[31]&127)|64;\n  z[0]&=248;\n  unpack25519(x,p);\n  for (i = 0; i < 16; i++) {\n    b[i]=x[i];\n    d[i]=a[i]=c[i]=0;\n  }\n  a[0]=d[0]=1;\n  for (i=254; i>=0; --i) {\n    r=(z[i>>>3]>>>(i&7))&1;\n    sel25519(a,b,r);\n    sel25519(c,d,r);\n    A(e,a,c);\n    Z(a,a,c);\n    A(c,b,d);\n    Z(b,b,d);\n    S(d,e);\n    S(f,a);\n    M(a,c,a);\n    M(c,b,e);\n    A(e,a,c);\n    Z(a,a,c);\n    S(b,a);\n    Z(c,d,f);\n    M(a,c,_121665);\n    A(a,a,d);\n    M(c,c,a);\n    M(a,d,f);\n    M(d,b,x);\n    S(b,e);\n    sel25519(a,b,r);\n    sel25519(c,d,r);\n  }\n  for (i = 0; i < 16; i++) {\n    x[i+16]=a[i];\n    x[i+32]=c[i];\n    x[i+48]=b[i];\n    x[i+64]=d[i];\n  }\n  var x32 = x.subarray(32);\n  var x16 = x.subarray(16);\n  inv25519(x32,x32);\n  M(x16,x16,x32);\n  pack25519(q,x16);\n  return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n  return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n  randombytes(x, 32);\n  return crypto_scalarmult_base(y, x);\n}\n\nvar K = [\n  0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n  0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n  0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n  0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n  0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n  0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n  0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n  0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n  0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n  0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n  0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n  0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n  0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n  0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n  0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n  0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n  0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n  0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n  0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n  0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n  0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n  0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n  0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n  0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n  0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n  0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n  0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n  0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n  0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n  0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n  0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n  0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n  0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n  0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n  0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n  0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n  0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n  0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n  0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n  0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n  var wh = new Int32Array(16), wl = new Int32Array(16),\n      bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n      bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n      th, tl, i, j, h, l, a, b, c, d;\n\n  var ah0 = hh[0],\n      ah1 = hh[1],\n      ah2 = hh[2],\n      ah3 = hh[3],\n      ah4 = hh[4],\n      ah5 = hh[5],\n      ah6 = hh[6],\n      ah7 = hh[7],\n\n      al0 = hl[0],\n      al1 = hl[1],\n      al2 = hl[2],\n      al3 = hl[3],\n      al4 = hl[4],\n      al5 = hl[5],\n      al6 = hl[6],\n      al7 = hl[7];\n\n  var pos = 0;\n  while (n >= 128) {\n    for (i = 0; i < 16; i++) {\n      j = 8 * i + pos;\n      wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n      wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n    }\n    for (i = 0; i < 80; i++) {\n      bh0 = ah0;\n      bh1 = ah1;\n      bh2 = ah2;\n      bh3 = ah3;\n      bh4 = ah4;\n      bh5 = ah5;\n      bh6 = ah6;\n      bh7 = ah7;\n\n      bl0 = al0;\n      bl1 = al1;\n      bl2 = al2;\n      bl3 = al3;\n      bl4 = al4;\n      bl5 = al5;\n      bl6 = al6;\n      bl7 = al7;\n\n      // add\n      h = ah7;\n      l = al7;\n\n      a = l & 0xffff; b = l >>> 16;\n      c = h & 0xffff; d = h >>> 16;\n\n      // Sigma1\n      h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n      l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      // Ch\n      h = (ah4 & ah5) ^ (~ah4 & ah6);\n      l = (al4 & al5) ^ (~al4 & al6);\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      // K\n      h = K[i*2];\n      l = K[i*2+1];\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      // w\n      h = wh[i%16];\n      l = wl[i%16];\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      b += a >>> 16;\n      c += b >>> 16;\n      d += c >>> 16;\n\n      th = c & 0xffff | d << 16;\n      tl = a & 0xffff | b << 16;\n\n      // add\n      h = th;\n      l = tl;\n\n      a = l & 0xffff; b = l >>> 16;\n      c = h & 0xffff; d = h >>> 16;\n\n      // Sigma0\n      h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n      l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      // Maj\n      h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n      l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      b += a >>> 16;\n      c += b >>> 16;\n      d += c >>> 16;\n\n      bh7 = (c & 0xffff) | (d << 16);\n      bl7 = (a & 0xffff) | (b << 16);\n\n      // add\n      h = bh3;\n      l = bl3;\n\n      a = l & 0xffff; b = l >>> 16;\n      c = h & 0xffff; d = h >>> 16;\n\n      h = th;\n      l = tl;\n\n      a += l & 0xffff; b += l >>> 16;\n      c += h & 0xffff; d += h >>> 16;\n\n      b += a >>> 16;\n      c += b >>> 16;\n      d += c >>> 16;\n\n      bh3 = (c & 0xffff) | (d << 16);\n      bl3 = (a & 0xffff) | (b << 16);\n\n      ah1 = bh0;\n      ah2 = bh1;\n      ah3 = bh2;\n      ah4 = bh3;\n      ah5 = bh4;\n      ah6 = bh5;\n      ah7 = bh6;\n      ah0 = bh7;\n\n      al1 = bl0;\n      al2 = bl1;\n      al3 = bl2;\n      al4 = bl3;\n      al5 = bl4;\n      al6 = bl5;\n      al7 = bl6;\n      al0 = bl7;\n\n      if (i%16 === 15) {\n        for (j = 0; j < 16; j++) {\n          // add\n          h = wh[j];\n          l = wl[j];\n\n          a = l & 0xffff; b = l >>> 16;\n          c = h & 0xffff; d = h >>> 16;\n\n          h = wh[(j+9)%16];\n          l = wl[(j+9)%16];\n\n          a += l & 0xffff; b += l >>> 16;\n          c += h & 0xffff; d += h >>> 16;\n\n          // sigma0\n          th = wh[(j+1)%16];\n          tl = wl[(j+1)%16];\n          h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n          l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n          a += l & 0xffff; b += l >>> 16;\n          c += h & 0xffff; d += h >>> 16;\n\n          // sigma1\n          th = wh[(j+14)%16];\n          tl = wl[(j+14)%16];\n          h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n          l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n          a += l & 0xffff; b += l >>> 16;\n          c += h & 0xffff; d += h >>> 16;\n\n          b += a >>> 16;\n          c += b >>> 16;\n          d += c >>> 16;\n\n          wh[j] = (c & 0xffff) | (d << 16);\n          wl[j] = (a & 0xffff) | (b << 16);\n        }\n      }\n    }\n\n    // add\n    h = ah0;\n    l = al0;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[0];\n    l = hl[0];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[0] = ah0 = (c & 0xffff) | (d << 16);\n    hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n    h = ah1;\n    l = al1;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[1];\n    l = hl[1];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[1] = ah1 = (c & 0xffff) | (d << 16);\n    hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n    h = ah2;\n    l = al2;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[2];\n    l = hl[2];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[2] = ah2 = (c & 0xffff) | (d << 16);\n    hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n    h = ah3;\n    l = al3;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[3];\n    l = hl[3];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[3] = ah3 = (c & 0xffff) | (d << 16);\n    hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n    h = ah4;\n    l = al4;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[4];\n    l = hl[4];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[4] = ah4 = (c & 0xffff) | (d << 16);\n    hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n    h = ah5;\n    l = al5;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[5];\n    l = hl[5];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[5] = ah5 = (c & 0xffff) | (d << 16);\n    hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n    h = ah6;\n    l = al6;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[6];\n    l = hl[6];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[6] = ah6 = (c & 0xffff) | (d << 16);\n    hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n    h = ah7;\n    l = al7;\n\n    a = l & 0xffff; b = l >>> 16;\n    c = h & 0xffff; d = h >>> 16;\n\n    h = hh[7];\n    l = hl[7];\n\n    a += l & 0xffff; b += l >>> 16;\n    c += h & 0xffff; d += h >>> 16;\n\n    b += a >>> 16;\n    c += b >>> 16;\n    d += c >>> 16;\n\n    hh[7] = ah7 = (c & 0xffff) | (d << 16);\n    hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n    pos += 128;\n    n -= 128;\n  }\n\n  return n;\n}\n\nfunction crypto_hash(out, m, n) {\n  var hh = new Int32Array(8),\n      hl = new Int32Array(8),\n      x = new Uint8Array(256),\n      i, b = n;\n\n  hh[0] = 0x6a09e667;\n  hh[1] = 0xbb67ae85;\n  hh[2] = 0x3c6ef372;\n  hh[3] = 0xa54ff53a;\n  hh[4] = 0x510e527f;\n  hh[5] = 0x9b05688c;\n  hh[6] = 0x1f83d9ab;\n  hh[7] = 0x5be0cd19;\n\n  hl[0] = 0xf3bcc908;\n  hl[1] = 0x84caa73b;\n  hl[2] = 0xfe94f82b;\n  hl[3] = 0x5f1d36f1;\n  hl[4] = 0xade682d1;\n  hl[5] = 0x2b3e6c1f;\n  hl[6] = 0xfb41bd6b;\n  hl[7] = 0x137e2179;\n\n  crypto_hashblocks_hl(hh, hl, m, n);\n  n %= 128;\n\n  for (i = 0; i < n; i++) x[i] = m[b-n+i];\n  x[n] = 128;\n\n  n = 256-128*(n<112?1:0);\n  x[n-9] = 0;\n  ts64(x, n-8,  (b / 0x20000000) | 0, b << 3);\n  crypto_hashblocks_hl(hh, hl, x, n);\n\n  for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n  return 0;\n}\n\nfunction add(p, q) {\n  var a = gf(), b = gf(), c = gf(),\n      d = gf(), e = gf(), f = gf(),\n      g = gf(), h = gf(), t = gf();\n\n  Z(a, p[1], p[0]);\n  Z(t, q[1], q[0]);\n  M(a, a, t);\n  A(b, p[0], p[1]);\n  A(t, q[0], q[1]);\n  M(b, b, t);\n  M(c, p[3], q[3]);\n  M(c, c, D2);\n  M(d, p[2], q[2]);\n  A(d, d, d);\n  Z(e, b, a);\n  Z(f, d, c);\n  A(g, d, c);\n  A(h, b, a);\n\n  M(p[0], e, f);\n  M(p[1], h, g);\n  M(p[2], g, f);\n  M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n  var i;\n  for (i = 0; i < 4; i++) {\n    sel25519(p[i], q[i], b);\n  }\n}\n\nfunction pack(r, p) {\n  var tx = gf(), ty = gf(), zi = gf();\n  inv25519(zi, p[2]);\n  M(tx, p[0], zi);\n  M(ty, p[1], zi);\n  pack25519(r, ty);\n  r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n  var b, i;\n  set25519(p[0], gf0);\n  set25519(p[1], gf1);\n  set25519(p[2], gf1);\n  set25519(p[3], gf0);\n  for (i = 255; i >= 0; --i) {\n    b = (s[(i/8)|0] >> (i&7)) & 1;\n    cswap(p, q, b);\n    add(q, p);\n    add(p, p);\n    cswap(p, q, b);\n  }\n}\n\nfunction scalarbase(p, s) {\n  var q = [gf(), gf(), gf(), gf()];\n  set25519(q[0], X);\n  set25519(q[1], Y);\n  set25519(q[2], gf1);\n  M(q[3], X, Y);\n  scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n  var d = new Uint8Array(64);\n  var p = [gf(), gf(), gf(), gf()];\n  var i;\n\n  if (!seeded) randombytes(sk, 32);\n  crypto_hash(d, sk, 32);\n  d[0] &= 248;\n  d[31] &= 127;\n  d[31] |= 64;\n\n  scalarbase(p, d);\n  pack(pk, p);\n\n  for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n  return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n  var carry, i, j, k;\n  for (i = 63; i >= 32; --i) {\n    carry = 0;\n    for (j = i - 32, k = i - 12; j < k; ++j) {\n      x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n      carry = Math.floor((x[j] + 128) / 256);\n      x[j] -= carry * 256;\n    }\n    x[j] += carry;\n    x[i] = 0;\n  }\n  carry = 0;\n  for (j = 0; j < 32; j++) {\n    x[j] += carry - (x[31] >> 4) * L[j];\n    carry = x[j] >> 8;\n    x[j] &= 255;\n  }\n  for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n  for (i = 0; i < 32; i++) {\n    x[i+1] += x[i] >> 8;\n    r[i] = x[i] & 255;\n  }\n}\n\nfunction reduce(r) {\n  var x = new Float64Array(64), i;\n  for (i = 0; i < 64; i++) x[i] = r[i];\n  for (i = 0; i < 64; i++) r[i] = 0;\n  modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n  var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n  var i, j, x = new Float64Array(64);\n  var p = [gf(), gf(), gf(), gf()];\n\n  crypto_hash(d, sk, 32);\n  d[0] &= 248;\n  d[31] &= 127;\n  d[31] |= 64;\n\n  var smlen = n + 64;\n  for (i = 0; i < n; i++) sm[64 + i] = m[i];\n  for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n  crypto_hash(r, sm.subarray(32), n+32);\n  reduce(r);\n  scalarbase(p, r);\n  pack(sm, p);\n\n  for (i = 32; i < 64; i++) sm[i] = sk[i];\n  crypto_hash(h, sm, n + 64);\n  reduce(h);\n\n  for (i = 0; i < 64; i++) x[i] = 0;\n  for (i = 0; i < 32; i++) x[i] = r[i];\n  for (i = 0; i < 32; i++) {\n    for (j = 0; j < 32; j++) {\n      x[i+j] += h[i] * d[j];\n    }\n  }\n\n  modL(sm.subarray(32), x);\n  return smlen;\n}\n\nfunction unpackneg(r, p) {\n  var t = gf(), chk = gf(), num = gf(),\n      den = gf(), den2 = gf(), den4 = gf(),\n      den6 = gf();\n\n  set25519(r[2], gf1);\n  unpack25519(r[1], p);\n  S(num, r[1]);\n  M(den, num, D);\n  Z(num, num, r[2]);\n  A(den, r[2], den);\n\n  S(den2, den);\n  S(den4, den2);\n  M(den6, den4, den2);\n  M(t, den6, num);\n  M(t, t, den);\n\n  pow2523(t, t);\n  M(t, t, num);\n  M(t, t, den);\n  M(t, t, den);\n  M(r[0], t, den);\n\n  S(chk, r[0]);\n  M(chk, chk, den);\n  if (neq25519(chk, num)) M(r[0], r[0], I);\n\n  S(chk, r[0]);\n  M(chk, chk, den);\n  if (neq25519(chk, num)) return -1;\n\n  if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n  M(r[3], r[0], r[1]);\n  return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n  var i;\n  var t = new Uint8Array(32), h = new Uint8Array(64);\n  var p = [gf(), gf(), gf(), gf()],\n      q = [gf(), gf(), gf(), gf()];\n\n  if (n < 64) return -1;\n\n  if (unpackneg(q, pk)) return -1;\n\n  for (i = 0; i < n; i++) m[i] = sm[i];\n  for (i = 0; i < 32; i++) m[i+32] = pk[i];\n  crypto_hash(h, m, n);\n  reduce(h);\n  scalarmult(p, q, h);\n\n  scalarbase(q, sm.subarray(32));\n  add(p, q);\n  pack(t, p);\n\n  n -= 64;\n  if (crypto_verify_32(sm, 0, t, 0)) {\n    for (i = 0; i < n; i++) m[i] = 0;\n    return -1;\n  }\n\n  for (i = 0; i < n; i++) m[i] = sm[i + 64];\n  return n;\n}\n\nvar crypto_scalarmult_BYTES = 32,\n    crypto_scalarmult_SCALARBYTES = 32,\n    crypto_box_PUBLICKEYBYTES = 32,\n    crypto_box_SECRETKEYBYTES = 32,\n    crypto_sign_BYTES = 64,\n    crypto_sign_PUBLICKEYBYTES = 32,\n    crypto_sign_SECRETKEYBYTES = 64,\n    crypto_sign_SEEDBYTES = 32;\n\nfunction checkArrayTypes() {\n  for (var i = 0; i < arguments.length; i++) {\n    if (!(arguments[i] instanceof Uint8Array))\n      throw new TypeError('unexpected type, use Uint8Array');\n  }\n}\n\nfunction cleanup(arr) {\n  for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.scalarMult = function(n, p) {\n  checkArrayTypes(n, p);\n  if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n  if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n  var q = new Uint8Array(crypto_scalarmult_BYTES);\n  crypto_scalarmult(q, n, p);\n  return q;\n};\n\nnacl.box = {};\n\nnacl.box.keyPair = function() {\n  var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n  var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n  crypto_box_keypair(pk, sk);\n  return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n  checkArrayTypes(secretKey);\n  if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n    throw new Error('bad secret key size');\n  var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n  crypto_scalarmult_base(pk, secretKey);\n  return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign = function(msg, secretKey) {\n  checkArrayTypes(msg, secretKey);\n  if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n    throw new Error('bad secret key size');\n  var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n  crypto_sign(signedMsg, msg, msg.length, secretKey);\n  return signedMsg;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n  var signedMsg = nacl.sign(msg, secretKey);\n  var sig = new Uint8Array(crypto_sign_BYTES);\n  for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n  return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n  checkArrayTypes(msg, sig, publicKey);\n  if (sig.length !== crypto_sign_BYTES)\n    throw new Error('bad signature size');\n  if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n    throw new Error('bad public key size');\n  var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n  var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n  var i;\n  for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n  for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n  return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n  var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n  var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n  crypto_sign_keypair(pk, sk);\n  return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n  checkArrayTypes(secretKey);\n  if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n    throw new Error('bad secret key size');\n  var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n  for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n  return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n  checkArrayTypes(seed);\n  if (seed.length !== crypto_sign_SEEDBYTES)\n    throw new Error('bad seed size');\n  var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n  var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n  for (var i = 0; i < 32; i++) sk[i] = seed[i];\n  crypto_sign_keypair(pk, sk, true);\n  return {publicKey: pk, secretKey: sk};\n};\n\nnacl.setPRNG = function(fn) {\n  randombytes = fn;\n};\n\n(function() {\n  // Initialize PRNG if environment provides CSPRNG.\n  // If not, methods calling randombytes will throw.\n  if (crypto$1 && crypto$1.getRandomValues) {\n    // Browsers and Node v16+\n    var QUOTA = 65536;\n    nacl.setPRNG(function(x, n) {\n      var i, v = new Uint8Array(n);\n      for (i = 0; i < n; i += QUOTA) {\n        crypto$1.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n      }\n      for (i = 0; i < n; i++) x[i] = v[i];\n      cleanup(v);\n    });\n  }\n})();\n\nvar naclFast = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  default: nacl\n});\n\n/** @access private */\n//Paul Tero, July 2001\n//http://www.tero.co.uk/des/\n//\n//Optimised for performance with large blocks by Michael Hayworth, November 2001\n//http://www.netdealing.com\n//\n// Modified by Recurity Labs GmbH\n//THIS SOFTWARE IS PROVIDED \"AS IS\" AND\n//ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n//IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n//ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n//FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n//DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n//OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n//HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n//OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n//SUCH DAMAGE.\n//des\n//this takes the key, the message, and whether to encrypt or decrypt\nfunction des(keys, message, encrypt, mode, iv, padding) {\n    //declaring this locally speeds things up a bit\n    const spfunction1 = [\n        0x1010400, 0, 0x10000, 0x1010404, 0x1010004, 0x10404, 0x4, 0x10000, 0x400, 0x1010400,\n        0x1010404, 0x400, 0x1000404, 0x1010004, 0x1000000, 0x4, 0x404, 0x1000400, 0x1000400, 0x10400, 0x10400, 0x1010000,\n        0x1010000, 0x1000404, 0x10004, 0x1000004, 0x1000004, 0x10004, 0, 0x404, 0x10404, 0x1000000, 0x10000, 0x1010404, 0x4,\n        0x1010000, 0x1010400, 0x1000000, 0x1000000, 0x400, 0x1010004, 0x10000, 0x10400, 0x1000004, 0x400, 0x4, 0x1000404,\n        0x10404, 0x1010404, 0x10004, 0x1010000, 0x1000404, 0x1000004, 0x404, 0x10404, 0x1010400, 0x404, 0x1000400,\n        0x1000400, 0, 0x10004, 0x10400, 0, 0x1010004\n    ];\n    const spfunction2 = [\n        -2146402272, -2147450880, 0x8000, 0x108020, 0x100000, 0x20, -2146435040, -2147450848,\n        -2147483616, -2146402272, -2146402304, -2147483648, -2147450880, 0x100000, 0x20, -2146435040, 0x108000, 0x100020,\n        -2147450848, 0, -2147483648, 0x8000, 0x108020, -2146435072, 0x100020, -2147483616, 0, 0x108000, 0x8020, -2146402304,\n        -2146435072, 0x8020, 0, 0x108020, -2146435040, 0x100000, -2147450848, -2146435072, -2146402304, 0x8000, -2146435072,\n        -2147450880, 0x20, -2146402272, 0x108020, 0x20, 0x8000, -2147483648, 0x8020, -2146402304, 0x100000, -2147483616,\n        0x100020, -2147450848, -2147483616, 0x100020, 0x108000, 0, -2147450880, 0x8020, -2147483648, -2146435040,\n        -2146402272, 0x108000\n    ];\n    const spfunction3 = [\n        0x208, 0x8020200, 0, 0x8020008, 0x8000200, 0, 0x20208, 0x8000200, 0x20008, 0x8000008,\n        0x8000008, 0x20000, 0x8020208, 0x20008, 0x8020000, 0x208, 0x8000000, 0x8, 0x8020200, 0x200, 0x20200, 0x8020000,\n        0x8020008, 0x20208, 0x8000208, 0x20200, 0x20000, 0x8000208, 0x8, 0x8020208, 0x200, 0x8000000, 0x8020200, 0x8000000,\n        0x20008, 0x208, 0x20000, 0x8020200, 0x8000200, 0, 0x200, 0x20008, 0x8020208, 0x8000200, 0x8000008, 0x200, 0,\n        0x8020008, 0x8000208, 0x20000, 0x8000000, 0x8020208, 0x8, 0x20208, 0x20200, 0x8000008, 0x8020000, 0x8000208, 0x208,\n        0x8020000, 0x20208, 0x8, 0x8020008, 0x20200\n    ];\n    const spfunction4 = [\n        0x802001, 0x2081, 0x2081, 0x80, 0x802080, 0x800081, 0x800001, 0x2001, 0, 0x802000,\n        0x802000, 0x802081, 0x81, 0, 0x800080, 0x800001, 0x1, 0x2000, 0x800000, 0x802001, 0x80, 0x800000, 0x2001, 0x2080,\n        0x800081, 0x1, 0x2080, 0x800080, 0x2000, 0x802080, 0x802081, 0x81, 0x800080, 0x800001, 0x802000, 0x802081, 0x81, 0,\n        0, 0x802000, 0x2080, 0x800080, 0x800081, 0x1, 0x802001, 0x2081, 0x2081, 0x80, 0x802081, 0x81, 0x1, 0x2000, 0x800001,\n        0x2001, 0x802080, 0x800081, 0x2001, 0x2080, 0x800000, 0x802001, 0x80, 0x800000, 0x2000, 0x802080\n    ];\n    const spfunction5 = [\n        0x100, 0x2080100, 0x2080000, 0x42000100, 0x80000, 0x100, 0x40000000, 0x2080000,\n        0x40080100, 0x80000, 0x2000100, 0x40080100, 0x42000100, 0x42080000, 0x80100, 0x40000000, 0x2000000, 0x40080000,\n        0x40080000, 0, 0x40000100, 0x42080100, 0x42080100, 0x2000100, 0x42080000, 0x40000100, 0, 0x42000000, 0x2080100,\n        0x2000000, 0x42000000, 0x80100, 0x80000, 0x42000100, 0x100, 0x2000000, 0x40000000, 0x2080000, 0x42000100,\n        0x40080100, 0x2000100, 0x40000000, 0x42080000, 0x2080100, 0x40080100, 0x100, 0x2000000, 0x42080000, 0x42080100,\n        0x80100, 0x42000000, 0x42080100, 0x2080000, 0, 0x40080000, 0x42000000, 0x80100, 0x2000100, 0x40000100, 0x80000, 0,\n        0x40080000, 0x2080100, 0x40000100\n    ];\n    const spfunction6 = [\n        0x20000010, 0x20400000, 0x4000, 0x20404010, 0x20400000, 0x10, 0x20404010, 0x400000,\n        0x20004000, 0x404010, 0x400000, 0x20000010, 0x400010, 0x20004000, 0x20000000, 0x4010, 0, 0x400010, 0x20004010,\n        0x4000, 0x404000, 0x20004010, 0x10, 0x20400010, 0x20400010, 0, 0x404010, 0x20404000, 0x4010, 0x404000, 0x20404000,\n        0x20000000, 0x20004000, 0x10, 0x20400010, 0x404000, 0x20404010, 0x400000, 0x4010, 0x20000010, 0x400000, 0x20004000,\n        0x20000000, 0x4010, 0x20000010, 0x20404010, 0x404000, 0x20400000, 0x404010, 0x20404000, 0, 0x20400010, 0x10, 0x4000,\n        0x20400000, 0x404010, 0x4000, 0x400010, 0x20004010, 0, 0x20404000, 0x20000000, 0x400010, 0x20004010\n    ];\n    const spfunction7 = [\n        0x200000, 0x4200002, 0x4000802, 0, 0x800, 0x4000802, 0x200802, 0x4200800, 0x4200802,\n        0x200000, 0, 0x4000002, 0x2, 0x4000000, 0x4200002, 0x802, 0x4000800, 0x200802, 0x200002, 0x4000800, 0x4000002,\n        0x4200000, 0x4200800, 0x200002, 0x4200000, 0x800, 0x802, 0x4200802, 0x200800, 0x2, 0x4000000, 0x200800, 0x4000000,\n        0x200800, 0x200000, 0x4000802, 0x4000802, 0x4200002, 0x4200002, 0x2, 0x200002, 0x4000000, 0x4000800, 0x200000,\n        0x4200800, 0x802, 0x200802, 0x4200800, 0x802, 0x4000002, 0x4200802, 0x4200000, 0x200800, 0, 0x2, 0x4200802, 0,\n        0x200802, 0x4200000, 0x800, 0x4000002, 0x4000800, 0x800, 0x200002\n    ];\n    const spfunction8 = [\n        0x10001040, 0x1000, 0x40000, 0x10041040, 0x10000000, 0x10001040, 0x40, 0x10000000,\n        0x40040, 0x10040000, 0x10041040, 0x41000, 0x10041000, 0x41040, 0x1000, 0x40, 0x10040000, 0x10000040, 0x10001000,\n        0x1040, 0x41000, 0x40040, 0x10040040, 0x10041000, 0x1040, 0, 0, 0x10040040, 0x10000040, 0x10001000, 0x41040,\n        0x40000, 0x41040, 0x40000, 0x10041000, 0x1000, 0x40, 0x10040040, 0x1000, 0x41040, 0x10001000, 0x40, 0x10000040,\n        0x10040000, 0x10040040, 0x10000000, 0x40000, 0x10001040, 0, 0x10041040, 0x40040, 0x10000040, 0x10040000, 0x10001000,\n        0x10001040, 0, 0x10041040, 0x41000, 0x41000, 0x1040, 0x1040, 0x40040, 0x10000000, 0x10041000\n    ];\n    //create the 16 or 48 subkeys we will need\n    let m = 0;\n    let i;\n    let j;\n    let temp;\n    let right1;\n    let right2;\n    let left;\n    let right;\n    let looping;\n    let endloop;\n    let loopinc;\n    let len = message.length;\n    //set up the loops for single and triple des\n    const iterations = keys.length === 32 ? 3 : 9; //single or triple des\n    if (iterations === 3) {\n        looping = encrypt ? [0, 32, 2] : [30, -2, -2];\n    }\n    else {\n        looping = encrypt ? [0, 32, 2, 62, 30, -2, 64, 96, 2] : [94, 62, -2, 32, 64, 2, 30, -2, -2];\n    }\n    //pad the message depending on the padding parameter\n    //only add padding if encrypting - note that you need to use the same padding option for both encrypt and decrypt\n    if (encrypt) {\n        message = desAddPadding(message);\n        len = message.length;\n    }\n    //store the result here\n    let result = new Uint8Array(len);\n    let k = 0;\n    //loop through each 64 bit chunk of the message\n    while (m < len) {\n        left = (message[m++] << 24) | (message[m++] << 16) | (message[m++] << 8) | message[m++];\n        right = (message[m++] << 24) | (message[m++] << 16) | (message[m++] << 8) | message[m++];\n        //first each 64 but chunk of the message must be permuted according to IP\n        temp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n        right ^= temp;\n        left ^= (temp << 4);\n        temp = ((left >>> 16) ^ right) & 0x0000ffff;\n        right ^= temp;\n        left ^= (temp << 16);\n        temp = ((right >>> 2) ^ left) & 0x33333333;\n        left ^= temp;\n        right ^= (temp << 2);\n        temp = ((right >>> 8) ^ left) & 0x00ff00ff;\n        left ^= temp;\n        right ^= (temp << 8);\n        temp = ((left >>> 1) ^ right) & 0x55555555;\n        right ^= temp;\n        left ^= (temp << 1);\n        left = ((left << 1) | (left >>> 31));\n        right = ((right << 1) | (right >>> 31));\n        //do this either 1 or 3 times for each chunk of the message\n        for (j = 0; j < iterations; j += 3) {\n            endloop = looping[j + 1];\n            loopinc = looping[j + 2];\n            //now go through and perform the encryption or decryption\n            for (i = looping[j]; i !== endloop; i += loopinc) { //for efficiency\n                right1 = right ^ keys[i];\n                right2 = ((right >>> 4) | (right << 28)) ^ keys[i + 1];\n                //the result is attained by passing these bytes through the S selection functions\n                temp = left;\n                left = right;\n                right = temp ^ (spfunction2[(right1 >>> 24) & 0x3f] | spfunction4[(right1 >>> 16) & 0x3f] | spfunction6[(right1 >>>\n                    8) & 0x3f] | spfunction8[right1 & 0x3f] | spfunction1[(right2 >>> 24) & 0x3f] | spfunction3[(right2 >>> 16) &\n                    0x3f] | spfunction5[(right2 >>> 8) & 0x3f] | spfunction7[right2 & 0x3f]);\n            }\n            temp = left;\n            left = right;\n            right = temp; //unreverse left and right\n        } //for either 1 or 3 iterations\n        //move then each one bit to the right\n        left = ((left >>> 1) | (left << 31));\n        right = ((right >>> 1) | (right << 31));\n        //now perform IP-1, which is IP in the opposite direction\n        temp = ((left >>> 1) ^ right) & 0x55555555;\n        right ^= temp;\n        left ^= (temp << 1);\n        temp = ((right >>> 8) ^ left) & 0x00ff00ff;\n        left ^= temp;\n        right ^= (temp << 8);\n        temp = ((right >>> 2) ^ left) & 0x33333333;\n        left ^= temp;\n        right ^= (temp << 2);\n        temp = ((left >>> 16) ^ right) & 0x0000ffff;\n        right ^= temp;\n        left ^= (temp << 16);\n        temp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n        right ^= temp;\n        left ^= (temp << 4);\n        result[k++] = (left >>> 24);\n        result[k++] = ((left >>> 16) & 0xff);\n        result[k++] = ((left >>> 8) & 0xff);\n        result[k++] = (left & 0xff);\n        result[k++] = (right >>> 24);\n        result[k++] = ((right >>> 16) & 0xff);\n        result[k++] = ((right >>> 8) & 0xff);\n        result[k++] = (right & 0xff);\n    } //for every 8 characters, or 64 bits in the message\n    //only remove padding if decrypting - note that you need to use the same padding option for both encrypt and decrypt\n    if (!encrypt) {\n        result = desRemovePadding(result);\n    }\n    return result;\n} //end of des\n//desCreateKeys\n//this takes as input a 64 bit key (even though only 56 bits are used)\n//as an array of 2 integers, and returns 16 48 bit keys\nfunction desCreateKeys(key) {\n    //declaring this locally speeds things up a bit\n    const pc2bytes0 = [\n        0, 0x4, 0x20000000, 0x20000004, 0x10000, 0x10004, 0x20010000, 0x20010004, 0x200, 0x204,\n        0x20000200, 0x20000204, 0x10200, 0x10204, 0x20010200, 0x20010204\n    ];\n    const pc2bytes1 = [\n        0, 0x1, 0x100000, 0x100001, 0x4000000, 0x4000001, 0x4100000, 0x4100001, 0x100, 0x101, 0x100100,\n        0x100101, 0x4000100, 0x4000101, 0x4100100, 0x4100101\n    ];\n    const pc2bytes2 = [\n        0, 0x8, 0x800, 0x808, 0x1000000, 0x1000008, 0x1000800, 0x1000808, 0, 0x8, 0x800, 0x808,\n        0x1000000, 0x1000008, 0x1000800, 0x1000808\n    ];\n    const pc2bytes3 = [\n        0, 0x200000, 0x8000000, 0x8200000, 0x2000, 0x202000, 0x8002000, 0x8202000, 0x20000, 0x220000,\n        0x8020000, 0x8220000, 0x22000, 0x222000, 0x8022000, 0x8222000\n    ];\n    const pc2bytes4 = [\n        0, 0x40000, 0x10, 0x40010, 0, 0x40000, 0x10, 0x40010, 0x1000, 0x41000, 0x1010, 0x41010, 0x1000,\n        0x41000, 0x1010, 0x41010\n    ];\n    const pc2bytes5 = [\n        0, 0x400, 0x20, 0x420, 0, 0x400, 0x20, 0x420, 0x2000000, 0x2000400, 0x2000020, 0x2000420,\n        0x2000000, 0x2000400, 0x2000020, 0x2000420\n    ];\n    const pc2bytes6 = [\n        0, 0x10000000, 0x80000, 0x10080000, 0x2, 0x10000002, 0x80002, 0x10080002, 0, 0x10000000,\n        0x80000, 0x10080000, 0x2, 0x10000002, 0x80002, 0x10080002\n    ];\n    const pc2bytes7 = [\n        0, 0x10000, 0x800, 0x10800, 0x20000000, 0x20010000, 0x20000800, 0x20010800, 0x20000, 0x30000,\n        0x20800, 0x30800, 0x20020000, 0x20030000, 0x20020800, 0x20030800\n    ];\n    const pc2bytes8 = [\n        0, 0x40000, 0, 0x40000, 0x2, 0x40002, 0x2, 0x40002, 0x2000000, 0x2040000, 0x2000000, 0x2040000,\n        0x2000002, 0x2040002, 0x2000002, 0x2040002\n    ];\n    const pc2bytes9 = [\n        0, 0x10000000, 0x8, 0x10000008, 0, 0x10000000, 0x8, 0x10000008, 0x400, 0x10000400, 0x408,\n        0x10000408, 0x400, 0x10000400, 0x408, 0x10000408\n    ];\n    const pc2bytes10 = [\n        0, 0x20, 0, 0x20, 0x100000, 0x100020, 0x100000, 0x100020, 0x2000, 0x2020, 0x2000, 0x2020,\n        0x102000, 0x102020, 0x102000, 0x102020\n    ];\n    const pc2bytes11 = [\n        0, 0x1000000, 0x200, 0x1000200, 0x200000, 0x1200000, 0x200200, 0x1200200, 0x4000000, 0x5000000,\n        0x4000200, 0x5000200, 0x4200000, 0x5200000, 0x4200200, 0x5200200\n    ];\n    const pc2bytes12 = [\n        0, 0x1000, 0x8000000, 0x8001000, 0x80000, 0x81000, 0x8080000, 0x8081000, 0x10, 0x1010,\n        0x8000010, 0x8001010, 0x80010, 0x81010, 0x8080010, 0x8081010\n    ];\n    const pc2bytes13 = [0, 0x4, 0x100, 0x104, 0, 0x4, 0x100, 0x104, 0x1, 0x5, 0x101, 0x105, 0x1, 0x5, 0x101, 0x105];\n    //how many iterations (1 for des, 3 for triple des)\n    const iterations = key.length > 8 ? 3 : 1; //changed by Paul 16/6/2007 to use Triple DES for 9+ byte keys\n    //stores the return keys\n    const keys = new Array(32 * iterations);\n    //now define the left shifts which need to be done\n    const shifts = [0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0];\n    //other variables\n    let lefttemp;\n    let righttemp;\n    let m = 0;\n    let n = 0;\n    let temp;\n    for (let j = 0; j < iterations; j++) { //either 1 or 3 iterations\n        let left = (key[m++] << 24) | (key[m++] << 16) | (key[m++] << 8) | key[m++];\n        let right = (key[m++] << 24) | (key[m++] << 16) | (key[m++] << 8) | key[m++];\n        temp = ((left >>> 4) ^ right) & 0x0f0f0f0f;\n        right ^= temp;\n        left ^= (temp << 4);\n        temp = ((right >>> -16) ^ left) & 0x0000ffff;\n        left ^= temp;\n        right ^= (temp << -16);\n        temp = ((left >>> 2) ^ right) & 0x33333333;\n        right ^= temp;\n        left ^= (temp << 2);\n        temp = ((right >>> -16) ^ left) & 0x0000ffff;\n        left ^= temp;\n        right ^= (temp << -16);\n        temp = ((left >>> 1) ^ right) & 0x55555555;\n        right ^= temp;\n        left ^= (temp << 1);\n        temp = ((right >>> 8) ^ left) & 0x00ff00ff;\n        left ^= temp;\n        right ^= (temp << 8);\n        temp = ((left >>> 1) ^ right) & 0x55555555;\n        right ^= temp;\n        left ^= (temp << 1);\n        //the right side needs to be shifted and to get the last four bits of the left side\n        temp = (left << 8) | ((right >>> 20) & 0x000000f0);\n        //left needs to be put upside down\n        left = (right << 24) | ((right << 8) & 0xff0000) | ((right >>> 8) & 0xff00) | ((right >>> 24) & 0xf0);\n        right = temp;\n        //now go through and perform these shifts on the left and right keys\n        for (let i = 0; i < shifts.length; i++) {\n            //shift the keys either one or two bits to the left\n            if (shifts[i]) {\n                left = (left << 2) | (left >>> 26);\n                right = (right << 2) | (right >>> 26);\n            }\n            else {\n                left = (left << 1) | (left >>> 27);\n                right = (right << 1) | (right >>> 27);\n            }\n            left &= -15;\n            right &= -15;\n            //now apply PC-2, in such a way that E is easier when encrypting or decrypting\n            //this conversion will look like PC-2 except only the last 6 bits of each byte are used\n            //rather than 48 consecutive bits and the order of lines will be according to\n            //how the S selection functions will be applied: S2, S4, S6, S8, S1, S3, S5, S7\n            lefttemp = pc2bytes0[left >>> 28] | pc2bytes1[(left >>> 24) & 0xf] | pc2bytes2[(left >>> 20) & 0xf] | pc2bytes3[(left >>> 16) & 0xf] | pc2bytes4[(left >>> 12) & 0xf] | pc2bytes5[(left >>> 8) & 0xf] | pc2bytes6[(left >>> 4) &\n                0xf];\n            righttemp = pc2bytes7[right >>> 28] | pc2bytes8[(right >>> 24) & 0xf] | pc2bytes9[(right >>> 20) & 0xf] |\n                pc2bytes10[(right >>> 16) & 0xf] | pc2bytes11[(right >>> 12) & 0xf] | pc2bytes12[(right >>> 8) & 0xf] |\n                pc2bytes13[(right >>> 4) & 0xf];\n            temp = ((righttemp >>> 16) ^ lefttemp) & 0x0000ffff;\n            keys[n++] = lefttemp ^ temp;\n            keys[n++] = righttemp ^ (temp << 16);\n        }\n    } //for each iterations\n    //return the keys we've created\n    return keys;\n} //end of desCreateKeys\nfunction desAddPadding(message, padding) {\n    const padLength = 8 - (message.length % 8);\n    let pad;\n    if ((padLength < 8)) { //pad the message out with null bytes\n        pad = 0;\n    }\n    else if (padLength === 8) {\n        return message;\n    }\n    else {\n        throw new Error('des: invalid padding');\n    }\n    const paddedMessage = new Uint8Array(message.length + padLength);\n    for (let i = 0; i < message.length; i++) {\n        paddedMessage[i] = message[i];\n    }\n    for (let j = 0; j < padLength; j++) {\n        paddedMessage[message.length + j] = pad;\n    }\n    return paddedMessage;\n}\nfunction desRemovePadding(message, padding) {\n    let padLength = null;\n    let pad;\n    { // null padding\n        pad = 0;\n    }\n    if (!padLength) {\n        padLength = 1;\n        while (message[message.length - padLength] === pad) {\n            padLength++;\n        }\n        padLength--;\n    }\n    return message.subarray(0, message.length - padLength);\n}\n// added by Recurity Labs\nfunction TripleDES(key) {\n    this.key = [];\n    for (let i = 0; i < 3; i++) {\n        this.key.push(new Uint8Array(key.subarray(i * 8, (i * 8) + 8)));\n    }\n    this.encrypt = function (block) {\n        return des(desCreateKeys(this.key[2]), des(desCreateKeys(this.key[1]), des(desCreateKeys(this.key[0]), block, true, 0, null, null), false, 0, null, null), true);\n    };\n}\nTripleDES.keySize = TripleDES.prototype.keySize = 24;\nTripleDES.blockSize = TripleDES.prototype.blockSize = 8;\n\n/** @access private */\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n// Copyright 2010 pjacobs@xeekr.com . All rights reserved.\n// Modified by Recurity Labs GmbH\n// fixed/modified by Herbert Hanewinkel, www.haneWIN.de\n// check www.haneWIN.de for the latest version\n// cast5.js is a Javascript implementation of CAST-128, as defined in RFC 2144.\n// CAST-128 is a common OpenPGP cipher.\n// CAST5 constructor\nfunction OpenPGPSymEncCAST5() {\n    this.BlockSize = 8;\n    this.KeySize = 16;\n    this.setKey = function (key) {\n        this.masking = new Array(16);\n        this.rotate = new Array(16);\n        this.reset();\n        if (key.length === this.KeySize) {\n            this.keySchedule(key);\n        }\n        else {\n            throw new Error('CAST-128: keys must be 16 bytes');\n        }\n        return true;\n    };\n    this.reset = function () {\n        for (let i = 0; i < 16; i++) {\n            this.masking[i] = 0;\n            this.rotate[i] = 0;\n        }\n    };\n    this.getBlockSize = function () {\n        return this.BlockSize;\n    };\n    this.encrypt = function (src) {\n        const dst = new Array(src.length);\n        for (let i = 0; i < src.length; i += 8) {\n            let l = (src[i] << 24) | (src[i + 1] << 16) | (src[i + 2] << 8) | src[i + 3];\n            let r = (src[i + 4] << 24) | (src[i + 5] << 16) | (src[i + 6] << 8) | src[i + 7];\n            let t;\n            t = r;\n            r = l ^ f1(r, this.masking[0], this.rotate[0]);\n            l = t;\n            t = r;\n            r = l ^ f2(r, this.masking[1], this.rotate[1]);\n            l = t;\n            t = r;\n            r = l ^ f3(r, this.masking[2], this.rotate[2]);\n            l = t;\n            t = r;\n            r = l ^ f1(r, this.masking[3], this.rotate[3]);\n            l = t;\n            t = r;\n            r = l ^ f2(r, this.masking[4], this.rotate[4]);\n            l = t;\n            t = r;\n            r = l ^ f3(r, this.masking[5], this.rotate[5]);\n            l = t;\n            t = r;\n            r = l ^ f1(r, this.masking[6], this.rotate[6]);\n            l = t;\n            t = r;\n            r = l ^ f2(r, this.masking[7], this.rotate[7]);\n            l = t;\n            t = r;\n            r = l ^ f3(r, this.masking[8], this.rotate[8]);\n            l = t;\n            t = r;\n            r = l ^ f1(r, this.masking[9], this.rotate[9]);\n            l = t;\n            t = r;\n            r = l ^ f2(r, this.masking[10], this.rotate[10]);\n            l = t;\n            t = r;\n            r = l ^ f3(r, this.masking[11], this.rotate[11]);\n            l = t;\n            t = r;\n            r = l ^ f1(r, this.masking[12], this.rotate[12]);\n            l = t;\n            t = r;\n            r = l ^ f2(r, this.masking[13], this.rotate[13]);\n            l = t;\n            t = r;\n            r = l ^ f3(r, this.masking[14], this.rotate[14]);\n            l = t;\n            t = r;\n            r = l ^ f1(r, this.masking[15], this.rotate[15]);\n            l = t;\n            dst[i] = (r >>> 24) & 255;\n            dst[i + 1] = (r >>> 16) & 255;\n            dst[i + 2] = (r >>> 8) & 255;\n            dst[i + 3] = r & 255;\n            dst[i + 4] = (l >>> 24) & 255;\n            dst[i + 5] = (l >>> 16) & 255;\n            dst[i + 6] = (l >>> 8) & 255;\n            dst[i + 7] = l & 255;\n        }\n        return dst;\n    };\n    this.decrypt = function (src) {\n        const dst = new Array(src.length);\n        for (let i = 0; i < src.length; i += 8) {\n            let l = (src[i] << 24) | (src[i + 1] << 16) | (src[i + 2] << 8) | src[i + 3];\n            let r = (src[i + 4] << 24) | (src[i + 5] << 16) | (src[i + 6] << 8) | src[i + 7];\n            let t;\n            t = r;\n            r = l ^ f1(r, this.masking[15], this.rotate[15]);\n            l = t;\n            t = r;\n            r = l ^ f3(r, this.masking[14], this.rotate[14]);\n            l = t;\n            t = r;\n            r = l ^ f2(r, this.masking[13], this.rotate[13]);\n            l = t;\n            t = r;\n            r = l ^ f1(r, this.masking[12], this.rotate[12]);\n            l = t;\n            t = r;\n            r = l ^ f3(r, this.masking[11], this.rotate[11]);\n            l = t;\n            t = r;\n            r = l ^ f2(r, this.masking[10], this.rotate[10]);\n            l = t;\n            t = r;\n            r = l ^ f1(r, this.masking[9], this.rotate[9]);\n            l = t;\n            t = r;\n            r = l ^ f3(r, this.masking[8], this.rotate[8]);\n            l = t;\n            t = r;\n            r = l ^ f2(r, this.masking[7], this.rotate[7]);\n            l = t;\n            t = r;\n            r = l ^ f1(r, this.masking[6], this.rotate[6]);\n            l = t;\n            t = r;\n            r = l ^ f3(r, this.masking[5], this.rotate[5]);\n            l = t;\n            t = r;\n            r = l ^ f2(r, this.masking[4], this.rotate[4]);\n            l = t;\n            t = r;\n            r = l ^ f1(r, this.masking[3], this.rotate[3]);\n            l = t;\n            t = r;\n            r = l ^ f3(r, this.masking[2], this.rotate[2]);\n            l = t;\n            t = r;\n            r = l ^ f2(r, this.masking[1], this.rotate[1]);\n            l = t;\n            t = r;\n            r = l ^ f1(r, this.masking[0], this.rotate[0]);\n            l = t;\n            dst[i] = (r >>> 24) & 255;\n            dst[i + 1] = (r >>> 16) & 255;\n            dst[i + 2] = (r >>> 8) & 255;\n            dst[i + 3] = r & 255;\n            dst[i + 4] = (l >>> 24) & 255;\n            dst[i + 5] = (l >> 16) & 255;\n            dst[i + 6] = (l >> 8) & 255;\n            dst[i + 7] = l & 255;\n        }\n        return dst;\n    };\n    const scheduleA = new Array(4);\n    scheduleA[0] = new Array(4);\n    scheduleA[0][0] = [4, 0, 0xd, 0xf, 0xc, 0xe, 0x8];\n    scheduleA[0][1] = [5, 2, 16 + 0, 16 + 2, 16 + 1, 16 + 3, 0xa];\n    scheduleA[0][2] = [6, 3, 16 + 7, 16 + 6, 16 + 5, 16 + 4, 9];\n    scheduleA[0][3] = [7, 1, 16 + 0xa, 16 + 9, 16 + 0xb, 16 + 8, 0xb];\n    scheduleA[1] = new Array(4);\n    scheduleA[1][0] = [0, 6, 16 + 5, 16 + 7, 16 + 4, 16 + 6, 16 + 0];\n    scheduleA[1][1] = [1, 4, 0, 2, 1, 3, 16 + 2];\n    scheduleA[1][2] = [2, 5, 7, 6, 5, 4, 16 + 1];\n    scheduleA[1][3] = [3, 7, 0xa, 9, 0xb, 8, 16 + 3];\n    scheduleA[2] = new Array(4);\n    scheduleA[2][0] = [4, 0, 0xd, 0xf, 0xc, 0xe, 8];\n    scheduleA[2][1] = [5, 2, 16 + 0, 16 + 2, 16 + 1, 16 + 3, 0xa];\n    scheduleA[2][2] = [6, 3, 16 + 7, 16 + 6, 16 + 5, 16 + 4, 9];\n    scheduleA[2][3] = [7, 1, 16 + 0xa, 16 + 9, 16 + 0xb, 16 + 8, 0xb];\n    scheduleA[3] = new Array(4);\n    scheduleA[3][0] = [0, 6, 16 + 5, 16 + 7, 16 + 4, 16 + 6, 16 + 0];\n    scheduleA[3][1] = [1, 4, 0, 2, 1, 3, 16 + 2];\n    scheduleA[3][2] = [2, 5, 7, 6, 5, 4, 16 + 1];\n    scheduleA[3][3] = [3, 7, 0xa, 9, 0xb, 8, 16 + 3];\n    const scheduleB = new Array(4);\n    scheduleB[0] = new Array(4);\n    scheduleB[0][0] = [16 + 8, 16 + 9, 16 + 7, 16 + 6, 16 + 2];\n    scheduleB[0][1] = [16 + 0xa, 16 + 0xb, 16 + 5, 16 + 4, 16 + 6];\n    scheduleB[0][2] = [16 + 0xc, 16 + 0xd, 16 + 3, 16 + 2, 16 + 9];\n    scheduleB[0][3] = [16 + 0xe, 16 + 0xf, 16 + 1, 16 + 0, 16 + 0xc];\n    scheduleB[1] = new Array(4);\n    scheduleB[1][0] = [3, 2, 0xc, 0xd, 8];\n    scheduleB[1][1] = [1, 0, 0xe, 0xf, 0xd];\n    scheduleB[1][2] = [7, 6, 8, 9, 3];\n    scheduleB[1][3] = [5, 4, 0xa, 0xb, 7];\n    scheduleB[2] = new Array(4);\n    scheduleB[2][0] = [16 + 3, 16 + 2, 16 + 0xc, 16 + 0xd, 16 + 9];\n    scheduleB[2][1] = [16 + 1, 16 + 0, 16 + 0xe, 16 + 0xf, 16 + 0xc];\n    scheduleB[2][2] = [16 + 7, 16 + 6, 16 + 8, 16 + 9, 16 + 2];\n    scheduleB[2][3] = [16 + 5, 16 + 4, 16 + 0xa, 16 + 0xb, 16 + 6];\n    scheduleB[3] = new Array(4);\n    scheduleB[3][0] = [8, 9, 7, 6, 3];\n    scheduleB[3][1] = [0xa, 0xb, 5, 4, 7];\n    scheduleB[3][2] = [0xc, 0xd, 3, 2, 8];\n    scheduleB[3][3] = [0xe, 0xf, 1, 0, 0xd];\n    // changed 'in' to 'inn' (in javascript 'in' is a reserved word)\n    this.keySchedule = function (inn) {\n        const t = new Array(8);\n        const k = new Array(32);\n        let j;\n        for (let i = 0; i < 4; i++) {\n            j = i * 4;\n            t[i] = (inn[j] << 24) | (inn[j + 1] << 16) | (inn[j + 2] << 8) | inn[j + 3];\n        }\n        const x = [6, 7, 4, 5];\n        let ki = 0;\n        let w;\n        for (let half = 0; half < 2; half++) {\n            for (let round = 0; round < 4; round++) {\n                for (j = 0; j < 4; j++) {\n                    const a = scheduleA[round][j];\n                    w = t[a[1]];\n                    w ^= sBox[4][(t[a[2] >>> 2] >>> (24 - 8 * (a[2] & 3))) & 0xff];\n                    w ^= sBox[5][(t[a[3] >>> 2] >>> (24 - 8 * (a[3] & 3))) & 0xff];\n                    w ^= sBox[6][(t[a[4] >>> 2] >>> (24 - 8 * (a[4] & 3))) & 0xff];\n                    w ^= sBox[7][(t[a[5] >>> 2] >>> (24 - 8 * (a[5] & 3))) & 0xff];\n                    w ^= sBox[x[j]][(t[a[6] >>> 2] >>> (24 - 8 * (a[6] & 3))) & 0xff];\n                    t[a[0]] = w;\n                }\n                for (j = 0; j < 4; j++) {\n                    const b = scheduleB[round][j];\n                    w = sBox[4][(t[b[0] >>> 2] >>> (24 - 8 * (b[0] & 3))) & 0xff];\n                    w ^= sBox[5][(t[b[1] >>> 2] >>> (24 - 8 * (b[1] & 3))) & 0xff];\n                    w ^= sBox[6][(t[b[2] >>> 2] >>> (24 - 8 * (b[2] & 3))) & 0xff];\n                    w ^= sBox[7][(t[b[3] >>> 2] >>> (24 - 8 * (b[3] & 3))) & 0xff];\n                    w ^= sBox[4 + j][(t[b[4] >>> 2] >>> (24 - 8 * (b[4] & 3))) & 0xff];\n                    k[ki] = w;\n                    ki++;\n                }\n            }\n        }\n        for (let i = 0; i < 16; i++) {\n            this.masking[i] = k[i];\n            this.rotate[i] = k[16 + i] & 0x1f;\n        }\n    };\n    // These are the three 'f' functions. See RFC 2144, section 2.2.\n    function f1(d, m, r) {\n        const t = m + d;\n        const I = (t << r) | (t >>> (32 - r));\n        return ((sBox[0][I >>> 24] ^ sBox[1][(I >>> 16) & 255]) - sBox[2][(I >>> 8) & 255]) + sBox[3][I & 255];\n    }\n    function f2(d, m, r) {\n        const t = m ^ d;\n        const I = (t << r) | (t >>> (32 - r));\n        return ((sBox[0][I >>> 24] - sBox[1][(I >>> 16) & 255]) + sBox[2][(I >>> 8) & 255]) ^ sBox[3][I & 255];\n    }\n    function f3(d, m, r) {\n        const t = m - d;\n        const I = (t << r) | (t >>> (32 - r));\n        return ((sBox[0][I >>> 24] + sBox[1][(I >>> 16) & 255]) ^ sBox[2][(I >>> 8) & 255]) - sBox[3][I & 255];\n    }\n    const sBox = new Array(8);\n    sBox[0] = [\n        0x30fb40d4, 0x9fa0ff0b, 0x6beccd2f, 0x3f258c7a, 0x1e213f2f, 0x9c004dd3, 0x6003e540, 0xcf9fc949,\n        0xbfd4af27, 0x88bbbdb5, 0xe2034090, 0x98d09675, 0x6e63a0e0, 0x15c361d2, 0xc2e7661d, 0x22d4ff8e,\n        0x28683b6f, 0xc07fd059, 0xff2379c8, 0x775f50e2, 0x43c340d3, 0xdf2f8656, 0x887ca41a, 0xa2d2bd2d,\n        0xa1c9e0d6, 0x346c4819, 0x61b76d87, 0x22540f2f, 0x2abe32e1, 0xaa54166b, 0x22568e3a, 0xa2d341d0,\n        0x66db40c8, 0xa784392f, 0x004dff2f, 0x2db9d2de, 0x97943fac, 0x4a97c1d8, 0x527644b7, 0xb5f437a7,\n        0xb82cbaef, 0xd751d159, 0x6ff7f0ed, 0x5a097a1f, 0x827b68d0, 0x90ecf52e, 0x22b0c054, 0xbc8e5935,\n        0x4b6d2f7f, 0x50bb64a2, 0xd2664910, 0xbee5812d, 0xb7332290, 0xe93b159f, 0xb48ee411, 0x4bff345d,\n        0xfd45c240, 0xad31973f, 0xc4f6d02e, 0x55fc8165, 0xd5b1caad, 0xa1ac2dae, 0xa2d4b76d, 0xc19b0c50,\n        0x882240f2, 0x0c6e4f38, 0xa4e4bfd7, 0x4f5ba272, 0x564c1d2f, 0xc59c5319, 0xb949e354, 0xb04669fe,\n        0xb1b6ab8a, 0xc71358dd, 0x6385c545, 0x110f935d, 0x57538ad5, 0x6a390493, 0xe63d37e0, 0x2a54f6b3,\n        0x3a787d5f, 0x6276a0b5, 0x19a6fcdf, 0x7a42206a, 0x29f9d4d5, 0xf61b1891, 0xbb72275e, 0xaa508167,\n        0x38901091, 0xc6b505eb, 0x84c7cb8c, 0x2ad75a0f, 0x874a1427, 0xa2d1936b, 0x2ad286af, 0xaa56d291,\n        0xd7894360, 0x425c750d, 0x93b39e26, 0x187184c9, 0x6c00b32d, 0x73e2bb14, 0xa0bebc3c, 0x54623779,\n        0x64459eab, 0x3f328b82, 0x7718cf82, 0x59a2cea6, 0x04ee002e, 0x89fe78e6, 0x3fab0950, 0x325ff6c2,\n        0x81383f05, 0x6963c5c8, 0x76cb5ad6, 0xd49974c9, 0xca180dcf, 0x380782d5, 0xc7fa5cf6, 0x8ac31511,\n        0x35e79e13, 0x47da91d0, 0xf40f9086, 0xa7e2419e, 0x31366241, 0x051ef495, 0xaa573b04, 0x4a805d8d,\n        0x548300d0, 0x00322a3c, 0xbf64cddf, 0xba57a68e, 0x75c6372b, 0x50afd341, 0xa7c13275, 0x915a0bf5,\n        0x6b54bfab, 0x2b0b1426, 0xab4cc9d7, 0x449ccd82, 0xf7fbf265, 0xab85c5f3, 0x1b55db94, 0xaad4e324,\n        0xcfa4bd3f, 0x2deaa3e2, 0x9e204d02, 0xc8bd25ac, 0xeadf55b3, 0xd5bd9e98, 0xe31231b2, 0x2ad5ad6c,\n        0x954329de, 0xadbe4528, 0xd8710f69, 0xaa51c90f, 0xaa786bf6, 0x22513f1e, 0xaa51a79b, 0x2ad344cc,\n        0x7b5a41f0, 0xd37cfbad, 0x1b069505, 0x41ece491, 0xb4c332e6, 0x032268d4, 0xc9600acc, 0xce387e6d,\n        0xbf6bb16c, 0x6a70fb78, 0x0d03d9c9, 0xd4df39de, 0xe01063da, 0x4736f464, 0x5ad328d8, 0xb347cc96,\n        0x75bb0fc3, 0x98511bfb, 0x4ffbcc35, 0xb58bcf6a, 0xe11f0abc, 0xbfc5fe4a, 0xa70aec10, 0xac39570a,\n        0x3f04442f, 0x6188b153, 0xe0397a2e, 0x5727cb79, 0x9ceb418f, 0x1cacd68d, 0x2ad37c96, 0x0175cb9d,\n        0xc69dff09, 0xc75b65f0, 0xd9db40d8, 0xec0e7779, 0x4744ead4, 0xb11c3274, 0xdd24cb9e, 0x7e1c54bd,\n        0xf01144f9, 0xd2240eb1, 0x9675b3fd, 0xa3ac3755, 0xd47c27af, 0x51c85f4d, 0x56907596, 0xa5bb15e6,\n        0x580304f0, 0xca042cf1, 0x011a37ea, 0x8dbfaadb, 0x35ba3e4a, 0x3526ffa0, 0xc37b4d09, 0xbc306ed9,\n        0x98a52666, 0x5648f725, 0xff5e569d, 0x0ced63d0, 0x7c63b2cf, 0x700b45e1, 0xd5ea50f1, 0x85a92872,\n        0xaf1fbda7, 0xd4234870, 0xa7870bf3, 0x2d3b4d79, 0x42e04198, 0x0cd0ede7, 0x26470db8, 0xf881814c,\n        0x474d6ad7, 0x7c0c5e5c, 0xd1231959, 0x381b7298, 0xf5d2f4db, 0xab838653, 0x6e2f1e23, 0x83719c9e,\n        0xbd91e046, 0x9a56456e, 0xdc39200c, 0x20c8c571, 0x962bda1c, 0xe1e696ff, 0xb141ab08, 0x7cca89b9,\n        0x1a69e783, 0x02cc4843, 0xa2f7c579, 0x429ef47d, 0x427b169c, 0x5ac9f049, 0xdd8f0f00, 0x5c8165bf\n    ];\n    sBox[1] = [\n        0x1f201094, 0xef0ba75b, 0x69e3cf7e, 0x393f4380, 0xfe61cf7a, 0xeec5207a, 0x55889c94, 0x72fc0651,\n        0xada7ef79, 0x4e1d7235, 0xd55a63ce, 0xde0436ba, 0x99c430ef, 0x5f0c0794, 0x18dcdb7d, 0xa1d6eff3,\n        0xa0b52f7b, 0x59e83605, 0xee15b094, 0xe9ffd909, 0xdc440086, 0xef944459, 0xba83ccb3, 0xe0c3cdfb,\n        0xd1da4181, 0x3b092ab1, 0xf997f1c1, 0xa5e6cf7b, 0x01420ddb, 0xe4e7ef5b, 0x25a1ff41, 0xe180f806,\n        0x1fc41080, 0x179bee7a, 0xd37ac6a9, 0xfe5830a4, 0x98de8b7f, 0x77e83f4e, 0x79929269, 0x24fa9f7b,\n        0xe113c85b, 0xacc40083, 0xd7503525, 0xf7ea615f, 0x62143154, 0x0d554b63, 0x5d681121, 0xc866c359,\n        0x3d63cf73, 0xcee234c0, 0xd4d87e87, 0x5c672b21, 0x071f6181, 0x39f7627f, 0x361e3084, 0xe4eb573b,\n        0x602f64a4, 0xd63acd9c, 0x1bbc4635, 0x9e81032d, 0x2701f50c, 0x99847ab4, 0xa0e3df79, 0xba6cf38c,\n        0x10843094, 0x2537a95e, 0xf46f6ffe, 0xa1ff3b1f, 0x208cfb6a, 0x8f458c74, 0xd9e0a227, 0x4ec73a34,\n        0xfc884f69, 0x3e4de8df, 0xef0e0088, 0x3559648d, 0x8a45388c, 0x1d804366, 0x721d9bfd, 0xa58684bb,\n        0xe8256333, 0x844e8212, 0x128d8098, 0xfed33fb4, 0xce280ae1, 0x27e19ba5, 0xd5a6c252, 0xe49754bd,\n        0xc5d655dd, 0xeb667064, 0x77840b4d, 0xa1b6a801, 0x84db26a9, 0xe0b56714, 0x21f043b7, 0xe5d05860,\n        0x54f03084, 0x066ff472, 0xa31aa153, 0xdadc4755, 0xb5625dbf, 0x68561be6, 0x83ca6b94, 0x2d6ed23b,\n        0xeccf01db, 0xa6d3d0ba, 0xb6803d5c, 0xaf77a709, 0x33b4a34c, 0x397bc8d6, 0x5ee22b95, 0x5f0e5304,\n        0x81ed6f61, 0x20e74364, 0xb45e1378, 0xde18639b, 0x881ca122, 0xb96726d1, 0x8049a7e8, 0x22b7da7b,\n        0x5e552d25, 0x5272d237, 0x79d2951c, 0xc60d894c, 0x488cb402, 0x1ba4fe5b, 0xa4b09f6b, 0x1ca815cf,\n        0xa20c3005, 0x8871df63, 0xb9de2fcb, 0x0cc6c9e9, 0x0beeff53, 0xe3214517, 0xb4542835, 0x9f63293c,\n        0xee41e729, 0x6e1d2d7c, 0x50045286, 0x1e6685f3, 0xf33401c6, 0x30a22c95, 0x31a70850, 0x60930f13,\n        0x73f98417, 0xa1269859, 0xec645c44, 0x52c877a9, 0xcdff33a6, 0xa02b1741, 0x7cbad9a2, 0x2180036f,\n        0x50d99c08, 0xcb3f4861, 0xc26bd765, 0x64a3f6ab, 0x80342676, 0x25a75e7b, 0xe4e6d1fc, 0x20c710e6,\n        0xcdf0b680, 0x17844d3b, 0x31eef84d, 0x7e0824e4, 0x2ccb49eb, 0x846a3bae, 0x8ff77888, 0xee5d60f6,\n        0x7af75673, 0x2fdd5cdb, 0xa11631c1, 0x30f66f43, 0xb3faec54, 0x157fd7fa, 0xef8579cc, 0xd152de58,\n        0xdb2ffd5e, 0x8f32ce19, 0x306af97a, 0x02f03ef8, 0x99319ad5, 0xc242fa0f, 0xa7e3ebb0, 0xc68e4906,\n        0xb8da230c, 0x80823028, 0xdcdef3c8, 0xd35fb171, 0x088a1bc8, 0xbec0c560, 0x61a3c9e8, 0xbca8f54d,\n        0xc72feffa, 0x22822e99, 0x82c570b4, 0xd8d94e89, 0x8b1c34bc, 0x301e16e6, 0x273be979, 0xb0ffeaa6,\n        0x61d9b8c6, 0x00b24869, 0xb7ffce3f, 0x08dc283b, 0x43daf65a, 0xf7e19798, 0x7619b72f, 0x8f1c9ba4,\n        0xdc8637a0, 0x16a7d3b1, 0x9fc393b7, 0xa7136eeb, 0xc6bcc63e, 0x1a513742, 0xef6828bc, 0x520365d6,\n        0x2d6a77ab, 0x3527ed4b, 0x821fd216, 0x095c6e2e, 0xdb92f2fb, 0x5eea29cb, 0x145892f5, 0x91584f7f,\n        0x5483697b, 0x2667a8cc, 0x85196048, 0x8c4bacea, 0x833860d4, 0x0d23e0f9, 0x6c387e8a, 0x0ae6d249,\n        0xb284600c, 0xd835731d, 0xdcb1c647, 0xac4c56ea, 0x3ebd81b3, 0x230eabb0, 0x6438bc87, 0xf0b5b1fa,\n        0x8f5ea2b3, 0xfc184642, 0x0a036b7a, 0x4fb089bd, 0x649da589, 0xa345415e, 0x5c038323, 0x3e5d3bb9,\n        0x43d79572, 0x7e6dd07c, 0x06dfdf1e, 0x6c6cc4ef, 0x7160a539, 0x73bfbe70, 0x83877605, 0x4523ecf1\n    ];\n    sBox[2] = [\n        0x8defc240, 0x25fa5d9f, 0xeb903dbf, 0xe810c907, 0x47607fff, 0x369fe44b, 0x8c1fc644, 0xaececa90,\n        0xbeb1f9bf, 0xeefbcaea, 0xe8cf1950, 0x51df07ae, 0x920e8806, 0xf0ad0548, 0xe13c8d83, 0x927010d5,\n        0x11107d9f, 0x07647db9, 0xb2e3e4d4, 0x3d4f285e, 0xb9afa820, 0xfade82e0, 0xa067268b, 0x8272792e,\n        0x553fb2c0, 0x489ae22b, 0xd4ef9794, 0x125e3fbc, 0x21fffcee, 0x825b1bfd, 0x9255c5ed, 0x1257a240,\n        0x4e1a8302, 0xbae07fff, 0x528246e7, 0x8e57140e, 0x3373f7bf, 0x8c9f8188, 0xa6fc4ee8, 0xc982b5a5,\n        0xa8c01db7, 0x579fc264, 0x67094f31, 0xf2bd3f5f, 0x40fff7c1, 0x1fb78dfc, 0x8e6bd2c1, 0x437be59b,\n        0x99b03dbf, 0xb5dbc64b, 0x638dc0e6, 0x55819d99, 0xa197c81c, 0x4a012d6e, 0xc5884a28, 0xccc36f71,\n        0xb843c213, 0x6c0743f1, 0x8309893c, 0x0feddd5f, 0x2f7fe850, 0xd7c07f7e, 0x02507fbf, 0x5afb9a04,\n        0xa747d2d0, 0x1651192e, 0xaf70bf3e, 0x58c31380, 0x5f98302e, 0x727cc3c4, 0x0a0fb402, 0x0f7fef82,\n        0x8c96fdad, 0x5d2c2aae, 0x8ee99a49, 0x50da88b8, 0x8427f4a0, 0x1eac5790, 0x796fb449, 0x8252dc15,\n        0xefbd7d9b, 0xa672597d, 0xada840d8, 0x45f54504, 0xfa5d7403, 0xe83ec305, 0x4f91751a, 0x925669c2,\n        0x23efe941, 0xa903f12e, 0x60270df2, 0x0276e4b6, 0x94fd6574, 0x927985b2, 0x8276dbcb, 0x02778176,\n        0xf8af918d, 0x4e48f79e, 0x8f616ddf, 0xe29d840e, 0x842f7d83, 0x340ce5c8, 0x96bbb682, 0x93b4b148,\n        0xef303cab, 0x984faf28, 0x779faf9b, 0x92dc560d, 0x224d1e20, 0x8437aa88, 0x7d29dc96, 0x2756d3dc,\n        0x8b907cee, 0xb51fd240, 0xe7c07ce3, 0xe566b4a1, 0xc3e9615e, 0x3cf8209d, 0x6094d1e3, 0xcd9ca341,\n        0x5c76460e, 0x00ea983b, 0xd4d67881, 0xfd47572c, 0xf76cedd9, 0xbda8229c, 0x127dadaa, 0x438a074e,\n        0x1f97c090, 0x081bdb8a, 0x93a07ebe, 0xb938ca15, 0x97b03cff, 0x3dc2c0f8, 0x8d1ab2ec, 0x64380e51,\n        0x68cc7bfb, 0xd90f2788, 0x12490181, 0x5de5ffd4, 0xdd7ef86a, 0x76a2e214, 0xb9a40368, 0x925d958f,\n        0x4b39fffa, 0xba39aee9, 0xa4ffd30b, 0xfaf7933b, 0x6d498623, 0x193cbcfa, 0x27627545, 0x825cf47a,\n        0x61bd8ba0, 0xd11e42d1, 0xcead04f4, 0x127ea392, 0x10428db7, 0x8272a972, 0x9270c4a8, 0x127de50b,\n        0x285ba1c8, 0x3c62f44f, 0x35c0eaa5, 0xe805d231, 0x428929fb, 0xb4fcdf82, 0x4fb66a53, 0x0e7dc15b,\n        0x1f081fab, 0x108618ae, 0xfcfd086d, 0xf9ff2889, 0x694bcc11, 0x236a5cae, 0x12deca4d, 0x2c3f8cc5,\n        0xd2d02dfe, 0xf8ef5896, 0xe4cf52da, 0x95155b67, 0x494a488c, 0xb9b6a80c, 0x5c8f82bc, 0x89d36b45,\n        0x3a609437, 0xec00c9a9, 0x44715253, 0x0a874b49, 0xd773bc40, 0x7c34671c, 0x02717ef6, 0x4feb5536,\n        0xa2d02fff, 0xd2bf60c4, 0xd43f03c0, 0x50b4ef6d, 0x07478cd1, 0x006e1888, 0xa2e53f55, 0xb9e6d4bc,\n        0xa2048016, 0x97573833, 0xd7207d67, 0xde0f8f3d, 0x72f87b33, 0xabcc4f33, 0x7688c55d, 0x7b00a6b0,\n        0x947b0001, 0x570075d2, 0xf9bb88f8, 0x8942019e, 0x4264a5ff, 0x856302e0, 0x72dbd92b, 0xee971b69,\n        0x6ea22fde, 0x5f08ae2b, 0xaf7a616d, 0xe5c98767, 0xcf1febd2, 0x61efc8c2, 0xf1ac2571, 0xcc8239c2,\n        0x67214cb8, 0xb1e583d1, 0xb7dc3e62, 0x7f10bdce, 0xf90a5c38, 0x0ff0443d, 0x606e6dc6, 0x60543a49,\n        0x5727c148, 0x2be98a1d, 0x8ab41738, 0x20e1be24, 0xaf96da0f, 0x68458425, 0x99833be5, 0x600d457d,\n        0x282f9350, 0x8334b362, 0xd91d1120, 0x2b6d8da0, 0x642b1e31, 0x9c305a00, 0x52bce688, 0x1b03588a,\n        0xf7baefd5, 0x4142ed9c, 0xa4315c11, 0x83323ec5, 0xdfef4636, 0xa133c501, 0xe9d3531c, 0xee353783\n    ];\n    sBox[3] = [\n        0x9db30420, 0x1fb6e9de, 0xa7be7bef, 0xd273a298, 0x4a4f7bdb, 0x64ad8c57, 0x85510443, 0xfa020ed1,\n        0x7e287aff, 0xe60fb663, 0x095f35a1, 0x79ebf120, 0xfd059d43, 0x6497b7b1, 0xf3641f63, 0x241e4adf,\n        0x28147f5f, 0x4fa2b8cd, 0xc9430040, 0x0cc32220, 0xfdd30b30, 0xc0a5374f, 0x1d2d00d9, 0x24147b15,\n        0xee4d111a, 0x0fca5167, 0x71ff904c, 0x2d195ffe, 0x1a05645f, 0x0c13fefe, 0x081b08ca, 0x05170121,\n        0x80530100, 0xe83e5efe, 0xac9af4f8, 0x7fe72701, 0xd2b8ee5f, 0x06df4261, 0xbb9e9b8a, 0x7293ea25,\n        0xce84ffdf, 0xf5718801, 0x3dd64b04, 0xa26f263b, 0x7ed48400, 0x547eebe6, 0x446d4ca0, 0x6cf3d6f5,\n        0x2649abdf, 0xaea0c7f5, 0x36338cc1, 0x503f7e93, 0xd3772061, 0x11b638e1, 0x72500e03, 0xf80eb2bb,\n        0xabe0502e, 0xec8d77de, 0x57971e81, 0xe14f6746, 0xc9335400, 0x6920318f, 0x081dbb99, 0xffc304a5,\n        0x4d351805, 0x7f3d5ce3, 0xa6c866c6, 0x5d5bcca9, 0xdaec6fea, 0x9f926f91, 0x9f46222f, 0x3991467d,\n        0xa5bf6d8e, 0x1143c44f, 0x43958302, 0xd0214eeb, 0x022083b8, 0x3fb6180c, 0x18f8931e, 0x281658e6,\n        0x26486e3e, 0x8bd78a70, 0x7477e4c1, 0xb506e07c, 0xf32d0a25, 0x79098b02, 0xe4eabb81, 0x28123b23,\n        0x69dead38, 0x1574ca16, 0xdf871b62, 0x211c40b7, 0xa51a9ef9, 0x0014377b, 0x041e8ac8, 0x09114003,\n        0xbd59e4d2, 0xe3d156d5, 0x4fe876d5, 0x2f91a340, 0x557be8de, 0x00eae4a7, 0x0ce5c2ec, 0x4db4bba6,\n        0xe756bdff, 0xdd3369ac, 0xec17b035, 0x06572327, 0x99afc8b0, 0x56c8c391, 0x6b65811c, 0x5e146119,\n        0x6e85cb75, 0xbe07c002, 0xc2325577, 0x893ff4ec, 0x5bbfc92d, 0xd0ec3b25, 0xb7801ab7, 0x8d6d3b24,\n        0x20c763ef, 0xc366a5fc, 0x9c382880, 0x0ace3205, 0xaac9548a, 0xeca1d7c7, 0x041afa32, 0x1d16625a,\n        0x6701902c, 0x9b757a54, 0x31d477f7, 0x9126b031, 0x36cc6fdb, 0xc70b8b46, 0xd9e66a48, 0x56e55a79,\n        0x026a4ceb, 0x52437eff, 0x2f8f76b4, 0x0df980a5, 0x8674cde3, 0xedda04eb, 0x17a9be04, 0x2c18f4df,\n        0xb7747f9d, 0xab2af7b4, 0xefc34d20, 0x2e096b7c, 0x1741a254, 0xe5b6a035, 0x213d42f6, 0x2c1c7c26,\n        0x61c2f50f, 0x6552daf9, 0xd2c231f8, 0x25130f69, 0xd8167fa2, 0x0418f2c8, 0x001a96a6, 0x0d1526ab,\n        0x63315c21, 0x5e0a72ec, 0x49bafefd, 0x187908d9, 0x8d0dbd86, 0x311170a7, 0x3e9b640c, 0xcc3e10d7,\n        0xd5cad3b6, 0x0caec388, 0xf73001e1, 0x6c728aff, 0x71eae2a1, 0x1f9af36e, 0xcfcbd12f, 0xc1de8417,\n        0xac07be6b, 0xcb44a1d8, 0x8b9b0f56, 0x013988c3, 0xb1c52fca, 0xb4be31cd, 0xd8782806, 0x12a3a4e2,\n        0x6f7de532, 0x58fd7eb6, 0xd01ee900, 0x24adffc2, 0xf4990fc5, 0x9711aac5, 0x001d7b95, 0x82e5e7d2,\n        0x109873f6, 0x00613096, 0xc32d9521, 0xada121ff, 0x29908415, 0x7fbb977f, 0xaf9eb3db, 0x29c9ed2a,\n        0x5ce2a465, 0xa730f32c, 0xd0aa3fe8, 0x8a5cc091, 0xd49e2ce7, 0x0ce454a9, 0xd60acd86, 0x015f1919,\n        0x77079103, 0xdea03af6, 0x78a8565e, 0xdee356df, 0x21f05cbe, 0x8b75e387, 0xb3c50651, 0xb8a5c3ef,\n        0xd8eeb6d2, 0xe523be77, 0xc2154529, 0x2f69efdf, 0xafe67afb, 0xf470c4b2, 0xf3e0eb5b, 0xd6cc9876,\n        0x39e4460c, 0x1fda8538, 0x1987832f, 0xca007367, 0xa99144f8, 0x296b299e, 0x492fc295, 0x9266beab,\n        0xb5676e69, 0x9bd3ddda, 0xdf7e052f, 0xdb25701c, 0x1b5e51ee, 0xf65324e6, 0x6afce36c, 0x0316cc04,\n        0x8644213e, 0xb7dc59d0, 0x7965291f, 0xccd6fd43, 0x41823979, 0x932bcdf6, 0xb657c34d, 0x4edfd282,\n        0x7ae5290c, 0x3cb9536b, 0x851e20fe, 0x9833557e, 0x13ecf0b0, 0xd3ffb372, 0x3f85c5c1, 0x0aef7ed2\n    ];\n    sBox[4] = [\n        0x7ec90c04, 0x2c6e74b9, 0x9b0e66df, 0xa6337911, 0xb86a7fff, 0x1dd358f5, 0x44dd9d44, 0x1731167f,\n        0x08fbf1fa, 0xe7f511cc, 0xd2051b00, 0x735aba00, 0x2ab722d8, 0x386381cb, 0xacf6243a, 0x69befd7a,\n        0xe6a2e77f, 0xf0c720cd, 0xc4494816, 0xccf5c180, 0x38851640, 0x15b0a848, 0xe68b18cb, 0x4caadeff,\n        0x5f480a01, 0x0412b2aa, 0x259814fc, 0x41d0efe2, 0x4e40b48d, 0x248eb6fb, 0x8dba1cfe, 0x41a99b02,\n        0x1a550a04, 0xba8f65cb, 0x7251f4e7, 0x95a51725, 0xc106ecd7, 0x97a5980a, 0xc539b9aa, 0x4d79fe6a,\n        0xf2f3f763, 0x68af8040, 0xed0c9e56, 0x11b4958b, 0xe1eb5a88, 0x8709e6b0, 0xd7e07156, 0x4e29fea7,\n        0x6366e52d, 0x02d1c000, 0xc4ac8e05, 0x9377f571, 0x0c05372a, 0x578535f2, 0x2261be02, 0xd642a0c9,\n        0xdf13a280, 0x74b55bd2, 0x682199c0, 0xd421e5ec, 0x53fb3ce8, 0xc8adedb3, 0x28a87fc9, 0x3d959981,\n        0x5c1ff900, 0xfe38d399, 0x0c4eff0b, 0x062407ea, 0xaa2f4fb1, 0x4fb96976, 0x90c79505, 0xb0a8a774,\n        0xef55a1ff, 0xe59ca2c2, 0xa6b62d27, 0xe66a4263, 0xdf65001f, 0x0ec50966, 0xdfdd55bc, 0x29de0655,\n        0x911e739a, 0x17af8975, 0x32c7911c, 0x89f89468, 0x0d01e980, 0x524755f4, 0x03b63cc9, 0x0cc844b2,\n        0xbcf3f0aa, 0x87ac36e9, 0xe53a7426, 0x01b3d82b, 0x1a9e7449, 0x64ee2d7e, 0xcddbb1da, 0x01c94910,\n        0xb868bf80, 0x0d26f3fd, 0x9342ede7, 0x04a5c284, 0x636737b6, 0x50f5b616, 0xf24766e3, 0x8eca36c1,\n        0x136e05db, 0xfef18391, 0xfb887a37, 0xd6e7f7d4, 0xc7fb7dc9, 0x3063fcdf, 0xb6f589de, 0xec2941da,\n        0x26e46695, 0xb7566419, 0xf654efc5, 0xd08d58b7, 0x48925401, 0xc1bacb7f, 0xe5ff550f, 0xb6083049,\n        0x5bb5d0e8, 0x87d72e5a, 0xab6a6ee1, 0x223a66ce, 0xc62bf3cd, 0x9e0885f9, 0x68cb3e47, 0x086c010f,\n        0xa21de820, 0xd18b69de, 0xf3f65777, 0xfa02c3f6, 0x407edac3, 0xcbb3d550, 0x1793084d, 0xb0d70eba,\n        0x0ab378d5, 0xd951fb0c, 0xded7da56, 0x4124bbe4, 0x94ca0b56, 0x0f5755d1, 0xe0e1e56e, 0x6184b5be,\n        0x580a249f, 0x94f74bc0, 0xe327888e, 0x9f7b5561, 0xc3dc0280, 0x05687715, 0x646c6bd7, 0x44904db3,\n        0x66b4f0a3, 0xc0f1648a, 0x697ed5af, 0x49e92ff6, 0x309e374f, 0x2cb6356a, 0x85808573, 0x4991f840,\n        0x76f0ae02, 0x083be84d, 0x28421c9a, 0x44489406, 0x736e4cb8, 0xc1092910, 0x8bc95fc6, 0x7d869cf4,\n        0x134f616f, 0x2e77118d, 0xb31b2be1, 0xaa90b472, 0x3ca5d717, 0x7d161bba, 0x9cad9010, 0xaf462ba2,\n        0x9fe459d2, 0x45d34559, 0xd9f2da13, 0xdbc65487, 0xf3e4f94e, 0x176d486f, 0x097c13ea, 0x631da5c7,\n        0x445f7382, 0x175683f4, 0xcdc66a97, 0x70be0288, 0xb3cdcf72, 0x6e5dd2f3, 0x20936079, 0x459b80a5,\n        0xbe60e2db, 0xa9c23101, 0xeba5315c, 0x224e42f2, 0x1c5c1572, 0xf6721b2c, 0x1ad2fff3, 0x8c25404e,\n        0x324ed72f, 0x4067b7fd, 0x0523138e, 0x5ca3bc78, 0xdc0fd66e, 0x75922283, 0x784d6b17, 0x58ebb16e,\n        0x44094f85, 0x3f481d87, 0xfcfeae7b, 0x77b5ff76, 0x8c2302bf, 0xaaf47556, 0x5f46b02a, 0x2b092801,\n        0x3d38f5f7, 0x0ca81f36, 0x52af4a8a, 0x66d5e7c0, 0xdf3b0874, 0x95055110, 0x1b5ad7a8, 0xf61ed5ad,\n        0x6cf6e479, 0x20758184, 0xd0cefa65, 0x88f7be58, 0x4a046826, 0x0ff6f8f3, 0xa09c7f70, 0x5346aba0,\n        0x5ce96c28, 0xe176eda3, 0x6bac307f, 0x376829d2, 0x85360fa9, 0x17e3fe2a, 0x24b79767, 0xf5a96b20,\n        0xd6cd2595, 0x68ff1ebf, 0x7555442c, 0xf19f06be, 0xf9e0659a, 0xeeb9491d, 0x34010718, 0xbb30cab8,\n        0xe822fe15, 0x88570983, 0x750e6249, 0xda627e55, 0x5e76ffa8, 0xb1534546, 0x6d47de08, 0xefe9e7d4\n    ];\n    sBox[5] = [\n        0xf6fa8f9d, 0x2cac6ce1, 0x4ca34867, 0xe2337f7c, 0x95db08e7, 0x016843b4, 0xeced5cbc, 0x325553ac,\n        0xbf9f0960, 0xdfa1e2ed, 0x83f0579d, 0x63ed86b9, 0x1ab6a6b8, 0xde5ebe39, 0xf38ff732, 0x8989b138,\n        0x33f14961, 0xc01937bd, 0xf506c6da, 0xe4625e7e, 0xa308ea99, 0x4e23e33c, 0x79cbd7cc, 0x48a14367,\n        0xa3149619, 0xfec94bd5, 0xa114174a, 0xeaa01866, 0xa084db2d, 0x09a8486f, 0xa888614a, 0x2900af98,\n        0x01665991, 0xe1992863, 0xc8f30c60, 0x2e78ef3c, 0xd0d51932, 0xcf0fec14, 0xf7ca07d2, 0xd0a82072,\n        0xfd41197e, 0x9305a6b0, 0xe86be3da, 0x74bed3cd, 0x372da53c, 0x4c7f4448, 0xdab5d440, 0x6dba0ec3,\n        0x083919a7, 0x9fbaeed9, 0x49dbcfb0, 0x4e670c53, 0x5c3d9c01, 0x64bdb941, 0x2c0e636a, 0xba7dd9cd,\n        0xea6f7388, 0xe70bc762, 0x35f29adb, 0x5c4cdd8d, 0xf0d48d8c, 0xb88153e2, 0x08a19866, 0x1ae2eac8,\n        0x284caf89, 0xaa928223, 0x9334be53, 0x3b3a21bf, 0x16434be3, 0x9aea3906, 0xefe8c36e, 0xf890cdd9,\n        0x80226dae, 0xc340a4a3, 0xdf7e9c09, 0xa694a807, 0x5b7c5ecc, 0x221db3a6, 0x9a69a02f, 0x68818a54,\n        0xceb2296f, 0x53c0843a, 0xfe893655, 0x25bfe68a, 0xb4628abc, 0xcf222ebf, 0x25ac6f48, 0xa9a99387,\n        0x53bddb65, 0xe76ffbe7, 0xe967fd78, 0x0ba93563, 0x8e342bc1, 0xe8a11be9, 0x4980740d, 0xc8087dfc,\n        0x8de4bf99, 0xa11101a0, 0x7fd37975, 0xda5a26c0, 0xe81f994f, 0x9528cd89, 0xfd339fed, 0xb87834bf,\n        0x5f04456d, 0x22258698, 0xc9c4c83b, 0x2dc156be, 0x4f628daa, 0x57f55ec5, 0xe2220abe, 0xd2916ebf,\n        0x4ec75b95, 0x24f2c3c0, 0x42d15d99, 0xcd0d7fa0, 0x7b6e27ff, 0xa8dc8af0, 0x7345c106, 0xf41e232f,\n        0x35162386, 0xe6ea8926, 0x3333b094, 0x157ec6f2, 0x372b74af, 0x692573e4, 0xe9a9d848, 0xf3160289,\n        0x3a62ef1d, 0xa787e238, 0xf3a5f676, 0x74364853, 0x20951063, 0x4576698d, 0xb6fad407, 0x592af950,\n        0x36f73523, 0x4cfb6e87, 0x7da4cec0, 0x6c152daa, 0xcb0396a8, 0xc50dfe5d, 0xfcd707ab, 0x0921c42f,\n        0x89dff0bb, 0x5fe2be78, 0x448f4f33, 0x754613c9, 0x2b05d08d, 0x48b9d585, 0xdc049441, 0xc8098f9b,\n        0x7dede786, 0xc39a3373, 0x42410005, 0x6a091751, 0x0ef3c8a6, 0x890072d6, 0x28207682, 0xa9a9f7be,\n        0xbf32679d, 0xd45b5b75, 0xb353fd00, 0xcbb0e358, 0x830f220a, 0x1f8fb214, 0xd372cf08, 0xcc3c4a13,\n        0x8cf63166, 0x061c87be, 0x88c98f88, 0x6062e397, 0x47cf8e7a, 0xb6c85283, 0x3cc2acfb, 0x3fc06976,\n        0x4e8f0252, 0x64d8314d, 0xda3870e3, 0x1e665459, 0xc10908f0, 0x513021a5, 0x6c5b68b7, 0x822f8aa0,\n        0x3007cd3e, 0x74719eef, 0xdc872681, 0x073340d4, 0x7e432fd9, 0x0c5ec241, 0x8809286c, 0xf592d891,\n        0x08a930f6, 0x957ef305, 0xb7fbffbd, 0xc266e96f, 0x6fe4ac98, 0xb173ecc0, 0xbc60b42a, 0x953498da,\n        0xfba1ae12, 0x2d4bd736, 0x0f25faab, 0xa4f3fceb, 0xe2969123, 0x257f0c3d, 0x9348af49, 0x361400bc,\n        0xe8816f4a, 0x3814f200, 0xa3f94043, 0x9c7a54c2, 0xbc704f57, 0xda41e7f9, 0xc25ad33a, 0x54f4a084,\n        0xb17f5505, 0x59357cbe, 0xedbd15c8, 0x7f97c5ab, 0xba5ac7b5, 0xb6f6deaf, 0x3a479c3a, 0x5302da25,\n        0x653d7e6a, 0x54268d49, 0x51a477ea, 0x5017d55b, 0xd7d25d88, 0x44136c76, 0x0404a8c8, 0xb8e5a121,\n        0xb81a928a, 0x60ed5869, 0x97c55b96, 0xeaec991b, 0x29935913, 0x01fdb7f1, 0x088e8dfa, 0x9ab6f6f5,\n        0x3b4cbf9f, 0x4a5de3ab, 0xe6051d35, 0xa0e1d855, 0xd36b4cf1, 0xf544edeb, 0xb0e93524, 0xbebb8fbd,\n        0xa2d762cf, 0x49c92f54, 0x38b5f331, 0x7128a454, 0x48392905, 0xa65b1db8, 0x851c97bd, 0xd675cf2f\n    ];\n    sBox[6] = [\n        0x85e04019, 0x332bf567, 0x662dbfff, 0xcfc65693, 0x2a8d7f6f, 0xab9bc912, 0xde6008a1, 0x2028da1f,\n        0x0227bce7, 0x4d642916, 0x18fac300, 0x50f18b82, 0x2cb2cb11, 0xb232e75c, 0x4b3695f2, 0xb28707de,\n        0xa05fbcf6, 0xcd4181e9, 0xe150210c, 0xe24ef1bd, 0xb168c381, 0xfde4e789, 0x5c79b0d8, 0x1e8bfd43,\n        0x4d495001, 0x38be4341, 0x913cee1d, 0x92a79c3f, 0x089766be, 0xbaeeadf4, 0x1286becf, 0xb6eacb19,\n        0x2660c200, 0x7565bde4, 0x64241f7a, 0x8248dca9, 0xc3b3ad66, 0x28136086, 0x0bd8dfa8, 0x356d1cf2,\n        0x107789be, 0xb3b2e9ce, 0x0502aa8f, 0x0bc0351e, 0x166bf52a, 0xeb12ff82, 0xe3486911, 0xd34d7516,\n        0x4e7b3aff, 0x5f43671b, 0x9cf6e037, 0x4981ac83, 0x334266ce, 0x8c9341b7, 0xd0d854c0, 0xcb3a6c88,\n        0x47bc2829, 0x4725ba37, 0xa66ad22b, 0x7ad61f1e, 0x0c5cbafa, 0x4437f107, 0xb6e79962, 0x42d2d816,\n        0x0a961288, 0xe1a5c06e, 0x13749e67, 0x72fc081a, 0xb1d139f7, 0xf9583745, 0xcf19df58, 0xbec3f756,\n        0xc06eba30, 0x07211b24, 0x45c28829, 0xc95e317f, 0xbc8ec511, 0x38bc46e9, 0xc6e6fa14, 0xbae8584a,\n        0xad4ebc46, 0x468f508b, 0x7829435f, 0xf124183b, 0x821dba9f, 0xaff60ff4, 0xea2c4e6d, 0x16e39264,\n        0x92544a8b, 0x009b4fc3, 0xaba68ced, 0x9ac96f78, 0x06a5b79a, 0xb2856e6e, 0x1aec3ca9, 0xbe838688,\n        0x0e0804e9, 0x55f1be56, 0xe7e5363b, 0xb3a1f25d, 0xf7debb85, 0x61fe033c, 0x16746233, 0x3c034c28,\n        0xda6d0c74, 0x79aac56c, 0x3ce4e1ad, 0x51f0c802, 0x98f8f35a, 0x1626a49f, 0xeed82b29, 0x1d382fe3,\n        0x0c4fb99a, 0xbb325778, 0x3ec6d97b, 0x6e77a6a9, 0xcb658b5c, 0xd45230c7, 0x2bd1408b, 0x60c03eb7,\n        0xb9068d78, 0xa33754f4, 0xf430c87d, 0xc8a71302, 0xb96d8c32, 0xebd4e7be, 0xbe8b9d2d, 0x7979fb06,\n        0xe7225308, 0x8b75cf77, 0x11ef8da4, 0xe083c858, 0x8d6b786f, 0x5a6317a6, 0xfa5cf7a0, 0x5dda0033,\n        0xf28ebfb0, 0xf5b9c310, 0xa0eac280, 0x08b9767a, 0xa3d9d2b0, 0x79d34217, 0x021a718d, 0x9ac6336a,\n        0x2711fd60, 0x438050e3, 0x069908a8, 0x3d7fedc4, 0x826d2bef, 0x4eeb8476, 0x488dcf25, 0x36c9d566,\n        0x28e74e41, 0xc2610aca, 0x3d49a9cf, 0xbae3b9df, 0xb65f8de6, 0x92aeaf64, 0x3ac7d5e6, 0x9ea80509,\n        0xf22b017d, 0xa4173f70, 0xdd1e16c3, 0x15e0d7f9, 0x50b1b887, 0x2b9f4fd5, 0x625aba82, 0x6a017962,\n        0x2ec01b9c, 0x15488aa9, 0xd716e740, 0x40055a2c, 0x93d29a22, 0xe32dbf9a, 0x058745b9, 0x3453dc1e,\n        0xd699296e, 0x496cff6f, 0x1c9f4986, 0xdfe2ed07, 0xb87242d1, 0x19de7eae, 0x053e561a, 0x15ad6f8c,\n        0x66626c1c, 0x7154c24c, 0xea082b2a, 0x93eb2939, 0x17dcb0f0, 0x58d4f2ae, 0x9ea294fb, 0x52cf564c,\n        0x9883fe66, 0x2ec40581, 0x763953c3, 0x01d6692e, 0xd3a0c108, 0xa1e7160e, 0xe4f2dfa6, 0x693ed285,\n        0x74904698, 0x4c2b0edd, 0x4f757656, 0x5d393378, 0xa132234f, 0x3d321c5d, 0xc3f5e194, 0x4b269301,\n        0xc79f022f, 0x3c997e7e, 0x5e4f9504, 0x3ffafbbd, 0x76f7ad0e, 0x296693f4, 0x3d1fce6f, 0xc61e45be,\n        0xd3b5ab34, 0xf72bf9b7, 0x1b0434c0, 0x4e72b567, 0x5592a33d, 0xb5229301, 0xcfd2a87f, 0x60aeb767,\n        0x1814386b, 0x30bcc33d, 0x38a0c07d, 0xfd1606f2, 0xc363519b, 0x589dd390, 0x5479f8e6, 0x1cb8d647,\n        0x97fd61a9, 0xea7759f4, 0x2d57539d, 0x569a58cf, 0xe84e63ad, 0x462e1b78, 0x6580f87e, 0xf3817914,\n        0x91da55f4, 0x40a230f3, 0xd1988f35, 0xb6e318d2, 0x3ffa50bc, 0x3d40f021, 0xc3c0bdae, 0x4958c24c,\n        0x518f36b2, 0x84b1d370, 0x0fedce83, 0x878ddada, 0xf2a279c7, 0x94e01be8, 0x90716f4b, 0x954b8aa3\n    ];\n    sBox[7] = [\n        0xe216300d, 0xbbddfffc, 0xa7ebdabd, 0x35648095, 0x7789f8b7, 0xe6c1121b, 0x0e241600, 0x052ce8b5,\n        0x11a9cfb0, 0xe5952f11, 0xece7990a, 0x9386d174, 0x2a42931c, 0x76e38111, 0xb12def3a, 0x37ddddfc,\n        0xde9adeb1, 0x0a0cc32c, 0xbe197029, 0x84a00940, 0xbb243a0f, 0xb4d137cf, 0xb44e79f0, 0x049eedfd,\n        0x0b15a15d, 0x480d3168, 0x8bbbde5a, 0x669ded42, 0xc7ece831, 0x3f8f95e7, 0x72df191b, 0x7580330d,\n        0x94074251, 0x5c7dcdfa, 0xabbe6d63, 0xaa402164, 0xb301d40a, 0x02e7d1ca, 0x53571dae, 0x7a3182a2,\n        0x12a8ddec, 0xfdaa335d, 0x176f43e8, 0x71fb46d4, 0x38129022, 0xce949ad4, 0xb84769ad, 0x965bd862,\n        0x82f3d055, 0x66fb9767, 0x15b80b4e, 0x1d5b47a0, 0x4cfde06f, 0xc28ec4b8, 0x57e8726e, 0x647a78fc,\n        0x99865d44, 0x608bd593, 0x6c200e03, 0x39dc5ff6, 0x5d0b00a3, 0xae63aff2, 0x7e8bd632, 0x70108c0c,\n        0xbbd35049, 0x2998df04, 0x980cf42a, 0x9b6df491, 0x9e7edd53, 0x06918548, 0x58cb7e07, 0x3b74ef2e,\n        0x522fffb1, 0xd24708cc, 0x1c7e27cd, 0xa4eb215b, 0x3cf1d2e2, 0x19b47a38, 0x424f7618, 0x35856039,\n        0x9d17dee7, 0x27eb35e6, 0xc9aff67b, 0x36baf5b8, 0x09c467cd, 0xc18910b1, 0xe11dbf7b, 0x06cd1af8,\n        0x7170c608, 0x2d5e3354, 0xd4de495a, 0x64c6d006, 0xbcc0c62c, 0x3dd00db3, 0x708f8f34, 0x77d51b42,\n        0x264f620f, 0x24b8d2bf, 0x15c1b79e, 0x46a52564, 0xf8d7e54e, 0x3e378160, 0x7895cda5, 0x859c15a5,\n        0xe6459788, 0xc37bc75f, 0xdb07ba0c, 0x0676a3ab, 0x7f229b1e, 0x31842e7b, 0x24259fd7, 0xf8bef472,\n        0x835ffcb8, 0x6df4c1f2, 0x96f5b195, 0xfd0af0fc, 0xb0fe134c, 0xe2506d3d, 0x4f9b12ea, 0xf215f225,\n        0xa223736f, 0x9fb4c428, 0x25d04979, 0x34c713f8, 0xc4618187, 0xea7a6e98, 0x7cd16efc, 0x1436876c,\n        0xf1544107, 0xbedeee14, 0x56e9af27, 0xa04aa441, 0x3cf7c899, 0x92ecbae6, 0xdd67016d, 0x151682eb,\n        0xa842eedf, 0xfdba60b4, 0xf1907b75, 0x20e3030f, 0x24d8c29e, 0xe139673b, 0xefa63fb8, 0x71873054,\n        0xb6f2cf3b, 0x9f326442, 0xcb15a4cc, 0xb01a4504, 0xf1e47d8d, 0x844a1be5, 0xbae7dfdc, 0x42cbda70,\n        0xcd7dae0a, 0x57e85b7a, 0xd53f5af6, 0x20cf4d8c, 0xcea4d428, 0x79d130a4, 0x3486ebfb, 0x33d3cddc,\n        0x77853b53, 0x37effcb5, 0xc5068778, 0xe580b3e6, 0x4e68b8f4, 0xc5c8b37e, 0x0d809ea2, 0x398feb7c,\n        0x132a4f94, 0x43b7950e, 0x2fee7d1c, 0x223613bd, 0xdd06caa2, 0x37df932b, 0xc4248289, 0xacf3ebc3,\n        0x5715f6b7, 0xef3478dd, 0xf267616f, 0xc148cbe4, 0x9052815e, 0x5e410fab, 0xb48a2465, 0x2eda7fa4,\n        0xe87b40e4, 0xe98ea084, 0x5889e9e1, 0xefd390fc, 0xdd07d35b, 0xdb485694, 0x38d7e5b2, 0x57720101,\n        0x730edebc, 0x5b643113, 0x94917e4f, 0x503c2fba, 0x646f1282, 0x7523d24a, 0xe0779695, 0xf9c17a8f,\n        0x7a5b2121, 0xd187b896, 0x29263a4d, 0xba510cdf, 0x81f47c9f, 0xad1163ed, 0xea7b5965, 0x1a00726e,\n        0x11403092, 0x00da6d77, 0x4a0cdd61, 0xad1f4603, 0x605bdfb0, 0x9eedc364, 0x22ebe6a8, 0xcee7d28a,\n        0xa0e736a0, 0x5564a6b9, 0x10853209, 0xc7eb8f37, 0x2de705ca, 0x8951570f, 0xdf09822b, 0xbd691a6c,\n        0xaa12e4f2, 0x87451c0f, 0xe0f6a27a, 0x3ada4819, 0x4cf1764f, 0x0d771c2b, 0x67cdb156, 0x350d8384,\n        0x5938fa0f, 0x42399ef3, 0x36997b07, 0x0e84093d, 0x4aa93e61, 0x8360d87b, 0x1fa98b0c, 0x1149382c,\n        0xe97625a5, 0x0614d1b7, 0x0e25244b, 0x0c768347, 0x589e8d82, 0x0d2059d1, 0xa466bb1e, 0xf8da0a82,\n        0x04f19130, 0xba6e4ec0, 0x99265164, 0x1ee7230d, 0x50b2ad80, 0xeaee6801, 0x8db2a283, 0xea8bf59e\n    ];\n}\nfunction CAST5(key) {\n    this.cast5 = new OpenPGPSymEncCAST5();\n    this.cast5.setKey(key);\n    this.encrypt = function (block) {\n        return this.cast5.encrypt(block);\n    };\n}\nCAST5.blockSize = CAST5.prototype.blockSize = 8;\nCAST5.keySize = CAST5.prototype.keySize = 16;\n\n/**\n * @access private\n * Modified by Recurity Labs GmbH\n *\n * Cipher.js\n * A block-cipher algorithm implementation on JavaScript\n * See Cipher.readme.txt for further information.\n *\n * Copyright(c) 2009 Atsushi Oka [ http://oka.nu/ ]\n * This script file is distributed under the LGPL\n *\n * ACKNOWLEDGMENT\n *\n *     The main subroutines are written by Michiel van Everdingen.\n *\n *     Michiel van Everdingen\n *     http://home.versatel.nl/MAvanEverdingen/index.html\n *\n *     All rights for these routines are reserved to Michiel van Everdingen.\n *\n */\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n//Math\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\nconst MAXINT = 0xFFFFFFFF;\nfunction rotw(w, n) {\n    return (w << n | w >>> (32 - n)) & MAXINT;\n}\nfunction getW(a, i) {\n    return a[i] | a[i + 1] << 8 | a[i + 2] << 16 | a[i + 3] << 24;\n}\nfunction setW(a, i, w) {\n    a.splice(i, 4, w & 0xFF, (w >>> 8) & 0xFF, (w >>> 16) & 0xFF, (w >>> 24) & 0xFF);\n}\nfunction getB(x, n) {\n    return (x >>> (n * 8)) & 0xFF;\n}\n// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Twofish\n// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\nfunction createTwofish() {\n    //\n    let keyBytes = null;\n    let dataBytes = null;\n    let dataOffset = -1;\n    // var dataLength = -1;\n    // var idx2 = -1;\n    //\n    let tfsKey = [];\n    let tfsM = [\n        [],\n        [],\n        [],\n        []\n    ];\n    function tfsInit(key) {\n        keyBytes = key;\n        let i;\n        let a;\n        let b;\n        let c;\n        let d;\n        const meKey = [];\n        const moKey = [];\n        const inKey = [];\n        let kLen;\n        const sKey = [];\n        let f01;\n        let f5b;\n        let fef;\n        const q0 = [\n            [8, 1, 7, 13, 6, 15, 3, 2, 0, 11, 5, 9, 14, 12, 10, 4],\n            [2, 8, 11, 13, 15, 7, 6, 14, 3, 1, 9, 4, 0, 10, 12, 5]\n        ];\n        const q1 = [\n            [14, 12, 11, 8, 1, 2, 3, 5, 15, 4, 10, 6, 7, 0, 9, 13],\n            [1, 14, 2, 11, 4, 12, 3, 7, 6, 13, 10, 5, 15, 9, 0, 8]\n        ];\n        const q2 = [\n            [11, 10, 5, 14, 6, 13, 9, 0, 12, 8, 15, 3, 2, 4, 7, 1],\n            [4, 12, 7, 5, 1, 6, 9, 10, 0, 14, 13, 8, 2, 11, 3, 15]\n        ];\n        const q3 = [\n            [13, 7, 15, 4, 1, 2, 6, 14, 9, 11, 3, 0, 8, 5, 12, 10],\n            [11, 9, 5, 1, 12, 3, 13, 14, 6, 4, 7, 15, 2, 0, 8, 10]\n        ];\n        const ror4 = [0, 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15];\n        const ashx = [0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 5, 14, 7];\n        /** @type {number[][]} */\n        const q = [\n            [],\n            []\n        ];\n        const m = [\n            [],\n            [],\n            [],\n            []\n        ];\n        function ffm5b(x) {\n            return x ^ (x >> 2) ^ [0, 90, 180, 238][x & 3];\n        }\n        function ffmEf(x) {\n            return x ^ (x >> 1) ^ (x >> 2) ^ [0, 238, 180, 90][x & 3];\n        }\n        function mdsRem(p, q) {\n            let i;\n            let t;\n            let u;\n            for (i = 0; i < 8; i++) {\n                t = q >>> 24;\n                q = ((q << 8) & MAXINT) | p >>> 24;\n                p = (p << 8) & MAXINT;\n                u = t << 1;\n                if (t & 128) {\n                    u ^= 333;\n                }\n                q ^= t ^ (u << 16);\n                u ^= t >>> 1;\n                if (t & 1) {\n                    u ^= 166;\n                }\n                q ^= u << 24 | u << 8;\n            }\n            return q;\n        }\n        function qp(n, x) {\n            const a = x >> 4;\n            const b = x & 15;\n            const c = q0[n][a ^ b];\n            const d = q1[n][ror4[b] ^ ashx[a]];\n            return q3[n][ror4[d] ^ ashx[c]] << 4 | q2[n][c ^ d];\n        }\n        function hFun(x, key) {\n            let a = getB(x, 0);\n            let b = getB(x, 1);\n            let c = getB(x, 2);\n            let d = getB(x, 3);\n            switch (kLen) {\n                case 4:\n                    a = q[1][a] ^ getB(key[3], 0);\n                    b = q[0][b] ^ getB(key[3], 1);\n                    c = q[0][c] ^ getB(key[3], 2);\n                    d = q[1][d] ^ getB(key[3], 3);\n                // eslint-disable-next-line no-fallthrough\n                case 3:\n                    a = q[1][a] ^ getB(key[2], 0);\n                    b = q[1][b] ^ getB(key[2], 1);\n                    c = q[0][c] ^ getB(key[2], 2);\n                    d = q[0][d] ^ getB(key[2], 3);\n                // eslint-disable-next-line no-fallthrough\n                case 2:\n                    a = q[0][q[0][a] ^ getB(key[1], 0)] ^ getB(key[0], 0);\n                    b = q[0][q[1][b] ^ getB(key[1], 1)] ^ getB(key[0], 1);\n                    c = q[1][q[0][c] ^ getB(key[1], 2)] ^ getB(key[0], 2);\n                    d = q[1][q[1][d] ^ getB(key[1], 3)] ^ getB(key[0], 3);\n            }\n            return m[0][a] ^ m[1][b] ^ m[2][c] ^ m[3][d];\n        }\n        keyBytes = keyBytes.slice(0, 32);\n        i = keyBytes.length;\n        while (i !== 16 && i !== 24 && i !== 32) {\n            keyBytes[i++] = 0;\n        }\n        for (i = 0; i < keyBytes.length; i += 4) {\n            inKey[i >> 2] = getW(keyBytes, i);\n        }\n        for (i = 0; i < 256; i++) {\n            q[0][i] = qp(0, i);\n            q[1][i] = qp(1, i);\n        }\n        for (i = 0; i < 256; i++) {\n            f01 = q[1][i];\n            f5b = ffm5b(f01);\n            fef = ffmEf(f01);\n            m[0][i] = f01 + (f5b << 8) + (fef << 16) + (fef << 24);\n            m[2][i] = f5b + (fef << 8) + (f01 << 16) + (fef << 24);\n            f01 = q[0][i];\n            f5b = ffm5b(f01);\n            fef = ffmEf(f01);\n            m[1][i] = fef + (fef << 8) + (f5b << 16) + (f01 << 24);\n            m[3][i] = f5b + (f01 << 8) + (fef << 16) + (f5b << 24);\n        }\n        kLen = inKey.length / 2;\n        for (i = 0; i < kLen; i++) {\n            a = inKey[i + i];\n            meKey[i] = a;\n            b = inKey[i + i + 1];\n            moKey[i] = b;\n            sKey[kLen - i - 1] = mdsRem(a, b);\n        }\n        for (i = 0; i < 40; i += 2) {\n            a = 0x1010101 * i;\n            b = a + 0x1010101;\n            a = hFun(a, meKey);\n            b = rotw(hFun(b, moKey), 8);\n            tfsKey[i] = (a + b) & MAXINT;\n            tfsKey[i + 1] = rotw(a + 2 * b, 9);\n        }\n        for (i = 0; i < 256; i++) {\n            a = b = c = d = i;\n            switch (kLen) {\n                case 4:\n                    a = q[1][a] ^ getB(sKey[3], 0);\n                    b = q[0][b] ^ getB(sKey[3], 1);\n                    c = q[0][c] ^ getB(sKey[3], 2);\n                    d = q[1][d] ^ getB(sKey[3], 3);\n                // eslint-disable-next-line no-fallthrough\n                case 3:\n                    a = q[1][a] ^ getB(sKey[2], 0);\n                    b = q[1][b] ^ getB(sKey[2], 1);\n                    c = q[0][c] ^ getB(sKey[2], 2);\n                    d = q[0][d] ^ getB(sKey[2], 3);\n                // eslint-disable-next-line no-fallthrough\n                case 2:\n                    tfsM[0][i] = m[0][q[0][q[0][a] ^ getB(sKey[1], 0)] ^ getB(sKey[0], 0)];\n                    tfsM[1][i] = m[1][q[0][q[1][b] ^ getB(sKey[1], 1)] ^ getB(sKey[0], 1)];\n                    tfsM[2][i] = m[2][q[1][q[0][c] ^ getB(sKey[1], 2)] ^ getB(sKey[0], 2)];\n                    tfsM[3][i] = m[3][q[1][q[1][d] ^ getB(sKey[1], 3)] ^ getB(sKey[0], 3)];\n            }\n        }\n    }\n    function tfsG0(x) {\n        return tfsM[0][getB(x, 0)] ^ tfsM[1][getB(x, 1)] ^ tfsM[2][getB(x, 2)] ^ tfsM[3][getB(x, 3)];\n    }\n    function tfsG1(x) {\n        return tfsM[0][getB(x, 3)] ^ tfsM[1][getB(x, 0)] ^ tfsM[2][getB(x, 1)] ^ tfsM[3][getB(x, 2)];\n    }\n    function tfsFrnd(r, blk) {\n        let a = tfsG0(blk[0]);\n        let b = tfsG1(blk[1]);\n        blk[2] = rotw(blk[2] ^ (a + b + tfsKey[4 * r + 8]) & MAXINT, 31);\n        blk[3] = rotw(blk[3], 1) ^ (a + 2 * b + tfsKey[4 * r + 9]) & MAXINT;\n        a = tfsG0(blk[2]);\n        b = tfsG1(blk[3]);\n        blk[0] = rotw(blk[0] ^ (a + b + tfsKey[4 * r + 10]) & MAXINT, 31);\n        blk[1] = rotw(blk[1], 1) ^ (a + 2 * b + tfsKey[4 * r + 11]) & MAXINT;\n    }\n    function tfsIrnd(i, blk) {\n        let a = tfsG0(blk[0]);\n        let b = tfsG1(blk[1]);\n        blk[2] = rotw(blk[2], 1) ^ (a + b + tfsKey[4 * i + 10]) & MAXINT;\n        blk[3] = rotw(blk[3] ^ (a + 2 * b + tfsKey[4 * i + 11]) & MAXINT, 31);\n        a = tfsG0(blk[2]);\n        b = tfsG1(blk[3]);\n        blk[0] = rotw(blk[0], 1) ^ (a + b + tfsKey[4 * i + 8]) & MAXINT;\n        blk[1] = rotw(blk[1] ^ (a + 2 * b + tfsKey[4 * i + 9]) & MAXINT, 31);\n    }\n    function tfsClose() {\n        tfsKey = [];\n        tfsM = [\n            [],\n            [],\n            [],\n            []\n        ];\n    }\n    function tfsEncrypt(data, offset) {\n        dataBytes = data;\n        dataOffset = offset;\n        const blk = [getW(dataBytes, dataOffset) ^ tfsKey[0],\n            getW(dataBytes, dataOffset + 4) ^ tfsKey[1],\n            getW(dataBytes, dataOffset + 8) ^ tfsKey[2],\n            getW(dataBytes, dataOffset + 12) ^ tfsKey[3]];\n        for (let j = 0; j < 8; j++) {\n            tfsFrnd(j, blk);\n        }\n        setW(dataBytes, dataOffset, blk[2] ^ tfsKey[4]);\n        setW(dataBytes, dataOffset + 4, blk[3] ^ tfsKey[5]);\n        setW(dataBytes, dataOffset + 8, blk[0] ^ tfsKey[6]);\n        setW(dataBytes, dataOffset + 12, blk[1] ^ tfsKey[7]);\n        dataOffset += 16;\n        return dataBytes;\n    }\n    function tfsDecrypt(data, offset) {\n        dataBytes = data;\n        dataOffset = offset;\n        const blk = [getW(dataBytes, dataOffset) ^ tfsKey[4],\n            getW(dataBytes, dataOffset + 4) ^ tfsKey[5],\n            getW(dataBytes, dataOffset + 8) ^ tfsKey[6],\n            getW(dataBytes, dataOffset + 12) ^ tfsKey[7]];\n        for (let j = 7; j >= 0; j--) {\n            tfsIrnd(j, blk);\n        }\n        setW(dataBytes, dataOffset, blk[2] ^ tfsKey[0]);\n        setW(dataBytes, dataOffset + 4, blk[3] ^ tfsKey[1]);\n        setW(dataBytes, dataOffset + 8, blk[0] ^ tfsKey[2]);\n        setW(dataBytes, dataOffset + 12, blk[1] ^ tfsKey[3]);\n        dataOffset += 16;\n    }\n    // added by Recurity Labs\n    function tfsFinal() {\n        return dataBytes;\n    }\n    return {\n        name: 'twofish',\n        blocksize: 128 / 8,\n        open: tfsInit,\n        close: tfsClose,\n        encrypt: tfsEncrypt,\n        decrypt: tfsDecrypt,\n        // added by Recurity Labs\n        finalize: tfsFinal\n    };\n}\n// added by Recurity Labs\nfunction TF(key) {\n    this.tf = createTwofish();\n    this.tf.open(Array.from(key), 0);\n    this.encrypt = function (block) {\n        return this.tf.encrypt(Array.from(block), 0);\n    };\n}\nTF.keySize = TF.prototype.keySize = 32;\nTF.blockSize = TF.prototype.blockSize = 16;\n\n/**\n * @access private\n * Modified by Recurity Labs GmbH\n *\n * Originally written by nklein software (nklein.com)\n */\n/*\n * Javascript implementation based on Bruce Schneier's reference implementation.\n *\n *\n * The constructor doesn't do much of anything.  It's just here\n * so we can start defining properties and methods and such.\n */\nfunction Blowfish() { }\n/*\n * Declare the block size so that protocols know what size\n * Initialization Vector (IV) they will need.\n */\nBlowfish.prototype.BLOCKSIZE = 8;\n/*\n * These are the default SBOXES.\n */\nBlowfish.prototype.SBOXES = [\n    [\n        0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96,\n        0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16,\n        0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0x0d95748f, 0x728eb658,\n        0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013,\n        0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e,\n        0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60,\n        0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, 0x55ca396a, 0x2aab10b6,\n        0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a,\n        0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c,\n        0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193,\n        0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, 0xe98575b1,\n        0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239,\n        0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a,\n        0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3,\n        0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176,\n        0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe,\n        0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706,\n        0x1bfedf72, 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b,\n        0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b,\n        0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463,\n        0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c,\n        0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3,\n        0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a,\n        0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8,\n        0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760,\n        0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db,\n        0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, 0x695b27b0, 0xbbca58c8,\n        0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b,\n        0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33,\n        0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4,\n        0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, 0xafc725e0,\n        0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c,\n        0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777,\n        0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299,\n        0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705,\n        0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf,\n        0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x00250e2d, 0x2071b35e,\n        0x226800bb, 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa,\n        0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9,\n        0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915,\n        0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f,\n        0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664,\n        0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a\n    ],\n    [\n        0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d,\n        0x9cee60b8, 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1,\n        0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65,\n        0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1,\n        0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, 0x3ebaefc9,\n        0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737,\n        0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37, 0xf0500c0d,\n        0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd,\n        0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc,\n        0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41,\n        0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, 0x4e548b38, 0x4f6db908,\n        0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af,\n        0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124,\n        0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c,\n        0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, 0x3215d908,\n        0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd,\n        0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1, 0xd7a3c76b,\n        0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e,\n        0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa,\n        0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a,\n        0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d,\n        0x1939260f, 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66,\n        0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5,\n        0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84,\n        0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96,\n        0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14,\n        0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca,\n        0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7,\n        0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77,\n        0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99,\n        0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb, 0x532e3054,\n        0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73,\n        0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea,\n        0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105,\n        0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, 0x5b8d2646,\n        0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285,\n        0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0x0c55f5ea,\n        0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb,\n        0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e,\n        0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc,\n        0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd,\n        0x675fda79, 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20,\n        0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7\n    ],\n    [\n        0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7,\n        0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af,\n        0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af,\n        0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504,\n        0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4,\n        0x0a2c86da, 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee,\n        0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec,\n        0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b,\n        0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332,\n        0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527,\n        0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc, 0xa1159a58,\n        0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c,\n        0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22,\n        0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17,\n        0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, 0x257b7834, 0x602a9c60,\n        0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115,\n        0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99,\n        0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0,\n        0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341, 0x992eff74,\n        0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d,\n        0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3,\n        0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3,\n        0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979,\n        0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c,\n        0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa,\n        0x3d25bdd8, 0xe2e1c3c9, 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a,\n        0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086,\n        0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc,\n        0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24,\n        0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2,\n        0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84,\n        0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c,\n        0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09,\n        0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10,\n        0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, 0xdcb7da83, 0x573906fe,\n        0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027,\n        0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0,\n        0x006058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634,\n        0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, 0x4b7c0188,\n        0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc,\n        0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8,\n        0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837,\n        0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0\n    ],\n    [\n        0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742,\n        0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b,\n        0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, 0xbc946e79,\n        0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6,\n        0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a,\n        0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4,\n        0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1,\n        0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59,\n        0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797,\n        0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28,\n        0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6,\n        0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28,\n        0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba,\n        0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a,\n        0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928, 0xb155fdf5,\n        0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f,\n        0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce,\n        0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680,\n        0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, 0xb39a460a, 0x6445c0dd,\n        0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb,\n        0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb,\n        0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370,\n        0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, 0x4eb4e2cc,\n        0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048,\n        0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc,\n        0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9,\n        0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a,\n        0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f,\n        0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a,\n        0x0f91fc71, 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1,\n        0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b,\n        0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e,\n        0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e,\n        0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f,\n        0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357, 0xa6327623,\n        0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc,\n        0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a,\n        0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6,\n        0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0, 0x1640e3d3,\n        0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060,\n        0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c,\n        0x01c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f,\n        0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6\n    ]\n];\n//*\n//* This is the default PARRAY\n//*\nBlowfish.prototype.PARRAY = [\n    0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0,\n    0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,\n    0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b\n];\n//*\n//* This is the number of rounds the cipher will go\n//*\nBlowfish.prototype.NN = 16;\n//*\n//* This function is needed to get rid of problems\n//* with the high-bit getting set.  If we don't do\n//* this, then sometimes ( aa & 0x00FFFFFFFF ) is not\n//* equal to ( bb & 0x00FFFFFFFF ) even when they\n//* agree bit-for-bit for the first 32 bits.\n//*\nBlowfish.prototype._clean = function (xx) {\n    if (xx < 0) {\n        const yy = xx & 0x7FFFFFFF;\n        xx = yy + 0x80000000;\n    }\n    return xx;\n};\n//*\n//* This is the mixing function that uses the sboxes\n//*\nBlowfish.prototype._F = function (xx) {\n    let yy;\n    const dd = xx & 0x00FF;\n    xx >>>= 8;\n    const cc = xx & 0x00FF;\n    xx >>>= 8;\n    const bb = xx & 0x00FF;\n    xx >>>= 8;\n    const aa = xx & 0x00FF;\n    yy = this.sboxes[0][aa] + this.sboxes[1][bb];\n    yy ^= this.sboxes[2][cc];\n    yy += this.sboxes[3][dd];\n    return yy;\n};\n//*\n//* This method takes an array with two values, left and right\n//* and does NN rounds of Blowfish on them.\n//*\nBlowfish.prototype._encryptBlock = function (vals) {\n    let dataL = vals[0];\n    let dataR = vals[1];\n    let ii;\n    for (ii = 0; ii < this.NN; ++ii) {\n        dataL ^= this.parray[ii];\n        dataR = this._F(dataL) ^ dataR;\n        const tmp = dataL;\n        dataL = dataR;\n        dataR = tmp;\n    }\n    dataL ^= this.parray[this.NN + 0];\n    dataR ^= this.parray[this.NN + 1];\n    vals[0] = this._clean(dataR);\n    vals[1] = this._clean(dataL);\n};\n//*\n//* This method takes a vector of numbers and turns them\n//* into long words so that they can be processed by the\n//* real algorithm.\n//*\n//* Maybe I should make the real algorithm above take a vector\n//* instead.  That will involve more looping, but it won't require\n//* the F() method to deconstruct the vector.\n//*\nBlowfish.prototype.encryptBlock = function (vector) {\n    let ii;\n    const vals = [0, 0];\n    const off = this.BLOCKSIZE / 2;\n    for (ii = 0; ii < this.BLOCKSIZE / 2; ++ii) {\n        vals[0] = (vals[0] << 8) | (vector[ii + 0] & 0x00FF);\n        vals[1] = (vals[1] << 8) | (vector[ii + off] & 0x00FF);\n    }\n    this._encryptBlock(vals);\n    const ret = [];\n    for (ii = 0; ii < this.BLOCKSIZE / 2; ++ii) {\n        ret[ii + 0] = ((vals[0] >>> (24 - 8 * (ii))) & 0x00FF);\n        ret[ii + off] = ((vals[1] >>> (24 - 8 * (ii))) & 0x00FF);\n        // vals[ 0 ] = ( vals[ 0 ] >>> 8 );\n        // vals[ 1 ] = ( vals[ 1 ] >>> 8 );\n    }\n    return ret;\n};\n//*\n//* This method takes an array with two values, left and right\n//* and undoes NN rounds of Blowfish on them.\n//*\nBlowfish.prototype._decryptBlock = function (vals) {\n    let dataL = vals[0];\n    let dataR = vals[1];\n    let ii;\n    for (ii = this.NN + 1; ii > 1; --ii) {\n        dataL ^= this.parray[ii];\n        dataR = this._F(dataL) ^ dataR;\n        const tmp = dataL;\n        dataL = dataR;\n        dataR = tmp;\n    }\n    dataL ^= this.parray[1];\n    dataR ^= this.parray[0];\n    vals[0] = this._clean(dataR);\n    vals[1] = this._clean(dataL);\n};\n//*\n//* This method takes a key array and initializes the\n//* sboxes and parray for this encryption.\n//*\nBlowfish.prototype.init = function (key) {\n    let ii;\n    let jj = 0;\n    this.parray = [];\n    for (ii = 0; ii < this.NN + 2; ++ii) {\n        let data = 0x00000000;\n        for (let kk = 0; kk < 4; ++kk) {\n            data = (data << 8) | (key[jj] & 0x00FF);\n            if (++jj >= key.length) {\n                jj = 0;\n            }\n        }\n        this.parray[ii] = this.PARRAY[ii] ^ data;\n    }\n    this.sboxes = [];\n    for (ii = 0; ii < 4; ++ii) {\n        this.sboxes[ii] = [];\n        for (jj = 0; jj < 256; ++jj) {\n            this.sboxes[ii][jj] = this.SBOXES[ii][jj];\n        }\n    }\n    const vals = [0x00000000, 0x00000000];\n    for (ii = 0; ii < this.NN + 2; ii += 2) {\n        this._encryptBlock(vals);\n        this.parray[ii + 0] = vals[0];\n        this.parray[ii + 1] = vals[1];\n    }\n    for (ii = 0; ii < 4; ++ii) {\n        for (jj = 0; jj < 256; jj += 2) {\n            this._encryptBlock(vals);\n            this.sboxes[ii][jj + 0] = vals[0];\n            this.sboxes[ii][jj + 1] = vals[1];\n        }\n    }\n};\n// added by Recurity Labs\nfunction BF(key) {\n    this.bf = new Blowfish();\n    this.bf.init(key);\n    this.encrypt = function (block) {\n        return this.bf.encryptBlock(block);\n    };\n}\nBF.keySize = BF.prototype.keySize = 16;\nBF.blockSize = BF.prototype.blockSize = 8;\n\n/**\n * @access private\n * This file is needed to dynamic import the legacy ciphers.\n * Separate dynamic imports are not convenient as they result in multiple chunks.\n */\n// We avoid importing 'enums' as this module is lazy loaded, and doing so could mess up\n// chunking for the lightweight build\nconst legacyCiphers = new Map(Object.entries({\n    tripledes: TripleDES,\n    cast5: CAST5,\n    twofish: TF,\n    blowfish: BF\n}));\n\nvar legacy_ciphers = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  legacyCiphers: legacyCiphers\n});\n\n// Adapted from the reference implementation in RFC7693\n// Initial port to Javascript by https://github.com/dcposch and https://github.com/emilbayes\n\n// Uint64 values are represented using two Uint32s, stored as little endian\n// NB: Uint32Arrays endianness depends on the underlying system, so for interoperability, conversions between Uint8Array and Uint32Arrays\n// need to be manually handled\n\n// 64-bit unsigned addition (little endian, in place)\n// Sets a[i,i+1] += b[j,j+1]\n// `a` and `b` must be Uint32Array(2)\nfunction ADD64 (a, i, b, j) {\n  a[i] += b[j];\n  a[i+1] += b[j+1] + (a[i] < b[j]); // add carry\n}\n\n// Increment 64-bit little-endian unsigned value by `c` (in place)\n// `a` must be Uint32Array(2)\nfunction INC64 (a, c) {\n  a[0] += c;\n  a[1] += (a[0] < c);\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction G$1 (v, m, a, b, c, d, ix, iy) {\n  ADD64(v, a, v, b); // v[a,a+1] += v[b,b+1]\n  ADD64(v, a, m, ix); // v[a, a+1] += x ... x0\n\n  // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n  let xor0 = v[d] ^ v[a];\n  let xor1 = v[d + 1] ^ v[a + 1];\n  v[d] = xor1;\n  v[d + 1] = xor0;\n\n  ADD64(v, c, v, d);\n\n  // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n  xor0 = v[b] ^ v[c];\n  xor1 = v[b + 1] ^ v[c + 1];\n  v[b] = (xor0 >>> 24) ^ (xor1 << 8);\n  v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8);\n\n  ADD64(v, a, v, b);\n  ADD64(v, a, m, iy);\n\n  // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n  xor0 = v[d] ^ v[a];\n  xor1 = v[d + 1] ^ v[a + 1];\n  v[d] = (xor0 >>> 16) ^ (xor1 << 16);\n  v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16);\n\n  ADD64(v, c, v, d);\n\n  // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n  xor0 = v[b] ^ v[c];\n  xor1 = v[b + 1] ^ v[c + 1];\n  v[b] = (xor1 >>> 31) ^ (xor0 << 1);\n  v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1);\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n  0xF3BCC908, 0x6A09E667, 0x84CAA73B, 0xBB67AE85,\n  0xFE94F82B, 0x3C6EF372, 0x5F1D36F1, 0xA54FF53A,\n  0xADE682D1, 0x510E527F, 0x2B3E6C1F, 0x9B05688C,\n  0xFB41BD6B, 0x1F83D9AB, 0x137E2179, 0x5BE0CD19\n]);\n\n// These are offsets into a Uint64 buffer.\n// Multiply them all by 2 to make them offsets into a Uint32 buffer\nconst SIGMA = new Uint8Array([\n  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n  14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,\n  11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,\n  7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,\n  9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,\n  2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,\n  12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,\n  13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,\n  6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,\n  10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,\n  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n  14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3\n].map(x => x * 2));\n\n// Compression function. 'last' flag indicates last block.\n// Note: we're representing 16 uint64s as 32 uint32s\nfunction compress(S, last) {\n  const v = new Uint32Array(32);\n  const m = new Uint32Array(S.b.buffer, S.b.byteOffset, 32);\n\n  // init work variables\n  for (let i = 0; i < 16; i++) {\n    v[i] = S.h[i];\n    v[i + 16] = BLAKE2B_IV32[i];\n  }\n\n  // low 64 bits of offset\n  v[24] ^= S.t0[0];\n  v[25] ^= S.t0[1];\n  // high 64 bits not supported (`t1`), offset may not be higher than 2**53-1\n\n  // if last block\n  const f0 = last ? 0xFFFFFFFF : 0;\n  v[28] ^= f0;\n  v[29] ^= f0;\n\n  // twelve rounds of mixing\n  for (let i = 0; i < 12; i++) {\n    // ROUND(r)\n    const i16 = i << 4;\n    G$1(v, m, 0, 8, 16, 24,  SIGMA[i16 + 0], SIGMA[i16 + 1]);\n    G$1(v, m, 2, 10, 18, 26, SIGMA[i16 + 2], SIGMA[i16 + 3]);\n    G$1(v, m, 4, 12, 20, 28, SIGMA[i16 + 4], SIGMA[i16 + 5]);\n    G$1(v, m, 6, 14, 22, 30, SIGMA[i16 + 6], SIGMA[i16 + 7]);\n    G$1(v, m, 0, 10, 20, 30, SIGMA[i16 + 8], SIGMA[i16 + 9]);\n    G$1(v, m, 2, 12, 22, 24, SIGMA[i16 + 10], SIGMA[i16 + 11]);\n    G$1(v, m, 4, 14, 16, 26, SIGMA[i16 + 12], SIGMA[i16 + 13]);\n    G$1(v, m, 6, 8, 18, 28,  SIGMA[i16 + 14], SIGMA[i16 + 15]);\n  }\n\n  for (let i = 0; i < 16; i++) {\n    S.h[i] ^= v[i] ^ v[i + 16];\n  }\n}\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\nclass Blake2b {\n  constructor(outlen, key, salt, personal) {\n    const params = new Uint8Array(64);\n    //  0: outlen, keylen, fanout, depth\n    //  4: leaf length, sequential mode\n    //  8: node offset\n    // 12: node offset\n    // 16: node depth, inner length, rfu\n    // 20: rfu\n    // 24: rfu\n    // 28: rfu\n    // 32: salt\n    // 36: salt\n    // 40: salt\n    // 44: salt\n    // 48: personal\n    // 52: personal\n    // 56: personal\n    // 60: personal\n\n    // init internal state\n    this.S = {\n      b: new Uint8Array(BLOCKBYTES),\n      h: new Uint32Array(OUTBYTES_MAX / 4),\n      t0: new Uint32Array(2), // input counter `t`, lower 64-bits only\n      c: 0, // `fill`, pointer within buffer, up to `BLOCKBYTES`\n      outlen // output length in bytes\n    };\n\n    // init parameter block\n    params[0] = outlen;\n    if (key) params[1] = key.length;\n    params[2] = 1; // fanout\n    params[3] = 1; // depth\n    if (salt) params.set(salt, 32);\n    if (personal) params.set(personal, 48);\n    const params32 = new Uint32Array(params.buffer, params.byteOffset, params.length / Uint32Array.BYTES_PER_ELEMENT);\n\n    // initialize hash state\n    for (let i = 0; i < 16; i++) {\n      this.S.h[i] = BLAKE2B_IV32[i] ^ params32[i];\n    }\n\n    // key the hash, if applicable\n    if (key) {\n      const block = new Uint8Array(BLOCKBYTES);\n      block.set(key);\n      this.update(block);\n    }\n  }\n\n  // Updates a BLAKE2b streaming hash\n  // Requires Uint8Array (byte array)\n  update(input) {\n    if (!(input instanceof Uint8Array)) throw new Error('Input must be Uint8Array or Buffer')\n    // for (let i = 0; i < input.length; i++) {\n    //   if (this.S.c === BLOCKBYTES) { // buffer full\n    //     INC64(this.S.t0, this.S.c) // add counters\n    //     compress(this.S, false)\n    //     this.S.c = 0 // empty buffer\n    //   }\n    //   this.S.b[this.S.c++] = input[i]\n    // }\n    let i = 0;\n    while(i < input.length) {\n      if (this.S.c === BLOCKBYTES) { // buffer full\n        INC64(this.S.t0, this.S.c); // add counters\n        compress(this.S, false);\n        this.S.c = 0; // empty buffer\n      }\n      let left = BLOCKBYTES - this.S.c;\n      this.S.b.set(input.subarray(i, i + left), this.S.c); // end index can be out of bounds\n      const fill = Math.min(left, input.length - i);\n      this.S.c += fill;\n      i += fill;\n    }\n    return this\n  }\n\n  /**\n   * Return a BLAKE2b hash, either filling the given Uint8Array or allocating a new one\n   * @param {Uint8Array} [prealloc] - optional preallocated buffer\n   * @returns {ArrayBuffer} message digest\n   */\n  digest(prealloc) {\n    INC64(this.S.t0, this.S.c); // mark last block offset\n\n    // final block, padded\n    this.S.b.fill(0, this.S.c);\n    this.S.c = BLOCKBYTES;\n    compress(this.S, true);\n\n    const out = prealloc || new Uint8Array(this.S.outlen);\n    for (let i = 0; i < this.S.outlen; i++) {\n      // must be loaded individually since default Uint32 endianness is platform dependant\n      out[i] = this.S.h[i >> 2] >> (8 * (i & 3));\n    }\n    this.S.h = null; // prevent calling `update` after `digest`\n    return out.buffer;\n  }\n}\n\n\nfunction createHash(outlen, key, salt, personal) {\n  if (outlen > OUTBYTES_MAX) throw new Error(`outlen must be at most ${OUTBYTES_MAX} (given: ${outlen})`)\n\n  return new Blake2b(outlen, key, salt, personal)\n}\n\nconst OUTBYTES_MAX = 64;\nconst BLOCKBYTES = 128;\n\nconst TYPE = 2;  // Argon2id\nconst VERSION = 0x13;\nconst TAGBYTES_MAX = 0xFFFFFFFF; // Math.pow(2, 32) - 1;\nconst TAGBYTES_MIN = 4; // Math.pow(2, 32) - 1;\nconst SALTBYTES_MAX = 0xFFFFFFFF; // Math.pow(2, 32) - 1;\nconst SALTBYTES_MIN = 8;\nconst passwordBYTES_MAX = 0xFFFFFFFF;// Math.pow(2, 32) - 1;\nconst passwordBYTES_MIN = 8;\nconst MEMBYTES_MAX = 0xFFFFFFFF;// Math.pow(2, 32) - 1;\nconst ADBYTES_MAX = 0xFFFFFFFF; // Math.pow(2, 32) - 1; // associated data (optional)\nconst SECRETBYTES_MAX = 32; // key (optional)\n\nconst ARGON2_BLOCK_SIZE = 1024;\nconst ARGON2_PREHASH_DIGEST_LENGTH = 64;\n\nconst isLittleEndian = new Uint8Array(new Uint16Array([0xabcd]).buffer)[0] === 0xcd;\n\n// store n as a little-endian 32-bit Uint8Array inside buf (at buf[i:i+3])\nfunction LE32(buf, n, i) {\n  buf[i+0] = n;\n  buf[i+1] = n >>  8;\n  buf[i+2] = n >> 16;\n  buf[i+3] = n >> 24;\n  return buf;\n}\n\n/**\n * Store n as a 64-bit LE number in the given buffer (from buf[i] to buf[i+7])\n * @param {Uint8Array} buf\n * @param {Number} n\n * @param {Number} i\n */\nfunction LE64(buf, n, i) {\n  if (n > Number.MAX_SAFE_INTEGER) throw new Error(\"LE64: large numbers unsupported\");\n  // ECMAScript standard has engines convert numbers to 32-bit integers for bitwise operations\n  // shifting by 32 or more bits is not supported (https://stackoverflow.com/questions/6729122/javascript-bit-shift-number-wraps)\n  // so we manually extract each byte\n  let remainder = n;\n  for (let offset = i; offset < i+7; offset++) { // last byte can be ignored as it would overflow MAX_SAFE_INTEGER\n    buf[offset] = remainder; // implicit & 0xff\n    remainder = (remainder - buf[offset]) / 256;\n  }\n  return buf;\n}\n\n/**\n * Variable-Length Hash Function H'\n * @param {Number} outlen - T\n * @param {Uint8Array} X - value to hash\n * @param {Uint8Array} res - output buffer, of length `outlength` or larger\n */\nfunction H_(outlen, X, res) {\n  const V = new Uint8Array(64); // no need to keep around all V_i\n\n  const V1_in = new Uint8Array(4 + X.length);\n  LE32(V1_in, outlen, 0);\n  V1_in.set(X, 4);\n  if (outlen <= 64) {\n    // H'^T(A) = H^T(LE32(T)||A)\n    createHash(outlen).update(V1_in).digest(res);\n    return res\n  }\n\n  const r = Math.ceil(outlen / 32) - 2;\n\n  // Let V_i be a 64-byte block and W_i be its first 32 bytes.\n  // V_1 = H^(64)(LE32(T)||A)\n  // V_2 = H^(64)(V_1)\n  // ...\n  // V_r = H^(64)(V_{r-1})\n  // V_{r+1} = H^(T-32*r)(V_{r})\n  // H'^T(X) = W_1 || W_2 || ... || W_r || V_{r+1}\n  for (let i = 0; i < r; i++) {\n    createHash(64).update(i === 0 ? V1_in : V).digest(V);\n    // store W_i in result buffer already\n    res.set(V.subarray(0, 32), i*32);\n  }\n  // V_{r+1}\n  const V_r1 = new Uint8Array(createHash(outlen - 32*r).update(V).digest());\n  res.set(V_r1, r*32);\n\n  return res;\n}\n\n// compute buf = xs ^ ys\nfunction XOR(wasmContext, buf, xs, ys) {\n  wasmContext.fn.XOR(\n    buf.byteOffset,\n    xs.byteOffset,\n    ys.byteOffset,\n  );\n  return buf\n}\n\n/**\n * @param {Uint8Array} X (read-only)\n * @param {Uint8Array} Y (read-only)\n * @param {Uint8Array} R - output buffer\n * @returns\n */\nfunction G(wasmContext, X, Y, R) {\n  wasmContext.fn.G(\n    X.byteOffset,\n    Y.byteOffset,\n    R.byteOffset,\n    wasmContext.refs.gZ.byteOffset\n  );\n  return R;\n}\n\nfunction G2(wasmContext, X, Y, R) {\n  wasmContext.fn.G2(\n    X.byteOffset,\n    Y.byteOffset,\n    R.byteOffset,\n    wasmContext.refs.gZ.byteOffset\n  );\n  return R;\n}\n\n// Generator for data-independent J1, J2. Each `next()` invocation returns a new pair of values.\nfunction* makePRNG(wasmContext, pass, lane, slice, m_, totalPasses, segmentLength, segmentOffset) {\n  // For each segment, we do the following. First, we compute the value Z as:\n  // Z= ( LE64(r) || LE64(l) || LE64(sl) || LE64(m') || LE64(t) || LE64(y) )\n  wasmContext.refs.prngTmp.fill(0);\n  const Z = wasmContext.refs.prngTmp.subarray(0, 6 * 8);\n  LE64(Z, pass, 0);\n  LE64(Z, lane, 8);\n  LE64(Z, slice, 16);\n  LE64(Z, m_, 24);\n  LE64(Z, totalPasses, 32);\n  LE64(Z, TYPE, 40);\n\n  // Then we compute q/(128*SL) 1024-byte values\n  // G( ZERO(1024),\n  //    G( ZERO(1024), Z || LE64(1) || ZERO(968) ) ),\n  // ...,\n  // G( ZERO(1024),\n  //    G( ZERO(1024), Z || LE64(q/(128*SL)) || ZERO(968) )),\n  for(let i = 1; i <= segmentLength; i++) {\n    // tmp.set(Z); // no need to re-copy\n    LE64(wasmContext.refs.prngTmp, i, Z.length); // tmp.set(ZER0968) not necessary, memory already zeroed\n    const g2 = G2(wasmContext, wasmContext.refs.ZERO1024, wasmContext.refs.prngTmp, wasmContext.refs.prngR );\n\n    // each invocation of G^2 outputs 1024 bytes that are to be partitioned into 8-bytes values, take as X1 || X2\n    // NB: the first generated pair must be used for the first block of the segment, and so on.\n    // Hence, if some blocks are skipped (e.g. during the first pass), the corresponding J1J2 are discarded based on the given segmentOffset.\n    for(let k = i === 1 ? segmentOffset*8 : 0; k < g2.length; k += 8) {\n       yield g2.subarray(k, k+8);\n    }\n  }\n  return [];\n}\n\nfunction validateParams({ type, version, tagLength, password, salt, ad, secret, parallelism, memorySize, passes }) {\n  const assertLength = (name, value, min, max) => {\n    if (value < min || value > max) { throw new Error(`${name} size should be between ${min} and ${max} bytes`); }\n  };\n\n  if (type !== TYPE || version !== VERSION) throw new Error('Unsupported type or version');\n  assertLength('password', password, passwordBYTES_MIN, passwordBYTES_MAX);\n  assertLength('salt', salt, SALTBYTES_MIN, SALTBYTES_MAX);\n  assertLength('tag', tagLength, TAGBYTES_MIN, TAGBYTES_MAX);\n  assertLength('memory', memorySize, 8*parallelism, MEMBYTES_MAX);\n  // optional fields\n  ad && assertLength('associated data', ad, 0, ADBYTES_MAX);\n  secret && assertLength('secret', secret, 0, SECRETBYTES_MAX);\n\n  return { type, version, tagLength, password, salt, ad, secret, lanes: parallelism, memorySize, passes };\n}\n\nconst KB = 1024;\nconst WASM_PAGE_SIZE = 64 * KB;\n\nfunction argon2id(params, { memory, instance: wasmInstance }) {\n  if (!isLittleEndian) throw new Error('BigEndian system not supported'); // optmisations assume LE system\n\n  const ctx = validateParams({ type: TYPE, version: VERSION, ...params });\n\n  const { G:wasmG, G2:wasmG2, xor:wasmXOR, getLZ:wasmLZ } = wasmInstance.exports;\n  const wasmRefs = {};\n  const wasmFn = {};\n  wasmFn.G = wasmG;\n  wasmFn.G2 = wasmG2;\n  wasmFn.XOR = wasmXOR;\n\n  // The actual number of blocks is m', which is m rounded down to the nearest multiple of 4*p.\n  const m_ = 4 * ctx.lanes * Math.floor(ctx.memorySize / (4 * ctx.lanes));\n  const requiredMemory = m_ * ARGON2_BLOCK_SIZE + 10 * KB; // Additional KBs for utility references\n  if (memory.buffer.byteLength < requiredMemory) {\n    const missing = Math.ceil((requiredMemory - memory.buffer.byteLength) / WASM_PAGE_SIZE);\n    // If enough memory is available, the `memory.buffer` is internally detached and the reference updated.\n    // Otherwise, the operation fails, and the original memory can still be used.\n    memory.grow(missing);\n  }\n\n  let offset = 0;\n  // Init wasm memory needed in other functions\n  wasmRefs.gZ = new Uint8Array(memory.buffer, offset, ARGON2_BLOCK_SIZE); offset+= wasmRefs.gZ.length;\n  wasmRefs.prngR = new Uint8Array(memory.buffer, offset, ARGON2_BLOCK_SIZE); offset+=wasmRefs.prngR.length;\n  wasmRefs.prngTmp = new Uint8Array(memory.buffer, offset, ARGON2_BLOCK_SIZE); offset+=wasmRefs.prngTmp.length;\n  wasmRefs.ZERO1024 = new Uint8Array(memory.buffer, offset, 1024); offset+=wasmRefs.ZERO1024.length;\n  // Init wasm memory needed locally\n  const lz = new Uint32Array(memory.buffer, offset, 2); offset+=lz.length * Uint32Array.BYTES_PER_ELEMENT;\n  const wasmContext = { fn: wasmFn, refs: wasmRefs };\n  const newBlock = new Uint8Array(memory.buffer, offset, ARGON2_BLOCK_SIZE); offset+=newBlock.length;\n  const blockMemory = new Uint8Array(memory.buffer, offset, ctx.memorySize * ARGON2_BLOCK_SIZE);\n  const allocatedMemory = new Uint8Array(memory.buffer, 0, offset);\n\n  // 1. Establish H_0\n  const H0 = getH0(ctx);\n\n  // 2. Allocate the memory as m' 1024-byte blocks\n  // For p lanes, the memory is organized in a matrix B[i][j] of blocks with p rows (lanes) and q = m' / p columns.\n  const q = m_ / ctx.lanes;\n  const B = new Array(ctx.lanes).fill(null).map(() => new Array(q));\n  const initBlock = (i, j) => {\n    B[i][j] = blockMemory.subarray(i*q*1024 + j*1024, (i*q*1024 + j*1024) + ARGON2_BLOCK_SIZE);\n    return B[i][j];\n  };\n\n  for (let i = 0; i < ctx.lanes; i++) {\n    // const LEi = LE0; //  since p = 1 for us\n    const tmp = new Uint8Array(H0.length + 8);\n    // 3. Compute B[i][0] for all i ranging from (and including) 0 to (not including) p\n    // B[i][0] = H'^(1024)(H_0 || LE32(0) || LE32(i))\n    tmp.set(H0); LE32(tmp, 0, H0.length); LE32(tmp, i, H0.length + 4);\n    H_(ARGON2_BLOCK_SIZE, tmp, initBlock(i, 0));\n    // 4. Compute B[i][1] for all i ranging from (and including) 0 to (not including) p\n    // B[i][1] = H'^(1024)(H_0 || LE32(1) || LE32(i))\n    LE32(tmp, 1, H0.length);\n    H_(ARGON2_BLOCK_SIZE, tmp, initBlock(i, 1));\n  }\n\n    // 5. Compute B[i][j] for all i ranging from (and including) 0 to (not including) p and for all j ranging from (and including) 2\n    // to (not including) q. The computation MUST proceed slicewise (Section 3.4) : first, blocks from slice 0 are computed for all lanes\n    // (in an arbitrary order of lanes), then blocks from slice 1 are computed, etc.\n  const SL = 4; // vertical slices\n  const segmentLength = q / SL;\n  for (let pass = 0; pass < ctx.passes; pass++) {\n      // The intersection of a slice and a lane is called a segment, which has a length of q/SL. Segments of the same slice can be computed in parallel\n    for (let sl = 0; sl < SL; sl++) {\n      const isDataIndependent = pass === 0 && sl <= 1;\n      for (let i = 0; i < ctx.lanes; i++) { // lane\n        // On the first slice of the first pass, blocks 0 and 1 are already filled\n        let segmentOffset = sl === 0 && pass === 0 ? 2 : 0;\n        // no need to generate all J1J2s, use iterator/generator that creates the value on the fly (to save memory)\n        const PRNG = isDataIndependent ? makePRNG(wasmContext, pass, i, sl, m_, ctx.passes, segmentLength, segmentOffset) : null;\n        for (segmentOffset; segmentOffset < segmentLength; segmentOffset++) {\n          const j = sl * segmentLength + segmentOffset;\n          const prevBlock = j > 0 ? B[i][j-1] : B[i][q-1]; // B[i][(j-1) mod q]\n\n          // we can assume the PRNG is never done\n          const J1J2 = isDataIndependent ? PRNG.next().value : prevBlock; // .subarray(0, 8) not required since we only pass the byteOffset to wasm\n          // The block indices l and z are determined for each i, j differently for Argon2d, Argon2i, and Argon2id.\n          wasmLZ(lz.byteOffset, J1J2.byteOffset, i, ctx.lanes, pass, sl, segmentOffset, SL, segmentLength);\n          const l = lz[0]; const z = lz[1];\n          // for (let i = 0; i < p; i++ )\n          // B[i][j] = G(B[i][j-1], B[l][z])\n          // The block indices l and z are determined for each i, j differently for Argon2d, Argon2i, and Argon2id.\n          if (pass === 0) initBlock(i, j);\n          G(wasmContext, prevBlock, B[l][z], pass > 0 ? newBlock : B[i][j]);\n\n          // 6. If the number of passes t is larger than 1, we repeat step 5. However, blocks are computed differently as the old value is XORed with the new one\n          if (pass > 0) XOR(wasmContext, B[i][j], newBlock, B[i][j]);\n        }\n      }\n    }\n  }\n\n  // 7. After t steps have been iterated, the final block C is computed as the XOR of the last column:\n  // C = B[0][q-1] XOR B[1][q-1] XOR ... XOR B[p-1][q-1]\n  const C = B[0][q-1];\n  for(let i = 1; i < ctx.lanes; i++) {\n    XOR(wasmContext, C, C, B[i][q-1]);\n  }\n\n  const tag = H_(ctx.tagLength, C, new Uint8Array(ctx.tagLength));\n  // clear memory since the module might be cached\n  allocatedMemory.fill(0); // clear sensitive contents\n  memory.grow(0); // allow deallocation\n  // 8. The output tag is computed as H'^T(C).\n  return tag;\n\n}\n\nfunction getH0(ctx) {\n  const H = createHash(ARGON2_PREHASH_DIGEST_LENGTH);\n  const ZERO32 = new Uint8Array(4);\n  const params = new Uint8Array(24);\n  LE32(params, ctx.lanes, 0);\n  LE32(params, ctx.tagLength, 4);\n  LE32(params, ctx.memorySize, 8);\n  LE32(params, ctx.passes, 12);\n  LE32(params, ctx.version, 16);\n  LE32(params, ctx.type, 20);\n\n  const toHash = [params];\n  if (ctx.password) {\n    toHash.push(LE32(new Uint8Array(4), ctx.password.length, 0));\n    toHash.push(ctx.password);\n  } else {\n    toHash.push(ZERO32); // context.password.length\n  }\n\n  if (ctx.salt) {\n    toHash.push(LE32(new Uint8Array(4), ctx.salt.length, 0));\n    toHash.push(ctx.salt);\n  } else {\n    toHash.push(ZERO32); // context.salt.length\n  }\n\n  if (ctx.secret) {\n    toHash.push(LE32(new Uint8Array(4), ctx.secret.length, 0));\n    toHash.push(ctx.secret);\n    // todo clear secret?\n  } else {\n    toHash.push(ZERO32); // context.secret.length\n  }\n\n  if (ctx.ad) {\n    toHash.push(LE32(new Uint8Array(4), ctx.ad.length, 0));\n    toHash.push(ctx.ad);\n  } else {\n    toHash.push(ZERO32); // context.ad.length\n  }\n  H.update(concatArrays(toHash));\n\n  const outputBuffer = H.digest();\n  return new Uint8Array(outputBuffer);\n}\n\nfunction concatArrays(arrays) {\n  if (arrays.length === 1) return arrays[0];\n\n  let totalLength = 0;\n  for (let i = 0; i < arrays.length; i++) {\n      if (!(arrays[i] instanceof Uint8Array)) {\n          throw new Error('concatArrays: Data must be in the form of a Uint8Array');\n      }\n\n      totalLength += arrays[i].length;\n  }\n\n  const result = new Uint8Array(totalLength);\n  let pos = 0;\n  arrays.forEach((element) => {\n      result.set(element, pos);\n      pos += element.length;\n  });\n\n  return result;\n}\n\nlet isSIMDSupported;\nasync function wasmLoader(memory, getSIMD, getNonSIMD) {\n  const importObject = { env: { memory } };\n  if (isSIMDSupported === undefined) {\n    try {\n      const loaded = await getSIMD(importObject);\n      isSIMDSupported = true;\n      return loaded;\n    } catch(e) {\n      isSIMDSupported = false;\n    }\n  }\n\n  const loader = isSIMDSupported ? getSIMD : getNonSIMD;\n  return loader(importObject);\n}\n\nasync function setupWasm(getSIMD, getNonSIMD) {\n  const memory = new WebAssembly.Memory({\n    // in pages of 64KiB each\n    // these values need to be compatible with those declared when building in `build-wasm`\n    initial: 1040,  // 65MB\n    maximum: 65536, // 4GB\n  });\n  const wasmModule = await wasmLoader(memory, getSIMD, getNonSIMD);\n\n  /**\n   * Argon2id hash function\n   * @callback computeHash\n   * @param {Object} params\n   * @param {Uint8Array} params.password - password\n   * @param {Uint8Array} params.salt - salt\n   * @param {Integer} params.parallelism\n   * @param {Integer} params.passes\n   * @param {Integer} params.memorySize - in kibibytes\n   * @param {Integer} params.tagLength - output tag length\n   * @param {Uint8Array} [params.ad] - associated data (optional)\n   * @param {Uint8Array} [params.secret] - secret data (optional)\n   * @return {Uint8Array} argon2id hash\n   */\n  const computeHash = (params) => argon2id(params, { instance: wasmModule.instance, memory });\n\n  return computeHash;\n}\n\nfunction _loadWasmModule (sync, filepath, src, imports) {\n  function _instantiateOrCompile(source, imports, stream) {\n    var instantiateFunc = stream ? WebAssembly.instantiateStreaming : WebAssembly.instantiate;\n    var compileFunc = stream ? WebAssembly.compileStreaming : WebAssembly.compile;\n\n    if (imports) {\n      return instantiateFunc(source, imports)\n    } else {\n      return compileFunc(source)\n    }\n  }\n\n  \nvar buf = null;\n\n\nvar raw = globalThis.atob(src);\nvar rawLength = raw.length;\nbuf = new Uint8Array(new ArrayBuffer(rawLength));\nfor(var i = 0; i < rawLength; i++) {\n   buf[i] = raw.charCodeAt(i);\n}\n\n\n\n  {\n    return _instantiateOrCompile(buf, imports, false)\n  }\n}\n\nfunction wasmSIMD(imports){return _loadWasmModule(0, null, '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', imports)}\n\nfunction wasmNonSIMD(imports){return _loadWasmModule(0, null, 'AGFzbQEAAAABPwhgBH9/f38AYAABf2AAAGADf39/AGARf39/f39/f39/f39/f39/f38AYAl/f39/f39/f38Bf2ABfwBgAX8BfwITAQNlbnYGbWVtb3J5AgGQCICABAMLCgIDBAAABQEGBwEEBQFwAQICBgkBfwFBkIjAAgsHfQoDeG9yAAEBRwADAkcyAAQFZ2V0TFoABRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALX2luaXRpYWxpemUAABBfX2Vycm5vX2xvY2F0aW9uAAkJc3RhY2tTYXZlAAYMc3RhY2tSZXN0b3JlAAcKc3RhY2tBbGxvYwAICQcBAEEBCwEACssaCgMAAQtQAQJ/A0AgACAEQQN0IgNqIAIgA2opAwAgASADaikDAIU3AwAgACADQQhyIgNqIAIgA2opAwAgASADaikDAIU3AwAgBEECaiIEQYABRw0ACwveDwICfgF/IAAgAUEDdGoiEyATKQMAIhEgACAFQQN0aiIBKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA1BA3RqIgUgESAFKQMAhUIgiSIRNwMAIAAgCUEDdGoiCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIoiSIRNwMAIBMgESATKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAFIBEgBSkDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgASARIAEpAwCFQgGJNwMAIAAgAkEDdGoiDSANKQMAIhEgACAGQQN0aiICKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA5BA3RqIgYgESAGKQMAhUIgiSIRNwMAIAAgCkEDdGoiCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIoiSIRNwMAIA0gESANKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAKIBEgCikDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAiARIAIpAwCFQgGJNwMAIAAgA0EDdGoiDiAOKQMAIhEgACAHQQN0aiIDKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIA9BA3RqIgcgESAHKQMAhUIgiSIRNwMAIAAgC0EDdGoiCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAMgESADKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAHIBEgBykDAIVCMIkiETcDACALIBEgCykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQgGJNwMAIAAgBEEDdGoiDyAPKQMAIhEgACAIQQN0aiIEKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAAIBBBA3RqIgggESAIKQMAhUIgiSIRNwMAIAAgDEEDdGoiACARIAApAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA8gESAPKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAIIBEgCCkDAIVCMIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIBMgEykDACIRIAIpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAggESAIKQMAhUIgiSIRNwMAIAsgESALKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACACIBEgAikDAIVCKIkiETcDACATIBEgEykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgCCARIAgpAwCFQjCJIhE3AwAgCyARIAspAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAIgESACKQMAhUIBiTcDACANIA0pAwAiESADKQMAIhJ8IBFCAYZC/v///x+DIBJC/////w+DfnwiETcDACAFIBEgBSkDAIVCIIkiETcDACAAIBEgACkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgAyARIAMpAwCFQiiJIhE3AwAgDSARIA0pAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAUgESAFKQMAhUIwiSIRNwMAIAAgESAAKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACADIBEgAykDAIVCAYk3AwAgDiAOKQMAIhEgBCkDACISfCARQgGGQv7///8fgyASQv////8Pg358IhE3AwAgBiARIAYpAwCFQiCJIhE3AwAgCSARIAkpAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAQgESAEKQMAhUIoiSIRNwMAIA4gESAOKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACAGIBEgBikDAIVCMIkiETcDACAJIBEgCSkDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgBCARIAQpAwCFQgGJNwMAIA8gDykDACIRIAEpAwAiEnwgEUIBhkL+////H4MgEkL/////D4N+fCIRNwMAIAcgESAHKQMAhUIgiSIRNwMAIAogESAKKQMAIhJ8IBFC/////w+DIBJCAYZC/v///x+DfnwiETcDACABIBEgASkDAIVCKIkiETcDACAPIBEgDykDACISfCARQv////8PgyASQgGGQv7///8fg358IhE3AwAgByARIAcpAwCFQjCJIhE3AwAgCiARIAopAwAiEnwgEUL/////D4MgEkIBhkL+////H4N+fCIRNwMAIAEgESABKQMAhUIBiTcDAAvdCAEPfwNAIAIgBUEDdCIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAIgBkEIciIGaiABIAZqKQMAIAAgBmopAwCFNwMAIAVBAmoiBUGAAUcNAAsDQCADIARBA3QiAGogACACaikDADcDACADIARBAXIiAEEDdCIBaiABIAJqKQMANwMAIAMgBEECciIBQQN0IgVqIAIgBWopAwA3AwAgAyAEQQNyIgVBA3QiBmogAiAGaikDADcDACADIARBBHIiBkEDdCIHaiACIAdqKQMANwMAIAMgBEEFciIHQQN0IghqIAIgCGopAwA3AwAgAyAEQQZyIghBA3QiCWogAiAJaikDADcDACADIARBB3IiCUEDdCIKaiACIApqKQMANwMAIAMgBEEIciIKQQN0IgtqIAIgC2opAwA3AwAgAyAEQQlyIgtBA3QiDGogAiAMaikDADcDACADIARBCnIiDEEDdCINaiACIA1qKQMANwMAIAMgBEELciINQQN0Ig5qIAIgDmopAwA3AwAgAyAEQQxyIg5BA3QiD2ogAiAPaikDADcDACADIARBDXIiD0EDdCIQaiACIBBqKQMANwMAIAMgBEEOciIQQQN0IhFqIAIgEWopAwA3AwAgAyAEQQ9yIhFBA3QiEmogAiASaikDADcDACADIARB//8DcSAAQf//A3EgAUH//wNxIAVB//8DcSAGQf//A3EgB0H//wNxIAhB//8DcSAJQf//A3EgCkH//wNxIAtB//8DcSAMQf//A3EgDUH//wNxIA5B//8DcSAPQf//A3EgEEH//wNxIBFB//8DcRACIARB8ABJIQAgBEEQaiEEIAANAAtBACEBIANBAEEBQRBBEUEgQSFBMEExQcAAQcEAQdAAQdEAQeAAQeEAQfAAQfEAEAIgA0ECQQNBEkETQSJBI0EyQTNBwgBBwwBB0gBB0wBB4gBB4wBB8gBB8wAQAiADQQRBBUEUQRVBJEElQTRBNUHEAEHFAEHUAEHVAEHkAEHlAEH0AEH1ABACIANBBkEHQRZBF0EmQSdBNkE3QcYAQccAQdYAQdcAQeYAQecAQfYAQfcAEAIgA0EIQQlBGEEZQShBKUE4QTlByABByQBB2ABB2QBB6ABB6QBB+ABB+QAQAiADQQpBC0EaQRtBKkErQTpBO0HKAEHLAEHaAEHbAEHqAEHrAEH6AEH7ABACIANBDEENQRxBHUEsQS1BPEE9QcwAQc0AQdwAQd0AQewAQe0AQfwAQf0AEAIgA0EOQQ9BHkEfQS5BL0E+QT9BzgBBzwBB3gBB3wBB7gBB7wBB/gBB/wAQAgNAIAIgAUEDdCIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAiAAQQhyIgRqIgUgAyAEaikDACAFKQMAhTcDACACIABBEHIiBGoiBSADIARqKQMAIAUpAwCFNwMAIAIgAEEYciIAaiIEIAAgA2opAwAgBCkDAIU3AwAgAUEEaiIBQYABRw0ACwsWACAAIAEgAiADEAMgACACIAIgAxADC3sCAX8BfiACIQkgATUCACEKIAQgBXIEQCABKAIEIANwIQkLIAAgCTYCACAAIAdBAWsgBSAEGyAIbCAGQQFrQQBBfyAGGyACIAlGG2oiASAFQQFqIAhsQQAgBBtqIAGtIAogCn5CIIh+QiCIp0F/c2ogByAIbHA2AgQgAAsEACMACwYAIAAkAAsQACMAIABrQXBxIgAkACAACwUAQYAICw==', imports)}\n\nconst loadWasm = async () => setupWasm(\n  (instanceObject) => wasmSIMD(instanceObject),\n  (instanceObject) => wasmNonSIMD(instanceObject),\n);\n\nvar index$2 = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  default: loadWasm\n});\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\n/* \n  bzip2.js - a small bzip2 decompression implementation\n  \n  Copyright 2011 by antimatter15 (antimatter15@gmail.com)\n  \n  Based on micro-bunzip by Rob Landley (rob@landley.net).\n\n  Copyright (c) 2011 by antimatter15 (antimatter15@gmail.com).\n\n  Permission is hereby granted, free of charge, to any person obtaining a\n  copy of this software and associated documentation files (the \"Software\"),\n  to deal in the Software without restriction, including without limitation\n  the rights to use, copy, modify, merge, publish, distribute, sublicense,\n  and/or sell copies of the Software, and to permit persons to whom the\n  Software is furnished to do so, subject to the following conditions:\n  \n  The above copyright notice and this permission notice shall be included\n  in all copies or substantial portions of the Software.\n  \n  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n  DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH\n  THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\nvar bzip2_1;\nvar hasRequiredBzip2;\n\nfunction requireBzip2 () {\n\tif (hasRequiredBzip2) return bzip2_1;\n\thasRequiredBzip2 = 1;\n\tfunction Bzip2Error(message) {\n\t    this.name = 'Bzip2Error';\n\t    this.message = message;\n\t    this.stack = (new Error()).stack;\n\t}\n\tBzip2Error.prototype = new Error;\n\t \n\tvar message = {\n\t    Error: function(message) {throw new Bzip2Error(message);}\n\t};\n\n\tvar bzip2 = {};\n\tbzip2.Bzip2Error = Bzip2Error;\n\n\tbzip2.crcTable =\n\t[\n\t   0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9,\n\t   0x130476dc, 0x17c56b6b, 0x1a864db2, 0x1e475005,\n\t   0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61,\n\t   0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,\n\t   0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9,\n\t   0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75,\n\t   0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011,\n\t   0x791d4014, 0x7ddc5da3, 0x709f7b7a, 0x745e66cd,\n\t   0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,\n\t   0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5,\n\t   0xbe2b5b58, 0xbaea46ef, 0xb7a96036, 0xb3687d81,\n\t   0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d,\n\t   0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49,\n\t   0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,\n\t   0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1,\n\t   0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d,\n\t   0x34867077, 0x30476dc0, 0x3d044b19, 0x39c556ae,\n\t   0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072,\n\t   0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16,\n\t   0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca,\n\t   0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde,\n\t   0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02,\n\t   0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, 0x53dc6066,\n\t   0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,\n\t   0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e,\n\t   0xbfa1b04b, 0xbb60adfc, 0xb6238b25, 0xb2e29692,\n\t   0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6,\n\t   0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a,\n\t   0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e,\n\t   0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2,\n\t   0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686,\n\t   0xd5b88683, 0xd1799b34, 0xdc3abded, 0xd8fba05a,\n\t   0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637,\n\t   0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,\n\t   0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f,\n\t   0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53,\n\t   0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47,\n\t   0x36194d42, 0x32d850f5, 0x3f9b762c, 0x3b5a6b9b,\n\t   0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,\n\t   0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623,\n\t   0xf12f560e, 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7,\n\t   0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b,\n\t   0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f,\n\t   0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,\n\t   0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7,\n\t   0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b,\n\t   0x9b3660c6, 0x9ff77d71, 0x92b45ba8, 0x9675461f,\n\t   0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3,\n\t   0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640,\n\t   0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c,\n\t   0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8,\n\t   0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24,\n\t   0x119b4be9, 0x155a565e, 0x18197087, 0x1cd86d30,\n\t   0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,\n\t   0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088,\n\t   0x2497d08d, 0x2056cd3a, 0x2d15ebe3, 0x29d4f654,\n\t   0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0,\n\t   0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c,\n\t   0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18,\n\t   0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4,\n\t   0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0,\n\t   0x9abc8bd5, 0x9e7d9662, 0x933eb0bb, 0x97ffad0c,\n\t   0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668,\n\t   0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4\n\t];\n\n\tbzip2.array = function(bytes) {\n\t    var bit = 0, byte = 0;\n\t    var BITMASK = [0, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF ];\n\t    return function(n) {\n\t        var result = 0;\n\t        while(n > 0) {\n\t            var left = 8 - bit;\n\t            if (n >= left) {\n\t                result <<= left;\n\t                result |= (BITMASK[left] & bytes[byte++]);\n\t                bit = 0;\n\t                n -= left;\n\t            } else {\n\t                result <<= n;\n\t                result |= ((bytes[byte] & (BITMASK[n] << (8 - n - bit))) >> (8 - n - bit));\n\t                bit += n;\n\t                n = 0;\n\t            }\n\t        }\n\t        return result;\n\t    }\n\t};\n\n\t    \n\tbzip2.simple = function(srcbuffer, stream) {\n\t    var bits = bzip2.array(srcbuffer);\n\t    var size = bzip2.header(bits);\n\t    var ret = false;\n\t    var bufsize = 100000 * size;\n\t    var buf = new Int32Array(bufsize);\n\t    \n\t    do {\n\t        ret = bzip2.decompress(bits, stream, buf, bufsize);        \n\t    } while(!ret);\n\t};\n\n\tbzip2.header = function(bits) {\n\t    this.byteCount = new Int32Array(256);\n\t    this.symToByte = new Uint8Array(256);\n\t    this.mtfSymbol = new Int32Array(256);\n\t    this.selectors = new Uint8Array(0x8000);\n\n\t    if (bits(8*3) != 4348520) message.Error(\"No magic number found\");\n\n\t    var i = bits(8) - 48;\n\t    if (i < 1 || i > 9) message.Error(\"Not a BZIP archive\");\n\t    return i;\n\t};\n\n\n\t//takes a function for reading the block data (starting with 0x314159265359)\n\t//a block size (0-9) (optional, defaults to 9)\n\t//a length at which to stop decompressing and return the output\n\tbzip2.decompress = function(bits, stream, buf, bufsize, streamCRC) {\n\t    var MAX_HUFCODE_BITS = 20;\n\t    var MAX_SYMBOLS = 258;\n\t    var SYMBOL_RUNA = 0;\n\t    var SYMBOL_RUNB = 1;\n\t    var GROUP_SIZE = 50;\n\t    var crc = 0 ^ (-1);\n\t    \n\t    for(var h = '', i = 0; i < 6; i++) h += bits(8).toString(16);\n\t    if (h == \"177245385090\") {\n\t      var finalCRC = bits(32)|0;\n\t      if (finalCRC !== streamCRC) message.Error(\"Error in bzip2: crc32 do not match\");\n\t      // align stream to byte\n\t      bits(null);\n\t      return null; // reset streamCRC for next call\n\t    }\n\t    if (h != \"314159265359\") message.Error(\"Invalid bzip data\");\n\t    var crcblock = bits(32)|0; // CRC code\n\t    if (bits(1)) message.Error(\"unsupported obsolete version\");\n\t    var origPtr = bits(24);\n\t    if (origPtr > bufsize) message.Error(\"Initial position larger than buffer size\");\n\t    var t = bits(16);\n\t    var symTotal = 0;\n\t    for (i = 0; i < 16; i++) {\n\t        if (t & (1 << (15 - i))) {\n\t            var k = bits(16);\n\t            for(j = 0; j < 16; j++) {\n\t                if (k & (1 << (15 - j))) {\n\t                    this.symToByte[symTotal++] = (16 * i) + j;\n\t                }\n\t            }\n\t        }\n\t    }\n\n\t    var groupCount = bits(3);\n\t    if (groupCount < 2 || groupCount > 6) message.Error(\"Invalid bzip data\");\n\t    var nSelectors = bits(15);\n\t    if (nSelectors == 0) message.Error(\"Invalid bzip data\");\n\t    for(var i = 0; i < groupCount; i++) this.mtfSymbol[i] = i;\n\n\t    for(var i = 0; i < nSelectors; i++) {\n\t        for(var j = 0; bits(1); j++) if (j >= groupCount) message.Error(\"Invalid bzip data\");\n\t        var uc = this.mtfSymbol[j];\n\t        for(var k = j-1; k>=0; k--) {\n\t            this.mtfSymbol[k+1] = this.mtfSymbol[k];\n\t        }\n\t        this.mtfSymbol[0] = uc;\n\t        this.selectors[i] = uc;\n\t    }\n\n\t    var symCount = symTotal + 2;\n\t    var groups = [];\n\t    var length = new Uint8Array(MAX_SYMBOLS),\n\t    temp = new Uint16Array(MAX_HUFCODE_BITS+1);\n\n\t    var hufGroup;\n\n\t    for(var j = 0; j < groupCount; j++) {\n\t        t = bits(5); //lengths\n\t        for(var i = 0; i < symCount; i++) {\n\t            while(true){\n\t                if (t < 1 || t > MAX_HUFCODE_BITS) message.Error(\"Invalid bzip data\");\n\t                if (!bits(1)) break;\n\t                if (!bits(1)) t++;\n\t                else t--;\n\t            }\n\t            length[i] = t;\n\t        }\n\t        var  minLen,  maxLen;\n\t        minLen = maxLen = length[0];\n\t        for(var i = 1; i < symCount; i++) {\n\t            if (length[i] > maxLen) maxLen = length[i];\n\t            else if (length[i] < minLen) minLen = length[i];\n\t        }\n\t        hufGroup = groups[j] = {};\n\t        hufGroup.permute = new Int32Array(MAX_SYMBOLS);\n\t        hufGroup.limit = new Int32Array(MAX_HUFCODE_BITS + 1);\n\t        hufGroup.base = new Int32Array(MAX_HUFCODE_BITS + 1);\n\n\t        hufGroup.minLen = minLen;\n\t        hufGroup.maxLen = maxLen;\n\t        var base = hufGroup.base;\n\t        var limit = hufGroup.limit;\n\t        var pp = 0;\n\t        for(var i = minLen; i <= maxLen; i++)\n\t        for(var t = 0; t < symCount; t++)\n\t        if (length[t] == i) hufGroup.permute[pp++] = t;\n\t        for(i = minLen; i <= maxLen; i++) temp[i] = limit[i] = 0;\n\t        for(i = 0; i < symCount; i++) temp[length[i]]++;\n\t        pp = t = 0;\n\t        for(i = minLen; i < maxLen; i++) {\n\t            pp += temp[i];\n\t            limit[i] = pp - 1;\n\t            pp <<= 1;\n\t            base[i+1] = pp - (t += temp[i]);\n\t        }\n\t        limit[maxLen] = pp + temp[maxLen] - 1;\n\t        base[minLen] = 0;\n\t    }\n\n\t    for(var i = 0; i < 256; i++) { \n\t        this.mtfSymbol[i] = i;\n\t        this.byteCount[i] = 0;\n\t    }\n\t    var runPos, count, symCount, selector;\n\t    runPos = count = symCount = selector = 0;    \n\t    while(true) {\n\t        if (!(symCount--)) {\n\t            symCount = GROUP_SIZE - 1;\n\t            if (selector >= nSelectors) message.Error(\"Invalid bzip data\");\n\t            hufGroup = groups[this.selectors[selector++]];\n\t            base = hufGroup.base;\n\t            limit = hufGroup.limit;\n\t        }\n\t        i = hufGroup.minLen;\n\t        j = bits(i);\n\t        while(true) {\n\t            if (i > hufGroup.maxLen) message.Error(\"Invalid bzip data\");\n\t            if (j <= limit[i]) break;\n\t            i++;\n\t            j = (j << 1) | bits(1);\n\t        }\n\t        j -= base[i];\n\t        if (j < 0 || j >= MAX_SYMBOLS) message.Error(\"Invalid bzip data\");\n\t        var nextSym = hufGroup.permute[j];\n\t        if (nextSym == SYMBOL_RUNA || nextSym == SYMBOL_RUNB) {\n\t            if (!runPos){\n\t                runPos = 1;\n\t                t = 0;\n\t            }\n\t            if (nextSym == SYMBOL_RUNA) t += runPos;\n\t            else t += 2 * runPos;\n\t            runPos <<= 1;\n\t            continue;\n\t        }\n\t        if (runPos) {\n\t            runPos = 0;\n\t            if (count + t > bufsize) message.Error(\"Invalid bzip data\");\n\t            uc = this.symToByte[this.mtfSymbol[0]];\n\t            this.byteCount[uc] += t;\n\t            while(t--) buf[count++] = uc;\n\t        }\n\t        if (nextSym > symTotal) break;\n\t        if (count >= bufsize) message.Error(\"Invalid bzip data\");\n\t        i = nextSym - 1;\n\t        uc = this.mtfSymbol[i];\n\t        for(var k = i-1; k>=0; k--) {\n\t            this.mtfSymbol[k+1] = this.mtfSymbol[k];\n\t        }\n\t        this.mtfSymbol[0] = uc;\n\t        uc = this.symToByte[uc];\n\t        this.byteCount[uc]++;\n\t        buf[count++] = uc;\n\t    }\n\t    if (origPtr < 0 || origPtr >= count) message.Error(\"Invalid bzip data\");\n\t    var j = 0;\n\t    for(var i = 0; i < 256; i++) {\n\t        k = j + this.byteCount[i];\n\t        this.byteCount[i] = j;\n\t        j = k;\n\t    }\n\t    for(var i = 0; i < count; i++) {\n\t        uc = buf[i] & 0xff;\n\t        buf[this.byteCount[uc]] |= (i << 8);\n\t        this.byteCount[uc]++;\n\t    }\n\t    var pos = 0, current = 0, run = 0;\n\t    if (count) {\n\t        pos = buf[origPtr];\n\t        current = (pos & 0xff);\n\t        pos >>= 8;\n\t        run = -1;\n\t    }\n\t    count = count;\n\t    var copies, previous, outbyte;\n\t    while(count) {\n\t        count--;\n\t        previous = current;\n\t        pos = buf[pos];\n\t        current = pos & 0xff;\n\t        pos >>= 8;\n\t        if (run++ == 3) {\n\t            copies = current;\n\t            outbyte = previous;\n\t            current = -1;\n\t        } else {\n\t            copies = 1;\n\t            outbyte = current;\n\t        }\n\t        while(copies--) {\n\t            crc = ((crc << 8) ^ this.crcTable[((crc>>24) ^ outbyte) & 0xFF])&0xFFFFFFFF; // crc32\n\t            stream(outbyte);\n\t        }\n\t        if (current != previous) run = 0;\n\t    }\n\n\t    crc = (crc ^ (-1)) >>> 0;\n\t    if ((crc|0) != (crcblock|0)) message.Error(\"Error in bzip2: crc32 do not match\");\n\t    streamCRC = (crc ^ ((streamCRC << 1) | (streamCRC >>> 31))) & 0xFFFFFFFF;\n\t    return streamCRC;\n\t};\n\n\tbzip2_1 = bzip2;\n\treturn bzip2_1;\n}\n\nvar bit_iterator;\nvar hasRequiredBit_iterator;\n\nfunction requireBit_iterator () {\n\tif (hasRequiredBit_iterator) return bit_iterator;\n\thasRequiredBit_iterator = 1;\n\tvar BITMASK = [0, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF];\n\n\t// returns a function that reads bits.\n\t// takes a buffer iterator as input\n\tbit_iterator = function bitIterator(nextBuffer) {\n\t    var bit = 0, byte = 0;\n\t    var bytes = nextBuffer();\n\t    var f = function(n) {\n\t        if (n === null && bit != 0) {  // align to byte boundary\n\t            bit = 0;\n\t            byte++;\n\t            return;\n\t        }\n\t        var result = 0;\n\t        while(n > 0) {\n\t            if (byte >= bytes.length) {\n\t                byte = 0;\n\t                bytes = nextBuffer();\n\t            }\n\t            var left = 8 - bit;\n\t            if (bit === 0 && n > 0)\n\t                f.bytesRead++;\n\t            if (n >= left) {\n\t                result <<= left;\n\t                result |= (BITMASK[left] & bytes[byte++]);\n\t                bit = 0;\n\t                n -= left;\n\t            } else {\n\t                result <<= n;\n\t                result |= ((bytes[byte] & (BITMASK[n] << (8 - n - bit))) >> (8 - n - bit));\n\t                bit += n;\n\t                n = 0;\n\t            }\n\t        }\n\t        return result;\n\t    };\n\t    f.bytesRead = 0;\n\t    return f;\n\t};\n\treturn bit_iterator;\n}\n\nvar unbzip2Stream_1;\nvar hasRequiredUnbzip2Stream;\n\nfunction requireUnbzip2Stream () {\n\tif (hasRequiredUnbzip2Stream) return unbzip2Stream_1;\n\thasRequiredUnbzip2Stream = 1;\n\tconst bz2 = requireBzip2();\n\tconst bitIterator = requireBit_iterator();\n\n\tunbzip2Stream_1 = unbzip2Stream;\n\n\tfunction unbzip2Stream(input) {\n\t    const bufferQueue = [];\n\t    let hasBytes = 0;\n\t    let blockSize = 0;\n\t    let broken = false;\n\t    let hasAllData = false;\n\t    let bitReader = null;\n\t    let streamCRC = null;\n\n\t    function decompressBlock(push){\n\t        if(!blockSize) {\n\t            blockSize = bz2.header(bitReader);\n\t            //console.error(\"got header of\", blockSize);\n\t            streamCRC = 0;\n\t            return false;\n\t        } else {\n\t            const bufsize = 100000 * blockSize;\n\t            const buf = new Int32Array(bufsize);\n\n\t            const chunk = [];\n\t            const f = function(b) {\n\t                chunk.push(b);\n\t            };\n\n\t            streamCRC = bz2.decompress(bitReader, f, buf, bufsize, streamCRC);\n\t            if (streamCRC === null) {\n\t                // reset for next bzip2 header\n\t                blockSize = 0;\n\t                return false;\n\t            } else {\n\t                //console.error('decompressed', chunk.length,'bytes');\n\t                push(new Uint8Array(chunk));\n\t                return true;\n\t            }\n\t        }\n\t    }\n\n\t    let outlength = 0;\n\t    function decompressAndQueue(controller) {\n\t        if (broken) return;\n\t        try {\n\t            return decompressBlock(function(d) {\n\t                controller.enqueue(d);\n\t                if (d !== null) {\n\t                    //console.error('write at', outlength.toString(16));\n\t                    outlength += d.length;\n\t                } else {\n\t                    //console.error('written EOS');\n\t                }\n\t            });\n\t        } catch(e) {\n\t            //console.error(e);\n\t            controller.error(e);\n\t            broken = true;\n\t            return true;\n\t        }\n\t    }\n\n\t    let inputReader;\n\t    return new ReadableStream({\n\t        start() {\n\t            inputReader = input.getReader();\n\t        },\n\t        async pull(controller) {\n\t            try {\n\t                while (true) {\n\t                    while (!(\n\t                        hasAllData ||\n\t                            (\n\t                                bitReader &&\n\t                                hasBytes - bitReader.bytesRead + 1 >= 25000 + 100000 * (blockSize || 4)\n\t                            )\n\t                    )) {\n\t                        const { value, done } = await inputReader.read();\n\t                        if (!done) {\n\t                            bufferQueue.push(value);\n\t                            hasBytes += value.length;\n\t                            if (bitReader === null) {\n\t                                bitReader = bitIterator(function() {\n\t                                    return bufferQueue.shift();\n\t                                });\n\t                            }\n\t                        } else {\n\t                            hasAllData = true;\n\t                        }\n\t                    }\n\t                    while (\n\t                        hasAllData ?\n\t                            (bitReader && hasBytes > bitReader.bytesRead) :\n\t                            (\n\t                                bitReader &&\n\t                                hasBytes - bitReader.bytesRead + 1 >= 25000 + 100000 * (blockSize || 4)\n\t                            )\n\t                    ) {\n\t                        //console.error('decompressing with', hasBytes - bitReader.bytesRead + 1, 'bytes in buffer');\n\t                        if (decompressAndQueue(controller)) {\n\t                            return; // `pull` will get called again\n\t                        }\n\t                    }\n\t                    if (hasAllData && !broken && (!bitReader || hasBytes <= bitReader.bytesRead)) {\n\t                        if (streamCRC === null) {\n\t                            controller.close();\n\t                        } else {\n\t                            controller.error(new Error(\"input stream ended prematurely\"));\n\t                        }\n\t                        return;\n\t                    }\n\t                }\n\t            } catch (e) {\n\t                controller.error(e);\n\t            }\n\t        },\n\t        async cancel(reason) {\n\t            await inputReader.abort(reason);\n\t        }\n\t    }, { highWaterMark: 0 });\n\t}\n\treturn unbzip2Stream_1;\n}\n\nvar unbzip2StreamExports = requireUnbzip2Stream();\nvar index = /*@__PURE__*/getDefaultExportFromCjs(unbzip2StreamExports);\n\nvar index$1 = /*#__PURE__*/_mergeNamespaces({\n  __proto__: null,\n  default: index\n}, [unbzip2StreamExports]);\n\nexport { AEADEncryptedDataPacket, CleartextMessage, CompressedDataPacket, GrammarError, LiteralDataPacket, MarkerPacket, Message, OnePassSignaturePacket, PacketList, PaddingPacket, PrivateKey, PublicKey, PublicKeyEncryptedSessionKeyPacket, PublicKeyPacket, PublicSubkeyPacket, SecretKeyPacket, SecretSubkeyPacket, Signature, SignaturePacket, Subkey, SymEncryptedIntegrityProtectedDataPacket, SymEncryptedSessionKeyPacket, SymmetricallyEncryptedDataPacket, TrustPacket, UnparseablePacket, UserAttributePacket, UserIDPacket, armor, config, createCleartextMessage, createMessage, decrypt, decryptKey, decryptSessionKeys, encrypt, encryptKey, encryptSessionKey, enums, generateKey, generateSessionKey, readCleartextMessage, readKey, readKeys, readMessage, readPrivateKey, readPrivateKeys, readSignature, reformatKey, revokeKey, sign, unarmor, verify };\n", "/** Base64 character set used for decoding */\nconst KEY_STRING: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n/**\n * Looks up the index of a character in the Base64 character set.\n *\n * @param {string} character - The character to look up\n * @returns {number | undefined} The index of the character in the Base64 set, or undefined if not found\n */\nconst atobLookup = (character: string): number | undefined => {\n    const index: number = KEY_STRING.indexOf(character);\n    return index < 0 ? undefined : index;\n};\n\n/**\n * Decodes a Base64 encoded string to its original form.\n * This is a polyfill for the atob function, which may not be available in all environments.\n *\n * @param {string} input - The Base64 encoded string to decode\n * @returns {string | undefined} The decoded string, or undefined if the input is invalid\n */\nexport const atob = (input: string): string | undefined => {\n    let data = `${input}`;\n    data = data.replace(/[ \\t\\n\\f\\r]/g, '');\n\n    if (data.length % 4 === 0) {\n        data = data.replace(/==?$/, '');\n    }\n\n    if (data.length % 4 === 1 || /[^+/0-9A-Za-z]/.test(data)) {\n        return undefined;\n    }\n\n    let output = '';\n    let buffer = 0;\n    let accumulatedBits = 0;\n\n    [...data].forEach((character: string) => {\n        buffer <<= 6;\n        buffer |= atobLookup(character)!;\n        accumulatedBits += 6;\n        if (accumulatedBits === 24) {\n            output += String.fromCharCode((buffer & 0xff0000) >> 16);\n            output += String.fromCharCode((buffer & 0xff00) >> 8);\n            output += String.fromCharCode(buffer & 0xff);\n            buffer = accumulatedBits = 0;\n        }\n    });\n\n    if (accumulatedBits === 12) {\n        buffer >>= 4;\n        output += String.fromCharCode(buffer);\n    } else if (accumulatedBits === 18) {\n        buffer >>= 2;\n        output += String.fromCharCode((buffer & 0xff00) >> 8);\n        output += String.fromCharCode(buffer & 0xff);\n    }\n    return output;\n};\n", "import {\n    type CleartextMessage,\n    type Key,\n    readCleartextMessage,\n    readKey,\n    type VerifyMessageResult,\n    verify,\n    // @ts-expect-error\n} from '../../../../node_modules/openpgp/dist/openpgp.mjs';\n// TODO: revert back to 'openpgp' once the issue has been resolved here: https://github.com/openpgpjs/openpgpjs/issues/1814\nimport type { Logger } from '../logger/Logger.ts';\nimport { atob } from './LicenseManagerUtils.ts';\n\n/**\n * Checks if a value is missing or empty.\n *\n * @param {string | undefined} value - The value to check\n * @returns {boolean} True if the value is null, undefined, or empty string\n */\nconst missingOrEmpty = (value?: string | undefined): boolean => {\n    return value == null || value.length === 0;\n};\n\ndeclare global {\n    const __RELEASE_INFORMATION__: string;\n    const __DISTRIBUTED_CACHING_MECHANISM__: string;\n    const __MULTI_THREAD_SYNC_MUTEX__: string;\n    const __INTERFACE_COMPOSITION_PATTERN__: string;\n}\n\n/** Type representing different license types */\ntype LicenseType = 'none' | 'free' | 'trial' | 'pro';\n\n/**\n * The LicenseManager class is responsible for validating license keys,\n * ensuring that only users with valid licenses can access the\n * Pro version features of the FIXParsers.\n *\n * @public\n */\nclass LicenseManager {\n    /** Release information for version checking */\n    static readonly #RELEASE_INFORMATION: string | undefined =\n        __RELEASE_INFORMATION__ || process.env.__RELEASE_INFORMATION__;\n    /** Current license key */\n    static #licenseKey: string;\n    /** Whether to use distributed key */\n    static #useDistributedKey = false;\n    /** License key ID */\n    static #licenseKeyId: string | undefined = undefined;\n    /** License expiry date */\n    // static #licenseExpiry: string | undefined = undefined;\n    /** Current license type */\n    static #licenseType: LicenseType | undefined = 'none';\n    /** Logger instance */\n    static #logger: Logger;\n    /** Public key for license verification */\n    static readonly #PUBLIC_KEY = `-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxjMEYSAlmRYJKwYBBAHaRw8BAQdATxsL8ZGu79iIXGoMwAGxis0Ot6zN+c+H\nFiEfymdU5QHNIGZpeHBhcnNlci5pbyA8aW5mb0BmaXhwYXJzZXIuaW8+wowE\nEBYKAB0FAmEgJZkECwkHCAMVCAoEFgACAQIZAQIbAwIeAQAhCRDpKZsYDAPF\ncxYhBOT5iMsY4w3omYDb+ukpmxgMA8VziRIA/A5mUMldqdrKsxJddLiMfJ30\nDVyKt8dXn6Fu6b2riwrHAP0YqK+goCIt7y6de9KTWmnWBgMAxX5XNAK5B41A\nDsfYCM44BGEgJZkSCisGAQQBl1UBBQEBB0A0y8VUtHP6LESsJZN7yEpOKHtR\n2JCLu/swlNU2QfojLwMBCAfCeAQYFggACQUCYSAlmQIbDAAhCRDpKZsYDAPF\ncxYhBOT5iMsY4w3omYDb+ukpmxgMA8VzB/QBAOzjjWDBPlSDYpPMv13s8OS6\nTzi6Zidom0ZY6lkJMBNCAQCNwsJXAWbxHmHmMJq5yLe5GaL9YQWxeUM4AdUa\nGqHtBQ===YpfV\n-----END PGP PUBLIC KEY BLOCK-----`;\n    /** Distributed key for license verification */\n    static readonly #DISTRIBUTED_KEY = `-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nxjMEZ9meoxYJKwYBBAHaRw8BAQdADNVkwzUzMTGsNiaL9OaegU3jLfcsK1Is\nlrNhtrRgJ33NI2ZpeHBhcnNlci5kZXYgPHNhbGVzQGZpeHBhcnNlci5kZXY+\nwsATBBMWCgCFBYJn2Z6jAwsJBwmQInDc59hOxMlFFAAAAAAAHAAgc2FsdEBu\nb3RhdGlvbnMub3BlbnBncGpzLm9yZ45nyD2GOyHqU5VNizLnOPzwVFoSPXY+\n6JXj4LrD1+YYBRUKCA4MBBYAAgECGQECmwMCHgEWIQQlYFgoCSDbZl/nmYIi\ncNzn2E7EyQAAYZ4A+wfqPQX+WAViaMo4JtzcUEsQ1u4rQ146N6wKrfeilarU\nAQCkXUlyDfpiXcx3N0ZMq0ZwCid55LU9NxY/bOs558/MDM44BGfZnqMSCisG\nAQQBl1UBBQEBB0DnPdp7/ixyH+W2Jmtv4IMex1Eg4wWiK4uihuS0czVZFQMB\nCAfCvgQYFgoAcAWCZ9meowmQInDc59hOxMlFFAAAAAAAHAAgc2FsdEBub3Rh\ndGlvbnMub3BlbnBncGpzLm9yZ7Sxnb0o/uRph2KO9FVFdM7qAP9V3YKQUesV\nuhbuzS/BApsMFiEEJWBYKAkg22Zf55mCInDc59hOxMkAAJ1aAP9YutddNVta\nS5ZXnD0TGixaxWGBs96860f4U3qluhTjUAD9EAu8DxxpKVw59ngh8836nlRZ\n7HsZg95LnBYkoMOKNQ0=\n=O4nQ\n-----END PGP PUBLIC KEY BLOCK-----`;\n\n    /** Error message for missing free license */\n    public static readonly ERROR_MESSAGE_NO_FREE_LICENSE = 'Requires FIXParser Free license';\n    /** Error message for missing pro license */\n    public static readonly ERROR_MESSAGE_NO_LICENSE = 'Requires FIXParser Pro license';\n\n    /**\n     * Private constructor to prevent instantiation.\n     * This is a static class.\n     */\n    private constructor() {\n        // Private constructor prevents instantiation\n    }\n\n    /**\n     * Validates if a free license is present and valid.\n     * Checks for free, pro, or trial license types.\n     *\n     * @returns {boolean} True if a valid free license is present\n     */\n    public static readonly validateFreeLicense: () => boolean = Object.freeze(() => {\n        if (\n            LicenseManager.#licenseKeyId &&\n            (LicenseManager.#licenseType === 'free' ||\n                LicenseManager.#licenseType === 'pro' ||\n                LicenseManager.#licenseType === 'trial')\n        ) {\n            return true;\n        }\n        LicenseManager.outputInvalidFreeLicenseKey();\n        return false;\n    });\n\n    /**\n     * Validates if a pro license is present and valid.\n     * Checks for pro or trial license types.\n     *\n     * @returns {boolean} True if a valid pro license is present\n     */\n    public static readonly validateLicense: () => boolean = Object.freeze(() => {\n        if (\n            LicenseManager.#licenseKeyId &&\n            (LicenseManager.#licenseType === 'pro' || LicenseManager.#licenseType === 'trial')\n        ) {\n            return true;\n        }\n        LicenseManager.outputInvalidLicenseKey();\n        return false;\n    });\n\n    /**\n     * Sets the logger instance for license validation messages.\n     *\n     * @param {Logger} loggerInstance - The logger instance to use\n     */\n    public static setLogger(loggerInstance: Logger) {\n        LicenseManager.#logger = loggerInstance;\n    }\n\n    /**\n     * Sets and validates a license key.\n     * Processes the key, verifies its signature, and extracts license information.\n     *\n     * @param {string} rawLicenseKey - The raw license key to validate\n     * @returns {Promise<void>} A promise that resolves when the license is validated\n     */\n    public static async setLicenseKey(rawLicenseKey: string): Promise<void> {\n        let licenseKey = `${rawLicenseKey}`.trim();\n        licenseKey = licenseKey.replace(/[\\x00-\\x1F\\x7F\\x80-\\x9F]/g, '');\n\n        if (!__DISTRIBUTED_CACHING_MECHANISM__ || !__MULTI_THREAD_SYNC_MUTEX__ || !__INTERFACE_COMPOSITION_PATTERN__) {\n            return;\n        }\n\n        if (`${licenseKey}`.startsWith(__DISTRIBUTED_CACHING_MECHANISM__)) {\n            licenseKey = licenseKey.replace(__DISTRIBUTED_CACHING_MECHANISM__, '');\n            LicenseManager.#useDistributedKey = true;\n        }\n\n        if (\n            !(\n                `${licenseKey}`.startsWith(__MULTI_THREAD_SYNC_MUTEX__) ||\n                `${licenseKey}`.startsWith(__INTERFACE_COMPOSITION_PATTERN__)\n            )\n        ) {\n            LicenseManager.outputInvalidLicenseKey();\n            return;\n        }\n\n        LicenseManager.#licenseKey = licenseKey;\n\n        if (missingOrEmpty(LicenseManager.#licenseKey)) {\n            LicenseManager.outputMissingLicenseKey();\n        } else {\n            try {\n                const readPublicKey: Key = await readKey({\n                    armoredKey: LicenseManager.#useDistributedKey\n                        ? LicenseManager.#DISTRIBUTED_KEY\n                        : LicenseManager.#PUBLIC_KEY,\n                });\n                const signedMessage: CleartextMessage = await readCleartextMessage({\n                    cleartextMessage: atob(LicenseManager.#licenseKey)!,\n                });\n                const verificationResult: VerifyMessageResult = await verify({\n                    message: signedMessage as any,\n                    verificationKeys: readPublicKey,\n                });\n                const { verified, keyID } = verificationResult.signatures[0];\n                await verified;\n                const [, , expiryTimestamp, licenseTypeValue]: string[] = signedMessage.getText().split('|');\n\n                let licenseType: LicenseType = 'none';\n                if (licenseTypeValue === 'free') {\n                    licenseType = 'free';\n                } else if (licenseTypeValue === 'trial') {\n                    licenseType = 'trial';\n                } else if (licenseTypeValue === 'pro') {\n                    licenseType = 'pro';\n                } else if (licenseTypeValue === 'true') {\n                    // Legacy\n                    licenseType = 'trial';\n                } else if (licenseTypeValue === 'false') {\n                    // Legacy\n                    licenseType = 'pro';\n                } else {\n                    LicenseManager.outputInvalidFreeLicenseKey();\n                }\n\n                LicenseManager.validateKey(keyID.toHex(), Number(expiryTimestamp), licenseType);\n            } catch (_error) {\n                LicenseManager.outputInvalidLicenseKey();\n                return;\n            }\n        }\n        return Promise.resolve();\n    }\n\n    /**\n     * Gets the release date from the release information.\n     *\n     * @returns {Date} The release date\n     */\n    private static getReleaseDate(): Date {\n        return new Date(Number.parseInt(atob(LicenseManager.#RELEASE_INFORMATION!)!, 10));\n    }\n\n    /**\n     * Formats a date into a human-readable string.\n     *\n     * @param {Date} date - The date to format\n     * @returns {string} The formatted date string\n     */\n    private static formatDate(date: Date): string {\n        const monthNames: string[] = [\n            'January',\n            'February',\n            'March',\n            'April',\n            'May',\n            'June',\n            'July',\n            'August',\n            'September',\n            'October',\n            'November',\n            'December',\n        ];\n\n        const day: number = date.getDate();\n        const monthIndex: number = date.getMonth();\n        const year: number = date.getFullYear();\n\n        return `${day} ${monthNames[monthIndex]} ${year}`;\n    }\n\n    /**\n     * Validates a license key by checking its ID, expiry date, and type.\n     *\n     * @param {string} keyId - The license key ID\n     * @param {number} expiryTimestamp - The license expiry timestamp\n     * @param {LicenseType} type - The license type\n     * @returns {boolean} True if the license is valid\n     */\n    private static validateKey(keyId: string, expiryTimestamp: number, type: LicenseType): boolean {\n        const releaseDate: Date = LicenseManager.getReleaseDate();\n        const expiry: Date = new Date(expiryTimestamp);\n\n        let valid = false;\n        let current = false;\n        if (!Number.isNaN(expiry.getTime())) {\n            valid = true;\n            current = releaseDate < expiry;\n        }\n\n        if (!valid) {\n            if (type === 'free') {\n                LicenseManager.outputInvalidFreeLicenseKey();\n            } else {\n                LicenseManager.outputInvalidLicenseKey();\n            }\n            return false;\n        }\n        if (!current) {\n            const formattedExpiryDate: string = LicenseManager.formatDate(expiry);\n            const formattedReleaseDate: string = LicenseManager.formatDate(releaseDate);\n            LicenseManager.outputIncompatibleVersion(formattedExpiryDate, formattedReleaseDate);\n            return false;\n        }\n        LicenseManager.#licenseKeyId = keyId;\n        // LicenseManager.#licenseExpiry = LicenseManager.formatDate(expiry);\n        LicenseManager.#licenseType = type;\n        if (type === 'free') {\n            LicenseManager.outputValidFreeLicense();\n        } else {\n            LicenseManager.outputValidLicense();\n        }\n        return true;\n    }\n\n    /**\n     * Outputs a message indicating a valid free license.\n     */\n    private static outputValidFreeLicense(): void {\n        // const licenseMessage = `[FIXParser Free License] - Valid until ${LicenseManager.#licenseExpiry}`;\n        // if (LicenseManager.#logger) {\n        //     LicenseManager.#logger.log({\n        //         level: 'info',\n        //         message: licenseMessage,\n        //     });\n        // }\n    }\n\n    /**\n     * Outputs a message indicating a valid pro license.\n     */\n    private static outputValidLicense(): void {\n        // const licenseMessage = `[FIXParser Pro License] - Valid until ${LicenseManager.#licenseExpiry}`;\n        // if (LicenseManager.#logger) {\n        //     LicenseManager.#logger.log({\n        //         level: 'info',\n        //         message: licenseMessage,\n        //     });\n        // }\n    }\n\n    /**\n     * Outputs a message indicating an invalid free license.\n     */\n    private static outputInvalidFreeLicenseKey(): void {\n        const licenseMessage = `\n****************************************************************************************************\n************************************* FIXParser Free License ***************************************\n***************************************** Invalid License ******************************************\n*              -- Access to this feature requires a free license key for FIXParser --              *\n*                      Your license for FIXParser is not valid - please visit                      *\n*                  https://fixparser.dev/register to register for a free license.                  *\n****************************************************************************************************\n****************************************************************************************************\n`;\n        if (LicenseManager.#logger) {\n            LicenseManager.#logger.log({\n                level: 'error',\n                message: licenseMessage,\n            });\n        } else {\n            console.error(licenseMessage);\n        }\n    }\n\n    /**\n     * Outputs a message indicating an invalid pro license.\n     */\n    private static outputInvalidLicenseKey(): void {\n        const licenseMessage = `\n****************************************************************************************************\n************************************** FIXParser Pro License ***************************************\n***************************************** Invalid License ******************************************\n*                  -- Access to this feature requires license for FIXParser Pro --                 *\n*        Your license for FIXParser Pro is not valid - please contact sales@fixparser.dev to       *\n*                                     obtain a valid license.                                      *\n****************************************************************************************************\n****************************************************************************************************\n`;\n        if (LicenseManager.#logger) {\n            LicenseManager.#logger.log({\n                level: 'error',\n                message: licenseMessage,\n            });\n        } else {\n            console.error(licenseMessage);\n        }\n    }\n\n    /**\n     * Outputs a message indicating a missing license key.\n     */\n    private static outputMissingLicenseKey(): void {\n        const licenseMessage = `\n****************************************************************************************************\n***************************************** FIXParser License ****************************************\n*************************************** License Key Not Found **************************************\n*     Please visit https://fixparser.dev to request a free license, or purchase FIXParser Pro.     *\n****************************************************************************************************\n****************************************************************************************************\n`;\n        if (LicenseManager.#logger) {\n            LicenseManager.#logger.log({\n                level: 'error',\n                message: licenseMessage,\n            });\n        } else {\n            console.error(licenseMessage);\n        }\n    }\n\n    /**\n     * Outputs a message indicating an incompatible version.\n     *\n     * @param {string} formattedExpiryDate - The formatted expiry date\n     * @param {string} formattedReleaseDate - The formatted release date\n     */\n    private static outputIncompatibleVersion(formattedExpiryDate: string, formattedReleaseDate: string): void {\n        const padStringRight = (str: string, length: number): string => {\n            return str.padEnd(length, ' ');\n        };\n        const licenseMessage = `\n****************************************************************************************************\n****************************************************************************************************\n*                    License not compatible with installed version of FIXParser.                   *\n*                                                                                                  *\n* Your FIXParser License entitles you to all versions of FIXParser that we release within the time *\n* covered by your license - typically we provide one year licenses which entitles you to all       *\n* releases / updates of FIXParser within that year. Your license has an end (expiry) date which    *\n* stops the license key working with versions of FIXParser released after the license end date.    *\n* The license key that you have expires on ${padStringRight(`${formattedExpiryDate}, however, the version of FIXParser`, 56)}*\n* you are trying to use was released on ${padStringRight(`${formattedReleaseDate}.`, 59)}*\n*                                                                                                  *\n* Please visit https://fixparser.dev to renew your subscription to new versions and get a new      *\n* license key to work with this version of FIXParser.                                              *\n****************************************************************************************************\n****************************************************************************************************\n`;\n        if (LicenseManager.#logger) {\n            LicenseManager.#logger.log({\n                level: 'error',\n                message: licenseMessage,\n            });\n        } else {\n            console.error(licenseMessage);\n        }\n    }\n}\n\n// Prevent LicenseManager.validateLicense from being modified\nObject.defineProperty(LicenseManager, 'validateLicense', {\n    writable: false,\n    configurable: false,\n});\n\nexport { LicenseManager };\n", "import type { NumInGroup } from './SpecGroups.ts';\n\nexport type Ref = {\n    id: number;\n    added: string;\n    presence?: string;\n    addedEP?: string;\n    updated?: string;\n    updatedEP?: string;\n    deprecated?: string;\n    deprecatedEP?: string;\n    description?: string;\n};\n\nexport interface ISpecComponents {\n    id: number;\n    name: string;\n    category: string;\n    abbrName: string;\n    added: string;\n    description?: string;\n    fieldRef?: Ref[];\n    groupRef?: Ref[];\n    componentRef?: Ref[];\n    numInGroup?: NumInGroup;\n    addedEP?: string;\n    updated?: string;\n    updatedEP?: string;\n    deprecated?: string;\n    deprecatedEP?: string;\n}\n\nexport const COMPONENTS: ISpecComponents[] = [\n    {\n        id: 1000,\n        name: 'CommissionData',\n        abbrName: 'Comm',\n        added: 'FIX.4.3',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '204',\n        category: 'Common',\n        description:\n            'The CommissionData component block is used to carry commission information such as the type of commission and the rate. Use the CommissionDataGrp component as an alternative if multiple commissions or enhanced attributes are needed.\\n\\nThis component may be used to provide aggregated commission data of a given CommType(13) where the CommissionDataGrp maybe used to include the detail splits provided the commission is of the same commission basis type. For example, CommissionData may contain CommType(13) of 3 (Absolute) and a Commission(12) value of \"15\". CommissionDataGrp may be used to show how this Commission(12) value of \"15\" is split up as long as the CommissionBasis(2642) is also 3 (Absolute) for each of the instances added together. This method of aggregated commission data may also be applied to this component to provide a total when the instances of the detail splits in CommissionDataGrp contain leg level information (indicated by the usage of CommissionLegRefID(2649) in CommissionDataGrp). Note that it is only possible to aggregate values for a single commission basis type.',\n        fieldRef: [\n            {\n                id: 12,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 13,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 479,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '95',\n            },\n            {\n                id: 2922,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1233,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 1238,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 497,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '95',\n            },\n        ],\n    },\n    {\n        id: 1001,\n        name: 'DiscretionInstructions',\n        abbrName: 'DiscInstr',\n        added: 'FIX.4.4',\n        category: 'Common',\n        description:\n            'The presence of DiscretionInstructions component block on an order indicates that the trader wishes to display one price but will accept trades at another price.',\n        fieldRef: [\n            {\n                id: 388,\n                added: 'FIX.4.4',\n                description: 'What the discretionary price is related to (e.g. primary price, display price etc)',\n            },\n            {\n                id: 389,\n                added: 'FIX.4.4',\n                description:\n                    'Amount (signed) added to the \"related to\" price specified via DiscretionInst, in the context of DiscretionOffsetType',\n            },\n            {\n                id: 841,\n                added: 'FIX.4.4',\n                description: 'Describes whether discretion price is static/fixed or floats',\n            },\n            {\n                id: 842,\n                added: 'FIX.4.4',\n                description: 'Type of Discretion Offset (e.g. price offset, tick offset etc)',\n            },\n            {\n                id: 843,\n                added: 'FIX.4.4',\n                description:\n                    'Specifies the nature of the resulting discretion price (e.g. or better limit, strict limit etc)',\n            },\n            {\n                id: 844,\n                added: 'FIX.4.4',\n                description:\n                    'If the calculated discretion price is not a valid tick price, specifies how to round the price (e.g. to be more or less aggressive)',\n            },\n            {\n                id: 846,\n                added: 'FIX.4.4',\n                description: 'The scope of \"related to\" price of the discretion (e.g. local, global etc)',\n            },\n        ],\n    },\n    {\n        id: 1002,\n        name: 'FinancingDetails',\n        abbrName: 'FinDetls',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '161',\n        category: 'Common',\n        description:\n            'Component block is optionally used for financial transaction where legal contracts, master agreements or master confirmations is to be referenced. This component identifies the legal agreement under which the deal was made and other unique characteristics of the transaction. For example, the AgreementDesc(913) field refers to base standard documents such as MRA 1996 Repurchase Agreement, GMRA 2000 Bills Transaction (U.K.), MSLA 1993 Securities Loan \u2013 Amended 1998, for example.',\n        fieldRef: [\n            {\n                id: 913,\n                added: 'FIX.4.4',\n                description:\n                    'The full name of the base standard agreement, annexes and amendments in place between the principals and applicable to this deal',\n            },\n            {\n                id: 914,\n                added: 'FIX.4.4',\n                description: 'A common reference to the applicable standing agreement between the principals',\n            },\n            {\n                id: 1961,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 915,\n                added: 'FIX.4.4',\n                description: 'A reference to the date the underlying agreement was executed.',\n            },\n            {\n                id: 918,\n                added: 'FIX.4.4',\n                description: 'Currency of the underlying agreement.',\n            },\n            {\n                id: 2952,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1962,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1963,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1964,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1965,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1966,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1967,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1968,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1969,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1970,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1513,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 1525,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedDocumentationText(1527) field is specified and must immediately precede it.',\n            },\n            {\n                id: 1527,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the DocumentationText(1513) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 788,\n                added: 'FIX.4.4',\n                description: 'For Repos the timing or method for terminating the agreement.',\n            },\n            {\n                id: 916,\n                added: 'FIX.4.4',\n                description: 'Settlement date of the beginning of the deal',\n            },\n            {\n                id: 917,\n                added: 'FIX.4.4',\n                description: 'Repayment / repurchase date',\n            },\n            {\n                id: 919,\n                added: 'FIX.4.4',\n                description: 'Delivery or custody arrangement for the underlying securities',\n            },\n            {\n                id: 898,\n                added: 'FIX.4.4',\n                description: 'Percentage of cash value that underlying security collateral must meet.',\n            },\n            {\n                id: 3114,\n                added: 'FIX.Latest',\n                addedEP: '301',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4003,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4005,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4004,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 1003,\n        name: 'Instrument',\n        abbrName: 'Instrmt',\n        added: 'FIX.4.3',\n        category: 'Common',\n        description:\n            'The Instrument component block contains all the fields commonly used to describe a security or instrument. Typically the data elements in this component block are considered the static data of a security, data that may be commonly found in a security master database. The Instrument component block can be used to describe any asset type supported by FIX.',\n        fieldRef: [\n            {\n                id: 55,\n                added: 'FIX.4.3',\n                updated: 'FIX.Latest',\n                updatedEP: '277',\n                description:\n                    'Common, \"human understood\" representation of the security. SecurityID value can be specified if no symbol exists (e.g. non-exchange traded Collective Investment Vehicles)\\n\\n\\n                        Use \"[N/A]\" for products which do not have a symbol.\\n\\n\\n                        Required if the Instrument component is marked as required where the component is used.',\n            },\n            {\n                id: 65,\n                added: 'FIX.4.3',\n                description:\n                    'Used in Fixed Income with a value of \"WI\" to indicate \"When Issued\" for a security to be reissued under an old CUSIP or ISIN or with a value of \"CD\" to indicate a EUCP with lump-sum interest rather than discount price.',\n            },\n            {\n                id: 48,\n                added: 'FIX.4.3',\n                description:\n                    'Takes precedence in identifying security to counterparty over SecurityAltID block. Requires SecurityIDSource if specified.',\n            },\n            {\n                id: 22,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '161',\n                description: 'Conditionally required when SecurityID(48) is specified.',\n            },\n            {\n                id: 460,\n                added: 'FIX.4.3',\n                description: 'Indicates the type of product the security is associated with (high-level category)',\n            },\n            {\n                id: 1227,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Identifies an entire suite of products for a given market. In Futures this may be \"interest rates\", \"agricultural\", \"equity indexes\", etc',\n            },\n            {\n                id: 1151,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'An exchange specific name assigned to a group of related securities which may be concurrently affected by market events and actions.',\n            },\n            {\n                id: 461,\n                added: 'FIX.4.3',\n                description:\n                    'Indicates the type of security using ISO 10962 standard, Classification of Financial Instruments (CFI code) values. It is recommended that CFICode be used instead of SecurityType for non-Fixed Income instruments.',\n            },\n            {\n                id: 2891,\n                added: 'FIX.Latest',\n                addedEP: '266',\n            },\n            {\n                id: 167,\n                added: 'FIX.4.3',\n                description:\n                    'It is recommended that CFICode be used instead of SecurityType for non-Fixed Income instruments.\\n\\n\\n                        Required for Fixed Income. Refer to Volume 7 - Fixed Income\\n\\n\\n                        Futures and Options should be specified using the CFICode[461] field instead of SecurityType[167] (Refer to Volume 7 - Recommendations and Guidelines for Futures and Options Markets.)',\n            },\n            {\n                id: 762,\n                added: 'FIX.4.4',\n                description:\n                    'Sub-type qualification/identification of the SecurityType (e.g. for SecurityType=\"MLEG\"). If specified, SecurityType is required.',\n            },\n            {\n                id: 200,\n                added: 'FIX.4.3',\n                description:\n                    'Specifies the month and year of maturity. Applicable for standardized derivatives which are typically only referenced by month and year (e.g. S&P futures). Note MaturityDate (a full date) can also be specified.',\n            },\n            {\n                id: 541,\n                added: 'FIX.4.3',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'Specifies date of maturity (a full date). Note that standardized derivatives which are typically only referenced by month and year (e.g. S&P futures) may use MaturityMonthYear(200) and/or this field.\\n\\n\\n                        When using MaturityMonthYear(200), it is recommended that markets and sell sides report the MaturityDate(541) on all outbound messages as a means of data enrichment.\\n\\n\\n                        For NDFs this represents the fixing date of the contract.',\n            },\n            {\n                id: 1079,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '82',\n                description:\n                    'For NDFs this represents the fixing time of the contract. It is optional to specify the fixing time.',\n            },\n            {\n                id: 2982,\n                added: 'FIX.Latest',\n                addedEP: '287',\n                description: 'Conditionally required when MaturityFrequencyPeriod(2983) is specified.',\n            },\n            {\n                id: 2983,\n                added: 'FIX.Latest',\n                addedEP: '287',\n                description:\n                    'Conditionally required when MaturityFrequencyUnit(2982) is specified and the value is not EOM (End of Month) or F (Flexible).',\n            },\n            {\n                id: 966,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Indicator to determine if Instrument is Settle on Open.',\n            },\n            {\n                id: 1049,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 965,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Gives the current state of the instrument',\n            },\n            {\n                id: 224,\n                added: 'FIX.4.3',\n                description: 'Date interest is to be paid. Used in identifying Corporate Bond issues.',\n            },\n            {\n                id: 1449,\n                added: 'FIX.5.0SP1',\n                addedEP: '83',\n            },\n            {\n                id: 1450,\n                added: 'FIX.5.0SP1',\n                addedEP: '83',\n            },\n            {\n                id: 1451,\n                added: 'FIX.5.0SP1',\n                addedEP: '83',\n            },\n            {\n                id: 1452,\n                added: 'FIX.5.0SP1',\n                addedEP: '83',\n            },\n            {\n                id: 1457,\n                added: 'FIX.5.0SP1',\n                addedEP: '83',\n            },\n            {\n                id: 1458,\n                added: 'FIX.5.0SP1',\n                addedEP: '83',\n            },\n            {\n                id: 1739,\n                added: 'FIX.5.0SP2',\n                addedEP: '119',\n            },\n            {\n                id: 2210,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 1938,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if AssetSubClass(1939) is specified.',\n            },\n            {\n                id: 1939,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if AssetType(1940) is specified.',\n            },\n            {\n                id: 1940,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if AssetSubType(2735) is specified.',\n            },\n            {\n                id: 2735,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n            {\n                id: 1941,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1575,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 1942,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when MthToDefault(1943) is specified.',\n            },\n            {\n                id: 1943,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1944,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1945,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1946,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1947,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1948,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when CouponFrequencyUnit(1949) is specified.',\n            },\n            {\n                id: 1949,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when CouponFrequencyPeriod(1948) is specified.',\n            },\n            {\n                id: 1950,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2879,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n            {\n                id: 1951,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1952,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when ConvertibleBondEquityID(1951) is specified.',\n            },\n            {\n                id: 1953,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1954,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1955,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1956,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1957,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1958,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1959,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1960,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1577,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 1580,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 1581,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 1678,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedOptionExpirationDesc(1697) field is specified and must immediately precede it.',\n            },\n            {\n                id: 1697,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the OptionExpirationDesc(1581) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 225,\n                added: 'FIX.4.3',\n                description:\n                    'Date instrument was issued. For Fixed Income IOIs for new issues, specifies the issue date.',\n            },\n            {\n                id: 239,\n                added: 'FIX.4.3',\n                deprecated: 'FIX.4.4',\n            },\n            {\n                id: 226,\n                added: 'FIX.4.3',\n                deprecated: 'FIX.4.4',\n            },\n            {\n                id: 227,\n                added: 'FIX.4.3',\n                deprecated: 'FIX.4.4',\n            },\n            {\n                id: 228,\n                added: 'FIX.4.3',\n                description:\n                    'For Fixed Income: Amortization Factor for deriving Current face from Original face for ABS or MBS securities, note the fraction may be greater than, equal to or less than 1. In TIPS securities this is the Inflation index.\\n\\n\\n                        Qty * Factor * Price = Gross Trade Amount\\n\\n\\n                        For Derivatives: Contract Value Factor by which price must be adjusted to determine the true nominal value of one futures/options contract.\\n\\n\\n                        (Qty * Price) * Factor = Nominal Value',\n            },\n            {\n                id: 255,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 543,\n                added: 'FIX.4.3',\n                description:\n                    'The location at which records of ownership are maintained for this instrument, and at which ownership changes must be recorded. Can be used in conjunction with ISIN to address ISIN uniqueness issues.',\n            },\n            {\n                id: 470,\n                added: 'FIX.4.3',\n                description:\n                    'ISO Country code of instrument issue (e.g. the country portion typically used in ISIN). Can be used in conjunction with non-ISIN SecurityID (e.g. CUSIP for Municipal Bonds without ISIN) to provide uniqueness.',\n            },\n            {\n                id: 471,\n                added: 'FIX.4.3',\n                description: 'A two-character state or province abbreviation.',\n            },\n            {\n                id: 472,\n                added: 'FIX.4.3',\n                description: 'The three-character IATA code for a locale (e.g. airport code for Municipal Bonds).',\n            },\n            {\n                id: 240,\n                added: 'FIX.4.3',\n                deprecated: 'FIX.4.4',\n            },\n            {\n                id: 202,\n                added: 'FIX.4.3',\n                description: 'Used for derivatives, such as options and covered warrants',\n            },\n            {\n                id: 2578,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2577,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 947,\n                added: 'FIX.4.4',\n                description: 'Used for derivatives',\n            },\n            {\n                id: 2904,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 967,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Used for derivatives. Multiplier applied to the strike price for the purpose of calculating the settlement value.',\n            },\n            {\n                id: 968,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Used for derivatives. The number of shares/units for the financial instrument involved in the option trade.',\n            },\n            {\n                id: 1698,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 1866,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2600,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2001,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2601,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 1478,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n            },\n            {\n                id: 1479,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '224',\n                description:\n                    'When specified, PutOrCall(201), StrikePrice(202), and StrikePriceBoundaryPrecision(1480) must also be specified.',\n            },\n            {\n                id: 1480,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n            },\n            {\n                id: 1481,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n            },\n            {\n                id: 206,\n                added: 'FIX.4.3',\n                description:\n                    'Used for derivatives, such as options and covered warrants to indicate a versioning of the contract when required due to corporate actions to the underlying. Should not be used to indicate type of option - use the CFICode[461] for this purpose.',\n            },\n            {\n                id: 231,\n                added: 'FIX.4.3',\n                description:\n                    'For Fixed Income, Convertible Bonds, Derivatives, etc. Note: If used, quantities should be expressed in the \"nominal\" (e.g. contracts vs. shares) amount.',\n            },\n            {\n                id: 1435,\n                added: 'FIX.5.0SP1',\n                addedEP: '80',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '179',\n            },\n            {\n                id: 2353,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 1439,\n                added: 'FIX.5.0SP1',\n                addedEP: '80',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '179',\n            },\n            {\n                id: 969,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Minimum price increment for the instrument. Could also be used to represent tick value.',\n            },\n            {\n                id: 1146,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Minimum price increment amount associated with the MinPriceIncrement [969]. For listed derivatives, the value can be calculated by multiplying MinPriceIncrement by ContractValueFactor [231]',\n            },\n            {\n                id: 996,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1147,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1716,\n                added: 'FIX.5.0SP2',\n                addedEP: '122',\n            },\n            {\n                id: 2905,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1191,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1192,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1717,\n                added: 'FIX.5.0SP2',\n                addedEP: '122',\n            },\n            {\n                id: 2906,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1193,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description: 'Conditionally required if SettlSubMethod(2579) is specified.',\n            },\n            {\n                id: 2579,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 1194,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Type of exercise of a derivatives security',\n            },\n            {\n                id: 1482,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n            },\n            {\n                id: 1195,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description: 'Conditionally required if OptPayoutType(1482) = 3 (Binary).',\n            },\n            {\n                id: 2753,\n                added: 'FIX.5.0SP2',\n                addedEP: '238',\n            },\n            {\n                id: 1196,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Method for price quotation',\n            },\n            {\n                id: 1197,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '83',\n                description: 'Indicates type of valuation method used.',\n            },\n            {\n                id: 2002,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2140,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 1524,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 2907,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1198,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Indicates whether the instruments are pre-listed only or can also be defined via user request',\n            },\n            {\n                id: 1199,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Used to express the ceiling price of a capped call',\n            },\n            {\n                id: 1200,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Used to express the floor price of a capped put',\n            },\n            {\n                id: 201,\n                added: 'FIX.4.4',\n                description: 'Used to express option right',\n            },\n            {\n                id: 2681,\n                added: 'FIX.5.0SP2',\n                addedEP: '224',\n                description:\n                    'Used to express in-the-moneyness behavior in general terms for the option without the use of StrikePrice(202) and PutOrCall(201).',\n            },\n            {\n                id: 2685,\n                added: 'FIX.5.0SP2',\n                addedEP: '224',\n            },\n            {\n                id: 1244,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Used to indicate if a security has been defined as flexible according to \"non-standard\" means. Analog to CFICode Standard/Non-standard indicator',\n            },\n            {\n                id: 1242,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Used to indicate if a product or group of product supports the creation of flexible securities',\n            },\n            {\n                id: 2575,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2574,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 997,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Used to indicate a time unit for the contract (e.g., days, weeks, months, etc.)',\n            },\n            {\n                id: 223,\n                added: 'FIX.4.3',\n                description: 'For Fixed Income.',\n            },\n            {\n                id: 207,\n                added: 'FIX.4.3',\n                description: 'Can be used to identify the security.',\n            },\n            {\n                id: 970,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Position Limit for the instrument.',\n            },\n            {\n                id: 971,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Near-term Position Limit for the instrument.',\n            },\n            {\n                id: 106,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 348,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '232',\n                description: 'Must be set if EncodedIssuer(349) field is specified and must immediately precede it.',\n            },\n            {\n                id: 349,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '232',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Issuer(106) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 2737,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n            {\n                id: 2714,\n                added: 'FIX.5.0SP2',\n                addedEP: '232',\n            },\n            {\n                id: 2715,\n                added: 'FIX.5.0SP2',\n                addedEP: '232',\n                description:\n                    'Must be set if EncodedFinancialInstrumentFullName(2716) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2716,\n                added: 'FIX.5.0SP2',\n                addedEP: '232',\n                description:\n                    'Encoded (non-ASCII characters) representation of the FinancialInstrumentFullName(2714) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 107,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 350,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '232',\n                description:\n                    'Must be set if EncodedSecurityDesc(351) field is specified and must immediately precede it.',\n            },\n            {\n                id: 351,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '232',\n                description:\n                    'Encoded (non-ASCII characters) representation of the SecurityDesc(107) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 691,\n                added: 'FIX.4.4',\n                description: 'Identifies MBS / ABS pool',\n            },\n            {\n                id: 667,\n                added: 'FIX.4.4',\n                description: 'Must be present for MBS/TBA',\n            },\n            {\n                id: 875,\n                added: 'FIX.4.4',\n                description: 'The program under which a commercial paper is issued',\n            },\n            {\n                id: 876,\n                added: 'FIX.4.4',\n                description: 'The registration type of a commercial paper issuance',\n            },\n            {\n                id: 873,\n                added: 'FIX.4.4',\n                description: 'If different from IssueDate',\n            },\n            {\n                id: 874,\n                added: 'FIX.4.4',\n                description: 'If different from IssueDate and DatedDate',\n            },\n            {\n                id: 1687,\n                added: 'FIX.5.0SP2',\n                addedEP: '120',\n            },\n            {\n                id: 1787,\n                added: 'FIX.5.0SP2',\n                addedEP: '130',\n                description: 'Spread table code referred by the security or symbol.',\n            },\n            {\n                id: 2141,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2142,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2143,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2752,\n                added: 'FIX.5.0SP2',\n                addedEP: '238',\n            },\n            {\n                id: 2144,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2145,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2576,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2962,\n                added: 'FIX.Latest',\n                addedEP: '276',\n            },\n            {\n                id: 2602,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2603,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2071,\n                added: 'FIX.4.4',\n                description: 'Number of alternate Security Identifiers',\n            },\n            {\n                id: 2226,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2241,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2070,\n                added: 'FIX.4.4',\n                description: 'Number of repeating EventType group entries.',\n            },\n            {\n                id: 1032,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description: 'Used to identify the parties related to a specific instrument.',\n            },\n            {\n                id: 2145,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n            },\n            {\n                id: 4006,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4011,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4001,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4021,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4002,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4025,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4327,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1060,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '145',\n                description: 'Embedded XML document describing the instrument.',\n            },\n            {\n                id: 4085,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4175,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4158,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4162,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 1004,\n        name: 'InstrumentExtension',\n        abbrName: 'InstrmtExt',\n        added: 'FIX.4.4',\n        category: 'Common',\n        description:\n            'The InstrumentExtension component block identifies additional security attributes that are more commonly found for Fixed Income securities.',\n        fieldRef: [\n            {\n                id: 668,\n                added: 'FIX.4.4',\n                description: 'Identifies the form of delivery.',\n            },\n            {\n                id: 869,\n                added: 'FIX.4.4',\n                description: 'Percent at risk due to lowest possible call.',\n            },\n            {\n                id: 2736,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n            {\n                id: 2738,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2074,\n                added: 'FIX.4.4',\n                description: 'Number of repeating InstrAttrib group entries.',\n            },\n            {\n                id: 2262,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n            {\n                id: 2263,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n        ],\n        componentRef: [\n            {\n                id: 2264,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n        ],\n    },\n    {\n        id: 1005,\n        name: 'InstrumentLeg',\n        abbrName: 'Leg',\n        added: 'FIX.4.3',\n        category: 'Common',\n        description:\n            'The InstrumentLeg component block, like the Instrument component block, contains all the fields commonly used to describe a security or instrument. In the case of the InstrumentLeg component block it describes a security used in multileg-oriented messages.',\n        fieldRef: [\n            {\n                id: 600,\n                added: 'FIX.4.3',\n                updated: 'FIX.Latest',\n                updatedEP: '277',\n                description:\n                    'Common, \"human understood\" representation of the security. SecurityID value can be specified if no symbol exists (e.g. non-exchange traded Collective Investment Vehicles)\\n\\n\\n                        Use \"[N/A]\" for products which do not have a symbol.\\n\\n\\n                        Required if the InstrumentLeg component is marked as required where the component is used.',\n            },\n            {\n                id: 601,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 602,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 603,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 1788,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description:\n                    'Used for unique identification of the leg that can subsequently be used whenever a simple leg identification is sufficient. It can also serve as input value for LegRefID(654) whenever only a simple leg reference is allowed or needed.',\n            },\n            {\n                id: 607,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 1594,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 608,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 2893,\n                added: 'FIX.Latest',\n                addedEP: '266',\n            },\n            {\n                id: 609,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 764,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 610,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 611,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 1212,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2986,\n                added: 'FIX.Latest',\n                addedEP: '287',\n                description: 'Conditionally required when LegMaturityFrequencyPeriod(2987) is specified.',\n            },\n            {\n                id: 2987,\n                added: 'FIX.Latest',\n                addedEP: '287',\n                description:\n                    'Conditionally required when LegMaturityFrequencyUnit(2986) is specified and the value is not EOM (End of Month) or F (Flexible).',\n            },\n            {\n                id: 2146,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2147,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2148,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 248,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 2149,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2150,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2151,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2152,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2153,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2154,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2155,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2348,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2067,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if LegAssetSubClass(2068) is specified.',\n            },\n            {\n                id: 2068,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if LegAssetType(2069) is specified.',\n            },\n            {\n                id: 2069,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if LegAssetSubType(2739) is specified.',\n            },\n            {\n                id: 2739,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n            {\n                id: 2070,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2156,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2157,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegMthToDefault(2158) is specified.',\n            },\n            {\n                id: 2158,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2159,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2160,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2161,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2162,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2163,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegCouponFreqUnit(2164) is specified.',\n            },\n            {\n                id: 2164,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegCouponFreqPeriod(2163) is specified.',\n            },\n            {\n                id: 2165,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2880,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n            {\n                id: 2166,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2167,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegConvertibleBondEquityID(2166) is specified.',\n            },\n            {\n                id: 2168,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2169,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2170,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2171,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2172,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2173,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2174,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2175,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2176,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2177,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2178,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2179,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedLegOptionExpirationDesc(2180) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2180,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegOptionExpirationDesc(2178) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 249,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 250,\n                added: 'FIX.4.3',\n                deprecated: 'FIX.4.4',\n            },\n            {\n                id: 251,\n                added: 'FIX.4.3',\n                deprecated: 'FIX.4.4',\n            },\n            {\n                id: 252,\n                added: 'FIX.4.3',\n                deprecated: 'FIX.4.4',\n            },\n            {\n                id: 253,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 257,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 599,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 596,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 597,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 598,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 254,\n                added: 'FIX.4.3',\n                deprecated: 'FIX.4.4',\n            },\n            {\n                id: 612,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 942,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2908,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2181,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2182,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2183,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2184,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2604,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2185,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2605,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2186,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2187,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '224',\n                description:\n                    'When specified, LegPutOrCall(1358), LegStrikePrice(612), and LegStrikePriceBoundaryPrecision(2188) must also be specified.',\n            },\n            {\n                id: 2188,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2189,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 613,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 614,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 1436,\n                added: 'FIX.5.0SP1',\n                addedEP: '80',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '179',\n            },\n            {\n                id: 2354,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 1440,\n                added: 'FIX.5.0SP1',\n                addedEP: '80',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '179',\n            },\n            {\n                id: 2190,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2191,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 999,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1224,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1720,\n                added: 'FIX.5.0SP2',\n                addedEP: '122',\n            },\n            {\n                id: 2909,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1421,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1422,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1721,\n                added: 'FIX.5.0SP2',\n                addedEP: '122',\n            },\n            {\n                id: 2910,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2192,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 1001,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Used to indicate a time unit for the contract (e.g., days, weeks, months, etc.)',\n            },\n            {\n                id: 1420,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2193,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2194,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required if LegOptPayoutTyp(2193) = 3 (Binary).',\n            },\n            {\n                id: 2755,\n                added: 'FIX.5.0SP2',\n                addedEP: '238',\n            },\n            {\n                id: 2195,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2196,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2197,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2198,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 1528,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 2911,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2199,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2200,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2201,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2202,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2203,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 615,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 616,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 2205,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2206,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 617,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 618,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '232',\n                description: 'Must be set if EncodedLegIssuer(618) field is specified and must immediately precede it.',\n            },\n            {\n                id: 619,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '232',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegIssuer(617) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 2740,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n            {\n                id: 2717,\n                added: 'FIX.5.0SP2',\n                addedEP: '232',\n            },\n            {\n                id: 2718,\n                added: 'FIX.5.0SP2',\n                addedEP: '232',\n                description:\n                    'Must be set if EncodedLegFinancialInstrumentFullName(2719) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2719,\n                added: 'FIX.5.0SP2',\n                addedEP: '232',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegFinancialInstrumentFullName(2717) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 620,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 621,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '232',\n                description:\n                    'Must be set if LegEncodedSecurityDesc(622) field is specified and must immediately precede it.',\n            },\n            {\n                id: 622,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '232',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegSecurityDesc(620) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 2207,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2208,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 623,\n                added: 'FIX.4.3',\n                description: 'Specific to the <InstrumentLeg> (not in <Instrument>)',\n            },\n            {\n                id: 624,\n                added: 'FIX.4.3',\n                description: 'Specific to the <InstrumentLeg> (not in <Instrument>)',\n            },\n            {\n                id: 556,\n                added: 'FIX.4.4',\n                description: 'Specific to the <InstrumentLeg> (not in <Instrument>)',\n            },\n            {\n                id: 2898,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 740,\n                added: 'FIX.4.4',\n                description: 'Identifies MBS / ABS pool',\n            },\n            {\n                id: 739,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 955,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 956,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1358,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Used to express option right',\n            },\n            {\n                id: 2682,\n                added: 'FIX.5.0SP2',\n                addedEP: '224',\n                description:\n                    'Used to express in-the-moneyness behavior in general terms for the option without the use of LegStrikePrice(612) and LegPutOrCall(1358).',\n            },\n            {\n                id: 2686,\n                added: 'FIX.5.0SP2',\n                addedEP: '224',\n            },\n            {\n                id: 1017,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'LegOptionRatio is provided on covering leg to create a delta neutral spread. In Listed Derivatives, the delta of the leg is multiplied by LegOptionRatio and OrderQty to determine the covering quantity.',\n            },\n            {\n                id: 566,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Used to specify an anchor price for a leg as part of the definition or creation of the strategy - not used for execution price.',\n            },\n            {\n                id: 2209,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2211,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2212,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2213,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2754,\n                added: 'FIX.5.0SP2',\n                addedEP: '238',\n            },\n            {\n                id: 2214,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2215,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2606,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2607,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2072,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2232,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2242,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2231,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2239,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2236,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4031,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4046,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4187,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4231,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4190,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4226,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4337,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 2212,\n                added: 'FIX.5.0SP2',\n                addedEP: '145',\n                description: 'Embedded XML document describing the leg instrument.',\n            },\n            {\n                id: 4087,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4229,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4210,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4214,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 1006,\n        name: 'LegBenchmarkCurveData',\n        abbrName: 'BnchmkCurve',\n        added: 'FIX.4.4',\n        category: 'Common',\n        description:\n            'The LegBenchmarkCurveData is used to convey the benchmark information used for pricing in a multi-legged Fixed Income security.',\n        fieldRef: [\n            {\n                id: 676,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2951,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 677,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 678,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 679,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 680,\n                added: 'FIX.4.4',\n            },\n        ],\n    },\n    {\n        id: 1011,\n        name: 'OrderQtyData',\n        abbrName: 'OrdQty',\n        added: 'FIX.4.3',\n        category: 'Common',\n        description:\n            'The OrderQtyData component block contains the fields commonly used for indicating the amount or quantity of an order. Note that when this component block is marked as \"required\" in a message either one of these three fields must be used to identify the amount: OrderQty, CashOrderQty or OrderPercent (in the case of CIV).',\n        fieldRef: [\n            {\n                id: 38,\n                added: 'FIX.4.3',\n                description:\n                    'One of CashOrderQty, OrderQty, or (for CIV only) OrderPercent is required. Note that unless otherwise specified, only one of CashOrderQty, OrderQty, or OrderPercent should be specified.',\n            },\n            {\n                id: 152,\n                added: 'FIX.4.3',\n                description:\n                    'One of CashOrderQty, OrderQty, or (for CIV only) OrderPercent is required. Note that unless otherwise specified, only one of CashOrderQty, OrderQty, or OrderPercent should be specified. Specifies the approximate \"monetary quantity\" for the order. Broker is responsible for converting and calculating OrderQty in tradeable units (e.g. shares) for subsequent messages.',\n            },\n            {\n                id: 516,\n                added: 'FIX.4.3',\n                description:\n                    'For CIV - Optional. One of CashOrderQty, OrderQty or (for CIV only) OrderPercent is required. Note that unless otherwise specified, only one of CashOrderQty, OrderQty, or OrderPercent should be specified.',\n            },\n            {\n                id: 468,\n                added: 'FIX.4.3',\n                description: 'For CIV - Optional',\n            },\n            {\n                id: 469,\n                added: 'FIX.4.3',\n                description: 'For CIV - Optional',\n            },\n        ],\n    },\n    {\n        id: 1013,\n        name: 'PegInstructions',\n        abbrName: 'PegInstr',\n        added: 'FIX.4.4',\n        category: 'Common',\n        description:\n            'The Peg Instructions component block is used to tie the price of a security to a market event such as opening price, mid-price, best price. The Peg Instructions block may also be used to tie the price to the behavior of a related security.',\n        fieldRef: [\n            {\n                id: 211,\n                added: 'FIX.4.4',\n                description: 'Amount (signed) added to the peg for a pegged order in the context of the PegOffsetType',\n            },\n            {\n                id: 1094,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Defines the type of peg.',\n            },\n            {\n                id: 835,\n                added: 'FIX.4.4',\n                description: 'Describes whether peg is static/fixed or floats',\n            },\n            {\n                id: 836,\n                added: 'FIX.4.4',\n                description: 'Type of Peg Offset (e.g. price offset, tick offset etc)',\n            },\n            {\n                id: 837,\n                added: 'FIX.4.4',\n                description: 'Specifies nature of resulting pegged price (e.g. or better limit, strict limit etc)',\n            },\n            {\n                id: 838,\n                added: 'FIX.4.4',\n                description:\n                    'If the calculated peg price is not a valid tick price, specifies how to round the price (e.g. be more or less aggressive)',\n            },\n            {\n                id: 840,\n                added: 'FIX.4.4',\n                description: 'The scope of the \"related to\" price of the peg (e.g. local, global etc)',\n            },\n            {\n                id: 1096,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Required if PegSecurityID is specified.',\n            },\n            {\n                id: 1097,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Requires PegSecurityIDSource if specified.',\n            },\n            {\n                id: 1098,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1099,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n        ],\n    },\n    {\n        id: 1016,\n        name: 'SettlInstructionsData',\n        abbrName: 'SetInstr',\n        added: 'FIX.4.4',\n        category: 'Common',\n        description:\n            'The SettlInstructionsData component block is used to convey key information regarding standing settlement and delivery instructions. It also provides a reference to standing settlement details regarding the source, delivery instructions, and settlement parties',\n        fieldRef: [\n            {\n                id: 172,\n                added: 'FIX.4.4',\n                description: 'Required if AllocSettlInstType = 1 or 2',\n            },\n            {\n                id: 169,\n                added: 'FIX.4.4',\n                description: 'Required if AllocSettlInstType = 3 (should not be populated otherwise)',\n            },\n            {\n                id: 170,\n                added: 'FIX.4.4',\n                description: 'Required if AllocSettlInstType = 3 (should not be populated otherwise)',\n            },\n            {\n                id: 171,\n                added: 'FIX.4.4',\n                description:\n                    'Identifier used within the StandInstDbType\\n\\n\\n                        Required if AllocSettlInstType = 3 (should not be populated otherwise)',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2075,\n                added: 'FIX.4.4',\n                description: 'Required (and must be > 0) if AllocSettlInstType = 2 (should not be populated otherwise)',\n            },\n        ],\n    },\n    {\n        id: 1018,\n        name: 'SpreadOrBenchmarkCurveData',\n        abbrName: 'SprdBnchmkCurve',\n        added: 'FIX.4.3',\n        category: 'Common',\n        description:\n            'The SpreadOrBenchmarkCurveData component block is primarily used for Fixed Income to convey spread to a benchmark security or curve.',\n        fieldRef: [\n            {\n                id: 218,\n                added: 'FIX.4.3',\n                description: 'For Fixed Income',\n            },\n            {\n                id: 220,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 2950,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 221,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 222,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 662,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 663,\n                added: 'FIX.4.4',\n                description: 'Must be present if BenchmarkPrice is used.',\n            },\n            {\n                id: 699,\n                added: 'FIX.4.4',\n                description: 'The identifier of the benchmark security, e.g. Treasury against Corporate bond.',\n            },\n            {\n                id: 761,\n                added: 'FIX.4.4',\n                description:\n                    'Source of BenchmarkSecurityID. If not specified, then ID Source is understood to be the same as that in the Instrument block.',\n            },\n        ],\n    },\n    {\n        id: 1021,\n        name: 'UnderlyingInstrument',\n        abbrName: 'Undly',\n        added: 'FIX.4.3',\n        category: 'Common',\n        description:\n            'The UnderlyingInstrument component block, like the Instrument component block, contains all the fields commonly used to describe a security or instrument. In the case of the UnderlyingInstrument component block it describes an instrument which underlies the primary instrument Refer to the Instrument component block comments as this component block mirrors Instrument, except for the noted fields.',\n        fieldRef: [\n            {\n                id: 311,\n                added: 'FIX.4.3',\n                updated: 'FIX.Latest',\n                updatedEP: '277',\n                description:\n                    'Common, \"human understood\" representation of the security. SecurityID value can be specified if no symbol exists (e.g. non-exchange traded Collective Investment Vehicles)\\n\\n\\n                        Use \"[N/A]\" for products which do not have a symbol.\\n\\n\\n                        Required if the UnderlyingInstrument component is marked as required where the component is used.',\n            },\n            {\n                id: 312,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 309,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 305,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 2874,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description:\n                    'Used for unique identification of the underlying instance that can subsequently be used to serve as input value for fields such as UnderlyingRefID(2841), for example, whenever a simple underlying reference is allowed or needed.',\n            },\n            {\n                id: 462,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 463,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 2894,\n                added: 'FIX.Latest',\n                addedEP: '266',\n            },\n            {\n                id: 310,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 763,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 313,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 542,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 1213,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2984,\n                added: 'FIX.Latest',\n                addedEP: '287',\n                description: 'Conditionally required when UnderlyingMaturityFrequencyPeriod(2985) is specified.',\n            },\n            {\n                id: 2985,\n                added: 'FIX.Latest',\n                addedEP: '287',\n                description:\n                    'Conditionally required when UnderlyingMaturityFrequencyUnit(2984) is specified and the value is not EOM (End of Month) or F (Flexible).',\n            },\n            {\n                id: 1837,\n                added: 'FIX.5.0SP2',\n                addedEP: '140',\n            },\n            {\n                id: 241,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 1453,\n                added: 'FIX.5.0SP1',\n                addedEP: '83',\n            },\n            {\n                id: 1454,\n                added: 'FIX.5.0SP1',\n                addedEP: '83',\n            },\n            {\n                id: 2614,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2615,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2921,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2616,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2617,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2619,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 1455,\n                added: 'FIX.5.0SP1',\n                addedEP: '83',\n            },\n            {\n                id: 1456,\n                added: 'FIX.5.0SP1',\n                addedEP: '83',\n            },\n            {\n                id: 1459,\n                added: 'FIX.5.0SP1',\n                addedEP: '83',\n            },\n            {\n                id: 1460,\n                added: 'FIX.5.0SP1',\n                addedEP: '83',\n            },\n            {\n                id: 242,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 243,\n                added: 'FIX.4.3',\n                deprecated: 'FIX.4.4',\n            },\n            {\n                id: 244,\n                added: 'FIX.4.3',\n                deprecated: 'FIX.4.4',\n            },\n            {\n                id: 245,\n                added: 'FIX.4.3',\n                deprecated: 'FIX.4.4',\n            },\n            {\n                id: 246,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 256,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 595,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 592,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 593,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 594,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 247,\n                added: 'FIX.4.3',\n                deprecated: 'FIX.4.4',\n            },\n            {\n                id: 316,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 941,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2917,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 317,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 436,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 1437,\n                added: 'FIX.5.0SP1',\n                addedEP: '80',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '179',\n            },\n            {\n                id: 2363,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 1441,\n                added: 'FIX.5.0SP1',\n                addedEP: '80',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '179',\n            },\n            {\n                id: 998,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1423,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1718,\n                added: 'FIX.5.0SP2',\n                addedEP: '122',\n            },\n            {\n                id: 2918,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1424,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1425,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1719,\n                added: 'FIX.5.0SP2',\n                addedEP: '122',\n            },\n            {\n                id: 2919,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1000,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Used to indicate a time unit for the contract (e.g., days, weeks, months, etc.)',\n            },\n            {\n                id: 1419,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1526,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 2920,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 435,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 308,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 306,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 362,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '232',\n                description:\n                    'Must be set if UnderlyingEncodedIssuer(363) field is specified and must immediately precede it.',\n            },\n            {\n                id: 363,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '232',\n                description:\n                    'Encoded (non-ASCII characters) representation of the UnderlyingIssuer(363) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 2742,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n            {\n                id: 2720,\n                added: 'FIX.5.0SP2',\n                addedEP: '232',\n            },\n            {\n                id: 2721,\n                added: 'FIX.5.0SP2',\n                addedEP: '232',\n                description:\n                    'Must be set if EncodedUnderlyingFinancialInstrumentFullName(2722) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2722,\n                added: 'FIX.5.0SP2',\n                addedEP: '232',\n                description:\n                    'Encoded (non-ASCII characters) representation of the UnderlyingFinancialInstrumentFullName(2720) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 2723,\n                added: 'FIX.5.0SP2',\n                addedEP: '232',\n                description:\n                    'Requires UnderlyingSecurityID(305) to identify the index. Requires UnderlyingIndexCurvePeriod(2724).',\n            },\n            {\n                id: 2724,\n                added: 'FIX.5.0SP2',\n                addedEP: '232',\n                description:\n                    'Requires UnderlyingSecurityID(305) to identify the index. Requires UnderlyingIndexCurveUnit(2723).',\n            },\n            {\n                id: 307,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 364,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '232',\n                description:\n                    'Must be set if UnderlyingEncodedSecurityDesc(307) field is specified and must immediately precede it.',\n            },\n            {\n                id: 365,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '232',\n                description:\n                    'Encoded (non-ASCII characters) representation of the UnderlyingSecurityDesc(307) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 877,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 878,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 972,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Specific to the < UnderlyingInstrument > Percent of the Strike Price that this underlying represents. Necessary for derivatives that deliver into more than one underlying instrument.',\n            },\n            {\n                id: 318,\n                added: 'FIX.4.4',\n                description: 'Specific to the <UnderlyingInstrument> (not in <Instrument>)',\n            },\n            {\n                id: 2916,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 879,\n                added: 'FIX.4.4',\n                description:\n                    'Specific to the <UnderlyingInstrument> (not in <Instrument>)\\n\\n\\n                        Unit amount of the underlying security (par, shares, currency, etc.)',\n            },\n            {\n                id: 975,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Specific to the < UnderlyingInstrument > Indicates order settlement period for the underlying deliverable component.',\n            },\n            {\n                id: 973,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    \"Specific to the < UnderlyingInstrument > Cash amount associated with the underlying component. Necessary for derivatives that deliver into more than one underlying instrument and one of the underlying's is a fixed cash value.\",\n            },\n            {\n                id: 974,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Specific to the < UnderlyingInstrument > Used for derivatives that deliver into cash underlying. Indicates that the cash is either fixed or difference value (difference between strike and current underlying price)',\n            },\n            {\n                id: 810,\n                added: 'FIX.4.4',\n                description:\n                    'Specific to the <UnderlyingInstrument> (not in <Instrument>)\\n\\n\\n                        In a financing deal clean price (percent-of-par or per unit) of the underlying security or basket.',\n            },\n            {\n                id: 882,\n                added: 'FIX.4.4',\n                description:\n                    'Specific to the <UnderlyingInstrument> (not in <Instrument>)\\n\\n\\n                        In a financing deal price (percent-of-par or per unit) of the underlying security or basket. \"Dirty\" means it includes accrued interest',\n            },\n            {\n                id: 883,\n                added: 'FIX.4.4',\n                description:\n                    'Specific to the <UnderlyingInstrument> (not in <Instrument>)\\n\\n\\n                        In a financing deal price (percent-of-par or per unit) of the underlying security or basket at the end of the agreement.',\n            },\n            {\n                id: 884,\n                added: 'FIX.4.4',\n                description:\n                    'Specific to the <UnderlyingInstrument> (not in <Instrument>)\\n\\n\\n                        Currency value attributed to this collateral at the start of the agreement',\n            },\n            {\n                id: 885,\n                added: 'FIX.4.4',\n                description:\n                    'Specific to the <UnderlyingInstrument> (not in <Instrument>)\\n\\n\\n                        Currency value currently attributed to this collateral',\n            },\n            {\n                id: 886,\n                added: 'FIX.4.4',\n                description:\n                    'Specific to the <UnderlyingInstrument> (not in <Instrument>)\\n\\n\\n                        Currency value attributed to this collateral at the end of the agreement',\n            },\n            {\n                id: 2885,\n                added: 'FIX.5.0SP2',\n                addedEP: '258',\n            },\n            {\n                id: 2886,\n                added: 'FIX.5.0SP2',\n                addedEP: '258',\n            },\n            {\n                id: 1044,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Specific to the <UnderlyingInstrument> (not in <Instrument>). For listed derivatives margin management, this is the number of shares adjusted for upcoming corporate action. Used only for securities which are optionable and are between ex-date and settlement date (4 days).',\n            },\n            {\n                id: 1045,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Specific to the <UnderlyingInstrument> (not in <Instrument>). Foreign exchange rate used to compute UnderlyingCurrentValue (885) (or market value) from UnderlyingCurrency (318) to Currency (15).',\n            },\n            {\n                id: 1046,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Specific to the <UnderlyingInstrument> (not in <Instrument>). Specified whether UnderlyingFxRate (1045) should be multiplied or divided to derive UnderlyingCurrentValue (885).',\n            },\n            {\n                id: 1038,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1039,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 315,\n                added: 'FIX.4.3',\n                description: 'Used to express option right',\n            },\n            {\n                id: 2683,\n                added: 'FIX.5.0SP2',\n                addedEP: '224',\n                description:\n                    'Used to express in-the-moneyness behavior in general terms for the option without the use of UnderlyingStrikePrice(316) and UnderlyingPutOrCall(315).',\n            },\n            {\n                id: 2687,\n                added: 'FIX.5.0SP2',\n                addedEP: '224',\n            },\n            {\n                id: 1988,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1989,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1990,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1991,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingCouponFrequencyUnit(1992) is specified.',\n            },\n            {\n                id: 1992,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingCouponFrequencyPeriod(1991) is specified.',\n            },\n            {\n                id: 1993,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2881,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n            {\n                id: 1994,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1995,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingObligationID(1994) is specified.',\n            },\n            {\n                id: 1996,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1997,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingEquityID(1996) is specified.',\n            },\n            {\n                id: 2620,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2621,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if UnderlyingFutureID(2620) is specified.',\n            },\n            {\n                id: 1998,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1999,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2000,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2003,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2004,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2005,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2006,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2284,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2285,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2286,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2287,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedUnderlyingOptionExpirationDesc(2288) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2288,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the UnderlyingOptionExpirationDesc(2286) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 2007,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2008,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2009,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2010,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2011,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2012,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2491,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2013,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if UnderlyingAssetSubClass(2014) is specified.',\n            },\n            {\n                id: 2014,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if UnderlyingAssetType(2015) is specified.',\n            },\n            {\n                id: 2015,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if UnderlyingAssetSubType(2744) is specified.',\n            },\n            {\n                id: 2744,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n            {\n                id: 2016,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2289,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2017,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingMthToDefault(2018) is specified.',\n            },\n            {\n                id: 2018,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2019,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2020,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2021,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2022,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2290,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2622,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2291,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2623,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2292,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2023,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2024,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '224',\n                description:\n                    'When specified, UnderlyingPutOrCall(315), UnderlyingStrikePrice(316), and UnderlyingStrikePriceBoundaryPrecision(2025) must also be specified.',\n            },\n            {\n                id: 2025,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2026,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2027,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2028,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2029,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description: 'Conditionally required if UnderlyingOptPayoutType(2028) = 3 (Binary).',\n            },\n            {\n                id: 2757,\n                added: 'FIX.5.0SP2',\n                addedEP: '238',\n            },\n            {\n                id: 2030,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2031,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2293,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2294,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2032,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2033,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2034,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2035,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2036,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2037,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2038,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2039,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2040,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2041,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2042,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2043,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2044,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41314,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41315,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2295,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2296,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2297,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2756,\n                added: 'FIX.5.0SP2',\n                addedEP: '238',\n            },\n            {\n                id: 2298,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2299,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2624,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2625,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2626,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2627,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2628,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2629,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2630,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2631,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2073,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1023,\n                added: 'FIX.4.4',\n                description:\n                    'Specific to the <UnderlyingInstrument> (not in <Instrument>)\\n\\n\\n                        Insert here the contents of the <UnderlyingStipulations> Component Block',\n            },\n            {\n                id: 1033,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 2227,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2233,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2243,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2228,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4056,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4306,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 4288,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 4293,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 4290,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 4291,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 4398,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 2213,\n                added: 'FIX.5.0SP2',\n                addedEP: '145',\n                description: 'Embedded XML document describing the underlying instrument.',\n            },\n            {\n                id: 4125,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4278,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4268,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4261,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4414,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4396,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 1022,\n        name: 'YieldData',\n        abbrName: 'Yield',\n        added: 'FIX.4.3',\n        category: 'Common',\n        description: 'The YieldData component block conveys yield information for a given Fixed Income security.',\n        fieldRef: [\n            {\n                id: 235,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 236,\n                added: 'FIX.4.3',\n            },\n            {\n                id: 701,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 696,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 697,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 698,\n                added: 'FIX.4.4',\n            },\n        ],\n    },\n    {\n        id: 1024,\n        name: 'StandardHeader',\n        abbrName: 'Hdr',\n        added: 'FIX.4.0',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        category: 'Session',\n        description: 'The standard FIX message header',\n        fieldRef: [\n            {\n                id: 8,\n                presence: 'required',\n                added: 'FIX.4.0',\n                description: 'FIXT.1.1 (Always unencrypted, must be first field in message)',\n            },\n            {\n                id: 9,\n                presence: 'required',\n                added: 'FIX.4.0',\n                description: '(Always unencrypted, must be second field in message)',\n            },\n            {\n                id: 35,\n                presence: 'required',\n                added: 'FIX.4.0',\n                description: '(Always unencrypted, must be third field in message)',\n            },\n            {\n                id: 1128,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Indicates application version using a service pack identifier. The ApplVerID applies to a specific message occurrence.',\n            },\n            {\n                id: 1156,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1129,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Used to support bilaterally agreed custom functionality',\n            },\n            {\n                id: 49,\n                presence: 'required',\n                added: 'FIX.4.0',\n                description: '(Always unencrypted)',\n            },\n            {\n                id: 56,\n                presence: 'required',\n                added: 'FIX.4.0',\n                description: '(Always unencrypted)',\n            },\n            {\n                id: 115,\n                added: 'FIX.4.0',\n                description:\n                    'Trading partner company ID used when sending messages via a third party (Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 128,\n                added: 'FIX.4.0',\n                description:\n                    'Trading partner company ID used when sending messages via a third party (Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 90,\n                added: 'FIX.4.0',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '195',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description: 'Required to identify length of encrypted section of message. (Always unencrypted)',\n            },\n            {\n                id: 91,\n                added: 'FIX.4.0',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '195',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description: 'Required when message body is encrypted. Always immediately follows SecureDataLen field.',\n            },\n            {\n                id: 34,\n                presence: 'required',\n                added: 'FIX.4.0',\n                description: '(Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 50,\n                added: 'FIX.4.0',\n                description: '(Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 142,\n                added: 'FIX.4.1',\n                description:\n                    \"Sender's LocationID (i.e. geographic location and/or desk) (Can be embedded within encrypted data section.)\",\n            },\n            {\n                id: 57,\n                added: 'FIX.4.0',\n                description:\n                    '\"ADMIN\" reserved for administrative messages not intended for a specific user. (Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 143,\n                added: 'FIX.4.1',\n                description:\n                    'Trading partner LocationID (i.e. geographic location and/or desk) (Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 116,\n                added: 'FIX.4.0',\n                description:\n                    'Trading partner SubID used when delivering messages via a third party. (Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 144,\n                added: 'FIX.4.1',\n                description:\n                    'Trading partner LocationID (i.e. geographic location and/or desk) used when delivering messages via a third party. (Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 129,\n                added: 'FIX.4.0',\n                description:\n                    'Trading partner SubID used when delivering messages via a third party. (Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 145,\n                added: 'FIX.4.1',\n                description:\n                    'Trading partner LocationID (i.e. geographic location and/or desk) used when delivering messages via a third party. (Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 43,\n                added: 'FIX.4.0',\n                description:\n                    'Always required for retransmitted messages, whether prompted by the sending system or as the result of a resend request. (Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 97,\n                added: 'FIX.4.0',\n                description:\n                    'Required when message may be duplicate of another message sent under a different sequence number. (Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 52,\n                presence: 'required',\n                added: 'FIX.4.0',\n                description: '(Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 122,\n                added: 'FIX.4.0',\n                description:\n                    'Required for message resent as a result of a ResendRequest. If data is not available set to same value as SendingTime (Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 212,\n                added: 'FIX.4.2',\n                description:\n                    'Required when specifying XmlData to identify the length of a XmlData message block. (Can be embedded within encrypted data section.)',\n            },\n            {\n                id: 213,\n                added: 'FIX.4.2',\n                description:\n                    'Can contain a XML formatted message block (e.g. FIXML). Always immediately follows XmlDataLen field. (Can be embedded within encrypted data section.)\\n\\n\\n                        See Volume 1: FIXML Support',\n            },\n            {\n                id: 347,\n                added: 'FIX.4.2',\n                description:\n                    'Type of message encoding (non-ASCII characters) used in a message\\'s \"Encoded\" fields. Required if any \"Encoding\" fields are used.',\n            },\n            {\n                id: 369,\n                added: 'FIX.4.2',\n                description:\n                    'The last MsgSeqNum value received by the FIX engine and processed by downstream application, such as trading system or order routing system. Can be specified on every message sent. Useful for detecting a backlog with a counterparty.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2085,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Number of repeating groups of historical \"hop\" information. Only applicable if OnBehalfOfCompID is used, however, its use is optional. Note that some market regulations or counterparties may require tracking of message hops.',\n            },\n        ],\n    },\n    {\n        id: 1025,\n        name: 'StandardTrailer',\n        abbrName: 'Trlr',\n        added: 'FIX.4.0',\n        category: 'Session',\n        description: 'The standard FIX message trailer',\n        fieldRef: [\n            {\n                id: 93,\n                added: 'FIX.4.0',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '195',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description:\n                    'Required when trailer contains signature. Note: Not to be included within SecureData field',\n            },\n            {\n                id: 89,\n                added: 'FIX.4.0',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '195',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description: 'Note: Not to be included within SecureData field',\n            },\n            {\n                id: 10,\n                presence: 'required',\n                added: 'FIX.4.0',\n                description: '(Always unencrypted, always last field in message)',\n            },\n        ],\n    },\n    {\n        id: 1029,\n        name: 'DisplayInstruction',\n        abbrName: 'DsplyInstr',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        category: 'Common',\n        description:\n            'The DisplayInstruction component block is used to convey instructions on how a reserved order is to be handled in terms of when and how much of the order quantity is to be displayed to the market.',\n        fieldRef: [\n            {\n                id: 1138,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1082,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1608,\n                added: 'FIX.5.0SP2',\n                addedEP: '115',\n                description: 'Only to be used in the ExecutionReport',\n            },\n            {\n                id: 2828,\n                added: 'FIX.5.0SP2',\n                addedEP: '253',\n            },\n            {\n                id: 1083,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1084,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1085,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Required when DisplayMethod = 3',\n            },\n            {\n                id: 1086,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Required when DisplayMethod = 3',\n            },\n            {\n                id: 1087,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Can be used to specify larger increments than the standard increment provided by the market. Optionally used when DisplayMethod = 3',\n            },\n            {\n                id: 1088,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Required when DisplayMethod = 2',\n            },\n        ],\n    },\n    {\n        id: 1030,\n        name: 'TriggeringInstruction',\n        abbrName: 'TrgrInstr',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        category: 'Common',\n        description:\n            'The TriggeringInstruction component block specifies the conditions under which an order will be triggered by related market events as well as the behavior of the order in the market once it is triggered.',\n        fieldRef: [\n            {\n                id: 1100,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Required if any other Triggering tags are specified.',\n            },\n            {\n                id: 1101,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1628,\n                added: 'FIX.5.0SP2',\n                addedEP: '100',\n                description: 'Conditionally required when TriggerAction(1101)=3 (Cancel).',\n            },\n            {\n                id: 1102,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Only relevant and required for TriggerAction = 1',\n            },\n            {\n                id: 1103,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Only relevant and required for TriggerAction = 1',\n            },\n            {\n                id: 1104,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Requires TriggerSecurityIDSource if specified. Only relevant and required for TriggerAction = 1',\n            },\n            {\n                id: 1105,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Requires TriggerSecurityIDSource if specified. Only relevant and required for TriggerAction = 1',\n            },\n            {\n                id: 1106,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1107,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Only relevant for TriggerAction = 1',\n            },\n            {\n                id: 1108,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Only relevant for TriggerAction = 1',\n            },\n            {\n                id: 1109,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Only relevant for TriggerAction = 1',\n            },\n            {\n                id: 1110,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Should be specified if the order changes Price.',\n            },\n            {\n                id: 1111,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Should be specified if the order changes type.',\n            },\n            {\n                id: 1112,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Required if the order should change quantity',\n            },\n            {\n                id: 1113,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Only relevant and required for TriggerType = 2.',\n            },\n            {\n                id: 1114,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Requires TriggerTradingSessionID if specified. Relevant for TriggerType = 2 only.',\n            },\n        ],\n    },\n    {\n        id: 1057,\n        name: 'ApplicationSequenceControl',\n        abbrName: 'ApplSeqCtrl',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        description:\n            'The ApplicationSequenceControl is used for application sequencing and recovery. Consisting of ApplSeqNum (1181), ApplID (1180), ApplLastSeqNum (1350), and ApplResendFlag (1352), FIX application messages that carries this component block will be able to use application level sequencing. ApplID, ApplSeqNum and ApplLastSeqNum fields identify the application id, application sequence number and the previous application sequence number (in case of intentional gaps) on each application message that carries this block.',\n        fieldRef: [\n            {\n                id: 1180,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Identifies the application with which a message is associated. Used only if application sequencing is in effect.',\n            },\n            {\n                id: 1181,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Application sequence number assigned to the message by the application generating the message. Used only if application sequencing is in effect. Conditionally required if ApplID has been specified.',\n            },\n            {\n                id: 1350,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'The previous sequence number in the application sequence stream. Permits an application to publish messages with sequence gaps where it cannot be avoided. Used only if application sequencing is in effect. Conditionally required if ApplID has been specified',\n            },\n            {\n                id: 1352,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    \"Used to indicate that a message is being sent in response to an Application Message Request. Used only if application sequencing is in effect. It is possible for both ApplResendFlag and PossDupFlag to be set on the same message if the Sender's cache size is greater than zero and the message is being resent due to a session level resend request.\",\n            },\n        ],\n    },\n    {\n        id: 1058,\n        name: 'SecurityTradingRules',\n        abbrName: 'SecTrdgRules',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        description:\n            \"Ths SecurityTradingRules component block is used as part of security definition to specify the specific security's standard trading parameters such as trading session eligibility and other attributes of the security.\",\n        groupRef: [\n            {\n                id: 2130,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'This block contains the trading rules specific to a trading session',\n            },\n            {\n                id: 2135,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        componentRef: [\n            {\n                id: 2131,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'This block contains the base trading rules',\n            },\n        ],\n    },\n    {\n        id: 1060,\n        name: 'SecurityXML',\n        abbrName: 'SecXML',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '145',\n        category: 'Common',\n        description:\n            'The SecurityXML component is used to provide a definition in an XML format for the instrument.\\n\\nSee \"Specifying an FpML product specification from within the FIX Instrument Block\" in Volume 1 of the FIX Specification for more information on using this component block with FpML as a guideline.',\n        fieldRef: [\n            {\n                id: 1184,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '145',\n                description:\n                    'Must be provided if SecurityXML(1185) field is specified and must immediately precede it.',\n            },\n            {\n                id: 1185,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '145',\n            },\n            {\n                id: 1186,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '145',\n            },\n        ],\n    },\n    {\n        id: 1061,\n        name: 'DerivativeSecurityXML',\n        abbrName: 'SecXML',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1282,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'Must be set if DerivativeSecurityXML(1283) field is specified and must immediately precede it.',\n            },\n            {\n                id: 1283,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1284,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n        ],\n    },\n    {\n        id: 1069,\n        name: 'ThrottleResponse',\n        abbrName: 'ThrttlRsp',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1685,\n                added: 'FIX.5.0SP2',\n                addedEP: '116',\n            },\n            {\n                id: 1609,\n                added: 'FIX.5.0SP2',\n                addedEP: '116',\n            },\n            {\n                id: 1686,\n                added: 'FIX.5.0SP2',\n                addedEP: '116',\n            },\n        ],\n    },\n    {\n        id: 1075,\n        name: 'AveragePriceDetail',\n        abbrName: 'AvgPxDetl',\n        added: 'FIX.5.0SP2',\n        addedEP: '240',\n        category: 'Common',\n        description:\n            'The AveragePriceDetail component provides average pricing details in a trade report, including the average pricing model and the start and end times of averaging period.',\n        fieldRef: [\n            {\n                id: 2763,\n                added: 'FIX.5.0SP2',\n                addedEP: '240',\n            },\n            {\n                id: 2764,\n                added: 'FIX.5.0SP2',\n                addedEP: '240',\n                description:\n                    'Required if AveragePriceType(2763)=2 (Percent of volume average price) or 0 (Time weighted average price).',\n            },\n            {\n                id: 2765,\n                added: 'FIX.5.0SP2',\n                addedEP: '240',\n                description:\n                    'Required if AveragePriceType(2763)=2 (Percent of volume average price) or 0 (Time weighted average price).',\n            },\n        ],\n    },\n    {\n        id: 2121,\n        name: 'SecondaryPriceLimits',\n        abbrName: 'PxLmts2',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1305,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1221,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1230,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1240,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n    },\n    {\n        id: 2122,\n        name: 'PriceLimits',\n        abbrName: 'PxLmts',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1306,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Describes the how the price limits are expressed',\n            },\n            {\n                id: 1148,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Allowable low limit price for the trading day. A key parameter in validating order price. Used as the lower band for validating order prices. Orders submitted with prices below the lower limit will be rejected',\n            },\n            {\n                id: 1149,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Allowable high limit price for the trading day. A key parameter in validating order price. Used as the upper band for validating order prices. Orders submitted with prices above the upper limit will be rejected',\n            },\n            {\n                id: 1150,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Reference price for the current trading price range usually representing the mid price between the HighLimitPrice and LowLimitPrice. The value may be the settlement price or closing price of the prior trading day.',\n            },\n        ],\n    },\n    {\n        id: 2129,\n        name: 'TradingSessionRules',\n        abbrName: 'TrdgSesRules',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        groupRef: [\n            {\n                id: 2128,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Specifies the order types that are valid for trading. The scope of the rule is determined by the context in which the component is used. In this case, the scope is trading session.',\n            },\n            {\n                id: 2127,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '223',\n                description:\n                    'Specifies the time in force rules that are valid for trading. The scope of the rule is determined by the context in which the component is used. In this case, the scope is trading session.',\n            },\n            {\n                id: 2126,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '223',\n                description:\n                    'Specifies the execution instructions that are valid for trading. The scope of the rule is determined by the context in which the component is used. In this case, the scope is trading session.',\n            },\n            {\n                id: 2253,\n                added: 'FIX.5.0SP2',\n                addedEP: '223',\n                description:\n                    'Specifies the auction order types that are valid for trading on the identified. The scope of the rule is determined by the context in which the component is used. In this case, the scope is trading session.',\n            },\n            {\n                id: 2125,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '223',\n                description:\n                    'Specifies the matching rules that are valid for trading. The scope of the rule is determined by the context in which the component is used. In this case, the scope is trading session.',\n            },\n            {\n                id: 2123,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '223',\n                description:\n                    'Specifies the market data feed types that are valid for trading. The scope of the rule is determined by the context in which the component is used. In this case, the scope is trading session.',\n            },\n        ],\n    },\n    {\n        id: 2131,\n        name: 'BaseTradingRules',\n        abbrName: 'BaseTrdgRules',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        category: 'Common',\n        description:\n            'Trading rules that are applicable to a market, market segment or individual security independent of a trading session.',\n        fieldRef: [\n            {\n                id: 827,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1786,\n                added: 'FIX.5.0SP2',\n                addedEP: '130',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n            },\n            {\n                id: 562,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n            },\n            {\n                id: 1140,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description:\n                    'For listed derivatives this indicates the minimum quantity necessary for an order or trade to qualify as a block trade.',\n            },\n            {\n                id: 1143,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n            },\n            {\n                id: 1144,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1245,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n            },\n            {\n                id: 2934,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 561,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n            },\n            {\n                id: 1377,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description: 'Used for multileg security only.',\n            },\n            {\n                id: 1378,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description: 'Used for multileg security only.',\n            },\n            {\n                id: 423,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description: 'Defines the default price type used for trading.',\n            },\n            {\n                id: 2557,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description:\n                    'Can be used as a factor to be applied to other base trading rules during a fast market, e.g. to widen price or size ranges by the specified percentage factor.',\n            },\n            {\n                id: 2559,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2118,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description: 'Specifies price tick rules for the security.',\n            },\n            {\n                id: 2124,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Specifies the lot types that are valid for trading.',\n            },\n            {\n                id: 2255,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Specifies the valid price range tables for trading.',\n            },\n            {\n                id: 2256,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Specifies the valid quote sizes for trading.',\n            },\n        ],\n        componentRef: [\n            {\n                id: 2122,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Specifies the price limits that are valid for trading.',\n            },\n        ],\n    },\n    {\n        id: 2133,\n        name: 'DerivativeSecurityDefinition',\n        abbrName: 'DerivSecDef',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        groupRef: [\n            {\n                id: 2136,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Additional attribution for the instrument series',\n            },\n            {\n                id: 2132,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Security trading and listing attributes for the series level',\n            },\n            {\n                id: 2188,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n                description: 'Used to specify forms of product classifications',\n            },\n        ],\n        componentRef: [\n            {\n                id: 2140,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Optional block which can be used to to summarize common attributes shared across a set of option instruments which belong to the same series.',\n            },\n        ],\n    },\n    {\n        id: 2134,\n        name: 'UnderlyingLegInstrument',\n        abbrName: 'Instrmt',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'TradeCapture',\n        fieldRef: [\n            {\n                id: 1330,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1331,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1332,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1333,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1344,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1337,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1338,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1339,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1345,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1405,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1340,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1391,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1343,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1341,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1392,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2108,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n        ],\n    },\n    {\n        id: 2140,\n        name: 'DerivativeInstrument',\n        abbrName: 'DerivInstrmt',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1214,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '277',\n                description:\n                    'Common, \"human understood\" representation of the security. SecurityID value can be specified if no symbol exists (e.g. non-exchange traded Collective Investment Vehicles)\\n\\n\\n                        Use \"[N/A]\" for products which do not have a symbol.\\n\\n\\n                        Required if DerivativeInstrument component is marked as required where the component is used.',\n            },\n            {\n                id: 1215,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1216,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description: 'Takes precedence in identifying security to counterparty over SecurityAltID block',\n            },\n            {\n                id: 1217,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1246,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1228,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Identifies an entire suite of products for a given market. In Futures this may be \"interest rates\", \"agricultural\", \"equity indexes\", etc',\n            },\n            {\n                id: 1243,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Used to indicate if a product or group of product supports the creation of flexible securities',\n            },\n            {\n                id: 1247,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1248,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'It is recommended that CFICode be used instead of SecurityType for non-Fixed Income instruments.',\n            },\n            {\n                id: 2892,\n                added: 'FIX.Latest',\n                addedEP: '266',\n            },\n            {\n                id: 1249,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'It is recommended that CFICode be used instead of SecurityType for non-Fixed Income instruments.\\n\\n\\n                        Required for Fixed Income. Refer to Volume 7 - Fixed Income\\n\\n\\n                        Futures and Options should be specified using the CFICode[461] field instead of SecurityType[167] (Refer to Volume 7 - Recommendations and Guidelines for Futures and Options Markets.)',\n            },\n            {\n                id: 1250,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1251,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'Applicable for standardized derivatives which are typically only referenced by month and year (e.g. S and P futures). Note MaturityDate (a full date) can also be specified.',\n            },\n            {\n                id: 1252,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'Note that standardized derivatives which are typically only referenced by month and year (e.g. S and P futures).may use MaturityMonthYear and or this field.\\n\\n\\n                        When using MaturityMonthYear, it is recommended that markets and sell sides report the MaturityDate on all outbound messages as a means of data enrichment.',\n            },\n            {\n                id: 1253,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1254,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1255,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1256,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1276,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Date instrument was issued. For Fixed Income IOIs for new issues, specifies the issue date.',\n            },\n            {\n                id: 1257,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description: 'Can be used in conjunction with ISIN to address ISIN uniqueness issues.',\n            },\n            {\n                id: 1258,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'Can be used in conjunction with non-ISIN SecurityID (e.g. CUSIP for Municipal Bonds without ISIN) to provide uniqueness.',\n            },\n            {\n                id: 1259,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1260,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1261,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1262,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 2912,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1263,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1264,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1265,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1266,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1438,\n                added: 'FIX.5.0SP1',\n                addedEP: '80',\n            },\n            {\n                id: 1442,\n                added: 'FIX.5.0SP1',\n                addedEP: '80',\n            },\n            {\n                id: 1267,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1268,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1269,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1270,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1722,\n                added: 'FIX.5.0SP2',\n                addedEP: '122',\n            },\n            {\n                id: 2913,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1315,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1316,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1723,\n                added: 'FIX.5.0SP2',\n                addedEP: '122',\n            },\n            {\n                id: 2914,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1317,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1318,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1319,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1576,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 2915,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1320,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1321,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1322,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1323,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2684,\n                added: 'FIX.5.0SP2',\n                addedEP: '224',\n                description:\n                    'Used to express in-the-moneyness behavior in general terms for the option without the use of DerivativeStrikePrice(1261) and DerivativePutOrCall(1323).',\n            },\n            {\n                id: 2688,\n                added: 'FIX.5.0SP2',\n                addedEP: '224',\n            },\n            {\n                id: 1299,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1225,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1271,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1272,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Can be used to identify the security.',\n            },\n            {\n                id: 1273,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1274,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1275,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1277,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'Must be set if DerivativeEncodedIssuer(1278) field is specified and must immediately precede it.',\n            },\n            {\n                id: 1278,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1279,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1280,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'Must be set if DerivativeEncodedSecurityDesc(1280) field is specified and must immediately precede it.',\n            },\n            {\n                id: 1281,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1285,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Must be present for MBS or TBA',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2105,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2106,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2141,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1061,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Embedded XML document describing security.',\n            },\n        ],\n    },\n    {\n        id: 2143,\n        name: 'TradeReportOrderDetail',\n        abbrName: 'TrdRptOrdDetl',\n        added: 'FIX.5.0SP1',\n        addedEP: '77',\n        category: 'TradeCapture',\n        fieldRef: [\n            {\n                id: 37,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 198,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 11,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '95',\n                description:\n                    'In the case of quotes can be mapped to QuoteMsgID(1166) of a single Quote(MsgType=S) or QuoteID(117) of a MassQuote(MsgType=i).',\n            },\n            {\n                id: 526,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '95',\n                description:\n                    'In the case of quotes can be mapped to QuoteID(117) of a single Quote(MsgType=S) or QuoteEntryID(299) of a MassQuote(MsgType=i).',\n            },\n            {\n                id: 66,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 1080,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n                description:\n                    'Some hosts assign an order a new order id under special circumstances. The RefOrdID field will connect the same underlying order across changing OrderIDs.',\n            },\n            {\n                id: 1081,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 1431,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n                description: 'The reason for updating the RefOrdID',\n            },\n            {\n                id: 1091,\n                added: 'FIX.5.0SP2',\n                addedEP: '101',\n            },\n            {\n                id: 40,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n                description: 'Order type from the order associated with the trade',\n            },\n            {\n                id: 44,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n                description: 'Order price at time of trade',\n            },\n            {\n                id: 99,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n                description: 'Stop/Limit order price',\n            },\n            {\n                id: 18,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n                description: 'Execution Instruction from the order associated with the trade',\n            },\n            {\n                id: 39,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n                description: 'Status of order as of this trade report',\n            },\n            {\n                id: 151,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 14,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 59,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 126,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n                description: 'The order expiration date/time in UTC',\n            },\n            {\n                id: 2362,\n                added: 'FIX.5.0SP2',\n                addedEP: '211',\n                description:\n                    'May be used as an alternative to MatchingInstructions when the identifier does not appear in another field.',\n            },\n            {\n                id: 2964,\n                added: 'FIX.Latest',\n                addedEP: '280',\n            },\n            {\n                id: 1629,\n                added: 'FIX.5.0SP2',\n                addedEP: '100',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '159',\n                description:\n                    'The (minimum or suggested) period of time a quoted price is to be tradable before it becomes indicative. (i.e. quoted price becomes off-the-wire).',\n            },\n            {\n                id: 1916,\n                added: 'FIX.5.0SP2',\n                addedEP: '159',\n            },\n            {\n                id: 528,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 529,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 775,\n                added: 'FIX.5.0SP1',\n                addedEP: '78',\n            },\n            {\n                id: 1432,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 1724,\n                added: 'FIX.5.0SP2',\n                addedEP: '222',\n            },\n            {\n                id: 2704,\n                added: 'FIX.5.0SP2',\n                addedEP: '228',\n            },\n            {\n                id: 821,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 1093,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 483,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 586,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 2766,\n                added: 'FIX.5.0SP2',\n                addedEP: '240',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2270,\n                added: 'FIX.5.0SP2',\n                addedEP: '259',\n            },\n            {\n                id: 1064,\n                added: 'FIX.5.0SP2',\n                addedEP: '99',\n            },\n            {\n                id: 1073,\n                added: 'FIX.5.0SP2',\n                addedEP: '222',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1011,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n                description: 'Order quantity at time of trade',\n            },\n            {\n                id: 1029,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n        ],\n    },\n    {\n        id: 2162,\n        name: 'InstrumentScope',\n        abbrName: 'InstrmtScope',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '106',\n        category: 'Common',\n        description: 'Used to specify the instrument',\n        fieldRef: [\n            {\n                id: 1536,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1537,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1538,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1539,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1543,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1544,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1545,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1546,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 2895,\n                added: 'FIX.Latest',\n                addedEP: '266',\n            },\n            {\n                id: 1547,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1548,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1549,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1550,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1551,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1552,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1553,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1554,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1555,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '182',\n            },\n            {\n                id: 1616,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1556,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1620,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1621,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1557,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Can be used to specify FX tenors.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2163,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n        ],\n    },\n    {\n        id: 2212,\n        name: 'LegSecurityXML',\n        abbrName: 'SecXML',\n        added: 'FIX.5.0SP2',\n        addedEP: '145',\n        category: 'Common',\n        description:\n            'The LegSecurityXML component is used to provide a definition in an XML format for the leg instrument.\\n\\nSee \"Specifying an FpML product specification from within the FIX Instrument Block\" in Volume 1 of the FIX Specification for more information on using this component block with FpML as a guideline.',\n        fieldRef: [\n            {\n                id: 1871,\n                added: 'FIX.5.0SP2',\n                addedEP: '145',\n                description:\n                    'Must be provided if LegSecurityXML(1872) field is specified and must immediately precede it.',\n            },\n            {\n                id: 1872,\n                added: 'FIX.5.0SP2',\n                addedEP: '145',\n            },\n            {\n                id: 1873,\n                added: 'FIX.5.0SP2',\n                addedEP: '145',\n            },\n        ],\n    },\n    {\n        id: 2213,\n        name: 'UnderlyingSecurityXML',\n        abbrName: 'SecXML',\n        added: 'FIX.5.0SP2',\n        addedEP: '145',\n        category: 'Common',\n        description:\n            'The UnderlyingSecurityXML component is used to provide a definition in an XML format for the underlying instrument.\\n\\nSee \"Specifying an FpML product specification from within the FIX Instrument Block\" in Volume 1 of the FIX Specification for more information on using this component block with FpML as a guideline.',\n        fieldRef: [\n            {\n                id: 1874,\n                added: 'FIX.5.0SP2',\n                addedEP: '145',\n                description:\n                    'Must be provided if UnderlyingSecurityXML(1875) field is specified and must immediately precede it.',\n            },\n            {\n                id: 1875,\n                added: 'FIX.5.0SP2',\n                addedEP: '145',\n            },\n            {\n                id: 1876,\n                added: 'FIX.5.0SP2',\n                addedEP: '145',\n            },\n        ],\n    },\n    {\n        id: 2250,\n        name: 'MDStatisticParameters',\n        abbrName: 'StatsPrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        category: 'MarketData',\n        description:\n            'This component comprises all parameters that can be used to describe the market data statistics. These can be part of the request as well as the response. All parameters defined on the MarketDataStatisticsRequest(35=DO) message should be echoed in the MarketDataStatisticsReport(35=DP) message as the latter could also be sent unsolicited.\\n\\nThe general category and the entities involved in the statistics are defined by MDStatisticType(2456), MDStatisticScope(2457), and MDStatisticIntervalType(2464) and must always be specified. The remaining fields are optional and restrict the data range in one way or another. The time range for the data can either be specified in terms of an interval for which the statistics are typically calculated on a regular basis or in terms of an absolute date and/or time range.\\n\\nMDStatisticScope(2457), MDStatisticSubScope(2458) and MDStatisticScopeType(2459) form a set of scope relationships to filter further the type of statistic being requested or being provided.\\n\\nIt should be noted that some of the enumeration values for MDStatisticScopeType(2459) may not be applicable or useful for a given MDStatisticScope(2457) - e.g. MDStatisticScopeType(2459)=4 (Downward move) is more applicable to prices than to orders or trades.',\n        fieldRef: [\n            {\n                id: 2456,\n                presence: 'required',\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 2457,\n                presence: 'required',\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 2458,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 2459,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 2454,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 2455,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 2481,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description:\n                    'Must be set if EncodedMDStatisticDesc(2482) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2482,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description:\n                    'Encoded (non-ASCII characters) representation of the MDStatisticDesc(2455) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 264,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description: 'May be used to specify the market depth up to specified level.',\n            },\n            {\n                id: 2460,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description:\n                    'Conditionally required when MDStatisticFrequencyUnit(2461) is specified. Omission represents a one-time dissemination.',\n            },\n            {\n                id: 2461,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description: 'Conditionally required when MDStatisticFrequencyPeriod(2460) is specified.',\n            },\n            {\n                id: 2462,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description: 'Conditionally required when MDStatisticDelayUnit(2463) is specified.',\n            },\n            {\n                id: 2463,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description: 'Conditionally required when MDStatisticDelayPeriod(2462) is specified.',\n            },\n            {\n                id: 2464,\n                presence: 'required',\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 2465,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description:\n                    'Conditionally required when MDStatisticIntervalType (2464) = 5(Current time unit), 6(Previous time unit) or 8(Maximum range up to previous time unit).',\n            },\n            {\n                id: 2466,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description:\n                    'Conditionally required if/when MDStatisticIntervalUnit(2467) is specified.\\n\\n\\n                        Conditionally required when MDStatisticIntervalType(2464) = 1 (Sliding window) or 2 (Sliding window peak).',\n            },\n            {\n                id: 2467,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description: 'Conditionally required when MDStatisticIntervalPeriod(2466) is specified.',\n            },\n            {\n                id: 2468,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description:\n                    'Can be used to define a date range for a sliding window peak other than the current day. Omission represents a date range starting with the first available day.',\n            },\n            {\n                id: 2469,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description:\n                    'Can be used to define a date range for a sliding window peak other than the current day. Omission represents a date range including the current day.',\n            },\n            {\n                id: 2470,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description:\n                    'Can be used to define a time range for a sliding window peak other than the complete day. Omission represents a time range starting at midnight.',\n            },\n            {\n                id: 2471,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description:\n                    'Can be used to define a time range for a sliding window peak other than the complete day. Omission represents a time range ending with the time of dissemination of the statistical data.',\n            },\n            {\n                id: 2472,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description: 'Conditionally required when MDStatisticType(2456) = 5(Ratio).',\n            },\n            {\n                id: 2584,\n                added: 'FIX.5.0SP2',\n                addedEP: '236',\n            },\n            {\n                id: 1815,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 40,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 59,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 276,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 277,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 54,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 578,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 336,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 625,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 1024,\n                added: 'FIX.5.0SP2',\n                addedEP: '231',\n            },\n            {\n                id: 2711,\n                added: 'FIX.5.0SP2',\n                addedEP: '231',\n            },\n            {\n                id: 338,\n                added: 'FIX.5.0SP2',\n                addedEP: '231',\n            },\n            {\n                id: 1022,\n                added: 'FIX.5.0SP2',\n                addedEP: '231',\n            },\n            {\n                id: 1629,\n                added: 'FIX.5.0SP2',\n                addedEP: '231',\n            },\n            {\n                id: 1916,\n                added: 'FIX.5.0SP2',\n                addedEP: '231',\n                description: 'Conditionally required when ExposureDuration(1629) is specified.',\n            },\n            {\n                id: 1057,\n                added: 'FIX.5.0SP2',\n                addedEP: '231',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1008,\n                added: 'FIX.5.0SP2',\n                addedEP: '236',\n            },\n        ],\n    },\n    {\n        id: 2251,\n        name: 'LegFinancingDetails',\n        abbrName: 'FinDetls',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        category: 'Common',\n        description:\n            'Component block is optionally used for financial transactions where legal contracts, master agreements or master confirmations are to be referenced. This component identifies the legal agreement under which the deal was made and other unique characteristics of the transaction. For example, the LegAgreementDesc(2497) field refers to base standard documents such as MRA 1996 Repurchase Agreement, GMRA 2000 Bills Transaction (U.K.), MSLA 1993 Securities Loan - Amended 1998, for example.',\n        fieldRef: [\n            {\n                id: 2497,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2498,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2499,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2496,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2495,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2953,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2511,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2510,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2512,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2509,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2500,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2502,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2501,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2503,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2507,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2505,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2494,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n                description:\n                    'Must be set if EncodedLegDocumentationText(2493) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2493,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegDocumentationText(2505) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 2514,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2513,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2506,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2504,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2508,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4315,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 4316,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 4317,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n        ],\n    },\n    {\n        id: 2264,\n        name: 'FloatingRateIndex',\n        abbrName: 'RtNdx',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '240',\n        category: 'Common',\n        description:\n            'Used to identify the rate index for a floating rate coupon.\\n\\nIn the context of MiFID II RTS 23 Annex I Table 3 reference data - statement of the attributes of the index/benchmark of a floating rate security.',\n        fieldRef: [\n            {\n                id: 2731,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n                description: 'Conditionally required when FloatingRateIndexIDSource(2732) is specified.',\n            },\n            {\n                id: 2732,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n                description: 'Conditionally required when FloatingRateIndexID(2731) is specified.',\n            },\n            {\n                id: 2730,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n                description: 'Conditionally required when FloatingRateIndexCurvePeriod(2728) is specified.',\n            },\n            {\n                id: 2728,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n                description: 'Conditionally required when FloatingRateIndexCurveUnit(2730) is specified.',\n            },\n            {\n                id: 2729,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n        ],\n    },\n    {\n        id: 2265,\n        name: 'PostTradePayment',\n        abbrName: 'PostTrdPmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '249',\n        category: 'PayManagement',\n        description: 'This component specifies the details of a payment between the parties involved.',\n        fieldRef: [\n            {\n                id: 2824,\n                presence: 'required',\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n            },\n            {\n                id: 2817,\n                presence: 'required',\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n            },\n            {\n                id: 2818,\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n            },\n            {\n                id: 2956,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2825,\n                presence: 'required',\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n                description:\n                    'The date payment calculations are made. This may be earlier than the date in ClearingBusinessDate(715).\\n\\n\\n                        When the report is sent unsolicited, this is the payment calculation date as determined by report sender.',\n            },\n            {\n                id: 2826,\n                presence: 'required',\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n                description: 'The date the payment is legally confirmed to settle.',\n            },\n            {\n                id: 2827,\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n                description:\n                    'The actual payment date in the event it differs from the date specified in PostTradePaymentValueDate(2826).',\n            },\n            {\n                id: 2819,\n                presence: 'required',\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n            },\n            {\n                id: 2816,\n                presence: 'required',\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n            },\n            {\n                id: 2821,\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n            },\n            {\n                id: 2820,\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n            },\n            {\n                id: 2815,\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n                description:\n                    'Must be set if EncodedPostTradePaymentDesc(2814) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2814,\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n                description:\n                    'Encoded (non-ASCII characters) representation of the PostTradePaymentDesc(2820) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 2822,\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n            },\n            {\n                id: 2823,\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n                description:\n                    'Used when PayReportTransType(2804)=2 (Status) to report actual payment status from payment service (i.e. after payment or remittance instruction with payment service).',\n            },\n        ],\n    },\n    {\n        id: 2271,\n        name: 'SettlTradeDetails',\n        abbrName: 'SettlTrdDetls',\n        added: 'FIX.Latest',\n        addedEP: '281',\n        category: 'SettlementStatusManagement',\n        description:\n            'SettlTradeDetails component is used to provide the details which can be used to look up a single trade.',\n        fieldRef: [\n            {\n                id: 664,\n                added: 'FIX.Latest',\n                addedEP: '281',\n                description: 'May be used to identify the trade via the known Confirmation(35=AK) message.',\n            },\n            {\n                id: 70,\n                added: 'FIX.Latest',\n                addedEP: '281',\n                description: 'May be used to identify the trade via the known AllocationInstruction(35=J) message.',\n            },\n            {\n                id: 467,\n                added: 'FIX.Latest',\n                addedEP: '281',\n                description:\n                    'May be used to identify the trade via a specific allocated account instance of an AllocationInstruction(35=J) this IndividualAllocID(467) is part of. If specified AllocID(70) should be specified.',\n            },\n            {\n                id: 793,\n                added: 'FIX.Latest',\n                addedEP: '281',\n                description:\n                    'May be used to identify the trade via a specific allocated account instance of an AllocationInstruction(35=J) this SecondaryAllocID(793) is part of. If specified AllocID(70) should be specified.',\n            },\n            {\n                id: 79,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 75,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 80,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 54,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 6,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 423,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 860,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 381,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 118,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 15,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 854,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 64,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 119,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 120,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 2899,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1008,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n            {\n                id: 1016,\n                added: 'FIX.Latest',\n                addedEP: '281',\n            },\n        ],\n    },\n    {\n        id: 4007,\n        name: 'UnderlyingStreamEffectiveDate',\n        abbrName: 'EfctvDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingStreamEffectivedDate is a subcomponent of the UnderlyingStreamGrp component used to specify the effective date of the stream.',\n        fieldRef: [\n            {\n                id: 40057,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40058,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the underlying instrument's stream effective dates.\",\n            },\n            {\n                id: 40060,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40061,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingStreamEffectiveDateOffsetUnit(40062) is specified.',\n            },\n            {\n                id: 40062,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingStreamEffectiveDateOffsetPeriod(40061) is specified.',\n            },\n            {\n                id: 40063,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40064,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4135,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the underlying instrument's stream effective dates.\",\n            },\n        ],\n    },\n    {\n        id: 4008,\n        name: 'StreamTerminationDate',\n        abbrName: 'TrmtnDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'StreamTerminationDate is a subcomponent of the StreamGrp component used to specify the termination date of the stream.',\n        fieldRef: [\n            {\n                id: 40065,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40066,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the termination date of the stream.',\n            },\n            {\n                id: 40068,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40069,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when StreamTerminationDateOffsetUnit(40070) is specified.',\n            },\n            {\n                id: 40070,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when StreamTerminationDateOffsetPeriod(40069) is specified.',\n            },\n            {\n                id: 40071,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40072,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4123,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the termination date of the stream.',\n            },\n        ],\n    },\n    {\n        id: 4009,\n        name: 'StreamCalculationPeriodDates',\n        abbrName: 'CalcDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'StreamCalculationPeriodDates is a subcomponent of the StreamGrp component used to specify the calculation period dates of the stream.',\n        fieldRef: [\n            {\n                id: 41244,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41245,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40073,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the calculation period dates of the stream.',\n            },\n            {\n                id: 40075,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40076,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the calculation period dates of the stream.',\n            },\n            {\n                id: 40078,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40079,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40080,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40081,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40082,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when StreamCalculationFrequencyUnit(40083) is specified.',\n            },\n            {\n                id: 40083,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when StreamCalculationFrequencyPeriod(40082) is specified.',\n            },\n            {\n                id: 40084,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the date roll convention defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the stream calculation dates.',\n            },\n            {\n                id: 41246,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41247,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when StreamCalculationCorrectionUnit(41248) is specified.',\n            },\n            {\n                id: 41248,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when StreamCalculationCorrectionPeriod(41247) is specified.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4120,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the calculation period dates of the stream.',\n            },\n            {\n                id: 4177,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4121,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the calculation period dates of the stream.',\n            },\n        ],\n    },\n    {\n        id: 4012,\n        name: 'ProvisionCashSettlValueDates',\n        abbrName: 'CashSettlValDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The ProvisionCashSettlValueDates component is a subcomponent within the ProvisionGrp component used to report the cash settlement value date and time defined in the provision.',\n        fieldRef: [\n            {\n                id: 40114,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40115,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40116,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the provisional cash settlement value date.',\n            },\n            {\n                id: 40118,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40119,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when ProvisionCashSettlValueDateOffsetUnit(40120) is specified.',\n            },\n            {\n                id: 40120,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when ProvisionCashSettlValueDateOffsetPeriod(40119) is specified.',\n            },\n            {\n                id: 40121,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40122,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4115,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the provisional cash settlement value date.',\n            },\n        ],\n    },\n    {\n        id: 4013,\n        name: 'ProvisionOptionExerciseDates',\n        abbrName: 'OptExerDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The ProvisionOptionExerciseDates is a subcomponent within the ProvisionGrp component used to report the option exercise dates and times defined in the provision.',\n        fieldRef: [\n            {\n                id: 40123,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the provisional option exercise dates.',\n            },\n            {\n                id: 40125,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when ProvisionOptionExerciseEarliestDateUnit(40126) is specified.',\n            },\n            {\n                id: 40126,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when ProvisionOptionExerciseEasrliestDatePeriod(40125) is specified.',\n            },\n            {\n                id: 40127,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when ProvisionOptionExerciseFrequencyUnit(40128) is specified.',\n            },\n            {\n                id: 40128,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when ProvisionOptionExerciseFrequencyPeriod(40127) is specified.',\n            },\n            {\n                id: 40129,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40130,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40131,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when ProvisionOptionExerciseStartDateOffsetUnit(40132) is specified.',\n            },\n            {\n                id: 40132,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when ProvisionOptionExerciseStartDateOffsetPeriod(40131) is specified.',\n            },\n            {\n                id: 40133,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40134,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40135,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40136,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40137,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40138,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40139,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40140,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40141,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4116,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the provisional option exercise dates.',\n            },\n            {\n                id: 4014,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4015,\n        name: 'ProvisionOptionExpirationDate',\n        abbrName: 'OptExpDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The ProvisionOptionExerciseDate is a subcomponent within the ProvisionGrp component used to report the option expiration date and times defined in the provision.',\n        fieldRef: [\n            {\n                id: 40145,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40146,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the provisional option expiration date.',\n            },\n            {\n                id: 40148,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40149,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when ProvisionOptionExpirationDateOffsetUnit(40150) is specified.',\n            },\n            {\n                id: 40150,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when ProvisionOptionExpirationDateOffsetPeriod(40149) is specified.',\n            },\n            {\n                id: 40151,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40152,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40153,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40154,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4117,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the provisional option expiration date.',\n            },\n        ],\n    },\n    {\n        id: 4016,\n        name: 'ProvisionOptionRelevantUnderlyingDate',\n        abbrName: 'OptRelvntUndlyDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The ProvisionOptionRelevantUnderlyingDate is a subcomponent within the ProvisionGrp component used to report the option relevant underlying date defined in the provision.',\n        fieldRef: [\n            {\n                id: 40155,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40156,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the provisional option relevant underlying date.',\n            },\n            {\n                id: 40158,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40159,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when ProvisionOptionRelevantUnderlyingDateOffsetUnit(40160) is specified.',\n            },\n            {\n                id: 40160,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when ProvisionOptionRelevantUnderlyingDateOffsetPeriod(40159) is specified.',\n            },\n            {\n                id: 40161,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40162,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4118,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.Latest',\n                updatedEP: '282',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the provisional option relevant underlying date.',\n            },\n        ],\n    },\n    {\n        id: 4017,\n        name: 'ProvisionCashSettlPaymentDates',\n        abbrName: 'CashSettlPmtDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        category: 'Common',\n        description:\n            'The ProvisionCashSettlPaymentDates component is a sub-component within the ProvisionGrp component used to report the cash settlement payment dates defined in the provision.',\n        fieldRef: [\n            {\n                id: 40163,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the provisional cash settlement payment dates.',\n            },\n            {\n                id: 40165,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40166,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when ProvisionCashSettlPaymentDateOffsetUnit(40167) is specified.',\n            },\n            {\n                id: 40167,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when ProvisionCashSettlPaymentDateOffsetPeriod(40166) is specified.',\n            },\n            {\n                id: 40168,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40169,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40170,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4114,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the provisional cash settlement payment dates.',\n            },\n            {\n                id: 4018,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4032,\n        name: 'LegStreamEffectiveDate',\n        abbrName: 'EfctvDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegStreamEffectivedDate is a subcomponent of the LegStreamGrp component used to specify the effective date of the stream.',\n        fieldRef: [\n            {\n                id: 40249,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40250,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg stream effective date.',\n            },\n            {\n                id: 40252,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40253,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStreamEffectiveDateOffsetUnit(40254) is specified.',\n            },\n            {\n                id: 40254,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegPaymentStreamEffectiveDateOffsetPeriod(40253) is specified.',\n            },\n            {\n                id: 40255,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40256,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4103,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg stream stream effective date.',\n            },\n        ],\n    },\n    {\n        id: 4033,\n        name: 'LegStreamTerminationDate',\n        abbrName: 'TrmtnDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegStreamTerminationDate is a subcomponent of the LegStreamGrp component used to specify the termination date of the stream.',\n        fieldRef: [\n            {\n                id: 40257,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40258,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg stream termination date.',\n            },\n            {\n                id: 40260,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40261,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegStreamTerminationDateOffsetUnit(40262) is specified.',\n            },\n            {\n                id: 40262,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegStreamTerminationDateOffsetPeriod(40261) is specified.',\n            },\n            {\n                id: 40263,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40264,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4104,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg stream termination date.',\n            },\n        ],\n    },\n    {\n        id: 4034,\n        name: 'LegStreamCalculationPeriodDates',\n        abbrName: 'CalcDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegStreamCalculationPeriodDates is a subcomponent of the LegStreamGrp component used to specify the calculation period dates of the stream.',\n        fieldRef: [\n            {\n                id: 41641,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41642,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40265,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg stream calculation period dates.',\n            },\n            {\n                id: 40267,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40268,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg stream calculation period dates.',\n            },\n            {\n                id: 40270,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40271,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40272,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40273,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40274,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegStreamCalculationFrequencyUnit(40275) is specified.',\n            },\n            {\n                id: 40275,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegStreamCalculationFrequencyPeriod(40274) is specified.',\n            },\n            {\n                id: 40276,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the date roll convention defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the stream calculation period dates.',\n            },\n            {\n                id: 41643,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41644,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegStreamCalculationCorrectionUnit(41645) is specified.',\n            },\n            {\n                id: 41645,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegStreamCalculationCorrectionPeriod(41644) is specified.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4101,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg stream calculation period dates.',\n            },\n            {\n                id: 4235,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4102,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg stream calculation period dates.',\n            },\n        ],\n    },\n    {\n        id: 4035,\n        name: 'LegPaymentStream',\n        abbrName: 'PmtStrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The LegPaymentStream component is a subcomponent of the LegStreamGrp used to detail the attributes of a payment stream in a swap.',\n        fieldRef: [\n            {\n                id: 40279,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40280,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40281,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42399,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 40282,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40283,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 43108,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description: 'May be used to specify a count method not listed in LegPaymentStreamDayCount(40283).',\n            },\n            {\n                id: 40284,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40285,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40286,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40287,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40288,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42400,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Mutually exclusive with LegPaymentStreamCompoundingFixedRate(42404) or the LegPaymentStreamCompoundingFloatingRate component.',\n            },\n            {\n                id: 42401,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42402,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42403,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 40289,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40290,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40291,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41549,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41550,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41551,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41552,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41553,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41554,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41555,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42404,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Mutually exclusive with LegPaymentStreamCompoundingXIDRef(42400) or the LegPaymentStreamCompoundingFloatingRate component.',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4036,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4037,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4038,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4039,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4342,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Mutually exclusive with LegPaymentStreamCompoundingFixedRate(42404) or the LegPaymentStreamCompoundingXIDRef(42400).',\n            },\n            {\n                id: 4339,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4040,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4036,\n        name: 'LegPaymentStreamPaymentDates',\n        abbrName: 'PmtDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        category: 'Common',\n        description:\n            'The LegPaymentStreamPaymentDates component is a subcomponent of the LegPaymentStream component used to specify the payment dates of the stream.\\n\\nFor equity return swaps this component is used to specify the interim price payment dates and the LegPaymentStreamFinalPricePaymentDate component is used to specify the final price payment date.',\n        fieldRef: [\n            {\n                id: 40292,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg payment stream.',\n            },\n            {\n                id: 40294,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStreamPaymentFrequencyUnit(40295) is specified.',\n            },\n            {\n                id: 40295,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStreamFrequencyPeriod(40294) is specified.',\n            },\n            {\n                id: 40296,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the date roll convention defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the stream payment dates.',\n            },\n            {\n                id: 40297,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40298,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40299,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40300,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description: 'Conditionally required when LegPaymentStreamPaymentDateOffsetUnit(40301) is specified.',\n            },\n            {\n                id: 40301,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description: 'Conditionally required when LegPaymentStreamPaymentDateOffsetPeriod(40300) is specified.',\n            },\n            {\n                id: 40302,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41592,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4091,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg payment stream.',\n            },\n            {\n                id: 4223,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4345,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4037,\n        name: 'LegPaymentStreamResetDates',\n        abbrName: 'ResetDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The LegPaymentStreamResetDates component is a subcomponent of the LegPaymentStream component used to specify the floating rate reset dates of the stream.',\n        fieldRef: [\n            {\n                id: 40303,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40304,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg payment stream reset dates.',\n            },\n            {\n                id: 40306,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStreamResetFrequencyUnit(40307) is specified.',\n            },\n            {\n                id: 40307,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStreamResetFrequencyPeriod(40306) is specified.',\n            },\n            {\n                id: 40308,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the date roll convention defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the stream payment dates.',\n            },\n            {\n                id: 40309,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40310,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg payment stream reset dates.',\n            },\n            {\n                id: 40312,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegPaymentStreamInitialFixingDateOffsetUnit(40313) is specified.',\n            },\n            {\n                id: 40313,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegPaymentStreamInitialFixingDateOffsetPeriod(40312) is specified.',\n            },\n            {\n                id: 40314,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40315,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40316,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40317,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg payment stream reset dates.',\n            },\n            {\n                id: 40319,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStreamFixingDateOffsetUnit(40320) is specified.',\n            },\n            {\n                id: 40320,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStreamFixingDateOffsetPeriod(40319) is specified.',\n            },\n            {\n                id: 40321,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40322,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40323,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description:\n                    'Conditionally required when LegPaymentStreamRateCutoffDateOffsetUnit(40324) is specified.',\n            },\n            {\n                id: 40324,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description:\n                    'Conditionally required when LegPaymentStreamRateCutoffDateOffsetPeriod(40323) is specified.',\n            },\n            {\n                id: 40325,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4092,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg payment stream reset dates.',\n            },\n            {\n                id: 4093,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg payment stream reset dates.',\n            },\n            {\n                id: 4094,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg payment stream reset dates.',\n            },\n            {\n                id: 4346,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4038,\n        name: 'LegPaymentStreamFixedRate',\n        abbrName: 'Fixed',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegPaymentStreamFixedRate is a subcomponent of the LegPaymentStream component used to report the fixed rate or fixed payment amount of the payment stream.',\n        fieldRef: [\n            {\n                id: 40326,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Mutually exclusive with LegPaymentStreamFixedAmount(40327).',\n            },\n            {\n                id: 40327,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Mutually exclusive with LegPaymentStreamRate(40326).',\n            },\n            {\n                id: 40328,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41556,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41557,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40329,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40330,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41558,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41559,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41560,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4039,\n        name: 'LegPaymentStreamFloatingRate',\n        abbrName: 'Float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        category: 'Common',\n        description:\n            'LegPaymentStreamFloatingRate is a subcomponent of the LegPaymentStream component used to report the floating rate attributes of the payment stream.\\n\\nNote that if the floating rate index or the rate calculation goes negative for a calculation period and LegPaymentStreamNegativeRateTreatment(40349)=1 (Negative interest rate method) the Receiver pays the Payer the absolute floating rate, i.e. the Receiver pays the cash flow amount to the Payer.\\n\\nThe Calculation Lag Interval (LegPaymentStreamCalculationLagPeriod(41578) and LegPaymentStreamCalculationLagUnit(41579)) and the First Observation Offset Duration (LegPaymentStreamFirstObservationOffsetPeriod(41580) and LegPaymentStreamFirstObservationOffsetUnit(41581)) are used together. If the First Observation Offset Duration is specified, the observation starts the Fixing Lag Interval prior to each calculation. If the First Observation Offset Duration is not specified, the observation starts immediately preceding each calculation.',\n        fieldRef: [\n            {\n                id: 40331,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40332,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 43088,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n                description: 'Conditionally required when LegPaymentStreamRateIndexIDSource(43089) is specified.',\n            },\n            {\n                id: 43089,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n                description: 'Conditionally required when LegPaymentStreamRateIndexID(43088) is specified.',\n            },\n            {\n                id: 40333,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStreamRateIndexCurvePeriod(40334) is specified.',\n            },\n            {\n                id: 40334,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStreamRateIndexCurveUnit(40333) is specified.',\n            },\n            {\n                id: 43116,\n                added: 'FIX.Latest',\n                addedEP: '271',\n            },\n            {\n                id: 43117,\n                added: 'FIX.Latest',\n                addedEP: '271',\n            },\n            {\n                id: 43118,\n                added: 'FIX.Latest',\n                addedEP: '271',\n                description: 'Conditionally required when LegPaymentStreamRateIndex2IDSource(43119) is specified.',\n            },\n            {\n                id: 43119,\n                added: 'FIX.Latest',\n                addedEP: '271',\n                description: 'Conditionally required when LegPaymentStreamRateIndex2ID(43118) is specified.',\n            },\n            {\n                id: 41563,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description: 'Conditionally required when LegPaymentStreamRateIndex2CurvePeriod(41564) is specified.',\n            },\n            {\n                id: 41564,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description: 'Conditionally required when LegPaymentStreamRateIndex2CurveUnit(41563) is specified.',\n            },\n            {\n                id: 41565,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41566,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41567,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41568,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41569,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41570,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41571,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40335,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40336,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41572,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41573,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41574,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41575,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40337,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40338,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40339,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40340,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40341,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40342,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40343,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40344,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40345,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41576,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41577,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40346,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40347,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40348,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40349,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41578,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegPaymentStreamCalculationLagUnit(41579) is specified.',\n            },\n            {\n                id: 41579,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegPaymentStreamCalculationLagPeriod(41578) is specified.',\n            },\n            {\n                id: 42462,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42463,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42464,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 41580,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when LegPaymentStreamFirstObservationOffsetUnit(41581) is specified.',\n            },\n            {\n                id: 41581,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when LegPaymentStreamFirstObservationOffsetPeriod(41580) is specified.',\n            },\n            {\n                id: 42465,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 41582,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41583,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41584,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41585,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41586,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to the payment stream pricing date.',\n            },\n            {\n                id: 40350,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStreamInflationLagUnit(40351) is specified.',\n            },\n            {\n                id: 40351,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStreamInflationLagPeriod(40350) is specified.',\n            },\n            {\n                id: 40352,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40353,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40354,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40355,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40356,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40357,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40358,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42466,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42467,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42468,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42469,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42470,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42471,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42472,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42473,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42474,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42475,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42476,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42477,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42478,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42479,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42480,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42481,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4222,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to the the payment stream pricing date.',\n            },\n            {\n                id: 4225,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4224,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4355,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4347,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4333,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4040,\n        name: 'LegPaymentStreamNonDeliverableSettlTerms',\n        abbrName: 'NonDlvrblTrms',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegPaymentStreamNonDeliverableSettl is a subcomponent of the LegPaymentStream component used to specify the non-deliverable settlement terms of the payment stream.',\n        fieldRef: [\n            {\n                id: 40359,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40360,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the non-deliverable currency's fixing date.\",\n            },\n            {\n                id: 40362,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40363,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegPaymentStreamNonDeliverableFixingDateOffsetUnit(40364) is specified.',\n            },\n            {\n                id: 40364,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegPaymentStreamNonDeliverableFixingDateOffsetPeriod(40363) is specified.',\n            },\n            {\n                id: 40365,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4090,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the non-deliverable currency's fixing date.\",\n            },\n            {\n                id: 4041,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4080,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4042,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4042,\n        name: 'LegPaymentStreamNonDeliverableSettlRateSource',\n        abbrName: 'RtSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegPaymentStreamNonDeliverableSettlRateSource is a subcomponent of the LegPaymentStreamNonDeliverableSettlTerms component used to specify the rate source in the event of payment non-delivery.',\n        fieldRef: [\n            {\n                id: 40087,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40228,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegPaymentStreamNonDeliverableSettlRateSource(40087) = 3 (ISDA Settlement Rate Option) or 99 (Other).',\n            },\n        ],\n    },\n    {\n        id: 4048,\n        name: 'LegProvisionOptionExerciseDates',\n        abbrName: 'OptExerDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The LegProvisionOptionExerciseDates is a subcomponent within the LegProvisionGrp component used to report the option exercise dates and times defined in the provision.',\n        fieldRef: [\n            {\n                id: 40476,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg provision option exercise dates.',\n            },\n            {\n                id: 40478,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegProvisionOptionExerciseEarliestDateUnit(40479) is specified.',\n            },\n            {\n                id: 40479,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegProvisionOptionExerciseEarliestDatePeriod(40478) is specified.',\n            },\n            {\n                id: 40480,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegProvisionOptionExerciseFrequencyUnit(40481) is specified.',\n            },\n            {\n                id: 40481,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegProvisionOptionExerciseFrequencyPeriod(40480) is specified.',\n            },\n            {\n                id: 40482,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40483,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40484,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegProvisionOptionExerciseStartDateOffsetUnit(40485) is specified.',\n            },\n            {\n                id: 40485,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegProvisionOptionExerciseStartDateOffsetPeriod(40484) is specified.',\n            },\n            {\n                id: 40486,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40487,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40488,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40489,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40490,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40491,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40492,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40493,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40494,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4097,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg provision option exercise dates.',\n            },\n            {\n                id: 4049,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4050,\n        name: 'LegProvisionOptionExpirationDate',\n        abbrName: 'OptExpDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The LegProvisionOptionExerciseDate is a subcomponent within the LegProvisionGrp component used to report the option expiration date and times defined in the provision.',\n        fieldRef: [\n            {\n                id: 40498,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40499,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg provision option expiration date.',\n            },\n            {\n                id: 40501,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40502,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegProvisionOptionExpirationDateOffsetUnit(40503) is specified.',\n            },\n            {\n                id: 40503,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegProvisionOptionExpirationDateOffsetPeriod(40502) is specified.',\n            },\n            {\n                id: 40504,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40505,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40506,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40507,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4098,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg provision option expiration date.',\n            },\n        ],\n    },\n    {\n        id: 4051,\n        name: 'LegProvisionOptionRelevantUnderlyingDate',\n        abbrName: 'OptRelvntUndlyDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The LegProvisionOptionRelevantUnderlyingDate is a subcomponent within the LegProvisionGrp component used to report the option relevant underlyingdate defined in the provision.',\n        fieldRef: [\n            {\n                id: 40508,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40509,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg provision option relevant underlying date.',\n            },\n            {\n                id: 40511,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40512,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegProvisionOptionRelevantUnderlyingDateOffsetUnit(40513) is specified.',\n            },\n            {\n                id: 40513,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegProvisionOptionRelevantUnderlyingDateOffsetPeriod(40512) is specified.',\n            },\n            {\n                id: 40514,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40515,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4099,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg provision option relevant underlying date.',\n            },\n        ],\n    },\n    {\n        id: 4052,\n        name: 'LegProvisionCashSettlPaymentDates',\n        abbrName: 'CashSettlPmtDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        category: 'Common',\n        description:\n            'The LegProvisionCashSettlPaymentDates component is a sub-component within the LegProvisionGrp component used to report the cash settlement payment dates defined in the provision.',\n        fieldRef: [\n            {\n                id: 40516,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg provision cash settlement payment dates.',\n            },\n            {\n                id: 40518,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40519,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegProvisionCashSettlPaymentDateOffsetUnit(40520) is specified.',\n            },\n            {\n                id: 40520,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegProvisionCashSettlPaymentDateOffsetPeriod(40519) is specified.',\n            },\n            {\n                id: 40521,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40522,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40523,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4095,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg provision cash settlement payment dates.',\n            },\n            {\n                id: 4047,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4053,\n        name: 'LegProvisionCashSettlValueDates',\n        abbrName: 'CashSettlValDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The LegProvisionCashSettlValueDates component is a subcomponent within the LegProvisionGrp component used to report the cash settlement value date and time defined in the provision.',\n        fieldRef: [\n            {\n                id: 40524,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40525,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40526,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg provision cash settlement value date.',\n            },\n            {\n                id: 40528,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40529,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegProvisionCashSettlValueDateOffsetUnit(40530) is specified.',\n            },\n            {\n                id: 40530,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegProvisionCashSettlValueDateOffsetPeriod(40529) is specified.',\n            },\n            {\n                id: 40531,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40532,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4096,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg provision cash settlement value date.',\n            },\n        ],\n    },\n    {\n        id: 4057,\n        name: 'UnderlyingStreamTerminationDate',\n        abbrName: 'TrmtnDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingStreamTerminationDate is a subcomponent of the UnderlyingStreamGrp component used to specify the termination date of the stream.',\n        fieldRef: [\n            {\n                id: 40548,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40549,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the underlying instrument's termination date of the stream.\",\n            },\n            {\n                id: 40551,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40552,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingStreamTerminationDateOffsetUnit(40553) is specified.',\n            },\n            {\n                id: 40553,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentTerminationDateOffsetPeriod(40552) is specified.',\n            },\n            {\n                id: 40554,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40555,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4136,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the underlying instrument's termination date of the stream.\",\n            },\n        ],\n    },\n    {\n        id: 4058,\n        name: 'UnderlyingStreamCalculationPeriodDates',\n        abbrName: 'CalcDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingStreamCalculationPeriodDates is a subcomponent of the UnderlyingStreamGrp component used to specify the calculation period dates of the stream.',\n        fieldRef: [\n            {\n                id: 41957,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41958,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40556,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description:\n                    \"When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the underlying instrument's calculation period dates.\",\n            },\n            {\n                id: 40558,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40559,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the underlying instrument's calculation period dates.\",\n            },\n            {\n                id: 40561,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40562,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40563,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40564,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40565,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'Conditionally required when UnderlyingStreamCalculationFrequencyUnit(40566) is specified.',\n            },\n            {\n                id: 40566,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingStreamCalculationFrequencyPeriod(40565) is specified.',\n            },\n            {\n                id: 40567,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the date roll convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the stream payment dates.',\n            },\n            {\n                id: 41959,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41960,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingStreamCalculationCorrectionUnit(41961) is specified.',\n            },\n            {\n                id: 41961,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingStreamCalculationCorrectionPeriod(41960) is specified.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4133,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the underlying instrument's calculation period dates.\",\n            },\n            {\n                id: 4279,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4134,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the underlying instrument's calculation period dates.\",\n            },\n        ],\n    },\n    {\n        id: 4059,\n        name: 'UnderlyingPaymentStream',\n        abbrName: 'PmtStrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The UnderlyingPaymentStream component is a subcomponent of the UnderlyingStream used to detail the attributes of a payment stream in a swap.',\n        fieldRef: [\n            {\n                id: 40568,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40569,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40570,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42895,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 40571,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40572,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 43107,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description:\n                    'May be used to specify a count method not listed in UnderlyingPaymentStreamDayCount(40572).',\n            },\n            {\n                id: 40573,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40574,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40575,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40576,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40577,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42896,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Mutually exclusive with UnderlyingPaymentStreamCompoundingFixedRate(42900) or the UnderlyingPaymentStreamCompoundingFloatingRate component.',\n            },\n            {\n                id: 42897,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42898,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42899,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 40578,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40579,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40580,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41897,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41898,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41899,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41900,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41901,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41902,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41903,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42900,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Mutually exclusive with UnderlyingPaymentStreamCompoundingXIDRef(42896) or the UnderlyingPaymentStreamCompoundingFloatingRate component.',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4060,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4061,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4062,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4063,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4403,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Mutually exclusive with UnderlyingPaymentStreamCompoundingFixedRate(42900) or the UnderlyingPaymentStreamCompoundingXIDRef(42896).',\n            },\n            {\n                id: 4400,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4064,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4060,\n        name: 'UnderlyingPaymentStreamPaymentDates',\n        abbrName: 'PmtDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamPaymentDates is a subcomponent of the UnderlyingPaymentStream component used to specify the payment dates of the stream.\\n\\nFor equity return swaps this component is used to specify the interim price payment dates and the UnderlyingPaymentStreamFinalPricePaymentDate component is used to specify the final price payment date.',\n        fieldRef: [\n            {\n                id: 40581,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the underlying instrument's payment stream's payment dates.\",\n            },\n            {\n                id: 40583,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamPaymentFrequencyUnit(40584) is specified.',\n            },\n            {\n                id: 40584,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamPaymentFrequencyPeriod(40583) is specified.',\n            },\n            {\n                id: 40585,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the date roll convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the stream payment dates.',\n            },\n            {\n                id: 40586,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40587,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40588,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40589,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamPaymentOffsetUnit(40590) is specified.',\n            },\n            {\n                id: 40590,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamPaymentOffsetPeriod(40589) is specified.',\n            },\n            {\n                id: 40591,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41940,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4129,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the underlying instrument's payment stream's payment dates.\",\n            },\n            {\n                id: 4274,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4406,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4061,\n        name: 'UnderlyingPaymentStreamResetDates',\n        abbrName: 'ResetDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamResetDates is a subcomponent of the UnderlyingPaymentStream component used to specify the floating rate reset dates of the stream.',\n        fieldRef: [\n            {\n                id: 40592,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40593,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the underlying instrument's payment stream's reset dates.\",\n            },\n            {\n                id: 40595,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamResetFrequencyUnit(40596) is specified.',\n            },\n            {\n                id: 40596,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamResetFrequencyPeriod(40595) is specified.',\n            },\n            {\n                id: 40597,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the date roll convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the reset dates.',\n            },\n            {\n                id: 40598,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40599,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the underlying instrument's payment stream's reset dates.\",\n            },\n            {\n                id: 40601,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamInitialFixingDateOffsetUnit(40602) is specified.',\n            },\n            {\n                id: 40602,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamInitialFixingDateOffsetPeriod(40601) is specified.',\n            },\n            {\n                id: 40603,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40604,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40605,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40606,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the underlying instrument's payment stream's reset dates.\",\n            },\n            {\n                id: 40608,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamFixingDateOffsetUnit(40609) is specified.',\n            },\n            {\n                id: 40609,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamFixingDateOffsetPeriod(40608) is specified.',\n            },\n            {\n                id: 40610,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40611,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40612,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamRateCutoffDateOffsetUnit(40613) is specified.',\n            },\n            {\n                id: 40613,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamRateCutoffDateOffsetPeriod(40612) is specified.',\n            },\n            {\n                id: 40614,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4130,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the underlying instrument's payment stream's reset dates.\",\n            },\n            {\n                id: 4131,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the underlying instrument's payment stream's reset dates.\",\n            },\n            {\n                id: 4132,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the underlying instrument's payment stream's reset dates.\",\n            },\n            {\n                id: 4407,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4062,\n        name: 'UnderlyingPaymentStreamFixedRate',\n        abbrName: 'Fixed',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamFixedRate is a subcomponent of the UnderlyingPaymentStream component used to report the fixed rate or fixed payment amount of the stream.',\n        fieldRef: [\n            {\n                id: 40615,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Mutually exclusive with UnderlyingPaymentStreamFixedAmount(40616).',\n            },\n            {\n                id: 40616,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Mutually exclusive with UnderlyingPaymentStreamRate(40615).',\n            },\n            {\n                id: 40617,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41904,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41905,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40618,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40619,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41906,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41907,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41908,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4063,\n        name: 'UnderlyingPaymentStreamFloatingRate',\n        abbrName: 'Float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamFloatingRate is a subcomponent of the UnderlyingPaymentStream component used to report the floating rate attributes of the stream.\\n\\nNote that if the floating rate index or the rate calculation goes negative for a calculation period and UnderlyingPaymentStreamNegativeRateTreatment(40638)=1 (Negative interest rate method) the Receiver pays the Payer the absolute floating rate, i.e. the Receiver pays the cash flow amount to the Payer.\\n\\nThe Calculation Lag Interval (UnderlyingPaymentStreamCalculationLagPeriod(41926) and UnderlyingPaymentStreamCalculationLagUnit(41927)) and the First Observation Offset Duration (UnderlyingPaymentStreamFirstObservationOffsetPeriod(41928) and UnderlyingPaymentStreamFirstObservationOffsetUnit(41929)) are used together. If the First Observation Offset Duration is specified, the observation starts the Fixing Lag Interval prior to each calculation. If the First Observation Offset Duration is not specified, the observation starts immediately preceding each calculation.',\n        fieldRef: [\n            {\n                id: 40620,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40621,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 43092,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamRateIndexIDSource(43093) is specified.',\n            },\n            {\n                id: 43093,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n                description: 'Conditionally required when UnderlyingPaymentStreamRateIndexID(43092) is specified.',\n            },\n            {\n                id: 40622,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamRateIndexCurvePeriod(40623) is specified.',\n            },\n            {\n                id: 40623,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamRateIndexCurveUnit(40622) is specified.',\n            },\n            {\n                id: 43120,\n                added: 'FIX.Latest',\n                addedEP: '271',\n            },\n            {\n                id: 43121,\n                added: 'FIX.Latest',\n                addedEP: '271',\n            },\n            {\n                id: 43122,\n                added: 'FIX.Latest',\n                addedEP: '271',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamRateIndex2IDSource(43123) is specified.',\n            },\n            {\n                id: 43123,\n                added: 'FIX.Latest',\n                addedEP: '271',\n                description: 'Conditionally required when UnderlyingPaymentStreamRateIndex2ID(43122) is specified.',\n            },\n            {\n                id: 41911,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamRateIndex2CurvePeriod(41912) is specified.',\n            },\n            {\n                id: 41912,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamRateIndex2CurveUnit(41911) is specified.',\n            },\n            {\n                id: 41913,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41914,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41915,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41916,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41917,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41918,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41919,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40624,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40625,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41920,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41921,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41922,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41923,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40626,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40627,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40628,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40629,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40630,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40631,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40632,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40633,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40634,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41924,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41925,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40635,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40636,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40637,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40638,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41926,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamCalculationLagUnit(41927) is specified.',\n            },\n            {\n                id: 41927,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamCalculationLagPeriod(41926) is specified.',\n            },\n            {\n                id: 42958,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42959,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42960,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 41928,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamFirstObservationOffsetUnit(41929) is specified.',\n            },\n            {\n                id: 41929,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamFirstObservationOffsetPeriod(41928) is specified.',\n            },\n            {\n                id: 42961,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 41930,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41931,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41932,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41933,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41934,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of pricing dates.',\n            },\n            {\n                id: 40639,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingPaymentStreamInflationLagUnit(40640) is specified.',\n            },\n            {\n                id: 40640,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamInflationLagPeriod(40639) is specified.',\n            },\n            {\n                id: 40641,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40642,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40643,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40644,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40645,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40646,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40647,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42962,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42963,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42964,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42965,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42966,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42967,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42968,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42969,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42970,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42971,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42972,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42973,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42974,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42975,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42976,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42977,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4273,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4276,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4275,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4418,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4408,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4392,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4064,\n        name: 'UnderlyingPaymentStreamNonDeliverableSettlTerms',\n        abbrName: 'NonDlvrblTrms',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamNonDeliverableSettlTerms is a subcomponent of the UnderlyingPaymentStream component used to specify the non-deliverable settlement terms of the stream.',\n        fieldRef: [\n            {\n                id: 40648,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40649,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the underlying instrument's non-deliverable settlement terms.\",\n            },\n            {\n                id: 40651,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40652,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamNonDeliverableFixingDatesOffsetUnit(40653) is specified.',\n            },\n            {\n                id: 40653,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamNonDeliverableFixingDatesOffsetPeriod(40652) is specified.',\n            },\n            {\n                id: 40654,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4128,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the underlying instrument's non-deliverable settlement terms.\",\n            },\n            {\n                id: 4065,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4066,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4139,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4070,\n        name: 'PaymentStream',\n        abbrName: 'PmtStrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The PaymentStream component is a subcomponent of the Stream used to detail the attributes of a payment stream in a swap.',\n        fieldRef: [\n            {\n                id: 40738,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40739,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40740,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42600,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 40741,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40742,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 43106,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description: 'May be used to specify a count method not listed in PaymentStreamDayCount(40742).',\n            },\n            {\n                id: 40743,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40744,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40745,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40746,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40747,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42601,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Mutually exclusive with PaymentStreamCompoundingFixedRate(42605) or the PaymentStreamCompoundingFloatingRate component.',\n            },\n            {\n                id: 42602,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42603,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42604,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 40748,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40749,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40750,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41180,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41181,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41182,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41183,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41184,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41185,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41186,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42605,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Mutually exclusive with PaymentStreamCompoundingXIDRef(42601) or the PaymentStreamCompoundingFloatingRate component.',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4071,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4072,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4073,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4074,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4367,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Mutually exclusive with PaymentStreamCompoundingFixedRate(42605) or the PaymentStreamCompoundingXIDRef(42601).',\n            },\n            {\n                id: 4364,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4075,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4071,\n        name: 'PaymentStreamPaymentDates',\n        abbrName: 'PmtDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        category: 'Common',\n        description:\n            'PaymentStreamPaymentDates is a subcomponent of the PaymentStream component used to specify the payment dates of the stream.\\n\\nFor equity return swaps this component is used to specify the interim price payment dates and the PaymentStreamFinalPricePaymentDate component is used to specify the final price payment date.',\n        fieldRef: [\n            {\n                id: 40751,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the payment stream's payment dates.\",\n            },\n            {\n                id: 40753,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStreamPaymentFrequencyUnit(40754) is specified.',\n            },\n            {\n                id: 40754,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStreamPaymentFrequencyPeriod(40753) is specified.',\n            },\n            {\n                id: 40755,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the date roll convention defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the stream payment dates',\n            },\n            {\n                id: 40756,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40757,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40758,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40759,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description: 'Conditionally required when PaymentStreamPaymentDateOffsetUnit(40760) is specified.',\n            },\n            {\n                id: 40760,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description: 'Conditionally required when PaymentStreamPaymentDateOffsetPeriod(40759) is specified.',\n            },\n            {\n                id: 40920,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41223,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4109,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the payment stream's payment dates.\",\n            },\n            {\n                id: 4171,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4370,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4072,\n        name: 'PaymentStreamResetDates',\n        abbrName: 'ResetDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentStreamResetDates is a subcomponent of the PaymentStream component used to specify the floating rate reset dates of the stream.',\n        fieldRef: [\n            {\n                id: 40761,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40762,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the payment stream's reset dates.\",\n            },\n            {\n                id: 40764,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStreamResetFrequencyUnit(40765) is specified.',\n            },\n            {\n                id: 40765,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStreamResetFrequencyPeriod(40764) is specified.',\n            },\n            {\n                id: 40766,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the date roll convention defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the stream floating rate reset dates.',\n            },\n            {\n                id: 40767,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40768,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the payment stream's reset dates.\",\n            },\n            {\n                id: 40770,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when PaymentStreamInitialFixingDateOffsetUnit(40771) is specified.',\n            },\n            {\n                id: 40771,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when PaymentStreamInitialFixingDateOffsetPeriod(40770) is specified.',\n            },\n            {\n                id: 40772,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40773,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40774,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40775,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the payment stream's reset dates.\",\n            },\n            {\n                id: 40777,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStreamFixingDateOffsetUnit(40778) is specified.',\n            },\n            {\n                id: 40778,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStreamFixingDateOffsetPeriod(40777) is specified.',\n            },\n            {\n                id: 40779,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40780,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40781,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description: 'Conditionally required when PaymentStreamRateCutoffDateOffsetUnit(40782) is specified.',\n            },\n            {\n                id: 40782,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description: 'Conditionally required when PaymentStreamRateCutoffDateOffsetPeriod(40783) is specified.',\n            },\n            {\n                id: 40783,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4110,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the payment stream's reset dates.\",\n            },\n            {\n                id: 4111,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the payment stream's reset dates.\",\n            },\n            {\n                id: 4112,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the payment stream's reset dates.\",\n            },\n            {\n                id: 4371,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4073,\n        name: 'PaymentStreamFixedRate',\n        abbrName: 'Fixed',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentStreamFixedRate is a subcomponent of the PaymentStream component used to report the fixed rate or fixed payment amount of the stream.',\n        fieldRef: [\n            {\n                id: 40784,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Mutually exclusive with PaymentStreamFixedAmount(40785).',\n            },\n            {\n                id: 40785,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Mutually exclusive with PaymentStreamRate(40784).',\n            },\n            {\n                id: 40786,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41187,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41188,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40787,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40788,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41189,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41190,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41191,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4074,\n        name: 'PaymentStreamFloatingRate',\n        abbrName: 'Float',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        category: 'Common',\n        description:\n            'PaymentStreamFloatingRate is a subcomponent of the PaymentStream component used to report the floating rate attributes of the stream.\\n\\nNote that if the floating rate index or the rate calculation goes negative for a calculation period and PaymentStreamNegativeRateTreatment(40807)=1 (Negative interest rate method) the Receiver pays the Payer the absolute floating rate, i.e. the Receiver pays the cash flow amount to the Payer.\\n\\nThe Calculation Lag Interval (PaymentStreamCalculationLagPeriod(41209) and PaymentStreamCalculationLagUnit(41210)) and the First Observation Offset Duration (PaymentStreamFirstObservationOffsetPeriod(41211) and PaymentStreamFirstObservationOffsetUnit(41212)) are used together. If the First Observation Offset Duration is specified, the observation starts the Fixing Lag Interval prior to each calculation. If the First Observation Offset Duration is not specified, the observation starts immediately preceding each calculation.',\n        fieldRef: [\n            {\n                id: 40789,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40790,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 43090,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n                description: 'Conditionally required when PaymentStreamRateIndexIDSource(43091) is specified.',\n            },\n            {\n                id: 43091,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n                description: 'Conditionally required when PaymentStreamRateIndexID(43090) is specified.',\n            },\n            {\n                id: 40791,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStreamRateIndexCurvePeriod(40792) is specified.',\n            },\n            {\n                id: 40792,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStreamRateIndexCurveUnit(40791) is specified.',\n            },\n            {\n                id: 43112,\n                added: 'FIX.Latest',\n                addedEP: '271',\n            },\n            {\n                id: 43113,\n                added: 'FIX.Latest',\n                addedEP: '271',\n            },\n            {\n                id: 43114,\n                added: 'FIX.Latest',\n                addedEP: '271',\n                description: 'Conditionally required when PaymentStreamRateIndex2IDSource(43115) is specified.',\n            },\n            {\n                id: 43115,\n                added: 'FIX.Latest',\n                addedEP: '271',\n                description: 'Conditionally required when PaymentStreamRateIndex2ID(43114) is specified.',\n            },\n            {\n                id: 41194,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description: 'Conditionally required when PaymentStreamRateIndex2CurveUnit(41195) is specified.',\n            },\n            {\n                id: 41195,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description: 'Conditionally required when PaymentStreamRateIndex2CurvePeriod(41194) is specified.',\n            },\n            {\n                id: 41196,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41197,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41198,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41199,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41200,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41201,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41202,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40793,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40794,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41203,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41204,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41205,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41206,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40795,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40796,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40797,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40798,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40799,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40800,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40801,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40802,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40803,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41207,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41208,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40804,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40805,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40806,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40807,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41209,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when PaymentStreamCalculationLagUnit(41210) is specified.',\n            },\n            {\n                id: 41210,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when PaymentStreamCalculationLagPeriod(41209) is specified.',\n            },\n            {\n                id: 42663,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42664,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42665,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 41211,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when PaymentStreamFirstObservationOffsetUnit(41212) is specified.',\n            },\n            {\n                id: 41212,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when PaymentStreamFirstObservationOffsetPeriod(41211) is specified.',\n            },\n            {\n                id: 42666,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 41213,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41214,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41215,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41216,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41217,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of pricing dates.',\n            },\n            {\n                id: 40808,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStreamInflationLagUnit(40809) is specified.',\n            },\n            {\n                id: 40809,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStreamInflationLagPeriod(40808) is specified.',\n            },\n            {\n                id: 40810,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40811,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40812,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40813,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40814,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40815,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40816,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42667,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42668,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42669,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42670,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42671,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42672,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42673,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42674,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42675,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42676,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42677,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42678,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42679,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42680,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42681,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42682,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4170,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of pricing dates.',\n            },\n            {\n                id: 4173,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4172,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4380,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4373,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4323,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4075,\n        name: 'PaymentStreamNonDeliverableSettlTerms',\n        abbrName: 'NonDlvrblTrms',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentStreamNonDeliverableSettlTerms is a subcomponent of the PaymentStream component used to specify the non-deliverable settlement terms of the payment stream.',\n        fieldRef: [\n            {\n                id: 40817,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40818,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the payment stream's non-deliverable fixing dates.\",\n            },\n            {\n                id: 40820,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40821,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when PaymentStreamNonDeliverableFixingDatesOffsetUnit(40822) is specified.',\n            },\n            {\n                id: 40822,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when PaymentStreamNonDeliverableFixingDatesOffsetPeriod(40821) is specified.',\n            },\n            {\n                id: 40823,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4108,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the payment stream's non-deliverable fixing dates.\",\n            },\n            {\n                id: 4076,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4010,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4137,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4081,\n        name: 'StreamEffectiveDate',\n        abbrName: 'EfctvDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'StreamEffectivedDate is a subcomponent of the StreamGrp component used to specify the effective date of the stream.',\n        fieldRef: [\n            {\n                id: 40907,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40908,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the effective date of the stream.',\n            },\n            {\n                id: 40910,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40911,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when StreamEffectiveDateOffsetUnit(40912) is specified.',\n            },\n            {\n                id: 40912,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when StreamEffectiveDateOffsetPeriod(40911) is specified.',\n            },\n            {\n                id: 40913,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40914,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4122,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the effective date of the stream.',\n            },\n        ],\n    },\n    {\n        id: 4082,\n        name: 'LegSettlRateFallbackRateSource',\n        abbrName: 'RtSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegSettlRateFallbackRateSource is a subcomponent of the LegSettlRateDisruptionFallbackGrp component used to specify the rate source in the event of rate disruption fallback.',\n        fieldRef: [\n            {\n                id: 40366,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40370,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegSettlRateFallbackRateSource(40366) = 3 (ISDA Settlement Rate Option) or 99 (Other).',\n            },\n        ],\n    },\n    {\n        id: 4085,\n        name: 'DateAdjustment',\n        abbrName: 'DtAdjmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'DateAdjustment is a subcomponent in the Instrument component. It is used to specify date adjustment parameters and rules. The date adjustments specified here applies to all adjustable dates for the instrument, unless specifically overridden in the respective specified components elsewhere.',\n        fieldRef: [\n            {\n                id: 40921,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40922,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4084,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4087,\n        name: 'LegDateAdjustment',\n        abbrName: 'DtAdjmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegDateAdjustment is a subcomponent within the InstrumentLeg component. It is used to specify date adjustment parameters and rules. The date adjustments specified here applies to all adjustable dates for the instrument leg, unless specifically overridden elsewhere in the respective specified components further within the InstrumentLeg component.',\n        fieldRef: [\n            {\n                id: 40925,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40926,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4086,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4125,\n        name: 'UnderlyingDateAdjustment',\n        abbrName: 'DtAdjmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingDateAdjustment is a subcomponent within the UnderlyingInstrument component. It is used to specify date adjustment parameters and rules. The date adjustments specified here applies to all adjustable dates for the underlying instrument, unless specifically overridden in the respective specified components further within the UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40964,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40965,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4124,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4137,\n        name: 'PaymentStreamNonDeliverableSettlRateSource',\n        abbrName: 'RtSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentStreamNonDeliverableSettlRateSource is a subcomponent of the PaymentStreamNonDeliverableSettlTerms component used to specify the rate source in the event of payment non-delivery.',\n        fieldRef: [\n            {\n                id: 40371,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40372,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when PaymentStreamNonDeliverableSettlRateSource(40371) = 3 (ISDA Settlement Rate Option) or 99 (Other).',\n            },\n        ],\n    },\n    {\n        id: 4138,\n        name: 'SettlRateFallbackRateSource',\n        abbrName: 'RtSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'SettlRateFallbackRateSource is a subcomponent of the SettlRateDisruptionFallbackGrp component used to specify the rate source in the event of rate disruption fallback.',\n        fieldRef: [\n            {\n                id: 40373,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40655,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when SettlRateFallbackRateSource(40373) = 3 (ISDA Settlement Rate Option) or 99 (Other).',\n            },\n        ],\n    },\n    {\n        id: 4139,\n        name: 'UnderlyingPaymentStreamNonDeliverableSettlRateSource',\n        abbrName: 'RtSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamNonDeliverableSettlRateSource is a subcomponent of the UnderlyingPaymentStreamNonDeliverableSettlTerms component used to specify the rate source in the event of payment non-delivery.',\n        fieldRef: [\n            {\n                id: 40661,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40824,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamNonDeliverableSettlRateSource(40661) = 3 (ISDA Settlement Rate Option) or 99 (Other).',\n            },\n        ],\n    },\n    {\n        id: 4140,\n        name: 'UnderlyingSettlRateFallbackRateSource',\n        abbrName: 'RtSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingSettlRateFallbackRateSource is a subcomponent of the UnderlyingSettlRateDisruptionFallbackGrp component used to specify the rate source in the event of rate disruption fallback.',\n        fieldRef: [\n            {\n                id: 40904,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40915,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingSettlRateFallbackRateSource(40904) = 3 (ISDA Settlement Rate Option) or 99 (Other).',\n            },\n        ],\n    },\n    {\n        id: 4149,\n        name: 'ComplexEventRelativeDate',\n        abbrName: 'ReltvDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The ComplexEventRelativeDate is a subcomponent of ComplexEvents for specifying the event date and time for an FX or Calendar Spread option or the payout date for a Barrier or Knock option.',\n        fieldRef: [\n            {\n                id: 41020,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41021,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41022,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when ComplexEventDateOffsetUnit(41023) is specified.',\n            },\n            {\n                id: 41023,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when ComplexEventDateOffsetPeriod(41022) is specified.',\n            },\n            {\n                id: 41024,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41025,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the instrument provisions.',\n            },\n            {\n                id: 41026,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41027,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41028,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4148,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the instrument provisions.',\n            },\n        ],\n    },\n    {\n        id: 4155,\n        name: 'DeliveryStream',\n        abbrName: 'DlvryStrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The DeliveryStream component is used to optionally specify the attributes of a physical delivery stream in a swap.',\n        fieldRef: [\n            {\n                id: 41058,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41059,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41060,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41061,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41062,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42192,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 42193,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 41063,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41064,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41065,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41066,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41067,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41218,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41068,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41069,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41070,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41071,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41072,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41073,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41074,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41075,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41076,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41077,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41078,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41079,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41080,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 43094,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4157,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4156,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4158,\n        name: 'MarketDisruption',\n        abbrName: 'MktDsrptn',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The MarketDisruption component is a subcomponent of the Instrument used to specify the market disruption provisions of the swap.',\n        fieldRef: [\n            {\n                id: 41087,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41088,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41089,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41090,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'If specified, the disruption event should be specified in MarketDisruptionEventGrp.',\n            },\n            {\n                id: 41091,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: \"Applicable only when MarketDisruptionEvent(41093)='DeMinimisTrading'.\",\n            },\n        ],\n        groupRef: [\n            {\n                id: 4159,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4160,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4161,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4162,\n        name: 'OptionExercise',\n        abbrName: 'OptExer',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '211',\n        category: 'Common',\n        description:\n            'The OptionExercise component is a subcomponent of the Instrument component used to specify option exercise provisions. Its purpose is to identify the opportunities and conditions for exercise, e.g. the schedule of dates on which exercise is allowed. The embedded OptionExerciseExpiration component is used to terminate the opportunity for exercise.',\n        fieldRef: [\n            {\n                id: 41106,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41107,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedExerciseDesc(41108) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41108,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the ExerciseDesc(41106) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 41109,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41110,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41111,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41112,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41113,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41114,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41115,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42590,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4386,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4164,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4167,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4362,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4164,\n        name: 'OptionExerciseDates',\n        abbrName: 'Dts',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The OptionExerciseDate component is a subcomponent of the OptionExercise component used to specify option exercise dates.',\n        fieldRef: [\n            {\n                id: 41118,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of option exercise dates.',\n            },\n            {\n                id: 41119,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41120,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when OptionExerciseEarliestDateUnit(41121) is specified.',\n            },\n            {\n                id: 41121,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when OptionExerciseEarliestDatePeriod(41120) is specified.',\n            },\n            {\n                id: 41122,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when OptionExerciseFrequencyUnit(41123) is specified.',\n            },\n            {\n                id: 41123,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when OptionExerciseFrequencyPeriod(41122) is specified.',\n            },\n            {\n                id: 41124,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41125,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41126,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when OptionExerciseStartDateOffsetUnit(41127) is specified.',\n            },\n            {\n                id: 41127,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when OptionExerciseStartDateOffsetPeriod(41126) is specified.',\n            },\n            {\n                id: 41128,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41129,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41130,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41131,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41132,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41133,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41134,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41135,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41136,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4163,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of option exercise dates.',\n            },\n            {\n                id: 4165,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4167,\n        name: 'OptionExerciseExpiration',\n        abbrName: 'Exp',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '211',\n        category: 'Common',\n        description:\n            'The OptionExerciseExpiration component is a subcomponent of the OptionExercise component used to specify option exercise expiration dates and times. The purpose of OptionExercise is to identify the scheduled opportunities for exercise. OptionExerciseExpiration identifies the end of the schedule.',\n        fieldRef: [\n            {\n                id: 41142,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of option exercise expiration dates.',\n            },\n            {\n                id: 41143,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41144,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when OptionExerciseExpirationDateOffsetUnit(41145) is specified.',\n            },\n            {\n                id: 41145,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when OptionExerciseExpirationDateOffsetPeriod(41144) is specified.',\n            },\n            {\n                id: 41146,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when OptionExerciseExpirationFrequencyUnit(41147) is specified.',\n            },\n            {\n                id: 41147,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when OptionExerciseExpirationFrequencyPeriod(41146) is specified.',\n            },\n            {\n                id: 41148,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the date roll convention defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the option expiration dates and times.',\n            },\n            {\n                id: 41149,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41150,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41151,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4166,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of option exercise expiration dates.',\n            },\n            {\n                id: 4168,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4175,\n        name: 'PricingDateTime',\n        abbrName: 'PxngDtTm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The PricingDateTime component is a subcomponent of Instrument used to specify an adjusted or unadjusted pricing or fixing date and optionally the time, e.g. for a commodity or FX forward trade.',\n        fieldRef: [\n            {\n                id: 41232,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41233,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of pricing dates.',\n            },\n            {\n                id: 41234,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41235,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41236,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4174,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of pricing dates.',\n            },\n        ],\n    },\n    {\n        id: 4179,\n        name: 'StreamCommodity',\n        abbrName: 'Cmdty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'StreamCommodity is a subcomponent of the Stream component used to identify and describe the underlying commodity.',\n        fieldRef: [\n            {\n                id: 41251,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41252,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41253,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when StreamCommoditySecurityIDSource(41254) is specified.',\n            },\n            {\n                id: 41254,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when StreamCommoditySecurityID(41253) is specified.',\n            },\n            {\n                id: 41255,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41256,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedCommodityDesc(41257) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41257,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the StreamCommodityDesc(41255) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 42587,\n                added: 'FIX.5.0SP2',\n                addedEP: '193',\n                description:\n                    'May be used to specify the delivery or pricing region of a non-standard commodity swap contract (e.g. when InstrAttribType(871)=38 (US standard contract indicator) and InstrAttribValue(872)=N).',\n            },\n            {\n                id: 41258,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41259,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41260,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41261,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41262,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41263,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41264,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41265,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41266,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when StreamCommodityNearbySettlDayUnit(41267) is specified.',\n            },\n            {\n                id: 41267,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when StreamCommodityNearbySettlDayPeriod(41266) is specified.',\n            },\n            {\n                id: 41268,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41269,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of settlement dates.',\n            },\n            {\n                id: 41270,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41271,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41272,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when StreamCommoditySettlDateRollUnit(41273) is specified.',\n            },\n            {\n                id: 41273,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when StreamCommoditySettlDateRollPeriod(41272) is specified.',\n            },\n            {\n                id: 41274,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41275,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41276,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4180,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4176,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4181,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4178,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of settlement dates.',\n            },\n            {\n                id: 4184,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4198,\n        name: 'LegComplexEventRelativeDate',\n        abbrName: 'ReltvDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegComplexEventRelativeDate is a subcomponent of LegComplexEvents for specifying the event date and time for an FX or Calendar Spread option or the payout date for a Barrier or Knock option.',\n        fieldRef: [\n            {\n                id: 41389,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41390,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41391,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegComplexEventDateOffsetUnit(41392) is specified.',\n            },\n            {\n                id: 41392,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegComplexEventDateOffsetPeriod(41391) is specified.',\n            },\n            {\n                id: 41393,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41394,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to complex event dates.',\n            },\n            {\n                id: 41395,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41396,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41397,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4197,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to complex event dates.',\n            },\n        ],\n    },\n    {\n        id: 4201,\n        name: 'ProvisionCashSettlQuoteSource',\n        abbrName: 'CashSettlQteSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The ProvisionCashSettlQuoteSource is a subcomponent of the ProvisionGrp component used to specify the reference source for currency or rate quote for cash settlement purposes.',\n        fieldRef: [\n            {\n                id: 40112,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41406,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4202,\n        name: 'LegProvisionCashSettlQuoteSource',\n        abbrName: 'CashSettlQteSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The LegProvisionCashSettlQuoteSource is a subcomponent of the LEgProvisionGrp component used to specify the reference source for currency or rate quote for cash settlement purposes.',\n        fieldRef: [\n            {\n                id: 40470,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41407,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n    },\n    {\n        id: 4206,\n        name: 'LegDeliveryStream',\n        abbrName: 'DlvryStrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegDeliveryStream component is a subcomponent of the LegStream used to detail the attributes of a physical delivery stream in a swap.',\n        fieldRef: [\n            {\n                id: 41429,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41430,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41431,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41432,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41433,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42194,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 42195,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 41434,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41435,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41436,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41437,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41438,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41219,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41439,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41440,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41441,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41442,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41443,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41444,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41445,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41446,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41447,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41448,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41449,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41450,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41451,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 43095,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4209,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4208,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4210,\n        name: 'LegMarketDisruption',\n        abbrName: 'MktDsrptn',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegMarketDisruption component is a subcomponent of the InstrumentLeg used to specify the market disruption provisions of the swap.',\n        fieldRef: [\n            {\n                id: 41462,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41463,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41464,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41465,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'If specified, the disruption event should be specified in LegMarketDisruptionEventGrp.',\n            },\n            {\n                id: 41466,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: \"Applicable only when LegMarketDisruptionEvent(41468)='DeMinimisTrading'.\",\n            },\n        ],\n        groupRef: [\n            {\n                id: 4211,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4212,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4213,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4214,\n        name: 'LegOptionExercise',\n        abbrName: 'OptExer',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '211',\n        category: 'Common',\n        description:\n            'The LegOptionExercise component is a subcomponent of the InstrumentLeg component used to specify option exercise provisions. Its purpose is to identify the opportunities and conditions for exercise, e.g. the schedule of dates on which exercise is allowed. The embedded LegOptionExerciseExpiration component is used to terminate the opportunity for exercise.',\n        fieldRef: [\n            {\n                id: 41481,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41482,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedLegExerciseDesc (41483) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41483,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegExerciseDesc(41481) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 41484,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41485,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41486,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41487,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41488,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41489,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41490,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42391,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4360,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4216,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4219,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4428,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4216,\n        name: 'LegOptionExerciseDates',\n        abbrName: 'Dts',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegOptionExerciseDates component is a subcomponent of the LegOptionExercise component used to specify option exercise dates.',\n        fieldRef: [\n            {\n                id: 41493,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of option exercise dates.',\n            },\n            {\n                id: 41494,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41495,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegOptionExerciseEarliestDateUnit(41496) is specified.',\n            },\n            {\n                id: 41496,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegOptionExerciseEarliestDatePeriod(41495) is specified.',\n            },\n            {\n                id: 41497,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegOptionExerciseFrequencyUnit(41498) is specified.',\n            },\n            {\n                id: 41498,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegOptionExerciseFequencyPeriod(41497) is specified.',\n            },\n            {\n                id: 41499,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41500,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41501,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegOptionExerciseStartDateOffsetUnit(41502) is specified.',\n            },\n            {\n                id: 41502,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegOptionExerciseStartDateOffsetPeriod(41501) is specified.',\n            },\n            {\n                id: 41503,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41504,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41505,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41506,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41507,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41508,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41509,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41510,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41511,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4215,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4217,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4219,\n        name: 'LegOptionExerciseExpiration',\n        abbrName: 'Exp',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '211',\n        category: 'Common',\n        description:\n            'The LegOptionExerciseExpiration component is a subcomponent of the LegOptionExercise component used to specify option exercise expiration dates and times. The purpose of LegOptionExercise is to identify the scheduled opportunities for exercise. LegOptionExerciseExpiration identifies the end of the schedule.',\n        fieldRef: [\n            {\n                id: 41517,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to the option exercise expiration date.',\n            },\n            {\n                id: 41518,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41519,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when LegOptionExerciseExpirationDateOffsetUnit(41520) is specified.',\n            },\n            {\n                id: 41520,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when LegOptionExerciseExpirationDateOffsetPeriod(41519) is specified.',\n            },\n            {\n                id: 41521,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when LegOptionExerciseExpirationFrequencyUnit(41522) is specified.',\n            },\n            {\n                id: 41522,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when LegOptionExerciseExpirationFrequencyPeriod(41521) is specified.',\n            },\n            {\n                id: 41523,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the date roll convention defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the option expiration date.',\n            },\n            {\n                id: 41524,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41525,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41526,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4218,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to the option exercise expiration date.',\n            },\n            {\n                id: 4220,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4229,\n        name: 'LegPricingDateTime',\n        abbrName: 'PxngDtTm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        category: 'Common',\n        description:\n            'The LegPricingDateTime component is a subcomponent of InstrumentLeg used to specify an adjusted or unadjusted pricing or fixing date and optionally the time, e.g. for a commodity or FX forward trade.',\n        fieldRef: [\n            {\n                id: 41609,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41610,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to the pricing dates.',\n            },\n            {\n                id: 41611,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41612,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41613,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4228,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to the pricing dates.',\n            },\n        ],\n    },\n    {\n        id: 4237,\n        name: 'LegStreamCommodity',\n        abbrName: 'Cmdty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegStreamCommodity is a subcomponent of the LegStream component used to identify and describe the underlying commodity.',\n        fieldRef: [\n            {\n                id: 41648,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41649,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41650,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegStreamCommoditySecurityIDSource(41651) is specified.',\n            },\n            {\n                id: 41651,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegStreamCommoditySecurityID(41650) is specified.',\n            },\n            {\n                id: 41652,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41653,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedLegStreamCommodityDesc(41654) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41654,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegStreamCommodityDesc(41652) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 42588,\n                added: 'FIX.5.0SP2',\n                addedEP: '193',\n                description:\n                    'May be used to specify the delivery or pricing region of a non-standard commodity swap contract (e.g. when InstrAttribType(871)=38 (US standard contract indicator) and InstrAttribValue(872)=N).',\n            },\n            {\n                id: 41655,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41656,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41657,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41658,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41659,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41660,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41661,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41662,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41663,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegStreamCommodityNearbySettlDayUnit(41664) is specified.',\n            },\n            {\n                id: 41664,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegStreamCommodityNearbySettlDayPeriod(41663) is specified.',\n            },\n            {\n                id: 41665,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41666,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to the settlement date.',\n            },\n            {\n                id: 41667,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41668,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41669,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegStreamCommoditySettlDateRollUnit(41670) is specified.',\n            },\n            {\n                id: 41670,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegStreamCommoditySettlDateRollPeriod(41669) is specified.',\n            },\n            {\n                id: 41671,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41672,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41673,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4238,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4207,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4239,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4236,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to the settlement date.',\n            },\n            {\n                id: 4242,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4251,\n        name: 'UnderlyingComplexEventRelativeDate',\n        abbrName: 'ReltvDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingComplexEventRelativeDate is a subcomponent of UnderlyingComplexEvents for specifying the event date and time for an FX or Calendar Spread option or the payout date for a Barrier or Knock option.',\n        fieldRef: [\n            {\n                id: 41739,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41740,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41741,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when UnderlyingComplexEventDateOffsetUnit(41742) is specified.',\n            },\n            {\n                id: 41742,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when UnderlyingComplexEventDateOffsetPeriod(41741) is specified.',\n            },\n            {\n                id: 41743,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41744,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to the underlying complex event dates.',\n            },\n            {\n                id: 41745,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41746,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41747,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4250,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to the underlying complex event dates.',\n            },\n        ],\n    },\n    {\n        id: 4257,\n        name: 'UnderlyingDeliveryStream',\n        abbrName: 'DlvryStrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingDeliveryStream component is a subcomponent of the UnderlyingStream used to detail the attributes of a physical delivery stream in a swap.',\n        fieldRef: [\n            {\n                id: 41777,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41778,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41779,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41780,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41781,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42196,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 42197,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 41782,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41783,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41784,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41785,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41786,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41587,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41787,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41788,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41789,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41790,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41791,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41792,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41793,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41794,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41795,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41796,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41797,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41798,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41799,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 43096,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4260,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4259,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4261,\n        name: 'UnderlyingOptionExercise',\n        abbrName: 'OptExer',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '211',\n        category: 'Common',\n        description:\n            'The UnderlyingOptionExercise component is a subcomponent of the UnderlyingInstrument component used to specify option exercise provisions. Its purpose is to identify the opportunities and conditions for exercise, e.g. the schedule of dates on which exercise is allowed. The embedded UnderlyingOptionExerciseExpiration component is used to terminate the opportunity for exercise.',\n        fieldRef: [\n            {\n                id: 41810,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41811,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedUnderlyingExerciseDesc(41812) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41812,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the UnderlyingExerciseDesc(41810) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 41813,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41814,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41815,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41816,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41817,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41818,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41819,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42887,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4424,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4263,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4266,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4429,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4263,\n        name: 'UnderlyingOptionExerciseDates',\n        abbrName: 'Dts',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingOptionExerciseDate component is a subcomponent of the UnderlyingOptionExercise component used to specify option exercise dates.',\n        fieldRef: [\n            {\n                id: 41822,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to the underlying exercise dates.',\n            },\n            {\n                id: 41823,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41824,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingOptionExerciseEarliestDateUnit(41825) is specified.',\n            },\n            {\n                id: 41825,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingOptionExerciseEarliestDatePeriod(41824) is specified.',\n            },\n            {\n                id: 41826,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditinally required when UnderlyingOptionExerciseFrequencyUnit(41827) is specified.',\n            },\n            {\n                id: 41827,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditinally required when UnderlyingOptionExerciseFrequencyPeriod(41826) is specified.',\n            },\n            {\n                id: 41828,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41829,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41830,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingOptionExerciseStartDateOffsetUnit(41831) is specified.',\n            },\n            {\n                id: 41831,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingOptionExerciseStartDateOffsetPeriod(41830) is specified.',\n            },\n            {\n                id: 41832,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41833,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41834,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41835,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41836,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41837,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41838,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41839,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41840,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4262,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to the underlying option exercise dates.',\n            },\n            {\n                id: 4264,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4266,\n        name: 'UnderlyingOptionExerciseExpiration',\n        abbrName: 'Exp',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '211',\n        category: 'Common',\n        description:\n            'The UnderlyingOptionExerciseExpiration component is a subcomponent of the UnderlyingOptionExercise component used to specify option exercise expiration dates and times. The purpose of UnderlyingOptionExercise is to identify the scheduled opportunities for exercise. UnderlyingOptionExerciseExpiration identifies the end of the schedule.',\n        fieldRef: [\n            {\n                id: 41846,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to the underlying exercise expiration dates.',\n            },\n            {\n                id: 41847,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41848,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingOptionExerciseExpirationDateOffsetUnit(41849) is specified.',\n            },\n            {\n                id: 41849,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingOptionExerciseExpirationDateOffsetPeriod(41848) is specified.',\n            },\n            {\n                id: 41850,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingOptionExerciseExpirationFrequencyUnit(41851) is specified.',\n            },\n            {\n                id: 41851,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingOptionExerciseExpirationFrequencyPeriod(41850) is specified.',\n            },\n            {\n                id: 41852,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the date roll convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the option exercise dates.',\n            },\n            {\n                id: 41853,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41854,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41855,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4265,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to the underlying option exercise expiration dates.',\n            },\n            {\n                id: 4267,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4268,\n        name: 'UnderlyingMarketDisruption',\n        abbrName: 'MktDsrptn',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingMarketDisruption component is a subcomponent of the UnderlyingInstrument used to specify the market disruption provisions of the swap.',\n        fieldRef: [\n            {\n                id: 41859,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41860,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41861,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41862,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'If specified, the disruption event should be specified in UnderlyingMarketDisruptionEventGrp.',\n            },\n            {\n                id: 41863,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: \"Applicable only when UnderlyingMarketDisruptionEvent(41865)='DeMinimisTrading'.\",\n            },\n        ],\n        groupRef: [\n            {\n                id: 4269,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4270,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4271,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4278,\n        name: 'UnderlyingPricingDateTime',\n        abbrName: 'PxngDtTm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingPricingDateTime component is a subcomponent of UnderlyingInstrument used to specify an adjusted or unadjusted pricing or fixing date and optionally the time, e.g. for a commodity or FX forward trade.',\n        fieldRef: [\n            {\n                id: 41949,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41950,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to the underlying complex event dates.',\n            },\n            {\n                id: 41951,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41952,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41953,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4277,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to the underlying complex event dates.',\n            },\n        ],\n    },\n    {\n        id: 4281,\n        name: 'UnderlyingStreamCommodity',\n        abbrName: 'Cmdty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingStreamCommodity is a subcomponent of the UnderlyingStream component used to identify and describe the underlying commodity.',\n        fieldRef: [\n            {\n                id: 41964,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41965,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41966,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingStreamCommoditySecurityIDSource(41967) is specified.',\n            },\n            {\n                id: 41967,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when UnderlyingStreamCommoditySecurityID(41966) is specified.',\n            },\n            {\n                id: 41968,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41969,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedUnderlyingStreamCommodityDesc(41970) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41970,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the UnderlyingStreamCommodityDesc(41968) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 42589,\n                added: 'FIX.5.0SP2',\n                addedEP: '193',\n                description:\n                    'May be used to specify the delivery or pricing region of a non-standard commodity swap contract (e.g. when InstrAttribType(871)=38 (US standard contract indicator) and InstrAttribValue(872)=N).',\n            },\n            {\n                id: 41971,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41972,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41973,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41974,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41975,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41976,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41977,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41978,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41979,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingStreamCommodityNearbySettlDayUnit(41980) is specified.',\n            },\n            {\n                id: 41980,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingStreamCommodityNearbySettlDayPeriod(41979) is specified.',\n            },\n            {\n                id: 41981,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41982,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to the underlying settlement dates.',\n            },\n            {\n                id: 41983,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41984,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41985,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingStreamCommoditySettlDateRollUnit(41986) is specified.',\n            },\n            {\n                id: 41986,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingStreamCommoditySettlDateRollPeriod(41985) is specified.',\n            },\n            {\n                id: 41987,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41988,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41989,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4282,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4258,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4283,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4280,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to the settlement dates.',\n            },\n            {\n                id: 4286,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n    },\n    {\n        id: 4298,\n        name: 'UnderlyingProvisionCashSettlPaymentDates',\n        abbrName: 'CashSettlPmtDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        category: 'Common',\n        description:\n            'The UnderlyingProvisionCashSettlPaymentDates component is a sub-component within the UnderlyingProvisionGrp component used to report the cash settlement payment dates defined in the provision.',\n        fieldRef: [\n            {\n                id: 42092,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'When specified, this overrides the busienss day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the provisional cash settlement payment date.',\n            },\n            {\n                id: 42093,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42094,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionCashSettlPaymentDateOffsetUnit(42095) is specified.',\n            },\n            {\n                id: 42095,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionCashSettlPaymentDateOffsetPeriod(42094) is specified.',\n            },\n            {\n                id: 42096,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42097,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42098,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4309,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the provisional cash settlement payment date.',\n            },\n            {\n                id: 4299,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n    },\n    {\n        id: 4300,\n        name: 'UnderlyingProvisionCashSettlQuoteSource',\n        abbrName: 'CashSettlQteSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingProvisionCashSettlQuoteSource is a subcomponent of the UnderlyingProvisionGrp component used to specify the reference source for currency or rate quote for cash settlement purposes.',\n        fieldRef: [\n            {\n                id: 42102,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42103,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n    },\n    {\n        id: 4301,\n        name: 'UnderlyingProvisionCashSettlValueDates',\n        abbrName: 'CashSettlValDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingProvisionCashSettlValueDates is a subcomponent within the UnderlyingProvisionGrp component used to report the cash settlement value date and time defined in the provision.',\n        fieldRef: [\n            {\n                id: 42104,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42105,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42106,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'When specified, this overrides the busienss day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the provisional cash settlement value date.',\n            },\n            {\n                id: 42107,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42108,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionCashSettlValueDateOffsetUnit(42109) is specified.',\n            },\n            {\n                id: 42109,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionCashSettlValueDateOffsetPeriod(42108) is specified.',\n            },\n            {\n                id: 42110,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42111,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4310,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the provisional cash settlement value date.',\n            },\n        ],\n    },\n    {\n        id: 4303,\n        name: 'UnderlyingProvisionOptionExerciseDates',\n        abbrName: 'OptExerDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingProvisionOptionExerciseDates is a subcomponent within the UnderlyingProvisionGrp component used to report the option exercise dates and times defined in the provision.',\n        fieldRef: [\n            {\n                id: 42115,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'When specified, this overrides the busienss day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the provisional option exercise date.',\n            },\n            {\n                id: 42116,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionOptionExerciseEarliestDateUnit(42117) is specified.',\n            },\n            {\n                id: 42117,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionOptionExerciseEasrliestDatePeriod(42116) is specified.',\n            },\n            {\n                id: 42118,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionOptionExerciseFrequencyUnit(42119) is specified.',\n            },\n            {\n                id: 42119,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionOptionExerciseFrequencyPeriod(42118) is specified.',\n            },\n            {\n                id: 42120,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42121,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42122,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionOptionExerciseStartDateOffsetUnit(42123) is specified.',\n            },\n            {\n                id: 42123,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionOptionExerciseStartDateOffsetPeriod(42122) is specified.',\n            },\n            {\n                id: 42124,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42125,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42126,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42127,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42128,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42129,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42130,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42131,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42132,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4311,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the provisional option exercise date.',\n            },\n            {\n                id: 4302,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n    },\n    {\n        id: 4304,\n        name: 'UnderlyingProvisionOptionExpirationDate',\n        abbrName: 'OptExpDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingProvisionOptionExerciseDate is a subcomponent within the UnderlyingProvisionGrp component used to report the option expiration date and times defined in the provision.',\n        fieldRef: [\n            {\n                id: 42133,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42134,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'When specified, this overrides the busienss day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the provisional option expiration date.',\n            },\n            {\n                id: 42135,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42136,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionOptionExpirationDateOffsetUnit(42137) is specified.',\n            },\n            {\n                id: 42137,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionOptionExpirationDateOffsetPeriod(42136) is specified.',\n            },\n            {\n                id: 42138,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42139,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42140,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42141,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4312,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the provisional option expiration date.',\n            },\n        ],\n    },\n    {\n        id: 4305,\n        name: 'UnderlyingProvisionOptionRelevantUnderlyingDate',\n        abbrName: 'OptRelvntUndlyDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingProvisionOptionRelevantUnderlyingDate is a subcomponent within the UnderlyingProvisionGrp component used to report the option relevant underlying date defined in the provision.',\n        fieldRef: [\n            {\n                id: 42142,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42143,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the provisional option relevant underlying date.',\n            },\n            {\n                id: 42144,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42145,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionOptionRelevantUnderlyingDateOffsetUnit(42146) is specified.',\n            },\n            {\n                id: 42146,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingProvisionOptionRelevantUnderlyingDateOffsetPeriod(42145) is specified.',\n            },\n            {\n                id: 42147,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42148,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4313,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                updated: 'FIX.Latest',\n                updatedEP: '282',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the provisional option relevant underlying date.',\n            },\n        ],\n    },\n    {\n        id: 4318,\n        name: 'CashSettlDate',\n        abbrName: 'SettlDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The CashSettlDate component is a subcomponent within the CashSettlTermGrp component used to report the cash settlement date defined in the settlement provision.',\n        fieldRef: [\n            {\n                id: 42207,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42208,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in the Instrument component. The specified value would be specific to this instance of the cash settlement provision.',\n            },\n            {\n                id: 42209,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42210,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when CashSettlDateOffsetUnit(42211) is specified.',\n            },\n            {\n                id: 42211,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when CashSettlDateOffsetPeriod(42210) is specified.',\n            },\n            {\n                id: 42212,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42213,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4319,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in the Instrument component. The specified values would be specific to this instance of the cash settlement provision.',\n            },\n        ],\n    },\n    {\n        id: 4320,\n        name: 'DividendAccrualFloatingRate',\n        abbrName: 'AcrlFloat',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The DividendAccrualFloatingRate component is a subcomponent of DividendConditions used to define the dividend accrual floating rate attributes of dividend payment conditions.',\n        fieldRef: [\n            {\n                id: 42218,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42219,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when DividendFloatingRateIndexCurveUnit(42220) is specified.',\n            },\n            {\n                id: 42220,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when DividendFloatingRateIndexCurvePeriod(42219) is specified.',\n            },\n            {\n                id: 42221,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42222,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42223,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42224,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42225,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42226,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42227,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42228,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42229,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42230,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42231,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42232,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42233,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42234,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42235,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4322,\n        name: 'DividendAccrualPaymentDate',\n        abbrName: 'AcrlPmtDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The DividendAccrualPaymentDate component is a subcomponent of DividendConditions used to report the dividend accrual payment date.',\n        fieldRef: [\n            {\n                id: 42238,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42239,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when DividendAccrualPaymentDateOffsetUnit(42240) is specified.',\n            },\n            {\n                id: 42240,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when DividendAccrualPaymentDateOffsetPeriod(42239) is specified.',\n            },\n            {\n                id: 42241,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42242,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42243,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The value would be specific to this instance of DividendAccrualPaymentDate.',\n            },\n            {\n                id: 42244,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4321,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The values would be specific to this instance of DividendAccrualPaymentDate.',\n            },\n        ],\n    },\n    {\n        id: 4323,\n        name: 'DividendConditions',\n        abbrName: 'DividendConds',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            \"The DividendConditions component is a subcomponent of PaymentStream used to specify the conditions' valuations and dates governing the payment of dividends.\",\n        fieldRef: [\n            {\n                id: 42245,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42246,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42247,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42248,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42249,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42250,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42251,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42252,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42253,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42254,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42255,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42256,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42257,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42258,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42259,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42260,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42261,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42262,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42263,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42264,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4326,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4324,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4320,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4322,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4324,\n        name: 'DividendFXTriggerDate',\n        abbrName: 'FXTrgrDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The DividendFXTriggerDate component is a subcomponent of DividendConditions used to report the dividend date when a foreign exchange trade is triggered.',\n        fieldRef: [\n            {\n                id: 42265,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42266,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when DividendFXTriggerDateOffsetUnit(42267) is specified.',\n            },\n            {\n                id: 42267,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when DividendFXTriggerDateOffsetPeriod(42266) is specified.',\n            },\n            {\n                id: 42268,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42269,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42270,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The value would be specific to this instance of DividendFXTriggerDate.',\n            },\n            {\n                id: 42271,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4325,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The values would be specific to this instance of DividendFXTriggerDate.',\n            },\n        ],\n    },\n    {\n        id: 4328,\n        name: 'LegCashSettlDate',\n        abbrName: 'SettlDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The LegCashSettlDate component is a subcomponent within the LegCashSettlTermGrp component used to report the cash settlement date defined in the settlement provision.',\n        fieldRef: [\n            {\n                id: 42299,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42300,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in the Instrument component. The specified value would be specific to this instance of the cash settlement provision.',\n            },\n            {\n                id: 42301,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42302,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegCashSettlDateOffsetUnit(42303) is specified.',\n            },\n            {\n                id: 42303,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegCashSettlDateOffsetPeriod(42302) is specified.',\n            },\n            {\n                id: 42304,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42305,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4329,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in the Instrument component. The specified values would be specific to this instance of the cash settlement provision.',\n            },\n        ],\n    },\n    {\n        id: 4331,\n        name: 'LegDividendAccrualFloatingRate',\n        abbrName: 'AcrlFloat',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The LegDividendAccrualFloatingRate component is a subcomponent of LegDividendConditions used to define the dividend accrual floating rate attributes of dividend payment conditions.',\n        fieldRef: [\n            {\n                id: 42312,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42313,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegDividendFloatingRateIndexCurveUnit(42314) is specified.',\n            },\n            {\n                id: 42314,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegDividendFloatingRateIndexCurvePeriod(42313) is specified.',\n            },\n            {\n                id: 42315,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42316,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42317,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42318,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42319,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42320,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42321,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42322,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42323,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42324,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42325,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42326,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42327,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42328,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42329,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4332,\n        name: 'LegDividendAccrualPaymentDate',\n        abbrName: 'AcrlPmtDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The LegDividendAccrualPaymentDate component is a subcomponent of LegDividendConditions used to report the dividend accrual payment date.',\n        fieldRef: [\n            {\n                id: 42330,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42331,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegDividendAccrualPaymentDateOffsetUnit(42332) is specified.',\n            },\n            {\n                id: 42332,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegDividendAccrualPaymentDateOffsetPeriod(42331) is specified.',\n            },\n            {\n                id: 42333,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42334,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42335,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The value would be specific to this instance of LegDividendAccrualPaymentDate.',\n            },\n            {\n                id: 42336,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4330,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The values would be specific to this instance of LegDividendAccrualPaymentDate.',\n            },\n        ],\n    },\n    {\n        id: 4333,\n        name: 'LegDividendConditions',\n        abbrName: 'DividendConds',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            \"The LegDividendConditions component is a subcomponent of LegPaymentStream used to specify the conditions' valuations and dates governing the payment of dividends.\",\n        fieldRef: [\n            {\n                id: 42337,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42338,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42339,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42340,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42341,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42342,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42343,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42344,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42345,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42346,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42347,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42348,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42349,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42350,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42351,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42352,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42353,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42354,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42355,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42356,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4336,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4334,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4331,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4332,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4334,\n        name: 'LegDividendFXTriggerDate',\n        abbrName: 'FXTrgrDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The LegDividendFXTriggerDate component is a subcomponent of LegDividendConditions used to report the dividend date when a foreign exchange trade is triggered.',\n        fieldRef: [\n            {\n                id: 42357,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42358,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegDividendFXTriggerDateOffsetUnit(42359) is specified.',\n            },\n            {\n                id: 42359,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegDividendFXTriggerDateOffsetPeriod(42358) is specified.',\n            },\n            {\n                id: 42360,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42361,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42362,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The value would be specific to this instance of LegDividendFXTriggerDate.',\n            },\n            {\n                id: 42363,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4335,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The values would be specific to this instance of LegDividendFXTriggerDate.',\n            },\n        ],\n    },\n    {\n        id: 4339,\n        name: 'LegPaymentStreamCompoundingDates',\n        abbrName: 'CmpndgDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStreamCompoundingDates is a subcomponent of the LegPaymentStream component used to specify the compounding dates of the stream - either specific, relative or periodic dates.',\n        fieldRef: [\n            {\n                id: 42408,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to payment stream compounding dates.',\n            },\n            {\n                id: 42409,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42410,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegPaymentStreamCompoundingDatesOffsetUnit(42411) is specified.',\n            },\n            {\n                id: 42411,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegPaymentStreamCompoundingDatesOffsetPeriod(42410) is specified.',\n            },\n            {\n                id: 42412,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42413,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42414,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegPayamentStreamCompoundingFrequencyUnit(42415) is specified.',\n            },\n            {\n                id: 42415,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegPayamentStreamCompoundingFrequencyPeriod(42414) is specified.',\n            },\n            {\n                id: 42416,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the date roll convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of payment stream compounding dates.',\n            },\n            {\n                id: 42417,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42418,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4340,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to payment stream compounding dates.',\n            },\n            {\n                id: 4338,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4343,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4341,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4341,\n        name: 'LegPaymentStreamCompoundingEndDate',\n        abbrName: 'EndDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStreamCompoundingEndDate is a subcomponent of the LegPaymentStreamCompoundingDates component used to specify the end date for compounding.',\n        fieldRef: [\n            {\n                id: 42421,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42422,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42423,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegPaymentStreamCompoundingEndDateOffsetUnit(42424) is specified.',\n            },\n            {\n                id: 42424,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegPaymentStreamCompoundingEndDateOffsetPeriod(42423) is specified.',\n            },\n            {\n                id: 42425,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42426,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4342,\n        name: 'LegPaymentStreamCompoundingFloatingRate',\n        abbrName: 'CmpndgFloat',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStreamCompoundingFloatingRate is a subcomponent of the LegPaymentStream component used to report the parameters for determining the compounding floating rate of the stream.',\n        fieldRef: [\n            {\n                id: 42427,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42428,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required if LegPaymentStreamCompoundingRateIndexCurveUnit(42429) is specified.',\n            },\n            {\n                id: 42429,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required if LegPaymentStreamCompoundingRateIndexCurvePeriod(42428) is specified.',\n            },\n            {\n                id: 42430,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42431,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42432,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42433,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42434,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42435,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42436,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42437,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42438,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42439,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42440,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42441,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42442,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42443,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42444,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4343,\n        name: 'LegPaymentStreamCompoundingStartDate',\n        abbrName: 'StartDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStreamCompoundingStartDate is a subcomponent of the LegPaymentStreamCompoundingDates component used to specify the start date for compounding.',\n        fieldRef: [\n            {\n                id: 42445,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42446,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42447,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegPaymentStreamCompoundingStartDateOffsetUnit(42448) is specified.',\n            },\n            {\n                id: 42448,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegPaymentStreamCompoundingStartDateOffsetPeriod(42447) is specified.',\n            },\n            {\n                id: 42449,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42450,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4344,\n        name: 'LegPaymentStreamFormulaImage',\n        abbrName: 'Img',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStreamFormulaImage is a subcomponent of the LegPaymentStreamFormula component used to include a base64Binary-encoded image clip of the formula.',\n        fieldRef: [\n            {\n                id: 42451,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegPaymentStreamFormulaImage(42452) is specified.',\n            },\n            {\n                id: 42452,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegPaymentStreamFormulaImageLength(42451) is specified.',\n            },\n        ],\n    },\n    {\n        id: 4345,\n        name: 'LegPaymentStreamFinalPricePaymentDate',\n        abbrName: 'FnlPxPmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStreamFinalPricePaymentDate is a subcomponent of the LegPaymentStreamPaymentDates component used to specify the final price payment date, e.g. for an equity return swap.',\n        fieldRef: [\n            {\n                id: 42453,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42454,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42455,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegPaymentStreamFinalPricePaymentDateOffsetUnit(42456) is specified.',\n            },\n            {\n                id: 42456,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegPaymentStreamFinalPricePaymentDateOffsetPeriod(42455) is specified.',\n            },\n            {\n                id: 42457,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42458,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4347,\n        name: 'LegPaymentStreamFormula',\n        abbrName: 'Frmla',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStreamFormula is a subcomponent of the LegPaymentStreamFloatingRate component used to report the parameters for determining the floating rate of the stream e.g. for equity swaps.',\n        fieldRef: [\n            {\n                id: 42482,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42483,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42484,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4348,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4344,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4349,\n        name: 'LegPaymentStubEndDate',\n        abbrName: 'EndDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStubEndDate is a subcomponent of the LegPaymentStubGrp component used to specify the end date of the payment stub.',\n        fieldRef: [\n            {\n                id: 42488,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42489,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this payment stub instance.',\n            },\n            {\n                id: 42490,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42491,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegPaymentStubEndDateOffsetUnit(42492) is specified.',\n            },\n            {\n                id: 42492,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegPaymentStubEndDateOffsetPeriod(42491) is specified.',\n            },\n            {\n                id: 42493,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42494,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4350,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this payment stub instance.',\n            },\n        ],\n    },\n    {\n        id: 4351,\n        name: 'LegPaymentStubStartDate',\n        abbrName: 'StartDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStubStartDate is a subcomponent of the LegPaymentStubGrp component used to specify the start date of the payment stub.',\n        fieldRef: [\n            {\n                id: 42497,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42498,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this payment stub instance.',\n            },\n            {\n                id: 42499,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42500,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegPaymentStubStartDateOffsetUnit(42501) is specified.',\n            },\n            {\n                id: 42501,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegPaymentStubStartDateOffsetPeriod(42500) is specified.',\n            },\n            {\n                id: 42502,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42503,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4352,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this payment stub instance.',\n            },\n        ],\n    },\n    {\n        id: 4360,\n        name: 'LegSettlMethodElectionDate',\n        abbrName: 'SettlMethDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The LegSettlMethodElectionDate component is a subcomponent within the LegOptionExercise component used to report the settlement method election date.',\n        fieldRef: [\n            {\n                id: 42574,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42575,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to LegOptionExercise.',\n            },\n            {\n                id: 42576,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42577,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegSettlMethodElectionDateOffsetUnit(42578) is specified.',\n            },\n            {\n                id: 42578,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegSettlMethodElectionDateOffsetPeriod(42577) is specified.',\n            },\n            {\n                id: 42579,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42580,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4361,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to LegOptionExercise.',\n            },\n        ],\n    },\n    {\n        id: 4362,\n        name: 'OptionExerciseMakeWholeProvision',\n        abbrName: 'MakeWhole',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'OptionExerciseMakeWholeProvision is a subcomponent of the OptionExercise component used to specify the set of rules of maintaining balance when an option is exercised.\\n\\nA \"make whole\" provision seeks to penalize the the option buyer, i.e. make the seller \"whole\", if the buyer exercises the option prior to the make whole date, e.g. the early call date of a convertible bond.',\n        fieldRef: [\n            {\n                id: 42591,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42592,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42593,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42594,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42595,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42596,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42597,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4364,\n        name: 'PaymentStreamCompoundingDates',\n        abbrName: 'CmpndgDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'PaymentStreamCompoundingDates is a subcomponent of the PaymentStream component used to specify the compounding dates of the stream - either specific, relative or periodic dates.',\n        fieldRef: [\n            {\n                id: 42609,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to payment stream compounding dates.',\n            },\n            {\n                id: 42610,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42611,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when PaymentStreamCompoundingDatesOffsetUnit(42612) is specified.',\n            },\n            {\n                id: 42612,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when PaymentCompoundingDatesOffsetPeriod(42611) is specified.',\n            },\n            {\n                id: 42613,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42614,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42615,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when PayamentStreamCompoundingFrequencyUnit(42616) is specified.',\n            },\n            {\n                id: 42616,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when PayamentStreamCompoundingFrequencyPeriod(42615) is specified.',\n            },\n            {\n                id: 42617,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the date roll convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the payment stream compounding dates.',\n            },\n            {\n                id: 42618,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42619,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4365,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to payment stream compounding dates.',\n            },\n            {\n                id: 4363,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4368,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4366,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4366,\n        name: 'PaymentStreamCompoundingEndDate',\n        abbrName: 'EndDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'PaymentStreamCompoundingEndDate is a subcomponent of the PaymentStreamCompoundingDates component used to specify the end date for compounding.',\n        fieldRef: [\n            {\n                id: 42622,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42623,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42624,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when PaymentStreamCompoundingEndDateOffsetUnit(42625) is specified.',\n            },\n            {\n                id: 42625,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when PaymentStreamCompoundingEndDateOffsetPeriod(42624) is specified.',\n            },\n            {\n                id: 42626,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42627,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4367,\n        name: 'PaymentStreamCompoundingFloatingRate',\n        abbrName: 'CmpndgFloat',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'PaymentStreamCompoundingFloatingRate is a subcomponent of the PaymentStream component used to report the parameters for determining the compounding floating rate of the stream.',\n        fieldRef: [\n            {\n                id: 42628,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42629,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required if PaymentStreamCompoundingRateIndexCurveUnit(42630) is specified.',\n            },\n            {\n                id: 42630,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required if PaymentStreamCompoundingRateIndexCurvePeriod(42629) is specified.',\n            },\n            {\n                id: 42631,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42632,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42633,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42634,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42635,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42636,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42637,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42638,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42639,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42640,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42641,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42642,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42643,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42644,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42645,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4368,\n        name: 'PaymentStreamCompoundingStartDate',\n        abbrName: 'StartDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'PaymentStreamCompoundingStartDate is a subcomponent of the PaymentStreamCompoundingDates component used to specify the start date for compounding.',\n        fieldRef: [\n            {\n                id: 42646,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42647,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42648,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when PaymentStreamCompoundingStartDateOffsetUnit(42649) is specified.',\n            },\n            {\n                id: 42649,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when PaymentStreamCompoundingStartDateOffsetPeriod(42648) is specified.',\n            },\n            {\n                id: 42650,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42651,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4369,\n        name: 'PaymentStreamFormulaImage',\n        abbrName: 'Img',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'PaymentStreamFormulaImage is a subcomponent of the PaymentStreamFormula component used to include a base64Binary-encoded image clip of the formula.',\n        fieldRef: [\n            {\n                id: 42652,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when PaymentStreamFormulaImage(42653) is specified.',\n            },\n            {\n                id: 42653,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when PaymentStreamFormulaImageLength(42652) is specified.',\n            },\n        ],\n    },\n    {\n        id: 4370,\n        name: 'PaymentStreamFinalPricePaymentDate',\n        abbrName: 'FnlPxPmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'PaymentStreamFinalPricePaymentDate is a subcomponent of the PaymentStreamPaymentDates component used to specify the final price payment date, e.g. for an equity return swap.',\n        fieldRef: [\n            {\n                id: 42654,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42655,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42656,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when PaymentStreamFinalPricePaymentDateOffsetUnit(42657) is specified.',\n            },\n            {\n                id: 42657,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when PaymentStreamFinalPricePaymentDateOffsetPeriod(42656) is specified.',\n            },\n            {\n                id: 42658,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42659,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4373,\n        name: 'PaymentStreamFormula',\n        abbrName: 'Frmla',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'PaymentStreamFormula is a subcomponent of the PaymentStreamFloatingRate component used to report the parameters for determining the floating rate of the stream e.g. for equity swaps.',\n        fieldRef: [\n            {\n                id: 42686,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42687,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42688,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4372,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4369,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4374,\n        name: 'PaymentStubEndDate',\n        abbrName: 'EndDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'PaymentStubEndDate is a subcomponent of the PaymentStubGrp component used to specify the end date of the payment stub.',\n        fieldRef: [\n            {\n                id: 42689,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42690,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this payment stub instance.',\n            },\n            {\n                id: 42691,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42692,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when PaymentStubEndDateOffsetUnit(42693) is specified.',\n            },\n            {\n                id: 42693,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when PaymentStubEndDateOffsetPeriod(42692) is specified.',\n            },\n            {\n                id: 42694,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42695,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4375,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this payment stub instance.',\n            },\n        ],\n    },\n    {\n        id: 4376,\n        name: 'PaymentStubStartDate',\n        abbrName: 'StartDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'PaymentStubStartDate is a subcomponent of the PaymentStubGrp component used to specify the start date of the payment stub.',\n        fieldRef: [\n            {\n                id: 42698,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42699,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this payment stub instance.',\n            },\n            {\n                id: 42700,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42701,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when PaymentStubStartDateOffsetUnit(42702) is specified.',\n            },\n            {\n                id: 42702,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when PaymentStubStartDateOffsetPeriod(42701) is specified.',\n            },\n            {\n                id: 42703,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42704,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4377,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this payment stub instance.',\n            },\n        ],\n    },\n    {\n        id: 4386,\n        name: 'SettlMethodElectionDate',\n        abbrName: 'SettlMethDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The SettlMethodElectionDate component is a subcomponent within the OptionExercise component used to report the settlement method election date.',\n        fieldRef: [\n            {\n                id: 42777,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42778,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to OptionExercise.',\n            },\n            {\n                id: 42779,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42780,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when SettlMethodElectionDateOffsetUnit(42781) is specified.',\n            },\n            {\n                id: 42781,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when SettlMethodElectionDateOffsetPeriod(42780) is specified.',\n            },\n            {\n                id: 42782,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42783,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4385,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to OptionExercise.',\n            },\n        ],\n    },\n    {\n        id: 4388,\n        name: 'UnderlyingCashSettlDate',\n        abbrName: 'SettlDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The UnderlyingCashSettlDate component is a subcomponent within the UnderlyingCashSettlTermGrp component used to report the cash settlement date defined in the settlement provision.',\n        fieldRef: [\n            {\n                id: 42790,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42791,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in the Instrument component. The specified value would be specific to this instance of the cash settlement provision.',\n            },\n            {\n                id: 42792,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42793,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when UnderlyingCashSettlDateOffsetUnit(42794) is specified.',\n            },\n            {\n                id: 42794,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when UnderlyingCashSettlDateOffsetPeriod(42793) is specified.',\n            },\n            {\n                id: 42795,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42796,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4387,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in the Instrument component. The specified values would be specific to this instance of the cash settlement provision.',\n            },\n        ],\n    },\n    {\n        id: 4390,\n        name: 'UnderlyingDividendAccrualFloatingRate',\n        abbrName: 'AcrlFloat',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The UnderlyingDividendAccrualFloatingRate component is a subcomponent of UnderlyingDividendConditions used to define the dividend accrual floating rate attributes of dividend payment conditions.',\n        fieldRef: [\n            {\n                id: 42801,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42802,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingDividendFloatingRateIndexCurveUnit(42803) is specified.',\n            },\n            {\n                id: 42803,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingDividendFloatingRateIndexCurvePeriod(42802) is specified.',\n            },\n            {\n                id: 42804,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42805,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42806,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42807,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42808,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42809,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42810,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42811,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42812,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42813,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42814,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42815,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42816,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42817,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42818,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4391,\n        name: 'UnderlyingDividendAccrualPaymentDate',\n        abbrName: 'AcrlPmtDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The UnderlyingDividendAccrualPaymentDate component is a subcomponent of UnderlyingDividendConditions used to report the dividend accrual payment date.',\n        fieldRef: [\n            {\n                id: 42819,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42820,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingDividendAccrualPaymentDateOffsetUnit(42821) is specified.',\n            },\n            {\n                id: 42821,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingDividendAccrualPaymentDateOffsetPeriod(42820) is specified.',\n            },\n            {\n                id: 42822,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42823,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42824,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The value would be specific to this instance of UnderlyingDividendAccrualPaymentDate.',\n            },\n            {\n                id: 42825,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4389,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The values would be specific to this instance of UnderlyingDividendAccrualPaymentDate.',\n            },\n        ],\n    },\n    {\n        id: 4392,\n        name: 'UnderlyingDividendConditions',\n        abbrName: 'DividendConds',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            \"The UnderlyingDividendConditions component is a subcomponent of UnderlyingPaymentStream used to specify the conditions' valuations and dates governing the payment of dividends.\",\n        fieldRef: [\n            {\n                id: 42826,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42827,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42828,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42829,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42830,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42831,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42832,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42833,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42834,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42835,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42836,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42837,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42838,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42839,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42840,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42841,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42842,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42843,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42844,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42845,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4397,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4393,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4390,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4391,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4393,\n        name: 'UnderlyingDividendFXTriggerDate',\n        abbrName: 'FXTrgrDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The UnderlyingDividendFXTriggerDate component is a subcomponent of UnderlyingDividendConditions used to report the dividend date when a foreign exchange trade is triggered.',\n        fieldRef: [\n            {\n                id: 42846,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42847,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingDividendFXTriggerDateOffsetUnit(42848) is specified.',\n            },\n            {\n                id: 42848,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingDividendFXTriggerDateOffsetPeriod(42847) is specified.',\n            },\n            {\n                id: 42849,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42850,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42851,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The value would be specific to this instance of UnderlyingDividendFXTriggerDate.',\n            },\n            {\n                id: 42852,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4394,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The values would be specific to this instance of UnderlyingDividendFXTriggerDate.',\n            },\n        ],\n    },\n    {\n        id: 4396,\n        name: 'UnderlyingDividendPayout',\n        abbrName: 'DividendPay',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingDividendPayout is a subcomponent of UnderlyingInstrument used to specify the dividend or coupon payout parameters of an equity or bond underlier.',\n        fieldRef: [\n            {\n                id: 42860,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42861,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4395,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4400,\n        name: 'UnderlyingPaymentStreamCompoundingDates',\n        abbrName: 'CmpndgDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamCompoundingDates is a subcomponent of the UnderlyingPaymentStream component used to specify the compounding dates of the stream - either specific, relative or periodic dates.',\n        fieldRef: [\n            {\n                id: 42904,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to payment stream compounding dates.',\n            },\n            {\n                id: 42905,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42906,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamCompoundingDatesOffsetUnit(42907) is specified.',\n            },\n            {\n                id: 42907,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamCompoundingDatesOffsetPeriod(42906) is specified.',\n            },\n            {\n                id: 42908,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42909,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42910,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamCompoundingFrequencyUnit(42911) is specified.',\n            },\n            {\n                id: 42911,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamCompoundingFrequencyPeriod(42910) is specified.',\n            },\n            {\n                id: 42912,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the date roll convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the payment stream dates.',\n            },\n            {\n                id: 42913,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42914,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4401,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to payment stream compounding dates.',\n            },\n            {\n                id: 4399,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4404,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4402,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4402,\n        name: 'UnderlyingPaymentStreamCompoundingEndDate',\n        abbrName: 'EndDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamCompoundingEndDate is a subcomponent of the UnderlyingPaymentStreamCompoundingDates component used to specify the end date for compounding.',\n        fieldRef: [\n            {\n                id: 42917,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42918,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42919,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamCompoundingEndDateOffsetUnit(42920) is specified.',\n            },\n            {\n                id: 42920,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamCompoundingEndDateOffsetPeriod(42919) is specified.',\n            },\n            {\n                id: 42921,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42922,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4403,\n        name: 'UnderlyingPaymentStreamCompoundingFloatingRate',\n        abbrName: 'CmpndgFloat',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamCompoundingFloatingRate is a subcomponent of the UnderlyingPaymentStream component used to report the parameters for determining the compounding floating rate of the stream.',\n        fieldRef: [\n            {\n                id: 42923,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42924,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required if UnderlyingPaymentStreamCompoundingRateIndexCurveUnit(42925) is specified.',\n            },\n            {\n                id: 42925,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required if UnderlyingPaymentStreamCompoundingRateIndexCurvePeriod(42924) is specified.',\n            },\n            {\n                id: 42926,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42927,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42928,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42929,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42930,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42931,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42932,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42933,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42934,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42935,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42936,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42937,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42938,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42939,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42940,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4404,\n        name: 'UnderlyingPaymentStreamCompoundingStartDate',\n        abbrName: 'StartDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamCompoundingStartDate is a subcomponent of the UnderlyingPaymentStreamCompoundingDates component used to specify the start date for compounding.',\n        fieldRef: [\n            {\n                id: 42941,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42942,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42943,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamCompoundingStartDateOffsetUnit(42944) is specified.',\n            },\n            {\n                id: 42944,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamCompoundingStartDateOffsetPeriod(42943) is specified.',\n            },\n            {\n                id: 42945,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42946,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4405,\n        name: 'UnderlyingPaymentStreamFormulaImage',\n        abbrName: 'Img',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamFormulaImage is a subcomponent of the UnderlyingPaymentStreamFormula component used to include a base64Binary-encoded image clip of the formula.',\n        fieldRef: [\n            {\n                id: 42947,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when UnderlyingPaymentStreamFormulaImage(42948) is specified.',\n            },\n            {\n                id: 42948,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamFormulaImageLength(42947) is specified.',\n            },\n        ],\n    },\n    {\n        id: 4406,\n        name: 'UnderlyingPaymentStreamFinalPricePaymentDate',\n        abbrName: 'FnlPxPmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamFinalPricePaymentDate is a subcomponent of the UnderlyingPaymentStreamPaymentDates component used to specify the final price payment date, e.g. for an equity return swap.',\n        fieldRef: [\n            {\n                id: 42949,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42950,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42951,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamFinalPricePaymentDateOffsetUnit(42952) is specified.',\n            },\n            {\n                id: 42952,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStreamFinalPricePaymentDateOffsetPeriod(42951) is specified.',\n            },\n            {\n                id: 42953,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42954,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4408,\n        name: 'UnderlyingPaymentStreamFormula',\n        abbrName: 'Frmla',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamFormula is a subcomponent of the UnderlyingPaymentStreamFloatingRate component used to report the parameters for determining the floating rate of the stream e.g. for equity swaps.',\n        fieldRef: [\n            {\n                id: 42978,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42979,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42980,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4409,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4405,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4410,\n        name: 'UnderlyingPaymentStubEndDate',\n        abbrName: 'EndDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStubEndDate is a subcomponent of the UnderlyingPaymentStubGrp component used to specify the end date of the payment stub.',\n        fieldRef: [\n            {\n                id: 42984,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42985,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this payment stub instance.',\n            },\n            {\n                id: 42986,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42987,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when UnderlyingPaymentStubEndDateOffsetUnit(42988) is specified.',\n            },\n            {\n                id: 42988,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStubEndDateOffsetPeriod(42987) is specified.',\n            },\n            {\n                id: 42989,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42990,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4411,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this payment stub instance.',\n            },\n        ],\n    },\n    {\n        id: 4412,\n        name: 'UnderlyingPaymentStubStartDate',\n        abbrName: 'StartDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStubStartDate is a subcomponent of the UnderlyingPaymentStubGrp component used to specify the start date of the payment stub.',\n        fieldRef: [\n            {\n                id: 42993,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42994,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this payment stub instance.',\n            },\n            {\n                id: 42995,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42996,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStubStartDateOffsetUnit(42997) is specified.',\n            },\n            {\n                id: 42997,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentStubStartDateOffsetPeriod(42996) is specified.',\n            },\n            {\n                id: 42998,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42999,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4413,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this payment stub instance.',\n            },\n        ],\n    },\n    {\n        id: 4414,\n        name: 'UnderlyingRateSpreadSchedule',\n        abbrName: 'RtSpreadSched',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingRateSpreadSchedule is a subcomponent of UnderlyingInstrument used to specify the rate spread schedule for a basket underlier.',\n        fieldRef: [\n            {\n                id: 43004,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4415,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4424,\n        name: 'UnderlyingSettlMethodElectionDate',\n        abbrName: 'SettlMethDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The UnderlyingSettlMethodElectionDate component is a subcomponent within the UnderlyingOptionExercise component used to report the settlement method election date.',\n        fieldRef: [\n            {\n                id: 43076,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43077,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to UnderlyingOptionExercise.',\n            },\n            {\n                id: 43078,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43079,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingSettlMethodElectionDateOffsetUnit(43080) is specified.',\n            },\n            {\n                id: 43080,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingSettlMethodElectionDateOffsetPeriod(43079) is specified.',\n            },\n            {\n                id: 43081,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43082,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4423,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to UnderlyingOptionExercise.',\n            },\n        ],\n    },\n    {\n        id: 4428,\n        name: 'LegOptionExerciseMakeWholeProvision',\n        abbrName: 'MakeWhole',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegOptionExerciseMakeWholeProvision is a subcomponent of the LegOptionExercise component used to specify the set of rules of maintaining balance when an option is exercised.\\n\\nA \"make whole\" provision seeks to penalize the the option buyer, i.e. make the seller \"whole\", if the buyer exercises the option prior to the make whole date, e.g. the early call date of a convertible bond.',\n        fieldRef: [\n            {\n                id: 42392,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42393,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42394,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42395,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42396,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42397,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42398,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n    {\n        id: 4429,\n        name: 'UnderlyingOptionExerciseMakeWholeProvision',\n        abbrName: 'MakeWhole',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingOptionExerciseMakeWholeProvision is a subcomponent of the UnderlyingOptionExercise component used to specify the set of rules of maintaining balance when an option is exercised.\\n\\nA \"make whole\" provision seeks to penalize the the option buyer, i.e. make the seller \"whole\", if the buyer exercises the option prior to the makeWholeDate, e.g. the early call date of a convertible bond.',\n        fieldRef: [\n            {\n                id: 42888,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42889,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42890,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42891,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42892,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42893,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42894,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n    },\n];\n", "import { COMPONENTS, type ISpecComponents } from '../spec/SpecComponents.ts';\n\n/**\n * Class for managing FIX protocol components.\n * Provides functionality to find and process FIX components,\n * including looking up components by ID or name and retrieving\n * associated field tags.\n */\nexport class Components {\n    /** Array of all available component specifications */\n    public components: ISpecComponents[] = COMPONENTS;\n    /** Cache map for looking up components by ID */\n    public cacheMap = new Map<number, ISpecComponents>();\n    /** Cache map for looking up components by name */\n    public cacheMapByName = new Map<string, ISpecComponents>();\n\n    /**\n     * Creates a new Components instance and initializes the cache maps\n     * with all available component specifications.\n     */\n    constructor() {\n        this.components.forEach((component) => {\n            this.cacheMap.set(component.id, component);\n        });\n        this.components.forEach((component) => {\n            this.cacheMapByName.set(component.name, component);\n        });\n    }\n\n    /**\n     * Finds a component by its ID.\n     *\n     * @param {number} componentId - The ID of the component to find\n     * @returns {ISpecComponents | undefined} The found component, or undefined if not found\n     */\n    public find(componentId: number): ISpecComponents | undefined {\n        return this.cacheMap.get(componentId);\n    }\n\n    /**\n     * Finds a component by its name.\n     *\n     * @param {string} name - The name of the component to find\n     * @returns {ISpecComponents | undefined} The found component, or undefined if not found\n     */\n    public findByName(name: string): ISpecComponents | undefined {\n        return this.cacheMapByName.get(name);\n    }\n\n    /**\n     * Gets all field tags associated with a component by its name.\n     *\n     * @param {string} name - The name of the component\n     * @returns {number[]} An array of field tag numbers associated with the component\n     */\n    public getTagsByComponentName(name: string): number[] {\n        const tags: number[] = [];\n        const component = this.findByName(name);\n        if (component) {\n            component.fieldRef?.forEach((field) => {\n                tags.push(field.id);\n            });\n        }\n        return tags;\n    }\n}\n", "/**\n * The Message object contains all possible FIX message types,\n * such as HeartBeat, TestRequest, and NewOrderSingle, each\n * representing a specific kind of communication or action\n * within the FIX protocol.\n *\n * @public\n */\nexport const Message = Object.freeze({\n    /** The Heartbeat monitors the status of the communication link and identifies when the last of a string of messages was not received. */\n    Heartbeat: '0',\n    /** The test request message forces a heartbeat from the opposing application. The test request message checks sequence numbers or verifies communication line status. The opposite application responds to the Test Request with a Heartbeat containing the TestReqID. */\n    TestRequest: '1',\n    /** The resend request is sent by the receiving application to initiate the retransmission of messages. This function is utilized if a sequence number gap is detected, if the receiving application lost a message, or as a function of the initialization process. */\n    ResendRequest: '2',\n    /** The reject message should be issued when a message is received but cannot be properly processed due to a session-level rule violation. An example of when a reject may be appropriate would be the receipt of a message with invalid basic data which successfully passes de-encryption, CheckSum and BodyLength checks. */\n    Reject: '3',\n    /** The sequence reset message is used by the sending application to reset the incoming sequence number on the opposing side. */\n    SequenceReset: '4',\n    /** The logout message initiates or confirms the termination of a FIX session. Disconnection without the exchange of logout messages should be interpreted as an abnormal condition. */\n    Logout: '5',\n    /** Indication of interest messages are used to market merchandise which the broker is buying or selling in either a proprietary or agency capacity. The indications can be time bound with a specific expiration value. Indications are distributed with the understanding that other firms may react to the message first and that the merchandise may no longer be available due to prior trade.\n        Indication messages can be transmitted in various transaction types; NEW, CANCEL, and REPLACE. All message types other than NEW modify the state of the message identified in IOIRefID. */\n    IOI: '6',\n    /** Advertisement messages are used to announce completed transactions. The advertisement message can be transmitted in various transaction types; NEW, CANCEL and REPLACE. All message types other than NEW modify the state of a previously transmitted advertisement identified in AdvRefID. */\n    Advertisement: '7',\n    /** The execution report message is used to:\n        1. confirm the receipt of an order\n        2. confirm changes to an existing order (i.e. accept cancel and replace requests)\n        3. relay order status information\n        4. relay fill information on working orders\n        5. relay fill information on tradeable or restricted tradeable quotes\n        6. reject orders\n        7. report post-trade fees calculations associated with a trade */\n    ExecutionReport: '8',\n    /** The order cancel reject message is issued by the broker upon receipt of a cancel request or cancel/replace request message which cannot be honored. */\n    OrderCancelReject: '9',\n    /** The logon message authenticates a user establishing a connection to a remote system. The logon message must be the first message sent by the application requesting to initiate a FIX session. */\n    Logon: 'A',\n    /** The news message is a general free format message between the broker and institution. The message contains flags to identify the news item's urgency and to allow sorting by subject company (symbol). The News message can be originated at either the broker or institution side, or exchanges and other marketplace venues. */\n    News: 'B',\n    /** The email message is similar to the format and purpose of the News message, however, it is intended for private use between two parties. */\n    Email: 'C',\n    /** The new order message type is used by institutions wishing to electronically submit securities and forex orders to a broker for execution.\n        The New Order message type may also be used by institutions or retail intermediaries wishing to electronically submit Collective Investment Vehicle (CIV) orders to a broker or fund manager for execution. */\n    NewOrderSingle: 'D',\n    /** The new order message type is used by institutions wishing to electronically submit securities and forex orders to a broker for execution. */\n    OrderSingle: 'D',\n    /** The NewOrderList Message can be used in one of two ways depending on which market conventions are being followed. */\n    NewOrderList: 'E',\n    /** The NewOrderList Message can be used in one of two ways depending on which market conventions are being followed. */\n    OrderList: 'E',\n    /** The order cancel request message requests the cancellation of all of the remaining quantity of an existing order. Note that the Order Cancel/Replace Request should be used to partially cancel (reduce) an order). */\n    OrderCancelRequest: 'F',\n    /** The order cancel/replace request is used to change the parameters of an existing order.\n        Do not use this message to cancel the remaining quantity of an outstanding order, use the Order Cancel Request message for this purpose. */\n    OrderCancelReplaceRequest: 'G',\n    /** The order status request message is used by the institution to generate an order status message back from the broker. */\n    OrderStatusRequest: 'H',\n    /** The AllocationInstruction(35=J) message provides the ability to specify how an order or set of orders should be subdivided amongst one or more accounts.\n        In versions of FIX prior to version 4.4, this same message was known as the Allocation(35=J) message. Note in versions of the FIX Protocol prior to version 4.4, the Allocation(35=J) message was also used to communicate fee and expense details from the sell-side to the buy-side. This role has since been removed from the AllocationInstruction(35=J) message and is performed by the new (to version 4.4) AllocationReport(35=AS) and Confirmation(35=AK) messages. The AllocationReport(35=AS) message should be used for the sell-side initiated allocation role as defined in previous versions of the FIX Protocol. */\n    AllocationInstruction: 'J',\n    /** The Allocation message provides the ability to specify how an order or set of orders should be subdivided amongst one or more accounts. */\n    Allocation: 'J',\n    /** The List Cancel Request message type is used by institutions wishing to cancel previously submitted lists either before or during execution. */\n    ListCancelRequest: 'K',\n    /** The List Execute message type is used by institutions to instruct the broker to begin execution of a previously submitted list. This message may or may not be used, as it may be mirroring a phone conversation. */\n    ListExecute: 'L',\n    /** The list status request message type is used by institutions to instruct the broker to generate status messages for a list. */\n    ListStatusRequest: 'M',\n    /** The list status message is issued as the response to a List Status Request message sent in an unsolicited fashion by the sell-side. It indicates the current state of the orders within the list as they exist at the broker's site. This message may also be used to respond to the List Cancel Request. */\n    ListStatus: 'N',\n    /** In versions of FIX prior to version 4.4, this message was known as the Allocation ACK message.\n        The Allocation Instruction Ack message is used to acknowledge the receipt of and provide status for an Allocation Instruction message. */\n    AllocationInstructionAck: 'P',\n    /** The allocation ACK message is used to acknowledge the receipt and status of an allocation message received from the institution. */\n    AllocationAck: 'P',\n    /** The Don\u2019t Know Trade (DK) message notifies a trading partner that an electronically received execution has been rejected. This message can be thought of as an execution reject message. */\n    DontKnowTrade: 'Q',\n    /** In some markets it is the practice to request quotes from brokers prior to placement of an order. The quote request message is used for this purpose. This message is commonly referred to as an Request For Quote (RFQ) */\n    QuoteRequest: 'R',\n    /** The Quote message is used as the response to a Quote Request or a Quote Response message in both indicative, tradeable, and restricted tradeable quoting markets. */\n    Quote: 'S',\n    /** The Settlement Instructions message provides the broker\u2019s, the institution\u2019s, or the intermediary\u2019s instructions for trade settlement. This message has been designed so that it can be sent from the broker to the institution, from the institution to the broker, or from either to an independent \"standing instructions\" database or matching system or, for CIV, from an intermediary to a fund manager. */\n    SettlementInstructions: 'T',\n    /** Some systems allow the transmission of real-time quote, order, trade, trade volume, open interest, and/or other price information on a subscription basis. A MarketDataRequest(35=V) is a general request for market data on specific securities or forex quotes. The values in the fields provided within the request will serve as further filter criteria for the result set. */\n    MarketDataRequest: 'V',\n    /** The Market Data messages are used as the response to a Market Data Request message. In all cases, one Market Data message refers only to one Market Data Request. It can be used to transmit a 2-sided book of orders or list of quotes, a list of trades, index values, opening, closing, settlement, high, low, or VWAP prices, the trade volume or open interest for a security, or any combination of these. */\n    MarketDataSnapshotFullRefresh: 'W',\n    /** The Market Data message for incremental updates may contain any combination of new, changed, or deleted Market Data Entries, for any combination of instruments, with any combination of trades, imbalances, quotes, index values, open, close, settlement, high, low, and VWAP prices, trade volume and open interest so long as the maximum FIX message size is not exceeded. All of these types of Market Data Entries can be changed and deleted. */\n    MarketDataIncrementalRefresh: 'X',\n    /** The Market Data Request Reject is used when the broker cannot honor the Market Data Request, due to business or technical reasons. Brokers may choose to limit various parameters, such as the size of requests, whether just the top of book or the entire book may be displayed, and whether Full or Incremental updates must be used. */\n    MarketDataRequestReject: 'Y',\n    /** The Quote Cancel message is used by an originator of quotes to cancel quotes.\n        The Quote Cancel message supports cancellation of:\n        \u2022 All quotes\n        \u2022 Quotes for a specific symbol or security ID\n        \u2022 All quotes for a security type\n        \u2022 All quotes for an underlying */\n    QuoteCancel: 'Z',\n    /** The quote status request message is used for the following purposes in markets that employ tradeable or restricted tradeable quotes:\n        \u2022 For the issuer of a quote in a market to query the status of that quote (using the QuoteID to specify the target quote).\n        \u2022 To subscribe and unsubscribe for Quote Status Report messages for one or more securities. */\n    QuoteStatusRequest: 'a',\n    /** Mass Quote Acknowledgement is used as the application level response to a Mass Quote message. */\n    MassQuoteAck: 'b',\n    /** Mass Quote Acknowledgement is used as the application level response to a Mass Quote message. */\n    MassQuoteAcknowledgement: 'b',\n    /** An optional response to Quote, Mass Quote, Quote Cancel, and Quote Request message is the Quote Acknowledgement message. */\n    QuoteAcknowledgement: 'b',\n    /** The SecurityDefinitionRequest(35=c) message is used for the following:\n        1. Request a specific security to be traded with the second party. The requested security can be defined as a multileg security made up of one or more instrument legs.\n        2. Request a set of individual securities for a single market segment.\n        3. Request all securities, independent of market segment. */\n    SecurityDefinitionRequest: 'c',\n    /** The SecurityDefinition(35=d) message is used for the following:\n        1. Accept the security defined in a SecurityDefinition(35=d) message.\n        2. Accept the security defined in a SecurityDefinition(35=d) message with changes to the definition and/or identity of the security.\n        3. Reject the security requested in a SecurityDefinition(35=d) message.\n        4. Respond to a request for securities within a specified market segment.\n        5. Convey comprehensive security definition for all market segments that the security participates in.\n        6. Convey the security's trading rules that differ from default rules for the market segment. */\n    SecurityDefinition: 'd',\n    /** The Security Status Request message provides for the ability to request the status of a security. One or more Security Status messages are returned as a result of a Security Status Request message. */\n    SecurityStatusRequest: 'e',\n    /** The Security Status message provides for the ability to report changes in status to a security. The Security Status message contains fields to indicate trading status, corporate actions, financial status of the company. The Security Status message is used by one trading entity (for instance an exchange) to report changes in the state of a security. */\n    SecurityStatus: 'f',\n    /** The Trading Session Status Request is used to request information on the status of a market. With the move to multiple sessions occurring for a given trading party (morning and evening sessions for instance) there is a need to be able to provide information on what product is trading on what market. */\n    TradingSessionStatusRequest: 'g',\n    /** The Trading Session Status provides information on the status of a market. For markets multiple trading sessions on multiple-markets occurring (morning and evening sessions for instance), this message is able to provide information on what products are trading on what market during what trading session. */\n    TradingSessionStatus: 'h',\n    /** The Mass Quote message can contain quotes for multiple securities to support applications that allow for the mass quoting of an option series. Two levels of repeating groups have been provided to minimize the amount of data required to submit a set of quotes for a class of options (e.g. all option series for IBM). */\n    MassQuote: 'i',\n    /** The Business Message Reject message can reject an application-level message which fulfills session-level rules and cannot be rejected via any other means. Note if the message fails a session-level rule (e.g. body length is incorrect), a session-level Reject message should be issued. */\n    BusinessMessageReject: 'j',\n    /** The BidRequest Message can be used in one of two ways depending on which market conventions are being followed.\n        In the \"Non disclosed\" convention (e.g. US/European model) the BidRequest message can be used to request a bid based on the sector, country, index and liquidity information contained within the message itself. In the \"Non disclosed\" convention the entry repeating group is used to define liquidity of the program. See \" Program/Basket/List Trading\" for an example.\n        In the \"Disclosed\" convention (e.g. Japanese model) the BidRequest message can be used to request bids based on the ListOrderDetail messages sent in advance of BidRequest message. In the \"Disclosed\" convention the list repeating group is used to define which ListOrderDetail messages a bid is being sort for and the directions of the required bids. */\n    BidRequest: 'k',\n    /** The Bid Response message can be used in one of two ways depending on which market conventions are being followed.\n        In the \"Non disclosed\" convention the Bid Response message can be used to supply a bid based on the sector, country, index and liquidity information contained within the corresponding bid request message. See \"Program/Basket/List Trading\" for an example.\n        In the \"Disclosed\" convention the Bid Response message can be used to supply bids based on the List Order Detail messages sent in advance of the corresponding Bid Request message. */\n    BidResponse: 'l',\n    /** The strike price message is used to exchange strike price information for principal trades. It can also be used to exchange reference prices for agency trades. */\n    ListStrikePrice: 'm',\n    XMLnonFIX: 'n',\n    /** The Registration Instructions message type may be used by institutions or retail intermediaries wishing to electronically submit registration information to a broker or fund manager (for CIV) for an order or for an allocation. */\n    RegistrationInstructions: 'o',\n    /** The Registration Instructions Response message type may be used by broker or fund manager (for CIV) in response to a Registration Instructions message submitted by an institution or retail intermediary for an order or for an allocation. */\n    RegistrationInstructionsResponse: 'p',\n    /** The order mass cancel request message requests the cancellation of all of the remaining quantity of a group of orders matching criteria specified within the request. NOTE: This message can only be used to cancel order messages (reduce the full quantity). */\n    OrderMassCancelRequest: 'q',\n    /** The Order Mass Cancel Report is used to acknowledge an Order Mass Cancel Request. Note that each affected order that is canceled is acknowledged with a separate Execution Report or Order Cancel Reject message. */\n    OrderMassCancelReport: 'r',\n    /** Used to submit a cross order into a market. The cross order contains two order sides (a buy and a sell). The cross order is identified by its CrossID. */\n    NewOrderCross: 's',\n    /** Used to modify a cross order previously submitted using the New Order - Cross message. See Order Cancel Replace Request for details concerning message usage. */\n    CrossOrderCancelReplaceRequest: 't',\n    /** Used to fully cancel the remaining open quantity of a cross order. */\n    CrossOrderCancelRequest: 'u',\n    /** The Security Type Request message is used to return a list of security types available from a counterparty or market. */\n    SecurityTypeRequest: 'v',\n    /** The Security Type Request message is used to return a list of security types available from a counterparty or market. */\n    SecurityTypes: 'w',\n    /** The Security List Request message is used to return a list of securities from the counterparty that match criteria provided on the request */\n    SecurityListRequest: 'x',\n    /** The Security List message is used to return a list of securities that matches the criteria specified in a Security List Request. */\n    SecurityList: 'y',\n    /** The Derivative Security List Request message is used to return a list of securities from the counterparty that match criteria provided on the request */\n    DerivativeSecurityListRequest: 'z',\n    /** The Derivative Security List message is used to return a list of securities that matches the criteria specified in a Derivative Security List Request. */\n    DerivativeSecurityList: 'AA',\n    /** The New Order - Multileg is provided to submit orders for securities that are made up of multiple securities, known as legs. */\n    NewOrderMultileg: 'AB',\n    /** Used to modify a multileg order previously submitted using the New Order - Multileg message. See Order Cancel Replace Request for details concerning message usage. */\n    MultilegOrderCancelReplace: 'AC',\n    /** The Trade Capture Report Request can be used to:\n        \u2022 Request one or more trade capture reports based upon selection criteria provided on the trade capture report request\n        \u2022 Subscribe for trade capture reports based upon selection criteria provided on the trade capture report request. */\n    TradeCaptureReportRequest: 'AD',\n    /** The Trade Capture Report message can be:\n        - Used to report trades between counterparties.\n        - Used to report trades to a trade matching system.\n        - Sent unsolicited between counterparties.\n        - Sent as a reply to a Trade Capture Report Request.\n        - Used to report unmatched and matched trades. */\n    TradeCaptureReport: 'AE',\n    /** The order mass status request message requests the status for orders matching criteria specified within the request. */\n    OrderMassStatusRequest: 'AF',\n    /** The Quote Request Reject message is used to reject Quote Request messages for all quoting models. */\n    QuoteRequestReject: 'AG',\n    /** In tradeable and restricted tradeable quoting markets \u2013 Quote Requests are issued by counterparties interested in ascertaining the market for an instrument. Quote Requests are then distributed by the market to liquidity providers who make markets in the instrument. The RFQ Request is used by liquidity providers to indicate to the market for which instruments they are interested in receiving Quote Requests. It can be used to register interest in receiving quote requests for a single instrument or for multiple instruments */\n    RFQRequest: 'AH',\n    /** The quote status report message is used:\n        \u2022 as the response to a Quote Status Request message\n        \u2022 as a response to a Quote Cancel message\n        \u2022 as a response to a Quote Response message in a negotiation dialog (see Volume 7 \u2013 PRODUCT: FIXED INCOME and USER GROUP: EXCHANGES AND MARKETS) */\n    QuoteStatusReport: 'AI',\n    /** The QuoteResponse(35=AJ) message is used for the following purposes:\n        1. Respond to an IOI(35=6) message\n        2. Respond to a Quote(35=S) message\n        3. Counter a Quote\n        4. End a negotiation dialog\n        5. Follow-up or end a QuoteRequest(35=R) dialog that did not receive a response.\n        For usage of this message in a negotiation or counter quote dialog for fixed income and exchanges/marketplace see Volume 7, Fixed Income and Exchanges and Markets sections respectively. */\n    QuoteResponse: 'AJ',\n    /** The Confirmation messages are used to provide individual trade level confirmations from the sell side to the buy side. In versions of FIX prior to version 4.4, this role was performed by the allocation message. Unlike the allocation message, the confirmation message operates at an allocation account (trade) level rather than block level, allowing for the affirmation or rejection of individual confirmations. */\n    Confirmation: 'AK',\n    /** The Position Maintenance Request message allows the position owner to submit requests to the holder of a position which will result in a specific action being taken which will affect the position. Generally, the holder of the position is a central counter party or clearing organization but can also be a party providing investment services. */\n    PositionMaintenanceRequest: 'AL',\n    /** The Position Maintenance Report message is sent by the holder of a position in response to a Position Maintenance Request and is used to confirm that a request has been successfully processed or rejected. */\n    PositionMaintenanceReport: 'AM',\n    /** The Request For Positions message is used by the owner of a position to request a Position Report from the holder of the position, usually the central counter party or clearing organization. The request can be made at several levels of granularity. */\n    RequestForPositions: 'AN',\n    /** The Request for Positions Ack message is returned by the holder of the position in response to a Request for Positions message. The purpose of the message is to acknowledge that a request has been received and is being processed. */\n    RequestForPositionsAck: 'AO',\n    /** The Position Report message is returned by the holder of a position in response to a Request for Position message. The purpose of the message is to report all aspects of a position and may be provided on a standing basis to report end of day positions to an owner. */\n    PositionReport: 'AP',\n    /** The Trade Capture Request Ack message is used to:\n        - Provide an acknowledgement to a Trade Capture Report Request in the case where the Trade Capture Report Request is used to specify a subscription or delivery of reports via an out-of-band ResponseTransmissionMethod.\n        - Provide an acknowledgement to a Trade Capture Report Request in the case when the return of the Trade Capture Reports matching that request will be delayed or delivered asynchronously. This is useful in distributed trading system environments.\n        - Indicate that no trades were found that matched the selection criteria specified on the Trade Capture Report Request or the Trade Capture Request was invalid for some business reason, such as request is not authorized, invalid or unknown instrument, party, trading session, etc. */\n    TradeCaptureReportRequestAck: 'AQ',\n    /** The Trade Capture Report Ack message can be:\n        - Used to acknowledge trade capture reports received from a counterparty.\n        - Used to reject a trade capture report received from a counterparty. */\n    TradeCaptureReportAck: 'AR',\n    /** Sent from sell-side to buy-side, sell-side to 3rd-party or 3rd-party to buy-side, the AllocationReport(35=AS) message (Claim) provides account breakdown of an order or set of orders plus any additional follow-up front-office information developed post-trade during the trade allocation, matching and calculation phase.\n        In versions of the FIX Protocol prior to version 4.4, this functionality was provided through the Allocation(35=J) message. Depending on the needs of the market and the timing of confirmed status, the role of AllocationReport(35=AS) can be taken over in whole or in part by the Confirmation(35=AK) message. */\n    AllocationReport: 'AS',\n    /** The Allocation Report Ack message is used to acknowledge the receipt of and provide status for an Allocation Report message. */\n    AllocationReportAck: 'AT',\n    /** The Confirmation Ack (aka Affirmation) message is used to respond to a Confirmation message. */\n    ConfirmationAck: 'AU',\n    /** The Settlement Instruction Request message is used to request standing settlement instructions from another party. */\n    SettlementInstructionRequest: 'AV',\n    /** Assignment Reports are sent from a clearing house to counterparties, such as a clearing firm as a result of the assignment process. */\n    AssignmentReport: 'AW',\n    /** An initiator that requires collateral from a respondent sends a Collateral Request. The initiator can be either counterparty to a trade in a two party model or an intermediary such as an ATS or clearinghouse in a three party model. A Collateral Assignment is expected as a response to a request for collateral. */\n    CollateralRequest: 'AX',\n    /** Used to assign collateral to cover a trading position. This message can be sent unsolicited or in reply to a Collateral Request message. */\n    CollateralAssignment: 'AY',\n    /** Used to respond to a Collateral Assignment message. */\n    CollateralResponse: 'AZ',\n    /** Used to report collateral status when responding to a Collateral Inquiry message. */\n    CollateralReport: 'BA',\n    /** Used to inquire for collateral status. */\n    CollateralInquiry: 'BB',\n    /** This message is send either immediately after logging on to inform a network (counterparty system) of the type of updates required or to at any other time in the FIX conversation to change the nature of the types of status updates required. It can also be used with a NetworkRequestType of Snapshot to request a one-off report of the status of a network (or counterparty) system. Finally this message can also be used to cancel a request to receive updates into the status of the counterparties on a network by sending a NetworkRequestStatusMessage with a NetworkRequestType of StopSubscribing. */\n    NetworkCounterpartySystemStatusRequest: 'BC',\n    /** This message is sent in response to a Network (Counterparty System) Status Request Message. */\n    NetworkCounterpartySystemStatusResponse: 'BD',\n    /** This message is used to initiate a user action, logon, logout or password change. It can also be used to request a report on a user's status. */\n    UserRequest: 'BE',\n    /** This message is used to respond to a user request message, it reports the status of the user after the completion of any action requested in the user request message. */\n    UserResponse: 'BF',\n    /** Used to respond to a Collateral Inquiry in the following situations:\n        \u2022 When the CollateralInquiry will result in an out of band response (such as a file transfer).\n        \u2022 When the inquiry is otherwise valid but no collateral is found to match the criteria specified on the Collateral Inquiry message.\n        \u2022 When the Collateral Inquiry is invalid based upon the business rules of the counterparty. */\n    CollateralInquiryAck: 'BG',\n    /** The Confirmation Request message is used to request a Confirmation message. */\n    ConfirmationRequest: 'BH',\n    /** The Contrary Intention Report is used for reporting of contrary expiration quantities for Saturday expiring options. This information is required by options exchanges for regulatory purposes. */\n    ContraryIntentionReport: 'BO',\n    /** This message is used for reporting updates to a product security master file. Updates could be the result of corporate actions or other business events. Updates may include additions, modifications or deletions. */\n    SecurityDefinitionUpdateReport: 'BP',\n    /** The Security List Update Report is used for reporting updates to a Contract Security Masterfile. Updates could be due to Corporate Actions or other business events. Update may include additions, modifications and deletions. */\n    SecurityListUpdateReport: 'BK',\n    /** Used to report changes in position, primarily in equity options, due to modifications to the underlying due to corporate actions */\n    AdjustedPositionReport: 'BL',\n    /** This message is used in a 3-party allocation model (buy-side and sell-side using a central clearing entity) where notification of group creation and group updates to counterparties is needed. The message will also carry trade information that comprised the group to the counterparties. */\n    AllocationInstructionAlert: 'BM',\n    /** The Execution Report Acknowledgement message is an optional message that provides dual functionality to notify a trading partner that an electronically received execution has either been accepted or rejected (DK'd). */\n    ExecutionAck: 'BN',\n    /** The Trading Session List message is sent as a response to a Trading Session List Request. The Trading Session List should contain the characteristics of the trading session and the current state of the trading session. */\n    TradingSessionList: 'BJ',\n    /** The Trading Session List Request is used to request a list of trading sessions available in a market place and the state of those trading sessions. A successful request will result in a response from the counterparty of a Trading Session List (MsgType=BJ) message that contains a list of zero or more trading sessions. */\n    TradingSessionListRequest: 'BI',\n    /** The Settlement Obligation Report message provides a central counterparty, institution, or individual counterparty with a capacity for reporting the final details of a currency settlement obligation. */\n    SettlementObligationReport: 'BQ',\n    /** The Derivative Security List Update Report message is used to send updates to an option family or the strikes that comprise an option family. */\n    DerivativeSecurityListUpdateReport: 'BR',\n    /** The Trading Session List Update Report is used by marketplaces to provide intra-day updates of trading sessions when there are changes to one or more trading sessions. */\n    TradingSessionListUpdateReport: 'BS',\n    /** The Market Definition Request message is used to request for market structure information from the Respondent that receives this request. */\n    MarketDefinitionRequest: 'BT',\n    /** The MarketDefinition(35=BU) message is used to respond to MarketDefinitionRequest(35=BT). In a subscription, it will be used to provide the initial snapshot of the information requested. Subsequent updates are provided by the MarketDefinitionUpdateReport(35=BV). */\n    MarketDefinition: 'BU',\n    /** In a subscription for market structure information, this message is used once the initial snapshot of the information has been sent using the MarketDefinition(35=BU) message. */\n    MarketDefinitionUpdateReport: 'BV',\n    /** This message is used to request a retransmission of a set of one or more messages generated by the application specified in RefApplID (1355). */\n    ApplicationMessageRequest: 'BW',\n    /** This message is used to acknowledge an Application Message Request providing a status on the request (i.e. whether successful or not). This message does not provide the actual content of the messages to be resent. */\n    ApplicationMessageRequestAck: 'BX',\n    /** This message is used for three difference purposes: to reset the ApplSeqNum (1181) of a specified ApplID (1180). to indicate that the last message has been sent for a particular ApplID, or as a keep-alive mechanism for ApplIDs with infrequent message traffic. */\n    ApplicationMessageReport: 'BY',\n    /** The Order Mass Action Report is used to acknowledge an Order Mass Action Request. Note that each affected order that is suspended or released or canceled is acknowledged with a separate Execution Report for each order. */\n    OrderMassActionReport: 'BZ',\n    /** The Order Mass Action Request message can be used to request the suspension or release of a group of orders that match the criteria specified within the request. This is equivalent to individual Order Cancel Replace Requests for each order with or without adding \"S\" to the ExecInst values. It can also be used for mass order cancellation. */\n    OrderMassActionRequest: 'CA',\n    /** The User Notification message is used to notify one or more users of an event or information from the sender of the message. This message is usually sent unsolicited from a marketplace (e.g. Exchange, ECN) to a market participant. */\n    UserNotification: 'CB',\n    /** In certain markets where market data aggregators fan out to end clients the pricing streams provided by the price makers, the price maker may assign the clients to certain pricing streams that the price maker publishes via the aggregator. An example of this use is in the FX markets where clients may be assigned to different pricing streams based on volume bands and currency pairs. */\n    StreamAssignmentRequest: 'CC',\n    /** The StreamAssignmentReport(35=CD) message is in response to the StreamAssignmentRequest(35=CC) message. It provides information back to the aggregator as to which clients to assign to receive which price stream based on requested CCY pair. This message can be sent unsolicited to the Aggregator from the Price Maker. */\n    StreamAssignmentReport: 'CD',\n    /** This message is used to respond to the Stream Assignment Report, to either accept or reject an unsolicited assingment. */\n    StreamAssignmentReportACK: 'CE',\n    /** The PartyDetailsListRequest is used to request party detail information. */\n    PartyDetailsListRequest: 'CF',\n    /** The PartyDetailsListReport message is used to disseminate party details between counterparties. PartyDetailsListReport messages may be sent in response to a PartyDetailsListRequest message or sent unsolicited. */\n    PartyDetailsListReport: 'CG',\n    /** The purpose of this message is to initiate a margin requirement inquiry for a margin account. The inquiry may be submitted at the detail level or the summary level. It can also be used to inquire margin excess/deficit or net position information. Margin excess/deficit will provide information about the surplus or shortfall compared to the previous trading day or a more recent margin calculation. An inquiry for net position information will trigger one or more PositionReport messages instead of one or more MarginRequirementReport messages.\n        If the inquiry is made at the detail level, an Instrument block must be provided with the desired level of detail. If the inquiry is made at the summary level, the Instrument block is not provided, implying a summary request is being made. For example, if the inquiring firm specifies the Security Type of \u201CFUT\u201D in the Instrument block, then a detail report will be generated containing the margin requirements for all futures positions for the inquiring account. Similarly, if the inquiry is made at the summary level, the report will contain the total margin requirement aggregated to the margin account level. */\n    MarginRequirementInquiry: 'CH',\n    /** Used to respond to a Margin Requirement Inquiry. */\n    MarginRequirementInquiryAck: 'CI',\n    /** The Margin Requirement Report returns information about margin requirement either as on overview across all margin accounts or on a detailed level due to the inquiry making use of the optional Instrument component block. Application sequencing can be used to re-request a range of reports. */\n    MarginRequirementReport: 'CJ',\n    /** The PartyDetailsListUpdateReport(35=CK) is used to disseminate updates to party detail information. */\n    PartyDetailsListUpdateReport: 'CK',\n    /** The PartyRiskLimitsRequest message is used to request for risk information for specific parties, specific party roles or specific instruments. */\n    PartyRiskLimitsRequest: 'CL',\n    /** The PartyRiskLimitsReport message is used to communicate party risk limits. The message can either be sent as a response to the PartyRiskLimitsRequest message or can be published unsolicited. */\n    PartyRiskLimitsReport: 'CM',\n    SecurityMassStatusRequest: 'CN',\n    SecurityMassStatus: 'CO',\n    /** The AccountSummaryReport is provided by the clearinghouse to its clearing members on a daily basis. It contains margin, settlement, collateral and pay/collect data for each clearing member level account type. Clearing member account types will be described through use of the Parties component and PtysSubGrp sub-component.\n        In certain usages, the clearing members can send the AccountSummaryReport message to the clearinghouse as needed. For example, clearing members can send this message to the clearinghouse to identify the value of collateral for each customer (to satisfy CFTC Legally Segregated Operationally Commingled (LSOC) regulatory reporting obligations).\n        Clearing organizations can also send the AccountSummaryReport message to regulators to meet regulatory reporting obligations. For example, clearing organizations can use this message to submit daily reports for each clearing member (\u201CCM\u201D) by house origin and by each customer origin for all futures, options, and swaps positions, and all securities positions held in a segregated account or pursuant to a cross margining agreement, to a regulator (e.g. to the CFTC to meet Part 39, Section 39.19 reporting obligations).\n        The Parties component and PtysSubGrp sub-component are used to describe the clearing member number and account type for that report. Net settlement amount or amounts are provided using the SettlementAmountGrp component. Margin requirement amounts are provided using the MarginAmountData component.\n        The current collateral values for each valid collateral type is provided using the CollateralAmountGrp component. Likewise pay/collect information is provided using the PayCollectGrp component. Margin and pay/collect amounts can optionally be tied to markets and market segments for clearing houses that support multiple markets and market segments. */\n    AccountSummaryReport: 'CQ',\n    /** The PartyRiskLimitsUpdateReport(35=CR) is used to convey incremental changes to risk limits. It is similar to the regular report but uses the PartyRiskLimitsUpdateGrp component instead of the PartyRiskLimitsGrp component to include an update action. */\n    PartyRiskLimitsUpdateReport: 'CR',\n    /** PartyRiskLimitDefinitionRequest is used for defining new risk limits. */\n    PartyRiskLimitsDefinitionRequest: 'CS',\n    /** PartyRiskLimitDefinitionRequestAck is used for accepting (with or without changes) or rejecting the definition of risk limits. */\n    PartyRiskLimitsDefinitionRequestAck: 'CT',\n    /** The PartyEntitlementsRequest message is used to request for entitlement information for one or more party(-ies), specific party role(s), or specific instruments(s). */\n    PartyEntitlementsRequest: 'CU',\n    /** The PartyEntitlementsReport is used to report entitlements for one or more parties, party role(s), or specific instrument(s). */\n    PartyEntitlementsReport: 'CV',\n    /** The QuoteAck(35=CW) message is used to acknowledge a Quote(35=S) submittal or request to cancel an individual quote using the QuoteCancel(35=Z) message during a Quote/Negotiation dialog.\n        The QuoteAck(35=CW) is available for optional use to acknowledge the request to cancel an individual quote (QuoteCancel(35=Z) with QuoteCancelType(298) =5(Cancel specified sinqle quote)). */\n    QuoteAck: 'CW',\n    /** The PartyDetailsDefinitionRequest(35=CX) is used for defining new parties and modifying or deleting existing parties information, including the relationships between parties.\n        The recipient of the message responds with a PartyDetailsDefinitionRequestAck(35=CY) to indicate whether the request was accepted or rejected. */\n    PartyDetailsDefinitionRequest: 'CX',\n    /** The PartyDetailsDefinitionRequestAck(35=CY) is used as a response to the PartyDetailsDefinitionRequest(35=CX) message. The request can be accepted (with or without changes) or rejected. */\n    PartyDetailsDefinitionRequestAck: 'CY',\n    /** The PartyEntitlementsUpdateReport(35=CZ) is used to convey incremental changes to party entitlements. It is similar to the PartyEntitlementsReport(35=CV). This message uses the PartyEntitlementsUpdateGrp component which includes the ability to specify an update action using ListUpdateAction(1324). */\n    PartyEntitlementsUpdateReport: 'CZ',\n    /** The PartyEntitlementsDefinitionRequest(35=DA) is used for defining new entitlements, and modifying or deleting existing entitlements for the specified party(-ies).\n        The PartyEntitlementsDefinitionRequestAck(35=DB) is the response message, used to indicate whether the request was accepted or rejected. */\n    PartyEntitlementsDefinitionRequest: 'DA',\n    /** The PartyEntitlementsDefinitionRequestAck(35=DB) is used as a response to the PartyEntitlemensDefinitionRequest(35=DA) to accept (with or without changes) or reject the definition of party entitlements. */\n    PartyEntitlementsDefinitionRequestAck: 'DB',\n    /** The TradeMatchReport(35=DC) message is used by exchanges and ECN\u2019s to report matched trades to central counterparties (CCPs) as an atomic event. The message is used to express the one-to-one, one-to-many and many-to-many matches as well as implied matches in which more complex instruments can match with simpler instruments. */\n    TradeMatchReport: 'DC',\n    /** The TradeMatchReportAck(35=DD) is used to respond to theTradeMatchReport(35=DC) message. It may be used to report on the status of the request (e.g. accepting the request or rejecting the request). */\n    TradeMatchReportAck: 'DD',\n    /** PartyRiskLimitsReportAck is an optional message used as a response to the PartyRiskLimitReport(35=CM) or PartyRiskLimitUpdateReport(35=CR) messages to acknowledge or reject those messages. */\n    PartyRiskLimitsReportAck: 'DE',\n    /** PartyRiskLimitCheckRequest is used to request for approval of credit or risk limit amount intended to be used by a party in a transaction from another party that holds the information. */\n    PartyRiskLimitCheckRequest: 'DF',\n    /** PartyRiskLimitCheckRequestAck is used to acknowledge a PartyRiskLimitCheckRequest(35=DF) message and to respond whether the limit check request was approved or not. When used to accept the PartyRiskLimitCheckRequest(35=DF) message the Respondent may also include the limit amount that was approved. */\n    PartyRiskLimitCheckRequestAck: 'DG',\n    /** The PartyActionRequest message is used suspend or halt the specified party from further trading activities at the Respondent. The Respondent must respond with a PartyActionReport(35=DI) message. */\n    PartyActionRequest: 'DH',\n    /** Used to respond to the PartyActionRequest(35=DH) message, indicating whether the request has been received, accepted or rejected. Can also be used in an unsolicited manner to report party actions, e.g. reinstatements after a manual intervention out of band. */\n    PartyActionReport: 'DI',\n    /** The MassOrder(35=DJ) message can be used to add, modify or delete multiple unrelated orders with a single message. Apart from clearing related attributes, only the key order attributes for high performance trading are available.\n        The behavior of individual orders within a MassOrder(35=DJ) may vary depending upon its attributes, e.g. OrdType(40) and TimeInForce(59). Individual orders may be modified or deleted/cancelled with single order messages such as OrderCancelReplaceRequest (35=G) and OrderCancelRequest(35=F). Each of the orders in the MassOrder(35=DJ) are to be treated as stand-alone individual orders. */\n    MassOrder: 'DJ',\n    /** The mass order acknowledgement message is used to acknowledge the receipt of and the status for a MassOrder(35=DJ) message.\n        The content of the acknowledgement depends on the setting of the field OrderResponseLevel(2427) in the MassOrder(35=DJ) message. Only the order status is provided and not the immediate executions which would lead to ExecutionReport messages. */\n    MassOrderAck: 'DK',\n    /** The PositionTransferInstruction(35=DL) is sent by clearing firms to CCPs to initiate position transfers, or to accept or decline position transfers. */\n    PositionTransferInstruction: 'DL',\n    /** The PositionTransferInstructionAck(35=DM) is sent by CCPs to clearing firms to acknowledge position transfer instructions, and to report errors processing position transfer instructions.\n        The PositionTransferInstructionAck(35=DM) is intended to be a technical acknowledgment, not a business level acknowledgment which would instead be provided by the PositionTransferReport(35=DN) message. As such, TransferID(2437), a business level ID assigned by the CCP, need not be assigned when providing a technical acknowledgment to a new or rejected position transfer request. */\n    PositionTransferInstructionAck: 'DM',\n    /** The PositionTransferReport(35=DN) is sent by CCPs to clearing firms indicating of positions that are to be transferred to the clearing firm, or to report on status of the transfer to the clearing firms involved in the transfer process. */\n    PositionTransferReport: 'DN',\n    /** The MarketDataStatisticsRequest(35=DO) is used to request for statistical data. The simple form is to use an identifier (MDStatisticID(2475)) assigned by the market place which would denote a pre-defined statistical report. Alternatively, or also in addition, the request can define a number of parameters for the desired statistical information.\n        The resulting data set can be restricted to a specific market, market segment or pre-defined security list for which a single set of statistics will be returned. It is also possible to specify individual instruments or group of instruments by means of the component blocks Instrument, UndInstrmtGrp and InstrmtLegGrp.\n        Fields specified in the request are used as filter criteria to restrict the resulting data returned. */\n    MarketDataStatisticsRequest: 'DO',\n    /** The MarketDataStatisticsReport(35=DP) is used to provide unsolicited statistical information or in response to a specific request. Each report contains a set of statistics for a single entity which could be a market, a market segment, a security list or an instrument. */\n    MarketDataStatisticsReport: 'DP',\n    /** CollateralReportAck(35=DQ) is used as a response to the CollateralReport(35=BA). It can be used to reject a CollateralReport(35=BA) when the content of the report is invalid based on the business rules of the receiver. The message may also be used to acknowledge receipt of a valid CollateralReport(35=BA). */\n    CollateralReportAck: 'DQ',\n    /** The MarketDataReport(35=DR) message is used to provide delimiting references (e.g. start and end markers in a continuous broadcast) and details about the number of market data messages sent in a given distribution cycle.\n        The message can be used when distributing reference and market data on an ongoing basis to convey start and end points for synchronization. The report contains multiple message counters that are provided at the beginning or end of a cycle. */\n    MarketDataReport: 'DR',\n    /** The CrossRequest(35=DS) message is used to indicate the submission of orders or quotes that may result in a crossed trade.\n        Regulatory requirements can allow exchanges to match orders belonging to the same account, firm or other common attribute. This can include the requirement to first announce the intention to cross orders. The time permitted between the announcement and the actual cross is typically well defined and may depend on the maximum quantity announced. */\n    CrossRequest: 'DS',\n    /** The CrossRequestAck(35=DT) message is used to confirm the receipt of a CrossRequest(35=DS) message. */\n    CrossRequestAck: 'DT',\n    /** This message is used in a clearinghouse 3-party allocation model to request for AllocationInstructionAlert(35=BM) from the clearinghouse. The request may be used to obtain a one-time notification of the status of an allocation group. */\n    AllocationInstructionAlertRequest: 'DU',\n    /** This message is used in a clearinghouse 3-party allocation model to acknowledge a AllocationInstructionAlertRequest(35=DU) message for an AllocationInstructionAlert(35=BM) message from the clearinghouse. */\n    AllocationInstructionAlertRequestAck: 'DV',\n    /** TradeAggregationRequest(35=DW) is used to request that the identified trades between the initiator and respondent be aggregated together for further processing. */\n    TradeAggregationRequest: 'DW',\n    /** TradeAggregationReport(35=DX) is used to respond to the TradeAggregationRequest(35=DW) message. It provides the status of the request (e.g. accepted or rejected) and may also provide additional information supplied by the respondent. */\n    TradeAggregationReport: 'DX',\n    /** PayManagementReport(35=EA) may be used to respond to the PayManagementRequest(35=DY) message. It provides the status of the request (e.g. accepted, disputed) and may provide additional information related to the request.\n        PayManagementReport(35=EA) may also be sent unsolicited by the broker to a client. In which case the client may acknowledge and resolve disputes out-of-band or with a simple PayManagementReportAck(35=EB).\n        PayManagementReport(35=EA) may also be sent unsolicited to report the progress status of the payment itself with PayReportTransType(2804)=2 (Status).\n        It should be noted that this message, in the context of operational communication between investment managers and their brokers, is intended to agree and confirm on payment(s) to be made or received during the life of a contract. */\n    PayManagementReport: 'EA',\n    /** PayManagementReportAck(35=EB) is used as a response to the PayManagementReport(35=EA) message. It may be used to accept, reject or dispute the details of the PayManagementReport(35=EA) depending on the business rules of the receiver. This message may also be used to acknowledge the receipt of a PayManagementReport(35=EA) message. */\n    PayManagementReportAck: 'EB',\n    /** PayManagementRequest(35=DY) message is used to communicate a future or expected payment to be made or received related to a trade or contract after its settlement.\n        It should be noted that this message, in the context of operational communication between investment managers and their brokers, is intended to agree and confirm on payment(s) to be made or received during the life of a contract. */\n    PayManagementRequest: 'DY',\n    /** PayManagementRequestAck(35=DZ) is used to acknowledge the receipt of the PayManagementRequest(35=DY) message (i.e. a technical acknowledgement of receipt). Acceptance or rejection of the request is reported in the corresponding PayManagementReport(35=EA). */\n    PayManagementRequestAck: 'DZ',\n    /** SettlementStatusRequest(35=EC) is used to request for the settlement status of a trade.\n        Where possible a trade reference or identifier should be provided, and if it is not possible it is recommended that as much of the trade details are provided in the request as possible. The trade details provided are not intended to serve as filter criteria but look-up criteria. */\n    SettlementStatusRequest: 'EC',\n    /** SettlementStatusRequestAck(35=ED) is used to respond to the SettlementStatusRequest(35=EC) to acknowledge the request and provide status for the request message.\n        This message is not used for communicating settlement status of a trade (see SettlementStatusReport(35=EE)); simply a status of the request message itself. */\n    SettlementStatusRequestAck: 'ED',\n    /** SettlementStatusReport(35=EE) is a response to the SettlementStatusRequest(35=EC) to provide settlement status for the requested trade. It may also be sent unsolicited without an explicit request message by the party able to provide the settlement status for the trade identified in the report message. */\n    SettlementStatusReport: 'EE',\n    /** SettlementStatusReportAck(35=EF) is used to respond to the SettlementStatusReport(35=EE) to acknowledge or reject the report. */\n    SettlementStatusReportAck: 'EF',\n    /** SecurityRiskMetricsReport(35=EG) is used for publishing the risk metrics, valuation metrics or analytics of one or more securities, or for an option series. */\n    SecurityRiskMetricsReport: 'EG',\n    /** AlgoCertificateRequest(35=EH) is used to request algo testing certificate information for one or more algorithms.\n        This message may be used by venues to request algo test certificates from their participants using participant and algo identifiers as the request key. Absence of an identifier for an algorithm represents a request to obtain all active certificates for all algorithms from the participant.\n        This message may also be used by clients of algo trading firms to request the certified algos they are eligible to use. */\n    AlgoCertificateRequest: 'EH',\n    /** AlgoCertificateRequestAck(35=EI) is used to respond to the AlgoCertificateRequest(35=EH) to acknowledge the request and provide status for the request message.\n        This message is not used for communicating test certificates of algorithms (see AlgoCertificateReport(35=EJ)); simply a status of the request message itself. */\n    AlgoCertificateRequestAck: 'EI',\n    /** AlgoCertificateReport(35=EJ) is a response to the AlgoCertificateRequest(35=EH) to certify an algo. It may also be sent unsolicited without an explicit request message by the party able to provide certificate information for the algo identified in the report message.\n        AlgoCertificateReport(35=EJ) is for a single algorithm. A new certificate is created by the trading firm in a draft status and requires approval from a natural person who is authorized to approve certification. The final state is reached when the certificate has been successfully submitted to the venue. Timestamps may be associated with the state changes, specifically date and time of the latest change, the approval and when the certificate is to become effective. */\n    AlgoCertificateReport: 'EJ',\n    /** AlgoCertificateReportAck(35=EK) is used to respond to the AlgoCertificateReport(35=EJ) to acknowledge or reject the report message.\n        Acknowledgement messages can also be used in response to unsolicited reports. */\n    AlgoCertificateReportAck: 'EK',\n    /** TestSuiteDefinitionRequest(35=EL) is used to convey to the test system the suite of test scenarios to perform.\n        This message stages on the test system the details of a test suite to run to test the algo. The test suite contains one or more test scenarios (i.e. test cases) along with the details for each test scenario. */\n    TestSuiteDefinitionRequest: 'EL',\n    /** TestSuiteDefinitionRequestAck(35=EM) is used to respond to the TestSuiteDefinitionRequest(35= EL) to acknowledge the request and provide status for the request message. */\n    TestSuiteDefinitionRequestAck: 'EM',\n    /** TestActionRequest(35=EN) is used to manage test executions or request for testing activity state of the identified test suite.\n        This message is used to trigger the test system to start/stop the test suite staged on the test system via the TestSuiteDefinitionRequest(35=EL). */\n    TestActionRequest: 'EN',\n    /** TestActionRequestAck(35=EO) is used to respond to the TestActionRequest(35=EN) to acknowledge the request and provide status for the request message. */\n    TestActionRequestAck: 'EO',\n    /** TestActionReport(35=EP) is used to report the testing results of the identified test suite that has been executed with TestActionRequest(35=EN). In the context of algorithmic trading, the results may be used to create a certificate for the algorithm upon meeting the success criteria.\n        TestActionReport(35=EP) may be sent in an unsolicited manner when the execution of a test suite successfully completes or abnormally terminates. */\n    TestActionReport: 'EP',\n    /** This message may be used as a response to the MarketDataSnapshotFullRefresh(35=W) and MarketDataIncrementalRefresh(35=X) messages. */\n    MarketDataAck: 'EQ',\n    /** This message may be used as a response to the SecurityStatus(35=f) message. */\n    SecurityStatusAck: 'ER',\n    /** This message may be used as a response to the TradingSessionStatus(35=h) message. */\n    TradingSessionStatusAck: 'ES',\n} as const);\n\nexport type Message = (typeof Message)[keyof typeof Message];\n", "import type { Ref } from './SpecComponents.ts';\n\nexport type NumInGroup = {\n    id: number;\n    added?: string;\n    addedEP?: string;\n    updated?: string;\n    updatedEP?: string;\n    deprecated?: string;\n    deprecatedEP?: string;\n    description?: string;\n};\n\nexport interface ISpecGroups {\n    id: number;\n    name: string;\n    category: string;\n    abbrName: string;\n    added: string;\n    description?: string;\n    fieldRef?: Ref[];\n    groupRef?: Ref[];\n    componentRef?: Ref[];\n    numInGroup?: NumInGroup;\n    addedEP?: string;\n    updated?: string;\n    updatedEP?: string;\n    deprecated?: string;\n    deprecatedEP?: string;\n}\n\nexport const GROUPS: ISpecGroups[] = [\n    {\n        id: 1007,\n        name: 'LegStipulations',\n        abbrName: 'Stip',\n        added: 'FIX.4.4',\n        category: 'Common',\n        description:\n            'The LegStipulations component block has the same usage as the Stipulations component block, but for a leg instrument in a multi-legged security.',\n        fieldRef: [\n            {\n                id: 688,\n                added: 'FIX.4.4',\n                description: 'Required if NoLegStipulations >0',\n            },\n            {\n                id: 689,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 683,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 1008,\n        name: 'NestedParties',\n        abbrName: 'Pty',\n        added: 'FIX.4.3',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        category: 'Common',\n        description:\n            'The NestedParties component block is identical to the Parties Block. It is used in other component blocks and repeating groups when nesting will take place resulting in multiple occurrences of the Parties block within a single FIX message. Use of NestedParties under these conditions avoids multiple references to the Parties block within the same message which is not allowed in FIX tag/value syntax.',\n        fieldRef: [\n            {\n                id: 524,\n                added: 'FIX.4.3',\n                description:\n                    'Used to identify source of NestedPartyID. Required if NestedPartyIDSource is specified. Required if NoNestedPartyIDs > 0.',\n            },\n            {\n                id: 525,\n                added: 'FIX.4.3',\n                description:\n                    'Used to identify class source of NestedPartyID value (e.g. BIC). Required if NestedPartyID is specified. Required if NoNestedPartyIDs > 0.',\n            },\n            {\n                id: 538,\n                added: 'FIX.4.3',\n                description:\n                    'Identifies the type of NestedPartyID (e.g. Executing Broker). Required if NoNestedPartyIDs > 0.',\n            },\n            {\n                id: 2384,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2078,\n                added: 'FIX.4.4',\n                description: 'Repeating group of NestedParty sub-identifiers.',\n            },\n        ],\n        numInGroup: {\n            id: 539,\n            added: 'FIX.4.3',\n            description:\n                'Repeating group below should contain unique combinations of NestedPartyID, NestedPartyIDSource, and NestedPartyRole',\n        },\n    },\n    {\n        id: 1009,\n        name: 'NestedParties2',\n        abbrName: 'Pty',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        category: 'Common',\n        description:\n            'The NestedParties2 component block is identical to the Parties Block. It is used in other component blocks and repeating groups when nesting will take place resulting in multiple occurrences of the Parties block within a single FIX message. Use of NestedParties2 under these conditions avoids multiple references to the Parties block within the same message which is not allowed in FIX tag/value syntax.',\n        fieldRef: [\n            {\n                id: 757,\n                added: 'FIX.4.4',\n                description:\n                    'Used to identify source of Nested2PartyID. Required if Nested2PartyIDSource is specified. Required if NoNested2PartyIDs > 0.',\n            },\n            {\n                id: 758,\n                added: 'FIX.4.4',\n                description:\n                    'Used to identify class source of Nested2PartyID value (e.g. BIC). Required if Nested2PartyID is specified. Required if NoNested2PartyIDs > 0.',\n            },\n            {\n                id: 759,\n                added: 'FIX.4.4',\n                description:\n                    'Identifies the type of Nested2PartyID (e.g. Executing Broker). Required if NoNested2PartyIDs > 0.',\n            },\n            {\n                id: 2381,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2079,\n                added: 'FIX.4.4',\n                description: 'Repeating group of Nested2Party sub-identifiers.',\n            },\n        ],\n        numInGroup: {\n            id: 756,\n            added: 'FIX.4.4',\n            description:\n                'Repeating group below should contain unique combinations of Nested2PartyID, Nested2PartyIDSource, and Nested2PartyRole',\n        },\n    },\n    {\n        id: 1010,\n        name: 'NestedParties3',\n        abbrName: 'Pty',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '282',\n        category: 'Common',\n        description:\n            'The NestedParties3 component block is identical to the Parties Block. It is used in other component blocks and repeating groups when nesting will take place resulting in multiple occurrences of the Parties block within a single FIX message. Use of NestedParties3 under these conditions avoids multiple references to the Parties block within the same message which is not allowed in FIX tag/value syntax.',\n        fieldRef: [\n            {\n                id: 949,\n                added: 'FIX.4.4',\n                description:\n                    'Used to identify source of Nested3PartyID. Required if Nested3PartyIDSource is specified. Required if NoNested3PartyIDs > 0.',\n            },\n            {\n                id: 950,\n                added: 'FIX.4.4',\n                description:\n                    'Used to identify class source of Nested3PartyID value (e.g. BIC). Required if Nested3PartyID is specified. Required if NoNested3PartyIDs > 0.',\n            },\n            {\n                id: 951,\n                added: 'FIX.4.4',\n                description:\n                    'Identifies the type of Nested3PartyID (e.g. Executing Broker). Required if NoNested3PartyIDs > 0.',\n            },\n            {\n                id: 2382,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2080,\n                added: 'FIX.4.4',\n                description: 'Repeating group of Nested3Party sub-identifiers.',\n            },\n        ],\n        numInGroup: {\n            id: 948,\n            added: 'FIX.4.4',\n            description:\n                'Repeating group below should contain unique combinations of Nested3PartyID, Nested3PartyIDSource, and Nested3PartyRole',\n        },\n    },\n    {\n        id: 1012,\n        name: 'Parties',\n        abbrName: 'Pty',\n        added: 'FIX.4.3',\n        category: 'Common',\n        description:\n            'The Parties component block is used to identify and convey information on the entities both central and peripheral to the financial transaction represented by the FIX message containing the Parties Block. The Parties block allows many different types of entites to be expressed through use of the PartyRole field and identifies the source of the PartyID through the the PartyIDSource.',\n        fieldRef: [\n            {\n                id: 448,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '204',\n                description:\n                    'Required if NoPartyIDs(453) > 0.\\n\\n\\n                        Identification of the party.',\n            },\n            {\n                id: 447,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '204',\n                description:\n                    'Required if NoPartyIDs(453) > 0.\\n\\n\\n                        Used to identify classification source.',\n            },\n            {\n                id: 452,\n                added: 'FIX.4.3',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '204',\n                description:\n                    'Required if NoPartyIDs(453) > 0.\\n\\n\\n                        Identifies the type of PartyID(448).',\n            },\n            {\n                id: 2376,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2077,\n                added: 'FIX.4.4',\n                description: 'Repeating group of Party sub-identifiers.',\n            },\n        ],\n        numInGroup: {\n            id: 453,\n            added: 'FIX.4.3',\n            description:\n                'Repeating group below should contain unique combinations of PartyID, PartyIDSource, and PartyRole',\n        },\n    },\n    {\n        id: 1014,\n        name: 'PositionAmountData',\n        abbrName: 'Amt',\n        added: 'FIX.4.4',\n        category: 'Common',\n        description:\n            'The PositionAmountData component block is used to report netted amounts associated with position quantities. In the listed derivatives market the amount is generally expressing a type of futures variation or option premium. In the equities market this may be the net pay or collect on a given position.',\n        fieldRef: [\n            {\n                id: 707,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 708,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2096,\n                added: 'FIX.5.0SP2',\n                addedEP: '162',\n                description: 'Used when the PosAmt(708) value corresponds to a specific stream in of a swap.',\n            },\n            {\n                id: 1055,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 2937,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2097,\n                added: 'FIX.5.0SP2',\n                addedEP: '162',\n            },\n            {\n                id: 2098,\n                added: 'FIX.5.0SP2',\n                addedEP: '162',\n            },\n            {\n                id: 1585,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 2099,\n                added: 'FIX.5.0SP2',\n                addedEP: '162',\n            },\n            {\n                id: 2100,\n                added: 'FIX.5.0SP2',\n                addedEP: '162',\n            },\n            {\n                id: 2876,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n            {\n                id: 2877,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n        ],\n        numInGroup: {\n            id: 753,\n            added: 'FIX.4.4',\n            description: 'Number of Position Amount entries',\n        },\n    },\n    {\n        id: 1015,\n        name: 'PositionQty',\n        abbrName: 'Qty',\n        added: 'FIX.4.4',\n        category: 'Common',\n        description:\n            'The PositionQty component block specifies the various types of position quantity in the position life-cycle including start-of-day, intraday, trade, adjustments, and end-of-day position quantities. Quantities are expressed in terms of long and short quantities.',\n        fieldRef: [\n            {\n                id: 703,\n                added: 'FIX.4.4',\n                description: 'Required if NoPositions > 1',\n            },\n            {\n                id: 704,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 705,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1654,\n                added: 'FIX.5.0SP2',\n                addedEP: '103',\n                description: 'Short quantity that is considered covered, e.g. used for short option position',\n            },\n            {\n                id: 706,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 976,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Date associated with the quantity being reported',\n            },\n            {\n                id: 1836,\n                added: 'FIX.5.0SP2',\n                addedEP: '140',\n            },\n            {\n                id: 1835,\n                added: 'FIX.5.0SP2',\n                addedEP: '140',\n            },\n            {\n                id: 2936,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1008,\n                added: 'FIX.4.4',\n                description:\n                    'Optional repeating group - used to associate or distribute position to a specific party other than the party that currently owns the position.',\n            },\n        ],\n        numInGroup: {\n            id: 702,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 1017,\n        name: 'SettlParties',\n        abbrName: 'Pty',\n        added: 'FIX.4.4',\n        category: 'Common',\n        description:\n            'The SettlParties component block is used in a similar manner as Parties Block within the context of settlement instruction messages to distinguish between parties involved in the settlement and parties who are expected to execute the settlement process.',\n        fieldRef: [\n            {\n                id: 782,\n                added: 'FIX.4.4',\n                description:\n                    'Used to identify source of SettlPartyID. Required if SettlPartyIDSource is specified. Required if NoSettlPartyIDs > 0.',\n            },\n            {\n                id: 783,\n                added: 'FIX.4.4',\n                description:\n                    'Used to identify class source of SettlPartyID value (e.g. BIC). Required if SettlPartyID is specified. Required if NoSettlPartyIDs > 0.',\n            },\n            {\n                id: 784,\n                added: 'FIX.4.4',\n                description:\n                    'Identifies the type of SettlPartyID (e.g. Executing Broker). Required if NoSettlPartyIDs > 0.',\n            },\n            {\n                id: 2389,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2076,\n                added: 'FIX.4.4',\n                description: 'Repeating group of SettlParty sub-identifiers.',\n            },\n        ],\n        numInGroup: {\n            id: 781,\n            added: 'FIX.4.4',\n            description:\n                'Repeating group below should contain unique combinations of SettlPartyID, SettlPartyIDSource, and SettlPartyRole',\n        },\n    },\n    {\n        id: 1019,\n        name: 'Stipulations',\n        abbrName: 'Stip',\n        added: 'FIX.4.3',\n        category: 'Common',\n        description:\n            'The Stipulations component block is used in Fixed Income to provide additional information on a given security. These additional information are usually not considered static data information.',\n        fieldRef: [\n            {\n                id: 233,\n                added: 'FIX.4.3',\n                description: 'Required if NoStipulations >0',\n            },\n            {\n                id: 234,\n                added: 'FIX.4.3',\n            },\n        ],\n        numInGroup: {\n            id: 232,\n            added: 'FIX.4.3',\n            description: '',\n        },\n    },\n    {\n        id: 1020,\n        name: 'TrdRegTimestamps',\n        abbrName: 'TrdRegTS',\n        added: 'FIX.4.4',\n        category: 'Common',\n        description:\n            'The TrdRegTimestamps component block is used to express timestamps for an order or trade that are required by regulatory agencies These timesteamps are used to identify the timeframes for when an order or trade is received on the floor, received and executed by the broker, etc.',\n        fieldRef: [\n            {\n                id: 769,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '253',\n                description: 'Required if NoTrdRegTimestamps(768) > 0.',\n            },\n            {\n                id: 770,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '253',\n                description: 'Required if NoTrdRegTimestamps(768) > 0.',\n            },\n            {\n                id: 771,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2839,\n                added: 'FIX.5.0SP2',\n                addedEP: '253',\n            },\n            {\n                id: 1033,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '253',\n            },\n            {\n                id: 1034,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1035,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1727,\n                added: 'FIX.5.0SP2',\n                addedEP: '135',\n            },\n            {\n                id: 2831,\n                added: 'FIX.5.0SP2',\n                addedEP: '253',\n                description: 'May be used with TrdRegTimestampType(770)=34 (Reference time for NBBO).',\n            },\n            {\n                id: 2832,\n                added: 'FIX.5.0SP2',\n                addedEP: '253',\n                description: 'May be used with TrdRegTimestampType(770)=34 (Reference time for NBBO).',\n            },\n            {\n                id: 2833,\n                added: 'FIX.5.0SP2',\n                addedEP: '253',\n                description: 'May be used with TrdRegTimestampType(770)=34 (Reference time for NBBO).',\n            },\n            {\n                id: 2834,\n                added: 'FIX.5.0SP2',\n                addedEP: '253',\n                description: 'May be used with TrdRegTimestampType(770)=34 (Reference time for NBBO).',\n            },\n        ],\n        numInGroup: {\n            id: 768,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 1023,\n        name: 'UnderlyingStipulations',\n        abbrName: 'Stip',\n        added: 'FIX.4.4',\n        category: 'Common',\n        description:\n            'The UnderlyingStipulations component block has the same usage as the Stipulations component block, but for an underlying security.',\n        fieldRef: [\n            {\n                id: 888,\n                added: 'FIX.4.4',\n                description: 'Required if NoUnderlyingStips >0',\n            },\n            {\n                id: 889,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 887,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 1026,\n        name: 'UnderlyingAmount',\n        abbrName: 'UndDlvAmt',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'PositionMaintenance',\n        description:\n            'The UnderlyingAmount component block is used to supply the underlying amounts, dates, settlement status and method for derivative positions.',\n        fieldRef: [\n            {\n                id: 985,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Amount to pay in order to receive the underlying instrument.',\n            },\n            {\n                id: 986,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Amount to collect in order to deliver the underlying instrument.',\n            },\n            {\n                id: 987,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Date the underlying instrument will settle. Used for derivatives that deliver into more than one underlying instrument. Settlement dates can vary across underlying instruments.',\n            },\n            {\n                id: 988,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Settlement status of the underlying instrument. Used for derivatives that deliver into more than one underlying instrument. Settlement can be delayed for an underlying instrument.',\n            },\n        ],\n        numInGroup: {\n            id: 984,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 1027,\n        name: 'ExpirationQty',\n        abbrName: 'Qty',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'PositionMaintenance',\n        description: 'The ExpirationQty component block identified the expiration quantities and type of expiration.',\n        fieldRef: [\n            {\n                id: 982,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Required if NoExpiration > 1',\n            },\n            {\n                id: 983,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 981,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 1028,\n        name: 'SideTrdRegTS',\n        abbrName: 'TrdRegTS',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '141',\n        category: 'TradeCapture',\n        description:\n            'The SideTrdRegTS component block is used to convey trading or regulatory timestamps associated with one side of a multi-sided trade event.',\n        fieldRef: [\n            {\n                id: 1012,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1013,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1014,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1016,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 1031,\n        name: 'RootParties',\n        abbrName: 'Pty',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        category: 'Common',\n        description:\n            'The RootParties component block is a version of the Parties component block used to provide root information regarding the owning and entering parties of a transaction.',\n        fieldRef: [\n            {\n                id: 1117,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '294',\n                description: 'Required if NoRootPartyIDs(1116) > 0.\\n\\nIdentification of the party.',\n            },\n            {\n                id: 1118,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '294',\n                description:\n                    'Required if NoRootPartyIDs(1116) > 0.\\n\\n\\n                        Used to identify class source of the RootPartyID(1117) value (e.g. BIC).',\n            },\n            {\n                id: 1119,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '294',\n                description:\n                    'Required if NoRootPartyIDs(1116) > 0.\\n\\n\\n                        Identifies the role of the RootPartyID(1117) (e.g. Executing Broker).',\n            },\n            {\n                id: 2388,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2097,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Repeating group of RootParty sub-identifiers.',\n            },\n        ],\n        numInGroup: {\n            id: 1116,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description:\n                'Repeating group below should contain unique combinations of RootPartyID, RootPartyIDSource, and RootPartyRole',\n        },\n    },\n    {\n        id: 1032,\n        name: 'InstrumentParties',\n        abbrName: 'Pty',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        category: 'Common',\n        description:\n            'The use of this component block is restricted to instrument definition only and is not permitted to contain transactional information. Only a specified subset of party roles will be supported within the InstrumentParty block.',\n        fieldRef: [\n            {\n                id: 1019,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '204',\n                description:\n                    'Required if NoInstrumentParties(1018) > 0.\\n\\n\\n                        Identification of the party.',\n            },\n            {\n                id: 1050,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '204',\n                description:\n                    'Required if NoInstrumentParties(1018) > 0.\\n\\n\\n                        Used to identify classification source.',\n            },\n            {\n                id: 1051,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '204',\n                description:\n                    'Required if NoInstrumentParties(1018) > 0.\\n\\n\\n                        Identifies the type of InstrumentPartyID(1019).',\n            },\n            {\n                id: 2378,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2093,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description: 'Repeating group of party sub-identifiers.',\n            },\n        ],\n        numInGroup: {\n            id: 1018,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '169',\n            description:\n                'Repeating group below should contain unique combinations of InstrumentPartyID(1019), InstrumentPartyIDSource(1050) and InstrumentPartyRole(1051).',\n        },\n    },\n    {\n        id: 1033,\n        name: 'UndlyInstrumentParties',\n        abbrName: 'Pty',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        category: 'Common',\n        description:\n            'The use of this component block is restricted to instrument definition only and is not permitted to contain transactional information. Only a specified subset of party roles will be supported within the InstrumentParty block.',\n        fieldRef: [\n            {\n                id: 1059,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description:\n                    'Used to identify the source of PartyID. Required if UnderlyingInstrumentPartyIDSource(1060) is specified. Required if NoUndlyInstrumentParties(1058) > 0.',\n            },\n            {\n                id: 1060,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description:\n                    'Used to identify class source of UnderlyingInstrumentPartyID(1059) value (e.g. BIC). Required if UnderlyingInstrumentPartyID(1059) is specified. Required if NoUndlyInstrumentParties(1058) > 0.',\n            },\n            {\n                id: 1061,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description:\n                    'Identifies the type of UnderlyingInstrumentPartyID(1059) (e.g. Executing Broker). Required if NoUndlyInstrumentParties(1058) > 0.',\n            },\n            {\n                id: 2391,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2096,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description: 'Repeating group of party sub-identifiers.',\n            },\n        ],\n        numInGroup: {\n            id: 1058,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '169',\n            description:\n                'Repeating group below should contain unique combinations of UnderlyingInstrumentPartyID(1059), UnderlyingInstrumentPartyIDSource(1060) and UnderlyingInstrumentPartyRole(1061).',\n        },\n    },\n    {\n        id: 1059,\n        name: 'NestedParties4',\n        abbrName: 'Pty',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        description:\n            'The NestedParties4 component block is identical to the Parties Block. It is used in other component blocks and repeating groups when nesting will take place resulting in multiple occurrences of the Parties block within a single FIX message. Use of NestedParties4 under these conditions avoids multiple references to the Parties block within the same message which is not allowed in FIX tag/value syntax.',\n        fieldRef: [\n            {\n                id: 1415,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Used to identify source of Nested4PartyID. Required if Nested4PartyIDSource is specified. Required if NoNested4PartyIDs > 0.',\n            },\n            {\n                id: 1416,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Used to identify class source of Nested4PartyID value (e.g. BIC). Required if Nested4PartyID is specified. Required if NoNested4PartyIDs > 0.',\n            },\n            {\n                id: 1417,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Identifies the type of Nested4PartyID (e.g. Executing Broker). Required if NoNested4PartyIDs > 0.',\n            },\n            {\n                id: 2383,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2142,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1414,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            updated: 'FIX.5.0SP1',\n            updatedEP: '95',\n            description:\n                'Repeating group below should contain unique combinations of Nested4PartyID, Nested4PartyIDSource, and Nested4PartyRole.',\n        },\n    },\n    {\n        id: 1062,\n        name: 'RateSource',\n        abbrName: 'RtSrc',\n        added: 'FIX.5.0SP1',\n        addedEP: '82',\n        updated: 'FIX.Latest',\n        updatedEP: '293',\n        category: 'Common',\n        description:\n            'The RateSource component is used to identify the source for the rate information as required by the trade for pricing reasons.\\n\\nIn FX trading of forwards and swaps, the rate of the forward portion is determined at an agreed-upon date and time in the future when the spot rate for the settlement is obtained, commonly referred to as the \"fixing\". The agreed upon fixing information typically includes the reference source to obtain the information, the source for the benchmark spot rate (if different from the reference source), the local date, time and business center for the publishing of the benchmark rate.',\n        fieldRef: [\n            {\n                id: 1446,\n                added: 'FIX.5.0SP1',\n                addedEP: '82',\n                description: 'Required if NoRateSource(1445) > 0',\n            },\n            {\n                id: 1447,\n                added: 'FIX.5.0SP1',\n                addedEP: '82',\n                description: 'Required if NoRateSources(1445) > 0',\n            },\n            {\n                id: 1448,\n                added: 'FIX.5.0SP1',\n                addedEP: '82',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '247',\n                description: 'May be used when RateSource(1446)=99 (Other)',\n            },\n            {\n                id: 2412,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 2796,\n                added: 'FIX.5.0SP2',\n                addedEP: '247',\n                deprecated: 'FIX.Latest',\n                deprecatedEP: '293',\n            },\n            {\n                id: 3072,\n                added: 'FIX.Latest',\n                addedEP: '293',\n            },\n            {\n                id: 3073,\n                added: 'FIX.Latest',\n                addedEP: '293',\n            },\n            {\n                id: 3074,\n                added: 'FIX.Latest',\n                addedEP: '293',\n                description:\n                    'Conditionally required when FXBenchmarkTime(3075) or FXBenchmarkBusinessCenter(3076) is specified.',\n            },\n            {\n                id: 3075,\n                added: 'FIX.Latest',\n                addedEP: '293',\n                description:\n                    'Conditionally required when FXBenchmarkDate(3074) or FXBenchmarkBusinessCenter(3076) is specified.',\n            },\n            {\n                id: 3076,\n                added: 'FIX.Latest',\n                addedEP: '293',\n                description: 'Conditionally required when FXBenchmarkDate(3074) or FXBenchmarkTime(3075) is specified.',\n            },\n        ],\n        numInGroup: {\n            id: 1445,\n            added: 'FIX.5.0SP1',\n            addedEP: '82',\n            description: '',\n        },\n    },\n    {\n        id: 1063,\n        name: 'TargetParties',\n        abbrName: 'TgtPty',\n        added: 'FIX.5.0SP1',\n        addedEP: '85',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1462,\n                added: 'FIX.5.0SP1',\n                addedEP: '85',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '189',\n                description:\n                    'Required if NoTargetPartyIDs(1461) > 0.\\n\\n\\n                        Used to identify the party targeted for the action specified in the message.',\n            },\n            {\n                id: 1463,\n                added: 'FIX.5.0SP1',\n                addedEP: '85',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '189',\n                description: 'Used to identify source of target party identifier.',\n            },\n            {\n                id: 1464,\n                added: 'FIX.5.0SP1',\n                addedEP: '85',\n                updated: 'FIX.Latest',\n                updatedEP: '300',\n                description: 'Used to identify the role of target party identifier.',\n            },\n            {\n                id: 1818,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '189',\n                description: 'Used to further qualify the role of the target party role.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2247,\n                added: 'FIX.5.0SP2',\n                addedEP: '189',\n                description: 'Repeating group of target party sub-identifiers.',\n            },\n        ],\n        numInGroup: {\n            id: 1461,\n            added: 'FIX.5.0SP1',\n            addedEP: '85',\n            description:\n                'Repeating group below should contain unique combinations of TargetPartyID, TargetPartyIDSource, and TargetPartyRole.',\n        },\n    },\n    {\n        id: 1064,\n        name: 'MatchingInstructions',\n        abbrName: 'MtchgInst',\n        added: 'FIX.5.0SP2',\n        addedEP: '99',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1625,\n                added: 'FIX.5.0SP2',\n                addedEP: '99',\n                description: 'Required if NoMatchInst > 0.',\n            },\n            {\n                id: 1673,\n                added: 'FIX.5.0SP2',\n                addedEP: '99',\n            },\n            {\n                id: 1626,\n                added: 'FIX.5.0SP2',\n                addedEP: '99',\n                description: 'Required if NoMatchInst > 0.',\n            },\n            {\n                id: 1627,\n                added: 'FIX.5.0SP2',\n                addedEP: '99',\n                description: 'Required if NoMatchInst > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1624,\n            added: 'FIX.5.0SP2',\n            addedEP: '99',\n            description: '',\n        },\n    },\n    {\n        id: 1065,\n        name: 'LimitAmts',\n        abbrName: 'LmtAmts',\n        added: 'FIX.5.0SP2',\n        addedEP: '100',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1631,\n                added: 'FIX.5.0SP2',\n                addedEP: '100',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '180',\n                description: 'Required when NoLimitAmts > 0',\n            },\n            {\n                id: 1632,\n                added: 'FIX.5.0SP2',\n                addedEP: '100',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '180',\n                description:\n                    'Either LastLimitAmt(1632) or LimitAmtRemaining(1633) or LimitUtilizationAmt(2394) must be specified when NoLimitAmts > 0.',\n            },\n            {\n                id: 1633,\n                added: 'FIX.5.0SP2',\n                addedEP: '100',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '180',\n                description:\n                    'Either LastLimitAmt(1632) or LimitAmtRemaining(1633) or LimitUtilizationAmt(2394) must be specified when NoLimitAmts > 0.',\n            },\n            {\n                id: 2394,\n                added: 'FIX.5.0SP2',\n                addedEP: '180',\n                description:\n                    'Either LastLimitAmt(1632) or LimitAmtRemaining(1633) or LimitUtilizationAmt(2394) must be specified when NoLimitAmts > 0.',\n            },\n            {\n                id: 2395,\n                added: 'FIX.5.0SP2',\n                addedEP: '180',\n            },\n            {\n                id: 1634,\n                added: 'FIX.5.0SP2',\n                addedEP: '100',\n            },\n            {\n                id: 2935,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2396,\n                added: 'FIX.5.0SP2',\n                addedEP: '180',\n            },\n        ],\n        numInGroup: {\n            id: 1630,\n            added: 'FIX.5.0SP2',\n            addedEP: '100',\n            updated: 'FIX.Latest',\n            updatedEP: '271',\n            description: 'Number of limit amount occurrences.',\n        },\n    },\n    {\n        id: 1066,\n        name: 'RelatedInstrumentGrp',\n        abbrName: 'ReltdInstrmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '103',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '201',\n        category: 'Common',\n        description:\n            'The RelatedInstrumentGrp is a repeating component at the same hierarchical level as the Instrument component, describing relationships and linkages between the Instrument, UnderlyingInstrument and InstrumentLeg entries. If all instances of the UnderlyingInstrument in the message are true underliers of the Instrument then the RelatedInstrumentGrp component is not needed. If any instance of the UnderlyingInstrument has a different relationship, e.g. underlier of an InstrumentLeg, stream, equity equivalent or nearest exchange-traded contract or there are multiple instances of InstrumentLeg, then an entry for every relationship should be included in this component. When the RelatedInstrumentGrp appears within a repeating group, each entry only apply to the Instrument component at the same hierarchical level.\\n\\nIn messages, such as Email(35=C) and News(35=B), where Instrument and the InstrumentLeg are within their repeating groups, the RelatedInstrumentGrp component may be used to link legs and underliers to their appropriate base Instrument.\\n\\nFor simple relationships such as identifying a \"hedges for\" security the entry simply defines the symbol or identifier of an externally known security. For relationships within strategies and swaps the entry refers up through one of the \"related to\" fields to the Instrument, InstrumentLeg, UnderlyingInstrument, stream or dividend period with which the related security has correlation. It then points down through RelatedSecurityID(1650) or RelatedSymbol(1649) to an UnderlyingInstrument instance in the current message defining the related security. The nature of the relationship is given in RelatedInstrumentType(1648).',\n        fieldRef: [\n            {\n                id: 1648,\n                added: 'FIX.5.0SP2',\n                addedEP: '103',\n                description: 'Conditionally required when NoRelatedInstruments > 0',\n            },\n            {\n                id: 1649,\n                added: 'FIX.5.0SP2',\n                addedEP: '103',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '187',\n                description:\n                    'Either RelatedSymbol(1649) or RelatedSecurityID(1650) must be specified.\\n\\n\\n                        For RelatedInstrumentType(1648)=1 (\"hedges for\" instrument) this would be the instrument being used to offset the option Instrument.\\n\\n\\n                        If one of the \"related to\" fields is specified, this is the UnderlyingSymbol(311) of an underlying instrument defining the related security in the current message.',\n            },\n            {\n                id: 1650,\n                added: 'FIX.5.0SP2',\n                addedEP: '103',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '187',\n                description:\n                    'Either RelatedSymbol(1649) or RelatedSecurityID(1650) must be specified.\\n\\n\\n                        If one of the \"related to\" fields is specified, this is the UnderlyingSecurityID(309) of an underlying instrument defining the related security in the current message.',\n            },\n            {\n                id: 1651,\n                added: 'FIX.5.0SP2',\n                addedEP: '103',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '187',\n                description: 'Conditionally required when RelatedSecurityID(1650) is specified.',\n            },\n            {\n                id: 1652,\n                added: 'FIX.5.0SP2',\n                addedEP: '103',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '187',\n                description:\n                    'May be omitted if RelatedSecurityID(1650) or RelatedSymbol(1649) refers to an underlying instrument in the current message.',\n            },\n            {\n                id: 1653,\n                added: 'FIX.5.0SP2',\n                addedEP: '103',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '187',\n                description:\n                    'May be omitted if RelatedSecurityID(1650) or RelatedSymbol(1649) refers to an underlying instrument in the current message.',\n            },\n            {\n                id: 2413,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description:\n                    'Mutually exclusive with RelatedToStreamXIDRef(2415) and RelatedToDividendPeriodXIDRef(2417). If correlation is with the security in Instrument component then all \"related to\" fields may be omitted.',\n            },\n            {\n                id: 2414,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Conditionally required when RelatedToSecurityID(2413) is specified.',\n            },\n            {\n                id: 2415,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description:\n                    'Mutually exclusive with RelatedToSecurityID(2413) and RelatedToDividendPeriodXIDRef(2417). If correlation is with the security in Instrument component then all \"related to\" fields may be omitted.',\n            },\n            {\n                id: 2417,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Mutually exclusive with RelatedToSecurityID(2413) and RelatedToStreamXIDRef(2415). If correlation is with the security in Instrument component then all \"related to\" fields may be omitted.',\n            },\n        ],\n        numInGroup: {\n            id: 1647,\n            added: 'FIX.5.0SP2',\n            addedEP: '103',\n            description: '',\n        },\n    },\n    {\n        id: 1067,\n        name: 'ThrottleParamsGrp',\n        abbrName: 'ThrttlPrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1611,\n                added: 'FIX.5.0SP2',\n                addedEP: '116',\n                description: 'Required when NoThrottles > 0.',\n            },\n            {\n                id: 1612,\n                added: 'FIX.5.0SP2',\n                addedEP: '116',\n                description: 'Required when NoThrottles > 0.',\n            },\n            {\n                id: 1613,\n                added: 'FIX.5.0SP2',\n                addedEP: '116',\n                description:\n                    'Number of messages per time interval, or number of outstanding requests. Required when NoThrottles > 0.',\n            },\n            {\n                id: 1614,\n                added: 'FIX.5.0SP2',\n                addedEP: '116',\n                description:\n                    'Can be used only when ThrottleType = Inbound Rate. Indicates, along with ThrottleTimeUnit, the interval of time in which ThrottleNoMsgs may be sent. Default is 1.',\n            },\n            {\n                id: 1615,\n                added: 'FIX.5.0SP2',\n                addedEP: '116',\n                description:\n                    'Can be used only when ThrottleType = Inbound Rate. Indicates, along with ThrottleTimeUnit, the interval of time in which ThrottleNoMsgs may be sent. Default is Seconds.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1068,\n                added: 'FIX.5.0SP2',\n                addedEP: '116',\n                description:\n                    'Indicates MsgType values that this throttle counts. If not specified, the definition is implicit based upon bilateral agreement.',\n            },\n        ],\n        numInGroup: {\n            id: 1610,\n            added: 'FIX.5.0SP2',\n            addedEP: '116',\n            description: 'Indicates number of throttles to follow.',\n        },\n    },\n    {\n        id: 1068,\n        name: 'ThrottleMsgTypeGrp',\n        abbrName: 'ThrttlMsgTyp',\n        added: 'FIX.5.0SP2',\n        addedEP: '116',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1619,\n                added: 'FIX.5.0SP2',\n                addedEP: '116',\n                description: 'Required when NoThrottleMsgType > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1618,\n            added: 'FIX.5.0SP2',\n            addedEP: '116',\n            description: '',\n        },\n    },\n    {\n        id: 1070,\n        name: 'CommissionDataGrp',\n        abbrName: 'CommData',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        category: 'Common',\n        description:\n            'The CommissionDataGrp component block is used to carry commission information such as the type of commission and the rate. It provides an alternative to the CommissionData component if multiple commissions or enhanced attributes are needed.\\n\\nThe CommissionLegRefID(2649) field is used to reference the LegID(1788) within the InstrumentLeg component, allowing for specifying instrument leg specific commission values when a multilegged security is fully expressed in the same message. This component is not intended for non-leg instances of the CommissionDataGrp component to represent aggregated values of the leg instances within the component when both leg and non-leg instances are included.',\n        fieldRef: [\n            {\n                id: 2640,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description:\n                    'Required if NoCommissions(2639) > 0.\\n\\n\\n                        If the commission is based on a percentage of trade quantity or a factor of \"unit of measure\", CommissionRate(2646) and CommissionUnitOfMeasure(2644) may also be specified as appropriate.',\n            },\n            {\n                id: 2641,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description: 'Required if NoCommissions(2639) > 0.',\n            },\n            {\n                id: 2725,\n                added: 'FIX.5.0SP2',\n                addedEP: '233',\n            },\n            {\n                id: 2642,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description: 'Required if NoCommissions(2639) > 0.',\n            },\n            {\n                id: 2643,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n            },\n            {\n                id: 2923,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2644,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n            },\n            {\n                id: 2645,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n            },\n            {\n                id: 2924,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2646,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n            },\n            {\n                id: 2647,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n            },\n            {\n                id: 2648,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description: 'If specified, CommissionSharedIndicator(2647) must be set to \"Y\".',\n            },\n            {\n                id: 2649,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description:\n                    'This field may be used for multi-leg trades sent as a single message to indicate that the entry applies only to a specific leg.',\n            },\n            {\n                id: 2650,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n            },\n            {\n                id: 2651,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description: 'Must be set if EncodedCommissionDesc(2652) is specified and must immediately precede it.',\n            },\n            {\n                id: 2652,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description:\n                    'Encoded (non-ASCII characters) representation of the CommissionDesc(2650) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        numInGroup: {\n            id: 2639,\n            added: 'FIX.5.0SP2',\n            addedEP: '204',\n            description: '',\n        },\n    },\n    {\n        id: 1071,\n        name: 'AllocCommissionDataGrp',\n        abbrName: 'CommData',\n        added: 'FIX.5.0SP2',\n        addedEP: '204',\n        category: 'Common',\n        description:\n            'The AllocCommissionDataGrp component block is used to carry commission information such as the type of commission and the rate at the allocation level. It provides a means to express commission applicable for the specified allocation account.\\n\\nIn messages where the CommissionDataGrp or CommissionData component exists at a \"higher\" level in the message than the allocation, those components should only be used for overall commission.\\n\\nThe AllocCommissionLegRefID(2663) field is used to reference the LegID(1788) within the InstrumentLeg component, allowing for specifying instrument leg specific commission values when a multilegged security is fully expressed in the same message.',\n        fieldRef: [\n            {\n                id: 2654,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description:\n                    'Required if NoAllocCommissions(2653) > 0.\\n\\n\\n                        If the commission is based on a percentage of trade quantity or a factor of \"unit of measure\", AllocCommissionRate(2660) and AllocCommissionUnitOfMeasure(2658) may also be specified as appropriate.',\n            },\n            {\n                id: 2655,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description: 'Required if NoAllocCommissions(2653) > 0.',\n            },\n            {\n                id: 2726,\n                added: 'FIX.5.0SP2',\n                addedEP: '233',\n            },\n            {\n                id: 2656,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description: 'Required if NoAllocCommissions(2653) > 0.',\n            },\n            {\n                id: 2657,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n            },\n            {\n                id: 2925,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2658,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n            },\n            {\n                id: 2659,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n            },\n            {\n                id: 2926,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2660,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n            },\n            {\n                id: 2661,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n            },\n            {\n                id: 2662,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description: 'If specified, AllocCommissionSharedIndicator(2661) must be set to \"Y\".',\n            },\n            {\n                id: 2663,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description:\n                    'This field may be used for multi-leg trades sent as a single message to indicate that the entry applies only to a specific leg.',\n            },\n            {\n                id: 2664,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n            },\n            {\n                id: 2665,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description:\n                    'Must be set if EncodedAllocCommissionDesc(2666) is specified and must immediately precede it.',\n            },\n            {\n                id: 2666,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description:\n                    'Encoded (non-ASCII characters) representation of the AllocCommissionDesc(2664) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        numInGroup: {\n            id: 2653,\n            added: 'FIX.5.0SP2',\n            addedEP: '204',\n            description: '',\n        },\n    },\n    {\n        id: 1072,\n        name: 'TrdRegPublicationGrp',\n        abbrName: 'TrdRegPublctn',\n        added: 'FIX.5.0SP2',\n        addedEP: '216',\n        category: 'Common',\n        description:\n            'The TrdRegPublicationGrp component is used to express trade publication reasons that are required by regulatory agencies. Reasons may include deferrals, exemptions, waivers, etc.\\n\\nUnder the MiFID II regulation, this is used for indicating the reduction of pre- (\"waivers\") or post-trade transparency. In cases where a trade has been made outside an open order book venue or publication of trade data has been deferred, pertinent reason indicators are set in the TrdRegPublicationReason(2670) to further qualify the TrdRegPublicationType(2669).',\n        fieldRef: [\n            {\n                id: 2669,\n                added: 'FIX.5.0SP2',\n                addedEP: '216',\n                description: 'Required if NoTrdRegPublications(2668) > 0.',\n            },\n            {\n                id: 2670,\n                added: 'FIX.5.0SP2',\n                addedEP: '216',\n            },\n        ],\n        numInGroup: {\n            id: 2668,\n            added: 'FIX.5.0SP2',\n            addedEP: '216',\n            description: '',\n        },\n    },\n    {\n        id: 1073,\n        name: 'OrderAttributeGrp',\n        abbrName: 'OrdAttrib',\n        added: 'FIX.5.0SP2',\n        addedEP: '222',\n        category: 'Common',\n        description:\n            'The OrderAttributeGrp component provides additional attributes about the order. Attributes included in this component are primarily \"indicators\" that may be associated with regulatory requirements and are typically not part of normal trading activities.',\n        fieldRef: [\n            {\n                id: 2594,\n                added: 'FIX.5.0SP2',\n                addedEP: '222',\n                description: 'Required if NoOrderAttributes(2593) > 0.',\n            },\n            {\n                id: 2595,\n                added: 'FIX.5.0SP2',\n                addedEP: '222',\n                description: 'Required if NoOrderAttributes(2593) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 2593,\n            added: 'FIX.5.0SP2',\n            addedEP: '222',\n            description: '',\n        },\n    },\n    {\n        id: 1074,\n        name: 'PriceQualifierGrp',\n        abbrName: 'PxQual',\n        added: 'FIX.5.0SP2',\n        addedEP: '230',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        category: 'Common',\n        description:\n            'The PriceQualifierGrp component clarifies the composition of the price when standard market practice for the security calls for a price that is atypical when traded in other markets, or when a price can be expressed in more than one way.',\n        fieldRef: [\n            {\n                id: 2710,\n                added: 'FIX.5.0SP2',\n                addedEP: '230',\n                description: 'Required if NoPriceQualifiers(2709) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 2709,\n            added: 'FIX.5.0SP2',\n            addedEP: '230',\n            description: '',\n        },\n    },\n    {\n        id: 1076,\n        name: 'MatchExceptionGrp',\n        abbrName: 'MtchExcptn',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        category: 'Common',\n        description:\n            'The MatchExceptionGrp component details the matching exceptions and variances identified during the matching process based on the defined matching criteria and tolerances.',\n        fieldRef: [\n            {\n                id: 2773,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n                description: 'Required if NoMatchExceptions(2772) > 0.',\n            },\n            {\n                id: 2774,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n                description: 'Required if NoMatchExceptions(2772) > 0.',\n            },\n            {\n                id: 2775,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n            },\n            {\n                id: 2776,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n            },\n            {\n                id: 2777,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n            },\n            {\n                id: 2778,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n            },\n            {\n                id: 2779,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n            },\n            {\n                id: 2780,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n            },\n            {\n                id: 2797,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n                description:\n                    'Must be set if EncodedMatchExceptionText(2780) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2798,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n                description:\n                    'Encoded (non-ASCII characters) representation of the MatchExceptionText(2780) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        numInGroup: {\n            id: 2772,\n            added: 'FIX.5.0SP2',\n            addedEP: '246',\n            description: '',\n        },\n    },\n    {\n        id: 1077,\n        name: 'MatchingDataPointGrp',\n        abbrName: 'MtchDataPnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '246',\n        category: 'Common',\n        description:\n            'The MatchingDataPointGrp component details all the trade attributes and tolerances used for trade matching.',\n        fieldRef: [\n            {\n                id: 2782,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n                description: 'Required if NoMatchingDataPoints(2781) > 0.',\n            },\n            {\n                id: 2783,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n                description: 'Required if NoMatchingDataPoints(2781) > 0.',\n            },\n            {\n                id: 2784,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n                description: 'Required if NoMatchingDataPoints(2781) > 0.',\n            },\n            {\n                id: 2785,\n                added: 'FIX.5.0SP2',\n                addedEP: '246',\n            },\n        ],\n        numInGroup: {\n            id: 2781,\n            added: 'FIX.5.0SP2',\n            addedEP: '246',\n            description: '',\n        },\n    },\n    {\n        id: 1078,\n        name: 'OrderAggregationGrp',\n        abbrName: 'OrdAggrtn',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        category: 'Common',\n        description: 'Identifies the orders being aggregated together.',\n        fieldRef: [\n            {\n                id: 11,\n                added: 'FIX.5.0SP2',\n                addedEP: '247',\n                description: 'Required if NoOrders(73) > 0.',\n            },\n            {\n                id: 37,\n                added: 'FIX.5.0SP2',\n                addedEP: '247',\n            },\n            {\n                id: 38,\n                added: 'FIX.5.0SP2',\n                addedEP: '247',\n                description: 'Required if NoOrders(73) > 0.',\n            },\n            {\n                id: 799,\n                added: 'FIX.5.0SP2',\n                addedEP: '247',\n            },\n        ],\n        numInGroup: {\n            id: 73,\n            added: 'FIX.5.0SP2',\n            addedEP: '247',\n            description: '',\n        },\n    },\n    {\n        id: 1079,\n        name: 'ExecutionAggregationGrp',\n        abbrName: 'ExecAggrtn',\n        added: 'FIX.5.0SP2',\n        addedEP: '247',\n        category: 'Common',\n        description: 'Identifies the fills being aggregated together.',\n        fieldRef: [\n            {\n                id: 32,\n                added: 'FIX.5.0SP2',\n                addedEP: '247',\n                description: 'Required if NoExecs(124) > 0',\n            },\n            {\n                id: 17,\n                added: 'FIX.5.0SP2',\n                addedEP: '247',\n                description: 'Either ExecID(17) or TradeID(1003) must be specified.',\n            },\n            {\n                id: 1003,\n                added: 'FIX.5.0SP2',\n                addedEP: '247',\n                description: 'Either ExecID(17) or TradeID(1003) must be specified.',\n            },\n            {\n                id: 31,\n                added: 'FIX.5.0SP2',\n                addedEP: '247',\n            },\n        ],\n        numInGroup: {\n            id: 124,\n            added: 'FIX.5.0SP2',\n            addedEP: '247',\n            description: '',\n        },\n    },\n    {\n        id: 1080,\n        name: 'TradeTypeGrp',\n        abbrName: 'TrdTyp',\n        added: 'FIX.Latest',\n        addedEP: '289',\n        category: 'Common',\n        description:\n            'The TradeTypeGrp component is used to express multiple trade types on the same message and can be used as an alternative to the fields TrdType(828), SecondaryTrdType(855), and TertiaryTrdType(2896) when three or fewer trade types are needed.\\n\\nThe TradeTypeGrp component should be used exclusively whenever four or more trade types are needed.',\n        fieldRef: [\n            {\n                id: 3006,\n                added: 'FIX.Latest',\n                addedEP: '289',\n                description: 'Required if NoTradeTypes(3005) > 0.',\n            },\n            {\n                id: 3007,\n                added: 'FIX.Latest',\n                addedEP: '289',\n            },\n        ],\n        numInGroup: {\n            id: 3005,\n            added: 'FIX.Latest',\n            addedEP: '289',\n            description: '',\n        },\n    },\n    {\n        id: 2001,\n        name: 'AffectedOrdGrp',\n        abbrName: 'AfctdOrd',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        category: 'OrderMassHandling',\n        fieldRef: [\n            {\n                id: 1824,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description:\n                    'Required if NoAffectedOrders(534) > 0.\\n\\n\\n                        Indicates the client order id of an order affected by this request. If order(s) were manually delivered (or otherwise not delivered over FIX and not assigned a ClOrdID(11)) this field should contain string \"MANUAL\".',\n            },\n            {\n                id: 535,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Contains the OrderID(37) assigned by the counterparty of an affected order. Conditionally required when AffectedOrigClOrdID(1824) = \"MANUAL\".',\n            },\n            {\n                id: 536,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Contains the SecondaryOrderID(198) assigned by the counterparty of an affected order.',\n            },\n        ],\n        numInGroup: {\n            id: 534,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '131',\n            description: '',\n        },\n    },\n    {\n        id: 2002,\n        name: 'AllocAckGrp',\n        abbrName: 'AllocAck',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '196',\n        category: 'Allocation',\n        description:\n            'This repeating group is optionally used for messages with AllocStatus(87) = 2 (Account level reject), to provide details of the individual accounts that were accepted or rejected. In the case of a reject, the reasons for the rejection should be specified.',\n        fieldRef: [\n            {\n                id: 79,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description:\n                    'Required if NoAllocs(78) > 0.\\n\\n\\n                        Must be first field in repeating group.',\n            },\n            {\n                id: 661,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 366,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description:\n                    'Used when performing \"executed price\" vs. \"average price\" allocations (e.g. Japan). AllocAccount(79) plus AllocPrice(366) form a unique Allocs entry. Used in lieu of AllocAvgPx(153).',\n            },\n            {\n                id: 1047,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 467,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1593,\n                added: 'FIX.5.0SP2',\n                addedEP: '118',\n            },\n            {\n                id: 1729,\n                added: 'FIX.5.0SP2',\n                addedEP: '118',\n            },\n            {\n                id: 1832,\n                added: 'FIX.5.0SP2',\n                addedEP: '196',\n                description: 'Used to communicate the status of central clearing workflow.',\n            },\n            {\n                id: 2727,\n                added: 'FIX.5.0SP2',\n                addedEP: '234',\n                description: 'The field may not be used in any message where there are no legs.',\n            },\n            {\n                id: 776,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description: 'Required if NoAllocs(78) > 0 and AllocStatus(87) = 2 (Account level reject).',\n            },\n            {\n                id: 209,\n                added: 'FIX.5.0SP2',\n                addedEP: '245',\n            },\n            {\n                id: 161,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description: 'Can be used here to hold text relating to the rejection of this AllocAccount(366))',\n            },\n            {\n                id: 360,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description: 'Must be set if EncodedAllocText(361) field is specified and must immediately precede it.',\n            },\n            {\n                id: 361,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description:\n                    'Encoded (non-ASCII characters) representation of the AllocText(161) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 1732,\n                added: 'FIX.5.0SP2',\n                addedEP: '118',\n            },\n            {\n                id: 1733,\n                added: 'FIX.5.0SP2',\n                addedEP: '118',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description:\n                    'Must be set if EncodedFirmAllocText(1734) field is specified and must immediately precede it.',\n            },\n            {\n                id: 1734,\n                added: 'FIX.5.0SP2',\n                addedEP: '118',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description:\n                    'Encoded (non-ASCII characters) representation of the FirmAllocText(1732) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 989,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n            },\n            {\n                id: 993,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n            },\n            {\n                id: 992,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n            },\n            {\n                id: 80,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n            },\n            {\n                id: 2515,\n                added: 'FIX.5.0SP2',\n                addedEP: '193',\n            },\n            {\n                id: 1752,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description: 'Only used for specific lot trades.',\n            },\n            {\n                id: 1753,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, either VersusPurchasePrice(1754) or CurrentCostBasis(1755) should be specified.',\n            },\n            {\n                id: 1754,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, VersusPurchaseDate(1753) should be specified.',\n            },\n            {\n                id: 1755,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, VersusPurchaseDate(1753) should be specified',\n            },\n            {\n                id: 2770,\n                added: 'FIX.5.0SP2',\n                addedEP: '241',\n            },\n            {\n                id: 2769,\n                added: 'FIX.5.0SP2',\n                addedEP: '241',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2221,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 1008,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 78,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '192',\n            description: 'Indicates number of allocation groups to follow.',\n        },\n    },\n    {\n        id: 2003,\n        name: 'AllocGrp',\n        abbrName: 'Alloc',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '291',\n        category: 'Allocation',\n        description:\n            'The AllocGrp component conveys the details of each account when a trade (or block trade) is allocated into one or more accounts.\\n\\nThis repeating group is optionally used for messages with AllocStatus(87) = 0 (accepted) or 2 (account level reject) to provide details of the individual accounts that were accepted or rejected. In the case of a reject, the reasons for the rejection should be specified. This group should not be populated where AllocStatus(87) has any other value.',\n        fieldRef: [\n            {\n                id: 79,\n                added: 'FIX.4.4',\n                updated: 'FIX.Latest',\n                updatedEP: '291',\n                description:\n                    'Required if NoAllocs(78) > 0.\\n\\nMay specify the broker of credit if ProcessCode(81) is step-out or soft-dollar step-out and Institution does not wish to disclose individual account breakdowns to the executing broker.',\n            },\n            {\n                id: 661,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 573,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 366,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description:\n                    'Used when performing \"executed price\" vs. \"average price\" allocations (e.g. Japan). AllocAccount(79) plus AllocPrice(366) form a unique Allocs entry. Used in lieu of AllocAvgPx(153).',\n            },\n            {\n                id: 80,\n                added: 'FIX.4.4',\n                description:\n                    'Conditionally required except when for AllocTransType=\"Cancel\", or when AllocType= \"Ready-To-Book\" or \"Warehouse instruction\".',\n            },\n            {\n                id: 2515,\n                added: 'FIX.5.0SP2',\n                addedEP: '193',\n            },\n            {\n                id: 1752,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description: 'Only used for specific lot trades.',\n            },\n            {\n                id: 1753,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, either VersusPurchasePrice(1754) or CurrentCostBasis(1755) should be specified.',\n            },\n            {\n                id: 1754,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, VersusPurchaseDate(1753) should be specified.',\n            },\n            {\n                id: 1755,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, VersusPurchaseDate(1753) should be specified',\n            },\n            {\n                id: 467,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1729,\n                added: 'FIX.5.0SP2',\n                addedEP: '118',\n                description:\n                    'Allocation identifier assigned by the Firm submitting the allocation for an individual allocation instruction (as opposed to the overall message level identifier).',\n            },\n            {\n                id: 1593,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 2727,\n                added: 'FIX.5.0SP2',\n                addedEP: '234',\n                description: 'The field may not be used in any message where there are no legs.',\n            },\n            {\n                id: 81,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 989,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    \"Can be used by an intermediary to specify an allocation ID assigned by the intermediary's system.\",\n            },\n            {\n                id: 1002,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Specifies the method under which a trade quantity was allocated.',\n            },\n            {\n                id: 1735,\n                added: 'FIX.5.0SP2',\n                addedEP: '118',\n                description:\n                    'An indicator to override the normal procedure to roll up allocations for the same Carry Firm.',\n            },\n            {\n                id: 993,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Can be used for granular reporting of separate allocation detail within a single trade report or allocation message.',\n            },\n            {\n                id: 1047,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 992,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 208,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 209,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 161,\n                added: 'FIX.4.4',\n                description: 'Free format text field related to this AllocAccount',\n            },\n            {\n                id: 360,\n                added: 'FIX.4.4',\n                description: 'Must be set if EncodedAllocText field is specified and must immediately precede it.',\n            },\n            {\n                id: 361,\n                added: 'FIX.4.4',\n                description:\n                    'Encoded (non-ASCII characters) representation of the AllocText field in the encoded format specified via the MessageEncoding field.',\n            },\n            {\n                id: 1732,\n                added: 'FIX.5.0SP2',\n                addedEP: '118',\n            },\n            {\n                id: 1733,\n                added: 'FIX.5.0SP2',\n                addedEP: '118',\n            },\n            {\n                id: 1734,\n                added: 'FIX.5.0SP2',\n                addedEP: '118',\n            },\n            {\n                id: 153,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '82',\n                description:\n                    'AvgPx for this AllocAccount. For F/X orders, should be the \"all-in\" rate (spot rate adjusted for forward points) for this allocation, expressed in terms of Currency(15). For Fixed Income always express value as \"percent of par\".',\n            },\n            {\n                id: 154,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '82',\n                description:\n                    'NetMoney for this AllocAccount\\n\\n\\n                        ((AllocQty * AllocAvgPx) - Commission - sum of MiscFeeAmt + AccruedInterestAmt) if a Sell.\\n\\n\\n                        ((AllocQty * AllocAvgPx) + Commission + sum of MiscFeeAmt + AccruedInterestAmt) if a Buy.\\n\\n\\n                        For FX, if specified, expressed in terms of Currency(15).',\n            },\n            {\n                id: 119,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.4.4',\n                description: 'Replaced by AllocSettlCurrAmt',\n            },\n            {\n                id: 2300,\n                added: 'FIX.5.0SP2',\n                addedEP: '170',\n            },\n            {\n                id: 737,\n                added: 'FIX.4.4',\n                description:\n                    'AllocNetMoney in AllocSettlCurrency for this AllocAccount if AllocSettlCurrency is different from \"overall\" Currency',\n            },\n            {\n                id: 120,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.4.4',\n                description:\n                    'Replaced by AllocSettlCurrency\\n\\n\\n                        SettlCurrency for this AllocAccount if different from \"overall\" Currency. Required if SettlCurrAmt is specified.',\n            },\n            {\n                id: 736,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '82',\n                description:\n                    'AllocSettlCurrency for this AllocAccount if different from \"overall\" Currency.\\n\\n\\n                        Required if AllocSettlCurrAmt is specified.\\n\\n\\n                        Required for NDFs.',\n            },\n            {\n                id: 2927,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 155,\n                added: 'FIX.4.4',\n                description:\n                    'Foreign exchange rate used to compute AllocSettlCurrAmt from Currency to AllocSettlCurrency',\n            },\n            {\n                id: 156,\n                added: 'FIX.4.4',\n                description: 'Specifies whether the SettlCurrFxRate should be multiplied or divided',\n            },\n            {\n                id: 742,\n                added: 'FIX.4.4',\n                description: 'Applicable for Convertible Bonds and fixed income',\n            },\n            {\n                id: 741,\n                added: 'FIX.4.4',\n                description: 'Applicable for securities that pay interest in lump-sum at maturity',\n            },\n            {\n                id: 635,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 780,\n                added: 'FIX.4.4',\n                description:\n                    'Used to indicate whether settlement instructions are provided on this message, and if not, how they are to be derived.\\n\\n\\n                        Absence of this field implies use of default instructions.',\n            },\n            {\n                id: 2392,\n                added: 'FIX.5.0SP2',\n                addedEP: '180',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description: 'Conditionally required when AllocRefRiskLimitCheckIDType(2393) is specified.',\n            },\n            {\n                id: 2393,\n                added: 'FIX.5.0SP2',\n                addedEP: '180',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description: 'Conditionally required when AllocRefRiskLimitCheckID(2392) is specified.',\n            },\n            {\n                id: 2483,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 2761,\n                added: 'FIX.5.0SP2',\n                addedEP: '239',\n            },\n            {\n                id: 2770,\n                added: 'FIX.5.0SP2',\n                addedEP: '241',\n            },\n            {\n                id: 2769,\n                added: 'FIX.5.0SP2',\n                addedEP: '241',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2284,\n                added: 'FIX.Latest',\n                addedEP: '298',\n            },\n            {\n                id: 2221,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 2275,\n                added: 'FIX.Latest',\n                addedEP: '291',\n            },\n            {\n                id: 1008,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Nested Parties\" (firm identification \"nested\" within additional repeating group) fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        Used for NestedPartyRole=BrokerOfCredit, ClientID, Settlement location (PSET), etc.\\n\\n\\n                        Note: this field can be used for settlement location (PSET) information.',\n            },\n            {\n                id: 1071,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description:\n                    'Use as an alternative to CommissionData component if multiple commissions or enhanced attributes are needed.',\n            },\n            {\n                id: 2035,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2007,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2205,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1000,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '204',\n            },\n            {\n                id: 1016,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"SettlInstructionsData\" fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        Used to communicate settlement instructions for this AllocAccount detail. Required if AllocSettlInstType = 2 or 3.',\n            },\n        ],\n        numInGroup: {\n            id: 78,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '118',\n            description: '',\n        },\n    },\n    {\n        id: 2004,\n        name: 'BidCompReqGrp',\n        abbrName: 'CompReq',\n        added: 'FIX.4.4',\n        category: 'ProgramTrading',\n        fieldRef: [\n            {\n                id: 66,\n                added: 'FIX.4.4',\n                description: 'Required if NoBidComponents > 0. Must be first field in repeating group.',\n            },\n            {\n                id: 54,\n                added: 'FIX.4.4',\n                description:\n                    'When used in request for a \"Disclosed\" bid indicates that bid is required on assumption that SideValue1 is Buy or Sell. SideValue2 can be derived by inference.',\n            },\n            {\n                id: 336,\n                added: 'FIX.4.4',\n                description: 'Indicates off-exchange type activities for Detail.',\n            },\n            {\n                id: 625,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 430,\n                added: 'FIX.4.4',\n                description: 'Indicates Net or Gross for selling Detail.',\n            },\n            {\n                id: 63,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 64,\n                added: 'FIX.4.4',\n                description:\n                    'Takes precedence over SettlType value and conditionally required/omitted for specific SettlType values.',\n            },\n            {\n                id: 1,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 660,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 420,\n            added: 'FIX.4.4',\n            description: 'Used if BidType=\"Disclosed\"',\n        },\n    },\n    {\n        id: 2005,\n        name: 'BidCompRspGrp',\n        abbrName: 'CompRsp',\n        added: 'FIX.4.4',\n        category: 'ProgramTrading',\n        fieldRef: [\n            {\n                id: 66,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 421,\n                added: 'FIX.4.4',\n                description: 'ISO Country Code',\n            },\n            {\n                id: 54,\n                added: 'FIX.4.4',\n                description:\n                    'When used in response to a \"Disclosed\" request indicates whether SideValue1 is Buy or Sell. SideValue2 can be derived by inference.',\n            },\n            {\n                id: 44,\n                added: 'FIX.4.4',\n                description: 'Second element of price',\n            },\n            {\n                id: 423,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 406,\n                added: 'FIX.4.4',\n                description:\n                    'The difference between the value of a future and the value of the underlying equities after allowing for the discounted cash flows associated with the underlying stocks (E.g. Dividends etc).',\n            },\n            {\n                id: 430,\n                added: 'FIX.4.4',\n                description: 'Net/Gross',\n            },\n            {\n                id: 63,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 64,\n                added: 'FIX.4.4',\n                description:\n                    'Takes precedence over SettlType value and conditionally required/omitted for specific SettlType values.',\n            },\n            {\n                id: 336,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 625,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 58,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 354,\n                added: 'FIX.4.4',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.4.4',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1000,\n                presence: 'required',\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '95',\n                description: 'First element Commission required if NoBidComponents > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 420,\n            added: 'FIX.4.4',\n            description: 'Number of bid repeating groups',\n        },\n    },\n    {\n        id: 2006,\n        name: 'BidDescReqGrp',\n        abbrName: 'DescReq',\n        added: 'FIX.4.4',\n        category: 'ProgramTrading',\n        fieldRef: [\n            {\n                id: 399,\n                added: 'FIX.4.4',\n                description: 'Required if NoBidDescriptors > 0. Must be first field in repeating group.',\n            },\n            {\n                id: 400,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 401,\n                added: 'FIX.4.4',\n                description:\n                    'Refers to the SideValue1 or SideValue2. These are used as opposed to Buy or Sell so that the basket can be quoted either way as Buy or Sell.',\n            },\n            {\n                id: 404,\n                added: 'FIX.4.4',\n                description: 'Value between LiquidityPctLow and LiquidityPctHigh in Currency',\n            },\n            {\n                id: 441,\n                added: 'FIX.4.4',\n                description: 'Number of Securites between LiquidityPctLow and LiquidityPctHigh in Currency',\n            },\n            {\n                id: 402,\n                added: 'FIX.4.4',\n                description: 'Liquidity indicator or lower limit if LiquidityNumSecurities > 1',\n            },\n            {\n                id: 403,\n                added: 'FIX.4.4',\n                description: 'Upper liquidity indicator if LiquidityNumSecurities > 1',\n            },\n            {\n                id: 405,\n                added: 'FIX.4.4',\n                description: 'Eg Used in EFP (Exchange For Physical) trades 12%',\n            },\n            {\n                id: 406,\n                added: 'FIX.4.4',\n                description: 'Used in EFP trades',\n            },\n            {\n                id: 407,\n                added: 'FIX.4.4',\n                description: 'Used in EFP trades',\n            },\n            {\n                id: 408,\n                added: 'FIX.4.4',\n                description: 'Used in EFP trades',\n            },\n        ],\n        numInGroup: {\n            id: 398,\n            added: 'FIX.4.4',\n            description: 'Used if BidType=\"Non Disclosed\"',\n        },\n    },\n    {\n        id: 2007,\n        name: 'ClrInstGrp',\n        abbrName: 'ClrInst',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 577,\n                added: 'FIX.4.4',\n                description: 'Required if NoClearingInstructions > 0',\n            },\n        ],\n        numInGroup: {\n            id: 576,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP1',\n            updatedEP: '95',\n            description: '',\n        },\n    },\n    {\n        id: 2008,\n        name: 'CollInqQualGrp',\n        abbrName: 'Qual',\n        added: 'FIX.4.4',\n        category: 'CollateralManagement',\n        fieldRef: [\n            {\n                id: 896,\n                added: 'FIX.4.4',\n                description:\n                    'Required if NoCollInquiryQualifier > 0\\n\\n\\n                        Type of collateral inquiry',\n            },\n        ],\n        numInGroup: {\n            id: 938,\n            added: 'FIX.4.4',\n            description: 'Number of qualifiers to inquiry',\n        },\n    },\n    {\n        id: 2009,\n        name: 'CompIDReqGrp',\n        abbrName: 'CIDReq',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 930,\n                added: 'FIX.4.4',\n                description: 'Used to restrict updates/request to specific CompID',\n            },\n            {\n                id: 931,\n                added: 'FIX.4.4',\n                description: 'Used to restrict updates/request to specific SubID',\n            },\n            {\n                id: 283,\n                added: 'FIX.4.4',\n                description: 'Used to restrict updates/request to specific LocationID',\n            },\n            {\n                id: 284,\n                added: 'FIX.4.4',\n                description: 'Used to restrict updates/request to specific DeskID',\n            },\n        ],\n        numInGroup: {\n            id: 936,\n            added: 'FIX.4.4',\n            description:\n                'Used to restrict updates/request to a list of specific CompID/SubID/LocationID/DeskID combinations.\\n\\n\\n                        If not present request applies to all applicable available counterparties. EG Unless one sell side broker was a customer of another you would not expect to see information about other brokers, similarly one fund manager etc.',\n        },\n    },\n    {\n        id: 2010,\n        name: 'CompIDStatGrp',\n        abbrName: 'CIDStat',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 930,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description: 'CompID that status is being report for. Required if NoCompIDs > 0,',\n            },\n            {\n                id: 931,\n                added: 'FIX.4.4',\n                description: 'SubID that status is being report for.',\n            },\n            {\n                id: 283,\n                added: 'FIX.4.4',\n                description: 'LocationID that status is being report for.',\n            },\n            {\n                id: 284,\n                added: 'FIX.4.4',\n                description: 'DeskID that status is being report for.',\n            },\n            {\n                id: 928,\n                presence: 'required',\n                added: 'FIX.4.4',\n            },\n            {\n                id: 929,\n                added: 'FIX.4.4',\n                description: 'Additional Information, i.e. \"National Holiday\"',\n            },\n        ],\n        numInGroup: {\n            id: 936,\n            added: 'FIX.4.4',\n            description: \"Specifies the number of repeating CompId's\",\n        },\n    },\n    {\n        id: 2011,\n        name: 'ContAmtGrp',\n        abbrName: 'ContAmt',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 519,\n                added: 'FIX.4.4',\n                description: 'Must be first field in the repeating group.',\n            },\n            {\n                id: 520,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 521,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 518,\n            added: 'FIX.4.4',\n            description: 'Number of contract details in this message (number of repeating groups to follow)',\n        },\n    },\n    {\n        id: 2012,\n        name: 'ContraGrp',\n        abbrName: 'Contra',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 375,\n                added: 'FIX.4.4',\n                description: 'First field in repeating group. Required if NoContraBrokers > 0.',\n            },\n            {\n                id: 337,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 437,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 438,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 655,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 382,\n            added: 'FIX.4.4',\n            description: 'Number of ContraBrokers repeating group instances.',\n        },\n    },\n    {\n        id: 2013,\n        name: 'CpctyConfGrp',\n        abbrName: 'Cpcty',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'Confirmation',\n        fieldRef: [\n            {\n                id: 528,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description: 'Specifies the capacity of the firm executing the order(s)',\n            },\n            {\n                id: 529,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 863,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '170',\n                description:\n                    \"The quantity that was executed under this capacity (e.g. quantity executed as agent, as principal etc.). If any are specified, all entries in the component must have OrderCapacityQty specified and the sum of OrderCapacityQty values must equal this message's AllocQty.\",\n            },\n        ],\n        numInGroup: {\n            id: 862,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP1',\n            updatedEP: '95',\n            description: '',\n        },\n    },\n    {\n        id: 2014,\n        name: 'ExecAllocGrp',\n        abbrName: 'AllExc',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '279',\n        category: 'Common',\n        description:\n            'This repeating group is used to identify individual executions or trades, including key fields such as quantity and price of the execution or trade, that are part of the allocation.',\n        fieldRef: [\n            {\n                id: 32,\n                added: 'FIX.4.4',\n                description:\n                    'Amount of quantity (e.g. number of shares) in individual execution. Required if NoExecs > 0',\n            },\n            {\n                id: 17,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 527,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 31,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '82',\n                description:\n                    'Price of individual execution. Required if NoExecs > 0.\\n\\n\\n                        For FX, if specified, expressed in terms of Currency(15).',\n            },\n            {\n                id: 669,\n                added: 'FIX.4.4',\n                description:\n                    'Last price expressed in percent-of-par. Conditionally required for Fixed Income trades when LastPx is expressed in Yield, Spread, Discount or any other price type',\n            },\n            {\n                id: 29,\n                added: 'FIX.4.4',\n                description: 'Used to identify whether the trade was executed on an agency or principal basis.',\n            },\n            {\n                id: 1003,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1041,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 880,\n                added: 'FIX.Latest',\n                addedEP: '279',\n                description: 'Used to identify the match event resulting in the execution or trade.',\n            },\n            {\n                id: 2749,\n                added: 'FIX.5.0SP2',\n                addedEP: '237',\n            },\n            {\n                id: 2524,\n                added: 'FIX.5.0SP2',\n                addedEP: '237',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1072,\n                added: 'FIX.5.0SP2',\n                addedEP: '237',\n            },\n            {\n                id: 2206,\n                added: 'FIX.5.0SP2',\n                addedEP: '237',\n            },\n        ],\n        numInGroup: {\n            id: 124,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '118',\n            description:\n                'Indicates number of individual execution or trade entries. Absence indicates that no individual execution or trade entries are included. Primarily used to support step-outs.',\n        },\n    },\n    {\n        id: 2015,\n        name: 'ExecCollGrp',\n        abbrName: 'CollExc',\n        added: 'FIX.4.4',\n        category: 'CollateralManagement',\n        fieldRef: [\n            {\n                id: 17,\n                added: 'FIX.4.4',\n                description: 'Required if NoExecs > 0',\n            },\n        ],\n        numInGroup: {\n            id: 124,\n            added: 'FIX.4.4',\n            description: 'Executions for which collateral is required',\n        },\n    },\n    {\n        id: 2017,\n        name: 'InstrmtGrp',\n        abbrName: 'Inst',\n        added: 'FIX.4.4',\n        category: 'Common',\n        groupRef: [\n            {\n                id: 1066,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Instrument\" (symbology) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1004,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n            },\n            {\n                id: 1002,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n            },\n        ],\n        numInGroup: {\n            id: 146,\n            added: 'FIX.4.4',\n            description: 'Specifies the number of repeating symbols (instruments) specified',\n        },\n    },\n    {\n        id: 2018,\n        name: 'InstrmtLegExecGrp',\n        abbrName: 'Exec',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 685,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Quantity ordered for this leg as provided during order entry.',\n            },\n            {\n                id: 687,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '131',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'The LegQty(687) field is deprecated. The use of LegOrderQty(685) is recommended instead.',\n            },\n            {\n                id: 2346,\n                added: 'FIX.5.0SP2',\n                addedEP: '175',\n            },\n            {\n                id: 690,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Instead of LegOrderQty(685) requests that the sellside calculate LegOrderQty(685) based on opposite Leg.',\n            },\n            {\n                id: 1366,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2680,\n                added: 'FIX.5.0SP2',\n                addedEP: '223',\n            },\n            {\n                id: 1817,\n                added: 'FIX.5.0SP2',\n                addedEP: '223',\n                description:\n                    'Provide if different from the value specified for the overall multileg security in ClearingAccountType(1816) in the Instrument component.',\n            },\n            {\n                id: 564,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Provide if different from the value specified for the overall multileg security in PositionEffect(77) in the Instrument component.',\n            },\n            {\n                id: 565,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Provide if different from the value specified for the overall multileg security in CoveredOrUncovered(203) in the Instrument component.',\n            },\n            {\n                id: 654,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '131',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Use of LegRefID(654) in this component is deprecated. Recommend the use of LegID(1788) in the InstrumentLeg component.',\n            },\n            {\n                id: 587,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 588,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Takes precedence over a calculated LegSettlType(587) when specified regardless of LegSettlType(587) value.\\n\\n\\n                        Conditionally required when LegSettlType(587) = B(Broken date).',\n            },\n            {\n                id: 637,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Used to report the execution price assigned to the leg of the multileg instrument.',\n            },\n            {\n                id: 675,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 2900,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1073,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1074,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1075,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'For FX Futures can be used to express the notional value of a trade when LegLastQty(1418) and other quantity fields are expressed in terms of number of contracts - LegContractMultiplier(231) is required in this case.',\n            },\n            {\n                id: 1689,\n                added: 'FIX.5.0SP2',\n                addedEP: '121',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Available for optional use when LegSide(624) = 6 (Sell short exempt) in InstrumentLeg component.',\n            },\n            {\n                id: 1379,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1381,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1383,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1384,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1418,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Quantity executed for this leg.',\n            },\n            {\n                id: 2421,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description:\n                    'Use to reference the partial execution of a multi-leg order to which this leg execution belongs.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1007,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2026,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1010,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2286,\n                added: 'FIX.Latest',\n                addedEP: '302',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1005,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Required if NoLegs(555) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 555,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '131',\n            description: 'Number of leg executions.',\n        },\n    },\n    {\n        id: 2019,\n        name: 'InstrmtLegGrp',\n        abbrName: 'Leg',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        category: 'Common',\n        groupRef: [\n            {\n                id: 2286,\n                added: 'FIX.Latest',\n                addedEP: '302',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1005,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description: 'Required if NoLegs(555) > 0.',\n            },\n            {\n                id: 2251,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n        ],\n        numInGroup: {\n            id: 555,\n            added: 'FIX.4.4',\n            description: 'Number of legs',\n        },\n    },\n    {\n        id: 2020,\n        name: 'InstrmtLegIOIGrp',\n        abbrName: 'IOI',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 682,\n                added: 'FIX.4.4',\n                description: 'Required for multileg IOIs and for each leg.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1007,\n                added: 'FIX.4.4',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1005,\n                added: 'FIX.4.4',\n                description:\n                    'Required for multileg IOIs\\n\\n\\n                        For Swaps one leg is Buy and other leg is Sell',\n            },\n        ],\n        numInGroup: {\n            id: 555,\n            added: 'FIX.4.4',\n            description: 'Required for multileg IOIs',\n        },\n    },\n    {\n        id: 2021,\n        name: 'InstrmtLegSecListGrp',\n        abbrName: 'SecL',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 690,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 587,\n                added: 'FIX.4.4',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1007,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"LegStipulations\" (leg symbology) fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        Required if NoLegs > 0',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1005,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Instrument Legs\" (leg symbology) fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        Required if NoLegs > 0',\n            },\n            {\n                id: 1006,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"LegBenchmarkCurveData\" (leg symbology) fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        Required if NoLegs > 0',\n            },\n        ],\n        numInGroup: {\n            id: 555,\n            added: 'FIX.4.4',\n            description: 'Number of legs that make up the Security',\n        },\n    },\n    {\n        id: 2022,\n        name: 'InstrmtMDReqGrp',\n        abbrName: 'InstReq',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 15,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 537,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 63,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '82',\n                description: 'For NDFs either SettlType (specifying the tenor) or SettlDate must be specified.',\n            },\n            {\n                id: 64,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '82',\n                description: 'SettlType (specifying the tenor) or SettlDate must be specified.',\n            },\n            {\n                id: 271,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Quantity or volume represented by the Market Data Entry. In the context of the Market Data Request this allows the Initiator to indicate the quantity of the market data request. Specific to FX this field indicates the ceiling amount the customer is seeking prices for.',\n            },\n            {\n                id: 1500,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2066,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2019,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1066,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Instrument\" (symbology) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1004,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n            },\n            {\n                id: 1002,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n            },\n            {\n                id: 1018,\n                added: 'FIX.5.0SP2',\n                addedEP: '174',\n            },\n        ],\n        numInGroup: {\n            id: 146,\n            added: 'FIX.4.4',\n            description: 'Number of symbols (instruments) requested.',\n        },\n    },\n    {\n        id: 2023,\n        name: 'InstrmtStrkPxGrp',\n        abbrName: 'StrkPX',\n        added: 'FIX.4.4',\n        category: 'ProgramTrading',\n        fieldRef: [\n            {\n                id: 140,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Useful for verifying security identification',\n            },\n            {\n                id: 11,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Can use client order identifier or the symbol and side to uniquely identify the stock in the list.',\n            },\n            {\n                id: 526,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 54,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 44,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 15,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 58,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 354,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2066,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Underlying Instruments',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Instrument\" (symbology) fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        Required if NoStrikes > 0. Must be first field in repeating group.',\n            },\n        ],\n        numInGroup: {\n            id: 428,\n            added: 'FIX.4.4',\n            description: 'Number of strike price entries',\n        },\n    },\n    {\n        id: 2024,\n        name: 'IOIQualGrp',\n        abbrName: 'Qual',\n        added: 'FIX.4.4',\n        category: 'Indication',\n        fieldRef: [\n            {\n                id: 104,\n                added: 'FIX.4.4',\n                description: 'Required if NoIOIQualifiers > 0',\n            },\n        ],\n        numInGroup: {\n            id: 199,\n            added: 'FIX.4.4',\n            description:\n                'Required if any IOIQualifiers are specified. Indicates the number of repeating IOIQualifiers.',\n        },\n    },\n    {\n        id: 2025,\n        name: 'LegOrdGrp',\n        abbrName: 'Ord',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '171',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 685,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Quantity ordered for this leg as provided during order entry.',\n            },\n            {\n                id: 687,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '131',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'The LegQty(687) field is deprecated. The use of LegOrderQty(685) is recommended instead.',\n            },\n            {\n                id: 690,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '223',\n                description:\n                    'Instead of LegOrderQty(685) requests that the sellside calculate LegOrderQty(685) based on opposite Leg.',\n            },\n            {\n                id: 1366,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2680,\n                added: 'FIX.5.0SP2',\n                addedEP: '223',\n            },\n            {\n                id: 1817,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description:\n                    'Provide if different from the value specified for the overall multileg security in ClearingAccountType(1816) in the Instrument component.',\n            },\n            {\n                id: 564,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Provide if different from the value specified for the overall multileg security in PositionEffect(77) in the Instrument component.',\n            },\n            {\n                id: 565,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Provide if different from the value specified for the overall multileg security in CoveredOrUncovered(203) in the Instrument component',\n            },\n            {\n                id: 654,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '131',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Use of LegRefID(654) in this component is deprecated. Recommend the use of LegID(1788) in the InstrumentLeg component.',\n            },\n            {\n                id: 587,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n            },\n            {\n                id: 588,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n            },\n            {\n                id: 675,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2900,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1379,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1381,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1383,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1384,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1689,\n                added: 'FIX.5.0SP2',\n                addedEP: '121',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Available for optional use when LegSide(624) = 6 (Sell short exempt) in InstrumentLeg component.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1007,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2026,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1008,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n            },\n            {\n                id: 2286,\n                added: 'FIX.Latest',\n                addedEP: '302',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1005,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Required if NoLegs(555) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 555,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '131',\n            description: '',\n        },\n    },\n    {\n        id: 2026,\n        name: 'LegPreAllocGrp',\n        abbrName: 'PreAll',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 671,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 672,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 673,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 674,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1367,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2928,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1756,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description: 'Only used for specific lot trades.',\n            },\n            {\n                id: 1757,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, either LegVersusPurchasePrice(1758) or LegCurrentCostBasis(1759) should be specified.',\n            },\n            {\n                id: 1758,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, LegVersusPurchaseDate(1757) should be specified.',\n            },\n            {\n                id: 1759,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, LegVersusPurchaseDate(1757) should be specified',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1009,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 670,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2027,\n        name: 'LegQuotGrp',\n        abbrName: 'Quot',\n        added: 'FIX.4.4',\n        category: 'QuotationNegotiation',\n        fieldRef: [\n            {\n                id: 685,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n            },\n            {\n                id: 687,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '131',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'The LegQty(687) field is deprecated. The use of LegOrderQty(685) is recommended instead.',\n            },\n            {\n                id: 2346,\n                added: 'FIX.5.0SP2',\n                addedEP: '175',\n            },\n            {\n                id: 690,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 587,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 588,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 686,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Code to represent type of price presented in LegBidPx(681) and LegOfferPx(684).\\n\\n\\n                        Conditionally required when LegBidPx(681) or PegOfferPx(684) is present.',\n            },\n            {\n                id: 681,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 684,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 654,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '131',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Use of LegRefID(654) in this component is deprecated. Recommend the use of LegID(1788) in the InstrumentLeg component.',\n            },\n            {\n                id: 1067,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1068,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1007,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1008,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2286,\n                added: 'FIX.Latest',\n                addedEP: '302',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1005,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Required if NoLegs(555) > 0.',\n            },\n            {\n                id: 1006,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 555,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '131',\n            description: '',\n        },\n    },\n    {\n        id: 2028,\n        name: 'LegQuotStatGrp',\n        abbrName: 'QuoteStat',\n        added: 'FIX.4.4',\n        category: 'QuotationNegotiation',\n        fieldRef: [\n            {\n                id: 685,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n            },\n            {\n                id: 687,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '131',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'The LegQty(687) field is deprecated. The use of LegOrderQty(685) is recommended instead.',\n            },\n            {\n                id: 2346,\n                added: 'FIX.5.0SP2',\n                addedEP: '175',\n            },\n            {\n                id: 690,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 587,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 588,\n                added: 'FIX.4.4',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1007,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1008,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2286,\n                added: 'FIX.Latest',\n                addedEP: '302',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1005,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Required if NoLegs(555) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 555,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '131',\n            description: '',\n        },\n    },\n    {\n        id: 2029,\n        name: 'LinesOfTextGrp',\n        abbrName: 'TxtLn',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 58,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description: 'Repeating field, number of instances defined in LinesOfText',\n            },\n            {\n                id: 354,\n                added: 'FIX.4.4',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.4.4',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.',\n            },\n        ],\n        numInGroup: {\n            id: 33,\n            added: 'FIX.4.4',\n            description: 'Specifies the number of repeating lines of text specified',\n        },\n    },\n    {\n        id: 2030,\n        name: 'ListOrdGrp',\n        abbrName: 'Ord',\n        added: 'FIX.4.4',\n        category: 'ProgramTrading',\n        fieldRef: [\n            {\n                id: 11,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description: 'Must be the first field in the repeating group.',\n            },\n            {\n                id: 526,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 67,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description: 'Order number within the list',\n            },\n            {\n                id: 583,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 160,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 229,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 75,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 660,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 581,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 589,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 590,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 70,\n                added: 'FIX.4.4',\n                description: 'Use to assign an ID to the block of individual preallocations',\n            },\n            {\n                id: 591,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 63,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 64,\n                added: 'FIX.4.4',\n                description:\n                    'Takes precedence over SettlType value and conditionally required/omitted for specific SettlType values.',\n            },\n            {\n                id: 544,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 635,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 21,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 18,\n                added: 'FIX.4.4',\n                description:\n                    'Can contain multiple instructions, space delimited. If OrdType=P, exactly one of the following values (ExecInst = L, R, M, P, O, T, or W) must be specified.',\n            },\n            {\n                id: 110,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1089,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1090,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 111,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n            },\n            {\n                id: 100,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1133,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 81,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 140,\n                added: 'FIX.4.4',\n                description: 'Useful for verifying security identification',\n            },\n            {\n                id: 54,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Note: to indicate the side of SideValue1 or SideValue2, specify Side=Undisclosed and SideValueInd=either the SideValue1 or SideValue2 indicator.',\n            },\n            {\n                id: 2102,\n                added: 'FIX.5.0SP2',\n                addedEP: '164',\n            },\n            {\n                id: 1688,\n                added: 'FIX.5.0SP2',\n                addedEP: '121',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Available for optional use when Side(54) = 6(Sell short exempt).',\n            },\n            {\n                id: 401,\n                added: 'FIX.4.4',\n                description:\n                    'Refers to the SideValue1 or SideValue2. These are used as opposed to Buy or Sell so that the basket can be quoted either way as Buy or Sell.',\n            },\n            {\n                id: 114,\n                added: 'FIX.4.4',\n                description: 'Required for short sell orders',\n            },\n            {\n                id: 60,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 854,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 40,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 423,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 44,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1092,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 99,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 15,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 376,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2404,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n            },\n            {\n                id: 2351,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n                description:\n                    'Must be set if EncodedComplianceText(2352) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2352,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n                description:\n                    'Encoded (non-ASCII characters) representation of the ComplianceText(2404) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 377,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 23,\n                added: 'FIX.4.4',\n                description: 'Required for Previously Indicated Orders (OrdType=E)',\n            },\n            {\n                id: 117,\n                added: 'FIX.4.4',\n                description: 'Required for Previously Quoted Orders (OrdType=D)',\n            },\n            {\n                id: 1080,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Required for counter-order selection / Hit / Take Orders (OrdType = Q)',\n            },\n            {\n                id: 1081,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Conditionally required if RefOrderID is specified.',\n            },\n            {\n                id: 59,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 168,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 432,\n                added: 'FIX.4.4',\n                description: 'Conditionally required if TimeInForce = GTD and ExpireTime is not specified.',\n            },\n            {\n                id: 126,\n                added: 'FIX.4.4',\n                description: 'Conditionally required if TimeInForce = GTD and ExpireDate is not specified.',\n            },\n            {\n                id: 427,\n                added: 'FIX.4.4',\n                description: 'States whether executions are booked out or accumulated on a partially filled GT order',\n            },\n            {\n                id: 1629,\n                added: 'FIX.5.0SP2',\n                addedEP: '100',\n                description: 'Conditionally required when TimeInForce(59)=10 (Good for Time)',\n            },\n            {\n                id: 1916,\n                added: 'FIX.5.0SP2',\n                addedEP: '159',\n            },\n            {\n                id: 528,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 529,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1091,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 582,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 121,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 120,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2899,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 775,\n                added: 'FIX.4.4',\n                description:\n                    'Method for booking out this order. Used when notifying a broker that an order to be settled by that broker is to be booked out as an OTC derivative (e.g. CFD or similar). Absence of this field implies regular booking.',\n            },\n            {\n                id: 58,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 354,\n                added: 'FIX.4.4',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.4.4',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.',\n            },\n            {\n                id: 193,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Can be used with OrdType = \"Forex - Swap\" to specify the \"value date\" for the future portion of a F/X swap.',\n            },\n            {\n                id: 192,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Can be used with OrdType = \"Forex - Swap\" to specify the order quantity for the future portion of a F/X swap.',\n            },\n            {\n                id: 640,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Can be used with OrdType = \"Forex - Swap\" to specify the price for the future portion of a F/X swap which is also a limit order. For F/X orders, should be the \"all-in\" rate (spot rate adjusted for forward points).',\n            },\n            {\n                id: 77,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 203,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 210,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n            },\n            {\n                id: 847,\n                added: 'FIX.4.4',\n                description: 'The target strategy of the order',\n            },\n            {\n                id: 848,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description: 'For further specification of the TargetStrategy',\n            },\n            {\n                id: 849,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Mandatory for a TargetStrategy=Participate order and specifies the target particpation rate.\\n\\n\\n                        For other order types optionally specifies a volume limit (i.e. do not be more than this percent of the market volume)',\n            },\n            {\n                id: 494,\n                added: 'FIX.4.4',\n                description: 'Supplementary registration information for this Order within the List',\n            },\n            {\n                id: 1028,\n                added: 'FIX.5.0SP2',\n                addedEP: '182',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1012,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Parties\" (firm identification) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 2039,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2064,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2066,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1019,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Stipulations\" (repeating group of Fixed Income stipulations) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1070,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description:\n                    'Use as an alternative to CommissionData if multiple commissions or enhanced attributes are needed.',\n            },\n            {\n                id: 1073,\n                added: 'FIX.5.0SP2',\n                addedEP: '237',\n            },\n            {\n                id: 2086,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Strategy parameter block',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1029,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of \"DisplayInstruction\" fields defined in \"common components of application messages\"',\n            },\n            {\n                id: 1003,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Instrument\" (symbology) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1011,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"OrderQtyData\" fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1030,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of \"TriggeringInstruction\" fields defined in \"common components of application messages\"',\n            },\n            {\n                id: 1018,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"SpreadOrBenchmarkCurveData\" (Fixed Income spread or benchmark curve) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1022,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"YieldData\" (yield-related) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1000,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '204',\n            },\n            {\n                id: 1013,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"PegInstruction\" fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1001,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"DiscretionInstruction\" fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        numInGroup: {\n            id: 73,\n            added: 'FIX.4.4',\n            description: 'Number of orders in this message (number of repeating groups to follow)',\n        },\n    },\n    {\n        id: 2031,\n        name: 'MDFullGrp',\n        abbrName: 'Full',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        category: 'MarketData',\n        description:\n            'List of market data entries for a single instrument, e.g. when reporting a snapshot of all price levels in the order book of an instrument.',\n        fieldRef: [\n            {\n                id: 269,\n                presence: 'required',\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description: 'Required if NoMDEntries(268) > 0.',\n            },\n            {\n                id: 278,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'Conditionally required when maintaining an order-depth book (AggregatedBook(266) is \"N\"). Allows subsequent Incremental changes to be applied using MDEntryID(278).',\n            },\n            {\n                id: 270,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'Conditionally required if MDEntryType(269) is not A (Imbalance), B (Trade Volume), or C (Open Interest); Conditionally required when MDEntryType(269) = Q (Auction clearing price).',\n            },\n            {\n                id: 423,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 819,\n                added: 'FIX.5.0SP2',\n                addedEP: '240',\n            },\n            {\n                id: 40,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Used to support market mechanism type; limit order, market order, committed principal order',\n            },\n            {\n                id: 15,\n                added: 'FIX.4.4',\n                description: 'Can be used to specify the currency of the quoted price.',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 120,\n                added: 'FIX.5.0SP1',\n                addedEP: '82',\n                description: 'Required for NDFs to specify the settlement currency (fixing currency).',\n            },\n            {\n                id: 2899,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 271,\n                added: 'FIX.4.4',\n                updated: 'FIX.Latest',\n                updatedEP: '300',\n                description:\n                    'Conditionally required when MDEntryType(269) = 0 (Bid), 1 (Offer), 2 (Trade), B (Trade volume), or C (Open interest).',\n            },\n            {\n                id: 1093,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Can be used to specify the lot type of the quoted size in order depth books.',\n            },\n            {\n                id: 272,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 273,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 274,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 275,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description: 'Market posting quote / trade. Valid values: See Volume 6: Appendix 6-C',\n            },\n            {\n                id: 336,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 625,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 326,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 327,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2447,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n            },\n            {\n                id: 2705,\n                added: 'FIX.5.0SP2',\n                addedEP: '229',\n            },\n            {\n                id: 276,\n                added: 'FIX.4.4',\n                description: 'Space-delimited list of conditions describing a quote.',\n            },\n            {\n                id: 277,\n                added: 'FIX.4.4',\n                description: 'Space-delimited list of conditions describing a trade',\n            },\n            {\n                id: 2961,\n                added: 'FIX.Latest',\n                addedEP: '274',\n            },\n            {\n                id: 2667,\n                added: 'FIX.5.0SP2',\n                addedEP: '216',\n            },\n            {\n                id: 282,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n            },\n            {\n                id: 283,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n            },\n            {\n                id: 284,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n            },\n            {\n                id: 286,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'Used if MDEntryType(269) = 4 (Opening price), 5 (Closing price), or 6 (Settlement price).',\n            },\n            {\n                id: 59,\n                added: 'FIX.4.4',\n                description: 'For optional use when this Bid or Offer represents an order',\n            },\n            {\n                id: 432,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'For optional use when this Bid or Offer represents an order. ExpireDate(432) and ExpireTime(126) cannot both be specified in one Market Data Entry.',\n            },\n            {\n                id: 126,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'For optional use when this Bid or Offer represents an order. ExpireDate(432) and ExpireTime(126) cannot both be specified in one Market Data Entry.',\n            },\n            {\n                id: 1629,\n                added: 'FIX.5.0SP2',\n                addedEP: '100',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description: 'Conditionally required when TimeInForce(59) = A (Good for Time).',\n            },\n            {\n                id: 1916,\n                added: 'FIX.5.0SP2',\n                addedEP: '159',\n            },\n            {\n                id: 110,\n                added: 'FIX.4.4',\n                description: 'For optional use when this Bid or Offer represents an order',\n            },\n            {\n                id: 18,\n                added: 'FIX.4.4',\n                description: 'Can contain multiple instructions, space delimited.',\n            },\n            {\n                id: 287,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 37,\n                added: 'FIX.4.4',\n                description: 'For optional use when this Bid, Offer, or Trade represents an order',\n            },\n            {\n                id: 198,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'For optional use to support Hit/Take (selecting a specific order from the feed) without disclosing a private order id.',\n            },\n            {\n                id: 299,\n                added: 'FIX.4.4',\n                description: 'For optional use when this Bid, Offer, or Trade represents a quote',\n            },\n            {\n                id: 1003,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n                description: 'For optional use in reporting Trades.',\n            },\n            {\n                id: 1851,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n                description:\n                    'For optional use in reporting Trades.\\n\\n\\n                        May be used to link together trades that are reported separately but are part of the same overall trade, e.g. spread trade and their constituent trades.',\n            },\n            {\n                id: 288,\n                added: 'FIX.4.4',\n                description: 'For optional use in reporting Trades',\n            },\n            {\n                id: 289,\n                added: 'FIX.4.4',\n                description: 'For optional use in reporting Trades',\n            },\n            {\n                id: 2449,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n                description: 'For optional use in reporting trades.',\n            },\n            {\n                id: 2450,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n                description: 'For optional use in reporting trades.',\n            },\n            {\n                id: 346,\n                added: 'FIX.4.4',\n                description: 'In an Aggregated Book, used to show how many individual orders make up an MDEntry',\n            },\n            {\n                id: 3104,\n                added: 'FIX.Latest',\n                addedEP: '300',\n                description:\n                    'May be used when MDEntryType(269)=2 (Trade) to indicate the number of trades aggregated to a single trade with MDEntryPx(270) as weighted average price and MDEntrySize(271) as total aggregated volume.',\n            },\n            {\n                id: 290,\n                added: 'FIX.4.4',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 546,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 811,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 828,\n                added: 'FIX.5.0SP1',\n                addedEP: '84',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'Specifies trade type when a trade is being reported. For optional use in reporting trades.',\n            },\n            {\n                id: 829,\n                added: 'FIX.5.0SP2',\n                addedEP: '163',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description: 'For optional use in reporting trades.',\n            },\n            {\n                id: 855,\n                added: 'FIX.Latest',\n                addedEP: '268',\n                description: 'For optional use in reporting trades. Conditionally requires presence of TrdType(828).',\n            },\n            {\n                id: 2896,\n                added: 'FIX.Latest',\n                addedEP: '268',\n                description:\n                    'For optional use in reporting trades. Conditionally requires presence of SecondaryTrdType(855).',\n            },\n            {\n                id: 1934,\n                added: 'FIX.5.0SP2',\n                addedEP: '216',\n                description:\n                    'Used only when reporting a trade (MDEntryType(269)=2 (Trade)) that is a regulatory trade report.',\n            },\n            {\n                id: 2963,\n                added: 'FIX.Latest',\n                addedEP: '277',\n                description: 'For optional use in reporting trades.',\n            },\n            {\n                id: 2405,\n                added: 'FIX.5.0SP2',\n                addedEP: '186',\n            },\n            {\n                id: 574,\n                added: 'FIX.5.0SP2',\n                addedEP: '163',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description: 'For optional use in reporting trades.',\n            },\n            {\n                id: 1115,\n                added: 'FIX.5.0SP2',\n                addedEP: '163',\n            },\n            {\n                id: 1390,\n                added: 'FIX.5.0SP2',\n                addedEP: '163',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description: 'For optional use in reporting trades.',\n            },\n            {\n                id: 2373,\n                added: 'FIX.Latest',\n                addedEP: '268',\n            },\n            {\n                id: 570,\n                added: 'FIX.5.0SP2',\n                addedEP: '216',\n            },\n            {\n                id: 58,\n                added: 'FIX.4.4',\n                description: 'Text to describe the Market Data Entry. Part of repeating group.',\n            },\n            {\n                id: 354,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description: 'Must be set if EncodedText(355) field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text(58) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 1023,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 528,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n            },\n            {\n                id: 1024,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 3105,\n                added: 'FIX.Latest',\n                addedEP: '300',\n            },\n            {\n                id: 332,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Used to report high price in association with trade, bid or ask rather than a separate entity',\n            },\n            {\n                id: 333,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'Used to report low price in association with trade, bid or ask rather than a separate entity.',\n            },\n            {\n                id: 1025,\n                added: 'FIX.5.0SP1',\n                addedEP: '84',\n                description: 'Indicates the first price of a trading session; can be a bid, ask, or trade price.',\n            },\n            {\n                id: 31,\n                added: 'FIX.5.0SP1',\n                addedEP: '84',\n                description: 'Indicates the last price of a trading session; can be a bid, ask, or trade price.',\n            },\n            {\n                id: 30,\n                added: 'FIX.Latest',\n                addedEP: '300',\n            },\n            {\n                id: 1592,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 1020,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Used to report trade volume in association with trade, bid or ask rather than a separate entity',\n            },\n            {\n                id: 1143,\n                added: 'FIX.Latest',\n                addedEP: '267',\n            },\n            {\n                id: 731,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n            },\n            {\n                id: 2451,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n            },\n            {\n                id: 63,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 64,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '82',\n                description:\n                    'Indicates date on which instrument will settle.\\n\\n\\n                        For NDFs required for specifying the \"value date\".',\n            },\n            {\n                id: 1070,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 83,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Used to identify the sequence number within a feed type',\n            },\n            {\n                id: 1048,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n            },\n            {\n                id: 1026,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1027,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 2445,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n            },\n            {\n                id: 2446,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n            },\n            {\n                id: 654,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n                description:\n                    'May be specified for an MDEntryType(269)=2 (Trade) entry to indicate that MDEntryPx(270), PriceType(423) and MDEntrySize(271) apply to the instance of the InstrmtLegGrp component with matching LegID(1788).',\n            },\n            {\n                id: 1028,\n                added: 'FIX.Latest',\n                addedEP: '301',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1074,\n                added: 'FIX.5.0SP2',\n                addedEP: '230',\n            },\n            {\n                id: 1062,\n                added: 'FIX.5.0SP1',\n                addedEP: '82',\n            },\n            {\n                id: 2102,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2206,\n                added: 'FIX.5.0SP2',\n                addedEP: '163',\n            },\n            {\n                id: 2220,\n                added: 'FIX.Latest',\n                addedEP: '300',\n                description: 'For optional use in reporting Trades.',\n            },\n            {\n                id: 1080,\n                added: 'FIX.Latest',\n                addedEP: '289',\n                description: 'For optional use in reporting trades as alternative to the use of individual fields.',\n            },\n            {\n                id: 1072,\n                added: 'FIX.5.0SP2',\n                addedEP: '216',\n            },\n            {\n                id: 2209,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n                description:\n                    'For optional use when reporting trades. Lists trades related to the current market data entry, e.g. leg trades of a multi-leg trade.',\n            },\n            {\n                id: 1012,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1020,\n                added: 'FIX.Latest',\n                addedEP: '300',\n                description: 'For optional use in reporting market data events.',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1022,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n            },\n            {\n                id: 1018,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n            },\n            {\n                id: 2122,\n                added: 'FIX.Latest',\n                addedEP: '267',\n            },\n        ],\n        numInGroup: {\n            id: 268,\n            added: 'FIX.4.4',\n            description: 'Number of entries following.',\n        },\n    },\n    {\n        id: 2032,\n        name: 'MDIncGrp',\n        abbrName: 'Inc',\n        added: 'FIX.4.4',\n        updated: 'FIX.Latest',\n        updatedEP: '300',\n        category: 'MarketData',\n        description:\n            'List of incremental market data updates for one or more instruments, e.g. when reporting updates of multiple price levels in the order book.',\n        fieldRef: [\n            {\n                id: 279,\n                presence: 'required',\n                added: 'FIX.4.4',\n                updated: 'FIX.Latest',\n                updatedEP: '289',\n                description: 'Required if NoMDEntries(268) > 0.',\n            },\n            {\n                id: 285,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description: 'If MDUpdateAction = Delete(2), can be used to specify a reason for the deletion.',\n            },\n            {\n                id: 1173,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Can be used to define a subordinate book.',\n            },\n            {\n                id: 264,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Can be used to define the current depth of the book.',\n            },\n            {\n                id: 269,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description: 'Conditionally required if MDUpdateAction(279) = 0 (New). Cannot be changed.',\n            },\n            {\n                id: 278,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'If specified, must be unique among currently active entries if MDUpdateAction(279) = 0 (New);\\n\\n\\n                        must be the same as a previous MDEntryID(278) if MDUpdateAction(279) = 2 (Delete);\\n\\n\\n                        must be the same as a previous MDEntryID(278) if MDUpdateAction(279) = 1 (Change) and MDEntryRefID(280) is not specified; or\\n\\n\\n                        must be unique among currently active entries if MDUpdateAction(279) = 1 (Change) and MDEntryRefID(280) is specified.',\n            },\n            {\n                id: 280,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'If MDUpdateAction(279) = 0 (New), for the first market data entry in a message, either this field or a security symbol must be specified.\\n\\n\\n                        If MDUpdateAction(279) = 1 (Change), this must refer to a previous MDEntryID(278).',\n            },\n            {\n                id: 1500,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n            {\n                id: 291,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 292,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 270,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'Conditionally required when MDUpdateAction(279) = 0 (New) and MDEntryType(269) is not A (Imbalance), B (Trade volume), or C (Open interest).\\n\\n\\n                        Conditionally required when MDEntryType(269) = Q (Auction clearing price).',\n            },\n            {\n                id: 423,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 819,\n                added: 'FIX.5.0SP2',\n                addedEP: '240',\n            },\n            {\n                id: 40,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Used to support market mechanism type; limit order, market order, committed principal order',\n            },\n            {\n                id: 15,\n                added: 'FIX.4.4',\n                description: 'Can be used to specify the currency of the quoted price.',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 120,\n                added: 'FIX.5.0SP1',\n                addedEP: '82',\n                description: 'Required for NDFs to specify the settlement currency (fixing currency).',\n            },\n            {\n                id: 2899,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 271,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'Conditionally required when MDUpdateAction(279) = 0 (New) and MDEntryType(269) = 0 (Bid), 1 (Offer), 2 (Trade), B (Trade volume), or C (Open interest).',\n            },\n            {\n                id: 1093,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Can be used to specify the lot type of the quoted size in order depth books.',\n            },\n            {\n                id: 272,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 273,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 274,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 275,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description: 'Market posting quote / trade. Valid values: See Volume 6: Appendix 6-C',\n            },\n            {\n                id: 336,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 625,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 326,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 327,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2447,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n            },\n            {\n                id: 2705,\n                added: 'FIX.5.0SP2',\n                addedEP: '229',\n            },\n            {\n                id: 276,\n                added: 'FIX.4.4',\n                description: 'Space-delimited list of conditions describing a quote.',\n            },\n            {\n                id: 277,\n                added: 'FIX.4.4',\n                description: 'Space-delimited list of conditions describing a trade',\n            },\n            {\n                id: 2961,\n                added: 'FIX.Latest',\n                addedEP: '274',\n            },\n            {\n                id: 2667,\n                added: 'FIX.5.0SP2',\n                addedEP: '216',\n            },\n            {\n                id: 1934,\n                added: 'FIX.5.0SP2',\n                addedEP: '216',\n                description:\n                    'Used only when reporting a trade (MDEntryType(269)=2 (Trade)) that is a regulatory trade report.',\n            },\n            {\n                id: 2963,\n                added: 'FIX.Latest',\n                addedEP: '277',\n                description: 'For optional use in reporting trades.',\n            },\n            {\n                id: 828,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description: 'For optional use in reporting trades.',\n            },\n            {\n                id: 829,\n                added: 'FIX.5.0SP2',\n                addedEP: '163',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description: 'For optional use in reporting trades.',\n            },\n            {\n                id: 855,\n                added: 'FIX.Latest',\n                addedEP: '268',\n                description: 'For optional use in reporting trades. Conditionally requires presence of TrdType(828).',\n            },\n            {\n                id: 2896,\n                added: 'FIX.Latest',\n                addedEP: '268',\n                description:\n                    'For optional use in reporting trades. Conditionally requires presence of SecondaryTrdType(855).',\n            },\n            {\n                id: 2405,\n                added: 'FIX.5.0SP2',\n                addedEP: '186',\n            },\n            {\n                id: 574,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description: 'For optional use in reporting trades.',\n            },\n            {\n                id: 1115,\n                added: 'FIX.5.0SP2',\n                addedEP: '163',\n            },\n            {\n                id: 1390,\n                added: 'FIX.5.0SP2',\n                addedEP: '163',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description: 'For optional use in reporting trades.',\n            },\n            {\n                id: 2373,\n                added: 'FIX.Latest',\n                addedEP: '268',\n            },\n            {\n                id: 570,\n                added: 'FIX.5.0SP2',\n                addedEP: '216',\n            },\n            {\n                id: 282,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n            },\n            {\n                id: 283,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n            },\n            {\n                id: 284,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n            },\n            {\n                id: 286,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'Used if MDEntryType(269) = 4 (Opening Price), 5 (Closing Price), or 6 (Settlement Price).',\n            },\n            {\n                id: 59,\n                added: 'FIX.4.4',\n                description: 'For optional use when this Bid or Offer represents an order',\n            },\n            {\n                id: 432,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'For optional use when this Bid or Offer represents an order. ExpireDate(432) and ExpireTime(126) cannot both be specified in one Market Data Entry.',\n            },\n            {\n                id: 126,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'For optional use when this Bid or Offer represents an order. ExpireDate(432) and ExpireTime(126) cannot both be specified in one Market Data Entry.',\n            },\n            {\n                id: 1629,\n                added: 'FIX.5.0SP2',\n                addedEP: '100',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description: 'Conditionally required when TimeInForce(59)= 10 (Good for Time).',\n            },\n            {\n                id: 1916,\n                added: 'FIX.5.0SP2',\n                addedEP: '159',\n            },\n            {\n                id: 110,\n                added: 'FIX.4.4',\n                description: 'For optional use when this Bid or Offer represents an order',\n            },\n            {\n                id: 18,\n                added: 'FIX.4.4',\n                description: 'Can contain multiple instructions, space delimited.',\n            },\n            {\n                id: 287,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 37,\n                added: 'FIX.4.4',\n                description: 'For optional use when this Bid, Offer, or Trade represents an order',\n            },\n            {\n                id: 198,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'For optional use to support Hit/Take (selecting a specific order from the feed) without disclosing a private order id.',\n            },\n            {\n                id: 299,\n                added: 'FIX.4.4',\n                description: 'For optional use when this Bid, Offer, or Trade represents a quote',\n            },\n            {\n                id: 1003,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'For optional use in reporting Trades',\n            },\n            {\n                id: 1851,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n                description:\n                    'For optional use in reporting Trades.\\n\\n\\n                        May be used to link together trades that are reported separately but are part of the same overall trade, e.g. spread trade and their constituent trades.',\n            },\n            {\n                id: 288,\n                added: 'FIX.4.4',\n                description: 'For optional use in reporting Trades',\n            },\n            {\n                id: 289,\n                added: 'FIX.4.4',\n                description: 'For optional use in reporting Trades',\n            },\n            {\n                id: 2449,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n                description: 'For optional use when reporting trades',\n            },\n            {\n                id: 2450,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n                description: 'For optional use when reporting trades',\n            },\n            {\n                id: 346,\n                added: 'FIX.4.4',\n                description: 'In an Aggregated Book, used to show how many individual orders make up an MDEntry',\n            },\n            {\n                id: 3104,\n                added: 'FIX.Latest',\n                addedEP: '300',\n                description:\n                    'May be used when MDEntryType(269)=2 (Trade) to indicate the number of trades aggregated to a single trade with MDEntryPx(270) as weighted average price and MDEntrySize(271) as total aggregated volume.',\n            },\n            {\n                id: 290,\n                added: 'FIX.4.4',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 546,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 811,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 451,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 58,\n                added: 'FIX.4.4',\n                description: 'Text to describe the Market Data Entry. Part of repeating group.',\n            },\n            {\n                id: 354,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description: 'Must be set if EncodedText(355) field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text(58) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 1023,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 528,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1024,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 3105,\n                added: 'FIX.Latest',\n                addedEP: '300',\n            },\n            {\n                id: 332,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 333,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1025,\n                added: 'FIX.5.0SP1',\n                addedEP: '84',\n                description: 'Indicates the first price of a trading session; can be a bid, ask, or a trade price.',\n            },\n            {\n                id: 31,\n                added: 'FIX.5.0SP1',\n                addedEP: '84',\n                description: 'Indicates the last price of a trading session; can be a bid, ask, or a trade price.',\n            },\n            {\n                id: 30,\n                added: 'FIX.Latest',\n                addedEP: '300',\n                description: 'Indicates the execution venue.',\n            },\n            {\n                id: 1592,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 1020,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1143,\n                added: 'FIX.Latest',\n                addedEP: '267',\n            },\n            {\n                id: 731,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n            },\n            {\n                id: 2451,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n            },\n            {\n                id: 63,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 64,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '82',\n                description:\n                    'Indicates date on which instrument will settle.\\n\\n\\n                        For NDFs required for specifying the \"value date\".',\n            },\n            {\n                id: 483,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'For optional use in reporting Trades. Used to specify the time of trade agreement for privately negotiated trades.',\n            },\n            {\n                id: 60,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'For optional use in reporting Trades. Used to specify the time of matching.',\n            },\n            {\n                id: 2445,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n                description: 'Entry time of the incoming order that triggered the trade',\n            },\n            {\n                id: 2446,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n            },\n            {\n                id: 1070,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 83,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Allows sequence number to be specified within a feed type',\n            },\n            {\n                id: 1048,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n            },\n            {\n                id: 1026,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1027,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1028,\n                added: 'FIX.Latest',\n                addedEP: '301',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2066,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n            },\n            {\n                id: 2019,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1066,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n            },\n            {\n                id: 1074,\n                added: 'FIX.5.0SP2',\n                addedEP: '230',\n            },\n            {\n                id: 1062,\n                added: 'FIX.5.0SP1',\n                addedEP: '82',\n            },\n            {\n                id: 2102,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2206,\n                added: 'FIX.5.0SP2',\n                addedEP: '163',\n            },\n            {\n                id: 1080,\n                added: 'FIX.Latest',\n                addedEP: '289',\n                description: 'For optional use in reporting trades as alternative to the use of individual fields.',\n            },\n            {\n                id: 1072,\n                added: 'FIX.5.0SP2',\n                addedEP: '216',\n            },\n            {\n                id: 2209,\n                added: 'FIX.5.0SP2',\n                addedEP: '190',\n                description:\n                    'For optional use when reporting trades. List of trades related to the current market data entry, e.g. leg trades of a multi-leg trade.',\n            },\n            {\n                id: 2220,\n                added: 'FIX.Latest',\n                addedEP: '300',\n                description: 'For optional use in reporting Trades.',\n            },\n            {\n                id: 1020,\n                added: 'FIX.Latest',\n                addedEP: '300',\n                description:\n                    'For optional use in reporting market data events. Preferred for regulatory timestamp reporting.',\n            },\n            {\n                id: 2103,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1012,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '190',\n            },\n            {\n                id: 1004,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n            },\n            {\n                id: 1002,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n            },\n            {\n                id: 1022,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of YieldData (yield-related) fields defined in Common Components of Application Messages',\n            },\n            {\n                id: 1018,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of SpreadOrBenchmarkCurveData (Fixed Income spread or benchmark curve) fields defined in Common Components of Application Messages',\n            },\n            {\n                id: 2122,\n                added: 'FIX.Latest',\n                addedEP: '267',\n            },\n        ],\n        numInGroup: {\n            id: 268,\n            added: 'FIX.4.4',\n            description: 'Number of entries following.',\n        },\n    },\n    {\n        id: 2033,\n        name: 'MDReqGrp',\n        abbrName: 'Req',\n        added: 'FIX.4.4',\n        category: 'MarketData',\n        fieldRef: [\n            {\n                id: 269,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Must be the first field in this repeating group. This is a list of all the types of Market Data Entries that the firm requesting the Market Data is interested in receiving.',\n            },\n        ],\n        numInGroup: {\n            id: 267,\n            added: 'FIX.4.4',\n            description: 'Number of MDEntryType fields requested.',\n        },\n    },\n    {\n        id: 2034,\n        name: 'MDRjctGrp',\n        abbrName: 'Rjct',\n        added: 'FIX.4.4',\n        category: 'MarketData',\n        fieldRef: [\n            {\n                id: 817,\n                added: 'FIX.4.4',\n                description: 'Alternative Market Data Source',\n            },\n        ],\n        numInGroup: {\n            id: 816,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2035,\n        name: 'MiscFeesGrp',\n        abbrName: 'MiscFees',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        category: 'Common',\n        description:\n            'The MiscFeesGrp component is used to provide details of trade and transaction fees other than commissions, e.g. regulatory, exchange, taxes, levies, markup, trade reporting, etc. In the context of ESMA RTS 27 Best Execution Reporting, it may also be used to collect and publish the nature and level of current venue fees, rebates and payouts. Use MiscFeeQualifier(2712) to communicate whether the fee affects trade economics.\\n\\nMiscFeesGrp should be used to convey fees related to the transaction (e.g. taxes, transaction based fees, etc.) and should not be used to specify payments based on the price or terms of the contract (e.g. upfront fee, premium amount, security lending fee, contract-based rebates, related fee resets, payment frequency, etc.). For contractual payments use the PaymentGrp component instead.',\n        fieldRef: [\n            {\n                id: 137,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '196',\n                description: 'Required if NoMiscFees(136) > 0.',\n            },\n            {\n                id: 138,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 139,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '196',\n                description: 'Required if NoMiscFees(136) > 0.',\n            },\n            {\n                id: 2712,\n                added: 'FIX.5.0SP2',\n                addedEP: '231',\n            },\n            {\n                id: 891,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2216,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2217,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2713,\n                added: 'FIX.5.0SP2',\n                addedEP: '231',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2259,\n                added: 'FIX.5.0SP2',\n                addedEP: '196',\n            },\n        ],\n        numInGroup: {\n            id: 136,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP1',\n            updatedEP: '95',\n            description: 'Required if any miscellaneous fees are reported. Indicates number of repeating entries.',\n        },\n    },\n    {\n        id: 2036,\n        name: 'OrdAllocGrp',\n        abbrName: 'OrdAlloc',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 11,\n                added: 'FIX.4.4',\n                description:\n                    'Order identifier assigned by client if order(s) were electronically delivered over FIX (or otherwise assigned a ClOrdID) and executed. If order(s) were manually delivered (or otherwise not delivered over FIX) this field should contain string \"MANUAL\". Note where an order has undergone one or more cancel/replaces, this should be the ClOrdID of the most recent version of the order.\\n\\n\\n                        Required when NoOrders(73) > 0 and must be the first repeating field in the group.',\n            },\n            {\n                id: 37,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 198,\n                added: 'FIX.4.4',\n                description: 'Can be used to provide order id used by exchange or executing system.',\n            },\n            {\n                id: 526,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 66,\n                added: 'FIX.4.4',\n                description: 'Required for List Orders.',\n            },\n            {\n                id: 38,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 799,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '82',\n                description:\n                    'Average price for this order.\\n\\n\\n                        For FX, if specified, expressed in terms of Currency(15).',\n            },\n            {\n                id: 800,\n                added: 'FIX.4.4',\n                description:\n                    \"Quantity of this order that is being booked out by this message (will be equal to or less than this order's OrderQty)\\n\\n\\n                        Note that the sum of the OrderBookingQty values in this repeating group must equal the total quantity being allocated (in Quantity (53) field)\",\n            },\n            {\n                id: 40,\n                added: 'FIX.5.0SP2',\n                addedEP: '237',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1009,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"NestedParties2\" fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        This is used to identify the executing broker for step in/give in trades',\n            },\n        ],\n        numInGroup: {\n            id: 73,\n            added: 'FIX.4.4',\n            description:\n                'Indicates number of orders to be combined for allocation. If order(s) were manually delivered set to 1 (one).Required when AllocNoOrdersType = 1',\n        },\n    },\n    {\n        id: 2037,\n        name: 'OrdListStatGrp',\n        abbrName: 'ListStat',\n        added: 'FIX.4.4',\n        category: 'ProgramTrading',\n        fieldRef: [\n            {\n                id: 11,\n                added: 'FIX.4.4',\n                description:\n                    'Required when referring to orders that were electronically submitted over FIX or otherwise assigned a ClOrdID.',\n            },\n            {\n                id: 37,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 526,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 14,\n                presence: 'required',\n                added: 'FIX.4.4',\n            },\n            {\n                id: 39,\n                presence: 'required',\n                added: 'FIX.4.4',\n            },\n            {\n                id: 636,\n                added: 'FIX.4.4',\n                description: 'For optional use with OrdStatus = 0 (New)',\n            },\n            {\n                id: 151,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description: 'Quantity open for further execution. LeavesQty = OrderQty - CumQty.',\n            },\n            {\n                id: 84,\n                presence: 'required',\n                added: 'FIX.4.4',\n            },\n            {\n                id: 6,\n                presence: 'required',\n                added: 'FIX.4.4',\n            },\n            {\n                id: 103,\n                added: 'FIX.4.4',\n                description: 'Used if the order is rejected',\n            },\n            {\n                id: 58,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 354,\n                added: 'FIX.4.4',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.4.4',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.',\n            },\n        ],\n        numInGroup: {\n            id: 73,\n            added: 'FIX.4.4',\n            description: 'Number of orders statused in this message, i.e. number of repeating groups to follow.',\n        },\n    },\n    {\n        id: 2038,\n        name: 'PosUndInstrmtGrp',\n        abbrName: 'PosUnd',\n        added: 'FIX.4.4',\n        category: 'PositionMaintenance',\n        fieldRef: [\n            {\n                id: 732,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 733,\n                added: 'FIX.4.4',\n                description: 'Values = Final, Theoretical',\n            },\n            {\n                id: 1037,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1026,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of \"Underlying Amount\" fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1021,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Underlying Instrument\" (underlying symbology) fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        Required if NoUnderlyings > 0',\n            },\n        ],\n        numInGroup: {\n            id: 711,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2039,\n        name: 'PreAllocGrp',\n        abbrName: 'PreAll',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 79,\n                added: 'FIX.4.4',\n                description: 'Required if NoAllocs > 0. Must be first field in repeating group.',\n            },\n            {\n                id: 661,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 736,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2927,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 467,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2727,\n                added: 'FIX.5.0SP2',\n                addedEP: '234',\n                description:\n                    'The field may not be used in NewOrderSingle(35=D), OrderCancelReplaceRequest(35=G), NewOrderList(35=E) or any other message where there are no legs.',\n            },\n            {\n                id: 209,\n                added: 'FIX.5.0SP2',\n                addedEP: '245',\n            },\n            {\n                id: 80,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1752,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description: 'Only used for specific lot trades.',\n            },\n            {\n                id: 1753,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, either VersusPurchasePrice(1754) or CurrentCostBasis(1755) should be specified.',\n            },\n            {\n                id: 1754,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, VersusPurchaseDate(1753) should be specified.',\n            },\n            {\n                id: 1755,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, VersusPurchaseDate(1753) should be specified',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1008,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Nested Parties\" (firm identification \"nested\" within additional repeating group) fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        Used for NestedPartyRole=Clearing Firm',\n            },\n        ],\n        numInGroup: {\n            id: 78,\n            added: 'FIX.4.4',\n            description: 'Number of repeating groups for pre-trade allocation',\n        },\n    },\n    {\n        id: 2040,\n        name: 'PreAllocMlegGrp',\n        abbrName: 'PreAllocMleg',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 79,\n                added: 'FIX.4.4',\n                description: 'Required if NoAllocs > 0. Must be first field in repeating group.',\n            },\n            {\n                id: 661,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 736,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2927,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 467,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2727,\n                added: 'FIX.5.0SP2',\n                addedEP: '234',\n            },\n            {\n                id: 80,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1752,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description: 'Only used for specific lot trades.',\n            },\n            {\n                id: 1753,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, either VersusPurchasePrice(1754) or CurrentCostBasis(1755) should be specified.',\n            },\n            {\n                id: 1754,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, VersusPurchaseDate(1753) should be specified.',\n            },\n            {\n                id: 1755,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, VersusPurchaseDate(1753) should be specified',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1010,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"NestedParties3\" (firm identification \"nested\" within additional repeating group) fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        numInGroup: {\n            id: 78,\n            added: 'FIX.4.4',\n            description: 'Number of repeating groups for pre-trade allocation',\n        },\n    },\n    {\n        id: 2041,\n        name: 'QuotCxlEntriesGrp',\n        abbrName: 'QuotCxlEntry',\n        added: 'FIX.4.4',\n        category: 'QuotationNegotiation',\n        groupRef: [\n            {\n                id: 2066,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2019,\n                added: 'FIX.4.4',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Instrument\" (symbology) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1002,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"FinancingDetails\" (symbology) fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        numInGroup: {\n            id: 295,\n            added: 'FIX.4.4',\n            description:\n                'The number of securities (instruments) whose quotes are to be canceled\\n\\n\\n                        Not required when cancelling all quotes.',\n        },\n    },\n    {\n        id: 2042,\n        name: 'QuotEntryAckGrp',\n        abbrName: 'QuotEntryAck',\n        added: 'FIX.4.4',\n        category: 'QuotationNegotiation',\n        fieldRef: [\n            {\n                id: 299,\n                added: 'FIX.4.4',\n                description:\n                    'Uniquely identifies the quote across the complete set of all quotes for a given quote provider.\\n\\n\\n                        First field in repeating group. Required if NoQuoteEntries > 0.',\n            },\n            {\n                id: 132,\n                added: 'FIX.4.4',\n                description:\n                    'If F/X quote, should be the \"all-in\" rate (spot rate adjusted for forward points). Note that either BidPx, OfferPx or both must be specified.',\n            },\n            {\n                id: 133,\n                added: 'FIX.4.4',\n                description:\n                    'If F/X quote, should be the \"all-in\" rate (spot rate adjusted for forward points). Note that either BidPx, OfferPx or both must be specified.',\n            },\n            {\n                id: 134,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 135,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 62,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 188,\n                added: 'FIX.4.4',\n                description: 'May be applicable for F/X quotes',\n            },\n            {\n                id: 190,\n                added: 'FIX.4.4',\n                description: 'May be applicable for F/X quotes',\n            },\n            {\n                id: 189,\n                added: 'FIX.4.4',\n                description: 'May be applicable for F/X quotes',\n            },\n            {\n                id: 191,\n                added: 'FIX.4.4',\n                description: 'May be applicable for F/X quotes',\n            },\n            {\n                id: 631,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 632,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 633,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 634,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 60,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 336,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 625,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 64,\n                added: 'FIX.4.4',\n                description: 'Can be used with forex quotes to specify a specific \"value date\"',\n            },\n            {\n                id: 40,\n                added: 'FIX.4.4',\n                description: 'Can be used to specify the type of order the quote is for',\n            },\n            {\n                id: 193,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Can be used with OrdType = \"Forex - Swap\" to specify the \"value date\" for the future portion of a F/X swap.',\n            },\n            {\n                id: 192,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Can be used with OrdType = \"Forex - Swap\" to specify the order quantity for the future portion of a F/X swap.',\n            },\n            {\n                id: 642,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Bid F/X forward points of the future portion of a F/X swap quote added to spot rate. May be a negative value',\n            },\n            {\n                id: 643,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Offer F/X forward points of the future portion of a F/X swap quote added to spot rate. May be a negative value',\n            },\n            {\n                id: 15,\n                added: 'FIX.4.4',\n                description: 'Can be used to specify the currency of the quoted price.',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 775,\n                added: 'FIX.5.0SP1',\n                addedEP: '78',\n            },\n            {\n                id: 528,\n                added: 'FIX.5.0SP1',\n                addedEP: '78',\n            },\n            {\n                id: 529,\n                added: 'FIX.5.0SP1',\n                addedEP: '78',\n            },\n            {\n                id: 1167,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 368,\n                added: 'FIX.4.4',\n                description: 'Reason Quote Entry was rejected.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2019,\n                added: 'FIX.4.4',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Instrument\" (symbology) fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        numInGroup: {\n            id: 295,\n            added: 'FIX.4.4',\n            description: 'The number of quotes for this Symbol (QuoteSet) that follow in this message.',\n        },\n    },\n    {\n        id: 2043,\n        name: 'QuotEntryGrp',\n        abbrName: 'QuotEntry',\n        added: 'FIX.4.4',\n        category: 'QuotationNegotiation',\n        fieldRef: [\n            {\n                id: 299,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Uniquely identifies the quote across the complete set of all quotes for a given quote provider.',\n            },\n            {\n                id: 132,\n                added: 'FIX.4.4',\n                description:\n                    'If F/X quote, should be the \"all-in\" rate (spot rate adjusted for forward points). Note that either BidPx, OfferPx or both must be specified.',\n            },\n            {\n                id: 133,\n                added: 'FIX.4.4',\n                description:\n                    'If F/X quote, should be the \"all-in\" rate (spot rate adjusted for forward points). Note that either BidPx, OfferPx or both must be specified.',\n            },\n            {\n                id: 1749,\n                added: 'FIX.5.0SP2',\n                addedEP: '184',\n            },\n            {\n                id: 1750,\n                added: 'FIX.5.0SP2',\n                addedEP: '184',\n            },\n            {\n                id: 134,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 135,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 62,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 188,\n                added: 'FIX.4.4',\n                description: 'May be applicable for F/X quotes',\n            },\n            {\n                id: 190,\n                added: 'FIX.4.4',\n                description: 'May be applicable for F/X quotes',\n            },\n            {\n                id: 189,\n                added: 'FIX.4.4',\n                description: 'May be applicable for F/X quotes',\n            },\n            {\n                id: 191,\n                added: 'FIX.4.4',\n                description: 'May be applicable for F/X quotes',\n            },\n            {\n                id: 631,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 632,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 633,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 634,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 60,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 336,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 625,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 64,\n                added: 'FIX.4.4',\n                description: 'Can be used with forex quotes to specify a specific \"value date\"',\n            },\n            {\n                id: 40,\n                added: 'FIX.4.4',\n                description: 'Can be used to specify the type of order the quote is for',\n            },\n            {\n                id: 193,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Can be used with OrdType = \"Forex - Swap\" to specify the \"value date\" for the future portion of a F/X swap.',\n            },\n            {\n                id: 192,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Can be used with OrdType = \"Forex - Swap\" to specify the order quantity for the future portion of a F/X swap.',\n            },\n            {\n                id: 642,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Bid F/X forward points of the future portion of a F/X swap quote added to spot rate. May be a negative value',\n            },\n            {\n                id: 643,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Offer F/X forward points of the future portion of a F/X swap quote added to spot rate. May be a negative value',\n            },\n            {\n                id: 15,\n                added: 'FIX.4.4',\n                description: 'Can be used to specify the currency of the quoted price.',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 775,\n                added: 'FIX.5.0SP1',\n                addedEP: '78',\n            },\n            {\n                id: 528,\n                added: 'FIX.5.0SP1',\n                addedEP: '78',\n            },\n            {\n                id: 529,\n                added: 'FIX.5.0SP1',\n                addedEP: '78',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2019,\n                added: 'FIX.4.4',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Instrument\" (symbology) fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        numInGroup: {\n            id: 295,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP1',\n            updatedEP: '95',\n            description: 'The number of quotes for this Symbol (instrument) (QuoteSet) that follow in this message.',\n        },\n    },\n    {\n        id: 2044,\n        name: 'QuotQualGrp',\n        abbrName: 'QuotQual',\n        added: 'FIX.4.4',\n        category: 'QuotationNegotiation',\n        fieldRef: [\n            {\n                id: 695,\n                added: 'FIX.4.4',\n                description: 'Required if NoQuoteQualifiers > 1',\n            },\n        ],\n        numInGroup: {\n            id: 735,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2045,\n        name: 'QuotReqGrp',\n        abbrName: 'QuotReq',\n        added: 'FIX.4.4',\n        category: 'QuotationNegotiation',\n        fieldRef: [\n            {\n                id: 140,\n                added: 'FIX.4.4',\n                description: 'Useful for verifying security identification',\n            },\n            {\n                id: 303,\n                added: 'FIX.4.4',\n                description: 'Indicates the type of Quote Request (e.g. Manual vs. Automatic) being generated.',\n            },\n            {\n                id: 117,\n                added: 'FIX.5.0SP2',\n                addedEP: '126',\n                description: 'Can be used when QuoteRequestType(303) = 3(Confirm Quote).',\n            },\n            {\n                id: 1751,\n                added: 'FIX.5.0SP2',\n                addedEP: '126',\n                description: 'Can be used when QuoteRequestType(303) = 3(Confirm Quote).',\n            },\n            {\n                id: 537,\n                added: 'FIX.4.4',\n                description:\n                    'Type of quote being requested from counterparty or market (e.g. Indicative, Firm, or Restricted Tradeable)\\n\\n\\n                        Valid values used by FX in the request: 0 = Indicative, 1 = Tradeable; Absence implies a request for an indicative quote.',\n            },\n            {\n                id: 336,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 625,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 229,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1913,\n                added: 'FIX.5.0SP2',\n                addedEP: '159',\n            },\n            {\n                id: 54,\n                added: 'FIX.4.4',\n                description:\n                    'If OrdType = \"Forex - Swap\", should be the side of the future portion of a F/X swap. The absence of a side implies that a two-sided quote is being requested.\\n\\n\\n                        For single instrument use. FX values, 1 = Buy, 2 = Sell; This is from the perspective of the Initiator. If absent then a two-sided quote is being requested for spot or forward.',\n            },\n            {\n                id: 854,\n                added: 'FIX.4.4',\n                description:\n                    'Type of quantity specified in a quantity field.\\n\\n\\n                        For FX, if used, should be \"0\".',\n            },\n            {\n                id: 110,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 63,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '82',\n                description: 'For NDFs either SettlType (specifying the tenor) or SettlDate must be specified.',\n            },\n            {\n                id: 64,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP1',\n                updatedEP: '82',\n                description:\n                    'Can be used (e.g. with forex quotes) to specify the desired \"value date\".\\n\\n\\n                        For NDFs either SettlType (specifying the tenor) or SettlDate must be specified.',\n            },\n            {\n                id: 193,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Can be used with OrdType = \"Forex - Swap\" to specify the \"value date\" for the future portion of a F/X swap.',\n            },\n            {\n                id: 192,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Can be used with OrdType = \"Forex - Swap\" to specify the order quantity for the future portion of a F/X swap.',\n            },\n            {\n                id: 15,\n                added: 'FIX.4.4',\n                description:\n                    \"Can be used to specify the desired currency of the quoted price. May differ from the 'normal' trading currency of the instrument being quote requested.\",\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 120,\n                added: 'FIX.5.0SP1',\n                addedEP: '82',\n                description: 'Required for NDFs to specify the settlement currency (fixing currency).',\n            },\n            {\n                id: 2899,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 660,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 581,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 828,\n                added: 'FIX.5.0SP2',\n                addedEP: '176',\n                description: 'May be used by SEFs (Swap Execution Facilities) to indicate a block swap transaction.',\n            },\n            {\n                id: 2347,\n                added: 'FIX.5.0SP2',\n                addedEP: '176',\n            },\n            {\n                id: 2115,\n                added: 'FIX.5.0SP2',\n                addedEP: '168',\n            },\n            {\n                id: 692,\n                added: 'FIX.4.4',\n                description:\n                    'Initiator can specify the price type the quote needs to be quoted at. If not specified, the Respondent has option to specify how quote is quoted.',\n            },\n            {\n                id: 40,\n                added: 'FIX.4.4',\n                description: 'Can be used to specify the type of order the quote request is for',\n            },\n            {\n                id: 62,\n                added: 'FIX.4.4',\n                description:\n                    'Used by the quote initiator to indicate the period of time the resulting Quote must be valid until',\n            },\n            {\n                id: 126,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '159',\n                description: 'The time when the request for quote or negotiation dialog will expire.',\n            },\n            {\n                id: 1914,\n                added: 'FIX.5.0SP2',\n                addedEP: '159',\n            },\n            {\n                id: 1915,\n                added: 'FIX.5.0SP2',\n                addedEP: '159',\n            },\n            {\n                id: 1629,\n                added: 'FIX.5.0SP2',\n                addedEP: '159',\n                description:\n                    'The (minimum or suggested) period of time a quote price is tradable before it becomes indicative (i.e. off-the-wire).',\n            },\n            {\n                id: 1916,\n                added: 'FIX.5.0SP2',\n                addedEP: '159',\n            },\n            {\n                id: 60,\n                added: 'FIX.4.4',\n                description: 'Time transaction was entered',\n            },\n            {\n                id: 423,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 44,\n                added: 'FIX.4.4',\n                description: 'Quoted or target price',\n            },\n            {\n                id: 631,\n                added: 'FIX.5.0SP2',\n                addedEP: '175',\n                description: 'For OTC swaps, may be used to provide the estimated mid-market-mark.',\n            },\n            {\n                id: 640,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Can be used with OrdType = \"Forex - Swap\" to specify the Quoted or target price for the future portion of a F/X swap.',\n            },\n            {\n                id: 1937,\n                added: 'FIX.5.0SP2',\n                addedEP: '258',\n                description:\n                    'Maybe used to indicate quote/negotiation is for the specified post-execution trade continuation or lifecycle event.',\n            },\n            {\n                id: 2374,\n                added: 'FIX.5.0SP2',\n                addedEP: '258',\n            },\n            {\n                id: 2372,\n                added: 'FIX.5.0SP2',\n                addedEP: '258',\n                description:\n                    'Must be set if EncodedTradeContinuationText(2371) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2371,\n                added: 'FIX.5.0SP2',\n                addedEP: '258',\n                description:\n                    'Encoded (non-ASCII characters) representation of the TradeContinuationText(2374) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 443,\n                added: 'FIX.5.0SP2',\n                addedEP: '226',\n                description: 'Conditionally required when QuoteQual(695) = d (Deferred spot) is specified.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2066,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1062,\n                added: 'FIX.5.0SP1',\n                addedEP: '82',\n            },\n            {\n                id: 1019,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Stipulations\" (repeating group of Fixed Income stipulations) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 2046,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2044,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2220,\n                added: 'FIX.5.0SP2',\n                addedEP: '258',\n            },\n            {\n                id: 1074,\n                added: 'FIX.5.0SP2',\n                addedEP: '230',\n            },\n            {\n                id: 1012,\n                added: 'FIX.4.4',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Instrument\" (symbology) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1002,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"FinancingDetails\" (symbology) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1011,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '258',\n                description:\n                    'Conditionally required for single instrument quoting when applicable for the type of instrument.',\n            },\n            {\n                id: 1018,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"SpreadOrBenchmarkCurveData\" (Fixed Income spread or benchmark curve) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1022,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"YieldData\" (yield-related) fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        numInGroup: {\n            id: 146,\n            added: 'FIX.4.4',\n            description: 'Number of related symbols (instruments) in Request',\n        },\n    },\n    {\n        id: 2046,\n        name: 'QuotReqLegsGrp',\n        abbrName: 'Leg',\n        added: 'FIX.4.4',\n        category: 'QuotationNegotiation',\n        fieldRef: [\n            {\n                id: 685,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n            },\n            {\n                id: 687,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '131',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'The LegQty(687) field is deprecated. The use of LegOrderQty(685) is recommended instead.',\n            },\n            {\n                id: 2346,\n                added: 'FIX.5.0SP2',\n                addedEP: '175',\n                description: 'For OTC swaps, may be used to provide the estimated mid-market mark.',\n            },\n            {\n                id: 690,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 587,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 588,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 654,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '131',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Use of LegRefID(654) in this component is deprecated. Recommend the use of LegID(1788) in the InstrumentLeg component.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1007,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1008,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2286,\n                added: 'FIX.Latest',\n                addedEP: '302',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1005,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Required if NoLegs(555) > 0.',\n            },\n            {\n                id: 1006,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 555,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '131',\n            description: '',\n        },\n    },\n    {\n        id: 2047,\n        name: 'QuotReqRjctGrp',\n        abbrName: 'QuotReqRej',\n        added: 'FIX.4.4',\n        category: 'QuotationNegotiation',\n        fieldRef: [\n            {\n                id: 140,\n                added: 'FIX.4.4',\n                description: 'Useful for verifying security identification',\n            },\n            {\n                id: 303,\n                added: 'FIX.4.4',\n                description: 'Indicates the type of Quote Request (e.g. Manual vs. Automatic) being generated.',\n            },\n            {\n                id: 537,\n                added: 'FIX.4.4',\n                description:\n                    'Type of quote being requested from counterparty or market (e.g. Indicative, Firm, or Restricted Tradeable)',\n            },\n            {\n                id: 336,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 625,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 229,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 54,\n                added: 'FIX.4.4',\n                description:\n                    'If OrdType = \"Forex - Swap\", should be the side of the future portion of a F/X swap. The absence of a side implies that a two-sided quote is being requested.\\n\\n\\n                        Required if specified in Quote Request message.',\n            },\n            {\n                id: 854,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 63,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 64,\n                added: 'FIX.4.4',\n                description: 'Can be used (e.g. with forex quotes) to specify the desired \"value date\"',\n            },\n            {\n                id: 193,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Can be used with OrdType = \"Forex - Swap\" to specify the \"value date\" for the future portion of a F/X swap.',\n            },\n            {\n                id: 192,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Can be used with OrdType = \"Forex - Swap\" to specify the order quantity for the future portion of a F/X swap.',\n            },\n            {\n                id: 15,\n                added: 'FIX.4.4',\n                description:\n                    \"Can be used to specify the desired currency of the quoted price. May differ from the 'normal' trading currency of the instrument being quote requested.\",\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 660,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 581,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2115,\n                added: 'FIX.5.0SP2',\n                addedEP: '168',\n            },\n            {\n                id: 692,\n                added: 'FIX.4.4',\n                description:\n                    'Initiator can specify the price type the quote needs to be quoted at. If not specified, the Respondent has option to specify how quote is quoted.',\n            },\n            {\n                id: 40,\n                added: 'FIX.4.4',\n                description: 'Can be used to specify the type of order the quote request is for',\n            },\n            {\n                id: 126,\n                added: 'FIX.4.4',\n                description: 'The time when Quote Request will expire.',\n            },\n            {\n                id: 60,\n                added: 'FIX.4.4',\n                description: 'Time transaction was entered',\n            },\n            {\n                id: 423,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 44,\n                added: 'FIX.4.4',\n                description: 'Quoted or target price',\n            },\n            {\n                id: 640,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n                description:\n                    'Can be used with OrdType = \"Forex - Swap\" to specify the Quoted or target price for the future portion of a F/X swap.',\n            },\n            {\n                id: 443,\n                added: 'FIX.5.0SP2',\n                addedEP: '226',\n                description: 'Conditionally required when QuoteQual(695) = d (Deferred spot) is specified.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2066,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1019,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Stipulations\" (repeating group of Fixed Income stipulations) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 2046,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2044,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1074,\n                added: 'FIX.5.0SP2',\n                addedEP: '230',\n            },\n            {\n                id: 1012,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Parties\" (firm identification) fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Instrument\" (symbology) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1002,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"FinancingDetails\" (symbology) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1011,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"OrderQytData\" fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        Required if component is specified in Quote Request message.',\n            },\n            {\n                id: 1018,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"SpreadOrBenchmarkCurveData\" (Fixed Income spread or benchmark curve) fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1022,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"YieldData\" (yield-related) fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        numInGroup: {\n            id: 146,\n            added: 'FIX.4.4',\n            description: 'Number of related symbols (instruments) in Request',\n        },\n    },\n    {\n        id: 2048,\n        name: 'QuotSetAckGrp',\n        abbrName: 'QuotSetAck',\n        added: 'FIX.4.4',\n        category: 'QuotationNegotiation',\n        fieldRef: [\n            {\n                id: 302,\n                added: 'FIX.4.4',\n                description: 'First field in repeating group. Required if NoQuoteSets > 0',\n            },\n            {\n                id: 367,\n                added: 'FIX.5.0SP1',\n                addedEP: '95',\n            },\n            {\n                id: 304,\n                added: 'FIX.4.4',\n                description:\n                    'Total number of quotes for the quote set across all messages. Should be the sum of all NoQuoteEntries in each message that has repeating quotes that are part of the same quote set.\\n\\n\\n                        Required if NoQuoteEntries > 0',\n            },\n            {\n                id: 1168,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Total number of quotes canceled for the quote set across all messages.',\n            },\n            {\n                id: 1169,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Total number of quotes accepted for the quote set across all messages.',\n            },\n            {\n                id: 1170,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Total number of quotes rejected for the quote set across all messages.',\n            },\n            {\n                id: 893,\n                added: 'FIX.4.4',\n                description:\n                    'Indicates whether this is the last fragment in a sequence of message fragments. Only required where message has been fragmented.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2042,\n                added: 'FIX.4.4',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1021,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"UnderlyingInstrument\" (underlying symbology) fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        Required if NoQuoteSets > 0',\n            },\n        ],\n        numInGroup: {\n            id: 296,\n            added: 'FIX.4.4',\n            description: 'The number of sets of quotes in the message',\n        },\n    },\n    {\n        id: 2049,\n        name: 'QuotSetGrp',\n        abbrName: 'QuotSet',\n        added: 'FIX.4.4',\n        category: 'QuotationNegotiation',\n        fieldRef: [\n            {\n                id: 302,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Sequential number for the Quote Set. For a given QuoteID - assumed to start at 1.\\n\\n\\n                        Must be the first field in the repeating group.',\n            },\n            {\n                id: 367,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 304,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Total number of quotes for the quote set across all messages. Should be the sum of all NoQuoteEntries in each message that has repeating quotes that are part of the same quote set.',\n            },\n            {\n                id: 893,\n                added: 'FIX.4.4',\n                description:\n                    'Indicates whether this is the last fragment in a sequence of message fragments. Only required where message has been fragmented.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2043,\n                presence: 'required',\n                added: 'FIX.4.4',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1021,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"UnderlyingInstrument\" (underlying symbology) fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        numInGroup: {\n            id: 296,\n            added: 'FIX.4.4',\n            description: 'The number of sets of quotes in the message',\n        },\n    },\n    {\n        id: 2050,\n        name: 'RelSymDerivSecGrp',\n        abbrName: 'RelSym',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'SecuritiesReferenceData',\n        fieldRef: [\n            {\n                id: 15,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 292,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Identifies the type of Corporate Action',\n            },\n            {\n                id: 1504,\n                added: 'FIX.5.0SP1',\n                addedEP: '94',\n            },\n            {\n                id: 1606,\n                added: 'FIX.5.0SP2',\n                addedEP: '114',\n                description: 'Number of simple instruments.',\n            },\n            {\n                id: 58,\n                added: 'FIX.4.4',\n                description: 'Comment, instructions, or other identifying information.',\n            },\n            {\n                id: 354,\n                added: 'FIX.4.4',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.4.4',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2019,\n                added: 'FIX.4.4',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2121,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Secondary price limit rules',\n            },\n            {\n                id: 1004,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 146,\n            added: 'FIX.4.4',\n            description: 'Specifies the number of repeating symbols (instruments) specified',\n        },\n    },\n    {\n        id: 2051,\n        name: 'RFQReqGrp',\n        abbrName: 'RFQReq',\n        added: 'FIX.4.4',\n        category: 'QuotationNegotiation',\n        fieldRef: [\n            {\n                id: 140,\n                added: 'FIX.4.4',\n                description: 'Useful for verifying security identification',\n            },\n            {\n                id: 303,\n                added: 'FIX.4.4',\n                description: 'Indicates the type of Quote Request (e.g. Manual vs. Automatic) being generated.',\n            },\n            {\n                id: 537,\n                added: 'FIX.4.4',\n                description:\n                    'Type of quote being requested from counterparty or market (e.g. Indicative, Firm, or Restricted Tradeable)',\n            },\n            {\n                id: 336,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 625,\n                added: 'FIX.4.4',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2066,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2019,\n                added: 'FIX.4.4',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Instrument\" (symbology) fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        numInGroup: {\n            id: 146,\n            added: 'FIX.4.4',\n            description: 'Number of related symbols (instruments) in Request',\n        },\n    },\n    {\n        id: 2052,\n        name: 'RgstDistInstGrp',\n        abbrName: 'RgDtlInst',\n        added: 'FIX.4.4',\n        category: 'RegistrationInstruction',\n        fieldRef: [\n            {\n                id: 477,\n                added: 'FIX.4.4',\n                description: 'Must be first field in the repeating group if NoDistribInsts > 0.',\n            },\n            {\n                id: 512,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 478,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 498,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 499,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 500,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 501,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 502,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 510,\n            added: 'FIX.4.4',\n            description: 'Number of Distribution instructions in this message (number of repeating groups to follow)',\n        },\n    },\n    {\n        id: 2053,\n        name: 'RgstDtlsGrp',\n        abbrName: 'RgDtl',\n        added: 'FIX.4.4',\n        category: 'RegistrationInstruction',\n        fieldRef: [\n            {\n                id: 509,\n                added: 'FIX.4.4',\n                description: 'Must be first field in the repeating group',\n            },\n            {\n                id: 511,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 474,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 482,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 522,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 486,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 475,\n                added: 'FIX.4.4',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1008,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Nested Parties\" (firm identification \"nested\" within additional repeating group) fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        Used for NestedPartyRole=InvestorID',\n            },\n        ],\n        numInGroup: {\n            id: 473,\n            added: 'FIX.4.4',\n            description: 'Number of registration details in this message (number of repeating groups to follow)',\n        },\n    },\n    {\n        id: 2054,\n        name: 'RoutingGrp',\n        abbrName: 'Rtg',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '257',\n        category: 'Common',\n        description:\n            'The RoutingGrp is used to allow the application message sender to instruct the intermediary distributing the message who to further send the application message to. The original sender may also instruct who is not allowed to receive the message. When provided, the routing instructions provided in this component are effective on a message by message basis.',\n        fieldRef: [\n            {\n                id: 216,\n                added: 'FIX.4.4',\n                description: 'Indicates type of RoutingID. Required if NoRoutingIDs is > 0.',\n            },\n            {\n                id: 217,\n                added: 'FIX.4.4',\n                description: 'Identifies routing destination. Required if NoRoutingIDs is > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 215,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '257',\n            description: '',\n        },\n    },\n    {\n        id: 2055,\n        name: 'SecListGrp',\n        abbrName: 'SecL',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'SecuritiesReferenceData',\n        fieldRef: [\n            {\n                id: 15,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1504,\n                added: 'FIX.5.0SP1',\n                addedEP: '94',\n            },\n            {\n                id: 1606,\n                added: 'FIX.5.0SP2',\n                addedEP: '114',\n                description: 'Number of simple instruments.',\n            },\n            {\n                id: 58,\n                added: 'FIX.4.4',\n                description: 'Comment, instructions, or other identifying information.',\n            },\n            {\n                id: 354,\n                added: 'FIX.4.4',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.4.4',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2188,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n                description: 'Used to specify forms of product classifications',\n            },\n            {\n                id: 2119,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Used to provide listing rules',\n            },\n            {\n                id: 2066,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1019,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Stipulations\" fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 2021,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1066,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n            },\n            {\n                id: 2223,\n                added: 'FIX.5.0SP2',\n                addedEP: '160',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Instrument\" (symbology) fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        of the requested Security',\n            },\n            {\n                id: 1004,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"InstrumentExtension\" fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1002,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"FinancingDetails\" fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1058,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Used to provide listing rules',\n            },\n            {\n                id: 1018,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"SpreadOrBenchmarkCurveData\" fields defined in \"Common Components of Application Messages\"',\n            },\n            {\n                id: 1022,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"YieldData\" fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        numInGroup: {\n            id: 146,\n            added: 'FIX.4.4',\n            description: 'Specifies the number of repeating symbols (instruments) specified',\n        },\n    },\n    {\n        id: 2056,\n        name: 'SecTypesGrp',\n        abbrName: 'SecT',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'SecuritiesReferenceData',\n        fieldRef: [\n            {\n                id: 167,\n                added: 'FIX.4.4',\n                description: 'Required if NoSecurityTypes > 0',\n            },\n            {\n                id: 762,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 460,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 461,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2891,\n                added: 'FIX.Latest',\n                addedEP: '266',\n            },\n            {\n                id: 60,\n                added: 'FIX.5.0SP1',\n                addedEP: '94',\n            },\n        ],\n        numInGroup: {\n            id: 558,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2057,\n        name: 'SettlInstGrp',\n        abbrName: 'SetInst',\n        added: 'FIX.4.4',\n        category: 'SettlementInstruction',\n        fieldRef: [\n            {\n                id: 162,\n                added: 'FIX.4.4',\n                description:\n                    'Unique ID for this settlement instruction.\\n\\n\\n                        Required except where SettlInstMode is 5=Reject SSI request',\n            },\n            {\n                id: 163,\n                added: 'FIX.4.4',\n                description:\n                    'New, Replace, Cancel or Restate\\n\\n\\n                        Required except where SettlInstMode is 5=Reject SSI request',\n            },\n            {\n                id: 214,\n                added: 'FIX.4.4',\n                description: 'Required where SettlInstTransType is Cancel or Replace',\n            },\n            {\n                id: 54,\n                added: 'FIX.4.4',\n                description: 'Can be used for SettleInstMode 1 if SSIs are being provided for a particular side.',\n            },\n            {\n                id: 460,\n                added: 'FIX.4.4',\n                description: 'Can be used for SettleInstMode 1 if SSIs are being provided for a particular product.',\n            },\n            {\n                id: 167,\n                added: 'FIX.4.4',\n                description:\n                    'Can be used for SettleInstMode 1 if SSIs are being provided for a particular security type (as alternative to CFICode).',\n            },\n            {\n                id: 461,\n                added: 'FIX.4.4',\n                updated: 'FIX.Latest',\n                updatedEP: '266',\n                description:\n                    'Can be used for SettleInstMode 1 if SSIs are being provided for a particular CFI (as identified by CFI code).',\n            },\n            {\n                id: 2891,\n                added: 'FIX.Latest',\n                addedEP: '266',\n                description:\n                    'Can be used for SettleInstMode 1 if SSIs are being provided for a particular UPI (as identified by UPI code).',\n            },\n            {\n                id: 120,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Can be used for SettleInstMode 1 if SSIs are being provided for a particular settlement currency',\n            },\n            {\n                id: 2899,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 168,\n                added: 'FIX.4.4',\n                description:\n                    'Effective (start) date/time for this settlement instruction.\\n\\n\\n                        Required except where SettlInstMode is 5=Reject SSI request',\n            },\n            {\n                id: 126,\n                added: 'FIX.4.4',\n                description: 'Termination date/time for this settlement instruction.',\n            },\n            {\n                id: 779,\n                added: 'FIX.4.4',\n                description:\n                    'Date/time this settlement instruction was last updated (or created if not updated since creation).\\n\\n\\n                        Required except where SettlInstMode is 5=Reject SSI request',\n            },\n            {\n                id: 492,\n                added: 'FIX.4.4',\n                description: 'For use with CIV settlement instructions',\n            },\n            {\n                id: 476,\n                added: 'FIX.4.4',\n                description: 'For use with CIV settlement instructions',\n            },\n            {\n                id: 488,\n                added: 'FIX.4.4',\n                description: 'For use with CIV settlement instructions',\n            },\n            {\n                id: 489,\n                added: 'FIX.4.4',\n                description: 'For use with CIV settlement instructions',\n            },\n            {\n                id: 503,\n                added: 'FIX.4.4',\n                description: 'For use with CIV settlement instructions',\n            },\n            {\n                id: 490,\n                added: 'FIX.4.4',\n                description: 'For use with CIV settlement instructions',\n            },\n            {\n                id: 491,\n                added: 'FIX.4.4',\n                description: 'For use with CIV settlement instructions',\n            },\n            {\n                id: 504,\n                added: 'FIX.4.4',\n                description: 'For use with CIV settlement instructions',\n            },\n            {\n                id: 505,\n                added: 'FIX.4.4',\n                description: 'For use with CIV settlement instructions',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1012,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Parties\" (firm identification) fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        Used here for settlement location.\\n\\n\\n                        Also used for executing broker for CIV settlement instructions',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1016,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"SettlInstructionsData\" fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        numInGroup: {\n            id: 778,\n            added: 'FIX.4.4',\n            description: 'Required except where SettlInstMode is 5=Reject SSI request',\n        },\n    },\n    {\n        id: 2058,\n        name: 'SideCrossOrdCxlGrp',\n        abbrName: 'SideCrossCxl',\n        added: 'FIX.4.4',\n        category: 'CrossOrders',\n        fieldRef: [\n            {\n                id: 54,\n                presence: 'required',\n                added: 'FIX.4.4',\n            },\n            {\n                id: 41,\n                added: 'FIX.4.4',\n                description:\n                    'Required when referring to orders that were electronically submitted over FIX or otherwise assigned a ClOrdID(11).',\n            },\n            {\n                id: 11,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Unique identifier of the order as assigned by institution or by the intermediary with closest association with the investor.',\n            },\n            {\n                id: 526,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 583,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 586,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 229,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 75,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 376,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2404,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n            },\n            {\n                id: 2351,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n                description:\n                    'Must be set if EncodedComplianceText(2352) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2352,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n                description:\n                    'Encoded (non-ASCII characters) representation of the ComplianceText(2404) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 58,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 354,\n                added: 'FIX.4.4',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.4.4',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1012,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Parties\" (firm identification) fields defined in \"Common Components of Application Messages\"',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1011,\n                presence: 'required',\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '221',\n            },\n        ],\n        numInGroup: {\n            id: 552,\n            added: 'FIX.4.4',\n            description: 'Must be 1 or 2',\n        },\n    },\n    {\n        id: 2059,\n        name: 'SideCrossOrdModGrp',\n        abbrName: 'SideCrossMod',\n        added: 'FIX.4.4',\n        category: 'CrossOrders',\n        fieldRef: [\n            {\n                id: 54,\n                presence: 'required',\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Required if NoSides(552) > 0.',\n            },\n            {\n                id: 2102,\n                added: 'FIX.5.0SP2',\n                addedEP: '164',\n            },\n            {\n                id: 41,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Required when referring to orders that were electronically submitted over FIX or otherwise assigned a ClOrdID(11)',\n            },\n            {\n                id: 11,\n                presence: 'required',\n                added: 'FIX.4.4',\n                description:\n                    'Unique identifier of the order as assigned by institution or by the intermediary with closest association with the investor.',\n            },\n            {\n                id: 526,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 583,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 586,\n                added: 'FIX.Latest',\n                addedEP: '271',\n            },\n            {\n                id: 1690,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description: 'Available for optional use when Side(54) = 6 (Sell short exempt).',\n            },\n            {\n                id: 229,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 75,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 660,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 581,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 589,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 590,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 591,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 70,\n                added: 'FIX.4.4',\n                description: 'Use to assign an identifier to the block of preallocations',\n            },\n            {\n                id: 854,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 528,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 529,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1724,\n                added: 'FIX.5.0SP2',\n                addedEP: '256',\n            },\n            {\n                id: 1725,\n                added: 'FIX.5.0SP2',\n                addedEP: '256',\n            },\n            {\n                id: 1726,\n                added: 'FIX.5.0SP2',\n                addedEP: '256',\n            },\n            {\n                id: 2883,\n                added: 'FIX.5.0SP2',\n                addedEP: '256',\n            },\n            {\n                id: 1091,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 582,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 121,\n                added: 'FIX.4.4',\n                description:\n                    'Indicates that broker is requested to execute a Forex accommodation trade in conjunction with the security trade.',\n            },\n            {\n                id: 120,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Conditionally required when ForexReq(121) = \"Y\".',\n            },\n            {\n                id: 2899,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 775,\n                added: 'FIX.4.4',\n                description:\n                    'Method for booking out this order. Used when notifying a broker that an order to be settled by that broker is to be booked out as an OTC derivative (e.g. CFD or similar). Absence of this field implies regular booking.',\n            },\n            {\n                id: 58,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 354,\n                added: 'FIX.4.4',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.4.4',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.',\n            },\n            {\n                id: 1816,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 77,\n                added: 'FIX.4.4',\n                description: 'For use in derivatives omnibus accounting',\n            },\n            {\n                id: 203,\n                added: 'FIX.4.4',\n                description: 'For use with derivatives, such as options',\n            },\n            {\n                id: 544,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 635,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 377,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 659,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 962,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Specifies how long the order as specified in the side stays in effect. Absence of this field indicates Day order.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1012,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n            },\n            {\n                id: 2204,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 2039,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1070,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description:\n                    'Use as an alternative to CommissionData if multiple commissions or enhanced attributes are needed.',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1011,\n                presence: 'required',\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n            },\n            {\n                id: 1000,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n            },\n        ],\n        numInGroup: {\n            id: 552,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '131',\n            description: 'Must be 1 or 2 if CrossType(549)=1(All-or-none Cross), 2 otherwise.',\n        },\n    },\n    {\n        id: 2060,\n        name: 'TrdAllocGrp',\n        abbrName: 'Alloc',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'TradeCapture',\n        fieldRef: [\n            {\n                id: 79,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description: 'Required if NoAllocs(78) > 0.',\n            },\n            {\n                id: 661,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 736,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2927,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 467,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1593,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 2727,\n                added: 'FIX.5.0SP2',\n                addedEP: '234',\n                description: 'The field may not be used in any message where there are no legs.',\n            },\n            {\n                id: 1729,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 209,\n                added: 'FIX.5.0SP2',\n                addedEP: '245',\n            },\n            {\n                id: 80,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2515,\n                added: 'FIX.5.0SP2',\n                addedEP: '193',\n            },\n            {\n                id: 1752,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description: 'Only used for specific lot trades.',\n            },\n            {\n                id: 1753,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, either VersusPurchasePrice(1754) or CurrentCostBasis(1755) should be specified.',\n            },\n            {\n                id: 1754,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, VersusPurchaseDate(1753) should be specified.',\n            },\n            {\n                id: 1755,\n                added: 'FIX.5.0SP2',\n                addedEP: '127',\n                description:\n                    'Only used for specific lot trades. If this field is used, VersusPurchaseDate(1753) should be specified',\n            },\n            {\n                id: 993,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Can be used for granular reporting of separate allocation detail within a single trade report or allocation message.',\n            },\n            {\n                id: 1002,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 989,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 1136,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1840,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 1735,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 161,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 360,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 361,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 1732,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 1733,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 1734,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 2392,\n                added: 'FIX.5.0SP2',\n                addedEP: '180',\n            },\n            {\n                id: 2393,\n                added: 'FIX.5.0SP2',\n                addedEP: '180',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2221,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1009,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 2205,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 1071,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n            },\n        ],\n        numInGroup: {\n            id: 78,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '141',\n            description: '',\n        },\n    },\n    {\n        id: 2061,\n        name: 'TrdCapRptSideGrp',\n        abbrName: 'RptSide',\n        added: 'FIX.4.4',\n        category: 'TradeCapture',\n        fieldRef: [\n            {\n                id: 54,\n                presence: 'required',\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description: 'Required when NoSides(552) > 0.',\n            },\n            {\n                id: 2102,\n                added: 'FIX.5.0SP2',\n                addedEP: '164',\n            },\n            {\n                id: 1427,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 1428,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 1429,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 1009,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 1597,\n                added: 'FIX.5.0SP2',\n                addedEP: '111',\n                description: 'Used to indicate a side specific alternate clearing price.',\n            },\n            {\n                id: 1599,\n                added: 'FIX.5.0SP2',\n                addedEP: '111',\n                description:\n                    'Used to indicate the Price Differential between the first and second leg of a complex instrument.',\n            },\n            {\n                id: 1598,\n                added: 'FIX.5.0SP2',\n                addedEP: '111',\n                description:\n                    'Used to indicate whether the trade is clearing using execution price (LastPx) or alternate clearing price (ClrTrdPx)',\n            },\n            {\n                id: 1005,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 1506,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 1507,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 1006,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 1007,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 83,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 1008,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 430,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 1154,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 2901,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1155,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 2902,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description:\n                    'Required for executions against electronically submitted orders which were assigned an account by the institution or intermediary.',\n            },\n            {\n                id: 660,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 581,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 522,\n                added: 'FIX.5.0SP2',\n                addedEP: '253',\n            },\n            {\n                id: 81,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description: 'Used to specify Step-out trades.',\n            },\n            {\n                id: 575,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0',\n            },\n            {\n                id: 635,\n                added: 'FIX.Latest',\n                addedEP: '271',\n            },\n            {\n                id: 2671,\n                added: 'FIX.5.0SP2',\n                addedEP: '222',\n                description:\n                    'May be used to bilaterally inform counterparty of trade reporting status for this side of the trade.',\n            },\n            {\n                id: 2418,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 578,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 579,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 376,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2404,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n            },\n            {\n                id: 2351,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n                description:\n                    'Must be set if EncodedComplianceText(2352) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2352,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n                description:\n                    'Encoded (non-ASCII characters) representation of the ComplianceText(2404) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 377,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 582,\n                added: 'FIX.4.4',\n                description: 'The customer capacity for this trade',\n            },\n            {\n                id: 336,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description:\n                    'Usually the same for all sides of a trade, if reported only on the first side the same TradingSessionID(336) then applies to all sides of the trade.',\n            },\n            {\n                id: 625,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description:\n                    'Usually the same for all sides of a trade, if reported only on the first side the same TradingSessionSubID(625) then applies to all sides of the trade.',\n            },\n            {\n                id: 943,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2356,\n                added: 'FIX.5.0SP2',\n                addedEP: '209',\n            },\n            {\n                id: 157,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 230,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 158,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 159,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 738,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 920,\n                added: 'FIX.4.4',\n                description: 'For repurchase agreements the accrued interest on termination.',\n            },\n            {\n                id: 921,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description: 'For repurchase agreements the start (dirty) cash consideration.',\n            },\n            {\n                id: 922,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description: 'For repurchase agreements the end (dirty) cash consideration.',\n            },\n            {\n                id: 238,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 237,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 118,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description: 'Value expressed in the currency reflected by the Currency(15) field.',\n            },\n            {\n                id: 119,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 155,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 156,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 77,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description: 'Can be used for derivatives omnibus accounting.',\n            },\n            {\n                id: 58,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description:\n                    'Can be used by the executing market to record any execution details that are particular to that market.',\n            },\n            {\n                id: 354,\n                added: 'FIX.4.4',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 752,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description:\n                    'Can be used to support the scenario where a single leg instrument trades against an individual leg of a multileg instrument.',\n            },\n            {\n                id: 825,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 826,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 1848,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 1730,\n                added: 'FIX.5.0SP2',\n                addedEP: '240',\n            },\n            {\n                id: 2771,\n                added: 'FIX.5.0SP2',\n                addedEP: '241',\n                description:\n                    'Identifies the previous AllocGroupID(1730) being changed by this message when AllocGroupStatus(2767)=3 (Changed).',\n            },\n            {\n                id: 1728,\n                added: 'FIX.Latest',\n                addedEP: '298',\n            },\n            {\n                id: 2759,\n                added: 'FIX.5.0SP2',\n                addedEP: '240',\n            },\n            {\n                id: 2767,\n                added: 'FIX.5.0SP2',\n                addedEP: '240',\n            },\n            {\n                id: 1853,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 1854,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 1852,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 591,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 70,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description: 'Used to assign an ID to the block of preallocations.',\n            },\n            {\n                id: 793,\n                added: 'FIX.Latest',\n                addedEP: '298',\n            },\n            {\n                id: 1072,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1057,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1139,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1690,\n                added: 'FIX.5.0SP2',\n                addedEP: '121',\n                description: 'Optional when Side (54) = 6 (Sell short exempt)',\n            },\n            {\n                id: 1115,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n            },\n            {\n                id: 1444,\n                added: 'FIX.5.0SP1',\n                addedEP: '81',\n            },\n            {\n                id: 1851,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 1031,\n                added: 'FIX.5.0SP2',\n                addedEP: '133',\n            },\n            {\n                id: 1032,\n                added: 'FIX.5.0SP2',\n                addedEP: '133',\n            },\n            {\n                id: 1980,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2344,\n                added: 'FIX.5.0SP2',\n                addedEP: '172',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '180',\n            },\n            {\n                id: 29,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n                description:\n                    'In the context of regulatory trade reporting, this specifies the trading capacity of the reporting party.',\n            },\n            {\n                id: 2334,\n                added: 'FIX.5.0SP2',\n                addedEP: '180',\n            },\n            {\n                id: 2335,\n                added: 'FIX.5.0SP2',\n                addedEP: '180',\n            },\n            {\n                id: 2361,\n                added: 'FIX.5.0SP2',\n                addedEP: '211',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1012,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 2156,\n                added: 'FIX.5.0SP2',\n                addedEP: '217',\n                description:\n                    'PartyDetailID(1619) must reference an existing entry in Parties component or a previous entry in RelatedPartyDetailGrp. The instance must have the same role as the referenced entry. The embedded RelatedPartyDetailID(1563) should introduce a new party identifier not previously reported.',\n            },\n            {\n                id: 1065,\n                added: 'FIX.5.0SP2',\n                addedEP: '100',\n                description: 'Insert here the set of \"LimitAmts\" fields defined in \"Common Components\"',\n            },\n            {\n                id: 2007,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2222,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1070,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description:\n                    'Use as an alternative to CommissionData if multiple commissions or enhanced attributes are needed.',\n            },\n            {\n                id: 2011,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1019,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2035,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2060,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1028,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 2139,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description: 'Conveys settlement account details reported as part of obligation.',\n            },\n            {\n                id: 2208,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 2209,\n                added: 'FIX.5.0SP2',\n                addedEP: '142',\n            },\n            {\n                id: 2210,\n                added: 'FIX.5.0SP2',\n                addedEP: '142',\n            },\n            {\n                id: 2260,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1000,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 2143,\n                added: 'FIX.5.0SP1',\n                addedEP: '77',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description: 'Order details for the order associated with this side of the trade.',\n            },\n        ],\n        numInGroup: {\n            id: 552,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '141',\n            description: '',\n        },\n    },\n    {\n        id: 2062,\n        name: 'TrdCollGrp',\n        abbrName: 'TrdColl',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'CollateralManagement',\n        fieldRef: [\n            {\n                id: 571,\n                added: 'FIX.4.4',\n                description: 'Required if NoTrades > 0',\n            },\n            {\n                id: 818,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '195',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n            },\n        ],\n        numInGroup: {\n            id: 897,\n            added: 'FIX.4.4',\n            description: 'Trades for which collateral is required',\n        },\n    },\n    {\n        id: 2063,\n        name: 'TrdInstrmtLegGrp',\n        abbrName: 'TrdLeg',\n        added: 'FIX.4.4',\n        category: 'TradeCapture',\n        fieldRef: [\n            {\n                id: 685,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description: 'Quantity ordered for this leg as provided during order entry.',\n            },\n            {\n                id: 687,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '131',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'The LegQty(687) field is deprecated. The use of LegOrderQty(685) is recommended instead.',\n            },\n            {\n                id: 2346,\n                added: 'FIX.5.0SP2',\n                addedEP: '175',\n            },\n            {\n                id: 690,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Instead of LegOrderQty(685) requests that the sellside calculate LegOrderQty(685) based on opposite Leg.',\n            },\n            {\n                id: 990,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Additional attribute to store the trade or trade report identifier of the leg.',\n            },\n            {\n                id: 1152,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Allow sequencing of legs for a strategy to be captured.',\n            },\n            {\n                id: 2680,\n                added: 'FIX.5.0SP2',\n                addedEP: '223',\n            },\n            {\n                id: 1817,\n                added: 'FIX.5.0SP2',\n                addedEP: '223',\n                description:\n                    'Provide if different from the value specified for the overall multileg security in ClearingAccountType(1816) in the Instrument component.',\n            },\n            {\n                id: 564,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Provide if different from the value specified for the overall multileg security in PositionEffect(77) in the Instrument component.',\n            },\n            {\n                id: 565,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Provide if different from the value specified for the overall multileg security in CoveredOrUncovered(203) in the Instrument component.',\n            },\n            {\n                id: 654,\n                added: 'FIX.4.4',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '131',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Use of LegRefID(654) in this component is deprecated. Recommend the use of LegID(1788) in the InstrumentLeg component.',\n            },\n            {\n                id: 587,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 588,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Takes precedence over a calculated LegSettlType(587) when specified regardless of LegSettlType(587) value.\\n\\n\\n                        Conditionally required when LegSettlType(587) = B(Broken date).',\n            },\n            {\n                id: 637,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Used to report the execution price assigned to the leg of the multileg instrument.',\n            },\n            {\n                id: 686,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n                description: 'Indicates the price type provided with each leg of a multi-leg trade',\n            },\n            {\n                id: 675,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 2900,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1073,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1074,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1075,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'For FX Futures can be used to express the notional value of a trade when LegLastQty(1418) and other quantity fields are expressed in terms of number of contracts - LegContractMultiplier(231) is required in this case.',\n            },\n            {\n                id: 1689,\n                added: 'FIX.5.0SP2',\n                addedEP: '121',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Available for optional use when LegSide(624) = 6 (Sell short exempt) in InstrumentLeg component.',\n            },\n            {\n                id: 1379,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1381,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1383,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1384,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1418,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Quantity executed for this leg.',\n            },\n            {\n                id: 1591,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n                description: 'Leg quantity type to be specified at the leg level. Can be different for each leg.',\n            },\n            {\n                id: 2358,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 2357,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 2360,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 2359,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 2492,\n                added: 'FIX.5.0SP2',\n                addedEP: '217',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2187,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 1007,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 1008,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n            },\n            {\n                id: 2109,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 2286,\n                added: 'FIX.Latest',\n                addedEP: '302',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1005,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description: 'Required if NoLegs(555) > 0.',\n            },\n            {\n                id: 2251,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n        ],\n        numInGroup: {\n            id: 555,\n            added: 'FIX.4.4',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '131',\n            description: '',\n        },\n    },\n    {\n        id: 2064,\n        name: 'TrdgSesGrp',\n        abbrName: 'TrdSes',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 336,\n                added: 'FIX.4.4',\n                description: 'Required if NoTradingSessions is > 0.',\n            },\n            {\n                id: 625,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 386,\n            added: 'FIX.4.4',\n            description: 'Specifies the number of repeating TradingSessionIDs',\n        },\n    },\n    {\n        id: 2065,\n        name: 'UndInstrmtCollGrp',\n        abbrName: 'UndColl',\n        added: 'FIX.4.4',\n        category: 'CollateralManagement',\n        fieldRef: [\n            {\n                id: 944,\n                added: 'FIX.4.4',\n                description: 'Required if NoUnderlyings > 0',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1021,\n                added: 'FIX.4.4',\n                description:\n                    'Insert here the set of \"Underlying Instrument\" fields defined in \"Common Components of Application Messages\"\\n\\n\\n                        Required if NoUnderlyings > 0',\n            },\n        ],\n        numInGroup: {\n            id: 711,\n            added: 'FIX.4.4',\n            description: 'Number of legs that make up the Security',\n        },\n    },\n    {\n        id: 2066,\n        name: 'UndInstrmtGrp',\n        abbrName: 'Undly',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        category: 'Common',\n        componentRef: [\n            {\n                id: 1021,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description: 'Required if NoUnderlyings(711) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 711,\n            added: 'FIX.4.4',\n            description: 'Number of underlyings',\n        },\n    },\n    {\n        id: 2069,\n        name: 'TrdCapDtGrp',\n        abbrName: 'TrdCapDt',\n        added: 'FIX.4.4',\n        category: 'TradeCapture',\n        fieldRef: [\n            {\n                id: 75,\n                added: 'FIX.4.4',\n                description:\n                    'Used when reporting other than current day trades.\\n\\n\\n                        Conditionally required if NoDates > 0',\n            },\n            {\n                id: 779,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 60,\n                added: 'FIX.4.4',\n                description: 'To request trades for a specific time.',\n            },\n        ],\n        numInGroup: {\n            id: 580,\n            added: 'FIX.4.4',\n            description: 'Number of date ranges provided (must be 1 or 2 if specified)',\n        },\n    },\n    {\n        id: 2070,\n        name: 'EvntGrp',\n        abbrName: 'Evnt',\n        added: 'FIX.4.4',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        category: 'Common',\n        description:\n            'The EvntGrp is a repeating subcomponent of the Instrument component used to specify straightforward events associated with the instrument. Examples include put and call dates for bonds and options; first exercise date for options; inventory and delivery dates for commodities; start, end and roll dates for swaps. Use ComplexEvents for more advanced dates such as option, futures, commodities and equity swap observation and pricing events.\\n\\nThe EvntGrp contains three different methods to express a \"time\" associated with the event using the EventDate(866) and EventTime(1145) pair of fields or the EventTimeUnit(1827) and EventTimePeriod(1826) pair of fields or EventMonthYear(2340).\\n\\nThe EventDate(866), and optional EventTime(1145), may be used to specify an exact date and optional time for the event. The EventTimeUnit(1827) and EventTimePeriod(1826) may be used to express a time period associated with the event, e.g. 3-month, 4-years, 2-weeks. The EventMonthYear(2340), and optional EventTime(1145), may be used to express the event as a month of year, with optional day of month or week of month.\\n\\nEither EventDate(866) or EventMonthYear(2340), and the optional EventTime(1145), must be specified or EventTimeUnit(1827) and EventTimePeriod(1826) must be specified.\\n\\nThe EventMonthYear(2340) may be used instead of EventDate(866) when month-year, with optional day of month or week of month, is required instead of a date.',\n        fieldRef: [\n            {\n                id: 865,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '161',\n                description: 'Required if NoEvents(864) > 0.',\n            },\n            {\n                id: 866,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '161',\n                description: 'Conditionally required when EventTime(1145) is specified.',\n            },\n            {\n                id: 1145,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '132',\n            },\n            {\n                id: 1827,\n                added: 'FIX.5.0SP2',\n                addedEP: '132',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '161',\n                description: 'Conditionally required when EventTimePeriod(1826) is specified.',\n            },\n            {\n                id: 1826,\n                added: 'FIX.5.0SP2',\n                addedEP: '132',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '161',\n                description: 'Conditionally required when EventTimeUnit(1827) is specified.',\n            },\n            {\n                id: 2340,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 867,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 868,\n                added: 'FIX.4.4',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '161',\n            },\n            {\n                id: 1578,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Must be set if EncodedEventText(1579) field is specified and must immediately precede it.',\n            },\n            {\n                id: 1579,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Encoded (non-ASCII characters) representation of the EventText(868) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        numInGroup: {\n            id: 864,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2071,\n        name: 'SecAltIDGrp',\n        abbrName: 'AID',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 455,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 456,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2957,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n        ],\n        numInGroup: {\n            id: 454,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2072,\n        name: 'LegSecAltIDGrp',\n        abbrName: 'LegAID',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 605,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 606,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2958,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n        ],\n        numInGroup: {\n            id: 604,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2073,\n        name: 'UndSecAltIDGrp',\n        abbrName: 'UndAID',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 458,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 459,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 2959,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n        ],\n        numInGroup: {\n            id: 457,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2074,\n        name: 'AttrbGrp',\n        abbrName: 'Attrb',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 871,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 872,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 870,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2075,\n        name: 'DlvyInstGrp',\n        abbrName: 'DlvInst',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 165,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 787,\n                added: 'FIX.4.4',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1017,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 85,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2076,\n        name: 'SettlPtysSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 785,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 786,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 801,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2077,\n        name: 'PtysSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 523,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 803,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 802,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2078,\n        name: 'NstdPtysSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 545,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 805,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 804,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2079,\n        name: 'NstdPtys2SubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 760,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 807,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 806,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2080,\n        name: 'NstdPtys3SubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.4.4',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 953,\n                added: 'FIX.4.4',\n            },\n            {\n                id: 954,\n                added: 'FIX.4.4',\n            },\n        ],\n        numInGroup: {\n            id: 952,\n            added: 'FIX.4.4',\n            description: '',\n        },\n    },\n    {\n        id: 2085,\n        name: 'HopGrp',\n        abbrName: 'Hop',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        category: 'Session',\n        fieldRef: [\n            {\n                id: 628,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 629,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 630,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 627,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 2086,\n        name: 'StrategyParametersGrp',\n        abbrName: 'StrtPrmGrp',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '95',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 958,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Name of parameter',\n            },\n            {\n                id: 959,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Datatype of the parameter.',\n            },\n            {\n                id: 960,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Value of the parameter',\n            },\n        ],\n        numInGroup: {\n            id: 957,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description: 'Indicates number of strategy parameters',\n        },\n    },\n    {\n        id: 2087,\n        name: 'SecLstUpdRelSymGrp',\n        abbrName: 'SecL',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'SecuritiesReferenceData',\n        fieldRef: [\n            {\n                id: 1324,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 15,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1504,\n                added: 'FIX.5.0SP1',\n                addedEP: '94',\n            },\n            {\n                id: 58,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Comment, instructions, or other identifying information.',\n            },\n            {\n                id: 354,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2119,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2066,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1019,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 2088,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1066,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of \"Instrument\" (symbology) fields defined in \"common components of application messages\" of the requested Security',\n            },\n            {\n                id: 1004,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of \" InstrumentExtension \" fields defined in \" COMMON COMPONENTS OF APPLICATION MESSAGES \"',\n            },\n            {\n                id: 1002,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of \" FinancingDetails \" fields defined in \" COMMON COMPONENTS OF APPLICATION MESSAGES \"',\n            },\n            {\n                id: 1058,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1018,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of \" SpreadOrBenchmarkCurveData \" fields defined in \" COMMON COMPONENTS OF APPLICATION MESSAGES \"',\n            },\n            {\n                id: 1022,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of \" YieldData \" fields defined in \" COMMON COMPONENTS OF APPLICATION MESSAGES \"',\n            },\n        ],\n        numInGroup: {\n            id: 146,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description: 'Specifies the number of repeating symbols (instruments) specified',\n        },\n    },\n    {\n        id: 2088,\n        name: 'SecLstUpdRelSymsLegGrp',\n        abbrName: 'SecLstUpdRelSymsLegGrp',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'SecuritiesReferenceData',\n        fieldRef: [\n            {\n                id: 690,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 587,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1007,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of \"LegStipulations\" (leg symbology) fields defined in \"common components of application messages\" Required if NoLegs > 0',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1005,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of \"Instrument Legs\" (leg symbology) fields defined in \"common components of application messages\" Required if NoLegs > 0',\n            },\n            {\n                id: 1006,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of \"LegBenchmarkCurveData\" (leg symbology) fields defined in \"common components of application messages\" Required if NoLegs > 0',\n            },\n        ],\n        numInGroup: {\n            id: 555,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description: 'Number of legs that make up the Security',\n        },\n    },\n    {\n        id: 2093,\n        name: 'InstrumentPtysSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1053,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1054,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1052,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 2094,\n        name: 'TrdCapRptAckSideGrp',\n        abbrName: 'RptSide',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        category: 'TradeCapture',\n        fieldRef: [\n            {\n                id: 54,\n                presence: 'required',\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description: 'Required when NoSides(552) > 0.',\n            },\n            {\n                id: 1427,\n                added: 'FIX.5.0SP1',\n                addedEP: '88',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 1506,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 1507,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 1428,\n                added: 'FIX.5.0SP1',\n                addedEP: '88',\n            },\n            {\n                id: 1429,\n                added: 'FIX.5.0SP1',\n                addedEP: '88',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 1,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 660,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 581,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 81,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 575,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0',\n            },\n            {\n                id: 2671,\n                added: 'FIX.5.0SP2',\n                addedEP: '237',\n            },\n            {\n                id: 578,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 579,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 376,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 2404,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n            },\n            {\n                id: 2351,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n                description:\n                    'Must be set if EncodedComplianceText(2352) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2352,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n                description:\n                    'Encoded (non-ASCII characters) representation of the ComplianceText(2404) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 377,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 582,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 336,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 625,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 943,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 430,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 1154,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 2901,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1155,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 2902,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 157,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 230,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 158,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 159,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 738,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 920,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 921,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 922,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 238,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 237,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 118,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 119,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 155,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 156,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 77,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 752,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 825,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 826,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1730,\n                added: 'FIX.5.0SP2',\n                addedEP: '240',\n            },\n            {\n                id: 2771,\n                added: 'FIX.5.0SP2',\n                addedEP: '241',\n                description:\n                    'Identifies the previous AllocGroupID(1730) being changed when AllocGroupStatus(2767)=3 (Changed).',\n            },\n            {\n                id: 1728,\n                added: 'FIX.Latest',\n                addedEP: '298',\n            },\n            {\n                id: 2759,\n                added: 'FIX.5.0SP2',\n                addedEP: '240',\n            },\n            {\n                id: 2767,\n                added: 'FIX.5.0SP2',\n                addedEP: '240',\n            },\n            {\n                id: 1853,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 1854,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 1852,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 591,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 70,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 793,\n                added: 'FIX.Latest',\n                addedEP: '298',\n            },\n            {\n                id: 1072,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1057,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1009,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1005,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1006,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1007,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 83,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1008,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1115,\n                added: 'FIX.5.0SP1',\n                addedEP: '88',\n            },\n            {\n                id: 1851,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 1031,\n                added: 'FIX.5.0SP2',\n                addedEP: '133',\n            },\n            {\n                id: 1032,\n                added: 'FIX.5.0SP2',\n                addedEP: '133',\n            },\n            {\n                id: 2344,\n                added: 'FIX.5.0SP2',\n                addedEP: '172',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1012,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 1065,\n                added: 'FIX.5.0SP2',\n                addedEP: '100',\n                description: 'Insert here the set of \"LimitAmts\" field defined in \"Common Components\"',\n            },\n            {\n                id: 2007,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1070,\n                added: 'FIX.5.0SP2',\n                addedEP: '204',\n                description:\n                    'Use as an alternative to CommissionData if multiple commissions or enhanced attributes are needed.',\n            },\n            {\n                id: 2011,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1019,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 2035,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 2139,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n                description: 'Conveys settlement account details reported as part of obligation.',\n            },\n            {\n                id: 2060,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1028,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 2209,\n                added: 'FIX.5.0SP2',\n                addedEP: '142',\n            },\n            {\n                id: 2210,\n                added: 'FIX.5.0SP2',\n                addedEP: '142',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1000,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '141',\n            },\n            {\n                id: 2143,\n                added: 'FIX.5.0SP1',\n                addedEP: '88',\n                description: 'Details of the order associated with this side of the trade.',\n            },\n        ],\n        numInGroup: {\n            id: 552,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 2096,\n        name: 'UndlyInstrumentPtysSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1063,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1064,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1062,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 2097,\n        name: 'RootSubParties',\n        abbrName: 'Sub',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1121,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Sub-identifier (e.g. Clearing Acct for PartyID=Clearing Firm) if applicable. Required if\\n\\n\\n                        NoRootPartySubIDs > 0.',\n            },\n            {\n                id: 1122,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Type of Sub-identifier. Required if NoRootPartySubIDs > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1120,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description: 'Repeating group of RootParty sub-identifiers.',\n        },\n    },\n    {\n        id: 2098,\n        name: 'MsgTypeGrp',\n        abbrName: 'MsgTypeGrp',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        category: 'Session',\n        fieldRef: [\n            {\n                id: 372,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Specifies a specific, supported MsgType. Required if NoMsgTypes is > 0. Should be specified from the point of view of the sender of the Logon message',\n            },\n            {\n                id: 385,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Indicates direction (send vs. receive) of a supported MsgType. Required if NoMsgTypes is > 0. Should be specified from the point of view of the sender of the Logon message',\n            },\n            {\n                id: 1130,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Specifies the service pack release being applied to an application message.',\n            },\n            {\n                id: 1406,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Specified the extension pack being applied to a message.',\n            },\n            {\n                id: 1131,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Specifies a custom extension to a message being applied at the session level.',\n            },\n            {\n                id: 1410,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Indicates that this Application Version (RefApplVerID(1130), RefApplExtID(1406),RefCstmApplVerID(1131)) is the default for the RefMsgType(372) field.',\n            },\n        ],\n        numInGroup: {\n            id: 384,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description: 'Specifies the number of repeating RefMsgTypes specified',\n        },\n    },\n    {\n        id: 2099,\n        name: 'TrdSessLstGrp',\n        abbrName: 'TrdSessLstGrp',\n        added: 'FIX.4.4',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 336,\n                presence: 'required',\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Identifier for Trading Session',\n            },\n            {\n                id: 625,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 1327,\n                added: 'FIX.5.0SP1',\n                addedEP: '94',\n            },\n            {\n                id: 207,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP1',\n            },\n            {\n                id: 1301,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Market for which Trading Session applies',\n            },\n            {\n                id: 1300,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Market Segment for which Trading Session applies',\n            },\n            {\n                id: 1326,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 338,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Method of Trading',\n            },\n            {\n                id: 339,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Trading Session Mode',\n            },\n            {\n                id: 325,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: '\"Y\" if message is sent unsolicited as a result of a previous subscription request.',\n            },\n            {\n                id: 340,\n                presence: 'required',\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'State of trading session.',\n            },\n            {\n                id: 567,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Used with TradSesStatus = \"Request Rejected\"',\n            },\n            {\n                id: 341,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Starting time of trading session',\n            },\n            {\n                id: 342,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Time of the opening of the trading session',\n            },\n            {\n                id: 343,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Time of pre-close of trading session',\n            },\n            {\n                id: 344,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Closing time of trading session',\n            },\n            {\n                id: 345,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'End time of trading session',\n            },\n            {\n                id: 387,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 60,\n                added: 'FIX.5.0SP1',\n                addedEP: '94',\n            },\n            {\n                id: 58,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n            },\n            {\n                id: 354,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.4.4',\n                addedEP: '-1',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.',\n            },\n        ],\n        componentRef: [\n            {\n                id: 2129,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Insert here the set of \"TradingSessionRules\" fields defined in \"common components of application messages\"',\n            },\n        ],\n        numInGroup: {\n            id: 386,\n            added: 'FIX.4.4',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 2101,\n        name: 'SettlObligationInstructions',\n        abbrName: 'SettlObligInst',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'SettlementInstruction',\n        fieldRef: [\n            {\n                id: 430,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1161,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Unique ID for this settlement instruction',\n            },\n            {\n                id: 1162,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'New, Replace, Cancel, or Restate',\n            },\n            {\n                id: 1163,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Required where SettlObligTransType(1162) is Cancel or Replace. The SettlObligID(1161) of the settlement obligation being canceled or replaced.',\n            },\n            {\n                id: 1157,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Net flow of currency 1',\n            },\n            {\n                id: 119,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Net flow of currency 2',\n            },\n            {\n                id: 15,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Currency 1 in the stated currency pair, the dealt currency',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 120,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Currency 2 in the stated currency pair, the contra currency',\n            },\n            {\n                id: 2899,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 155,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Derived rate of Ccy2 per Ccy1 based on netting',\n            },\n            {\n                id: 64,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Value Date',\n            },\n            {\n                id: 168,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Effective (start) date/time for this settlement instruction',\n            },\n            {\n                id: 126,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Termination date/time for this settlement instruction.',\n            },\n            {\n                id: 779,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Date/time this settlement instruction was last updated (or created if not updated since creation).',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1012,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2139,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Conveys settlement account details reported as part of obligation',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Used to express the instrument in which settlement is taking place',\n            },\n        ],\n        numInGroup: {\n            id: 1165,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Number of Settlement Obligations',\n        },\n    },\n    {\n        id: 2102,\n        name: 'SecSizesGrp',\n        abbrName: 'SecSizesGrp',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'MarketData',\n        fieldRef: [\n            {\n                id: 1178,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Defines the type of secondary size specified in MDSecSize(1179). Must be first field in this repeating group',\n            },\n            {\n                id: 1179,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1177,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description:\n                'Number of entries following. Conditionally required when MDUpdateAction = New(0) and MDEntryType = Bid(0) or Offer(1).',\n        },\n    },\n    {\n        id: 2103,\n        name: 'StatsIndGrp',\n        abbrName: 'StatsIndGrp',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'MarketData',\n        fieldRef: [\n            {\n                id: 1176,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Indicates that the MD Entry is eligible for inclusion in the type of statistic specified by the StatsType. Must be provided if NoStatsIndicators greater than 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1175,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Number of statistics indicators',\n        },\n    },\n    {\n        id: 2104,\n        name: 'DerivativeInstrumentPartySubIDsGrp',\n        abbrName: 'Sub',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1297,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1298,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1296,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 2105,\n        name: 'DerivativeSecurityAltIDGrp',\n        abbrName: 'AID',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1219,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1220,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1218,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 2106,\n        name: 'DerivativeEventsGrp',\n        abbrName: 'Evnt',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1287,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1288,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1289,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n            },\n            {\n                id: 1290,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1291,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1286,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 2107,\n        name: 'RelSymDerivSecUpdGrp',\n        abbrName: 'RelSym',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1324,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'If provided, then Instrument occurrence has explicitly changed',\n            },\n            {\n                id: 292,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 15,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1504,\n                added: 'FIX.5.0SP1',\n                addedEP: '94',\n            },\n            {\n                id: 58,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Comment, instructions, or other identifying information.',\n            },\n            {\n                id: 354,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2019,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1004,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 2121,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Secondary price limit rules',\n            },\n        ],\n        numInGroup: {\n            id: 146,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 2108,\n        name: 'UnderlyingLegSecurityAltIDGrp',\n        abbrName: 'AID',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'TradeCapture',\n        fieldRef: [\n            {\n                id: 1335,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n            {\n                id: 1336,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 1334,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            deprecated: 'FIX.5.0SP2',\n            deprecatedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 2109,\n        name: 'TradeCapLegUnderlyingsGrp',\n        abbrName: 'TradeCapLegUndlyGrp',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        deprecated: 'FIX.5.0SP2',\n        deprecatedEP: '187',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'TradeCapture',\n        componentRef: [\n            {\n                id: 2134,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                deprecated: 'FIX.5.0SP2',\n                deprecatedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 1342,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            deprecated: 'FIX.5.0SP2',\n            deprecatedEP: '187',\n            description: 'Number of legs for the underlying instrument',\n        },\n    },\n    {\n        id: 2111,\n        name: 'NotAffectedOrdGrp',\n        abbrName: 'NotAfctdOrd',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '131',\n        category: 'OrderMassHandling',\n        fieldRef: [\n            {\n                id: 1372,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Required if NoNotAffectedOrders(1370) > 0 and must be the first repeating field in the group. Indicates the client order identifier of an order not affected by the request. If order(s) were manually delivered (or otherwise not delivered over FIX and not assigned a ClOrdID(11)) this field should contain string \"MANUAL\".',\n            },\n            {\n                id: 1371,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '131',\n                description:\n                    'Contains the OrderID(37) assigned by the counterparty of an unaffected order. Not required as part of the repeating group if NotAffOrigClOrdID(1372) has a value other than \"MANUAL\".',\n            },\n            {\n                id: 1825,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description:\n                    'Contains the SecondaryOrderID(198) assigned by the counterparty of an unaffected order. Not required as part of the repeating group.',\n            },\n            {\n                id: 2677,\n                added: 'FIX.5.0SP2',\n                addedEP: '223',\n                description:\n                    'Can be used to provide a reason for excluding this order from the scope of the mass action.',\n            },\n        ],\n        numInGroup: {\n            id: 1370,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '131',\n            description: '',\n        },\n    },\n    {\n        id: 2112,\n        name: 'FillsGrp',\n        abbrName: 'FillsGrp',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'SingleGeneralOrderHandling',\n        fieldRef: [\n            {\n                id: 1363,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '223',\n                description:\n                    'Unique identifier of execution as assigned by sell-side (broker, exchange, ECN).\\n\\n\\n                        Must not overlap ExecID(17).\\n\\n\\n                        Required if NoFills(1362) > 0.',\n            },\n            {\n                id: 1364,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '223',\n                description:\n                    'Price of this partial fill.\\n\\n\\n                        Required if NoFills(1362) > 0.\\n\\n\\n                        Refer to LastPx(31).',\n            },\n            {\n                id: 1365,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '223',\n                description:\n                    'Quantity (e.g. shares) bought/sold on this partial fill.\\n\\n\\n                        Required if NoFills(1362) > 0.',\n            },\n            {\n                id: 2673,\n                added: 'FIX.5.0SP2',\n                addedEP: '223',\n                description: 'Can be used to refer to the related match event.',\n            },\n            {\n                id: 2674,\n                added: 'FIX.5.0SP2',\n                addedEP: '223',\n                description:\n                    'Can be used to refer to a price level (e.g. match step, clip) within the related match event.',\n            },\n            {\n                id: 1443,\n                added: 'FIX.5.0SP1',\n                addedEP: '81',\n            },\n            {\n                id: 1622,\n                added: 'FIX.5.0SP2',\n                addedEP: '98',\n            },\n            {\n                id: 1623,\n                added: 'FIX.5.0SP2',\n                addedEP: '98',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1059,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Contraparty information',\n            },\n        ],\n        numInGroup: {\n            id: 1362,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Specifies the number of partial fills included in this Execution Report',\n        },\n    },\n    {\n        id: 2113,\n        name: 'TrdRepIndicatorsGrp',\n        abbrName: 'TrdRepIndicatorsGrp',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP1',\n        updatedEP: '97',\n        category: 'TradeCapture',\n        fieldRef: [\n            {\n                id: 1388,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1389,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1387,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Number of trade publication indicators following',\n        },\n    },\n    {\n        id: 2115,\n        name: 'ApplIDRequestGrp',\n        abbrName: 'ApplIDReqGrp',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Application',\n        fieldRef: [\n            {\n                id: 1355,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1433,\n                added: 'FIX.5.0SP1',\n                addedEP: '78',\n            },\n            {\n                id: 1182,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Message sequence number of first message in range to be resent',\n            },\n            {\n                id: 1183,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Message sequence number of last message in range to be resent. If request is for a single message ApplBeginSeqNo = ApplEndSeqNo. If request is for all messages subsequent to a particular message, ApplEndSeqNo = \"0\" (representing infinity).',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1008,\n                added: 'FIX.5.0SP1',\n                addedEP: '78',\n            },\n        ],\n        numInGroup: {\n            id: 1351,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Specifies number of application id occurrences',\n        },\n    },\n    {\n        id: 2116,\n        name: 'ApplIDRequestAckGrp',\n        abbrName: 'ApplIDReqAckGrp',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Application',\n        fieldRef: [\n            {\n                id: 1355,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1433,\n                added: 'FIX.5.0SP1',\n                addedEP: '78',\n            },\n            {\n                id: 1182,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1183,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1357,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1354,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1008,\n                added: 'FIX.5.0SP1',\n                addedEP: '78',\n            },\n        ],\n        numInGroup: {\n            id: 1351,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Number of applications',\n        },\n    },\n    {\n        id: 2117,\n        name: 'ApplIDReportGrp',\n        abbrName: 'ApplIDRptGrp',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Application',\n        fieldRef: [\n            {\n                id: 1355,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1399,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1357,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1351,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Number of applications',\n        },\n    },\n    {\n        id: 2118,\n        name: 'TickRules',\n        abbrName: 'TickRules',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        category: 'Common',\n        description:\n            'The TickRules component specifies the rules for determining how a security ticks, i.e. the price increments which it can be quoted, traded, and for certain cases settled, depending on the current price of the security.',\n        fieldRef: [\n            {\n                id: 1206,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '138',\n                description: 'Required if NoTickRules(1205) > 0.',\n            },\n            {\n                id: 1207,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '138',\n            },\n            {\n                id: 1208,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '138',\n            },\n            {\n                id: 1209,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '138',\n            },\n            {\n                id: 2571,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Can be used to limit tick rule to specific product suite.',\n            },\n            {\n                id: 1830,\n                added: 'FIX.5.0SP2',\n                addedEP: '138',\n            },\n            {\n                id: 1831,\n                added: 'FIX.5.0SP2',\n                addedEP: '138',\n            },\n        ],\n        numInGroup: {\n            id: 1205,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '195',\n            description: '',\n        },\n    },\n    {\n        id: 2119,\n        name: 'StrikeRules',\n        abbrName: 'StrkRules',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1223,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Allows strike rule to be referenced via an identifier so that rules do not need to be explicitly enumerated',\n            },\n            {\n                id: 1202,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Starting price for the range to which the StrikeIncrement applies. Price refers to the price of the underlying',\n            },\n            {\n                id: 1203,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Ending price of the range to which the StrikeIncrement applies. Price refers to the price of the underlying',\n            },\n            {\n                id: 1204,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Value by which strike price should be incremented within the specified price',\n            },\n            {\n                id: 1304,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Enumeration that represents the exercise style for a class of options\\n\\n\\n                        Same values as ExerciseStyle',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2120,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Describes the maturity rules for a given set of strikes as defined by StrikeRules',\n            },\n        ],\n        numInGroup: {\n            id: 1201,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description:\n                'Number of strike rule entries. This block specifies the rules for determining how new strikes should be listed within the stated price range of the underlying instrument',\n        },\n    },\n    {\n        id: 2120,\n        name: 'MaturityRules',\n        abbrName: 'MatRules',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1222,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Allows maturity rule to be referenced via an identifier so that rules do not need to be explicitly enumerated',\n            },\n            {\n                id: 1303,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Format used to generate the MMY for each option contract:',\n            },\n            {\n                id: 1302,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'enumeration specifying the increment unit:',\n            },\n            {\n                id: 1241,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Starting maturity for the range to which the StrikeIncrement applies. Price refers to the price of the underlying',\n            },\n            {\n                id: 1226,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'Ending maturity month year to which the StrikeIncrement applies. Price refers to the price of the underlying.',\n            },\n            {\n                id: 1229,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Value by which maturity month year should be incremented within the specified price range.',\n            },\n        ],\n        numInGroup: {\n            id: 1236,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description:\n                'Number of maturity rule entries. This block specifies the rules for determining how new strikes should be listed within the stated price range of the underlying instrument',\n        },\n    },\n    {\n        id: 2123,\n        name: 'MarketDataFeedTypes',\n        abbrName: 'MDFeedTyps',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        category: 'Common',\n        description:\n            'The MarketDataFeedTypes component is used to specify the different available feed types and sub-types, and additional market data feed related attributes, such as the market depth of the specified feed type.',\n        fieldRef: [\n            {\n                id: 1022,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description: 'Required if NoMDFeedTypes(1141) > 0.',\n            },\n            {\n                id: 1683,\n                added: 'FIX.5.0SP2',\n                addedEP: '106',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n            },\n            {\n                id: 264,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description: 'Specifies the depth of book (or levels of market depth) for the feed type.',\n            },\n            {\n                id: 2563,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Conditionally required when MarketDepthTimeIntervalUnit(2564) is specified.',\n            },\n            {\n                id: 2564,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Conditionally required when MarketDataTimeInterval(2563) is specified.',\n            },\n            {\n                id: 2565,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Conditionally required when MDRecoveryTimeIntervalUnit(2566) is specified.',\n            },\n            {\n                id: 2566,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Conditionally required when MDRecoveryTimeInterval(2565) is specified.',\n            },\n            {\n                id: 1021,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n            },\n            {\n                id: 1173,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2567,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2568,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n        ],\n        numInGroup: {\n            id: 1141,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '195',\n            description: '',\n        },\n    },\n    {\n        id: 2124,\n        name: 'LotTypeRules',\n        abbrName: 'LotTypeRules',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1093,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'Defines the lot type assigned to the order. Use as an alternate to RoundLot(561). To be used with MinLotSize(1231).\\n\\n\\n                        LotType + MinLotSize (max is next level minus 1).\\n\\n\\n                        Required if NoLotTypeRules(1234) > 0.',\n            },\n            {\n                id: 1231,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Minimum lot size allowed based on lot type specified in LotType(1093)',\n            },\n        ],\n        numInGroup: {\n            id: 1234,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Number of Lot Types',\n        },\n    },\n    {\n        id: 2125,\n        name: 'MatchRules',\n        abbrName: 'MtchRules',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        category: 'Common',\n        description:\n            'The MatchRules component is used to specify the details of order matching rules for specified product group or complex.',\n        fieldRef: [\n            {\n                id: 1142,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n                description: 'Required if NoMatchRules(1235) > 0.',\n            },\n            {\n                id: 574,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '195',\n            },\n            {\n                id: 2569,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Can be used to limit match rule to specific product suite.',\n            },\n            {\n                id: 2570,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Can be used to give customer orders priority for the given matching algorithm.',\n            },\n        ],\n        numInGroup: {\n            id: 1235,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '195',\n            description: '',\n        },\n    },\n    {\n        id: 2126,\n        name: 'ExecInstRules',\n        abbrName: 'ExecInstRules',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1308,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Indicates execution instructions that are valid for the specified market segment',\n            },\n        ],\n        numInGroup: {\n            id: 1232,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Number of execution instructions',\n        },\n    },\n    {\n        id: 2127,\n        name: 'TimeInForceRules',\n        abbrName: 'TmInForceRules',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 59,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Indicates time in force techniques that are valid for the specified market segment',\n            },\n        ],\n        numInGroup: {\n            id: 1239,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Number of time in force techniques',\n        },\n    },\n    {\n        id: 2128,\n        name: 'OrdTypeRules',\n        abbrName: 'OrdTypRules',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 40,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Indicates order types that are valid for the specified market segment.',\n            },\n        ],\n        numInGroup: {\n            id: 1237,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Number of order types',\n        },\n    },\n    {\n        id: 2130,\n        name: 'TradingSessionRulesGrp',\n        abbrName: 'TrdgSesRulesGrp',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 336,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Identifier for the trading session\\n\\n\\n                        Must be provided if NoTradingSessions > 0\\n\\n\\n                        Set to [N/A] if values are not specific to trading session',\n            },\n            {\n                id: 625,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Identifier for the trading session\\n\\n\\n                        Set to [N/A] if values are not specific to trading session sub id',\n            },\n        ],\n        componentRef: [\n            {\n                id: 2129,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Contains trading rules specified at the trading session level',\n            },\n        ],\n        numInGroup: {\n            id: 1309,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Allows trading rules to be expressed by trading session',\n        },\n    },\n    {\n        id: 2132,\n        name: 'MarketSegmentGrp',\n        abbrName: 'MktSegGrp',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1301,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Identifies the market which lists and trades the instrument.',\n            },\n            {\n                id: 1300,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'Identifies the segment of the market to which the specify trading rules and listing rules apply.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2119,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description:\n                    'This block specifies the rules for determining how new strikes should be listed within the stated price range of the underlying instrument.',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1058,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1310,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Number of Market Segments on which a security may trade.',\n        },\n    },\n    {\n        id: 2135,\n        name: 'NestedInstrumentAttribute',\n        abbrName: 'Attrb',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1210,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Code to represent the type of instrument attribute',\n            },\n            {\n                id: 1211,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Attribute value appropriate to the NestedInstrAttribType field',\n            },\n        ],\n        numInGroup: {\n            id: 1312,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 2136,\n        name: 'DerivativeInstrumentAttribute',\n        abbrName: 'Attrb',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1313,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1314,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1311,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 2137,\n        name: 'UsernameGrp',\n        abbrName: 'UserGrp',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'UserManagement',\n        fieldRef: [\n            {\n                id: 553,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Recipient of the notification',\n            },\n        ],\n        numInGroup: {\n            id: 809,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Number of usernames',\n        },\n    },\n    {\n        id: 2139,\n        name: 'SettlDetails',\n        abbrName: 'SettlDetails',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1164,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Indicates the Source of the Settlement Instructions',\n            },\n            {\n                id: 169,\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n            },\n            {\n                id: 170,\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n            },\n            {\n                id: 171,\n                added: 'FIX.5.0SP2',\n                addedEP: '249',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1017,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Carries settlement account information',\n            },\n        ],\n        numInGroup: {\n            id: 1158,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: 'Number of settlement parties',\n        },\n    },\n    {\n        id: 2141,\n        name: 'DerivativeInstrumentParties',\n        abbrName: 'Pty',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1293,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Used to identify party id related to instrument series',\n            },\n            {\n                id: 1294,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Used to identify source of instrument series party id',\n            },\n            {\n                id: 1295,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n                description: 'Used to identify the role of instrument series party id',\n            },\n            {\n                id: 2377,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2104,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1292,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description:\n                'Should contain unique combinations of DerivativeInstrumentPartyID, DerivativeInstrumentPartyIDSource, and DerivativeInstrumentPartyRole',\n        },\n    },\n    {\n        id: 2142,\n        name: 'NstdPtys4SubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.5.0',\n        addedEP: '-1',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1412,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n            {\n                id: 1411,\n                added: 'FIX.5.0',\n                addedEP: '-1',\n            },\n        ],\n        numInGroup: {\n            id: 1413,\n            added: 'FIX.5.0',\n            addedEP: '-1',\n            description: '',\n        },\n    },\n    {\n        id: 2144,\n        name: 'NewsRefGrp',\n        abbrName: 'Refs',\n        added: 'FIX.5.0SP1',\n        addedEP: '90',\n        category: 'EventCommunication',\n        fieldRef: [\n            {\n                id: 1476,\n                added: 'FIX.5.0SP1',\n                addedEP: '90',\n                description:\n                    'Required if NoNewsRefIDs(2144) > 0.\\n\\n\\n                        News item being referenced.',\n            },\n            {\n                id: 1477,\n                added: 'FIX.5.0SP1',\n                addedEP: '90',\n                description: 'Type of reference.',\n            },\n        ],\n        numInGroup: {\n            id: 1475,\n            added: 'FIX.5.0SP1',\n            addedEP: '90',\n            description: 'Number of news item references',\n        },\n    },\n    {\n        id: 2145,\n        name: 'ComplexEvents',\n        abbrName: 'CmplxEvnt',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        category: 'Common',\n        description:\n            'The ComplexEvent Group is a repeating block which allows specifying an unlimited number and types of advanced events, such as observation and pricing over the lifetime of an option, futures, commodities or equity swap contract. Use EvntGrp to specify more straightforward events.',\n        fieldRef: [\n            {\n                id: 1484,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description: 'Required if NoComplexEvents(1483) > 0.',\n            },\n            {\n                id: 2117,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2118,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2119,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 1485,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n            },\n            {\n                id: 2120,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2121,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2122,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2941,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1486,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n            },\n            {\n                id: 2123,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 1487,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n            },\n            {\n                id: 1488,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n            },\n            {\n                id: 1489,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n            },\n            {\n                id: 1490,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description:\n                    'Conditionally required when there are more than one ComplexEvents occurrences. A chain of ComplexEvents must be linked together through use of the ComplexEventCondition(1490) in which the relationship between any two events is described. For any two ComplexEvents the first occurrence will specify the ComplexEventCondition(1490) which links it with the second event.',\n            },\n            {\n                id: 2124,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2942,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2125,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2943,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2126,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2127,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2407,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 2408,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 2128,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2129,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2130,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2131,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2132,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2133,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2134,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2135,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2136,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2137,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2597,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2598,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2599,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2138,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2139,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2146,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n            },\n            {\n                id: 4147,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4146,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4150,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4143,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4149,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 1483,\n            added: 'FIX.5.0SP1',\n            addedEP: '92',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 2146,\n        name: 'ComplexEventDates',\n        abbrName: 'EvntDts',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        category: 'Common',\n        description:\n            'The ComplexEventDate and ComplexEventTime components are used to constrain a complex event to a specific date range or time range. If specified the event is only effective on or within the specified dates and times.',\n        fieldRef: [\n            {\n                id: 1492,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n                description: 'Required if NoComplexEventDates(1491) > 0.',\n            },\n            {\n                id: 1493,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n                description: 'Required if NoComplexEventDates(1491) > 0.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2147,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n            },\n        ],\n        numInGroup: {\n            id: 1491,\n            added: 'FIX.5.0SP1',\n            addedEP: '92',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 2147,\n        name: 'ComplexEventTimes',\n        abbrName: 'EvntTms',\n        added: 'FIX.5.0SP1',\n        addedEP: '92',\n        category: 'Common',\n        description:\n            'The ComplexEventTime component is nested within the ComplexEventDate in order to further qualify any dates placed on the event and is used to specify time ranges for which a complex event is effective. It is always provided within the context of start and end dates. The time range is assumed to be in effect for the entirety of the date or date range specified.',\n        fieldRef: [\n            {\n                id: 1495,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n                description: 'Required if NoComplexEventTimes(1494) > 0.',\n            },\n            {\n                id: 1496,\n                added: 'FIX.5.0SP1',\n                addedEP: '92',\n                description: 'Required if NoComplexEventTimes(1494) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1494,\n            added: 'FIX.5.0SP1',\n            addedEP: '92',\n            description: '',\n        },\n    },\n    {\n        id: 2148,\n        name: 'StrmAsgnReqGrp',\n        abbrName: 'Reqs',\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        category: 'MarketData',\n        groupRef: [\n            {\n                id: 1012,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n            {\n                id: 2150,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n        ],\n        numInGroup: {\n            id: 1499,\n            added: 'FIX.5.0SP1',\n            addedEP: '93',\n            description: 'Stream Assignment Requests.',\n        },\n    },\n    {\n        id: 2149,\n        name: 'StrmAsgnRptGrp',\n        abbrName: 'Rpts',\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        category: 'MarketData',\n        groupRef: [\n            {\n                id: 1012,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n            {\n                id: 2151,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n        ],\n        numInGroup: {\n            id: 1499,\n            added: 'FIX.5.0SP1',\n            addedEP: '93',\n            description: 'Stream Assignment Reports.',\n        },\n    },\n    {\n        id: 2150,\n        name: 'StrmAsgnReqInstrmtGrp',\n        abbrName: 'Instrmts',\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        category: 'MarketData',\n        fieldRef: [\n            {\n                id: 63,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n            {\n                id: 271,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n            {\n                id: 1500,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n        ],\n        numInGroup: {\n            id: 146,\n            added: 'FIX.5.0SP1',\n            addedEP: '93',\n            description: '',\n        },\n    },\n    {\n        id: 2151,\n        name: 'StrmAsgnRptInstrmtGrp',\n        abbrName: 'Instrmts',\n        added: 'FIX.5.0SP1',\n        addedEP: '93',\n        category: 'MarketData',\n        fieldRef: [\n            {\n                id: 63,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n            {\n                id: 1617,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n            {\n                id: 1500,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n            {\n                id: 1502,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n            {\n                id: 58,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n            {\n                id: 354,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n            {\n                id: 355,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.5.0SP1',\n                addedEP: '93',\n            },\n        ],\n        numInGroup: {\n            id: 146,\n            added: 'FIX.5.0SP1',\n            addedEP: '93',\n            description: '',\n        },\n    },\n    {\n        id: 2153,\n        name: 'RequestedPartyRoleGrp',\n        abbrName: 'ReqR',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        category: 'PartiesReferenceData',\n        description: 'Used to specify one or more PartyRoles as part of a request.',\n        fieldRef: [\n            {\n                id: 1509,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Identifies the type of party role requested. Required if NoRequestedPartyRoles > 0.',\n            },\n            {\n                id: 2386,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        numInGroup: {\n            id: 1508,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2154,\n        name: 'PartyRelationshipGrp',\n        abbrName: 'Rltnshp',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '217',\n        category: 'Common',\n        description: 'Repeating group of party relationships.',\n        fieldRef: [\n            {\n                id: 1515,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description:\n                    'Identifies the type of party relationship requested. Required if NoPartyRelationships > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1514,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2156,\n        name: 'PartyDetailGrp',\n        abbrName: 'PtyDetl',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '217',\n        category: 'Common',\n        description: 'Contains details for a party, including related parties and alternative party identifiers.',\n        fieldRef: [\n            {\n                id: 1691,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '128',\n                description: 'The identification of the party. Required when NoPartyDetails(1671) > 0.',\n            },\n            {\n                id: 1692,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '128',\n                description:\n                    'Used to identify source of PartyID value (e.g. BIC). Required when NoPartyDetails(1671) > 0.',\n            },\n            {\n                id: 1693,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '128',\n                description:\n                    'Identifies the type of PartyID (e.g. Executing Broker). Required when NoPartyDetails(1671) > 0.',\n            },\n            {\n                id: 1674,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 1672,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '171',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2189,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 2157,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Optionally used to specify alternate IDs to identify the party specified.',\n            },\n            {\n                id: 2166,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '128',\n                description:\n                    'May not be specified in PartyDetailsListUpdateReport(35=CK) if ListUpdateAction(1324) = D(Delete)',\n            },\n        ],\n        numInGroup: {\n            id: 1671,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2157,\n        name: 'PartyDetailAltIDGrp',\n        abbrName: 'AltPty',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '217',\n        category: 'Common',\n        description: 'Alternative identifiers for a party.',\n        fieldRef: [\n            {\n                id: 1517,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoPartyDetailAltID > 0.',\n            },\n            {\n                id: 1518,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoPartyDetailAltID > 0.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2158,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n        ],\n        numInGroup: {\n            id: 1516,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2158,\n        name: 'PartyDetailAltSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '217',\n        category: 'Common',\n        description: 'Alternate sub-identifiers for a party.',\n        fieldRef: [\n            {\n                id: 1520,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoPartyDetailAltSubIDs > 0.',\n            },\n            {\n                id: 1521,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoPartyDetailAltSubIDs > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1519,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2161,\n        name: 'RiskLimitTypesGrp',\n        abbrName: 'RiskLmtTyp',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        category: 'PartiesReferenceData',\n        description: 'Repeating group of risk limit types and values.',\n        fieldRef: [\n            {\n                id: 1530,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '128',\n                description: 'Required if NoRiskLimitTypes(1529) > 0.',\n            },\n            {\n                id: 1531,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '128',\n            },\n            {\n                id: 1767,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n            },\n            {\n                id: 1766,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                description: 'Not applicable in a request.',\n            },\n            {\n                id: 1765,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                description: 'Not applicable in a request.',\n            },\n            {\n                id: 1532,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 2939,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1533,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 2336,\n                added: 'FIX.5.0SP2',\n                addedEP: '171',\n                description: 'Conditionally required when RiskLimitType(1530) = 10 (Clip size)',\n            },\n            {\n                id: 2337,\n                added: 'FIX.5.0SP2',\n                addedEP: '171',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2164,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '171',\n            },\n        ],\n        numInGroup: {\n            id: 1529,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2163,\n        name: 'InstrumentScopeSecurityAltIDGrp',\n        abbrName: 'AID',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '106',\n        category: 'Common',\n        description: 'Alternative SecurityIDs for an instrument specified in the InstrumentScope.',\n        fieldRef: [\n            {\n                id: 1541,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoInstrumentScopeSecurityAltID > 0.',\n            },\n            {\n                id: 1542,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoInstrumentScopeSecurityAltID > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1540,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2164,\n        name: 'RiskWarningLevelGrp',\n        abbrName: 'WarnLvl',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        category: 'PartiesReferenceData',\n        description: 'Risk warning levels.',\n        fieldRef: [\n            {\n                id: 1769,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                description: 'Required if NoRiskWarningLevels(1559) > 0.',\n            },\n            {\n                id: 1560,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '128',\n                description: 'Conditionally required when RiskWarningLevelAmount(1768) is not provided.',\n            },\n            {\n                id: 1768,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                description: 'Conditionally required when RiskWarningLevelPercent(1560) is not provided.',\n            },\n            {\n                id: 1561,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n        ],\n        numInGroup: {\n            id: 1559,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2166,\n        name: 'RelatedPartyDetailGrp',\n        abbrName: 'ReltdPtyDetl',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '217',\n        category: 'Common',\n        description: 'Party details for parties related to the Party specified in the PartyDetailGrp.',\n        fieldRef: [\n            {\n                id: 1563,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required if NoRelatedPartyDetails > 0.',\n            },\n            {\n                id: 1564,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required if NoRelatedPartyDetails > 0.',\n            },\n            {\n                id: 1565,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required if NoRelatedPartyDetails > 0.',\n            },\n            {\n                id: 1675,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2167,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 2168,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 2154,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n        ],\n        numInGroup: {\n            id: 1562,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2167,\n        name: 'RelatedPartyDetailSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '217',\n        category: 'Common',\n        description: 'PartySubGrp for related parties.',\n        fieldRef: [\n            {\n                id: 1567,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoRelatedPartyDetailSubIDs > 0.',\n            },\n            {\n                id: 1568,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoRelatedPartyDetailSubIDs > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1566,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2168,\n        name: 'RelatedPartyDetailAltIDGrp',\n        abbrName: 'AltPty',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '217',\n        category: 'Common',\n        description: 'Alternative identifiers for parties related to the party specified in the PartyDetailGrp.',\n        fieldRef: [\n            {\n                id: 1570,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoRelatedPartyDetailAltID > 0.',\n            },\n            {\n                id: 1571,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoRelatedPartyDetailAltID > 0.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2169,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n        ],\n        numInGroup: {\n            id: 1569,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2169,\n        name: 'RelatedPartyDetailAltSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '217',\n        category: 'Common',\n        description: 'Sub identifiers for related parties alternate identifiers.',\n        fieldRef: [\n            {\n                id: 1573,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoRelatedPartyDetailAltSubIDs > 0.',\n            },\n            {\n                id: 1574,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoRelatedPartyDetailAltSubIDs > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1572,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2176,\n        name: 'MarginReqmtInqQualGrp',\n        abbrName: 'MgnReqmtInqQual',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        category: 'MarginRequirementManagement',\n        fieldRef: [\n            {\n                id: 1637,\n                added: 'FIX.5.0SP2',\n                addedEP: '102',\n            },\n        ],\n        numInGroup: {\n            id: 1636,\n            added: 'FIX.5.0SP2',\n            addedEP: '102',\n            description: 'Number of qualifier entries',\n        },\n    },\n    {\n        id: 2177,\n        name: 'MarginAmount',\n        abbrName: 'MgnAmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '102',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1645,\n                added: 'FIX.5.0SP2',\n                addedEP: '102',\n            },\n            {\n                id: 1644,\n                added: 'FIX.5.0SP2',\n                addedEP: '102',\n                description: 'Total margin requirement if not provided',\n            },\n            {\n                id: 1646,\n                added: 'FIX.5.0SP2',\n                addedEP: '102',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '162',\n                description: 'Can be used to specify the base settlement currency if Currency(15) is not specified.',\n            },\n            {\n                id: 2088,\n                added: 'FIX.5.0SP2',\n                addedEP: '162',\n            },\n            {\n                id: 2089,\n                added: 'FIX.5.0SP2',\n                addedEP: '162',\n            },\n            {\n                id: 1714,\n                added: 'FIX.5.0SP2',\n                addedEP: '117',\n            },\n            {\n                id: 1715,\n                added: 'FIX.5.0SP2',\n                addedEP: '117',\n            },\n            {\n                id: 2851,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n        ],\n        numInGroup: {\n            id: 1643,\n            added: 'FIX.5.0SP2',\n            addedEP: '102',\n            description: 'Number of margin amount entries',\n        },\n    },\n    {\n        id: 2178,\n        name: 'InstrumentScopeGrp',\n        abbrName: 'InstrmtScope',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '195',\n        category: 'Common',\n        description:\n            'Repeating group of InstrumentScope Components. Used to specify the instruments to which a request applies.',\n        fieldRef: [\n            {\n                id: 1535,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoInstrumentScopes > 0.',\n            },\n        ],\n        componentRef: [\n            {\n                id: 2162,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n        ],\n        numInGroup: {\n            id: 1656,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2179,\n        name: 'RiskInstrumentScopeGrp',\n        abbrName: 'InstrmtScope',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        category: 'PartiesReferenceData',\n        description:\n            'Repeating group of InstrumentScope Components. Used to specify the instruments to which a request applies.',\n        fieldRef: [\n            {\n                id: 1535,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoRiskInstrumentScopes > 0.',\n            },\n            {\n                id: 1558,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n        ],\n        componentRef: [\n            {\n                id: 2162,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n        ],\n        numInGroup: {\n            id: 1534,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2180,\n        name: 'RequestingPartyGrp',\n        abbrName: 'ReqPty',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '171',\n        category: 'Common',\n        description: 'Identifies the party making the request.',\n        fieldRef: [\n            {\n                id: 1658,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoRequestingPartyIDs > 0.',\n            },\n            {\n                id: 1659,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoRequestingPartyIDs > 0.',\n            },\n            {\n                id: 1660,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoRequestingPartyIDs > 0.',\n            },\n            {\n                id: 2338,\n                added: 'FIX.5.0SP2',\n                addedEP: '171',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2181,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '171',\n            },\n        ],\n        numInGroup: {\n            id: 1657,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2181,\n        name: 'RequestingPartySubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '171',\n        category: 'Common',\n        description: 'Sub identifiers for the requesting party.',\n        fieldRef: [\n            {\n                id: 1662,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoRequestingPartySubIDs > 0.',\n            },\n            {\n                id: 1663,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoRequestingPartySubIDs > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1661,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2182,\n        name: 'PartyDetailsUpdateGrp',\n        abbrName: 'PtyDetlUpd',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        category: 'PartiesReferenceData',\n        description: 'Party details component that includes an update action.',\n        fieldRef: [\n            {\n                id: 1324,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required if NoPartyUpdates > 0.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2156,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n        ],\n        numInGroup: {\n            id: 1676,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2183,\n        name: 'RequestedRiskLimitTypesGrp',\n        abbrName: 'ReqRiskLmtTyp',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        category: 'PartiesReferenceData',\n        description: 'List of risk limit types being requested.',\n        fieldRef: [\n            {\n                id: 1530,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required if NoRequestedRiskLimitType > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1668,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2184,\n        name: 'PartyRiskLimitsGrp',\n        abbrName: 'PtyRiskLmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        category: 'PartiesReferenceData',\n        description: 'Repeating group of parties (specified using PartyDetails) and the risk limits for the party.',\n        fieldRef: [\n            {\n                id: 1670,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n            {\n                id: 2339,\n                added: 'FIX.5.0SP2',\n                addedEP: '171',\n            },\n            {\n                id: 2355,\n                added: 'FIX.5.0SP2',\n                addedEP: '214',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2156,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '128',\n                description: 'Required if NoPartyRiskLimits(1677) > 0.',\n            },\n            {\n                id: 2185,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '128',\n                description:\n                    'Required if NoPartyRiskLimits(1677) > 0. Omit to implicitly report removal of risk limits.',\n            },\n        ],\n        numInGroup: {\n            id: 1677,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2185,\n        name: 'RiskLimitsGrp',\n        abbrName: 'RiskLmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        category: 'PartiesReferenceData',\n        description: 'Repeating group of risk limits.',\n        groupRef: [\n            {\n                id: 2161,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '128',\n                description: 'Required if NoRiskLimits(1669) > 0.',\n            },\n            {\n                id: 2179,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n            },\n        ],\n        numInGroup: {\n            id: 1669,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            description: '',\n        },\n    },\n    {\n        id: 2186,\n        name: 'SecMassStatGrp',\n        abbrName: 'SecMassStat',\n        added: 'FIX.5.0SP2',\n        addedEP: '106',\n        category: 'SecuritiesReferenceData',\n        fieldRef: [\n            {\n                id: 326,\n                added: 'FIX.5.0SP2',\n                addedEP: '106',\n                description: 'Conditionally required if NoRelatedSym > 0.',\n            },\n            {\n                id: 1174,\n                added: 'FIX.5.0SP2',\n                addedEP: '106',\n            },\n            {\n                id: 327,\n                added: 'FIX.5.0SP2',\n                addedEP: '106',\n            },\n            {\n                id: 291,\n                added: 'FIX.5.0SP2',\n                addedEP: '106',\n            },\n            {\n                id: 292,\n                added: 'FIX.5.0SP2',\n                addedEP: '106',\n            },\n            {\n                id: 58,\n                added: 'FIX.5.0SP2',\n                addedEP: '106',\n                description: 'Comment, instructions, or other identifying information.',\n            },\n            {\n                id: 354,\n                added: 'FIX.5.0SP2',\n                addedEP: '106',\n                description: 'Must be set if EncodedText field is specified and must immediately precede it.',\n            },\n            {\n                id: 355,\n                added: 'FIX.5.0SP2',\n                addedEP: '106',\n                description:\n                    'Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2066,\n                added: 'FIX.5.0SP2',\n                addedEP: '106',\n            },\n            {\n                id: 2019,\n                added: 'FIX.5.0SP2',\n                addedEP: '106',\n            },\n            {\n                id: 1066,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.5.0SP2',\n                addedEP: '106',\n                description:\n                    'Insert here the set of \"Instrument\" (symbology) fields defined in \"Common Components of Application Messages\". Conditionally required if NoRelatedSym > 0.',\n            },\n            {\n                id: 1004,\n                added: 'FIX.5.0SP2',\n                addedEP: '106',\n                description:\n                    'Insert here the set of \"InstrumentExtension\" fields defined in \"Common Components of Application Messages\".',\n            },\n            {\n                id: 1002,\n                added: 'FIX.5.0SP2',\n                addedEP: '201',\n            },\n        ],\n        numInGroup: {\n            id: 146,\n            added: 'FIX.5.0SP2',\n            addedEP: '106',\n            description: 'Number of exceptions with a trading status different from SecurityMassTradingStatus (1679).',\n        },\n    },\n    {\n        id: 2187,\n        name: 'LegPositionAmountData',\n        abbrName: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        category: 'TradeCapture',\n        fieldRef: [\n            {\n                id: 1587,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n                description: 'Conditionally required if NoLegPosAmt > 0.',\n            },\n            {\n                id: 1588,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 1589,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n            {\n                id: 2938,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1590,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n        ],\n        numInGroup: {\n            id: 1586,\n            added: 'FIX.5.0SP2',\n            addedEP: '107',\n            description: 'Number of Position Amount entries',\n        },\n    },\n    {\n        id: 2188,\n        name: 'SecurityClassificationGrp',\n        abbrName: 'SecClsfnGrp',\n        added: 'FIX.5.0SP2',\n        addedEP: '107',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 1583,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n                description: 'Conditionally required if NoSecurityClassifications > 0.',\n            },\n            {\n                id: 1584,\n                added: 'FIX.5.0SP2',\n                addedEP: '107',\n            },\n        ],\n        numInGroup: {\n            id: 1582,\n            added: 'FIX.5.0SP2',\n            addedEP: '107',\n            description: '',\n        },\n    },\n    {\n        id: 2189,\n        name: 'PartyDetailSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.5.0SP2',\n        addedEP: '105',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '217',\n        category: 'Common',\n        description: 'Additional party sub-identifiers',\n        fieldRef: [\n            {\n                id: 1695,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoPartyDetailSubIDs > 0.',\n            },\n            {\n                id: 1696,\n                added: 'FIX.5.0SP2',\n                addedEP: '105',\n                description: 'Required when NoPartyDetailSubIDs > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1694,\n            added: 'FIX.5.0SP2',\n            addedEP: '105',\n            updated: 'FIX.5.0SP2',\n            updatedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 2190,\n        name: 'SettlementAmountGrp',\n        abbrName: 'SettlAmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        category: 'AccountReporting',\n        description:\n            'The Settlement Amount Group component block is a repeating group of settlement amounts for an account',\n        fieldRef: [\n            {\n                id: 1701,\n                added: 'FIX.5.0SP2',\n                addedEP: '117',\n                description: 'Required if NoSettlementAmounts > 0.',\n            },\n            {\n                id: 1702,\n                added: 'FIX.5.0SP2',\n                addedEP: '117',\n            },\n            {\n                id: 2903,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n        ],\n        numInGroup: {\n            id: 1700,\n            added: 'FIX.5.0SP2',\n            addedEP: '117',\n            description: '',\n        },\n    },\n    {\n        id: 2191,\n        name: 'CollateralAmountGrp',\n        abbrName: 'CollAmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '179',\n        category: 'Common',\n        description:\n            'The Collateral Amount Group component block is a repeating group that provides the current value of the collateral type on deposit. The currency of the collateral value may be optionally included.',\n        fieldRef: [\n            {\n                id: 1704,\n                added: 'FIX.5.0SP2',\n                addedEP: '117',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '197',\n                description: 'Required if NoCollateralAmounts(1703) > 0.',\n            },\n            {\n                id: 1705,\n                added: 'FIX.5.0SP2',\n                addedEP: '117',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '192',\n                description:\n                    'Can be used to specify the currency of CollateralAmount(1704) if Currency(15) is not specified or is not the same.',\n            },\n            {\n                id: 2929,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2632,\n                added: 'FIX.5.0SP2',\n                addedEP: '197',\n            },\n            {\n                id: 2090,\n                added: 'FIX.5.0SP2',\n                addedEP: '162',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '197',\n            },\n            {\n                id: 2091,\n                added: 'FIX.5.0SP2',\n                addedEP: '162',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '197',\n            },\n            {\n                id: 1706,\n                added: 'FIX.5.0SP2',\n                addedEP: '117',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '157',\n            },\n            {\n                id: 2092,\n                added: 'FIX.5.0SP2',\n                addedEP: '162',\n            },\n            {\n                id: 2093,\n                added: 'FIX.5.0SP2',\n                addedEP: '162',\n            },\n            {\n                id: 1902,\n                added: 'FIX.5.0SP2',\n                addedEP: '157',\n            },\n            {\n                id: 2350,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n            {\n                id: 2690,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n            },\n            {\n                id: 2689,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n            },\n            {\n                id: 2840,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description:\n                    'May be used to specify the average reinvestment rate when there are multiple instances of the CollateralReinvestmentGrp.',\n            },\n            {\n                id: 2841,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description:\n                    'May be used to indicate that this entry applies to the underlying collateral instrument being referenced by the value in UnderlyingID(2874).',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2266,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n        ],\n        numInGroup: {\n            id: 1703,\n            added: 'FIX.5.0SP2',\n            addedEP: '117',\n            description: '',\n        },\n    },\n    {\n        id: 2192,\n        name: 'PayCollectGrp',\n        abbrName: 'PayCol',\n        added: 'FIX.5.0SP2',\n        addedEP: '117',\n        category: 'AccountReporting',\n        description:\n            'The Pay Collect Group component block is a repeatable block intended to report individual pay/collect items to be considered when calculating net settlement.\\n\\nA Pay/Collect is a payment or collection of funds by the clearing house to/from a clearing firm for a specific reason. Pay/Collects are typically netted to a single amount and factored into the firm\u2019s daily net settlement. Values are to be maintained by an external code list. The currency of the pay/collect amount may be optionally included.',\n        fieldRef: [\n            {\n                id: 1708,\n                added: 'FIX.5.0SP2',\n                addedEP: '117',\n                description: 'Required if NoPayCollects > 0.',\n            },\n            {\n                id: 1709,\n                added: 'FIX.5.0SP2',\n                addedEP: '117',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '162',\n                description: 'Can be used to specify the base settlement currency if Currency(15) is not specified.',\n            },\n            {\n                id: 2955,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2094,\n                added: 'FIX.5.0SP2',\n                addedEP: '162',\n            },\n            {\n                id: 2095,\n                added: 'FIX.5.0SP2',\n                addedEP: '162',\n            },\n            {\n                id: 1710,\n                added: 'FIX.5.0SP2',\n                addedEP: '117',\n            },\n            {\n                id: 1711,\n                added: 'FIX.5.0SP2',\n                addedEP: '117',\n            },\n            {\n                id: 1712,\n                added: 'FIX.5.0SP2',\n                addedEP: '117',\n            },\n            {\n                id: 1713,\n                added: 'FIX.5.0SP2',\n                addedEP: '117',\n            },\n        ],\n        numInGroup: {\n            id: 1707,\n            added: 'FIX.5.0SP2',\n            addedEP: '117',\n            description: '',\n        },\n    },\n    {\n        id: 2193,\n        name: 'PartyRiskLimitsUpdateGrp',\n        abbrName: 'PtyRiskLmtUpdt',\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        category: 'PartiesReferenceData',\n        description:\n            'This new block is a repeating group based on the existing block <PartyRiskLimitsGrp> with an additional field ListUpdateAction(1324) to support incremental changes of risk limit definitions. The group is part of the definition request as well as part of the update report for risk limits.',\n        fieldRef: [\n            {\n                id: 1324,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                description: 'Required if NoPartyRiskLimits(1677) > 0.',\n            },\n            {\n                id: 1670,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                description: 'Conditionally required when PartyDetailGrp component is not provided.',\n            },\n            {\n                id: 2339,\n                added: 'FIX.5.0SP2',\n                addedEP: '171',\n            },\n            {\n                id: 2355,\n                added: 'FIX.5.0SP2',\n                addedEP: '214',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2156,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                description:\n                    'Conditionally required when ListUpdateAction(1324) = A(Add).\\n\\n\\n                        Conditionally required when ListUpdateAction(1324) = M(Modify) or D(Delete) and RiskLimitID(1670) is not provided.',\n            },\n            {\n                id: 2185,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                description: 'Conditionally required when ListUpdateAction(1324) = A(Add) or M(Modify).',\n            },\n        ],\n        numInGroup: {\n            id: 1677,\n            added: 'FIX.5.0SP2',\n            addedEP: '128',\n            description: '',\n        },\n    },\n    {\n        id: 2194,\n        name: 'PartyRiskLimitsAckGrp',\n        abbrName: 'PtyRiskLmtAck',\n        added: 'FIX.5.0SP2',\n        addedEP: '128',\n        category: 'PartiesReferenceData',\n        description:\n            'This new block is a repeating group based on the existing block <PartyRiskLimitsGrp> with an additional field RiskLimitStatus(1763) to accept (with or without changes) or reject individual risk limits. It is only used in PartyRiskLimitDefinitionRequestAck, the response to the request to define risk limits. An approval with changes requires to send <RiskLimitsGrp> with the complete set of risk limits that have been accepted for the party defined.',\n        fieldRef: [\n            {\n                id: 1324,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                description: 'Required if NoPartyRiskLimits(1677) > 0.',\n            },\n            {\n                id: 1763,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                description: 'Required if NoPartyRiskLimits(1677) > 0.',\n            },\n            {\n                id: 1764,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n            },\n            {\n                id: 1670,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                description: 'Conditionally required when PartyDetailGrp component is not provided.',\n            },\n            {\n                id: 2339,\n                added: 'FIX.5.0SP2',\n                addedEP: '171',\n            },\n            {\n                id: 1328,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n            },\n            {\n                id: 1664,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '171',\n                description:\n                    'Must be set if EncodedRejectText(1665) field is specified and must immediately precede it.',\n            },\n            {\n                id: 1665,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '171',\n                description:\n                    'Encoded (non-ASCII characters) representation of the RejectText(1328) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 2355,\n                added: 'FIX.5.0SP2',\n                addedEP: '214',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2156,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                description:\n                    'Conditionally required when RiskLimitID(1670) is not provided.\\n\\n\\n                        Changes to party or related party(-ies) defined in the request are not permitted.',\n            },\n            {\n                id: 2185,\n                added: 'FIX.5.0SP2',\n                addedEP: '128',\n                description:\n                    'Conditionally required when RiskLimitStatus(1763) = 1(Accepted with changes) and must then be complete, i.e. omissions compared to the request represent risk limits that were removed, additional risk limits are possible.',\n            },\n        ],\n        numInGroup: {\n            id: 1677,\n            added: 'FIX.5.0SP2',\n            addedEP: '128',\n            description: '',\n        },\n    },\n    {\n        id: 2195,\n        name: 'PartyEntitlementGrp',\n        abbrName: 'PtyEntlmnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        category: 'PartiesReferenceData',\n        description: 'Conveys a list of parties (optionally including related parties) and the entitlements for each.',\n        fieldRef: [\n            {\n                id: 1883,\n                added: 'FIX.5.0SP2',\n                addedEP: '173',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2156,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n                description: 'Required if NoPartyEntitlements(1772) > 0.',\n            },\n            {\n                id: 2196,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '146',\n                description:\n                    'Required unless omitted to indicate the removal of entitlements for the party(-ies) specified in the PartyDetailGrp component.',\n            },\n        ],\n        numInGroup: {\n            id: 1772,\n            added: 'FIX.5.0SP2',\n            addedEP: '129',\n            description: '',\n        },\n    },\n    {\n        id: 2196,\n        name: 'EntitlementGrp',\n        abbrName: 'Entlmnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        category: 'PartiesReferenceData',\n        description:\n            'Conveys a list of entitlements for one specific party, or relationship between two parties. Each entitlement may be further limited or clarified using optional fields and components.',\n        fieldRef: [\n            {\n                id: 1774,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n                description: 'Required if NoEntitlements(1773) > 0.',\n            },\n            {\n                id: 1775,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n                description: 'Absence of this field indicates the meaning of the entitlement is implicit.',\n            },\n            {\n                id: 2402,\n                added: 'FIX.5.0SP2',\n                addedEP: '183',\n            },\n            {\n                id: 1776,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n            },\n            {\n                id: 1784,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n            },\n            {\n                id: 1782,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n            },\n            {\n                id: 1783,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2197,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n            },\n            {\n                id: 2178,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n            },\n            {\n                id: 2198,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n            },\n        ],\n        numInGroup: {\n            id: 1773,\n            added: 'FIX.5.0SP2',\n            addedEP: '129',\n            description: '',\n        },\n    },\n    {\n        id: 2197,\n        name: 'EntitlementAttribGrp',\n        abbrName: 'Attrib',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        category: 'PartiesReferenceData',\n        description:\n            'conveys a list of one or more attributes related to an entitlement. An entitlement may contain an EntitlementType, which states what can be done at a gross level, e.g. that a party can make markets. It may be limited further within EntitlementGrp, e.g. that such market making is allowed only for a list of stocks. The EntitlementAttribGrp contains fine details clarifying or limiting the EntitlementType, e.g. that such market making must be conducted with a specific minimum quote size and a specific maximum spread.',\n        fieldRef: [\n            {\n                id: 1778,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n                description: 'Required if NoEntitlementAttrib(1777) > 0.',\n            },\n            {\n                id: 1779,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n                description:\n                    'If specified, and this is an attribute published by FPL in the external code list, this must agree with the published datatype.',\n            },\n            {\n                id: 1780,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n                description: 'Required if NoEntitlementAttrib(1777) > 0.',\n            },\n            {\n                id: 1781,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n            },\n            {\n                id: 2940,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n        ],\n        numInGroup: {\n            id: 1777,\n            added: 'FIX.5.0SP2',\n            addedEP: '129',\n            description: '',\n        },\n    },\n    {\n        id: 2198,\n        name: 'MarketSegmentScopeGrp',\n        abbrName: 'MktSegScope',\n        added: 'FIX.5.0SP2',\n        addedEP: '129',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '190',\n        category: 'Common',\n        description:\n            'Conveys a list of markets and, optionally, their market segments. Note that the component MarketSegmentGrp exists, but is not useful for this purpose, as it conveys additional information not appropriate in this context.',\n        fieldRef: [\n            {\n                id: 1301,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n                description: 'Required if NoMarketSegments(1310) > 0.',\n            },\n            {\n                id: 1300,\n                added: 'FIX.5.0SP2',\n                addedEP: '129',\n            },\n        ],\n        numInGroup: {\n            id: 1310,\n            added: 'FIX.5.0SP2',\n            addedEP: '129',\n            description: '',\n        },\n    },\n    {\n        id: 2199,\n        name: 'TargetMarketSegmentGrp',\n        abbrName: 'TgtMktSeg',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        category: 'Common',\n        description: 'Convey a list of market segments upon which an action is to be taken.',\n        fieldRef: [\n            {\n                id: 1790,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description: 'Required when NoTargetMarketSegments(1789) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1789,\n            added: 'FIX.5.0SP2',\n            addedEP: '131',\n            description: '',\n        },\n    },\n    {\n        id: 2200,\n        name: 'AffectedMarketSegmentGrp',\n        abbrName: 'AfctdMktSeg',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        category: 'Common',\n        description: 'List of market segments that have been affected by a mass action.',\n        fieldRef: [\n            {\n                id: 1792,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description: 'Required when NoAffectedMarketSegments(1791) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1791,\n            added: 'FIX.5.0SP2',\n            addedEP: '131',\n            description: '',\n        },\n    },\n    {\n        id: 2201,\n        name: 'NotAffectedMarketSegmentGrp',\n        abbrName: 'NotAfctdMktSeg',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        category: 'Common',\n        description: 'List of market segments that were not affected by a mass action.',\n        fieldRef: [\n            {\n                id: 1794,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description: 'Required when NoNotAffectedMarketSegments(1793) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1793,\n            added: 'FIX.5.0SP2',\n            addedEP: '131',\n            description: '',\n        },\n    },\n    {\n        id: 2202,\n        name: 'OrderEventGrp',\n        abbrName: 'OrdEvent',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        category: 'SingleGeneralOrderHandling',\n        description:\n            'List the different types of events affecting orders. These can include entry, modification and deletion of orders as well as executions (fills). Modifications can be solicited or unsolicited, e.g. triggering of stop orders, replenishment of reserve orders, orders being suspended (locked) or released from suspension.',\n        fieldRef: [\n            {\n                id: 1796,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description: 'Required when NoOrderEvents(1795) > 0.',\n            },\n            {\n                id: 1797,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 1798,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 1799,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 1800,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 1801,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 1802,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n        ],\n        numInGroup: {\n            id: 1795,\n            added: 'FIX.5.0SP2',\n            addedEP: '131',\n            description: '',\n        },\n    },\n    {\n        id: 2203,\n        name: 'DisclosureInstructionGrp',\n        abbrName: 'DisclsrInst',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        category: 'Common',\n        description:\n            'Repeating group of instructions, each of which relates to one or more elements of an order. The instruction itself conveys whether the information should be disclosed, e.g. in market data, or not.',\n        fieldRef: [\n            {\n                id: 1813,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description: 'Required when NoDisclosureInstructions(1812) > 0.',\n            },\n            {\n                id: 1814,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n        ],\n        numInGroup: {\n            id: 1812,\n            added: 'FIX.5.0SP2',\n            addedEP: '131',\n            description: '',\n        },\n    },\n    {\n        id: 2204,\n        name: 'SideCrossLegGrp',\n        abbrName: 'SideCrossLeg',\n        added: 'FIX.5.0SP2',\n        addedEP: '131',\n        category: 'CrossOrders',\n        description:\n            'Repeating group that is similar to LegOrdGrp component in order to support leg level information per side of cross orders and is part of SideCrossOrdModGrp component. LegOrdGrp component cannot be re-used for this purpose as it contains the component blocks InstrumentLeg component and NestedParties component which are already part of the cross messages. The difference to LegOrdGrp component is that SideCrossLegGrp component does not have an InstrumentLeg component to describe the legs, it only has a single reference field to identify the leg which can be defined by the InstrumentLeg component which is present on a higher level of the message and outside of the side group.',\n        fieldRef: [\n            {\n                id: 654,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description: 'Required if NoCrossLegs(1829) > 0.',\n            },\n            {\n                id: 685,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description: 'Quantity ordered for this leg as provided during order entry.',\n            },\n            {\n                id: 690,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 1366,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 1817,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description:\n                    'Provide if different from the value specified for the overall multileg security in ClearingAccountType(1816) in the Instrument component.',\n            },\n            {\n                id: 564,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description:\n                    'Provide if different from the value specified for the overall multileg security in PositionEffect(77) in the Instrument component.',\n            },\n            {\n                id: 565,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description:\n                    'Provide if different from the value specified for the overall multileg security in CoveredOrUncovered(203) in the Instrument component.',\n            },\n            {\n                id: 587,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 588,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 675,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 2900,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1379,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 1381,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 1383,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 1384,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 1689,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n                description:\n                    'Available for optional use when LegSide(624) = 6(Sell short exempt) in InstrumentLeg component.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1007,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 2026,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n            {\n                id: 1010,\n                added: 'FIX.5.0SP2',\n                addedEP: '131',\n            },\n        ],\n        numInGroup: {\n            id: 1829,\n            added: 'FIX.5.0SP2',\n            addedEP: '131',\n            description: '',\n        },\n    },\n    {\n        id: 2205,\n        name: 'TradeAllocAmtGrp',\n        abbrName: 'Amt',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        category: 'Common',\n        description:\n            'The TradeAllocAmtGrp component is used to communicate the monetary amounts associated with allocated positions. This is the per-allocation portion of the per-trade amount specified in PositionAmountData component.',\n        fieldRef: [\n            {\n                id: 1845,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n                description: 'Required if NoTradeAllocAmts(1844) > 0.',\n            },\n            {\n                id: 1846,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n                description: 'Required if NoTradeAllocAmts(1844) > 0.',\n            },\n            {\n                id: 1847,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 2933,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1850,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n        ],\n        numInGroup: {\n            id: 1844,\n            added: 'FIX.5.0SP2',\n            addedEP: '141',\n            description: '',\n        },\n    },\n    {\n        id: 2206,\n        name: 'TradePriceConditionGrp',\n        abbrName: 'TrdPxConds',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        category: 'Common',\n        description: 'Price conditions associated with a trade that impact trade price.',\n        fieldRef: [\n            {\n                id: 1839,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n                description: 'Required if NoTradePriceConditions(1838) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1838,\n            added: 'FIX.5.0SP2',\n            addedEP: '141',\n            description: '',\n        },\n    },\n    {\n        id: 2207,\n        name: 'TradeQtyGrp',\n        abbrName: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        category: 'Common',\n        description:\n            'Quantities of the trade that have been processed and the type of processing that has occurred for that trade quantity.',\n        fieldRef: [\n            {\n                id: 1842,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n                description: 'Required if NoTradeQty(1841) > 0.',\n            },\n            {\n                id: 1843,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n                description: 'Required if NoTradeQty(1841) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1841,\n            added: 'FIX.5.0SP2',\n            addedEP: '141',\n            description: '',\n        },\n    },\n    {\n        id: 2208,\n        name: 'TradePositionQty',\n        abbrName: 'Qty',\n        added: 'FIX.5.0SP2',\n        addedEP: '141',\n        category: 'Common',\n        description:\n            'The TradePositionQty component block specifies, for a single trade side, the various types of position quantity in the position life-cycle including start-of-day, intraday, trade, adjustments, and end-of-day position quantities.',\n        fieldRef: [\n            {\n                id: 703,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n                description: 'Required if NoPositions > 0.',\n            },\n            {\n                id: 704,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 705,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 1654,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 706,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n            {\n                id: 976,\n                added: 'FIX.5.0SP2',\n                addedEP: '141',\n            },\n        ],\n        numInGroup: {\n            id: 702,\n            added: 'FIX.5.0SP2',\n            addedEP: '141',\n            description: '',\n        },\n    },\n    {\n        id: 2209,\n        name: 'RelatedTradeGrp',\n        abbrName: 'ReltdTrd',\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        category: 'Common',\n        description:\n            'This component is used to identify trades that are related to each other for a business purpose, such as netting of forwards. This component should not be used in lieu of explicit FIX fields that denote specific semantic relationships, but rather should be used when no such fields exist.',\n        fieldRef: [\n            {\n                id: 1856,\n                added: 'FIX.5.0SP2',\n                addedEP: '142',\n                description: 'Required if NoRelatedTrades(1855) > 0.',\n            },\n            {\n                id: 1857,\n                added: 'FIX.5.0SP2',\n                addedEP: '142',\n            },\n            {\n                id: 2103,\n                added: 'FIX.5.0SP2',\n                addedEP: '165',\n                description:\n                    'Optionally used for RelatedTradeIDSource(1857)=6(Regulatory trade ID) when RelatedTradeID(1856) is not unique across multiple reporting entities.',\n            },\n            {\n                id: 1858,\n                added: 'FIX.5.0SP2',\n                addedEP: '142',\n                description:\n                    'Optionally used to help identify the trade when RelatedTradeID(1856) is not unique across multiple days.',\n            },\n            {\n                id: 1859,\n                added: 'FIX.5.0SP2',\n                addedEP: '142',\n                description:\n                    'Optionally used to help identify the trade when RelatedTradeID(1856) is not unique across multiple markets.',\n            },\n            {\n                id: 1860,\n                added: 'FIX.5.0SP2',\n                addedEP: '142',\n            },\n        ],\n        numInGroup: {\n            id: 1855,\n            added: 'FIX.5.0SP2',\n            addedEP: '142',\n            description: '',\n        },\n    },\n    {\n        id: 2210,\n        name: 'RelatedPositionGrp',\n        abbrName: 'ReltdPos',\n        added: 'FIX.5.0SP2',\n        addedEP: '142',\n        category: 'Common',\n        description:\n            'This component is used to identify positions that are related to each other or to other trades. This should not be used in lieu of explicit FIX fields that denote specific semantic relationships, but rather should be used when no such fields exist.',\n        fieldRef: [\n            {\n                id: 1862,\n                added: 'FIX.5.0SP2',\n                addedEP: '142',\n                description: 'Required if NoRelatedPositions(1861) > 0.',\n            },\n            {\n                id: 1863,\n                added: 'FIX.5.0SP2',\n                addedEP: '142',\n            },\n            {\n                id: 1864,\n                added: 'FIX.5.0SP2',\n                addedEP: '142',\n            },\n        ],\n        numInGroup: {\n            id: 1861,\n            added: 'FIX.5.0SP2',\n            addedEP: '142',\n            description: '',\n        },\n    },\n    {\n        id: 2211,\n        name: 'ValueChecksGrp',\n        abbrName: 'ValuChk',\n        added: 'FIX.5.0SP2',\n        addedEP: '144',\n        category: 'Common',\n        description:\n            'This component can be used by the message submitter to provide a list of value types to be checked by the counterparty or message recipient.',\n        fieldRef: [\n            {\n                id: 1869,\n                added: 'FIX.5.0SP2',\n                addedEP: '144',\n                description: 'Required if NoValueChecks(1868) > 0.',\n            },\n            {\n                id: 1870,\n                added: 'FIX.5.0SP2',\n                addedEP: '144',\n                description: 'Required if NoValueChecks(1868) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1868,\n            added: 'FIX.5.0SP2',\n            addedEP: '144',\n            description: '',\n        },\n    },\n    {\n        id: 2214,\n        name: 'PartyDetailAckGrp',\n        abbrName: 'PtyDetlAck',\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        category: 'PartiesReferenceData',\n        description:\n            'The PartyDetailAckGrp component is used in the PartyDetailsDefinitionRequestAck(35=CY) message to provide the status of each action (add, modify or delete) requested by the PartyDetailsDefinitionRequest(35=CX) message. The PartyDetailStatus(1880) field is used to indicate the status. In the case where an add or modify request is accepted with changes, the PartyDetailGrp component is required, with the complete set of party details that have been accepted for the party included.',\n        fieldRef: [\n            {\n                id: 1324,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n                description: 'Required if NoPartyUpdates(1676) > 0.',\n            },\n            {\n                id: 1879,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n                description: 'Required if NoPartyUpdates(1676) > 0.',\n            },\n            {\n                id: 1880,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n            },\n            {\n                id: 1328,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n            },\n            {\n                id: 1664,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n            },\n            {\n                id: 1665,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2156,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n            },\n        ],\n        numInGroup: {\n            id: 1676,\n            added: 'FIX.5.0SP2',\n            addedEP: '146',\n            description: '',\n        },\n    },\n    {\n        id: 2215,\n        name: 'PartyEntitlementUpdateGrp',\n        abbrName: 'PtyEntlmntUpd',\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        category: 'PartiesReferenceData',\n        description:\n            'The PartyEntitlementUpdateGrp component is used to supply incremental entitlement definitions changes for the party(-ies) specified in the PartyDetailGrp component. The update action type is specified using ListUpdateAction(1324).',\n        fieldRef: [\n            {\n                id: 1324,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n                description: 'Required if NoPartyEntitlements(1772).',\n            },\n            {\n                id: 1883,\n                added: 'FIX.5.0SP2',\n                addedEP: '173',\n            },\n            {\n                id: 1885,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n                description: 'Optional when PartyDetailGrp is provided or ListUpdateAction(1324) = A(Add).',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2156,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n                description:\n                    'Optional when ListUpdateAction(1324) = M(Modify) or D(Delete) and EntitlementRefID(1885) is provided.',\n            },\n            {\n                id: 2196,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n                description:\n                    'Optional when ListUpdateAction(1324) = M(Modify) or D(Delete) and EntitlementRefID(1885) is provided.',\n            },\n        ],\n        numInGroup: {\n            id: 1772,\n            added: 'FIX.5.0SP2',\n            addedEP: '146',\n            description: '',\n        },\n    },\n    {\n        id: 2216,\n        name: 'PartyEntitlementAckGrp',\n        abbrName: 'PtyEntlmntAck',\n        added: 'FIX.5.0SP2',\n        addedEP: '146',\n        category: 'PartiesReferenceData',\n        description:\n            'The PartyEntitlementAckGrp component is used in the PartyEntitlementsDefinitionRequestAck(35=DB) message to provide the status of each action (add, modify or delete) requested by the PartyEntitlementsDefinitionRequest(35=DA) message.\\n\\nThe EntitlementStatus(1883) field is used to indicate the status. In the case where an add or modify request is accepted with changes, the EntitlementGrp component is required, with the complete set of entitlements that have been accepted for the party included.',\n        fieldRef: [\n            {\n                id: 1324,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n                description: 'Required if NoPartyEntitlements(1772).',\n            },\n            {\n                id: 1883,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n                description: 'Required if NoPartyEntitlements(1772).',\n            },\n            {\n                id: 1884,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n            },\n            {\n                id: 1328,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n            },\n            {\n                id: 1664,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n            },\n            {\n                id: 1665,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n            },\n            {\n                id: 1885,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n                description: 'Optional when PartyDetailGrp is provided or ListUpdateAction(1324) = A(Add).',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2156,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n                description:\n                    'Optional when ListUpdateAction(1324) = M(Modify) or D(Delete) and EntitlementRefID(1885) is provided.',\n            },\n            {\n                id: 2196,\n                added: 'FIX.5.0SP2',\n                addedEP: '146',\n                description:\n                    'Optional when ListUpdateAction(1324) = M(Modify) or D(Delete) and EntitlementRefID(1885) is provided.',\n            },\n        ],\n        numInGroup: {\n            id: 1772,\n            added: 'FIX.5.0SP2',\n            addedEP: '146',\n            description: '',\n        },\n    },\n    {\n        id: 2217,\n        name: 'InstrmtMatchSideGrp',\n        abbrName: 'InstrmtMtchSide',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        category: 'TradeCapture',\n        description:\n            'The InstrmtMatchSideGrp component is used to convey all trades for a given match event reported by instrument and trade side.\\n\\nEach trade match report can contain any number of trades for any number of instruments. This component contains all instruments together with all of the trade sides (possibly more than two) that occurred for each instrument within the same match event.',\n        fieldRef: [\n            {\n                id: 1891,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 53,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description:\n                    'Total quantity for this instrument in this match event. This is the cumulative sum of LastQty(32) for all match steps for this instrument.',\n            },\n            {\n                id: 15,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 2897,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 120,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 2899,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 854,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 32,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description:\n                    'Required if NoInstrmtMatchSides(1889) > 0.\\n\\n\\n                        Trade quantity for this instrument within this match step. The value is the greater of the sum of SideLastQty(1009) of each side (i.e. buy or sell) for each TrdMatchSideGrp instance within the current InstrmtMatchSideGrp instance.',\n            },\n            {\n                id: 423,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 31,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description: 'Required if NoInstrmtMatchSides(1889) > 0.',\n            },\n            {\n                id: 30,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2019,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description:\n                    'LegID(1788) in the InstrmtLegGrp component can be used to reference individual leg executions referenced in the TrdInstrmtLegExecGrp component with LegRefID(654).',\n            },\n            {\n                id: 2066,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 2218,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description: 'Required if NoInstrmtMatchSides(1889) > 0.',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description: 'Required if NoInstrmtMatchSides(1889) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1889,\n            added: 'FIX.5.0SP2',\n            addedEP: '150',\n            description: '',\n        },\n    },\n    {\n        id: 2218,\n        name: 'TrdMatchSideGrp',\n        abbrName: 'TrdMtchSide',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        category: 'TradeCapture',\n        description:\n            'The TrdMatchSideGrp component conveys all trade sides for a single instance of the InstrmtMatchSideGrp component.',\n        fieldRef: [\n            {\n                id: 54,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description: 'Required if NoTrdMatchSides(1890) > 0.',\n            },\n            {\n                id: 1427,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1900,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1506,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1005,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1428,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1429,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1009,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description:\n                    'Required if NoTrdMatchSides(1890) > 0.\\n\\n\\n                        Used to indicate the matched quantity for this trade side as a result of the match event.',\n            },\n            {\n                id: 1597,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1599,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1598,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1006,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1007,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1008,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 430,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1154,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 2901,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1155,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 2902,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 578,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 579,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 376,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 2404,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n            },\n            {\n                id: 2351,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n                description:\n                    'Must be set if EncodedComplianceText(2352) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2352,\n                added: 'FIX.5.0SP2',\n                addedEP: '185',\n                description:\n                    'Encoded (non-ASCII characters) representation of the ComplianceText(2404) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 377,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 582,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 943,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 77,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description: 'For use in derivatives omnibus accounting.',\n            },\n            {\n                id: 825,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 826,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 591,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 70,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1072,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1057,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1139,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1690,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1115,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 819,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1731,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1898,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description:\n                    'Can be used if the match event results in matches across different market segments for this side.',\n            },\n            {\n                id: 1899,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description:\n                    'Can be used if the match event results in matches across different venue types for this side.',\n            },\n            {\n                id: 635,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1031,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1032,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 58,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description: 'Can be used to include text included in the order submission.',\n            },\n            {\n                id: 354,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 355,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1012,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description: 'Required if NoTrdMatchSides(1890) > 0.',\n            },\n            {\n                id: 2060,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 2219,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n        ],\n        componentRef: [\n            {\n                id: 2143,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n        ],\n        numInGroup: {\n            id: 1890,\n            added: 'FIX.5.0SP2',\n            addedEP: '150',\n            description: '',\n        },\n    },\n    {\n        id: 2219,\n        name: 'TrdInstrmtLegExecGrp',\n        abbrName: 'LegExec',\n        added: 'FIX.5.0SP2',\n        addedEP: '150',\n        category: 'TradeCapture',\n        description:\n            'The TrdInstrmtLegExecGrp component comprises individual executions for legs of the trade side of a trade match report for a specific instrument.',\n        fieldRef: [\n            {\n                id: 654,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description: 'Required if NoLegExecs(1892) > 0.',\n            },\n            {\n                id: 1893,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1901,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1894,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1895,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 685,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 564,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description:\n                    'Can be used to specify the position effect for the leg if it is different from the position effect of the overall multileg security.',\n            },\n            {\n                id: 565,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n                description:\n                    'Can be used to specify whether the option is a cover, if it is different from the overall multileg security.',\n            },\n            {\n                id: 637,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 686,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 675,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 2900,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 1689,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1418,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n            {\n                id: 1591,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n        ],\n        groupRef: [\n            {\n                id: 1010,\n                added: 'FIX.5.0SP2',\n                addedEP: '150',\n            },\n        ],\n        numInGroup: {\n            id: 1892,\n            added: 'FIX.5.0SP2',\n            addedEP: '150',\n            description: '',\n        },\n    },\n    {\n        id: 2220,\n        name: 'RegulatoryTradeIDGrp',\n        abbrName: 'RegTrdID',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        category: 'Common',\n        description:\n            'The RegulatoryTradeIDGrp is a repeating component within the TradeCaptureReport message used to report the source, value and relationship of multiple identifiers for the same trade or position.\\n\\nThis component can be used to meet regulatory trade reporting requirements where identifiers such as the Unique Swaps Identifier (USI) in the US or the Unique Trade Identifier (UTI) in Europe and Canada are required to be reported, showing the chaining of these identifiers as needed.',\n        fieldRef: [\n            {\n                id: 1903,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoRegulatoryTradeIDs(1907) > 0.',\n            },\n            {\n                id: 1905,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1904,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1906,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2411,\n                added: 'FIX.5.0SP2',\n                addedEP: '181',\n                updated: 'FIX.Latest',\n                updatedEP: '294',\n                description:\n                    'This field may be used for multi-leg trades sent as a single message to indicate that the entry applies only to a specific leg.',\n            },\n            {\n                id: 2397,\n                added: 'FIX.5.0SP2',\n                addedEP: '181',\n            },\n        ],\n        numInGroup: {\n            id: 1907,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 2221,\n        name: 'AllocRegulatoryTradeIDGrp',\n        abbrName: 'RegTrdID',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '162',\n        category: 'Common',\n        description:\n            'The AllocRegulatoryTradeIDGrp is a repeating component within the TrdAllocGrp component used to report the source, value and relationship of multiple trade identifiers for the same trade allocation instance.\\n\\nThis component can be used to meet regulatory trade reporting requirements where identifiers such as the Unique Swaps Identifier (USI) are required to be reported, showing the chaining of these identifiers as needed.',\n        fieldRef: [\n            {\n                id: 1909,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoAllocRegulatoryTradeIDs(1908) > 0.',\n            },\n            {\n                id: 1910,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1911,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1912,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2406,\n                added: 'FIX.5.0SP2',\n                addedEP: '181',\n                updated: 'FIX.Latest',\n                updatedEP: '294',\n                description:\n                    'This field may be used for multi-leg trades sent as a single message to indicate that the entry applies only to a specific leg.',\n            },\n            {\n                id: 2399,\n                added: 'FIX.5.0SP2',\n                addedEP: '181',\n            },\n        ],\n        numInGroup: {\n            id: 1908,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 2222,\n        name: 'SideRegulatoryTradeIDGrp',\n        abbrName: 'RegTrdID',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '162',\n        category: 'Common',\n        description:\n            'The SideRegulatoryTradeIDGrp is a repeating component within the TrdCapRptSideGrp component used to report the source, value and relationship of multiple trade identifiers for the same trade side.\\n\\nThis component can be used to meet regulatory trade reporting requirements where identifiers such as the Unique Swaps Identifier (USI) are required to be reported, showing the chaining of these identifiers as needed.',\n        fieldRef: [\n            {\n                id: 1972,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoSideRegulatoryTradeIDs(1971) > 0.',\n            },\n            {\n                id: 1973,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1974,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1975,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2416,\n                added: 'FIX.5.0SP2',\n                addedEP: '181',\n                updated: 'FIX.Latest',\n                updatedEP: '294',\n                description:\n                    'This field may be used for multi-leg trades sent as a single message to indicate that the entry applies only to a specific leg.',\n            },\n            {\n                id: 2398,\n                added: 'FIX.5.0SP2',\n                addedEP: '181',\n            },\n        ],\n        numInGroup: {\n            id: 1971,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 2223,\n        name: 'PriceMovementGrp',\n        abbrName: 'PxMvmnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '160',\n        category: 'SecuritiesReferenceData',\n        description:\n            'The PriceMovementGrp component is a repeatable block intended to contain theoretical profit and loss data at various price movement points account type(s) for which the price movement may apply to.',\n        groupRef: [\n            {\n                id: 2224,\n                added: 'FIX.5.0SP2',\n                addedEP: '160',\n                description: 'Required if NoPriceMovements(1919) > 0.',\n            },\n            {\n                id: 2225,\n                added: 'FIX.5.0SP2',\n                addedEP: '160',\n            },\n        ],\n        numInGroup: {\n            id: 1919,\n            added: 'FIX.5.0SP2',\n            addedEP: '160',\n            description: '',\n        },\n    },\n    {\n        id: 2224,\n        name: 'PriceMovementValueGrp',\n        abbrName: 'PxMvmntValu',\n        added: 'FIX.5.0SP2',\n        addedEP: '160',\n        category: 'SecuritiesReferenceData',\n        description:\n            'This PriceMovementValueGrp component is a repeatable block that will be utilized to represent a value relative to a specific price movement point.',\n        fieldRef: [\n            {\n                id: 1921,\n                added: 'FIX.5.0SP2',\n                addedEP: '160',\n                description: 'Required if NoPriceMovementValues(1919) > 0.',\n            },\n            {\n                id: 1922,\n                added: 'FIX.5.0SP2',\n                addedEP: '160',\n            },\n            {\n                id: 1923,\n                added: 'FIX.5.0SP2',\n                addedEP: '160',\n            },\n        ],\n        numInGroup: {\n            id: 1920,\n            added: 'FIX.5.0SP2',\n            addedEP: '160',\n            description: '',\n        },\n    },\n    {\n        id: 2225,\n        name: 'ClearingAccountTypeGrp',\n        abbrName: 'ClrAcctTyp',\n        added: 'FIX.5.0SP2',\n        addedEP: '160',\n        category: 'SecuritiesReferenceData',\n        description:\n            'The ClearingAccountTypeGrp component is used specify the type of clearing account types.\\n\\nWhen used within the PriceMovementGrp, the ClearingAccountTypeGrp specifies the type of account the price movement data is applicable for.',\n        fieldRef: [\n            {\n                id: 1816,\n                added: 'FIX.5.0SP2',\n                addedEP: '160',\n                description: 'Required if NoClearingAccountTypes(1918) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 1918,\n            added: 'FIX.5.0SP2',\n            addedEP: '160',\n            description: '',\n        },\n    },\n    {\n        id: 2226,\n        name: 'SecondaryAssetGrp',\n        abbrName: 'ScndryAsset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'SecondaryAssetGrp is a repeating subcomponent of the Instrument component used to specify secondary assets of a multi-asset swap.',\n        fieldRef: [\n            {\n                id: 1977,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoSecondaryAssetClasses(1976) > 0.',\n            },\n            {\n                id: 1978,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if SecondaryAssetType(1979) is specified.',\n            },\n            {\n                id: 1979,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if SecondaryAssetSubType(2741) is specified.',\n            },\n            {\n                id: 2741,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n        ],\n        numInGroup: {\n            id: 1976,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 2227,\n        name: 'UnderlyingEvntGrp',\n        abbrName: 'Evnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        category: 'Common',\n        description:\n            'The UnderlyingEvntGrp is a repeating subcomponent of the UnderlyingInstrument component used to specify straightforward events associated with the instrument. Examples include put and call dates for bonds and options; first exercise date for options; inventory and delivery dates for commodities; start, end and roll dates for swaps. Use UnderlyingComplexEvents for more advanced dates such as option, futures, commodities and equity swap observation and pricing events.\\n\\nThe UnderlyingEvntGrp contains three different methods to express a \"time\" associated with the event using the UnderlyingEventDate(1983) and UnderlyingEventTime(1984) pair of fields or the UnderlyingEventTimeUnit(1985) and UnderlyingEventTimePeriod(1986) pair of fields or UnderlyingEventMonthYear(2342).\\n\\nThe UnderlyingEventDate(1983), and optional UnderlyingEventTime(1984), may be used to specify an exact date and optional time for the event. The UnderlyingEventTimeUnit(1985) and UnderlyingEventTimePeriod(1986) may be used to express a time period associated with the event, e.g. 3-month, 4-years, 2-weeks. The UnderlyingEventMonthYear(2342), and optional UnderlyingEventTime(1984), may be used to express the event as a month of year, with optional day of month or week of month.\\n\\nEither UnderlyingEventDate(1983) or UnderlyingEventMonthYear(2342), and the optional UnderlyingEventTime(1984), must be specified or UnderlyingEventTimeUnit(1985) and UnderlyingEventTimePeriod(1986) must be specified.\\n\\nThe UnderlyingEventMonthYear(2342) may be used instead of UnderlyingEventDate(1983) when month-year, with optional day of month or week of month, is required instead of a date.',\n        fieldRef: [\n            {\n                id: 1982,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingEvents(1982) > 0.',\n            },\n            {\n                id: 1983,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingEventTime(1984) is specified.',\n            },\n            {\n                id: 1984,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1985,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingEventTimePeriod(1986) is specified.',\n            },\n            {\n                id: 1986,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingEventTimeUnit(1985) is specified.',\n            },\n            {\n                id: 2342,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 1987,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2071,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2072,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Must be set if EncodedUnderlyingEventText(2073) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2073,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Encoded (non-ASCII characters) representation of the UnderlyingEventText(2071) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        numInGroup: {\n            id: 1981,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 2228,\n        name: 'UnderlyingComplexEvents',\n        abbrName: 'CmplxEvnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        category: 'Common',\n        description:\n            'The UnderlyingComplexEvent Group is a repeating block which allows specifying an unlimited number and types of advanced events, such as observation and pricing in over the lifetime of an option, futures, commodities or equity swap contract. Use UnderlyingEvntGrp to specify more straightforward events.',\n        fieldRef: [\n            {\n                id: 2046,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingComplexEvents(2045) > 0.',\n            },\n            {\n                id: 2261,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2262,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2263,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2047,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2264,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2265,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2266,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2947,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2048,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2267,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2049,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2050,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2051,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2052,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description:\n                    'Conditionally required when there are more than one UnderlyingComplexEvent occurrences. A chain of events must be linked together through use of the UnderlyingComplexEventCondition(2052) in which the relationship between any two events is described. For any two occurrences of events the first occurrence will specify the UnderlyingComplexEventCondition(2052) which links it with the second event.',\n            },\n            {\n                id: 2268,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2948,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2269,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2949,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2270,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2271,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2419,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 2420,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 2272,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2273,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2274,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2275,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2276,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2277,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2278,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2279,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2280,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2281,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2611,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2612,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2613,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2282,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2283,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2229,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4249,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4248,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4252,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4245,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4251,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 2045,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 2229,\n        name: 'UnderlyingComplexEventDates',\n        abbrName: 'EvntDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingComplexEventDates and subcomponent UnderlyingComplexEventTimes components are used to constrain a complex event to a specific date range, and optional time range. If specified the event is only effective on or within the specified dates and times.',\n        fieldRef: [\n            {\n                id: 2054,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingComplexEventDates(2054) > 0.',\n            },\n            {\n                id: 2055,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingComplexEventDates(2054) > 0.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2230,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 2053,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 2230,\n        name: 'UnderlyingComplexEventTimes',\n        abbrName: 'EvntTms',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingComplexEventTimes is a repeating subcomponent of the UnderlyingComplexEventDates component. It is used to further qualify any dates placed on the event and is used to specify time ranges for which a complex event is effective. It is always provided within the context of start and end dates. The time range is assumed to be in effect for the entirety of the date or date range specified.',\n        fieldRef: [\n            {\n                id: 2057,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingComplexEventTimes(2056) > 0.',\n            },\n            {\n                id: 2058,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingComplexEventTimes(2056) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 2056,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 2231,\n        name: 'LegEvntGrp',\n        abbrName: 'Evnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        category: 'Common',\n        description:\n            'The LegEvntGrp is a repeating subcomponent of the InstrumentLeg component used to specify straightforward events associated with the instrument. Examples include put and call dates for bonds and options; first exercise date for options; inventory and delivery dates for commodities; start, end and roll dates for swaps. Use LegComplexEvents for more advanced dates such as option, futures, commodities and equity swap observation and pricing events.\\n\\nThe LegEvntGrp contains three different methods to express a \"time\" associated with the event using the LegEventDate(2061) and LegEventTime(2062) pair of fields or the LegEventTimeUnit(2063) and LegEventTimePeriod(2064) pair of fields or LegEventMonthYear(2341).\\n\\nThe LegEventDate(2061), and optional LegEventTime(2062), may be used to express an exact date and optional time for the event. The LegEventTimeUnit(2063) and LegEventTimePeriod(2064) may be used to express a time period associated with the event, e.g. 3-month, 4-years, 2-weeks. The LegEventMonthYear(2341), and optional LegEventTime(2062), may be used to express the event as a month of year, with optional day of month or week of month.\\n\\nEither LegEventDate(2061) or LegEventMonthYear(2341), and the optional LegEventTime(2062), must be specified or LegEventTimeUnit(2063) and LegEventTimePeriod(2064) must be specified.\\n\\nThe LegEventMonthYear(2341) may be used instead of LegEventDate(2061) when month-year, with optional day of month or week of month, is required instead of a date.',\n        fieldRef: [\n            {\n                id: 2060,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegEvents(2059) > 0.',\n            },\n            {\n                id: 2061,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegEventTime(2062) is specified.',\n            },\n            {\n                id: 2062,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2063,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegEventTimePeriod(2064) is specified.',\n            },\n            {\n                id: 2064,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegEventTimeUnit(2063) is specified.',\n            },\n            {\n                id: 2341,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2065,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2066,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 2074,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Must be set if EncodedLegEventText(2075) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2075,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegEventText(2066) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        numInGroup: {\n            id: 2059,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 2232,\n        name: 'LegSecondaryAssetGrp',\n        abbrName: 'ScndryAsset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegSecondaryAssetGrp is a repeating subcomponent of the InstrumentLeg component used to specify secondary assets of a multi-asset swap.',\n        fieldRef: [\n            {\n                id: 2077,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegSecondaryAssetClasses(2076) > 0.',\n            },\n            {\n                id: 2078,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if LegSecondaryAssetType(2079) is specified.',\n            },\n            {\n                id: 2079,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if LegSecondaryAssetSubType(2743) is specified.',\n            },\n            {\n                id: 2743,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n        ],\n        numInGroup: {\n            id: 2076,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 2233,\n        name: 'UnderlyingSecondaryAssetGrp',\n        abbrName: 'ScndryAsset',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingSecondaryAssetGrp is a repeating subcomponent of the UnderlyingInstrument component used to specify secondary assets of a multi-asset swap.',\n        fieldRef: [\n            {\n                id: 2081,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingSecondaryAssetClasses(2080) > 0.',\n            },\n            {\n                id: 2082,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if UnderlyingSecondaryAssetType(2083) is specified.',\n            },\n            {\n                id: 2083,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '235',\n                description: 'Required if UnderlyingSecondaryAssetSubType(2745) is specified.',\n            },\n            {\n                id: 2745,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n        ],\n        numInGroup: {\n            id: 2080,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 2234,\n        name: 'AttachmentGrp',\n        abbrName: 'Attchmnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        category: 'Common',\n        description:\n            'The AttachmentGrp component provides the ability to attach other media type documents to a FIX message for transmission. The media type can be any of the media types (previously referred to as MIME types) that are listed by IANA (www.iana.org) [RFC2046].\\n\\nThe AttachmentGrp is intended to be used to attach documents in other formats, such as PDF, TIFF, and Microsoft Word, for example to a FIX message.\\n\\nNote when the AttachmentGrp is used within a business message, such as the TradeCaptureReport(35=AE), the attachment should supplement the data already contained in the business message It is not intended to replace the content of the business message. The standard fields within the business message should be populated, even if they duplicate data expressed within the attachment(s).',\n        fieldRef: [\n            {\n                id: 2105,\n                added: 'FIX.5.0SP2',\n                addedEP: '167',\n                description: 'Required if NoAttachments(2104) > 0.',\n            },\n            {\n                id: 2106,\n                added: 'FIX.5.0SP2',\n                addedEP: '167',\n                description: 'Required if EncodedAttachment(2112) is present.',\n            },\n            {\n                id: 2107,\n                added: 'FIX.5.0SP2',\n                addedEP: '167',\n            },\n            {\n                id: 2108,\n                added: 'FIX.5.0SP2',\n                addedEP: '167',\n                description:\n                    'Either AttachmentExternalURL(2108) or EncodedAttachment(2112) must be specified if NoAttachments(2104) > 0.',\n            },\n            {\n                id: 2109,\n                added: 'FIX.5.0SP2',\n                addedEP: '167',\n                description: 'Required if EncodedAttachment(2112) is present.',\n            },\n            {\n                id: 2110,\n                added: 'FIX.5.0SP2',\n                addedEP: '167',\n            },\n            {\n                id: 2111,\n                added: 'FIX.5.0SP2',\n                addedEP: '167',\n                description: 'Must be set if EncodedAttachment(2112) is specified and must immediately precede it.',\n            },\n            {\n                id: 2112,\n                added: 'FIX.5.0SP2',\n                addedEP: '167',\n                description:\n                    'Either AttachmentExternalURL(2108) or EncodedAttachment(2112) must be specified if NoAttachments(2104) > 0.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2235,\n                added: 'FIX.5.0SP2',\n                addedEP: '167',\n            },\n        ],\n        numInGroup: {\n            id: 2104,\n            added: 'FIX.5.0SP2',\n            addedEP: '167',\n            description: '',\n        },\n    },\n    {\n        id: 2235,\n        name: 'AttachmentKeywordGrp',\n        abbrName: 'Keywd',\n        added: 'FIX.5.0SP2',\n        addedEP: '167',\n        category: 'Common',\n        description:\n            'The AttachmentKeywordGrp component provides a place to associate keywords with an attachment document to support the current approach of tagging to support metadata.',\n        fieldRef: [\n            {\n                id: 2114,\n                added: 'FIX.5.0SP2',\n                addedEP: '167',\n                description: 'Required if NoAttachmentKeywords(2113) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 2113,\n            added: 'FIX.5.0SP2',\n            addedEP: '167',\n            description: '',\n        },\n    },\n    {\n        id: 2236,\n        name: 'LegComplexEvents',\n        abbrName: 'CmplxEvnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '208',\n        category: 'Common',\n        description:\n            'The LegComplexEvent Group is a repeating block which allows specifying an unlimited number and types of advanced events, such as observation and pricing over the lifetime of an option, futures, commodities or equity swap contract. Use LegEvntGrp to specify more straightforward events.',\n        fieldRef: [\n            {\n                id: 2219,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEvents(2218)) > 0.',\n            },\n            {\n                id: 2220,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2221,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2222,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2223,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2224,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2225,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2226,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2944,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2227,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2228,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2229,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2230,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2231,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2232,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when there are more than one LegComplexEvents occurrences. A chain of LegComplexEvents must be linked together through use of the LegComplexEventCondition(2232) in which the relationship between any two events is described. For any two LegComplexEvents the first occurrence will specify the LegComplexEventCondition(2232) which links it with the second event.',\n            },\n            {\n                id: 2233,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2945,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2234,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2946,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2235,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2236,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2409,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 2410,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 2237,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2238,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2239,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2240,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2241,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2242,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2243,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2244,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2245,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2246,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2608,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2609,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2610,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 2248,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2249,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2237,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4196,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4195,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4199,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4192,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4198,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 2218,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 2237,\n        name: 'LegComplexEventDates',\n        abbrName: 'EvntDts',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegComplexEventDates and subcomponent LegComplexEventTimes components are used to constrain a complex event to a specific date range, and optional time range. If specified the event is only effective on or within the specified dates and times.',\n        fieldRef: [\n            {\n                id: 2251,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventDates(2250) > 0.',\n            },\n            {\n                id: 2252,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventDates(2250) > 0.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2238,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 2250,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 2238,\n        name: 'LegComplexEventTimes',\n        abbrName: 'EvntTms',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegComplexEventTimes is a repeating subcomponent of the LegComplexEventDates component. It is used to further qualify any dates placed on the event and is used to specify time ranges for which a complex event is effective. It is always provided within the context of start and end dates. The time range is assumed to be in effect for the entirety of the date or date range specified.',\n        fieldRef: [\n            {\n                id: 2204,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventTimes(2253) > 0.',\n            },\n            {\n                id: 2247,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventTimes(2253) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 2253,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 2239,\n        name: 'LegInstrumentParties',\n        abbrName: 'Pty',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The use of this component block is restricted to instrument definition only and is not permitted to contain transactional information. Only a specified subset of party roles will be supported within the LegInstrumentParty block.',\n        fieldRef: [\n            {\n                id: 2255,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Used to identify the source of PartyID. Required if LegInstrumentPartyIDSource(2256) is specified. Required if NoLegInstrumentParties(2254) > 0.',\n            },\n            {\n                id: 2256,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Used to identify class source of LegInstrumentPartyID(2255) value (e.g. BIC). Required if LegInstrumentPartyID(2255) is specified. Required if NoLegInstrumentParties(2254) > 0.',\n            },\n            {\n                id: 2257,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Identifies the type of LegInstrumentPartyID(2255) (e.g. Executing Broker). Required if NoLegInstrumentParties(2254) > 0.',\n            },\n            {\n                id: 2379,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2240,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Repeating group of party sub-identifiers.',\n            },\n        ],\n        numInGroup: {\n            id: 2254,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description:\n                'Repeating group below should contain unique combinations of LegInstrumentPartyID(2255), LegInstrumentPartyIDSource(2256) and LegInstrumentPartyRole(2257).',\n        },\n    },\n    {\n        id: 2240,\n        name: 'LegInstrumentPtysSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        fieldRef: [\n            {\n                id: 2259,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegInstrumentPartySubIDs(2258) > 0.',\n            },\n            {\n                id: 2260,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 2258,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 2241,\n        name: 'AssetAttributeGrp',\n        abbrName: 'AssetAttrb',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The AssetAttributeGrp is a repeating subcomponent of the Instrument component used to detail attributes of the instrument asset.',\n        fieldRef: [\n            {\n                id: 2305,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoAssetAttributes(2304) > 0.',\n            },\n            {\n                id: 2306,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2307,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 2304,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 2242,\n        name: 'LegAssetAttributeGrp',\n        abbrName: 'AssetAttrb',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegAssetAttributeGrp is a repeating subcomponent of the InstrumentLeg component used to detail attributes of the instrument asset.',\n        fieldRef: [\n            {\n                id: 2309,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegAssetAttributes(2308) > 0.',\n            },\n            {\n                id: 2310,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2311,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 2308,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 2243,\n        name: 'UnderlyingAssetAttributeGrp',\n        abbrName: 'AssetAttrb',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingAssetAttributeGrp is a repeating subcomponent of the UnderlyingInstrument component used to detail attributes of the instrument asset.',\n        fieldRef: [\n            {\n                id: 2313,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingAssetAttributes(2312) > 0.',\n            },\n            {\n                id: 2314,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 2315,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 2312,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 2244,\n        name: 'EntitlementTypeGrp',\n        abbrName: 'EntlmntTyp',\n        added: 'FIX.5.0SP2',\n        addedEP: '173',\n        category: 'PartiesReferenceData',\n        description:\n            'The EntitlementTypeGrp conveys a list of entitlement types.\\n\\nWhen used in the PartyEntitlementRequest(35=CU) message it serves to provide filtering criteria for the results set.',\n        fieldRef: [\n            {\n                id: 1775,\n                added: 'FIX.5.0SP2',\n                addedEP: '173',\n                description: 'Required if NoEntitlementTypes(2345) > 0.',\n            },\n            {\n                id: 2402,\n                added: 'FIX.5.0SP2',\n                addedEP: '183',\n            },\n        ],\n        numInGroup: {\n            id: 2345,\n            added: 'FIX.5.0SP2',\n            addedEP: '173',\n            description: 'Number of Entitlement Types.',\n        },\n    },\n    {\n        id: 2245,\n        name: 'OrderEntryGrp',\n        abbrName: 'OrderEntry',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        category: 'OrderMassHandling',\n        description: 'Group of order transactions across one or more instruments.',\n        fieldRef: [\n            {\n                id: 2429,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Required if NoOrderEntries(2428) > 0.',\n            },\n            {\n                id: 2430,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description:\n                    'Unique order entry identification across all entries of a single message. Conditionally required when neither ClOrdID(11) nor OrderID(37) is provided.',\n            },\n            {\n                id: 11,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Conditionally required when neither OrderEntryID(2430) nor OrderID(37) is provided.',\n            },\n            {\n                id: 41,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description:\n                    'Conditionally required when OrderEntryAction(2429) is not \"1\" (Add), ClOrdID(11) was provided in original order, and message-chaining model is used.',\n            },\n            {\n                id: 37,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description:\n                    'Conditionally required when OrderEntryAction(2429) is not \"1\" (Add) and neither OrderEntryID(2430) nor ClOrdID(11) is provided.',\n            },\n            {\n                id: 40,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description:\n                    'Conditionally required when OrderEntryAction (2429) = 1 (Add) or 2 (Modify). Only a subset of OrdType(40) values permitted that do not require additional pricing fields other than Price(44) field.',\n            },\n            {\n                id: 44,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Conditionally required when OrdType(40) = 2 (Limit)',\n            },\n            {\n                id: 54,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Conditionally required when OrderEntryAction(2429) = 1 (Add) or 2 (Modify)',\n            },\n            {\n                id: 59,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Only subset of values permitted that do not require additional fields',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1011,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Conditionally required when OrderEntryAction(2429) = 1 (Add) or 2 (Modify)',\n            },\n            {\n                id: 1003,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Required if NoOrderEntries(2432) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 2428,\n            added: 'FIX.5.0SP2',\n            addedEP: '188',\n            description: '',\n        },\n    },\n    {\n        id: 2246,\n        name: 'OrderEntryAckGrp',\n        abbrName: 'OrderEntryAck',\n        added: 'FIX.5.0SP2',\n        addedEP: '188',\n        category: 'OrderMassHandling',\n        description:\n            'Acknowledgment for a group of order transactions across one or more instruments.\\n\\nThe acknowledgement may or may not echo back input values from the submission but it has to provide the current status of each order including the impact of immediate executions or suspensions.',\n        fieldRef: [\n            {\n                id: 39,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Required if NoOrderEntries(2428) > 0.',\n            },\n            {\n                id: 150,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Required if NoOrderEntries(2428) > 0.',\n            },\n            {\n                id: 2431,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n            },\n            {\n                id: 2429,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n            },\n            {\n                id: 2430,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Conditionally required when neither ClOrdID(11) nor OrderID(37) is provided.',\n            },\n            {\n                id: 11,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Conditionally required when neither OrderEntryID(2430) nor OrderID(37) is provided.',\n            },\n            {\n                id: 41,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description:\n                    'ClOrdID(11) of the previous non rejected order (NOT the initial order of the day) when canceling or replacing an order. Conditionally required when ClOrdID(11) is provided and message-chaining model is used.',\n            },\n            {\n                id: 37,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Conditionally required when neither OrderEntryID(2430) nor ClOrdID(11) is provided.',\n            },\n            {\n                id: 103,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n            },\n            {\n                id: 14,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Use to explicitly provide executed quantity.',\n            },\n            {\n                id: 151,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Use to explicitly provide remaining quantity.',\n            },\n            {\n                id: 84,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n                description: 'Use to explicitly provide cancelled quantity.',\n            },\n            {\n                id: 40,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n            },\n            {\n                id: 44,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n            },\n            {\n                id: 54,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n            },\n            {\n                id: 59,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1011,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n            },\n            {\n                id: 1003,\n                added: 'FIX.5.0SP2',\n                addedEP: '188',\n            },\n        ],\n        numInGroup: {\n            id: 2428,\n            added: 'FIX.5.0SP2',\n            addedEP: '188',\n            description: '',\n        },\n    },\n    {\n        id: 2247,\n        name: 'TargetPtysSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.5.0SP2',\n        addedEP: '189',\n        category: 'Common',\n        description: 'Repeating group of target party sub-identifiers.',\n        fieldRef: [\n            {\n                id: 2434,\n                added: 'FIX.5.0SP2',\n                addedEP: '189',\n                description: 'Required when NoTargetPartySubIDs(2433) > 0.',\n            },\n            {\n                id: 2435,\n                added: 'FIX.5.0SP2',\n                addedEP: '189',\n                description: 'Required when NoTargetPartySubIDs(2433) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 2433,\n            added: 'FIX.5.0SP2',\n            addedEP: '189',\n            description: '',\n        },\n    },\n    {\n        id: 2248,\n        name: 'MDStatisticReqGrp',\n        abbrName: 'StatsReq',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        category: 'MarketData',\n        description:\n            'This component block is used within the MarketDataStatisticsRequest(35=DO) message to define a set of parameters describing the desired statistics.',\n        fieldRef: [\n            {\n                id: 2475,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description:\n                    'Required if NoMDStatistics(2474) > 0.\\n\\n\\n                        Unique statistics identifier used as a placeholder for a set of parameters. If an ID is not applicable use \"[N/A]\".',\n            },\n        ],\n        componentRef: [\n            {\n                id: 2250,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description: 'Required if NoMDStatistics(2474) > 0 and MDStatisticID(2475) = \"[N/A]\".',\n            },\n        ],\n        numInGroup: {\n            id: 2474,\n            added: 'FIX.5.0SP2',\n            addedEP: '191',\n            description: '',\n        },\n    },\n    {\n        id: 2249,\n        name: 'MDStatisticRptGrp',\n        abbrName: 'StatsRpt',\n        added: 'FIX.5.0SP2',\n        addedEP: '191',\n        category: 'MarketData',\n        description:\n            'This component block is used within the MarketDataStatisticsReport(35=DP) message to provide results together with the related set of parameters.',\n        fieldRef: [\n            {\n                id: 2475,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description: 'Required if NoMDStatistics(2474) > 0.',\n            },\n            {\n                id: 2476,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description: 'Conditionally required when MDStatisticValue(2478) is specified.',\n            },\n            {\n                id: 2477,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description:\n                    'May be used when sending reference data only to establish MDStatisticID(2475) as a reference to a set of parameters specified in MDStatisticParameters component.\\n\\n\\n                        If not specified the default is MDStatisticStatus(2477)=1 (Active).',\n            },\n            {\n                id: 2478,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description:\n                    'Conditionally required unless sending reference data only to establish MDStatisticID(2475) as a reference to a set of parameters specified in MDStatisticParameters component.',\n            },\n            {\n                id: 2479,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n            {\n                id: 2480,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n            },\n        ],\n        componentRef: [\n            {\n                id: 2250,\n                added: 'FIX.5.0SP2',\n                addedEP: '191',\n                description: 'Required if NoMDStatistics(2474) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 2474,\n            added: 'FIX.5.0SP2',\n            addedEP: '191',\n            description: '',\n        },\n    },\n    {\n        id: 2252,\n        name: 'RelativeValueGrp',\n        abbrName: 'ReltvVal',\n        added: 'FIX.5.0SP2',\n        addedEP: '194',\n        category: 'Common',\n        description:\n            'The RelativeValueGrp component is used to convey relative valuation metrics or analytics for a given instrument.\\n\\nRelative valuation metrics or analytics are commonly provided by the trading party providing pricing as part of fixed income cash bonds or OTC derivatives indication or quoting activities.',\n        fieldRef: [\n            {\n                id: 2530,\n                added: 'FIX.5.0SP2',\n                addedEP: '194',\n                description: 'Required if NoRelativeValues(2529) > 0.',\n            },\n            {\n                id: 2531,\n                added: 'FIX.5.0SP2',\n                addedEP: '194',\n                description: 'Required if NoRelativeValues(2529) > 0.',\n            },\n            {\n                id: 2532,\n                added: 'FIX.5.0SP2',\n                addedEP: '194',\n            },\n            {\n                id: 3004,\n                added: 'FIX.Latest',\n                addedEP: '288',\n            },\n        ],\n        numInGroup: {\n            id: 2529,\n            added: 'FIX.5.0SP2',\n            addedEP: '194',\n            description: '',\n        },\n    },\n    {\n        id: 2253,\n        name: 'AuctionTypeRuleGrp',\n        abbrName: 'AuctTypRule',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        category: 'Common',\n        description:\n            'The AuctionTypeRuleGrp component is used to specify the auction rule applicable for a given product group or complex, for example.',\n        fieldRef: [\n            {\n                id: 1803,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '223',\n                description:\n                    'Required if NoAuctionTypeRules(2548) > 0.\\n\\n\\n                        AuctionType(1803) = 0 (None) can be used to invalidate all auction types on the instrument level that are defined on a market segment level.',\n            },\n            {\n                id: 2549,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description:\n                    'Can be used to limit auction order type to specific product suite. Use multiple entries with the same AuctionType(1803) if multiple but not all product suites are supported.',\n            },\n        ],\n        numInGroup: {\n            id: 2548,\n            added: 'FIX.5.0SP2',\n            addedEP: '195',\n            description: '',\n        },\n    },\n    {\n        id: 2254,\n        name: 'FlexProductEligibilityGrp',\n        abbrName: 'FlexProdElig',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        category: 'Common',\n        description:\n            'The FlexProductEligibilityGrp component is used to specify whether securities within a product group or complex are eligible for creating flexible securities.',\n        fieldRef: [\n            {\n                id: 1242,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Required if NoFlexProductEligibilities(2560) > 0.',\n            },\n            {\n                id: 2561,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description:\n                    'Required if NoFlexProductEligibilities(2560) > 0.\\n\\n\\n                        Used to specify a product suite related to an eligibility indicator.',\n            },\n        ],\n        numInGroup: {\n            id: 2560,\n            added: 'FIX.5.0SP2',\n            addedEP: '195',\n            description: '',\n        },\n    },\n    {\n        id: 2255,\n        name: 'PriceRangeRuleGrp',\n        abbrName: 'PxRngRule',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        category: 'Common',\n        description:\n            'The PriceRangeRulesGrp component is used to specify the price range rules for a given product group or complex.',\n        fieldRef: [\n            {\n                id: 2551,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Required if NoPriceRangeRules(2550) > 0.',\n            },\n            {\n                id: 2552,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2553,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Mutually exclusive with PriceRangePercentage(2554).',\n            },\n            {\n                id: 2554,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Mutually exclusive with PriceRangeValue(2553).',\n            },\n            {\n                id: 2556,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description:\n                    'Can be used to provide an identifier so that the rule can be reference via the ID elsewhere.',\n            },\n            {\n                id: 2555,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Can be used to limit price range to specific product suite.',\n            },\n        ],\n        numInGroup: {\n            id: 2550,\n            added: 'FIX.5.0SP2',\n            addedEP: '195',\n            description: '',\n        },\n    },\n    {\n        id: 2256,\n        name: 'QuoteSizeRuleGrp',\n        abbrName: 'QteSzRule',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        category: 'Common',\n        description: 'Rules for minimum bid and offer sizes of quotes.',\n        fieldRef: [\n            {\n                id: 647,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Required if NoQuoteSizeRules(2558) > 0.',\n            },\n            {\n                id: 648,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Required if NoQuoteSizeRules(2558) > 0.',\n            },\n            {\n                id: 2447,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Used to define the sizes applicable for fast market conditions.',\n            },\n        ],\n        numInGroup: {\n            id: 2558,\n            added: 'FIX.5.0SP2',\n            addedEP: '195',\n            description: 'Number of quote size rules.',\n        },\n    },\n    {\n        id: 2257,\n        name: 'RelatedMarketSegmentGrp',\n        abbrName: 'ReltdMktSeg',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        category: 'Common',\n        description:\n            'This component is used to identify market segments that are related to each other for a business purpose. This component should not be used in lieu of available explicit FIX fields that denote specific relationships (e.g. ParentMktSegmID(1325) for parent market segments), but rather should be used when no such fields exist.',\n        fieldRef: [\n            {\n                id: 2546,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Required if NoRelatedMarketSegments (2545) > 0.',\n            },\n            {\n                id: 2547,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n        ],\n        numInGroup: {\n            id: 2545,\n            added: 'FIX.5.0SP2',\n            addedEP: '195',\n            description: 'Number of market segments.',\n        },\n    },\n    {\n        id: 2258,\n        name: 'ClearingPriceParametersGrp',\n        abbrName: 'ClrPxPrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '195',\n        category: 'Common',\n        description:\n            'This component is used convey parameters that are relevant for the calculation of clearing prices that are different from the trading prices due to the nature of the product, e.g. variance futures.',\n        fieldRef: [\n            {\n                id: 2581,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description:\n                    'Required if NoClearingPriceParameters (2580) > 0. Use to identify the relative business day to which the parameters apply.',\n            },\n            {\n                id: 2582,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2583,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2584,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2585,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2586,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2588,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2587,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2589,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 1190,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Interest rate until the instrument expires and used to calculate DiscountFactor(1592).',\n            },\n            {\n                id: 2590,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n                description: 'Used to calculate AccumulatedReturnModifiedVariationMargin(2591).',\n            },\n            {\n                id: 2591,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 1592,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 1188,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2528,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n            {\n                id: 2592,\n                added: 'FIX.5.0SP2',\n                addedEP: '195',\n            },\n        ],\n        numInGroup: {\n            id: 2580,\n            added: 'FIX.5.0SP2',\n            addedEP: '195',\n            description: 'Number of parameter sets.',\n        },\n    },\n    {\n        id: 2259,\n        name: 'MiscFeesSubGrp',\n        abbrName: 'MiscFeesSub',\n        added: 'FIX.5.0SP2',\n        addedEP: '196',\n        category: 'Common',\n        description:\n            'The MiscFeesSubGrp component is used to provide further details for a given MiscFeeType(139) value.',\n        fieldRef: [\n            {\n                id: 2634,\n                added: 'FIX.5.0SP2',\n                addedEP: '196',\n                description: 'Required if NoMiscFeeSubTypes(2633) > 0.',\n            },\n            {\n                id: 2635,\n                added: 'FIX.5.0SP2',\n                addedEP: '196',\n            },\n            {\n                id: 2636,\n                added: 'FIX.5.0SP2',\n                addedEP: '196',\n            },\n            {\n                id: 2637,\n                added: 'FIX.5.0SP2',\n                addedEP: '196',\n                description:\n                    'Must be set if EncodedMiscFeeSubTypeDesc(2638) field is specified and must immediately precede it.',\n            },\n            {\n                id: 2638,\n                added: 'FIX.5.0SP2',\n                addedEP: '196',\n                description:\n                    'Encoded (non-ASCII characters) representation of the MiscFeeSubTypeDesc(2636) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        numInGroup: {\n            id: 2633,\n            added: 'FIX.5.0SP2',\n            addedEP: '196',\n            description: '',\n        },\n    },\n    {\n        id: 2260,\n        name: 'SideCollateralAmountGrp',\n        abbrName: 'CollAmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '227',\n        category: 'Common',\n        description:\n            'The SideCollateralAmountGrp component block is a repeating group that provides the current value of the collateral type on deposit for a side of the trade report. The currency of the collateral value may be optionally included.',\n        fieldRef: [\n            {\n                id: 2702,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n                description: 'Required if NoSideCollateralAmounts(2691) > 0.',\n            },\n            {\n                id: 2695,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n                description:\n                    'Can be used to specify the currency of SideCollateralAmount(2702) if Currency(15) is not specified or is not the same.',\n            },\n            {\n                id: 2930,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n            {\n                id: 2694,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n            },\n            {\n                id: 2696,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n            },\n            {\n                id: 2697,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n            },\n            {\n                id: 2701,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n            },\n            {\n                id: 2693,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n            },\n            {\n                id: 2692,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n            },\n            {\n                id: 2703,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n            },\n            {\n                id: 2700,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n            },\n            {\n                id: 2699,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n            },\n            {\n                id: 2698,\n                added: 'FIX.5.0SP2',\n                addedEP: '227',\n            },\n            {\n                id: 2862,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description:\n                    'When multiple instances of the SideCollateralReinvestmentGrp component are present this field specifies the average reinvestment rate.',\n            },\n            {\n                id: 2863,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description:\n                    'May be used to indicate that this entry applies to the underlying collateral instrument being referenced by the value in UnderlyingID(2874).',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2269,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n        ],\n        numInGroup: {\n            id: 2691,\n            added: 'FIX.5.0SP2',\n            addedEP: '227',\n            description: '',\n        },\n    },\n    {\n        id: 2261,\n        name: 'QuoteAttributeGrp',\n        abbrName: 'QteAttrib',\n        added: 'FIX.5.0SP2',\n        addedEP: '229',\n        category: 'Common',\n        description:\n            'The QuoteAttributeGrp component provides additional attributes about the quote. Attributes included in this component are primarily \"indicators\" that may be associated with regulatory requirements and are typically not part of normal trading activities.',\n        fieldRef: [\n            {\n                id: 2707,\n                added: 'FIX.5.0SP2',\n                addedEP: '229',\n                description: 'Required if NoQuoteAttributes(2706) > 0.',\n            },\n            {\n                id: 2708,\n                added: 'FIX.5.0SP2',\n                addedEP: '229',\n                description: 'Required if NoQuoteAttributes(2706) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 2706,\n            added: 'FIX.5.0SP2',\n            addedEP: '229',\n            description: '',\n        },\n    },\n    {\n        id: 2262,\n        name: 'IndexRollMonthGrp',\n        abbrName: 'NdxRollMo',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        category: 'Common',\n        description:\n            'Used for specifying multiple roll months in a given year for an index.\\n\\nFor MiFID II RTS 2 Annex IV Table 2 reference data - all months when the roll is expected as established by the CDS index provider for a given year - repeated for each month in the roll.',\n        fieldRef: [\n            {\n                id: 2733,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n                description: 'Required if NoIndexRollMonths(2734) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 2734,\n            added: 'FIX.5.0SP2',\n            addedEP: '235',\n            description: '',\n        },\n    },\n    {\n        id: 2263,\n        name: 'ReferenceDataDateGrp',\n        abbrName: 'RefDataDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '235',\n        category: 'Common',\n        description:\n            'Used to carry the different date-time stamps related to the reference data entry.\\n\\nIn the context of MiFID II, ESMA RTS 23 Annex I Table 3 reference data this component is used to convey the UTC date-times tracking the admission and expiration of a security for trading.',\n        fieldRef: [\n            {\n                id: 2747,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n                description: 'Required if NoReferenceDataDates(2746) > 0.',\n            },\n            {\n                id: 2748,\n                added: 'FIX.5.0SP2',\n                addedEP: '235',\n            },\n        ],\n        numInGroup: {\n            id: 2746,\n            added: 'FIX.5.0SP2',\n            addedEP: '235',\n            description: '',\n        },\n    },\n    {\n        id: 2266,\n        name: 'CollateralReinvestmentGrp',\n        abbrName: 'CollRnvstmnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '257',\n        category: 'Common',\n        description:\n            'The CollateralReinvestmentGrp component block is a repeating group that may be used to provide a breakdown of the cash collateral\\'s reinvestment types and amounts (e.g. CollateralType(1704)=\"CASH\").',\n        fieldRef: [\n            {\n                id: 2844,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description: 'Required if NoCollateralReinvestments(2845) > 0.',\n            },\n            {\n                id: 2842,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n            {\n                id: 2843,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n            {\n                id: 2931,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n        ],\n        numInGroup: {\n            id: 2845,\n            added: 'FIX.5.0SP2',\n            addedEP: '254',\n            description: '',\n        },\n    },\n    {\n        id: 2267,\n        name: 'FundingSourceGrp',\n        abbrName: 'FndngSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        category: 'Common',\n        description:\n            'This component is used to specify the funding source(s) used to finance a margin loan or collateralized loan.',\n        fieldRef: [\n            {\n                id: 2846,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description: 'Required if NoFundingSources(2849) > 0.',\n            },\n            {\n                id: 2848,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n            {\n                id: 2847,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n            {\n                id: 2954,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n        ],\n        numInGroup: {\n            id: 2849,\n            added: 'FIX.5.0SP2',\n            addedEP: '254',\n            description: '',\n        },\n    },\n    {\n        id: 2268,\n        name: 'TransactionAttributeGrp',\n        abbrName: 'TxnAttrb',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        category: 'Common',\n        description:\n            'The TransactionAttributeGrp component block is a repeating group that may be used to provide additional transaction attributes for the trade and other post-trade events.',\n        fieldRef: [\n            {\n                id: 2872,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description: 'Required if NoTransactionAttributes(2871) > 0.',\n            },\n            {\n                id: 2873,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n        ],\n        numInGroup: {\n            id: 2871,\n            added: 'FIX.5.0SP2',\n            addedEP: '254',\n            description: '',\n        },\n    },\n    {\n        id: 2269,\n        name: 'SideCollateralReinvestmentGrp',\n        abbrName: 'CollRnvstmnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '254',\n        category: 'Common',\n        description:\n            'The SideCollateralReinvestmentGrp component block is a repeating group that may be used to provide a breakdown of the cash collateral\\'s reinvestment types and amounts (e.g. SideCollateralType(2701)=\"CASH\").',\n        fieldRef: [\n            {\n                id: 2867,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description: 'Required if NoSideCollateralReinvestments(2864) > 0.',\n            },\n            {\n                id: 2865,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n            {\n                id: 2866,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n            },\n            {\n                id: 2932,\n                added: 'FIX.Latest',\n                addedEP: '273',\n            },\n        ],\n        numInGroup: {\n            id: 2864,\n            added: 'FIX.5.0SP2',\n            addedEP: '254',\n            description: '',\n        },\n    },\n    {\n        id: 2270,\n        name: 'RelatedOrderGrp',\n        abbrName: 'ReltdOrd',\n        added: 'FIX.5.0SP2',\n        addedEP: '259',\n        category: 'Common',\n        description:\n            'This component is used to identify orders that are related to the order identified outside of this component for a business purpose. For example, the bundling of multiple orders into a single order. This component should not be used in lieu of explicit FIX fields that denote specific semantic relationships, but rather should be used when no such fields exist.',\n        fieldRef: [\n            {\n                id: 2887,\n                added: 'FIX.5.0SP2',\n                addedEP: '259',\n                description: 'Required if NoOrders(73) > 0.',\n            },\n            {\n                id: 2888,\n                added: 'FIX.5.0SP2',\n                addedEP: '259',\n                description:\n                    'The same value must be used for all orders having the same OrderRelationship(2890) value.',\n            },\n            {\n                id: 2836,\n                added: 'FIX.5.0SP2',\n                addedEP: '259',\n            },\n            {\n                id: 2889,\n                added: 'FIX.5.0SP2',\n                addedEP: '259',\n            },\n            {\n                id: 2890,\n                added: 'FIX.5.0SP2',\n                addedEP: '259',\n                description:\n                    'May be used to explicitly express the type of relationship or to provide orders having different relationships.',\n            },\n            {\n                id: 2835,\n                added: 'FIX.5.0SP2',\n                addedEP: '259',\n                description:\n                    'May be used when aggregating orders that were originally submitted by different firms, e.g. due to a merger or acquisition.',\n            },\n        ],\n        numInGroup: {\n            id: 73,\n            added: 'FIX.5.0SP2',\n            addedEP: '259',\n            description: '',\n        },\n    },\n    {\n        id: 2272,\n        name: 'AllocGroupSubQtyGrp',\n        abbrName: 'AllocSubQty',\n        added: 'FIX.Latest',\n        addedEP: '285',\n        category: 'Allocation',\n        description:\n            'This repeating group is used to identify subgroups of an average pricing group. The total and remaining quantities of the average pricing group are split into sub-quantities based on trade attributes.',\n        fieldRef: [\n            {\n                id: 2976,\n                added: 'FIX.Latest',\n                addedEP: '285',\n                description: 'Required if NoAllocGroupSubQtys(2975) > 0.',\n            },\n            {\n                id: 2977,\n                added: 'FIX.Latest',\n                addedEP: '285',\n            },\n            {\n                id: 2978,\n                added: 'FIX.Latest',\n                addedEP: '285',\n            },\n            {\n                id: 2974,\n                added: 'FIX.Latest',\n                addedEP: '285',\n                description: 'Conditionally required if AllocGroupSubQtyAttributeGrp is not present.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2273,\n                added: 'FIX.Latest',\n                addedEP: '285',\n                description: 'Conditionally required if AllocGroupSubQtyID(2974) is not present.',\n            },\n        ],\n        numInGroup: {\n            id: 2975,\n            added: 'FIX.Latest',\n            addedEP: '285',\n            description: '',\n        },\n    },\n    {\n        id: 2273,\n        name: 'AllocGroupSubQtyAttributeGrp',\n        abbrName: 'AllocSubQtyAttr',\n        added: 'FIX.Latest',\n        addedEP: '285',\n        category: 'Allocation',\n        description:\n            'This repeating group is used to identify attributes of trades in subgroups of an average pricing group.',\n        fieldRef: [\n            {\n                id: 2980,\n                added: 'FIX.Latest',\n                addedEP: '285',\n                description: 'Required if NoAllocGroupSubQtyAttributes (2979) > 0.',\n            },\n            {\n                id: 2981,\n                added: 'FIX.Latest',\n                addedEP: '285',\n                description: 'Required if NoAllocGroupSubQtyAttributes (2979) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 2979,\n            added: 'FIX.Latest',\n            addedEP: '285',\n            description: '',\n        },\n    },\n    {\n        id: 2274,\n        name: 'SecurityRiskMetricGrp',\n        abbrName: 'SecRiskMtrcs',\n        added: 'FIX.Latest',\n        addedEP: '288',\n        category: 'SecuritiesReferenceData',\n        description:\n            'List of option securities on an underlying with related calculations (e.g. theoretical valuations, implied volatilities, and other hedge statistics).',\n        fieldRef: [\n            {\n                id: 811,\n                added: 'FIX.Latest',\n                addedEP: '288',\n            },\n            {\n                id: 2996,\n                added: 'FIX.Latest',\n                addedEP: '288',\n            },\n            {\n                id: 2997,\n                added: 'FIX.Latest',\n                addedEP: '288',\n            },\n            {\n                id: 2998,\n                added: 'FIX.Latest',\n                addedEP: '288',\n            },\n            {\n                id: 2999,\n                added: 'FIX.Latest',\n                addedEP: '288',\n            },\n            {\n                id: 44,\n                added: 'FIX.Latest',\n                addedEP: '288',\n                description: 'May be used for the theoretical (e.g. option) price of the security.',\n            },\n            {\n                id: 132,\n                added: 'FIX.Latest',\n                addedEP: '288',\n                description:\n                    \"May be used to specify the security's top of book bid price, if available, used in the metric calculation.\",\n            },\n            {\n                id: 133,\n                added: 'FIX.Latest',\n                addedEP: '288',\n                description:\n                    \"May be used to specify the security's top of book offer price, if available, used in the metric calculation.\",\n            },\n            {\n                id: 3000,\n                added: 'FIX.Latest',\n                addedEP: '288',\n            },\n            {\n                id: 1188,\n                added: 'FIX.Latest',\n                addedEP: '288',\n            },\n            {\n                id: 3001,\n                added: 'FIX.Latest',\n                addedEP: '288',\n            },\n            {\n                id: 3002,\n                added: 'FIX.Latest',\n                addedEP: '288',\n            },\n            {\n                id: 3003,\n                added: 'FIX.Latest',\n                addedEP: '288',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2252,\n                added: 'FIX.Latest',\n                addedEP: '288',\n                description: 'May be used for other types of valuation metrics or analytics.',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.Latest',\n                addedEP: '288',\n                description: 'Required when NoSecurityRiskMetrics(2995) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 2995,\n            added: 'FIX.Latest',\n            addedEP: '288',\n            description: '',\n        },\n    },\n    {\n        id: 2275,\n        name: 'AllocTrdRegTimestamps',\n        abbrName: 'TrdRegTS',\n        added: 'FIX.Latest',\n        addedEP: '291',\n        category: 'Allocation',\n        description:\n            'The AllocTrdRegTimestamps component block is used to convey trading or regulatory timestamps associated with an allocation for one account.',\n        fieldRef: [\n            {\n                id: 3009,\n                added: 'FIX.Latest',\n                addedEP: '291',\n                description: 'Required if NoAllocTrdRegTimestamps(3008) > 0.',\n            },\n            {\n                id: 3010,\n                added: 'FIX.Latest',\n                addedEP: '291',\n                description: 'Required if NoAllocTrdRegTimestamps(3008) > 0.',\n            },\n            {\n                id: 3011,\n                added: 'FIX.Latest',\n                addedEP: '291',\n            },\n        ],\n        numInGroup: {\n            id: 3008,\n            added: 'FIX.Latest',\n            addedEP: '291',\n        },\n    },\n    {\n        id: 2276,\n        name: 'AlgoSystemModuleGrp',\n        abbrName: 'AlgoSysModl',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        category: 'Testing',\n        description:\n            'AlgoSystemModuleGrp is a repeating group used to provide information regarding the modules of a system for algorithmic trading.\\n\\nThe trading system used for algorithmic trading is typically made up of multiple modules. This repeating group supports the capture of the exact version (or build/commit number) of each of these system modules as part of the certificate information.',\n        fieldRef: [\n            {\n                id: 3026,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Required if NoAlgoSystemModules(3025)>0.',\n            },\n            {\n                id: 3027,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Required if NoAlgoSystemModules(3025)>0.',\n            },\n            {\n                id: 3080,\n                added: 'FIX.Latest',\n                addedEP: '295',\n            },\n        ],\n        numInGroup: {\n            id: 3025,\n            added: 'FIX.Latest',\n            addedEP: '292',\n        },\n    },\n    {\n        id: 2277,\n        name: 'TestScenarioGrp',\n        abbrName: 'TstScnro',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        category: 'Testing',\n        description:\n            'TestScenarioGrp provides details for a collection of test cases/scenarios that makes up a test suite.\\n\\nAn instance of the repeating group represents a single test case/scenario. Each test case/scenario includes one or more test steps. The test case/scenario has a single status made up of one or more test measure or criteria results across the test steps of the given test case/scenario. The individual test scenario status values contribute to the success or failure status of the test suite, subject to bilateral agreement.',\n        fieldRef: [\n            {\n                id: 3029,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                updated: 'FIX.Latest',\n                updatedEP: '303',\n                description: 'Required if NoTestScenarios(3028) > 0.',\n            },\n            {\n                id: 3030,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                updated: 'FIX.Latest',\n                updatedEP: '303',\n                description: 'Required if NoTestScenarios(3028) > 0.',\n            },\n            {\n                id: 3031,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Overall starting time of this test scenario.',\n            },\n            {\n                id: 3032,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Overall ending time of this test scenario.',\n            },\n            {\n                id: 1024,\n                added: 'FIX.Latest',\n                addedEP: '292',\n            },\n            {\n                id: 3033,\n                added: 'FIX.Latest',\n                addedEP: '292',\n            },\n            {\n                id: 3034,\n                added: 'FIX.Latest',\n                addedEP: '292',\n            },\n            {\n                id: 3035,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                updated: 'FIX.Latest',\n                updatedEP: '295',\n                description: 'May be used to define a shortcut for TestStepGrp.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2288,\n                added: 'FIX.Latest',\n                addedEP: '303',\n                description: 'May be used to define test system parameters at the scenario level.',\n            },\n            {\n                id: 1008,\n                added: 'FIX.Latest',\n                addedEP: '295',\n                description: 'May be used to identify one or more execution venues.',\n            },\n            {\n                id: 2178,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description:\n                    'InstrumentScopeSecurityGroup(1545) may be used to reference a list of securities provided with the SecurityList(35=y) message.',\n            },\n            {\n                id: 2278,\n                added: 'FIX.Latest',\n                addedEP: '292',\n            },\n            {\n                id: 2280,\n                added: 'FIX.Latest',\n                addedEP: '292',\n            },\n            {\n                id: 2281,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description:\n                    'Use to provide the metrics and thresholds for the scenario identified by TestScenarioID(3029).\\n\\n\\n\\nRequired unless TestSuiteStatus(3070)=0 (Undefined).',\n            },\n            {\n                id: 2282,\n                added: 'FIX.Latest',\n                addedEP: '295',\n                description: 'Use to provide a list of orders to be used for testing the scenario.',\n            },\n        ],\n        numInGroup: {\n            id: 3028,\n            added: 'FIX.Latest',\n            addedEP: '292',\n        },\n    },\n    {\n        id: 2278,\n        name: 'TestStepGrp',\n        abbrName: 'TstStep',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        category: 'Testing',\n        description:\n            'TestStepGrp is a repeating group used to provide information regarding the steps of a test case/scenario for a testing system.\\n\\nFor each test step, this contains the timings and test parameter group information. The timings may overlap.',\n        fieldRef: [\n            {\n                id: 3037,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                updated: 'FIX.Latest',\n                updatedEP: '303',\n                description: 'Required if NoTestSteps(3036) > 0.',\n            },\n            {\n                id: 3038,\n                added: 'FIX.Latest',\n                addedEP: '292',\n            },\n            {\n                id: 3039,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description:\n                    'Use for an absolute starting time. Mutually exclusive with TestStepStartOffsetUnit(3041) and TestStepStartOffsetPeriod(3040).',\n            },\n            {\n                id: 3040,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description:\n                    'Use for a starting time relative to the overall starting time defined by TestScenarioStartTime(3031). Required when TestStepStartOffsetUnit(3041) is specified.',\n            },\n            {\n                id: 3041,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description:\n                    'Use for a starting time relative to the overall starting time defined by TestScenarioStartTime(3031). Required when TestStepStartOffsetPeriod(3040) is specified.',\n            },\n            {\n                id: 3042,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description:\n                    'Use for an absolute ending time. Mutually exclusive with TestStepEndOffsetUnit(3044) and TestStepEndOffsetPeriod(3043).',\n            },\n            {\n                id: 3043,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description:\n                    'Use for an ending time relative to the starting time of the step defined by TestStepStartTime(3039). Required when TestStepEndOffsetUnit(3044) is specified.',\n            },\n            {\n                id: 3044,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description:\n                    'Use for an ending time relative to the starting time of the step defined by TestStepStartTime(3039). Required when TestStepEndOffsetPeriod(3043) is specified.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 2279,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                updated: 'FIX.Latest',\n                updatedEP: '303',\n                description: 'May be used to define test system parameters at the step level.',\n            },\n        ],\n        numInGroup: {\n            id: 3036,\n            added: 'FIX.Latest',\n            addedEP: '292',\n        },\n    },\n    {\n        id: 2279,\n        name: 'TestStepParameterGrp',\n        abbrName: 'TstStepPrm',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        category: 'Testing',\n        description:\n            'TestStepParameterGrp is a repeating group used to provide information regarding the input parameters of a test step for testing.\\n\\nContains names, types and parameter settings to be used for each test step in a test case/scenario.',\n        fieldRef: [\n            {\n                id: 3046,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Required if NoTestStepParameters(3045)>0.',\n            },\n            {\n                id: 3047,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Required if NoTestStepParameters(3045)>0.',\n            },\n            {\n                id: 3048,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Required if NoTestStepParameters(3045)>0.',\n            },\n        ],\n        numInGroup: {\n            id: 3045,\n            added: 'FIX.Latest',\n            addedEP: '292',\n        },\n    },\n    {\n        id: 2280,\n        name: 'TestSystemModuleGrp',\n        abbrName: 'TstSysModl',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        updated: 'FIX.Latest',\n        updatedEP: '295',\n        category: 'Testing',\n        description:\n            'TestSystemModuleGrp is a repeating group used to provide information regarding the software components of a testing system.\\n\\nThere should be a test system used as part of the internal approval process for each test scenario. The system modules and their versions can be included in the certificate information.',\n        fieldRef: [\n            {\n                id: 3050,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Required if NoTestSystemModules (3049)>0.',\n            },\n            {\n                id: 3051,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Required if NoTestSystemModules (3049)>0.',\n            },\n            {\n                id: 3081,\n                added: 'FIX.Latest',\n                addedEP: '295',\n            },\n        ],\n        numInGroup: {\n            id: 3049,\n            added: 'FIX.Latest',\n            addedEP: '292',\n        },\n    },\n    {\n        id: 2281,\n        name: 'TestMeasureGrp',\n        abbrName: 'TstMsr',\n        added: 'FIX.Latest',\n        addedEP: '292',\n        category: 'Testing',\n        description:\n            'Provides details for a collection of test measures or criteria that a test case/scenario is assessed against.\\n\\nAn instance of the repeating group represents the criteria definition and result of a single test measure. The collection of individual test measure results contributes to the success or failure status of the test scenario, subject to bilateral agreement.',\n        fieldRef: [\n            {\n                id: 3053,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Required if NoTestMeasures(3052)>0.',\n            },\n            {\n                id: 3054,\n                added: 'FIX.Latest',\n                addedEP: '292',\n            },\n            {\n                id: 3055,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Required if NoTestMeasures(3052)>0.',\n            },\n            {\n                id: 3056,\n                added: 'FIX.Latest',\n                addedEP: '292',\n            },\n            {\n                id: 3057,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Required if NoTestMeasures(3052)>0.',\n            },\n            {\n                id: 3058,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Required if NoTestMeasures(3052)>0.',\n            },\n            {\n                id: 3059,\n                added: 'FIX.Latest',\n                addedEP: '292',\n            },\n            {\n                id: 3060,\n                added: 'FIX.Latest',\n                addedEP: '292',\n                description: 'Required if NoTestMeasures(3052)>0.',\n            },\n            {\n                id: 3061,\n                added: 'FIX.Latest',\n                addedEP: '292',\n            },\n        ],\n        numInGroup: {\n            id: 3052,\n            added: 'FIX.Latest',\n            addedEP: '292',\n        },\n    },\n    {\n        id: 2282,\n        name: 'TestOrderGrp',\n        abbrName: 'TstOrd',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        category: 'Testing',\n        description:\n            'Provides list of orders for the execution of test scenarios.\\n\\nThe orders may include offsets for the submission of orders over a period of time.',\n        fieldRef: [\n            {\n                id: 3083,\n                added: 'FIX.Latest',\n                addedEP: '295',\n                description: 'Required if NoTestOrders(3082)>0.',\n            },\n            {\n                id: 3084,\n                added: 'FIX.Latest',\n                addedEP: '295',\n            },\n            {\n                id: 3085,\n                added: 'FIX.Latest',\n                addedEP: '295',\n            },\n            {\n                id: 3086,\n                added: 'FIX.Latest',\n                addedEP: '295',\n            },\n            {\n                id: 3087,\n                added: 'FIX.Latest',\n                addedEP: '295',\n            },\n            {\n                id: 3088,\n                added: 'FIX.Latest',\n                addedEP: '295',\n            },\n            {\n                id: 3089,\n                added: 'FIX.Latest',\n                addedEP: '295',\n            },\n            {\n                id: 3090,\n                added: 'FIX.Latest',\n                addedEP: '295',\n                description:\n                    'Use for an effective time relative to the overall starting time defined by TestScenarioStartTime(3031).\\n\\n\\nRequired when TestOrderOffsetUnit(3091) is specified.',\n            },\n            {\n                id: 3091,\n                added: 'FIX.Latest',\n                addedEP: '295',\n                description:\n                    'Use for an effective time relative to the overall starting time defined by TestScenarioStartTime(3031).\\n\\n\\nRequired when TestOrderOffsetPeriod(3090) is specified.',\n            },\n        ],\n        numInGroup: {\n            id: 3082,\n            added: 'FIX.Latest',\n            addedEP: '295',\n        },\n    },\n    {\n        id: 2283,\n        name: 'TestGatewayDetailGrp',\n        abbrName: 'TstGtwyDetl',\n        added: 'FIX.Latest',\n        addedEP: '295',\n        category: 'Testing',\n        description:\n            'Provides information about gateways for testing applications, e.g. for order entry or market data.\\n\\nThe gateways may be offered by service providers simulating execution venues or offered directly by the venues.',\n        fieldRef: [\n            {\n                id: 3093,\n                added: 'FIX.Latest',\n                addedEP: '295',\n                description: 'Required if NoTestGatewayDetails(3092)>0.',\n            },\n            {\n                id: 3094,\n                added: 'FIX.Latest',\n                addedEP: '295',\n                description: 'Required if NoTestGatewayDetails(3092)>0.',\n            },\n            {\n                id: 3095,\n                added: 'FIX.Latest',\n                addedEP: '295',\n                description: 'Required if NoTestGatewayDetails(3092)>0.',\n            },\n            {\n                id: 3096,\n                added: 'FIX.Latest',\n                addedEP: '295',\n            },\n        ],\n        numInGroup: {\n            id: 3092,\n            added: 'FIX.Latest',\n            addedEP: '295',\n        },\n    },\n    {\n        id: 2284,\n        name: 'IndividualAllocSubQtyAttributeGrp',\n        abbrName: 'IndAllocSubQtyAttr',\n        added: 'FIX.Latest',\n        addedEP: '298',\n        category: 'Allocation',\n        description:\n            'This repeating group is used to specify the trade attributes used to define a subgroup of an average pricing group for an individual allocation.',\n        fieldRef: [\n            {\n                id: 3100,\n                added: 'FIX.Latest',\n                addedEP: '298',\n                description: 'Required if NoIndividualAllocSubQtyAttributes(3099) > 0.',\n            },\n            {\n                id: 3101,\n                added: 'FIX.Latest',\n                addedEP: '298',\n                description: 'Required if NoIndividualAllocSubQtyAttributes(3099) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 3099,\n            added: 'FIX.Latest',\n            addedEP: '298',\n        },\n    },\n    {\n        id: 2285,\n        name: 'MDAckGrp',\n        abbrName: 'MDAck',\n        added: 'FIX.Latest',\n        addedEP: '300',\n        category: 'MarketData',\n        description:\n            'List of market data entries with their acknowledgement status. \\n\\nA single instance of the repeating group without a reference to an individual market data entry is an acknowledgement of the entire message. When responding to individual market data entries of a MarketDataSnapshotFullRefresh(35=W) message, the Instrument component must be identical across all instances or omitted as of the second instance.',\n        fieldRef: [\n            {\n                id: 3106,\n                added: 'FIX.Latest',\n                addedEP: '300',\n                description: 'Conditionally required when NoMDEntries(268)>0.',\n            },\n            {\n                id: 278,\n                added: 'FIX.Latest',\n                addedEP: '300',\n                description: 'May be used to identify the entry being responded to.',\n            },\n            {\n                id: 3107,\n                added: 'FIX.Latest',\n                addedEP: '300',\n                description:\n                    'Conditionally required when MDEntryStatus(3106)=1 (Accepted with errors) or 2 (Rejected).',\n            },\n            {\n                id: 3108,\n                added: 'FIX.Latest',\n                addedEP: '300',\n                description:\n                    'Must be set if EncodedMDEntryStatusText(3109) field is specified and must immediately precede it.',\n            },\n            {\n                id: 3109,\n                added: 'FIX.Latest',\n                addedEP: '300',\n                description:\n                    'Encoded (non-ASCII characters) representation of the MDEntryStatusText(3107) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        componentRef: [\n            {\n                id: 1003,\n                added: 'FIX.Latest',\n                addedEP: '300',\n                description: 'May be used to identify the instrument of the entry being responded to.',\n            },\n        ],\n        numInGroup: {\n            id: 268,\n            added: 'FIX.Latest',\n            addedEP: '300',\n            description: 'Number of entries following.',\n        },\n    },\n    {\n        id: 4000,\n        name: 'AdditionalTermBondRefGrp',\n        abbrName: 'BondRef',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The AdditionalTermBondRefGrp is a repeating group subcomponent of the AdditionalTermGrp component used to identify an underlying reference bond for a swap.',\n        fieldRef: [\n            {\n                id: 40001,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoAdditionalTermBondRefs(40000) > 0.',\n            },\n            {\n                id: 40002,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when AdditionalTermBondSecurityID(40001) is specified.',\n            },\n            {\n                id: 40003,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40004,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Must be set if EncodedAdditionalTermBondDesc(40005) field is specified and must immediately precede it.',\n            },\n            {\n                id: 40005,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Encoded (non-ASCII characters) representation of the AdditionalTermBondDesc(40003) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 40006,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40007,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40008,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Must be set if EncodedAdditionalTermBondIssuer(40009) field is specified and must immediately precede it.',\n            },\n            {\n                id: 40009,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Encoded (non-ASCII characters) representation of the AdditionalTermBondIssuer(40007) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 40010,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40011,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40012,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40013,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40014,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40015,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40016,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when AdditionalTermBondCouponFrequencyUnit(40017) is specified.',\n            },\n            {\n                id: 40017,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when AdditionalTermBondCouponFrequencyPeriod(40016) is specified.',\n            },\n            {\n                id: 40018,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40000,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4001,\n        name: 'AdditionalTermGrp',\n        abbrName: 'AddtnlTrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The AdditionalTermGrp is a repeating subcomponent of the Instrument component used to report additional contract terms.',\n        fieldRef: [\n            {\n                id: 40020,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoAdditionalTerms(40019) > 0.',\n            },\n            {\n                id: 40021,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4000,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40019,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4002,\n        name: 'CashSettlTermGrp',\n        abbrName: 'CashSettlTrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The CashSettlTermGrp is a repeating component within the Instrument component used to report cash settlement terms referenced from UnderlyingInstruments.\\n\\nUsage of CashSettlTermGrp must either include a known CashSettlAmount(40034) or provide the cash settlement term parameters needed to derive the cash settlement amount.\\n\\nCashSettlTermXID(40039) is provided for cross-referencing from an instance of the UnderlyingInstrument component through the UnderlyingSettlTermXIDRef(41315) field.',\n        fieldRef: [\n            {\n                id: 40023,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoCashSettlTerms(40022) > 0.',\n            },\n            {\n                id: 40024,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40916,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40917,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40025,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40026,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40027,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40028,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40029,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40030,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40031,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42216,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42217,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 40033,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40034,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40035,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40036,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40037,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40038,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40039,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4083,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4318,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 40022,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4003,\n        name: 'FinancingContractualDefinitionGrp',\n        abbrName: 'CtrctlDef',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The FinancingContractualDefinitionGrp is a repeating component within the FinancingDetails component used to report the definitions published by ISDA that define the terms of a derivative trade.',\n        fieldRef: [\n            {\n                id: 40041,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoContractualDefinitions(40040) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40040,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4004,\n        name: 'FinancingContractualMatrixGrp',\n        abbrName: 'CtrctlMtrx',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '192',\n        category: 'Common',\n        description:\n            'The FinancingContractualMatrixGrp is a repeating component within the FinancingDetails component used to report the ISDA Physical Settlement Matrix Transaction Type.',\n        fieldRef: [\n            {\n                id: 40043,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoContractualMatrices(40042) > 0.',\n            },\n            {\n                id: 40044,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40045,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40042,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4005,\n        name: 'FinancingTermSupplementGrp',\n        abbrName: 'TrmSupplmnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The FinancingTermSupplementGrp is a repeating component within the FinancingDetails component used to report contractual terms supplements of derivative trades.',\n        fieldRef: [\n            {\n                id: 40047,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoFinancingTermSupplements(40046) > 0.',\n            },\n            {\n                id: 40048,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40046,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4006,\n        name: 'StreamGrp',\n        abbrName: 'Strm',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The StreamGrp is a repeating subcomponent of the Instrument component used to detail the swap streams associated with the instrument.\\n\\nA swap will ordinarily have one or two streams. Each one may contain a StreamDesc(40051) with a descriptive string such as \"Float\" or \"Fixed\". However the choice of description should have no effect on the stream\\'s purpose.\\n\\nStreamPaySide(40052) and StreamReceiveSide(40053) link the appropriate swap parties to their role in the stream. In pre-trade messages the side value (e.g. Side(54) field) of the request or order should be set to the same side value indicating the aggressor\\'s desired role. On fills and post-trade messages the executing firm takes the opposite side and indicates its role by setting\\n\\nStreamPaySide(40052) and StreamReceiveSide(40053) to the opposite side of the aggressor\\'s role.',\n        fieldRef: [\n            {\n                id: 40050,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoStreams(40049) > 0.',\n            },\n            {\n                id: 41303,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40051,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42784,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42785,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 40052,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40053,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41305,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40054,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40055,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42786,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42787,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 41306,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when StreamNotionalFrequencyUnit(41307) is specified.',\n            },\n            {\n                id: 41307,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when StreamNotionalFrequencyPeriod(41306) is specified.',\n            },\n            {\n                id: 41308,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41309,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41310,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41311,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40056,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40982,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Must be set if EncodedStreamText(40983) field is specified and must immediately precede it.',\n            },\n            {\n                id: 40983,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Encoded (non-ASCII characters) representation of the StreamText(40056) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4077,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4079,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4152,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4179,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4081,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4008,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4009,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4070,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4155,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 40049,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4010,\n        name: 'SettlRateDisruptionFallbackGrp',\n        abbrName: 'SettlRtFallbck',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The SettlRateDisruptionsFallbackGrp is a repeating subcomponent of the PaymentStreamNonDeliverableSettlTermGrp component used to specify the method, prioritized by the order it is listed, to get a replacement rate for a disrupted settlement rate option for a non-deliverable settlement currency.',\n        fieldRef: [\n            {\n                id: 40086,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoSettlRateFallbacks(40085) > 0.',\n            },\n            {\n                id: 40088,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40089,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4138,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40085,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4011,\n        name: 'ProvisionGrp',\n        abbrName: 'Prov',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The ProvisionGrp is a repeating subcomponent of the Instrument component used to detail the additional terms and conditions associated with the instrument.\\n\\nA swap may have one or more provisions defined.',\n        fieldRef: [\n            {\n                id: 40091,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisions(40090) > 0.',\n            },\n            {\n                id: 40092,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40093,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the instrument provisions.',\n            },\n            {\n                id: 40095,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40096,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when ProvisionDateTenorUnit(40097) is specified.',\n            },\n            {\n                id: 40097,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when ProvisionDateTenorPeriod(40096) is specified.',\n            },\n            {\n                id: 42707,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42708,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 40098,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40099,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40100,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40101,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40102,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40103,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40104,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40105,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40106,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40107,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40108,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40109,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40110,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40111,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40113,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40986,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Must be set if EncodedProvisionText(40987) field is specified and must immediately precede it.',\n            },\n            {\n                id: 40987,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Encoded (non-ASCII characters) representation of the ProvisionText(40113) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4119,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the instrument provisions.',\n            },\n            {\n                id: 4019,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4012,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4013,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4015,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4016,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4017,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4201,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40090,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4014,\n        name: 'ProvisionOptionExerciseFixedDateGrp',\n        abbrName: 'OptExerFixedDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The ProvisionOptionExerciseFixedDateGrp is a repeating component within the ProvisionOptionExerciseDates component used to report an array of unadjusted or adjusted fixed exercise dates.\\n\\nFor the purpose of optimization, the ProvisionOptionExerciseFixedDateType(40144) field may optionally be omitted after the first instance provided the instance(s) which immediately follow is of the same date type. When the next instance requires a different date type from the prior instance, the ProvisionOptionExerciseFixedDateType(40144) is required to specify the date type.',\n        fieldRef: [\n            {\n                id: 40143,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisionOptionExerciseFixedDates (40142) > 0.',\n            },\n            {\n                id: 40144,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 40142,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4018,\n        name: 'ProvisionCashSettlPaymentFixedDateGrp',\n        abbrName: 'CashSettlPmtFixedDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The ProvisionCashSettlPaymentFixedDateGrp is a repeating component within the ProvisionCashSettlPaymentDates component used to report fixed cash settlement payment dates defined in the provision.\\n\\nFor the purpose of optimization, the ProvisionCashSettlPaymentDateType(40173) field may optionally be omitted after the first instance provided the instance(s) which immediately follow is of the same date type. When the next instance requires a different date type from the prior instance, the ProvisionCashSettlPaymentDateType(40173) is required to specify the date type.',\n        fieldRef: [\n            {\n                id: 40172,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisionCashSettlPaymentDates (40171) > 0.',\n            },\n            {\n                id: 40173,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 40171,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4019,\n        name: 'ProvisionParties',\n        abbrName: 'Pty',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'ProvisionParties is a repeating component within the Provision component used to report the parties identified in the contract provision.\\n\\nThe fields ProvisionPartyID(40175), ProvisionPartyIDSource(40176) and ProvisionPartyIDRole(40177) are conditionally required when any one these fields is specified.',\n        fieldRef: [\n            {\n                id: 40175,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisionPartyIDs(40174) > 0.',\n            },\n            {\n                id: 40176,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisionPartyIDs(40174) > 0.',\n            },\n            {\n                id: 40177,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisionPartyIDs(40174) > 0.',\n            },\n            {\n                id: 2385,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4020,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40174,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4020,\n        name: 'ProvisionPtysSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'ProvisionPtysSubGrp is a repeating component within the ProvisionParties component used to extend information to be reported for the party.',\n        fieldRef: [\n            {\n                id: 40179,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisionPartySubIDs(40178) > 0.',\n            },\n            {\n                id: 40180,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisionPartySubIDs(40178) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40178,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4021,\n        name: 'ProtectionTermGrp',\n        abbrName: 'ProtctnTrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The ProtectionTermGrp is a repeating component within the Instrument component used to report protection term details referenced from UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40182,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProtectionTerms(40181) > 0.',\n            },\n            {\n                id: 40183,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40184,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40185,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40186,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40187,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40188,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40190,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4113,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4022,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4024,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40181,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4022,\n        name: 'ProtectionTermEventGrp',\n        abbrName: 'Evnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The ProtectionTermEventGrp is a repeating component within the ProtectionTermGrp component used to report applicable CDS credit events.',\n        fieldRef: [\n            {\n                id: 40192,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProtectionTermEvents(40191) > 0.',\n            },\n            {\n                id: 40193,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40194,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40195,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when ProtectionTermEventUnit(40196) is specified.',\n            },\n            {\n                id: 40196,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when ProtectionTermEventPeriod(40195) is specified.',\n            },\n            {\n                id: 40197,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40198,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4023,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40191,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4023,\n        name: 'ProtectionTermEventQualifierGrp',\n        abbrName: 'Qual',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The ProtectionTermEventQualifierGrp is a repeating component within the ProtectionTermEventGrp component used to specify qualifying attributes to the event.',\n        fieldRef: [\n            {\n                id: 40200,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProtectionTermEventQualifiers(40199) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40199,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4024,\n        name: 'ProtectionTermObligationGrp',\n        abbrName: 'Oblig',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The ProtectionTermObligationGrp is a repeating component within the ProtectionTermGrp component used to report applicable CDS obligations.',\n        fieldRef: [\n            {\n                id: 40202,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProtectionTermObligations(40201) > 0.',\n            },\n            {\n                id: 40203,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40201,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4025,\n        name: 'PhysicalSettlTermGrp',\n        abbrName: 'PhysSettlTrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The PhysicalSettlTermGrp is a repeating component within the Instrument component used to report physical settlement terms referenced from UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40205,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40206,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40207,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40208,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4026,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPhysicalSettlTerms(40204) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40204,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4026,\n        name: 'PhysicalSettlDeliverableObligationGrp',\n        abbrName: 'DlvrblOblig',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The PhysicalSettlDeliverableObligationGrp is a repeating component within the PhysicalSettlTermGrp component used to report CDS physical settlement delivery obligations.',\n        fieldRef: [\n            {\n                id: 40210,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPhysicalSettlDeliverableObligations (40209) > 0.',\n            },\n            {\n                id: 40211,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40209,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4027,\n        name: 'PaymentGrp',\n        abbrName: 'Pmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '254',\n        category: 'Common',\n        description:\n            'The PaymentGrp is a repeating component used to report additional payments or bullet payments.\\n\\nThis component is positioned outside the Instrument component as it is used to specify payments based on the price and terms of the contract, e.g. upfront fee, premium amount, security lending fee and contract-based rebates.\\n\\nWhen PaymentFrequencyUnit(43103) and PaymentFrequencyPeriod(43102) are specified the payments are deemed to be periodic for the specified PaymentType(40213).',\n        fieldRef: [\n            {\n                id: 40213,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPayments(40212) > 0.',\n            },\n            {\n                id: 40993,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 40214,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40215,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 43087,\n                added: 'FIX.5.0SP2',\n                addedEP: '203',\n            },\n            {\n                id: 40216,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40217,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '254',\n                description:\n                    'Either PaymentAmount(40217), PaymentFixedRate(43097) or PaymentRFloatingRateIndex(43098) must be specified.',\n            },\n            {\n                id: 42598,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42599,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43097,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description:\n                    'Either PaymentAmount(40217), PaymentFixedRate(43097) or PaymentFloatingRateIndex(43098) must be specified.',\n            },\n            {\n                id: 43098,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description:\n                    'Either PaymentAmount(40217), PaymentFixedRate(43097) or PaymentFloatingRateIndex(43098) must be specified.',\n            },\n            {\n                id: 43100,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description: 'Conditionally required when PaymentFloatingRateIndexCurvePeriod(43099) is specified.',\n            },\n            {\n                id: 43099,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description: 'Conditionally required when PaymentFloatingRateIndexCurveUnit(43100) is specified.',\n            },\n            {\n                id: 43101,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description:\n                    'Conditionally required when PaymentFloatingRateIndex(43098) is specified and the spread to the index is not \"zero\". When the spread to the index is \"zero\" this may be omitted.',\n            },\n            {\n                id: 43105,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description: 'Conditionally required when PaymentRateResetFrequencyPeriod(43104) is specified.',\n            },\n            {\n                id: 43104,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description: 'Conditionally required when PaymentRateResetFrequencyUnit(43105) is specified.',\n            },\n            {\n                id: 43103,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description: 'Conditionally required when PaymentFrequencyPeriod(43102) is specified.',\n            },\n            {\n                id: 43102,\n                added: 'FIX.5.0SP2',\n                addedEP: '254',\n                description: 'Conditionally required when PaymentFrequencyUnitPeriod(43103) is specified.',\n            },\n            {\n                id: 40218,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40919,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41155,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40219,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40220,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the payment information.',\n            },\n            {\n                id: 41156,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41157,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when PaymentDateOffsetUnit(41158) is specified.',\n            },\n            {\n                id: 41158,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when PaymentDateOffsetPeriod(41157) is specified.',\n            },\n            {\n                id: 41159,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40222,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41160,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40224,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40225,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40226,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40227,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 492,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41304,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Used to link a payment back to its parent InstrumentLeg by using the same value as the parent\u2019s LegID(1788).',\n            },\n            {\n                id: 40229,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40984,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Must be set if EncodedPaymentText(40985) field is specified and must immediately precede it.',\n            },\n            {\n                id: 40985,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Encoded (non-ASCII characters) representation of the PaymentText(40229) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4105,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the payment information.',\n            },\n            {\n                id: 4028,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40212,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4028,\n        name: 'PaymentSettlGrp',\n        abbrName: 'PmtSettl',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The PaymentSettlGrp is a repeating subcomponent of the PaymentGrp component used to report payment settlement as a single or split payment.',\n        fieldRef: [\n            {\n                id: 40231,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentSettls(40230) > 0.',\n            },\n            {\n                id: 40232,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4029,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40230,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4029,\n        name: 'PaymentSettlParties',\n        abbrName: 'Pty',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentSettlParties is a repeating subcomponent of the PaymentSettlGrp component used to report payment settlement routing.\\n\\nThe fields PaymentSettlPartyID(40233), PaymentSettlPartyIDSource(40234) and PaymentSettlPartyIDRole(40235) are conditionally required when any one these fields is specified.',\n        fieldRef: [\n            {\n                id: 40234,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentSettlPartyIDs(40233) > 0.',\n            },\n            {\n                id: 40235,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentSettlPartyIDs(40233) > 0.',\n            },\n            {\n                id: 40236,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentSettlPartyIDs(40233) > 0.',\n            },\n            {\n                id: 40237,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4030,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40233,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4030,\n        name: 'PaymentSettlPtysSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentSettlSubParties is a repeating component within the PaymentSettlParties component used to extend information to be reported for the party.',\n        fieldRef: [\n            {\n                id: 40239,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentSettlPartySubIDs(40238) > 0.',\n            },\n            {\n                id: 40240,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentSettlPartySubIDs(40238) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40238,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4031,\n        name: 'LegStreamGrp',\n        abbrName: 'Strm',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The LegStreamGrp is a repeating subcomponent of the InstrumentLeg component used to detail the swap streams associated with the instrument.\\n\\nA swap will ordinarily have one or two streams. Each one may contain a LegStreamDesc(40243) with a descriptive string such as \"Float\" or \"Fixed\". However the choice of description should have no effect on the stream\\'s purpose.\\n\\nLegStreamPaySide(40244) and LegStreamReceiveSide(40245) link the appropriate swap parties to their role in the stream. In pre-trade messages the side value (e.g. Side(54) field) of the request or order should be \"1\" (Buy) or \"2\" (Sell), and LegStreamPaySide(40244) and LegStreamReceiveSide(40245) should be set to the same side value indicating the aggressor\\'s desired role. On fills and post-trade messages, the executing firm takes the opposite side and indicates its role by setting LegStreamPaySide(40244) and LegStreamReceiveSide(40245) to the opposite side of the aggressor\\'s role.',\n        fieldRef: [\n            {\n                id: 40242,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegStreams(40241) > 0.',\n            },\n            {\n                id: 41700,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40243,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42583,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42584,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 40244,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40245,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41702,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40246,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40247,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42585,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42586,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 41703,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegStreamNotionalFrequencyUnit(41704) is specified.',\n            },\n            {\n                id: 41704,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegStreamNotionalFrequencyPeriod(41703) is specified.',\n            },\n            {\n                id: 41705,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41706,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41707,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41708,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40248,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40978,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Must be set if EncodedLegStreamText(40979) field is specified and must immediately precede it.',\n            },\n            {\n                id: 40979,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegStreamText(40248) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4043,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4045,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4203,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4237,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4032,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4033,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4034,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4035,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4206,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 40241,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4041,\n        name: 'LegPaymentStreamNonDeliverableFixingDateGrp',\n        abbrName: 'FixngDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        category: 'Common',\n        description:\n            'LegPaymentStreamNonDeliverableFixingDate is a subcomponent of the LegPaymentStreamNonDeliverableSettlTerms component used to specify predetermined fixing dates.\\n\\nFor the purpose of optimization, the LegNonDeliverableFixingDateType(40369) field may optionally be omitted after the first instance provided the instance(s) which immediately follow is of the same date type. When the next instance requires a different date type from the prior instance, the LegNonDeliverableFixingDateType(40369) is required to specify the date type.',\n        fieldRef: [\n            {\n                id: 40368,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegNonDeliverableFixingDates(40367) > 0.',\n            },\n            {\n                id: 40369,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 40367,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4043,\n        name: 'LegPaymentScheduleGrp',\n        abbrName: 'PmtSched',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        category: 'Common',\n        description:\n            'The LegPaymentScheduleGrp is a repeating subcomponent of the LegPaymentStream component used to specify notional and rate steps in the payment stream.\\n\\nThe Fixing Lag Interval (LegPaymentScheduleFixingLagPeriod(41545) and LegPaymentScheduleFixingLagUnit(41546)) and the First Observation Offset Duration (LegPaymentScheduleFixingFirstObservationOffsetPeriod(41547) and LegPaymentScheduleFixingFirstObservationOffsetUnit(41548)) are used together. If the First Observation Offset Duration is specified, the observation starts the Fixing Lag Interval prior to each calculation. If the First Observation Offset Duration is not specified, the observation starts immediately preceding each calculation.',\n        fieldRef: [\n            {\n                id: 40375,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegPaymentSchedules(40374) > 0.',\n            },\n            {\n                id: 41533,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41534,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40376,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40377,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40378,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40379,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40380,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40381,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40382,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40383,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40384,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40385,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41535,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41536,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41537,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41538,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40386,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40387,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40388,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40389,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41539,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41540,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41541,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41542,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40390,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentScheduleStepFrequencyUnit(40391) is specified.',\n            },\n            {\n                id: 40391,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentScheduleStepFrequencyPeriod(40390) is specified.',\n            },\n            {\n                id: 40392,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40393,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40394,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40395,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40396,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40397,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40398,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40399,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg payment schedule.',\n            },\n            {\n                id: 40401,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentScheduleFixingDatesOffsetUnit(40402) is specified.',\n            },\n            {\n                id: 40402,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegPaymentScheduleFixingDatesOffsetPeriod(40401) is specified.',\n            },\n            {\n                id: 40403,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41543,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41544,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40404,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41545,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegPaymentScheduleFixingLagUnit(41546) is specified.',\n            },\n            {\n                id: 41546,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegPaymentScheduleFixingLagPeriod(41545) is specified.',\n            },\n            {\n                id: 41547,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description:\n                    'Conditionally required when LegPaymentScheduleFixingFirstObservationDateOffsetUnit(41548) is specified.',\n            },\n            {\n                id: 41548,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description:\n                    'Conditionally required when LegPaymentScheduleFixingFirstObservationDateOffsetPeriod(41547) is specified.',\n            },\n            {\n                id: 40405,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40406,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40407,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40408,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the leg payment schedule.',\n            },\n            {\n                id: 40410,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegPaymentScheduleInterimExchangeDatesOffsetUnit(40411) is specified.',\n            },\n            {\n                id: 40411,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when LegPaymentScheduleInterimExchangeDatesOffsetPeriod(40410) is specified.',\n            },\n            {\n                id: 40412,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40413,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4044,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4088,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg payment schedule.',\n            },\n            {\n                id: 4221,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4089,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the leg payment schedule.',\n            },\n        ],\n        numInGroup: {\n            id: 40374,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4044,\n        name: 'LegPaymentScheduleRateSourceGrp',\n        abbrName: 'RtSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegPaymentScheduleRateSourceGrp is a repeating component within the LegPaymentScheduleGrp component used to identify primary and secondary rate sources.',\n        fieldRef: [\n            {\n                id: 40415,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegPaymentScheduleRateSources(40414) > 0.',\n            },\n            {\n                id: 40416,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description: 'Required if NoLegPaymentScheduleRateSources(40414) > 0.',\n            },\n            {\n                id: 40417,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentScheduleRateSource(40415) = 99 (Other).',\n            },\n        ],\n        numInGroup: {\n            id: 40414,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4045,\n        name: 'LegPaymentStubGrp',\n        abbrName: 'PmtStub',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The LegPaymentStubGrp is a repeating subcomponent of the LegPaymentStream component used to specify front and back stubs in the payment stream.',\n        fieldRef: [\n            {\n                id: 40419,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegPaymentStubs(40418) > 0.',\n            },\n            {\n                id: 40420,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40421,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40422,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40423,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40424,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40425,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40426,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStubIndexCurveUnit(40427) is specified.',\n            },\n            {\n                id: 40427,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Copnditionally required when LegPaymentStubIndexCurvePeriod(40426) is specified.',\n            },\n            {\n                id: 40428,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40429,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40430,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40431,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40432,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40433,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40434,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40435,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40436,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40437,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40438,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40439,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40440,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStubIndex2CurveUnit(40441) is specified.',\n            },\n            {\n                id: 40441,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegPaymentStubIndex2CurvePeriod(40440) is specified.',\n            },\n            {\n                id: 40442,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40443,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40444,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40445,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40446,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40447,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4351,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4349,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 40418,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4046,\n        name: 'LegProvisionGrp',\n        abbrName: 'Prov',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The LegProvisionGrp is a repeating subcomponent of the InstrumentLeg component used to detail the provisions associated with the instrument.\\n\\nA swap may have one or more provisions.',\n        fieldRef: [\n            {\n                id: 40449,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisions(40448) > 0.',\n            },\n            {\n                id: 40450,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40451,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this instance of the instrument's leg provision.\",\n            },\n            {\n                id: 40453,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40454,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegProvisionDateTenorUnit(40455) is specified.',\n            },\n            {\n                id: 40455,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when LegProvisionDateTenorPeriod(40454) is specified.',\n            },\n            {\n                id: 42506,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42507,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 40456,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40457,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40458,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40459,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40460,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40461,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40462,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40463,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40464,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40465,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40466,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40467,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40468,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40469,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40472,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40980,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Must be set if EncodedLegProvisionText(40981) field is specified and must immediately precede it.',\n            },\n            {\n                id: 40981,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegProvisionText(40472) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4100,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the instrument's leg provision.\",\n            },\n            {\n                id: 4054,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4053,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4048,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4050,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4051,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4052,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4202,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40448,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4047,\n        name: 'LegProvisionCashSettlPaymentFixedDateGrp',\n        abbrName: 'CashSettlPmtFixedDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The ProvisionCashSettlPaymentFixedDateGrp is a repeating component within the ProvisionCashSettlPaymentDates component used to report fixed cash settlement payment dates defined in the provision.\\n\\nFor the purpose of optimization, the LegProvisionCashSettlPaymentDateType(40475) field may optionally be omitted after the first instance provided the instance(s) which immediately follow is of the same date type. When the next instance requires a different date type from the prior instance, the LegProvisionCashSettlPaymentDateType(40475) is required to specify the date type.',\n        fieldRef: [\n            {\n                id: 40474,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisionCashSettlPaymentDates (40473) > 0.',\n            },\n            {\n                id: 40475,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 40473,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4049,\n        name: 'LegProvisionOptionExerciseFixedDateGrp',\n        abbrName: 'OptExerFixedDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The LegProvisionOptionExerciseFixedDateGrp is a repeating component within the LegProvisionOptionExerciseDates component used to report an array of unadjusted or adjusted fixed exercise dates.\\n\\nFor the purpose of optimization, the LegProvisionOptionExerciseFixedDateType(40497) field may optionally be omitted after the first instance provided the instance(s) which immediately follow is of the same date type. When the next instance requires a different date type from the prior instance, the LegProvisionOptionExerciseFixedDateType(40497) is required to specify the date type.',\n        fieldRef: [\n            {\n                id: 40496,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisionOptionExerciseFixedDates(40495) > 0.',\n            },\n            {\n                id: 40497,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 40495,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4054,\n        name: 'LegProvisionParties',\n        abbrName: 'Pty',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegProvisionParties is a repeating component within the LegProvision component used to report the parties identified in the contract provision.\\n\\nThe fields LegProvisionPartyID(40534), LegProvisionPartyIDSource(40535) and LegProvisionPartyIDRole(40536) are conditionally required when any one these fields is specified.',\n        fieldRef: [\n            {\n                id: 40534,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisionPartyIDs(40533) > 0.',\n            },\n            {\n                id: 40535,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisionPartyIDs(40533) > 0.',\n            },\n            {\n                id: 40536,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisionPartyIDs(40533) > 0.',\n            },\n            {\n                id: 2380,\n                added: 'FIX.5.0SP2',\n                addedEP: '179',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4055,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40533,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4055,\n        name: 'LegProvisionPtysSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegProvisionSubParties is a repeating component within the LegProvisionParties component used to extend information to be reported for the party.',\n        fieldRef: [\n            {\n                id: 40538,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisionPartySubIDs(40537) > 0.',\n            },\n            {\n                id: 40539,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisionPartySubIDs(40537) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40537,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4056,\n        name: 'UnderlyingStreamGrp',\n        abbrName: 'Strm',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The UnderlyingStreamGrp is a repeating subcomponent of the UnderlyingInstrument component used to detail the swap streams associated with the instrument.\\n\\nA swap will ordinarily have one or two payment streams. Each one may contain an UnderlyingStreamDesc(40542) with a descriptive string such as \"Float\" or \"Fixed\". However the choice of description should have no effect on the stream\\'s purpose.\\n\\nUnderlyingStreamPaySide(40543) and UnderlyingStreamReceiveSide(40544) link the appropriate swap parties to their role in the stream. In pre-trade messages the side value (e.g. Side(54) field) of the request or order should be \"1\" (Buy) or \"2\" (Sell), and UnderlyingStreamPaySide(40543) and UnderlyingStreamReceiveSide(40544) should be set to the same side value indicating the aggressor\\'s desired role. On fills and post-trade messages, the executing firm takes the opposite side and indicates its role by setting UnderlyingStreamPaySide(40543) and UnderlyingStreamReceiveSide(40544) to the opposite side of the aggressor\\'s role.',\n        fieldRef: [\n            {\n                id: 40541,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingStreams(40540) > 0.',\n            },\n            {\n                id: 42016,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40542,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 43083,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43084,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 40543,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40544,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 42018,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40545,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40546,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 43085,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43086,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42019,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when UnderlyingStreamNotionalFrequencyUnit(42020) is specified.',\n            },\n            {\n                id: 42020,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when UnderlyingStreamNotionalFrequencyPeriod(42019) is specified.',\n            },\n            {\n                id: 42021,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42022,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42023,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42024,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40547,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40988,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Must be set if EncodedUnderlyingStreamText(40989) field is specified and must immediately precede it.',\n            },\n            {\n                id: 40989,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Encoded (non-ASCII characters) representation of the UnderlyingStreamText(40547) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4067,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4069,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4254,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4281,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4007,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4057,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4058,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4059,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4257,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 40540,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4065,\n        name: 'UnderlyingPaymentStreamNonDeliverableFixingDateGrp',\n        abbrName: 'FixngDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamNonDeliverableFixingDate is a subcomponent of the UnderlyingPaymentStreamNonDeliverableSettlTerms component used to specify predetermined fixing dates.\\n\\nFor the purpose of optimization, the UnderlyingNonDeliverableFixingDateType(40658) field may optionally be omitted after the first instance provided the instance(s) which immediately follow is of the same date type. When the next instance requires a different date type from the prior instance, the UnderlyingNonDeliverableFixingDateType(40658) is required to specify the date type.',\n        fieldRef: [\n            {\n                id: 40657,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingNonDeliverableFixingDates(40656) > 0.',\n            },\n            {\n                id: 40658,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 40656,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4066,\n        name: 'UnderlyingSettlRateDisruptionFallbackGrp',\n        abbrName: 'SettlRtFallbck',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The UnderlyingSettlRateDisruptionFallbackGrp is a repeating subcomponent of the UnderlyingPaymentStreamNonDeliverableSettlTermGrp component used to specify the method, prioritized by the order it is listed, to get a replacement rate for a disrupted settlement rate option for a non-deliverable settlement currency.',\n        fieldRef: [\n            {\n                id: 40660,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingSettlRateFallbacks(40659) > 0.',\n            },\n            {\n                id: 40662,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40663,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4140,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40659,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4067,\n        name: 'UnderlyingPaymentScheduleGrp',\n        abbrName: 'PmtSched',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        category: 'Common',\n        description:\n            'The UnderlyingPaymentScheduleGrp is a repeating subcomponent of the UnderlyingPaymentStream component used to specify notional and rate steps in the payment stream.\\n\\nThe Fixing Lag Interval (UnderlyingPaymentScheduleFixingLagPeriod(41893) and UnderlyingPaymentScheduleFixingLagUnit(41894)) and the First Observation Offset Duration (UnderlyingPaymentScheduleFixingFirstObservationOffsetPeriod(41895) and UnderlyingPaymentScheduleFixingFirstObservationOffsetUnit(41896)) are used together. If the First Observation Offset Duration is specified, the observation starts the Fixing Lag Interval prior to each calculation. If the First Observation Offset Duration is not specified, the observation starts immediately preceding each calculation.',\n        fieldRef: [\n            {\n                id: 40665,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingPaymentScheules(40664) > 0.',\n            },\n            {\n                id: 41881,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41882,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40666,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40667,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40668,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40669,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40670,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40671,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40672,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40673,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40674,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40675,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41883,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41884,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41885,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41886,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40676,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40677,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 40678,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40679,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41887,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41888,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41889,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41890,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40680,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentScheduleStepFrequeencyUnit(40681) is specified.',\n            },\n            {\n                id: 40681,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentScheduleStepFrequeencyPeriod(40680) is specified.',\n            },\n            {\n                id: 40682,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40683,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40684,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40685,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40686,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40687,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40688,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40689,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the underlying instrument's payment schedule.\",\n            },\n            {\n                id: 40691,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentScheduleFixingDateOffsetUnit(40692) is specified.',\n            },\n            {\n                id: 40692,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentScheduleFixingDateOffsetPeriod(40691) is specified.',\n            },\n            {\n                id: 40693,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41891,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41892,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40694,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41893,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when UnderlyingPaymentScheduleFixingLagUnit(41894) is specified.',\n            },\n            {\n                id: 41894,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingPaymentScheduleFixingLagPeriod(41893) is specified.',\n            },\n            {\n                id: 41895,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentScheduleFixingFirstObservationDateOffsetUnit(41896) is specified.',\n            },\n            {\n                id: 41896,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingPaymentScheduleFixingFirstObservationDateOffsetPeriod(41895) is specified.',\n            },\n            {\n                id: 40695,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40696,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40697,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40698,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the underlying instrument's payment schedule.\",\n            },\n            {\n                id: 40700,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentScheduleInterimExchangeDatesOffsetUnit(40701) is specified.',\n            },\n            {\n                id: 40701,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when UnderlyingPaymentScheduleInterimExchangeDatesOffsetPeriod(40700) is specified.',\n            },\n            {\n                id: 40702,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40703,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4068,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4126,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the underlying instrument's payment schedule.\",\n            },\n            {\n                id: 4272,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4127,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    \"When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the underlying instrument's payment schedule.\",\n            },\n        ],\n        numInGroup: {\n            id: 40664,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4068,\n        name: 'UnderlyingPaymentScheduleRateSourceGrp',\n        abbrName: 'RtSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentScheduleRateSourceGrp is a repeating component within the UnderlyingPaymentScheduleGrp component used to identify primary and secondary rate sources.',\n        fieldRef: [\n            {\n                id: 40705,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingPaymentScheduleRates(40704) > 0.',\n            },\n            {\n                id: 40706,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description: 'Required if NoUnderlyingPaymentScheduleRates(40704) > 0.',\n            },\n            {\n                id: 40707,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingPaymentScheduleRateSource(40705) = 99 (Other).',\n            },\n        ],\n        numInGroup: {\n            id: 40704,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4069,\n        name: 'UnderlyingPaymentStubGrp',\n        abbrName: 'PmtStub',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The UnderlyingPaymentStubGrp is a repeating subcomponent of the UnderlyingPaymentStream component used to specify front and back stubs in the payment stream.',\n        fieldRef: [\n            {\n                id: 40709,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingPaymentStubs(40708) > 0.',\n            },\n            {\n                id: 40710,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40711,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40712,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40713,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40714,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40715,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40716,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingPaymentStubIndexCurveUnit(40717) is specified.',\n            },\n            {\n                id: 40717,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingPaymentStubIndexCurvePeriod(40716) is specified.',\n            },\n            {\n                id: 40718,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40719,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40720,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40721,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40722,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40723,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40724,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40725,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40726,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40727,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40728,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40729,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40730,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingPaymentStubIndex2CurveUnit(40731) is specified.',\n            },\n            {\n                id: 40731,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when UnderlyingPaymentStubIndex2CurvePeriod(40730) is specified.',\n            },\n            {\n                id: 40732,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40733,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40734,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40735,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40736,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40737,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4412,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4410,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 40708,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4076,\n        name: 'PaymentStreamNonDeliverableFixingDateGrp',\n        abbrName: 'FixngDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        category: 'Common',\n        description:\n            'PaymentStreamNonDeliverableFixingDate is a subcomponent of the PaymentStreamNonDeliverableSettlTerms component used to specify predetermined fixing dates.\\n\\nFor the purpose of optimization, the NonDeliverableFixingDateType(40827) field may optionally be omitted after the first instance provided the instance(s) which immediately follow is of the same date type. When the next instance requires a different date type from the prior instance, the NonDeliverableFixingDateType(40827) is required to specify the date type.',\n        fieldRef: [\n            {\n                id: 40826,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoNonDeliverableFixingDates(40825) > 0.',\n            },\n            {\n                id: 40827,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 40825,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4077,\n        name: 'PaymentScheduleGrp',\n        abbrName: 'PmtSched',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        category: 'Common',\n        description:\n            'The PaymentScheduleGrp is a repeating subcomponent of the StreamGrp component used to specify notional and rate steps of the payment stream.\\n\\nThe Fixing Lag Interval (PaymentScheduleFixingLagPeriod(41176) and PaymentScheduleFixingLagUnit(41177)) and the First Observation Offset Duration (PaymentScheduleFixingFirstObservationOffsetPeriod(41178) and PaymentScheduleFixingFirstObservationOffsetUnit(41179)) are used together. If the First Observation Offset Duration is specified, the observation starts the Fixing Lag Interval prior to each calculation. If the First Observation Offset Duration is not specified, the observation starts immediately preceding each calculation.',\n        fieldRef: [\n            {\n                id: 40829,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentSchedules(40828) > 0.',\n            },\n            {\n                id: 41164,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41165,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40830,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40831,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40832,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40833,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40834,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40835,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40836,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40837,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40838,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40839,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41166,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41167,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41168,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41169,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40840,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40841,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40842,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40843,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41170,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41171,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41172,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41173,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40844,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentScheduleStepFrequencyUnit(40845) is specified.',\n            },\n            {\n                id: 40845,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentScheduleStepFrequencyPeriod(40844) is specified.',\n            },\n            {\n                id: 40846,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40847,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40848,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40849,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40850,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40851,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40852,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40853,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the payment schedule.',\n            },\n            {\n                id: 40855,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentScheduleFixingDateOffsetUnit(40856) is specified.',\n            },\n            {\n                id: 40856,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentScheduleFixingDateOffsetPeriod(40855) is specified.',\n            },\n            {\n                id: 40857,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41174,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41175,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 40858,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 41176,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when PaymentScheduleFixingLagUnit(41177) is specified.',\n            },\n            {\n                id: 41177,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when PaymentScheduleFixingLagPeriod(41176) is specified.',\n            },\n            {\n                id: 41178,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description:\n                    'Conditionally required when PaymentScheduleFixingFirstObservationDateOffsetUnit(41179) is specified.',\n            },\n            {\n                id: 41179,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '208',\n                description:\n                    'Conditionally required when PaymentScheduleFixingFirstObservationDateOffsetPeriod(41178) is specified.',\n            },\n            {\n                id: 40859,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40860,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40861,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40862,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this instance of the payment schedule.',\n            },\n            {\n                id: 40864,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when PaymentScheduleInterimExchangeDatesOffsetUnit(40865) is specified.',\n            },\n            {\n                id: 40865,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'Conditionally required when PaymentScheduleInterimExchangeDatesOffsetPeriod(40864) is specified.',\n            },\n            {\n                id: 40866,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40867,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4078,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 4106,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the payment schedule.',\n            },\n            {\n                id: 4169,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4107,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the payment schedule.',\n            },\n        ],\n        numInGroup: {\n            id: 40828,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4078,\n        name: 'PaymentScheduleRateSourceGrp',\n        abbrName: 'RtSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentScheduleRateSourceGrp is a repeating component within the PaymentScheduleGrp component used to identify primary and secondary rate sources.',\n        fieldRef: [\n            {\n                id: 40869,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentScheduleRateSources(40868) > 0.',\n            },\n            {\n                id: 40870,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.5.0SP2',\n                updatedEP: '169',\n                description: 'Required if NoPaymentScheduleRateSources(40868) > 0.',\n            },\n            {\n                id: 40871,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentScheduleRateSource(40869) = 99 (Other)',\n            },\n        ],\n        numInGroup: {\n            id: 40868,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4079,\n        name: 'PaymentStubGrp',\n        abbrName: 'PmtStub',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The PaymentStubGrp is a repeating subcomponent of the StreamGrp component used to specify front and back stubs of the payment stream.',\n        fieldRef: [\n            {\n                id: 40873,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentStubs(40872) > 0.',\n            },\n            {\n                id: 40874,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40875,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40876,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40877,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40878,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40879,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40880,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStubIndexCurveUnit(40881) is specified.',\n            },\n            {\n                id: 40881,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStubIndexCurvePeriod(40880) is specified.',\n            },\n            {\n                id: 40882,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40883,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40884,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40885,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40886,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40887,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40888,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40889,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40890,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40891,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40892,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40893,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40894,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStubIndex2CurveUnit(40895) is specified.',\n            },\n            {\n                id: 40895,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Conditionally required when PaymentStubIndex2CurvePeriod(40894) is specified.',\n            },\n            {\n                id: 40896,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40897,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40898,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40899,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40900,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40901,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4376,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4374,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 40872,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4080,\n        name: 'LegSettlRateDisruptionFallbackGrp',\n        abbrName: 'SettlRtFallbck',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'The LegSettlRateDisruptionsFallbackGrp is a repeating subcomponent of the LegPaymentStreamNonDeliverableSettlTerms component used to specify the method, prioritized by the order it is listed, to get a replacement rate for a disrupted settlement rate option for a non-deliverable settlement currency.',\n        fieldRef: [\n            {\n                id: 40903,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegSettlRateFallbacks(40902) > 0.',\n            },\n            {\n                id: 40905,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n            {\n                id: 40906,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4082,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n            },\n        ],\n        numInGroup: {\n            id: 40902,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4083,\n        name: 'CashSettlDealerGrp',\n        abbrName: 'Dlr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'CashSettlDealerGrp is a repeating subcomponent within the CashSettlTermGrp component. It is used to specify the dealers from whom price quotations for the reference obligation are obtained for the purpose of cash settlement valuation.',\n        fieldRef: [\n            {\n                id: 40032,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoCashSettlDealers(40277) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40277,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4084,\n        name: 'BusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'BusinessCenterGrp is a repeating subcomponent within the DateAdjustment component. It is used to specify the set of business centers whose calendars drive the date adjustment. The business centers defined here apply to all adjustable dates in the instrument unless specifically overridden in the respective specified components elsewhere.',\n        fieldRef: [\n            {\n                id: 40471,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoBusinessCenters(40278) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40278,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4086,\n        name: 'LegBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegBusinessCenterGrp is a repeating subcomponent within the LegDateAdjustment component. It is used to specify the set of business centers whose calendars drive the date adjustment. The business centers defined here apply to all adjustable dates in the instrument leg unless specifically overridden elsewhere in the respective specified components further within the InstrumentLeg component.',\n        fieldRef: [\n            {\n                id: 40924,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegBusinessCenters(40923) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40923,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4088,\n        name: 'LegPaymentScheduleFixingDateBusinessCenterGrp',\n        abbrName: 'FixngBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegPaymentScheduleFixingDateBusinessCenterGrp is a repeating subcomponent within the LegPaymentScheduleGrp component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40400,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegPaymentScheduleFixingDateBusinessCenters(40927) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40927,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4089,\n        name: 'LegPaymentScheduleInterimExchangeDateBusinessCenterGrp',\n        abbrName: 'IntrmExchDtBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegPaymentScheduleInterimExchangeDateBusinessCenterGrp is a repeating subcomponent within the LegPaymentScheduleGrp component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40409,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegPaymentScheduleInterimExchangeDateBusinessCenters(40928) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40928,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4090,\n        name: 'LegPaymentStreamNonDeliverableFixingDatesBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegPaymentStreamNonDeliverableFixingDatesBusinessCenterGrp is a repeating subcomponent within the LegPaymentStreamNonDeliverableSettlTerms component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40361,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegPaymentStreamNonDeliverableFixingDatesBusinessCenters(40929) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40929,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4091,\n        name: 'LegPaymentStreamPaymentDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegPaymentStreamPaymentDateBusinessCenterGrp is a repeating subcomponent of the LegPaymentStreamPaymentDates component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40293,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Requirend if NoLegPaymentStreamPaymentDateBusinessCenters(40930) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40930,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4092,\n        name: 'LegPaymentStreamResetDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegPaymentStreamResetDateBusinessCenterGrp is a repeating subcomponent within the LegPaymentStreamResetDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40305,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegPaymentStreamResetDateBusinessCenters(40931) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40931,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4093,\n        name: 'LegPaymentStreamInitialFixingDateBusinessCenterGrp',\n        abbrName: 'InitBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegPaymentStreamInitialFixingDateBusinessCenterGrp is a repeating subcomponent within the LegPaymentStreamResetDates component used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40311,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegPaymentStreamInitialFixingDateBusinessCenters(40932) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40932,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4094,\n        name: 'LegPaymentStreamFixingDateBusinessCenterGrp',\n        abbrName: 'FixngBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegPaymentStreamFixingDateBusinessCenterGrp is a repeating subcomponent within the LegPaymentStreamResetDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40318,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegPaymentStreamFixingDateBusinessCenters(40933) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40933,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4095,\n        name: 'LegProvisionCashSettlPaymentDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegProvisionCashSettlPaymentDateBusinessCenterGrp is a repeating subcomponent within the LegProvisionCashSettlPaymentDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40517,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisionCashSettlPaymentDateBusinessCenters(40934) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40934,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4096,\n        name: 'LegProvisionCashSettlValueDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegProvisionCashSettlValueDateBusinessCenterGrp is a repeating subcomponent within the LegProvisionCashSettlValueDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40527,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisionCashSettlValueDateBusinessCenters(40935) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40935,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4097,\n        name: 'LegProvisionOptionExerciseBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegProvisionOptionExerciseBusinessCenterGrp is a repeating subcomponent within the LegProvisionOptionExerciseDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40477,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisionOptionExerciseBusinessCenters(40936) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40936,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4098,\n        name: 'LegProvisionOptionExpirationDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegProvisionOptionExpirationDateBusinessCenterGrp is a repeating subcomponent within the LegProvisionOptionExpirationDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40500,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisionOptionExpirationDateBusinessCenters(40937) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40937,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4099,\n        name: 'LegProvisionOptionRelevantUnderlyingDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegProvisionOptionRelevantUnderlyingDateBusinessCenterGrp is a repeating subcomponent within the LegProvisionOptionRelevantUnderlyingDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40510,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisionOptionRelevantUnderlyingDateBusinessCenters(40938) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40938,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4100,\n        name: 'LegProvisionDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegProvisionDateBusinessCenterGrp is a repeating subcomponent within the LegProvisionGrp component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40452,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegProvisionDateBusinessCenters(40939) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40939,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4101,\n        name: 'LegStreamCalculationPeriodBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegStreamCalculationPeriodBusinessCenterGrp is a repeating subcomponent within the LegStreamCalculationPeriodDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40266,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegStreamCalculationPeriodBusinessCenters(40940) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40940,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4102,\n        name: 'LegStreamFirstPeriodStartDateBusinessCenterGrp',\n        abbrName: 'FirstStartDtBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegStreamFirstPeriodStartDateBusinessCenterGrp is a repeating subcomponent within the LegStreamCalculationPeriodDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40269,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegStreamFirstPeriodStartDateBusinessCenters(40941) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40941,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4103,\n        name: 'LegStreamEffectiveDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegStreamEffectiveDateBusinessCenterGrp is a repeating subcomponent within the LegStreamEffectiveDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40251,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegStreamEffectiveDateBusinessCenters(40942) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40942,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4104,\n        name: 'LegStreamTerminationDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'LegStreamTerminationDateBusinessCenterGrp is a repeating subcomponent within the LegStreamTerminationDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 40259,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoLegStreamTerminationDateBusinessCenters(40943) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40943,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4105,\n        name: 'PaymentBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentBusinessCenterGrp is a repeating subcomponent within the PaymentGrp component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40221,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentBusinessCenters(40944) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40944,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4106,\n        name: 'PaymentScheduleFixingDateBusinessCenterGrp',\n        abbrName: 'FixngBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentScheduleFixingDateBusinessCenterGrp is a repeating subcomponent within the PaymentScheduleGrp component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40854,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentScheduleFixingDateBusinessCenters(40944) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40977,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4107,\n        name: 'PaymentScheduleInterimExchangeDateBusinessCenterGrp',\n        abbrName: 'IntrmExchDtBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentScheduleInterimExchangeDateBusinessCenterGrp is a repeating subcomponent within the PaymentScheduleGrp component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40863,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentScheduleInterimExchangeDateBusinessCenters(40945) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40945,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4108,\n        name: 'PaymentStreamNonDeliverableFixingDatesBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentStreamNonDeliverableFixingDatesBusinessCenterGrp is a repeating subcomponent within the PaymentStreamNonDeliverableSettlTerms component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40819,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentStreamNonDeliverableFixingDatesBusinessCenters(40946) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40946,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4109,\n        name: 'PaymentStreamPaymentDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentStreamPaymentDateBusinessCenterGrp is a repeating subcomponent within the PaymentStreamPaymentDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40752,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentStreamPaymentDateBusinessCenters(40947) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40947,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4110,\n        name: 'PaymentStreamResetDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentStreamResetDateBusinessCenterGrp is a repeating subcomponent within the PaymentStreamResetDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40763,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentStreamResetDateBusinessCenters(40948) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40948,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4111,\n        name: 'PaymentStreamInitialFixingDateBusinessCenterGrp',\n        abbrName: 'InitBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentStreamInitialFixingDateBusinessCenterGrp is a repeating subcomponent within the PaymentStreamResetDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40769,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentStreamInitialFixindDateBusinessCenters(40949) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40949,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4112,\n        name: 'PaymentStreamFixingDateBusinessCenterGrp',\n        abbrName: 'FixngBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'PaymentStreamFixingDateBusinessCenterGrp is a repeating subcomponent within the PaymentStreamResetDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40776,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoPaymentStreamFixingDateBusinessCenters(40950) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40950,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4113,\n        name: 'ProtectionTermEventNewsSourceGrp',\n        abbrName: 'NewsSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'ProtectionTermEventNewsSourceGrp is a repeating subcomponent within the ProtectionTermGrp component. It is used to specify the particular newspapers or electronic news services and sources that may publish relevant information used in the determination of whether or not a credit event has occurred.',\n        fieldRef: [\n            {\n                id: 40189,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProtectionTermEventNewsSources(40951) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40951,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4114,\n        name: 'ProvisionCashSettlPaymentDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'ProvisionCashSettlPaymentDateBusinessCenterGrp is a repeating subcomponent within the ProvisionCashSettlPaymentDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40164,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisionCashSettlPaymentDateBusinessCenters(40952) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40952,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4115,\n        name: 'ProvisionCashSettlValueDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'ProvisionCashSettlValueDateBusinessCenterGrp is a repeating subcomponent within the ProvisionCashSettlValueDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40117,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisionCashSettlValueDatBusinessCenters(40953) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40953,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4116,\n        name: 'ProvisionOptionExerciseBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'ProvisionOptionExerciseBusinessCenterGrp is a repeating subcomponent within the ProvisionOptionExerciseDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40124,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisionOptionExerciseBusinessCenters(40954) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40954,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4117,\n        name: 'ProvisionOptionExpirationDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'ProvisionOptionExpirationDateBusinessCenterGrp is a repeating subcomponent within the ProvisionOptionExpirationDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40147,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisionOptionExpirationDateBusinessCenters(40955) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40955,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4118,\n        name: 'ProvisionOptionRelevantUnderlyingDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'ProvisionOptionRelevantUnderlyingDateBusinessCenterGrp is a repeating subcomponent within the ProvisionOptionRelevantUnderlyingDate component. It is used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40157,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisionOptionRelevantUnderlyingDateBusinessCenters(40956) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40956,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4119,\n        name: 'ProvisionDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'ProvisionDateBusinessCenterGrp is a repeating subcomponent within the ProvisionGrp component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40094,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoProvisionDateBusinessCenters(40957) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40957,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4120,\n        name: 'StreamCalculationPeriodBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'StreamCalculationPeriodBusinessCenterGrp is a repeating subcomponent within the StreamCalculationPeriodDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40074,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoStreamCalculationPeriodBusinessCenters(40958) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40958,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4121,\n        name: 'StreamFirstPeriodStartDateBusinessCenterGrp',\n        abbrName: 'FirstStartDtBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'StreamFirstPeriodStartDateBusinessCenterGrp is a repeating subcomponent within the StreamCalculationPeriodDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40077,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoStreamFirstPeriodStartDateBusinessCenters(40959) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40959,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4122,\n        name: 'StreamEffectiveDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        updated: 'FIX.Latest',\n        updatedEP: '271',\n        category: 'Common',\n        description:\n            'StreamEffectiveDateBusinessCenterGrp is a repeating subcomponent of the StreamEffectiveDate component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 40909,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description: 'Required if NoStreamEffectiveDateBusinessCenters(40960) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40960,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4123,\n        name: 'StreamTerminationDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'StreamTerminationDateBusinessCenterGrp is a repeating subcomponent within the StreamTerminationDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in the Instrument component.',\n        fieldRef: [\n            {\n                id: 40067,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoStreamTerminationDateBusinessCenters(40961) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40961,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4124,\n        name: 'UnderlyingBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingBusinessCenterGrp is a repeating subcomponent within the UnderlyingDateAdjustment component. It is used to specify the set of business centers whose calendars drive the date adjustment. The business centers defined here apply to all adjustable dates in the instrument unless specifically overridden.',\n        fieldRef: [\n            {\n                id: 40963,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingBusinessCenters(40962) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40962,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4126,\n        name: 'UnderlyingPaymentScheduleFixingDateBusinessCenterGrp',\n        abbrName: 'FixngBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentScheduleFixingDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingPaymentScheduleGrp component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in the UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40690,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingPaymentScheduleFixingDateBusinessCenters(40966) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40966,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4127,\n        name: 'UnderlyingPaymentScheduleInterimExchangeDateBusinessCenterGrp',\n        abbrName: 'IntrmExchDtBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentScheduleInterimExchangeDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingPaymentScheduleGrp component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in the UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40699,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingPaymentScheduleInterimExchangeDateBusinessCenters(40967) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40967,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4128,\n        name: 'UnderlyingPaymentStreamNonDeliverableFixingDatesBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamNonDeliverableFixingDatesBusinessCenterGrp is a repeating subcomponent within the UnderlyingPaymentStreamNonDeliverableSettlTerms component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in the UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40650,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                updated: 'FIX.Latest',\n                updatedEP: '271',\n                description: 'Required if NoUnderlyingPaymentStreamNonDeliverableFixingDatesBizCenters(40968) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40968,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4129,\n        name: 'UnderlyingPaymentStreamPaymentDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamPaymentDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingPaymentStreamPaymentDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in the UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40582,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingPaymentStreamPaymentDateBusinessCenters(40969) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40969,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4130,\n        name: 'UnderlyingPaymentStreamResetDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamResetDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingPaymentStreamResetDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40594,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingPaymentStreamResetDateBusinessCenters(40970) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40970,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4131,\n        name: 'UnderlyingPaymentStreamInitialFixingDateBusinessCenterGrp',\n        abbrName: 'InitBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamInitialFixingDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingPaymentStreamResetDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40600,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingPaymentStreamInitialFixingDateBusinessCenters(40971) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40971,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4132,\n        name: 'UnderlyingPaymentStreamFixingDateBusinessCenterGrp',\n        abbrName: 'FixngBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamFixingDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingPaymentStreamResetDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40607,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingPaymentStreamFixingDateBusinessCenters(40972) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40972,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4133,\n        name: 'UnderlyingStreamCalculationPeriodBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingStreamCalculationPeriodBusinessCenterGrp is a repeating subcomponent within the UnderlyingStreamCalculationPeriodDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40557,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingStreamCalculationPeriodBusinessCenters(40973) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40973,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4134,\n        name: 'UnderlyingStreamFirstPeriodStartDateBusinessCenterGrp',\n        abbrName: 'FirstStartDtBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingStreamFirstPeriodStartDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingStreamCalculationPeriodDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40560,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyginstreamFirstPeriodStartDateBusinessCenters(40974) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40974,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4135,\n        name: 'UnderlyingStreamEffectiveDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingStreamEffectiveDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingStreamEffectiveDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40059,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingStreamEffectiveDateBusinessCenters(40975) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40975,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4136,\n        name: 'UnderlyingStreamTerminationDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '161',\n        category: 'Common',\n        description:\n            'UnderlyingStreamTerminationDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingStreamTerminationDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component within the UnderlyingInstrument component.',\n        fieldRef: [\n            {\n                id: 40550,\n                added: 'FIX.5.0SP2',\n                addedEP: '161',\n                description: 'Required if NoUnderlyingStreamTerminationDateBusinessCenters(40976) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 40976,\n            added: 'FIX.5.0SP2',\n            addedEP: '161',\n            description: '',\n        },\n    },\n    {\n        id: 4142,\n        name: 'ComplexEventAveragingObservationGrp',\n        abbrName: 'AvgngObsvtn',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The ComplexEventAveragingObservationGrp is an optional subcomponent of ComplexEventPeriodGrp for specifying the weight of each of the dated observations.',\n        fieldRef: [\n            {\n                id: 40995,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoComplexEventAveragingObservations(40994) > 0.',\n            },\n            {\n                id: 40996,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 40994,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4143,\n        name: 'ComplexEventCreditEventGrp',\n        abbrName: 'CrdEvnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The ComplexEventCreditEventGrp is a repeating component within the ComplexEventGrp component used to report applicable option credit events.',\n        fieldRef: [\n            {\n                id: 40998,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoComplexEventCreditEvents(40996) > 0.',\n            },\n            {\n                id: 40999,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41000,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41001,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when ComplexEventCreditEventUnit(41002) is specified.',\n            },\n            {\n                id: 41002,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when ComplexEventCreditEventPeriod(41001) is specified.',\n            },\n            {\n                id: 41003,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41004,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4144,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 40997,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4144,\n        name: 'ComplexEventCreditEventQualifierGrp',\n        abbrName: 'EvntQual',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The ComplexEventCreditEventQualifierGrp is a repeating component within the ComplexEventCreditEventGrp component used to specify qualifying attributes to an event.',\n        fieldRef: [\n            {\n                id: 41006,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoComplexEventCreditEventQualifiers(41005) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41005,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4145,\n        name: 'ComplexEventPeriodDateGrp',\n        abbrName: 'Dt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The ComplexEventPeriodDateGrp is a subcomponent of ComplexEventPeriodGrp for specifying fixed period dates and times for an Asian or Strike Schedule option or trigger dates for a Barrier or Knock option.',\n        fieldRef: [\n            {\n                id: 41008,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoComplexEventPeriodDateTimes(41007) > 0.',\n            },\n            {\n                id: 41009,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41007,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4146,\n        name: 'ComplexEventPeriodGrp',\n        abbrName: 'Period',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The ComplexEventPeriodGrp is a subcomponent of ComplexEvents for specifying the periods for an Asian, Barrier, Knock or Strike Schedule option feature.',\n        fieldRef: [\n            {\n                id: 41011,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoComplexEventPeriods(41010) > 0.',\n            },\n            {\n                id: 41012,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4151,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4145,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4142,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41010,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4147,\n        name: 'ComplexEventRateSourceGrp',\n        abbrName: 'RtSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The ComplexEventRateSourceGrp is a subcomponent of ComplexEvents for specifying primary and secondary rate sources.',\n        fieldRef: [\n            {\n                id: 41014,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoComplexEventRateSources(41013) > 0.',\n            },\n            {\n                id: 41015,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoComplexEventRateSources(41013) > 0.',\n            },\n            {\n                id: 41016,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when ComplexEventRateSource(41014) = 99 (Other).',\n            },\n            {\n                id: 41017,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41013,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4148,\n        name: 'ComplexEventDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The ComplexEventDateBusinessCenterGrp is a repeating subcomponent of the ComplexEventRelativeDate component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 41019,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoComplexEventDateBuisinessCenters(41018) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41018,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4150,\n        name: 'ComplexEventCreditEventSourceGrp',\n        abbrName: 'EvntSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The ComplexEventCreditEventSourceGrp is a repeating subcomponent of the ComplexEvents component used to specify the particular newspapers or electronic news services that may publish relevant information used in the determination of whether or not a credit event has occurred.',\n        fieldRef: [\n            {\n                id: 41030,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoComplexEventCreditEventSources(41029) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41029,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4151,\n        name: 'ComplexEventScheduleGrp',\n        abbrName: 'Sched',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The ComplexEventScheduleGrp is a subcomponent of ComplexEventPeriodGrp for specifying a periodic schedule for an Asian, Barrier or Strike Schedule option feature.',\n        fieldRef: [\n            {\n                id: 41032,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoComplexEventSchedules(41031) > 0.',\n            },\n            {\n                id: 41033,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41034,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when ComplexEventScheduleFrequencyUnit(41035) is specified.',\n            },\n            {\n                id: 41035,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when ComplexEventScheduleFrequencPeriod(41034) is specified.',\n            },\n            {\n                id: 41036,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the date roll convention defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the schedule.',\n            },\n        ],\n        numInGroup: {\n            id: 41031,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4152,\n        name: 'DeliveryScheduleGrp',\n        abbrName: 'DlvrySched',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The DeliveryScheduleGrp is a repeating subcomponent of the Stream component used to detail step schedules associated with a delivery stream.\\n\\nNote: Holiday schedule is standard for the country and time zone and need not be specified.',\n        fieldRef: [\n            {\n                id: 41038,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoDeliverySchedules(41037) > 0.',\n            },\n            {\n                id: 41039,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41040,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41041,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41042,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41043,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41044,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41045,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41046,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when DeliveryScheduleNegativeTolerance(41043) or DeliverySchedulePositiveTolerance(41044) is specified.',\n            },\n            {\n                id: 41047,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41048,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41049,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41050,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4153,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41037,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4153,\n        name: 'DeliveryScheduleSettlDayGrp',\n        abbrName: 'Day',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The DeliveryScheduleSettlDayGrp is a repeating subcomponent of the DeliveryScheduleGrp component used to detail commodity delivery days.',\n        fieldRef: [\n            {\n                id: 41052,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoDeliveryScheduleSettlDays(41051) > 0.',\n            },\n            {\n                id: 41053,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4154,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41051,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4154,\n        name: 'DeliveryScheduleSettlTimeGrp',\n        abbrName: 'Tm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The DeliveryScheduleSettlTimeGrp is a repeating subcomponent of the DeliveryScheduleSettlDayGrp component used to detail commodity delivery time period.',\n        fieldRef: [\n            {\n                id: 41055,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoDeliveryScheduleSettlTimes(41054) > 0.',\n            },\n            {\n                id: 41056,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoDeliveryScheduleSettlTimes(41054) > 0.',\n            },\n            {\n                id: 41057,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'May be defaulted to market convention or bilaterally agreed if not specified.',\n            },\n        ],\n        numInGroup: {\n            id: 41054,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4156,\n        name: 'DeliveryStreamCycleGrp',\n        abbrName: 'Cycle',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The DeliveryStreamCycleGrp is a repeating subcomponent of the DeliveryStream component used to detail delivery cycles during which the oil product will be transported in the pipeline.',\n        fieldRef: [\n            {\n                id: 41082,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoDeliveryStreamCycles(41081) > 0.',\n            },\n            {\n                id: 41083,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedDeliveryStreamCycleDesc(41084) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41084,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the DeliveryStreamCycleDesc(41082) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        numInGroup: {\n            id: 41081,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4157,\n        name: 'DeliveryStreamCommoditySourceGrp',\n        abbrName: 'CmdtySrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The DeliveryStreamCommoditySourceGrp is a repeating subcomponent of the DeliveryStream component used to detail the origins or sources of the commodity.',\n        fieldRef: [\n            {\n                id: 41086,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoDeliveryStreamCommoditySources(41085) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41085,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4159,\n        name: 'MarketDisruptionEventGrp',\n        abbrName: 'Evnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The MarketDisruptionEventGrp is a repeating subcomponent of the MarketDisruption component used to specify the market disruption events.',\n        fieldRef: [\n            {\n                id: 41093,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoMarketDisruptionEvents(41092) > 0.',\n            },\n            {\n                id: 40991,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 41092,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4160,\n        name: 'MarketDisruptionFallbackGrp',\n        abbrName: 'Fallbck',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The MarketDisruptionFallbackGrp is a repeating subcomponent of the MarketDisruption component used to specify the market disruption fallback provisions.',\n        fieldRef: [\n            {\n                id: 41095,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Required if NoMarketDisruptionFallbacks(41094) > 0.\\n\\n\\n                        The sequence of entries specifies the order in which the fallback provisions should be applied.',\n            },\n            {\n                id: 40992,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 41094,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4161,\n        name: 'MarketDisruptionFallbackReferencePriceGrp',\n        abbrName: 'FallbckRefPx',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The MarketDisruptionFallbackReferencePriceGrp is a repeating subcomponent of the MarketDisruption component used to specify the fallback reference price and underlying security provisions',\n        fieldRef: [\n            {\n                id: 41097,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoMarketDisruptionFallbackReferencePrices(41096) > 0.',\n            },\n            {\n                id: 41098,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when MarketDisruptionFallbackUnderlyerSecurityIDSource(41099) is specified.',\n            },\n            {\n                id: 41099,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when MarketDisruptionFallbackUnderlierSecurityID(41098) is specified.',\n            },\n            {\n                id: 41100,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41101,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedMarketDisruptionFallbackUnderlierSecurityDesc(41102) field is specified and must immediately precede it',\n            },\n            {\n                id: 41102,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the MarketDisruptionFallbackUnderlierSecurityDesc(41100) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 41103,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41104,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41105,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41096,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4163,\n        name: 'OptionExerciseBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The OptionExerciseBusinessCenterGrp is a repeating subcomponent of the OptionExerciseDates component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 41117,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoOptionExerciseBusinessCenters(41116) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41116,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4165,\n        name: 'OptionExerciseDateGrp',\n        abbrName: 'Dt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The OptionExerciseDateGrp is a repeating subcomponent of the OptionExerciseDates component used to specify fixed dates for exercise.',\n        fieldRef: [\n            {\n                id: 41138,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoOptionExerciseDates(41137) > 0.',\n            },\n            {\n                id: 41139,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41137,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4166,\n        name: 'OptionExerciseExpirationDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The OptionExerciseExpirationDateBusinessCenterGrp is a repeating subcomponent of the OptionExerciseExpiration component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 41141,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoOptionExerciseExpirationDateBusinessCenters(41140) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41140,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4168,\n        name: 'OptionExerciseExpirationDateGrp',\n        abbrName: 'Dt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The OptionExerciseExpirationDateGrp is a repeating subcomponent of the OptionExerciseExpiration component used to specify fixed dates for expiration.',\n        fieldRef: [\n            {\n                id: 41153,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoOptionExpirationDates(41152) > 0.',\n            },\n            {\n                id: 41154,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41152,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4169,\n        name: 'PaymentScheduleFixingDayGrp',\n        abbrName: 'FixngDay',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The PaymentScheduleFixingDayGrp is a repeating subcomponent of the PaymentScheduleGrp component used to detail periodic fixing days.\\n\\nIf the fixing days are not specified, then every day of the week will be a fixing day.',\n        fieldRef: [\n            {\n                id: 41162,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoPaymentScheduleFixingDays(41161) > 0.',\n            },\n            {\n                id: 41163,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41161,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4170,\n        name: 'PaymentStreamPricingBusinessCenterGrp',\n        abbrName: 'PxngBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The PaymentStreamPricingBusinessCenterGrp is a repeating subcomponent of the PaymentStreamFloatingRate component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 41193,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoPaymentStreamPricingBusinessCenters(41192) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41192,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4171,\n        name: 'PaymentStreamPaymentDateGrp',\n        abbrName: 'PmtDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The PaymentStreamPaymentDateGrp is a repeating subcomponent of the PaymentStreamPaymentDates component used to detail fixed dates for swap stream payments.',\n        fieldRef: [\n            {\n                id: 41221,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoPaymentStreamPaymentDates(41220) > 0.',\n            },\n            {\n                id: 41222,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41220,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4172,\n        name: 'PaymentStreamPricingDateGrp',\n        abbrName: 'PxngDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The PaymentStreamPricingDateGrp is a repeating subcomponent of the PaymentStreamFloatingRate component used to detail fixed pricing dates.',\n        fieldRef: [\n            {\n                id: 41225,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoPaymentStreamPricingDates(41224) > 0.',\n            },\n            {\n                id: 41226,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41224,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4173,\n        name: 'PaymentStreamPricingDayGrp',\n        abbrName: 'PxngDay',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The PaymentStreamPricingDayGrp is a repeating subcomponent of the PaymentStreamFloatingRate component used to detail periodic pricing days.\\n\\nIf the fixing days are not specified, then every day of the week will be a fixing day.',\n        fieldRef: [\n            {\n                id: 41228,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoPaymentStreamPricingDays(41227) > 0.',\n            },\n            {\n                id: 41229,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41227,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4174,\n        name: 'PricingDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'PricingDateBusinessCenterGrp is a repeating subcomponent of the PricingDateTime component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 41231,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoPricingDateBusinessCenters(41230) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41230,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4176,\n        name: 'StreamAssetAttributeGrp',\n        abbrName: 'AssetAttrb',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The StreamAssetAttributeGrp is a repeating subcomponent of the StreamCommodity component used to detail commodity attributes, quality standards and reject limits.',\n        fieldRef: [\n            {\n                id: 41238,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoStreamAssetAttributes(41237) > 0.',\n            },\n            {\n                id: 41239,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41240,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41237,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4177,\n        name: 'StreamCalculationPeriodDateGrp',\n        abbrName: 'CalcDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The StreamCalculationPeriodDateGrp is a repeating subcomponent of the StreamCalculationPeriodDates component used to detail fixed dates for the swap stream.',\n        fieldRef: [\n            {\n                id: 41242,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoStreamCalculationPeriodDates(41241) > 0.',\n            },\n            {\n                id: 41243,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41241,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4178,\n        name: 'StreamCommoditySettlBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'StreamCommoditySettlBusinessCenterGrp is a repeating subcomponent of the StreamCommodity component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 41250,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoStreamCommoditySettlBusinessCenters(41249) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41249,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4180,\n        name: 'StreamCommodityAltIDGrp',\n        abbrName: 'AID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'StreamCommodityAltIDGrp is a subcomponent of the StreamCommodity component used to specify alternate identifiers.',\n        fieldRef: [\n            {\n                id: 41278,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoStreamCommodityAltIDs(41277) > 0.',\n            },\n            {\n                id: 41279,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoStreamCommodityAltIDs(41277) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41277,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4181,\n        name: 'StreamCommodityDataSourceGrp',\n        abbrName: 'DataSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'StreamCommodityDataSourceGrp is a subcomponent of the StreamCommodity component used to specify sources of data, e.g. weather stations. The order of entry determines priority \u2013 first is the main source, second is fallback, third is second fallback.',\n        fieldRef: [\n            {\n                id: 41281,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoStreamCommodityDataSources(41280) > 0.',\n            },\n            {\n                id: 41282,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoStreamCommodityDataSources(41280) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41280,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4182,\n        name: 'StreamCommoditySettlDayGrp',\n        abbrName: 'Day',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The StreamCommoditySettlDayGrp is a repeating subcomponent of the StreamCommoditySettlPeriodGrp component used to define the settlement days associated with the commodity contract.',\n        fieldRef: [\n            {\n                id: 41284,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoStreamCommoditySettlDays(41283) > 0.',\n            },\n            {\n                id: 41285,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4183,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41283,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4183,\n        name: 'StreamCommoditySettlTimeGrp',\n        abbrName: 'Tm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The StreamCommoditySettlTimeGrp is a repeating subcomponent of the StreamCommoditySettlDayGrp component used to define the settlement time periods associated with the commodity contract.',\n        fieldRef: [\n            {\n                id: 41287,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoStreamCommoditySettlTimes(41286) > 0.',\n            },\n            {\n                id: 41288,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoStreamCommoditySettlTimes(41286) > 0.',\n            },\n            {\n                id: 41588,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'May be defaulted to market convention or bilaterally agreed if not specified.',\n            },\n        ],\n        numInGroup: {\n            id: 41286,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4184,\n        name: 'StreamCommoditySettlPeriodGrp',\n        abbrName: 'SettlPeriod',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The StreamCommoditySettlPeriodGrp is a repeating subcomponent of the StreamCommodity component used to define the settlement period details associated with the commodity contract.',\n        fieldRef: [\n            {\n                id: 41290,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoStreamCommoditySettlPeriods(41289) > 0.',\n            },\n            {\n                id: 41291,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41292,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41293,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41294,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41295,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when StreamCommoditySettlFrequencyUnit(41296) is specified.',\n            },\n            {\n                id: 41296,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when StreamCommoditySettlFrequencyPeriod(41295) is specified.',\n            },\n            {\n                id: 41297,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41298,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41299,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41300,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41301,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41302,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4182,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41289,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4185,\n        name: 'MandatoryClearingJurisdictionGrp',\n        abbrName: 'MandClrJrsdctn',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'MandatoryClearingJurisdictionGrp is a repeating component of TradeCaptureReport used to specify the set of jurisdictions to which mandatory clearing applies.',\n        fieldRef: [\n            {\n                id: 41313,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoNoMandatoryClearingJurisdictions(41312) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41312,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4186,\n        name: 'LegAdditionalTermBondRefGrp',\n        abbrName: 'BondRef',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegAdditionalTermBondRefGrp is a repeating group subcomponent of the LegAdditionalTermGrp component used to identify an underlying reference bond for a swap.',\n        fieldRef: [\n            {\n                id: 41317,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegAdditionalTermBondRefs(41316) > 0.',\n            },\n            {\n                id: 41318,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegAdditionalTermBondSecurityID(41317) is specified.',\n            },\n            {\n                id: 41319,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41320,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedLegAdditionalTermBondDesc(41321) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41321,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegAdditionalTermBondDesc(41319) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 41322,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41323,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41324,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedLegAdditionalTermBondIssuer(41325) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41325,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegAdditionalTermBondIssuer(41323) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 41326,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41327,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41328,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41329,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41330,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41331,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41332,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when LegAdditionalTermBondCouponFrequencyUnit(41333) is specified.',\n            },\n            {\n                id: 41333,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when LegAdditionalTermBondCouponFrequencyPeriod(41332) is specified.',\n            },\n            {\n                id: 41334,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41316,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4187,\n        name: 'LegAdditionalTermGrp',\n        abbrName: 'AddtnlTrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegAdditionalTermGrp is a repeating subcomponent of the InstrumentLeg component used to report additional contract terms.',\n        fieldRef: [\n            {\n                id: 41336,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegAdditionalTerms(41335) > 0.',\n            },\n            {\n                id: 41337,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4186,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41335,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4189,\n        name: 'LegCashSettlDealerGrp',\n        abbrName: 'Dlr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegCashSettlDealerGrp is a repeating subcomponent of the LegCashSettlTermGrp component used to specify the dealers from whom price quotations for the reference obligation are obtained for the purpose of cash settlement valuation.',\n        fieldRef: [\n            {\n                id: 41343,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegCashSettlDealers(41342) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41342,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4190,\n        name: 'LegCashSettlTermGrp',\n        abbrName: 'CashSettlTrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegCashSettlTermGrp is a repeating component within the InstrumentLeg component used to report cash settlement terms.\\n\\nUsage of LegCashSettlTermGrp must either include a known LegCashSettlAmount(41357) or provide the cash settlement term parameters needed to derive the cash settlement amount. LegCashSettlTermXID(41362) is provided for cross-referencing from an instance of the UnderlyingInstrument component through the UnderlyingSettlTermXIDRef(41315) field.',\n        fieldRef: [\n            {\n                id: 41345,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegCashSettlTerms(41344) > 0.',\n            },\n            {\n                id: 41346,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41347,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41348,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41349,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41350,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41351,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41352,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41353,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41354,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41355,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42308,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42309,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 41356,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41357,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41358,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41359,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41360,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41361,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41362,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4189,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4328,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 41344,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4191,\n        name: 'LegComplexEventAveragingObservationGrp',\n        abbrName: 'AvgngObsvtn',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegComplexEventAveragingObservationGrp is an optional subcomponent of LegComplexEventPeriodGrp for specifying the weight of each of the dated observations.',\n        fieldRef: [\n            {\n                id: 41364,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventAveragingObservations(41363) > 0.',\n            },\n            {\n                id: 41365,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41363,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4192,\n        name: 'LegComplexEventCreditEventGrp',\n        abbrName: 'CrdEvnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegComplexEventCreditEventGrp is a repeating component within the LegComplexEventGrp component used to report applicable option credit events.',\n        fieldRef: [\n            {\n                id: 41367,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventCreditEvents(41366) > 0.',\n            },\n            {\n                id: 41368,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41369,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41370,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegComplexEventCreditEventUnit(41371) is specified.',\n            },\n            {\n                id: 41371,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegComplexEventCreditEventPeriod(41370) is specified.',\n            },\n            {\n                id: 41372,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41373,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4193,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41366,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4193,\n        name: 'LegComplexEventCreditEventQualifierGrp',\n        abbrName: 'Qual',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegComplexEventCreditEventQualifierGrp is a repeating component within the LegComplexEventCreditEventGrp component used to specify qualifying attributes to an event.',\n        fieldRef: [\n            {\n                id: 41375,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventCreditEventQualifiers(41374) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41374,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4194,\n        name: 'LegComplexEventPeriodDateGrp',\n        abbrName: 'Dt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegComplexEventPeriodDateGrp is a subcomponent of LegComplexEventPeriodGrp for specifying fixed period dates and times for an Asian or Strike Schedule option or trigger dates for a Barrier or Knock option.',\n        fieldRef: [\n            {\n                id: 41377,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventPeriodDateTimes(41376) > 0.',\n            },\n            {\n                id: 41378,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41376,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4195,\n        name: 'LegComplexEventPeriodGrp',\n        abbrName: 'Period',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegComplexEventPeriodGrp is a subcomponent of LegComplexEvents for specifying the periods for an Asian, Barrier, Knock or Strike Schedule option feature.',\n        fieldRef: [\n            {\n                id: 41380,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventPeriods(41379) > 0.',\n            },\n            {\n                id: 41381,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4200,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4194,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4191,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41379,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4196,\n        name: 'LegComplexEventRateSourceGrp',\n        abbrName: 'RtSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegComplexEventRateSourceGrp is a subcomponent of LegComplexEvents for specifying primary and secondary rate sources.',\n        fieldRef: [\n            {\n                id: 41383,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventRateSources(41382) > 0.',\n            },\n            {\n                id: 41384,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventRateSources(41382) > 0.',\n            },\n            {\n                id: 41385,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegComplexEventRateSource(41383) = 99 (Other).',\n            },\n            {\n                id: 41386,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41382,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4197,\n        name: 'LegComplexEventDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegComplexEventDateBusinessCenterGrp is a repeating subcomponent of the LegComplexEventRelativeDate component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 41388,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventDateBusinessCenters(41387) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41387,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4199,\n        name: 'LegComplexEventCreditEventSourceGrp',\n        abbrName: 'EvntSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegComplexEventCreditEventSourceGrp is a repeating subcomponent of the LegComplexEvents component used to specify the particular newspapers or electronic news services that may publish relevant information used in the determination of whether or not a credit event has occurred.',\n        fieldRef: [\n            {\n                id: 41399,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventCreditEventSources(41398) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41398,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4200,\n        name: 'LegComplexEventScheduleGrp',\n        abbrName: 'Sched',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegComplexEventScheduleGrp is a subcomponent of LegComplexEventPeriodGrp for specifying a periodic schedule for an Asian, Barrier or Strike Schedule option feature.',\n        fieldRef: [\n            {\n                id: 41401,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegComplexEventScedules(41400) > 0.',\n            },\n            {\n                id: 41402,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41403,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegComplexEventScheduleFrequencyUnit(41404) is specified.',\n            },\n            {\n                id: 41404,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegComplexEventScheduleFrequencyPeriod(41403) is specified.',\n            },\n            {\n                id: 41405,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the date roll convention defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of the option expiration dates and times.',\n            },\n        ],\n        numInGroup: {\n            id: 41400,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4203,\n        name: 'LegDeliveryScheduleGrp',\n        abbrName: 'DlvrySched',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegDeliveryScheduleGrp is a repeating subcomponent of the LegStream component used to detail step schedules associated with a delivery stream.\\n\\nNote: Holiday schedule is standard for the country and time zone and need not be specified.',\n        fieldRef: [\n            {\n                id: 41409,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegDeliverySchedules(41408) > 0.',\n            },\n            {\n                id: 41410,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41411,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41412,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41413,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41414,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41415,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41416,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41417,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when LegDeliveryScheduleNegativeTolerance(41414) or LegDeliverySchedulePositiveTolerance(41415) is specified.',\n            },\n            {\n                id: 41418,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41419,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41420,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41421,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4204,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41408,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4204,\n        name: 'LegDeliveryScheduleSettlDayGrp',\n        abbrName: 'Day',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegDeliveryScheduleSettlDayGrp is a repeating subcomponent of the LegDeliveryScheduleGrp component used to detail commodity delivery days.',\n        fieldRef: [\n            {\n                id: 41423,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegDeliveryScheduleSettlDays(41422) > 0.',\n            },\n            {\n                id: 41424,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4205,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41422,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4205,\n        name: 'LegDeliveryScheduleSettlTimeGrp',\n        abbrName: 'Tm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegDeliveryScheduleSettlTimeGrp is a repeating subcomponent of the LegDeliveryScheduleSettlDayGrp component used to detail commodity delivery time periods.',\n        fieldRef: [\n            {\n                id: 41426,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegDeliveryScheduleSettlTimes(41425) > 0.',\n            },\n            {\n                id: 41427,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegDeliveryScheduleSettlTimes(41425) > 0.',\n            },\n            {\n                id: 41428,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'May be defaulted to market convention or bilaterally agreed if not specified.',\n            },\n        ],\n        numInGroup: {\n            id: 41425,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4207,\n        name: 'LegStreamAssetAttributeGrp',\n        abbrName: 'AssetAttrb',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegStreamAssetAttributeGrp is a repeating subcomponent of the LegStreamCommodity component used to detail commodity attributes, quality standards and reject limits.',\n        fieldRef: [\n            {\n                id: 41453,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegStreamAssetAttributes(41452) > 0.',\n            },\n            {\n                id: 41454,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41455,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41452,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4208,\n        name: 'LegDeliveryStreamCycleGrp',\n        abbrName: 'Cycle',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegDeliveryStreamCycleGrp is a repeating subcomponent of the LegDeliveryStream component used to detail delivery cycles during which the oil product will be transported in the pipeline.',\n        fieldRef: [\n            {\n                id: 41457,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegDeliveryStreamCycles(41456) > 0.',\n            },\n            {\n                id: 41458,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedLegDeliveryStreamCycleDesc(41459) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41459,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegDeliveryStreamCycleDesc(41457) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        numInGroup: {\n            id: 41456,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4209,\n        name: 'LegDeliveryStreamCommoditySourceGrp',\n        abbrName: 'CmdtySrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegDeliveryStreamCommoditySourceGrp is a repeating subcomponent of the LegDeliveryStream component used to detail the origins or sources of the commodity.',\n        fieldRef: [\n            {\n                id: 41461,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegDeliveryStreamCommoditySources(41460) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41460,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4211,\n        name: 'LegMarketDisruptionEventGrp',\n        abbrName: 'Evnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegMarketDisruptionEventGrp is a repeating subcomponent of the LegMarketDisruption component used to specify the market disruption events.',\n        fieldRef: [\n            {\n                id: 41468,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegMarketDisruptionEvents(41467) > 0.',\n            },\n            {\n                id: 40223,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 41467,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4212,\n        name: 'LegMarketDisruptionFallbackGrp',\n        abbrName: 'Fallbck',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegMarketDisruptionFallbackGrp is a repeating subcomponent of the LegMarketDisruption component used to specify the market disruption fallback provisions.',\n        fieldRef: [\n            {\n                id: 41470,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Required if NoLegMarketDisruptionFallbacks(41469) > 0.\\n\\n\\n                        The sequence of entries specifies the order in which the fallback provisions should be applied.',\n            },\n            {\n                id: 40990,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 41469,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4213,\n        name: 'LegMarketDisruptionFallbackReferencePriceGrp',\n        abbrName: 'FallbckRefPx',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegMarketDisruptionFallbackReferencePriceGrp is a repeating subcomponent of the LegMarketDisruption component used to specify the fallback reference price and underlying security provisions',\n        fieldRef: [\n            {\n                id: 41472,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegMarketDisruptionFallbackReferencePrices(41471) > 0.',\n            },\n            {\n                id: 41473,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when LegMarketDisruptionFallbackUnderlyerSecurityIDSource(41474) is specified.',\n            },\n            {\n                id: 41474,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when LegMarketDisruptionFallbackUnderlierSecurityID(41473) is specified.',\n            },\n            {\n                id: 41475,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41476,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedLegMarketDisruptionFallbackUnderlierSecurityDesc(41477) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41477,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the LegMarketDisruptionFallbackUnderlierSecurityDesc(41475) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 41478,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41479,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41480,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41471,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4215,\n        name: 'LegOptionExerciseBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegOptionExerciseBusinessCenterGrp is a repeating subcomponent of the LegOptionExerciseDates component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 41492,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegOptionExerciseBusinessCenters(41491) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41491,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4217,\n        name: 'LegOptionExerciseDateGrp',\n        abbrName: 'Dt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegOptionExerciseDateGrp is a repeating subcomponent of the LegOptionExerciseDates component used to specify fixed dates for exercise.',\n        fieldRef: [\n            {\n                id: 41513,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegOptionExerciseDates(41512) > 0.',\n            },\n            {\n                id: 41514,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41512,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4218,\n        name: 'LegOptionExerciseExpirationDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegOptionExerciseExpirationDateBusinessCenterGrp is a repeating subcomponent of the LegOptionExerciseExpiration component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 41516,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegOptionExerciseExpirationDateBusinessCenters(41515) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41515,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4220,\n        name: 'LegOptionExerciseExpirationDateGrp',\n        abbrName: 'Dt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegOptionExerciseExpirationDateGrp is a repeating subcomponent of the LegOptionExerciseExpiration component used to specify fixed dates for expiration.',\n        fieldRef: [\n            {\n                id: 41528,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegOptionExerciseExpirationDates(41527) > 0.',\n            },\n            {\n                id: 41529,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41527,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4221,\n        name: 'LegPaymentScheduleFixingDayGrp',\n        abbrName: 'FixngDay',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegPaymentScheduleFixingDayGrp is a repeating subcomponent of the LegPaymentScheduleGrp component used to detail periodic fixing days.\\n\\nIf the fixing days are not specified, then every day of the week will be a fixing day.',\n        fieldRef: [\n            {\n                id: 41531,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegPaymentScheduleFixingDays(41530) > 0.',\n            },\n            {\n                id: 41532,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41530,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4222,\n        name: 'LegPaymentStreamPricingBusinessCenterGrp',\n        abbrName: 'PxngBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegPaymentStreamPricingBusinessCenterGrp is a repeating subcomponent of the LegPaymentStreamFloatingRate component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 41562,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegPaymentStreamPricingBusinessCentrers(41561) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41561,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4223,\n        name: 'LegPaymentStreamPaymentDateGrp',\n        abbrName: 'PmtDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegPaymentStreamPaymentDateGrp is a repeating subcomponent of the LegPaymentStreamPaymentDates component used to detail fixed dates for swap stream payments.',\n        fieldRef: [\n            {\n                id: 41590,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegPaymentStreamPaymentDates(41589) > 0.',\n            },\n            {\n                id: 41591,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41589,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4224,\n        name: 'LegPaymentStreamPricingDateGrp',\n        abbrName: 'PxngDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegPaymentStreamPricingDateGrp is a repeating subcomponent of the LegPaymentStreamFloatingRate component used to detail fixed pricing dates.',\n        fieldRef: [\n            {\n                id: 41594,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoPaymentStreamPricingDates(41593) > 0.',\n            },\n            {\n                id: 41595,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41593,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4225,\n        name: 'LegPaymentStreamPricingDayGrp',\n        abbrName: 'PxngDay',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegPaymentStreamPricingDayGrp is a repeating subcomponent of the LegPaymentStreamFloatingRate component used to detail periodic pricing days.\\n\\nIf the fixing days are not specified, then every day of the week will be a fixing day.',\n        fieldRef: [\n            {\n                id: 41597,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegPaymentStreamPricingDays(41596) > 0.',\n            },\n            {\n                id: 41598,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41596,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4226,\n        name: 'LegPhysicalSettlTermGrp',\n        abbrName: 'PhysSettlTrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegPhysicalSettlTermGrp is a repeating component within the InstrumentLeg component used to report physical settlement terms.',\n        fieldRef: [\n            {\n                id: 41601,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41602,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41603,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41600,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4227,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegPhysicalSettlTerms(41599) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41599,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4227,\n        name: 'LegPhysicalSettlDeliverableObligationGrp',\n        abbrName: 'DlvrblOblig',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegPhysicalSettlDeliverableObligationGrp is a repeating component within the LegPhysicalSettlTermGrp component used to report credit default swap (CDS) physical settlement delivery obligations.',\n        fieldRef: [\n            {\n                id: 41605,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegPhysicalSettlDeliverableObligations(41604) > 0.',\n            },\n            {\n                id: 41606,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41604,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4228,\n        name: 'LegPricingDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegPricingDateBusinessCenterGrp is a repeating subcomponent of the LegPricingDateTime component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 41608,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegPricingDateBusinessCenters(41607) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41607,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4230,\n        name: 'LegProtectionTermEventNewsSourceGrp',\n        abbrName: 'NewsSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegProtectionTermEventNewsSourceGrp is a repeating subcomponent of the LegProtectionTermGrp component used to specify the particular newspapers or electronic news services that may publish relevant information used in the determination of whether or not a credit event has occurred.',\n        fieldRef: [\n            {\n                id: 41615,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegProtectionTermEventNewsSources(41614) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41614,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4231,\n        name: 'LegProtectionTermGrp',\n        abbrName: 'ProtctnTrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegProtectionTermGrp is a repeating component within the InstrumentLeg component used to report protection term details.',\n        fieldRef: [\n            {\n                id: 41618,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegProtectionTerms(41616) > 0.',\n            },\n            {\n                id: 41619,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41620,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41621,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41622,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41623,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41624,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41617,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4230,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4232,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4234,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41616,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4232,\n        name: 'LegProtectionTermEventGrp',\n        abbrName: 'Evnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegProtectionTermEventGrp is a repeating component within the LegProtectionTermGrp component used to report applicable CDS credit events.',\n        fieldRef: [\n            {\n                id: 41626,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegProtectionTermEvents(41625) > 0.',\n            },\n            {\n                id: 41627,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41628,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41629,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegProtectionTermEventUnit(41630).',\n            },\n            {\n                id: 41630,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when LegProtectionTermEventPeriod(41629).',\n            },\n            {\n                id: 41631,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41632,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4233,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41625,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4233,\n        name: 'LegProtectionTermEventQualifierGrp',\n        abbrName: 'Qual',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegProtectionTermEventQualifierGrp is a repeating component within the LegProtectionTermEventGrp component used to specify qualifying attributes to the event.',\n        fieldRef: [\n            {\n                id: 41634,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegProtectionTermEventQualifiers(41633) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41633,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4234,\n        name: 'LegProtectionTermObligationGrp',\n        abbrName: 'Oblig',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegProtectionTermObligationGrp is a repeating component within the LegProtectionTermGrp component used to report applicable credit default swap (CDS) obligations.',\n        fieldRef: [\n            {\n                id: 41636,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegProtectionTermObligations(41635) > 0.',\n            },\n            {\n                id: 41637,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41635,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4235,\n        name: 'LegStreamCalculationPeriodDateGrp',\n        abbrName: 'CalcDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegStreamCalculationPeriodDateGrp is a repeating subcomponent of the LegStreamCalculationPeriodDates component used to detail fixed dates for the swap stream.',\n        fieldRef: [\n            {\n                id: 41639,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegStreamCalculationPeriodDates(41638) > 0.',\n            },\n            {\n                id: 41640,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41638,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4236,\n        name: 'LegStreamCommoditySettlBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegStreamCommoditySettlBusinessCenterGrp is a repeating subcomponent of the LegStreamCommodity component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 41647,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegStreamCommoditySettlementBusinessCenters(41646) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41646,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4238,\n        name: 'LegStreamCommodityAltIDGrp',\n        abbrName: 'AID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegStreamCommodityAltIDGrp is a subcomponent of the LegStreamCommodity component used to specify alternate identifiers.',\n        fieldRef: [\n            {\n                id: 41675,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegStreamCommodityAltIDs(41674) > 0.',\n            },\n            {\n                id: 41676,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegStreamCommodityAltIDs(41674) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41674,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4239,\n        name: 'LegStreamCommodityDataSourceGrp',\n        abbrName: 'DataSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'LegStreamCommodityDataSourceGrp is a subcomponent of the LegStreamCommodity component used to specify sources of data, e.g. weather stations. The order of entry determines priority \u2013 first is the main source, second is fallback, third is second fallback.',\n        fieldRef: [\n            {\n                id: 41678,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegStreamCommodityDataSources(41677) > 0.',\n            },\n            {\n                id: 41679,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegStreamCommodityDataSources(41677) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41677,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4240,\n        name: 'LegStreamCommoditySettlDayGrp',\n        abbrName: 'Day',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegStreamCommoditySettlDayGrp is a repeating subcomponent of the LegStreamCommoditySettlPeriodGrp component used to define the settlement days associated with the commodity contract.',\n        fieldRef: [\n            {\n                id: 41681,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegStreamCommoditySettlementDays(41680) > 0.',\n            },\n            {\n                id: 41682,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4241,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41680,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4241,\n        name: 'LegStreamCommoditySettlTimeGrp',\n        abbrName: 'Tm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegStreamCommoditySettlTimeGrp is a repeating subcomponent of the LegStreamCommoditySettlDayGrp component used to define the settlement time periods associated with the commodity contract.',\n        fieldRef: [\n            {\n                id: 41684,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegStreamCommoditySettlTimes(41683) > 0.',\n            },\n            {\n                id: 41685,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegStreamCommoditySettlTimes(41683) > 0.',\n            },\n            {\n                id: 41935,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'May be defaulted to market convention or bilaterally agreed if not specified.',\n            },\n        ],\n        numInGroup: {\n            id: 41683,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4242,\n        name: 'LegStreamCommoditySettlPeriodGrp',\n        abbrName: 'SettlPeriod',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The LegStreamCommoditySettlPeriodGrp is a repeating subcomponent of the LegStreamCommodiry component used to to define the settlement period details associated with the commodity contract.',\n        fieldRef: [\n            {\n                id: 41687,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoLegStreamCommoditySettlPeriods(41686) > 0.',\n            },\n            {\n                id: 41688,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41689,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41690,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41691,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41692,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when LegStreamCommoditySettlPeriodFrequencyUnit(41693) is specified.',\n            },\n            {\n                id: 41693,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when LegStreamCommoditySettlPeriodFrequencyPeriod(41692) is specified.',\n            },\n            {\n                id: 41694,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41695,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41696,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41697,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41698,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41699,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4240,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41686,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4244,\n        name: 'UnderlyingComplexEventAveragingObservationGrp',\n        abbrName: 'AvgngObsvtn',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingComplexEventAveragingObservationGrp is an optional subcomponent of UnderlyingComplexEventPeriodGrp for specifying the weight of each of the dated observations.',\n        fieldRef: [\n            {\n                id: 41714,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingComplexEventAveragingObservations(41713) > 0.',\n            },\n            {\n                id: 41715,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41713,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4245,\n        name: 'UnderlyingComplexEventCreditEventGrp',\n        abbrName: 'CrdEvnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingComplexEventCreditEventGrp is a repeating component within the UnderlyingComplexEventGrp component used to report applicable option credit events.',\n        fieldRef: [\n            {\n                id: 41717,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingComplexEventCreditEvents(41716) > 0.',\n            },\n            {\n                id: 41718,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41719,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41720,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when UnderlyingComplexEventCreditEventUnit(41721) is specified.',\n            },\n            {\n                id: 41721,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when UnderlyingComplexEventCreditEventPeriod(41720) is specified.',\n            },\n            {\n                id: 41722,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41723,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4246,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41716,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4246,\n        name: 'UnderlyingComplexEventCreditEventQualifierGrp',\n        abbrName: 'Qual',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingComplexEventCreditEventQualifierGrp is a repeating component within the UnderlyingComplexEventCreditEventGrp component used to specify qualifying attributes to an event.',\n        fieldRef: [\n            {\n                id: 41725,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingComplexEventCreditEventQualifiers(41724) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41724,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4247,\n        name: 'UnderlyingComplexEventPeriodDateGrp',\n        abbrName: 'Dt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingComplexEventPeriodDateGrp is a subcomponent of UnderlyingComplexEventPeriodGrp for specifying fixed period dates and times for an Asian or Strike Schedule option or trigger dates for a Barrier or Knock option.',\n        fieldRef: [\n            {\n                id: 41727,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingComplexEventPeriodDateTimes(41726) > 0.',\n            },\n            {\n                id: 41728,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41726,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4248,\n        name: 'UnderlyingComplexEventPeriodGrp',\n        abbrName: 'Period',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingComplexEventPeriodGrp is a subcomponent of UnderlyingComplexEvents for specifying the periods for an Asian, Barrier, Knock or Strike Schedule option feature.',\n        fieldRef: [\n            {\n                id: 41730,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingComplexEventPeriods(41729) > 0.',\n            },\n            {\n                id: 41731,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4253,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4247,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 4244,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41729,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4249,\n        name: 'UnderlyingComplexEventRateSourceGrp',\n        abbrName: 'RtSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingComplexEventRateSourceGrp is a subcomponent of UnderlyingComplexEvents for specifying primary and secondary rate sources.',\n        fieldRef: [\n            {\n                id: 41733,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingComplexEventRateSources(41732) > 0.',\n            },\n            {\n                id: 41734,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingComplexEventRateSources(41732) > 0.',\n            },\n            {\n                id: 41735,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Conditionally required when ComplexEventRateSource(41014) = 99 (Other).',\n            },\n            {\n                id: 41736,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41732,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4250,\n        name: 'UnderlyingComplexEventDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingComplexEventDateBusinessCenterGrp is a repeating subcomponent of the UnderlyingComplexEventRelativeDate component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 41738,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingComplexEventDateBusinessCenters(41737) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41737,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4252,\n        name: 'UnderlyingComplexEventCreditEventSourceGrp',\n        abbrName: 'EvntSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingComplexEventCreditEventSourceGrp is a repeating subcomponent of the UnderlyingComplexEvents component used to specify the particular newspapers or electronic news services that may publish relevant information used in the determination of whether or not a credit event has occurred.',\n        fieldRef: [\n            {\n                id: 41749,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingCreditEventCreditEventSources(41748) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41748,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4253,\n        name: 'UnderlyingComplexEventScheduleGrp',\n        abbrName: 'Sched',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingComplexEventScheduleGrp is a subcomponent of UnderlyingComplexEventPeriodGrp for specifying a periodic schedule for an Asian, Barrier or Strike Schedule option feature.',\n        fieldRef: [\n            {\n                id: 41751,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingComplexEventSchedules(41750) > 0.',\n            },\n            {\n                id: 41752,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41753,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingComplexEventScheduleFrequencyUnit(41754) is specified.',\n            },\n            {\n                id: 41754,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingComplexEventScheduleFrequencyPeriod(41753) is specified.',\n            },\n            {\n                id: 41755,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified, this overrides the date roll convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the option schedule dates.',\n            },\n        ],\n        numInGroup: {\n            id: 41750,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4254,\n        name: 'UnderlyingDeliveryScheduleGrp',\n        abbrName: 'DlvrySched',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingDeliveryScheduleGrp is a repeating subcomponent of the UnderlyingStream component used to detail step schedules associated with a delivery stream.\\n\\nNote: Holiday schedule is standard for the country and time zone and need not be specified.',\n        fieldRef: [\n            {\n                id: 41757,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingDeliverySchedules(41756) > 0.',\n            },\n            {\n                id: 41758,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41759,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41760,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41761,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41762,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41763,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41764,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41765,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingDeliveryScheduleNegativeTolerance(41762) or UnderlyingDeliverySchedulePositiveTolerance(41763) is specified.',\n            },\n            {\n                id: 41766,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41767,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41768,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41769,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4255,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41756,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4255,\n        name: 'UnderlyingDeliveryScheduleSettlDayGrp',\n        abbrName: 'Day',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingDeliveryScheduleSettlDayGrp is a repeating subcomponent of the UnderlyingDeliveryScheduleGrp component used to detail commodity delivery days.',\n        fieldRef: [\n            {\n                id: 41771,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingDeliveryScheduleSettlDays(41770) > 0.',\n            },\n            {\n                id: 41772,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4256,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41770,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4256,\n        name: 'UnderlyingDeliveryScheduleSettlTimeGrp',\n        abbrName: 'Tm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingDeliveryScheduleSettlTimeGrp is a repeating subcomponent of the UnderlyingDeliveryScheduleSettlDayGrp component used to detail commodity delivery time periods.',\n        fieldRef: [\n            {\n                id: 41774,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingDeliveryScheduleSettlTimes(41773) > 0.',\n            },\n            {\n                id: 41775,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingDeliveryScheduleSettlTimes(41773) > 0.',\n            },\n            {\n                id: 41776,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'May be defaulted to market convention or bilaterally agreed if not specified.',\n            },\n        ],\n        numInGroup: {\n            id: 41773,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4258,\n        name: 'UnderlyingStreamAssetAttributeGrp',\n        abbrName: 'AssetAttrib',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingStreamAssetAttributeGrp is a repeating subcomponent of the UnderlyingStreamCommodity component used to detail commodity attributes, quality standards and reject limits.',\n        fieldRef: [\n            {\n                id: 41801,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingStreamAssetAttributes(41800) > 0.',\n            },\n            {\n                id: 41802,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41803,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41800,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4259,\n        name: 'UnderlyingDeliveryStreamCycleGrp',\n        abbrName: 'Cycle',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingDeliveryStreamCycleGrp is a repeating subcomponent of the UnderlyingDeliveryStream component used to detail delivery cycles during which the oil product will be transported in the pipeline.',\n        fieldRef: [\n            {\n                id: 41805,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingDeliveryStreamCycles(41804) > 0.',\n            },\n            {\n                id: 41806,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedUnderlyingDeliveryStreamCycleDesc(41807) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41807,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the UnderlyingDeliverySreamCycleDesc(41805) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        numInGroup: {\n            id: 41804,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4260,\n        name: 'UnderlyingDeliveryStreamCommoditySourceGrp',\n        abbrName: 'CmdtySrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingDeliveryStreamCommoditySourceGrp is a repeating subcomponent of the UnderlyingDeliveryStream component used to detail the origins or sources of the commodity.',\n        fieldRef: [\n            {\n                id: 41809,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingDeliveryStreamCommoditySources(41808) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41808,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4262,\n        name: 'UnderlyingOptionExerciseBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingOptionExerciseBusinessCenterGrp is a repeating subcomponent of the UnderlyingOptionExerciseDates component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 41821,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingOptionExerciseBusinessCenters(41820) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41820,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4264,\n        name: 'UnderlyingOptionExerciseDateGrp',\n        abbrName: 'Dt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingOptionExerciseDateGrp is a repeating subcomponent of the UnderlyingOptionExerciseDates component used to specify fixed dates for exercise.',\n        fieldRef: [\n            {\n                id: 41842,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingOptionExerciseDates(41841) > 0.',\n            },\n            {\n                id: 41843,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41841,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4265,\n        name: 'UnderlyingOptionExerciseExpirationDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingOptionExerciseExpirationDateBusinessCenterGrp is a repeating subcomponent of the UnderlyingOptionExerciseExpiration component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 41845,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingOptionExerciseExpirationDateBusinessCenters(41844) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41844,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4267,\n        name: 'UnderlyingOptionExerciseExpirationDateGrp',\n        abbrName: 'Dt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingOptionExerciseExpirationDateGrp is a repeating subcomponent of the UnderlyingOptionExerciseExpiration component used to specify fixed dates for expiration.',\n        fieldRef: [\n            {\n                id: 41857,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingOptionExpirationDates(41856) > 0.',\n            },\n            {\n                id: 41858,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41856,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4269,\n        name: 'UnderlyingMarketDisruptionEventGrp',\n        abbrName: 'Evnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingMarketDisruptionEventGrp is a repeating subcomponent of the UnderlyingMarketDisruption component used to specify the market disruption events.',\n        fieldRef: [\n            {\n                id: 41865,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingMarketDisruptionEvents(41864) > 0.',\n            },\n            {\n                id: 41338,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 41864,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4270,\n        name: 'UnderlyingMarketDisruptionFallbackGrp',\n        abbrName: 'Fallbck',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingMarketDisruptionFallbackGrp is a repeating subcomponent of the UnderlyingMarketDisruption component used to specify the market disruption fallback provisions.',\n        fieldRef: [\n            {\n                id: 41867,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Required if NoUnderlyingMarketDisruptionFallbacks(41866) > 0.\\n\\n\\n                        The sequence of entries specifies the order in which the fallback provisions should be applied.',\n            },\n            {\n                id: 41339,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 41866,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4271,\n        name: 'UnderlyingMarketDisruptionFallbackReferencePriceGrp',\n        abbrName: 'FallbckRefPx',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingMarketDisruptionFallbackReferencePriceGrp is a repeating subcomponent of the UnderlyingMarketDisruption component used to specify the fallback reference price and underlying security provisions',\n        fieldRef: [\n            {\n                id: 41869,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingMarketDisruptionFallbackReferencePrices (41868) > 0.',\n            },\n            {\n                id: 41870,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required whem UnderlyingMarketDisruptionFallbackUnderlierSecurityIDSource(41871) is specified.',\n            },\n            {\n                id: 41871,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required whem UnderlyingMarketDisruptionFallbackUnderlierSecurityID(41870) is specified.',\n            },\n            {\n                id: 41872,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41873,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Must be set if EncodedUnderlyingMarketDisruptionFallbackUnderlierSecurityDesc(41874) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41874,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Encoded (non-ASCII characters) representation of the UnderlyingMarketDisruptionFallbackUnderlierSecurityDesc(41872) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 41875,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41876,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 41877,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41868,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4272,\n        name: 'UnderlyingPaymentScheduleFixingDayGrp',\n        abbrName: 'FixngDay',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingPaymentScheduleFixingDayGrp is a repeating subcomponent of the UnderlyingPaymentScheduleGrp component used to detail periodic fixing days.\\n\\nIf the fixing days are not specified, then every day of the week will be a fixing day.',\n        fieldRef: [\n            {\n                id: 41879,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingPaymentScheduleFixingDays(41878) > 0.',\n            },\n            {\n                id: 41880,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41878,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4273,\n        name: 'UnderlyingPaymentStreamPricingBusinessCenterGrp',\n        abbrName: 'PxngBizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamPricingBusinessCenterGrp is a repeating subcomponent of the UnderlyingPaymentStreamFloatingRate component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 41910,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingPaymentStreamPricingBusinessCenters(41909) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41909,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4274,\n        name: 'UnderlyingPaymentStreamPaymentDateGrp',\n        abbrName: 'PmtDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingPaymentStreamPaymentDateGrp is a repeating subcomponent of the UnderlyingPaymentStreamPaymentDates component used to detail fixed dates for swap stream payments.',\n        fieldRef: [\n            {\n                id: 41938,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingPaymentStreamPaymentDates(41937) > 0.',\n            },\n            {\n                id: 41939,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41937,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4275,\n        name: 'UnderlyingPaymentStreamPricingDateGrp',\n        abbrName: 'PxngDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingPaymentStreamPricingDateGrp is a repeating subcomponent of the UnderlyingPaymentStreamFloatingRate component used to detail fixed pricing dates.',\n        fieldRef: [\n            {\n                id: 41942,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingPaymentStreamPricingDates(41941) > 0.',\n            },\n            {\n                id: 41943,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41941,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4276,\n        name: 'UnderlyingPaymentStreamPricingDayGrp',\n        abbrName: 'PxngDay',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingPaymentStreamPricingDayGrp is a repeating subcomponent of the UnderlyingPaymentStreamFloatingRate component used to detail periodic pricing days.\\n\\nIf the fixing days are not specified, then every day of the week will be a fixing day.',\n        fieldRef: [\n            {\n                id: 41945,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingPaymentStreamPricingDays(41944) > 0.',\n            },\n            {\n                id: 41946,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41944,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4277,\n        name: 'UnderlyingPricingDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingPricingDateBusinessCenterGrp is a repeating subcomponent of the UnderlyingPricingDateTime component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 41948,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingPricingDateBusinessCenters(41947) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41947,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4279,\n        name: 'UnderlyingStreamCalculationPeriodDateGrp',\n        abbrName: 'CalcDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingStreamCalculationPeriodDateGrp is a repeating subcomponent of the UnderlyingStreamCalculationPeriodDates component used to detail fixed dates for the swap stream.',\n        fieldRef: [\n            {\n                id: 41955,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingStreamCalculationPeriodDates(41954) > 0.',\n            },\n            {\n                id: 41956,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 41954,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4280,\n        name: 'UnderlyingStreamCommoditySettlBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingStreamCommoditySettlBusinessCenterGrp is a repeating subcomponent of the UnderlyingStreamCommodity component used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 41963,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingStreamCommoditySettlBusinessCenters(41962) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41962,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4282,\n        name: 'UnderlyingStreamCommodityAltIDGrp',\n        abbrName: 'AID',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingStreamCommodityAltIDGrp is a subcomponent of the UnderlyingStreamCommodity component used to specify alternate identifiers.',\n        fieldRef: [\n            {\n                id: 41991,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingStreamCommodityAltIDs(41990) > 0.',\n            },\n            {\n                id: 41992,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingStreamCommodityAltIDs(41990) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41990,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4283,\n        name: 'UnderlyingStreamCommodityDataSourceGrp',\n        abbrName: 'DataSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'UnderlyingStreamCommodityDataSourceGrp is a subcomponent of the UnderlyingStreamCommodity component used to specify sources of data, e.g. weather stations. The order of entry determines priority \u2013 first is the main source, second is fallback, third is second fallback.',\n        fieldRef: [\n            {\n                id: 41994,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingStreamCommodityDataSources(41993) > 0.',\n            },\n            {\n                id: 41995,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingStreamCommodityDataSources(41993) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 41993,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4284,\n        name: 'UnderlyingStreamCommoditySettlDayGrp',\n        abbrName: 'Day',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingStreamCommoditySettlDayGrp is a repeating subcomponent of the UnderlyingStreamCommoditySettlPeriodGrp component used to define the settlement days associated with the commodity contract.',\n        fieldRef: [\n            {\n                id: 41997,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingStreamCommoditySettlDays(41996) > 0.',\n            },\n            {\n                id: 41998,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4285,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 41996,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4285,\n        name: 'UnderlyingStreamCommoditySettlTimeGrp',\n        abbrName: 'Tm',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingStreamCommoditySettlTimeGrp is a repeating subcomponent of the UnderlyingStreamCommoditySettlDayGrp component used to define the settlement time periods associated with the commodity contract.',\n        fieldRef: [\n            {\n                id: 42000,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingStreamCommoditySettlTimes(41999) > 0.',\n            },\n            {\n                id: 42001,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingStreamCommoditySettlTimes(41999) > 0.',\n            },\n            {\n                id: 41936,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'May be defaulted to market convention or bilaterally agreed if not specified.',\n            },\n        ],\n        numInGroup: {\n            id: 41999,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4286,\n        name: 'UnderlyingStreamCommoditySettlPeriodGrp',\n        abbrName: 'SettlPeriod',\n        added: 'FIX.5.0SP2',\n        addedEP: '169',\n        category: 'Common',\n        description:\n            'The UnderlyingStreamCommoditySettlPeriodGrp is a repeating subcomponent of the UnderlyingStreamCommodiry component used to defined the settlement period details associated with the commodity contract.',\n        fieldRef: [\n            {\n                id: 42003,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description: 'Required if NoUnderlyingStreamCommoditySettlPeriods(42002) > 0.',\n            },\n            {\n                id: 42004,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42005,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42006,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42007,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42008,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingStreamCommoditySettlPeriodFrequencyUnit(42009) is specified.',\n            },\n            {\n                id: 42009,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n                description:\n                    'Conditionally required when UnderlyingStreamCommoditySettlPeriodFrequencyPeriod(42008) is specified.',\n            },\n            {\n                id: 42010,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42011,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42012,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42013,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42014,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n            {\n                id: 42015,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4284,\n                added: 'FIX.5.0SP2',\n                addedEP: '169',\n            },\n        ],\n        numInGroup: {\n            id: 42002,\n            added: 'FIX.5.0SP2',\n            addedEP: '169',\n            description: '',\n        },\n    },\n    {\n        id: 4287,\n        name: 'UnderlyingAdditionalTermBondRefGrp',\n        abbrName: 'BondRef',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingAdditionalTermBondRefGrp is a repeating group subcomponent of the UnderlyingAdditionalTermGrp component used to identify an underlying reference bond for a swap.',\n        fieldRef: [\n            {\n                id: 41341,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingAdditionalTermBondRefs(41340) > 0.',\n            },\n            {\n                id: 41701,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Conditionally required when UnderlyingAdditionalTermBondSecurityID(41341) is specified.',\n            },\n            {\n                id: 41709,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 41710,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Must be set if EncodedUnderlyingAdditionalTermBondDesc(41709) field is specified and must immediately precede it.',\n            },\n            {\n                id: 41711,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Encoded (non-ASCII characters) representation of the UnderlyingAdditionalTermBondDesc(41709) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 41712,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42017,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42025,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Must be set if EncodedUnderlyingAdditionalTermBondIssuer(42017) field is specified and must immediately precede it.',\n            },\n            {\n                id: 42026,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Encoded (non-ASCII characters) representation of the UnderlyingAdditionalTermBondIssuer(42017) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n            {\n                id: 42027,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42028,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42029,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42030,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42031,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42032,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42033,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingAdditionalTermBondCouponFrequencyUnit(42034) is specified.',\n            },\n            {\n                id: 42034,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Conditionally required when UnderlyingAdditionalTermBondCouponFrequencyPeriod(42033) is specified.',\n            },\n            {\n                id: 42035,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 41340,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4288,\n        name: 'UnderlyingAdditionalTermGrp',\n        abbrName: 'AddtnlTrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingAdditionalTermGrp is a repeating subcomponent of the UnderlyingInstrument component used to report additional contract terms.',\n        fieldRef: [\n            {\n                id: 42037,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingAdditionalTerms(42036) > 0.',\n            },\n            {\n                id: 42038,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4287,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 42036,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4289,\n        name: 'UnderlyingCashSettlDealerGrp',\n        abbrName: 'Dlr',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'UnderlyingCashSettlDealerGrp is a repeating subcomponent within the UnderlyingCashSettlTermGrp component. It is used to specify the dealers from whom price quotations for the reference obligation are obtained for the purpose of cash settlement valuation.',\n        fieldRef: [\n            {\n                id: 42040,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingCashSettlDealers(42039) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42039,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4290,\n        name: 'UnderlyingCashSettlTermGrp',\n        abbrName: 'CashSettlTrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingCashSettlTermGrp is a repeating component within the UnderlyingInstrument component used to report cash settlement terms.\\n\\nUsage of UnderlyingCashSettlTermGrp must either include a known UnderlyingCashSettlAmount(42054) or provide the cash settlement term parameters needed to derive the cash settlement amount. UnderlyingCashSettlTermXID(42059) is provided for cross-referencing from an instance of the UnderlyingInstrument component through the UnderlyingSettlTermXIDRef(41315) field.',\n        fieldRef: [\n            {\n                id: 42042,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingCashSettlTerms(42041) > 0.',\n            },\n            {\n                id: 42043,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42044,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42045,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42046,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42047,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42048,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42049,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42050,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42051,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42052,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42797,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42798,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42053,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42054,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42055,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42056,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42057,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42058,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42059,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4289,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4388,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 42041,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4291,\n        name: 'UnderlyingPhysicalSettlTermGrp',\n        abbrName: 'PhysSettlTrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingPhysicalSettlTermGrp is a repeating component within the UnderlyingInstrument component used to report physical settlement terms.',\n        fieldRef: [\n            {\n                id: 42061,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42062,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42063,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42064,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4292,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingPhysicalSettlTerms(42060) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42060,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4292,\n        name: 'UnderlyingPhysicalSettlDeliverableObligationGrp',\n        abbrName: 'DlvrblOblig',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingPhysicalSettlDeliverableObligationGrp is a repeating component within the UnderlyingPhysicalSettlTermGrp component used to report CDS physical settlement delivery obligations.',\n        fieldRef: [\n            {\n                id: 42066,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingPhysicalSettlDeliverableObligations(42065) > 0.',\n            },\n            {\n                id: 42067,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 42065,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4293,\n        name: 'UnderlyingProtectionTermGrp',\n        abbrName: 'ProtctnTrm',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingProtectionTermGrp is a repeating component within the UnderlyingInstrument component used to report contract protection term details.',\n        fieldRef: [\n            {\n                id: 42069,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProtectionTerms(42068) > 0.',\n            },\n            {\n                id: 42070,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42071,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42072,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42073,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42074,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42075,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42076,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4297,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 4294,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 4296,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 42068,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4294,\n        name: 'UnderlyingProtectionTermEventGrp',\n        abbrName: 'Evnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingProtectionTermEventGrp is a repeating component within the UnderlyingProtectionTermGrp component used to report applicable CDS credit events.',\n        fieldRef: [\n            {\n                id: 42078,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProtectionTermEvents (42078) > 0.',\n            },\n            {\n                id: 42079,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42080,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42081,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Conditionally required when UnderlyingProtectionTermEventUnit(42082) is specified.',\n            },\n            {\n                id: 42082,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Conditionally required when UnderlyingProtectionTermEventPeriod(42081) is specified.',\n            },\n            {\n                id: 42083,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42084,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4295,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 42077,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4295,\n        name: 'UnderlyingProtectionTermEventQualifierGrp',\n        abbrName: 'Qual',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingProtectionTermEventQualifierGrp is a repeating component within the UnderlyingProtectionTermEventGrp component used to specify qualifying attributes to the event.',\n        fieldRef: [\n            {\n                id: 42086,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProtectionTermEventQualifiers(42085) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42085,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4296,\n        name: 'UnderlyingProtectionTermObligationGrp',\n        abbrName: 'Oblig',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingProtectionTermObligationGrp is a repeating component within the UnderlyingProtectionTermGrp component used to report applicable CDS obligations.',\n        fieldRef: [\n            {\n                id: 42088,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProtectionTermObligations(42087) > 0.',\n            },\n            {\n                id: 42089,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 42087,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4297,\n        name: 'UnderlyingProtectionTermEventNewsSourceGrp',\n        abbrName: 'NewsSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'UnderlyingProtectionTermEventNewsSourceGrp is a repeating subcomponent within the UnderlyingProtectionTermGrp component. It is used to specify the particular newspapers or electronic news services and sources that may publish relevant information used in the determination of whether or not a credit event has occurred.',\n        fieldRef: [\n            {\n                id: 42091,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProtectionTermEventNewsSources(42090) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42090,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4299,\n        name: 'UnderlyingProvisionCashSettlPaymentFixedDateGrp',\n        abbrName: 'CashSettlPmtFixedDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingProvisionCashSettlPaymentFixedDateGrp is a repeating component within the UnderlyingProvisionCashSettlPaymentDates component used to report fixed cash settlement payment dates defined in the provision.',\n        fieldRef: [\n            {\n                id: 42100,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisionCashSettlPaymentDates (42099) > 0.',\n            },\n            {\n                id: 42101,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 42099,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4302,\n        name: 'UnderlyingProvisionOptionExerciseFixedDateGrp',\n        abbrName: 'OptExerFixedDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingProvisionOptionExerciseFixedDateGrp is a repeating component within the UnderlyingProvisionOptionExerciseDates component used to report an array of unadjusted or adjusted fixed exercise dates.',\n        fieldRef: [\n            {\n                id: 42113,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisionOptionExerciseFixedDates(42112) > 0.',\n            },\n            {\n                id: 42114,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.',\n            },\n        ],\n        numInGroup: {\n            id: 42112,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4306,\n        name: 'UnderlyingProvisionGrp',\n        abbrName: 'Prov',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'The UnderlyingProvisionGrp is a repeating subcomponent of the UnderlyingInstrument component used to detail additional terms and conditions associated with the instrument.\\n\\nA swap may have one or more provisions defined.',\n        fieldRef: [\n            {\n                id: 42150,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisions(42149) > 0.',\n            },\n            {\n                id: 42151,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42152,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'When specified, this overrides the busienss day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this instance of the instrument provisions.',\n            },\n            {\n                id: 42153,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42154,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Conditionally required when UnderlyingProvisionDateTenorUnit(42155) is specified.',\n            },\n            {\n                id: 42155,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Conditionally required when UnderlyingProvisionDateTenorPeriod(42154) is specified.',\n            },\n            {\n                id: 43002,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43003,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42156,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42157,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42158,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42159,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42160,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42161,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42162,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42163,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42164,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42165,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42166,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42167,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42168,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42169,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42170,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 42171,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Must be set if EncodedProvisionText(40987) field is specified and must immediately precede it.',\n            },\n            {\n                id: 42172,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'Encoded (non-ASCII characters) representation of the UnderlyingProvisionText(42170) field in the encoded format specified via the MessageEncoding(347) field.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4314,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the instrument provisions.',\n            },\n            {\n                id: 4307,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        componentRef: [\n            {\n                id: 4301,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 4303,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 4304,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 4305,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 4298,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n            {\n                id: 4300,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 42149,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4307,\n        name: 'UnderlyingProvisionParties',\n        abbrName: 'Pty',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'UnderlyingProvisionParties is a repeating component within the UnderlyingProvisionGrp component used to report the parties identified in the contract provision.',\n        fieldRef: [\n            {\n                id: 42174,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisionPartyIDs(42173) > 0.',\n            },\n            {\n                id: 42175,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisionPartyIDs(42173) > 0.',\n            },\n            {\n                id: 42176,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisionPartyIDs(42173) > 0.',\n            },\n            {\n                id: 40918,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4308,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n            },\n        ],\n        numInGroup: {\n            id: 42173,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4308,\n        name: 'UnderlyingProvisionPtysSubGrp',\n        abbrName: 'Sub',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'UnderlyingProvisionPtysSubGrp is a repeating component within the UnderlyingProvisionParties component used to extend information to be reported for the party.',\n        fieldRef: [\n            {\n                id: 42178,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisionPartySubIDs(42177) > 0.',\n            },\n            {\n                id: 42179,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisionPartySubIDs(42177) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42177,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4309,\n        name: 'UnderlyingProvisionCashSettlPaymentDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'UnderlyingProvisionCashSettlPaymentDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingProvisionCashSettlPaymentDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 42181,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisionCashSettlPaymentDateBusinessCenters(42180) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42180,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4310,\n        name: 'UnderlyingProvisionCashSettlValueDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'UnderlyingProvisionCashSettlValueDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingProvisionCashSettlValueDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 42183,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisionCashSettlValueDateBusinessCenters(42182) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42182,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4311,\n        name: 'UnderlyingProvisionOptionExerciseBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'UnderlyingProvisionOptionExerciseBusinessCenterGrp is a repeating subcomponent within the UnderlyingProvisionOptionExerciseDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 42185,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisionOptionExerciseBusinessCenters(42184) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42184,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4312,\n        name: 'UnderlyingProvisionOptionExpirationDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'UnderlyingProvisionOptionExpirationDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingProvisionOptionExpirationDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 42187,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisionOptionExpirationDateBusinessCenters(42186) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42186,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4313,\n        name: 'UnderlyingProvisionOptionRelevantUnderlyingDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'UnderlyingProvisionOptionRelevantUnderlyingDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingProvisionOptionRelevantUnderlyingDate component. It is used to specify the set of business centers whose calendars drive date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 42189,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisionOptionRelevantUnderlyingDateBusinessCenters(42188) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42188,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4314,\n        name: 'UnderlyingProvisionDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '187',\n        category: 'Common',\n        description:\n            'UnderlyingProvisionDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingProvisionGrp component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 42191,\n                added: 'FIX.5.0SP2',\n                addedEP: '187',\n                description: 'Required if NoUnderlyingProvisionDateBusinessCenters(42190) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42190,\n            added: 'FIX.5.0SP2',\n            addedEP: '187',\n            description: '',\n        },\n    },\n    {\n        id: 4315,\n        name: 'LegFinancingContractualDefinitionsGrp',\n        abbrName: 'CtrctlDef',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        category: 'Common',\n        description:\n            'The LegFinancingContractualDefinitionGrp is a repeating component within the LegFinancingDetails component used to report the definitions published by ISDA that define the terms of a derivative trade.',\n        fieldRef: [\n            {\n                id: 42199,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n                description: 'Required if NoLegContractualDefinitions(42198) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42198,\n            added: 'FIX.5.0SP2',\n            addedEP: '192',\n            description: '',\n        },\n    },\n    {\n        id: 4316,\n        name: 'LegFinancingTermSupplementGrp',\n        abbrName: 'TrmSupplmnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        category: 'Common',\n        description:\n            'The LegFinancingTermSupplementGrp is a repeating component within the LegFinancingDetails component used to report contractual terms supplements of derivative trades.',\n        fieldRef: [\n            {\n                id: 42201,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n                description: 'Required if NoLegFinancingTermSupplements(42200) > 0.',\n            },\n            {\n                id: 42202,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n        ],\n        numInGroup: {\n            id: 42200,\n            added: 'FIX.5.0SP2',\n            addedEP: '192',\n            description: '',\n        },\n    },\n    {\n        id: 4317,\n        name: 'LegFinancingContractualMatrixGrp',\n        abbrName: 'CtrctlMtrx',\n        added: 'FIX.5.0SP2',\n        addedEP: '192',\n        category: 'Common',\n        description:\n            'The LegFinancingContractualMatrixGrp is a repeating component within the LegFinancingDetails component used to report the ISDA Physical Settlement Matrix Transaction Type.',\n        fieldRef: [\n            {\n                id: 42204,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n                description: 'Required if NoLegContractualMatrices(42203) > 0.',\n            },\n            {\n                id: 42205,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n            {\n                id: 42206,\n                added: 'FIX.5.0SP2',\n                addedEP: '192',\n            },\n        ],\n        numInGroup: {\n            id: 42203,\n            added: 'FIX.5.0SP2',\n            addedEP: '192',\n            description: '',\n        },\n    },\n    {\n        id: 4319,\n        name: 'CashSettlDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'CashSettlDateBusinessCenterGrp is a repeating subcomponent within the CashSettlDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component within the Instrument component.',\n        fieldRef: [\n            {\n                id: 42215,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoCashSettlDateBusinessCenters(42214) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42214,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4321,\n        name: 'DividendAccrualPaymentDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'DividendAccrualPaymentDateBusinessCenterGrp is a repeating subcomponent within the DividendAccrualPaymentDate component. It is used to specify the set of business centers whose calendars drive the date adjustment.',\n        fieldRef: [\n            {\n                id: 42237,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoDividendAccrualPaymentDateBusinessCenters(42236) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42236,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4325,\n        name: 'DividendFXTriggerDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'DividendFXTriggerDateBusinessCenterGrp is a repeating subcomponent within the DividendFXTriggerDate component. It is used to specify the set of business centers whose calendars drive the date adjustment.',\n        fieldRef: [\n            {\n                id: 42273,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoDividendFXTriggerDateBusinessCenters(42272) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42272,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4326,\n        name: 'DividendPeriodGrp',\n        abbrName: 'Period',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'DividendPeriodGrp is a repeating subcomponent within the DividendConditions component. It is used to specify the valuation and payments dates of the dividend leg of a dividend swap.',\n        fieldRef: [\n            {\n                id: 42275,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoDividendPeriods(42274) > 0.',\n            },\n            {\n                id: 42276,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42277,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42278,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides DividendUnderlierRefID(42248). The specified value would be specific to this dividend period instance.',\n            },\n            {\n                id: 42279,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42280,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to this dividend period instance.',\n            },\n            {\n                id: 42281,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42282,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42283,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when DividendPeriodValuationDateOffsetUnit(42284) is specified.',\n            },\n            {\n                id: 42284,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when DividendPeriodValuationDateOffsetPeriod(42283) is specified.',\n            },\n            {\n                id: 42285,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42286,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42287,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42288,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42289,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when DividendPeriodPaymentDateOffsetUnit(42290) is specified.',\n            },\n            {\n                id: 42290,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when DividendPeriodPaymentDateOffsetPeriod(42289) is specified.',\n            },\n            {\n                id: 42291,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42292,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42293,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4425,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the DateAdjustment component in Instrument. The specified values would be specific to this dividend period instance.',\n            },\n        ],\n        numInGroup: {\n            id: 42274,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4327,\n        name: 'ExtraordinaryEventGrp',\n        abbrName: 'ExtrordEvnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The ExtraordinaryEventGrp is a repeating component within the Instrument component. It is used to report extraordinary and disruptive events applicable to the reference entity that affects the contract.',\n        fieldRef: [\n            {\n                id: 42297,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoExtraordinaryEvents(42296) > 0.',\n            },\n            {\n                id: 42298,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoExtraordinaryEvents(42296) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42296,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4329,\n        name: 'LegCashSettlDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegCashSettlDateBusinessCenterGrp is a repeating subcomponent within the LegCashSettlDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 42307,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegCashSettlDateBusinessCenters(42306) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42306,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4330,\n        name: 'LegDividendAccrualPaymentDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegDividendAccrualPaymentDateBusinessCenterGrp is a repeating subcomponent within the LegDividendAccrualPaymentDate component. It is used to specify the set of business centers whose calendars drive the date adjustment.',\n        fieldRef: [\n            {\n                id: 42311,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegDividendAccrualPaymentDateBusinessCenters(42310) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42310,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4335,\n        name: 'LegDividendFXTriggerDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegDividendFXTriggerDateBusinessCenterGrp is a repeating subcomponent within the LegDividendFXTriggerDate component. It is used to specify the set of business centers whose calendars drive the date adjustment.',\n        fieldRef: [\n            {\n                id: 42365,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegDividendFXTriggerDateBusinessCenters(42364) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42364,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4336,\n        name: 'LegDividendPeriodGrp',\n        abbrName: 'Period',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegDividendPeriodGrp is a repeating subcomponent within the LegDividendConditions component. It is used to specify the valuation and payments dates of the dividend leg of a dividend swap.',\n        fieldRef: [\n            {\n                id: 42367,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegDividendPeriods(42366) > 0.',\n            },\n            {\n                id: 42368,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42369,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42370,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides LegDividendUnderlierRefID(42340). The specified value would be specific to this dividend period instance.',\n            },\n            {\n                id: 42371,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42372,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to this dividend period instance.',\n            },\n            {\n                id: 42373,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42374,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42375,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegDividendPeriodValuationDateOffsetUnit(42376) is specified.',\n            },\n            {\n                id: 42376,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegDividendPeriodValuationDateOffsetPeriod(42375) is specified.',\n            },\n            {\n                id: 42377,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42378,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42379,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42380,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42381,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegDividendPeriodPaymentDateOffsetUnit(42382) is specified.',\n            },\n            {\n                id: 42382,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegDividendPeriodPaymentDateOffsetPeriod(42381) is specified.',\n            },\n            {\n                id: 42383,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42384,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42385,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4426,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this dividend period instance.',\n            },\n        ],\n        numInGroup: {\n            id: 42366,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4337,\n        name: 'LegExtraordinaryEventGrp',\n        abbrName: 'ExtrordEvnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The LegExtraordinaryEventGrp is a repeating component within the InstrumentLeg component. It is used to report extraordinary and disruptive events applicable to the reference entity that affects the contract.',\n        fieldRef: [\n            {\n                id: 42389,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegExtraordinaryEvents(42388) > 0.',\n            },\n            {\n                id: 42390,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegExtraordinaryEvents(42388) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42388,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4338,\n        name: 'LegPaymentStreamCompoundingDateGrp',\n        abbrName: 'CmpndgDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStreamCompoundingDateGrp is a subcomponent of the LegPaymentStreamCompoundingDates component used to specify predetermined compounding dates.',\n        fieldRef: [\n            {\n                id: 42406,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegPaymentStreamCompoundingDates(42405) > 0.',\n            },\n            {\n                id: 42407,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified it applies not only to the current date instance but to all subsequent date instances in the group until overridden when a new type is specified.',\n            },\n        ],\n        numInGroup: {\n            id: 42405,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4340,\n        name: 'LegPaymentStreamCompoundingDatesBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStreamCompoundingDatesBusinessCenterGrp is a repeating subcomponent within the LegPaymentStreamCompoundingDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 42420,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegPaymentStreamCompoundingDatesBusinessCenters(42419) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42419,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4346,\n        name: 'LegPaymentStreamFixingDateGrp',\n        abbrName: 'FixngDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStreamFixingDateGrp is a subcomponent of the LegPaymentStreamResetDates component used to specify predetermined fixing dates.',\n        fieldRef: [\n            {\n                id: 42460,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegPaymentStreamFixingDates(42459) > 0.',\n            },\n            {\n                id: 42461,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified it applies not only to the current date instance but to all subsequent date instances in the group until overridden when a new type is specified.',\n            },\n        ],\n        numInGroup: {\n            id: 42459,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4348,\n        name: 'LegPaymentStreamFormulaMathGrp',\n        abbrName: 'Math',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        category: 'Common',\n        description:\n            'LegPaymentStreamFormulaMathGrp is a repeating subcomponent within the LegPaymentStreamFormula component. It is used to specify the set of formulas, sub-formulas and descriptions from which the rate is derived.',\n        fieldRef: [\n            {\n                id: 43110,\n                added: 'FIX.5.0SP2',\n                addedEP: '259',\n                description: 'Required if NoLegPaymentStreamFormulas(42485) > 0.',\n            },\n            {\n                id: 42486,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegPaymentStreamFormulas(42485) > 0.',\n            },\n            {\n                id: 42487,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 42485,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4350,\n        name: 'LegPaymentStubEndDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStubEndDateBusinessCenterGrp is a repeating subcomponent within the LegPaymentStubEndDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 42496,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegPaymentStubEndDateBusinessCenters(42495) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42495,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4352,\n        name: 'LegPaymentStubStartDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegPaymentStubStartDateBusinessCenterGrp is a repeating subcomponent within the LegPaymentStubStartDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 42505,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegPaymentStubStartDateBusinessCenters(42504) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42504,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4353,\n        name: 'LegReturnRateDateGrp',\n        abbrName: 'Dt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegReturnRateDateGrp is a repeating subcomponent within the LegReturnRateGrp component. It is used to specify the equity and dividend valuation dates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42509,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegReturnRateDates(42508) > 0.',\n            },\n            {\n                id: 42510,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42511,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegReturnRateValuationDateOffsetUnit(42512) is specified.',\n            },\n            {\n                id: 42512,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegReturnRateValuationDateOffsetPeriod(42511) is specified.',\n            },\n            {\n                id: 42513,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42514,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42515,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42516,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegReturnRateValuationStartDateOffsetUnit(42517) is specified.',\n            },\n            {\n                id: 42517,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegReturnRateValuationStartDateOffsetPeriod(42516) is specified.',\n            },\n            {\n                id: 42518,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42519,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42520,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42521,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42522,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegReturnRateValuationEndDateOffsetUnit(42523) is specified.',\n            },\n            {\n                id: 42523,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when LegReturnRateValuationEndDateOffsetPeriod(42522) is specified.',\n            },\n            {\n                id: 42524,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42525,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42526,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegReturnRateValuationFrequencyUnit(42527) is specified.',\n            },\n            {\n                id: 42527,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when LegReturnRateValuationFrequencyPeriod(42526) is specified.',\n            },\n            {\n                id: 42528,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the date roll convention defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to this instance of return rate valuation dates.',\n            },\n            {\n                id: 42529,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified value would be specific to payment stream return rate valuation dates.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4359,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4358,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the LegDateAdjustment component in InstrumentLeg. The specified values would be specific to payment stream return rate valuation dates.',\n            },\n        ],\n        numInGroup: {\n            id: 42508,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4354,\n        name: 'LegReturnRateFXConversionGrp',\n        abbrName: 'FxCnvrsn',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegReturnRateFXConversionGrp is a repeating subcomponent within the LegReturnRateGrp component. It is used to specify the FX conversion rates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42531,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegReturnRateFXConversions(42530) > 0.',\n            },\n            {\n                id: 42532,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegReturnRateFXConversions(42530) > 0.',\n            },\n            {\n                id: 42533,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 42530,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4355,\n        name: 'LegReturnRateGrp',\n        abbrName: 'RtnRt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        category: 'Common',\n        description:\n            'LegReturnRateGrp is a repeating subcomponent within the LegPaymentStreamFloatingRate component. It is used to specify the multiple return rates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42535,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegReturnRates(42534) > 0.',\n            },\n            {\n                id: 42536,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42537,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42538,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'If not specified, this is defaulted to the reporting currency.',\n            },\n            {\n                id: 42539,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42540,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42541,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42542,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42543,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42544,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42545,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42546,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42547,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Mutually exclusive with LegReturnRateQuoteTime(42548).',\n            },\n            {\n                id: 42548,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Mutually exclusive with LegReturnRateQuoteTimeType(42547).',\n            },\n            {\n                id: 42549,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42550,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42551,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42552,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42553,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42554,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42555,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Mutually exclusive with LegReturnRateValuationTime(42556).',\n            },\n            {\n                id: 42556,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Mutually exclusive with LegReturnRateValuationTimeType(42555).',\n            },\n            {\n                id: 42557,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42558,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42559,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4357,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4354,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4356,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4353,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 42534,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4356,\n        name: 'LegReturnRateInformationSourceGrp',\n        abbrName: 'InfoSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegReturnRateInformationSourceGrp is a repeating subcomponent within the LegReturnRateGrp component. It is used to specify the information sources for equity prices and FX rates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42561,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegReturnRateInformationSources(42560) > 0.',\n            },\n            {\n                id: 42562,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42563,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 42560,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4357,\n        name: 'LegReturnRatePriceGrp',\n        abbrName: 'Px',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegReturnRatePriceGrp is a repeating subcomponent within the LegReturnRateGrp component. It is used to specify the return rate prices for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42565,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegReturnRatePrices(42564) > 0.',\n            },\n            {\n                id: 42566,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42567,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42568,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 42564,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4358,\n        name: 'LegReturnRateValuationDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegReturnRateValuationDateBusinessCenterGrp is a repeating subcomponent within the LegReturnRateValuationDateGrp component. It is used to specify the valuation date business center adjustments for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42570,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegReturnRateValuationDateBusinessCenters(42569) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42569,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4359,\n        name: 'LegReturnRateValuationDateGrp',\n        abbrName: 'Val',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegReturnRateValuationDateGrp is a repeating subcomponent within the LegReturnRateDateGrp component. It is used to specify the fixed valuation dates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42572,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegReturnRateValuationDates(42571) > 0.',\n            },\n            {\n                id: 42573,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified it applies not only to the current date instance but to all subsequent date instances in the group until overridden when a new type is specified.',\n            },\n        ],\n        numInGroup: {\n            id: 42571,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4361,\n        name: 'LegSettlMethodElectionDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegSettlMethodElectionDateBusinessCenterGrp is a repeating subcomponent within the LegSettlMethodElectionDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the LegDateAdjustment component in InstrumentLeg.',\n        fieldRef: [\n            {\n                id: 42582,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegSettlMethodElectionDateBusinessCenters(42581) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42581,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4363,\n        name: 'PaymentStreamCompoundingDateGrp',\n        abbrName: 'CmpndgDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        category: 'Common',\n        description:\n            'PaymentStreamCompoundingDateGrp is a subcomponent of the PaymentStreamCompoundingDates component used to specify predetermined compounding dates.',\n        fieldRef: [\n            {\n                id: 42607,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoPaymentStreamCompoundingDates(42606) > 0.',\n            },\n            {\n                id: 42608,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified it applies not only to the current date instance but to all subsequent date instances in the group until overridden when a new type is specified.',\n            },\n        ],\n        numInGroup: {\n            id: 42606,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4365,\n        name: 'PaymentStreamCompoundingDatesBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'PaymentStreamCompoundingDatesBusinessCenterGrp is a repeating subcomponent within the PaymentStreamCompoundingDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 42621,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoPaymentStreamCompoundingDatesBusinessCenters(42620) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42620,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4371,\n        name: 'PaymentStreamFixingDateGrp',\n        abbrName: 'FixngDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        category: 'Common',\n        description:\n            'PaymentStreamFixingDateGrp is a subcomponent of the PaymentStreamResetDates component used to specify predetermined fixing dates.',\n        fieldRef: [\n            {\n                id: 42661,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoPaymentStreamFixingDates(42660) > 0.',\n            },\n            {\n                id: 42662,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified it applies not only to the current date instance but to all subsequent date instances in the group until overridden when a new type is specified.',\n            },\n        ],\n        numInGroup: {\n            id: 42660,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4372,\n        name: 'PaymentStreamFormulaMathGrp',\n        abbrName: 'Math',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        category: 'Common',\n        description:\n            'PaymentStreamFormulaMathGrp is a repeating subcomponent within the PaymentStreamFormula component. It is used to specify the set of formulas, sub-formulas and descriptions from which the rate is derived.',\n        fieldRef: [\n            {\n                id: 43109,\n                added: 'FIX.5.0SP2',\n                addedEP: '259',\n                description: 'Required if NoPaymentStreamFormulas(42683) > 0.',\n            },\n            {\n                id: 42684,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoPaymentStreamFormulas(42683) > 0.',\n            },\n            {\n                id: 42685,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 42683,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4375,\n        name: 'PaymentStubEndDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'PaymentStubEndDateBusinessCenterGrp is a repeating subcomponent within the PaymentStubEndDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 42697,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoPaymentStubEndDateBusinessCenters(42696) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42696,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4377,\n        name: 'PaymentStubStartDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'PaymentStubStartDateBusinessCenterGrp is a repeating subcomponent within the PaymentStubStartDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 42706,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoPaymentStubStartDateBusinessCenters(42705) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42705,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4378,\n        name: 'ReturnRateDateGrp',\n        abbrName: 'Dt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'ReturnRateDateGrp is a repeating subcomponent within the ReturnRateGrp component. It is used to specify the equity and dividend valuation dates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42710,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoReturnRateDates(42709) > 0.',\n            },\n            {\n                id: 42711,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42712,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when ReturnRateValuationDateOffsetUnit(42713) is specified.',\n            },\n            {\n                id: 42713,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when ReturnRateValuationDateOffsetPeriod(42712) is specified.',\n            },\n            {\n                id: 42714,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42715,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42716,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42717,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when ReturnRateValuationStartDateOffsetUnit(42718) is specified.',\n            },\n            {\n                id: 42718,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when ReturnRateValuationStartDateOffsetPeriod(42717) is specified.',\n            },\n            {\n                id: 42719,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42720,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42721,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42722,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42723,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when ReturnRateValuationEndDateOffsetUnit(42724) is specified.',\n            },\n            {\n                id: 42724,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when ReturnRateValuationEndDateOffsetPeriod(42723) is specified.',\n            },\n            {\n                id: 42725,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42726,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42727,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when ReturnRateValuationFrequencyUnit(42728) is specified.',\n            },\n            {\n                id: 42728,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Conditionally required when ReturnRateValuationFrequencyPeriod(42727) is specified.',\n            },\n            {\n                id: 42729,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the date roll convention defined in the DateAdjustment component in Instrument. The specified values would be specific to this instance of the payment stream return rate valuation dates.',\n            },\n            {\n                id: 42730,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified value would be specific to payment stream return rate valuation dates.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4384,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4383,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the DateAdjustment component in Instrument. The specified values would be specific to payment stream return rate valuation dates.',\n            },\n        ],\n        numInGroup: {\n            id: 42709,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4379,\n        name: 'ReturnRateFXConversionGrp',\n        abbrName: 'FxCnvrsn',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'ReturnRateFXConversionGrp is a repeating subcomponent within the ReturnRateGrp component. It is used to specify the FX conversion rates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42732,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoReturnRateFXConversions(42731) > 0.',\n            },\n            {\n                id: 42733,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoReturnRateFXConversions(42731) > 0.',\n            },\n            {\n                id: 42734,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 42731,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4380,\n        name: 'ReturnRateGrp',\n        abbrName: 'RtnRt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'ReturnRateGrp is a repeating subcomponent within the PaymentStreamFloatingRate component. It is used to specify the multiple return rates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42736,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoReturnRates(42735) > 0.',\n            },\n            {\n                id: 42737,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42738,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42739,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'If not specified, this is defaulted to the reporting currency.',\n            },\n            {\n                id: 42740,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42741,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42742,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42743,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42744,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42745,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42746,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42747,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42748,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Mutually exclusive with ReturnRateQuoteTime(42749).',\n            },\n            {\n                id: 42749,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Mutually exclusive with ReturnRateQuoteTimeType(42748).',\n            },\n            {\n                id: 42750,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42751,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42752,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42753,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42754,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42755,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42756,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Mutually exclusive with ReturnRateValuationTime(42757).',\n            },\n            {\n                id: 42757,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Mutually exclusive with ReturnRateValuationTimeType(42756).',\n            },\n            {\n                id: 42758,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42759,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42760,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4382,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4379,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4381,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4378,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 42735,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4381,\n        name: 'ReturnRateInformationSourceGrp',\n        abbrName: 'InfoSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'ReturnRateInformationSourceGrp is a repeating subcomponent within the ReturnRateGrp component. It is used to specify the information sources for equity prices and FX rates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42762,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoReturnRateInformationSources(42761) > 0.',\n            },\n            {\n                id: 42763,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42764,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 42761,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4382,\n        name: 'ReturnRatePriceGrp',\n        abbrName: 'Px',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'ReturnRatePriceGrp is a repeating subcomponent within the ReturnRateGrp component. It is used to specify the return rate prices for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42766,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoReturnRatePrices(42765) > 0.',\n            },\n            {\n                id: 42767,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42768,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42769,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 42765,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4383,\n        name: 'ReturnRateValuationDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'ReturnRateValuationDateBusinessCenterGrp is a repeating subcomponent within the ReturnRateValuationDateGrp component. It is used to specify the valuation date business center adjustments for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42771,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoReturnRateValuationDateBusinessCenters(42770) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42770,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4384,\n        name: 'ReturnRateValuationDateGrp',\n        abbrName: 'Val',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'ReturnRateValuationDateGrp is a repeating subcomponent within the ReturnRateDateGrp component. It is used to specify the fixed valuation dates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 42773,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoReturnRateValuationDates(42772) > 0.',\n            },\n            {\n                id: 42774,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified it applies not only to the current date instance but to all subsequent date instances in the group until overridden when a new type is specified.',\n            },\n        ],\n        numInGroup: {\n            id: 42772,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4385,\n        name: 'SettlMethodElectionDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'SettlMethodElectionDateBusinessCenterGrp is a repeating subcomponent within the SettlMethodElectionDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 42776,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoSettlMethodElectionDateBusinessCenters(42775) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42775,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4387,\n        name: 'UnderlyingCashSettlDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingCashSettlDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingCashSettlDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the DateAdjustment component in Instrument.',\n        fieldRef: [\n            {\n                id: 42789,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingCashSettlDateBusinessCenters(42788) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42788,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4389,\n        name: 'UnderlyingDividendAccrualPaymentDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingDividendAccrualPaymentDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingDividendAccrualPaymentDate component. It is used to specify the set of business centers whose calendars drive the date adjustment.',\n        fieldRef: [\n            {\n                id: 42800,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingDividendAccrualPaymentDateBusinessCenters(42799) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42799,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4394,\n        name: 'UnderlyingDividendFXTriggerDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingDividendFXTriggerDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingDividendFXTriggerDate component. It is used to specify the set of business centers whose calendars drive the date adjustment.',\n        fieldRef: [\n            {\n                id: 42854,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingDividendFXTriggerDateBusinessCenters(42853) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42853,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4395,\n        name: 'UnderlyingDividendPaymentGrp',\n        abbrName: 'Pmt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingDividendPaymentGrp is a repeating subcomponent of UnderlyingDividendPayout used to specify the anticipated dividend or coupon payment dates and amounts of an equity or bond underlier.',\n        fieldRef: [\n            {\n                id: 42856,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingDividendPayments (42855) > 0.',\n            },\n            {\n                id: 42857,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingDividendPayments (42855) > 0.',\n            },\n            {\n                id: 42858,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42859,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 42855,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4397,\n        name: 'UnderlyingDividendPeriodGrp',\n        abbrName: 'Period',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingDividendPeriodGrp is a repeating subcomponent within the UnderlyingDividendConditions component. It is used to specify the valuation and payments dates of the dividend leg of a dividend swap.',\n        fieldRef: [\n            {\n                id: 42863,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingDividendPeriods(42862) > 0.',\n            },\n            {\n                id: 42864,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42865,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42866,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides UnderlyingDividendUnderlierRefID(42829). The specified value would be specific to this dividend period instance.',\n            },\n            {\n                id: 42867,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42868,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to this dividend period instance.',\n            },\n            {\n                id: 42869,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42870,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42871,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingDividendPeriodValuationDateOffsetUnit(42872) is specified.',\n            },\n            {\n                id: 42872,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingDividendPeriodValuationDateOffsetPeriod(42871) is specified.',\n            },\n            {\n                id: 42873,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42874,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42875,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42876,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42877,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingDividendPeriodPaymentDateOffsetUnit(42878) is specified.',\n            },\n            {\n                id: 42878,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingDividendPeriodPaymentDateOffsetPeriod(42877) is specified.',\n            },\n            {\n                id: 42879,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42880,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 42881,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4427,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this dividend period instance.',\n            },\n        ],\n        numInGroup: {\n            id: 42862,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4398,\n        name: 'UnderlyingExtraordinaryEventGrp',\n        abbrName: 'ExtrordEvnt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'The UnderlyingExtraordinaryEventGrp is a repeating component within the UnderlyingInstrument component. It is used to report extraordinary and disruptive events applicable to the reference entity that affects the contract.',\n        fieldRef: [\n            {\n                id: 42885,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingExtraordinaryEvents(42884) > 0.',\n            },\n            {\n                id: 42886,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingExtraordinaryEvents(42884) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42884,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4399,\n        name: 'UnderlyingPaymentStreamCompoundingDateGrp',\n        abbrName: 'CmpndgDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamCompoundingDateGrp is a subcomponent of the UnderlyingPaymentStreamCompoundingDates component used to specify predetermined compounding dates.',\n        fieldRef: [\n            {\n                id: 42902,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingPaymentStreamCompoundingDates(42901) > 0.',\n            },\n            {\n                id: 42903,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified it applies not only to the current date instance but to all subsequent date instances in the group until overridden when a new type is specified.',\n            },\n        ],\n        numInGroup: {\n            id: 42901,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4401,\n        name: 'UnderlyingPaymentStreamCompoundingDatesBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamCompoundingDatesBusinessCenterGrp is a repeating subcomponent within the UnderlyingPaymentStreamCompoundingDates component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 42916,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingPaymentStreamCompoundingDatesBusinessCenters(42915) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42915,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4407,\n        name: 'UnderlyingPaymentStreamFixingDateGrp',\n        abbrName: 'FixngDt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamFixingDateGrp is a subcomponent of the UnderlyingPaymentStreamResetDates component used to specify predetermined fixing dates.',\n        fieldRef: [\n            {\n                id: 42956,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingPaymentStreamFixingDates(42955) > 0.',\n            },\n            {\n                id: 42957,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified it applies not only to the current date instance but to all subsequent date instances in the group until overridden when a new type is specified.',\n            },\n        ],\n        numInGroup: {\n            id: 42955,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4409,\n        name: 'UnderlyingPaymentStreamFormulaMathGrp',\n        abbrName: 'Math',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '253',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStreamFormulaMathGrp is a repeating subcomponent within the UnderlyingPaymentStreamFormula component. It is used to specify the set of formulas, sub-formulas and descriptions from which the rate is derived.',\n        fieldRef: [\n            {\n                id: 43111,\n                added: 'FIX.5.0SP2',\n                addedEP: '259',\n                description: 'Required if NoUnderlyingPaymentStreamFormulas(42981) > 0',\n            },\n            {\n                id: 42982,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingPaymentStreamFormulas(42981) > 0.',\n            },\n            {\n                id: 42983,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 42981,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4411,\n        name: 'UnderlyingPaymentStubEndDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStubEndDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingPaymentStubEndDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 42992,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingPaymentStubEndDateBusinessCenters(42991) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42991,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4413,\n        name: 'UnderlyingPaymentStubStartDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingPaymentStubStartDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingPaymentStubStartDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 43001,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingPaymentStubStartDateBusinessCenters(43000) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 43000,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4415,\n        name: 'UnderlyingRateSpreadStepGrp',\n        abbrName: 'RtSpreadStep',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingRateSpreadStepGrp is a repeating subcomponent of UnderlyingRateSpreadSchedule used to specify the step dates and amounts of a basket spread schedule.',\n        fieldRef: [\n            {\n                id: 43006,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingRateSpreadSteps(43005) > 0.',\n            },\n            {\n                id: 43007,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingRateSpreadSteps(43005) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 43005,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4416,\n        name: 'UnderlyingReturnRateDateGrp',\n        abbrName: 'Dt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingReturnRateDateGrp is a repeating subcomponent within the UnderlyingReturnRateGrp component. It is used to specify the equity and dividend valuation dates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 43009,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingReturnRateDates(43008) > 0.',\n            },\n            {\n                id: 43010,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43011,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingReturnRateValuationDateOffsetUnit(43012) is specified.',\n            },\n            {\n                id: 43012,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingReturnRateValuationDateOffsetPeriod(43011) is specified.',\n            },\n            {\n                id: 43013,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43014,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43015,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43016,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingReturnRateValuationStartDateOffsetUnit(43017) is specified.',\n            },\n            {\n                id: 43017,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingReturnRateValuationStartDateOffsetPeriod(43016) is specified.',\n            },\n            {\n                id: 43018,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43019,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43020,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43021,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43022,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingReturnRateValuationEndDateOffsetUnit(43023) is specified.',\n            },\n            {\n                id: 43023,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingReturnRateValuationEndDateOffsetPeriod(43022) is specified.',\n            },\n            {\n                id: 43024,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43025,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43026,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingReturnRateValuationFrequencyUnit(43027) is specified.',\n            },\n            {\n                id: 43027,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'Conditionally required when UnderlyingReturnRateValuationFrequencyPeriod(43026) is specified.',\n            },\n            {\n                id: 43028,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the date roll convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to this instance of the return rate dates.',\n            },\n            {\n                id: 43029,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified value would be specific to payment stream return rate valuation dates.',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4422,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4421,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified, this overrides the business day convention defined in the UnderlyingDateAdjustment component in UnderlyingInstrument. The specified values would be specific to payment stream return rate valuation dates.',\n            },\n        ],\n        numInGroup: {\n            id: 43008,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4417,\n        name: 'UnderlyingReturnRateFXConversionGrp',\n        abbrName: 'FxCnvrsn',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingReturnRateFXConversionGrp is a repeating subcomponent within the UnderlyingReturnRateGrp component. It is used to specify the FX conversion rates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 43031,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingReturnRateFXConversions(43030) > 0.',\n            },\n            {\n                id: 43032,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingReturnRateFXConversions(43030) > 0.',\n            },\n            {\n                id: 43033,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 43030,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4418,\n        name: 'UnderlyingReturnRateGrp',\n        abbrName: 'RtnRt',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        updated: 'FIX.5.0SP2',\n        updatedEP: '259',\n        category: 'Common',\n        description:\n            'UnderlyingReturnRateGrp is a repeating subcomponent within the UnderlyingPaymentStreamFloatingRate component. It is used to specify the multiple return rates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 43035,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingReturnRates(43034) > 0.',\n            },\n            {\n                id: 43036,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43037,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43038,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'If not specified, this is defaulted to the reporting currency.',\n            },\n            {\n                id: 43039,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43040,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43041,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43042,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43043,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43044,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43045,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43046,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43047,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Mutually exclusive with UnderlyingReturnRateQuoteTime(43048).',\n            },\n            {\n                id: 43048,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Mutually exclusive with UnderlyingReturnRateQuoteTimeType(43047).',\n            },\n            {\n                id: 43049,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43050,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43051,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43052,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43053,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43054,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43055,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Mutually exclusive with UnderlyingReturnRateValuationTime(43056)',\n            },\n            {\n                id: 43056,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Mutually exclusive with UnderlyingReturnRateValuationTimeType(43055).',\n            },\n            {\n                id: 43057,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43058,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43059,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        groupRef: [\n            {\n                id: 4420,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4417,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4419,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 4416,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 43034,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4419,\n        name: 'UnderlyingReturnRateInformationSourceGrp',\n        abbrName: 'InfoSrc',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingReturnRateInformationSourceGrp is a repeating subcomponent within the UnderlyingReturnRateGrp component. It is used to specify the information sources for equity prices and FX rates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 43061,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingReturnRateInformationSources(43060) > 0.',\n            },\n            {\n                id: 43062,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43063,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 43060,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4420,\n        name: 'UnderlyingReturnRatePriceGrp',\n        abbrName: 'Px',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingReturnRatePriceGrp is a repeating subcomponent within the UnderlyingReturnRateGrp component. It is used to specify the return rate prices for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 43065,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingReturnRatePrices(43064) > 0.',\n            },\n            {\n                id: 43066,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43067,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n            {\n                id: 43068,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n            },\n        ],\n        numInGroup: {\n            id: 43064,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4421,\n        name: 'UnderlyingReturnRateValuationDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingReturnRateValuationDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingReturnRateValuationDateGrp component. It is used to specify the valuation date business center adjustments for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 43070,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingReturnRateValuationDateBusinessCenters(43069) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 43069,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4422,\n        name: 'UnderlyingReturnRateValuationDateGrp',\n        abbrName: 'Val',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingReturnRateValuationDateGrp is a repeating subcomponent within the UnderlyingReturnRateDateGrp component. It is used to specify the fixed valuation dates for an equity return swap payment stream.',\n        fieldRef: [\n            {\n                id: 43072,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingReturnRateValuationDates(43071) > 0.',\n            },\n            {\n                id: 43073,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description:\n                    'When specified it applies not only to the current date instance but to all subsequent date instances in the group until overridden when a new type is specified.',\n            },\n        ],\n        numInGroup: {\n            id: 43071,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4423,\n        name: 'UnderlyingSettlMethodElectionDateBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingSettlMethodElectionDateBusinessCenterGrp is a repeating subcomponent within the UnderlyingSettlMethodElectionDate component. It is used to specify the set of business centers whose calendars drive the date adjustment. Used only to override the business centers defined in the UnderlyingDateAdjustment component in UnderlyingInstrument.',\n        fieldRef: [\n            {\n                id: 43075,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingSettlMethodElectionDateBusinessCenters(43074) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 43074,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4425,\n        name: 'DividendPeriodBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'DividendPeriodBusinessCenterGrp is a repeating subcomponent within the DividendPeriodGrp component. It is used to specify the set of business centers whose calendars drive the date adjustment.',\n        fieldRef: [\n            {\n                id: 42295,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoDividendPeriodBusinessCenters(42294) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42294,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4426,\n        name: 'LegDividendPeriodBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'LegDividendPeriodBusinessCenterGrp is a repeating subcomponent within the LegDividendPeriodGrp component. It is used to specify the set of business centers whose calendars drive the date adjustment.',\n        fieldRef: [\n            {\n                id: 42387,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoLegDividendPeriodBusinessCenters(42386) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42386,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 4427,\n        name: 'UnderlyingDividendPeriodBusinessCenterGrp',\n        abbrName: 'BizCtr',\n        added: 'FIX.5.0SP2',\n        addedEP: '208',\n        category: 'Common',\n        description:\n            'UnderlyingDividendPeriodBusinessCenterGrp is a repeating subcomponent within the UnderlyingDividendPeriodGrp component. It is used to specify the set of business centers whose calendars drive the date adjustment.',\n        fieldRef: [\n            {\n                id: 42883,\n                added: 'FIX.5.0SP2',\n                addedEP: '208',\n                description: 'Required if NoUnderlyingDividendPeriodBusinessCenters(42882) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 42882,\n            added: 'FIX.5.0SP2',\n            addedEP: '208',\n            description: '',\n        },\n    },\n    {\n        id: 2286,\n        name: 'LegRateSource',\n        abbrName: 'RtSrc',\n        added: 'FIX.Latest',\n        addedEP: '302',\n        category: 'Common',\n        description:\n            'The LegRateSource component is used to identify the source for the rate information as required by the trade for pricing reasons for the instrument leg.',\n        fieldRef: [\n            {\n                id: 3117,\n                added: 'FIX.Latest',\n                addedEP: '302',\n                description: 'Required if NoLegRateSources(3116) > 0.',\n            },\n            {\n                id: 3118,\n                added: 'FIX.Latest',\n                addedEP: '302',\n                description: 'Required if NoLegRateSources(3116) > 0.',\n            },\n            {\n                id: 3119,\n                added: 'FIX.Latest',\n                addedEP: '302',\n                description: 'May be used when LegRateSource(3117)=99 (Other).',\n            },\n            {\n                id: 3120,\n                added: 'FIX.Latest',\n                addedEP: '302',\n            },\n            {\n                id: 3121,\n                added: 'FIX.Latest',\n                addedEP: '302',\n            },\n            {\n                id: 3122,\n                added: 'FIX.Latest',\n                addedEP: '302',\n            },\n            {\n                id: 3123,\n                added: 'FIX.Latest',\n                addedEP: '302',\n                description:\n                    'Conditionally required when LegFXBenchmarkTime(3124) or LegFXBenchmarkBusinessCenter(3125) is specified.',\n            },\n            {\n                id: 3124,\n                added: 'FIX.Latest',\n                addedEP: '302',\n                description:\n                    'Conditionally required when LegFXBenchmarkDate(3123) or LegFXBenchmarkBusinessCenter(3125) is specified.',\n            },\n            {\n                id: 3125,\n                added: 'FIX.Latest',\n                addedEP: '302',\n                description:\n                    'Conditionally required when LegFXBenchmarkDate(3123) or LegFXBenchmarkTime(3124) is specified.',\n            },\n        ],\n        numInGroup: {\n            id: 3116,\n            added: 'FIX.Latest',\n            addedEP: '302',\n        },\n    },\n    {\n        id: 2287,\n        name: 'TestSuiteParameterGrp',\n        abbrName: 'TstStePrm',\n        added: 'FIX.Latest',\n        addedEP: '303',\n        category: 'Testing',\n        description:\n            'TestSuiteParameterGrp is a repeating group used to provide information regarding the input parameters of a test suite for testing.\\n\\nContains names, types and parameter settings to be used for the entire test suite.',\n        fieldRef: [\n            {\n                id: 3127,\n                added: 'FIX.Latest',\n                addedEP: '303',\n                description: 'Required if NoTestSuiteParameters(3126) > 0.',\n            },\n            {\n                id: 3128,\n                added: 'FIX.Latest',\n                addedEP: '303',\n                description: 'Required if NoTestSuiteParameters(3126) > 0.',\n            },\n            {\n                id: 3129,\n                added: 'FIX.Latest',\n                addedEP: '303',\n                description: 'Required if NoTestSuiteParameters(3126) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 3126,\n            added: 'FIX.Latest',\n            addedEP: '303',\n        },\n    },\n    {\n        id: 2288,\n        name: 'TestScenarioParameterGrp',\n        abbrName: 'TstScnroPrm',\n        added: 'FIX.Latest',\n        addedEP: '303',\n        category: 'Testing',\n        description:\n            'TestScenarioParameterGrp is a repeating group used to provide information regarding the input parameters of a test scenario for testing.\\n\\nContains names, types and parameter settings to be used for each test scenario in a test suite.',\n        fieldRef: [\n            {\n                id: 3131,\n                added: 'FIX.Latest',\n                addedEP: '303',\n                description: 'Required if NoTestScenarioParameters(3130) > 0.',\n            },\n            {\n                id: 3132,\n                added: 'FIX.Latest',\n                addedEP: '303',\n                description: 'Required if NoTestScenarioParameters(3130) > 0.',\n            },\n            {\n                id: 3133,\n                added: 'FIX.Latest',\n                addedEP: '303',\n                description: 'Required if NoTestScenarioParameters(3130) > 0.',\n            },\n        ],\n        numInGroup: {\n            id: 3130,\n            added: 'FIX.Latest',\n            addedEP: '303',\n        },\n    },\n];\n", "import { Field as FieldType } from '../fieldtypes/Field.ts';\nimport { Message as MessageType } from '../fieldtypes/Message.ts';\nimport { GROUPS, type ISpecGroups } from '../spec/SpecGroups.ts';\n\n/**\n * Class for managing FIX protocol groups.\n * Provides functionality to find and filter groups based on various criteria.\n * Uses caching to improve performance when looking up groups.\n */\nexport class Groups {\n    /** Array of all available groups from the FIX specification */\n    public groups: ISpecGroups[] = GROUPS;\n    /** Cache map for looking up groups by their ID */\n    public cacheMap = new Map<number, ISpecGroups>();\n    /** Cache map for looking up groups by their name */\n    public cacheMapByName = new Map<string, ISpecGroups>();\n\n    /**\n     * Creates a new Groups instance and initializes the cache maps.\n     * Populates both the ID-based and name-based cache maps for efficient lookups.\n     */\n    constructor() {\n        this.groups.forEach((component) => {\n            this.cacheMap.set(component.id, component);\n        });\n        this.groups.forEach((component) => {\n            this.cacheMapByName.set(component.name, component);\n        });\n    }\n\n    /**\n     * Finds a group by its component ID.\n     *\n     * @param {number} componentId - The ID of the group to find\n     * @returns {ISpecGroups | undefined} The found group, or undefined if not found\n     */\n    public find(componentId: number): ISpecGroups | undefined {\n        return this.cacheMap.get(componentId);\n    }\n\n    /**\n     * Finds a group by its name.\n     *\n     * @param {string} name - The name of the group to find\n     * @returns {ISpecGroups | undefined} The found group, or undefined if not found\n     */\n    public findByName(name: string): ISpecGroups | undefined {\n        return this.cacheMapByName.get(name);\n    }\n\n    /**\n     * Filters and finds a group based on the numInGroup tag and message type.\n     * Handles special cases where multiple groups share the same numInGroup ID\n     * but are used by different message types.\n     * Falls back to searching by numInGroup ID if no special case matches.\n     *\n     * @param {number} tag - The tag number to filter by (e.g., NoMDEntries, NoOrders)\n     * @param {string} messageType - The type of the message being processed\n     * @returns {ISpecGroups | undefined} The found group, or undefined if not found\n     */\n    public filterMapByNumInGroupId(tag: number, messageType: string): ISpecGroups | undefined {\n        // Handle NoMDEntries (tag 268) - multiple groups share this numInGroup ID\n        // If tag === 268 and MessageType W then we have a MDFullGrp (pick group 2031)\n        if (tag === FieldType.NoMDEntries && messageType === MessageType.MarketDataSnapshotFullRefresh) {\n            return this.find(2031);\n        }\n\n        // If tag === 268 and MessageType X then we have a MDIncGrp (pick group 2032)\n        if (tag === FieldType.NoMDEntries && messageType === MessageType.MarketDataIncrementalRefresh) {\n            return this.find(2032);\n        }\n\n        // Handle NoOrders (tag 73) - multiple groups share this numInGroup ID\n        // NewOrderList (E) uses ListOrdGrp (2030)\n        if (tag === FieldType.NoOrders && messageType === MessageType.NewOrderList) {\n            return this.find(2030);\n        }\n\n        // ListStatus (N) uses OrdListStatGrp (2037)\n        if (tag === FieldType.NoOrders && messageType === MessageType.ListStatus) {\n            return this.find(2037);\n        }\n\n        // AllocationInstruction (J) uses OrdAllocGrp (2036)\n        if (tag === FieldType.NoOrders && messageType === MessageType.AllocationInstruction) {\n            return this.find(2036);\n        }\n\n        for (const [, value] of this.cacheMap.entries()) {\n            if (value.numInGroup?.id === tag) {\n                return value;\n            }\n        }\n\n        return undefined;\n    }\n}\n", "/**\n * Type of account associated with an order\n * - Tag: 581\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AccountType = Object.freeze({\n    /** Account is carried on customer side of the books */\n    CarriedCustomerSide: 1,\n    /** Account is carried on non-customer side of books */\n    CarriedNonCustomerSide: 2,\n    /** House Trader */\n    HouseTrader: 3,\n    /** Floor Trader */\n    FloorTrader: 4,\n    /** Account is carried on non-customer side of books and is cross margined */\n    CarriedNonCustomerSideCrossMargined: 6,\n    /** Account is house trader and is cross margined */\n    HouseTraderCrossMargined: 7,\n    /** Joint back office account (JBO) */\n    JointBackOfficeAccount: 8,\n    /** Equities specialist */\n    EquitiesSpecialist: 9,\n    /** Options market maker */\n    OptionsMarketMaker: 10,\n    /** Options firm account */\n    OptionsFirmAccount: 11,\n    /** Account for customer and non-customer orders\n        Account aggregates orders from customers and non-customers.\n        In the context of IIROC UMIR this account type can be used for bundled orders (BU), i.e. orders including client, non-client and principal orders. */\n    AccountCustomerNonCustomerOrders: 12,\n    /** Account for orders from multiple customers\n        Account aggregates orders from multiple customers.\n        In the context of IIROC UMIR this account type can be used for multiple client orders (MC), i.e. orders including orders from more than one client but no principal or non-client orders. */\n    AccountOrdersMultipleCustomers: 13,\n} as const);\n\nexport type AccountType = (typeof AccountType)[keyof typeof AccountType];\n", "/**\n * Used to identify the source of the Account (1) code. This is especially useful if the account is a new account that the Respondent may not have setup yet in their system.\n * - Tag: 660\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AcctIDSource = Object.freeze({\n    /** BIC */\n    BIC: 1,\n    /** SID Code */\n    SIDCode: 2,\n    /** TFM (GSPTA) */\n    TFM: 3,\n    /** OMGEO (Alert ID) */\n    OMGEO: 4,\n    /** DTCC Code */\n    DTCCCode: 5,\n    /** Special Segregated Account ID\n        Also referred to as SPSA ID. The Special Segregated Account identifier issued by Hong Kong Exchanges and Clearing. */\n    SPSAID: 6,\n    /** Other (custom or proprietary) */\n    Other: 99,\n} as const);\n\nexport type AcctIDSource = (typeof AcctIDSource)[keyof typeof AcctIDSource];\n", "/**\n * Identifies the type of adjustment.\n * - Tag: 334\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const Adjustment = Object.freeze({\n    /** Cancel */\n    Cancel: 1,\n    /** Error */\n    Error: 2,\n    /** Correction */\n    Correction: 3,\n} as const);\n\nexport type Adjustment = (typeof Adjustment)[keyof typeof Adjustment];\n", "/**\n * Type of adjustment to be applied. Used for Position Change Submission (PCS), Position Adjustment (PAJ), and Customer Gross Margin (CGM).\n * - Tag: 718\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AdjustmentType = Object.freeze({\n    /** Process request as margin disposition */\n    ProcessRequestAsMarginDisposition: 0,\n    /** Delta plus */\n    DeltaPlus: 1,\n    /** Delta minus */\n    DeltaMinus: 2,\n    /** Final */\n    Final: 3,\n    /** Customer specific position */\n    CustomerSpecificPosition: 4,\n} as const);\n\nexport type AdjustmentType = (typeof AdjustmentType)[keyof typeof AdjustmentType];\n", "/**\n * Broker's side of advertised trade\n * - Tag: 4\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const AdvSide = Object.freeze({\n    /** Buy */\n    Buy: 'B',\n    /** Sell */\n    Sell: 'S',\n    /** Trade */\n    Trade: 'T',\n    /** Cross */\n    Cross: 'X',\n} as const);\n\nexport type AdvSide = (typeof AdvSide)[keyof typeof AdvSide];\n", "/**\n * Identifies advertisement message transaction type\n * - Tag: 5\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const AdvTransType = Object.freeze({\n    /** New */\n    New: 'N',\n    /** Cancel */\n    Cancel: 'C',\n    /** Replace */\n    Replace: 'R',\n} as const);\n\nexport type AdvTransType = (typeof AdvTransType)[keyof typeof AdvTransType];\n", "/**\n * Specifies the affirmation status of the confirmation.\n * - Tag: 940\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AffirmStatus = Object.freeze({\n    /** Received */\n    Received: 1,\n    /** Confirm rejected, i.e. not affirmed */\n    ConfirmRejected: 2,\n    /** Affirmed */\n    Affirmed: 3,\n} as const);\n\nexport type AffirmStatus = (typeof AffirmStatus)[keyof typeof AffirmStatus];\n", "/**\n * Specifies whether or not book entries should be aggregated. (Not specified) = broker option\n * - Tag: 266\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const AggregatedBook = Object.freeze({\n    /** book entries to be aggregated */\n    BookEntriesToBeAggregated: 'Y',\n    /** book entries should not be aggregated */\n    BookEntriesShouldNotBeAggregated: 'N',\n} as const);\n\nexport type AggregatedBook = (typeof AggregatedBook)[keyof typeof AggregatedBook];\n", "/**\n * Used to identify whether the order initiator is an aggressor or not in the trade.\n * - Tag: 1057\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const AggressorIndicator = Object.freeze({\n    /** Order initiator is aggressor */\n    OrderInitiatorIsAggressor: 'Y',\n    /** Order initiator is passive */\n    OrderInitiatorIsPassive: 'N',\n} as const);\n\nexport type AggressorIndicator = (typeof AggressorIndicator)[keyof typeof AggressorIndicator];\n", "/**\n * Status of the report being responded to.\n * - Tag: 3021\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AlgoCertificateReportStatus = Object.freeze({\n    /** Received, not yet processed */\n    Received: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Rejected\n        Rejection reason provided in RejectText(1328). */\n    Rejected: 2,\n} as const);\n\nexport type AlgoCertificateReportStatus =\n    (typeof AlgoCertificateReportStatus)[keyof typeof AlgoCertificateReportStatus];\n", "/**\n * Identifies the message transaction type.\n * - Tag: 3020\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AlgoCertificateReportTransType = Object.freeze({\n    /** New */\n    New: 0,\n    /** Cancel */\n    Cancel: 1,\n    /** Replace */\n    Replace: 2,\n} as const);\n\nexport type AlgoCertificateReportTransType =\n    (typeof AlgoCertificateReportTransType)[keyof typeof AlgoCertificateReportTransType];\n", "/**\n * Specifies the type of business event related to an algo certification report.\n * - Tag: 3078\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AlgoCertificateReportType = Object.freeze({\n    /** Certificate information\n        The recipient of the report is informed about a certificate. This can be used when sending an approved certificate to a venue for registration. */\n    CertificateInformation: 0,\n    /** Certificate state changed\n        The recipient of the report is informed that the status of a certificate has changed. The new state is provided with AlgoCertificateStatus(3022). */\n    CertificateStateChanged: 1,\n    /** Certificate revoked\n        The recipient of the report is informed that the certificate has been revoked. This can be used when revoking a registered certificate from a venue. */\n    CertificateRevoked: 2,\n} as const);\n\nexport type AlgoCertificateReportType = (typeof AlgoCertificateReportType)[keyof typeof AlgoCertificateReportType];\n", "/**\n * Status of the AlgoCertificateRequest(35=EH) message being responded to.\n * - Tag: 3017\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AlgoCertificateRequestStatus = Object.freeze({\n    /** Received, not yet processed */\n    Received: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Rejected\n        Rejection reason provided in RejectText(1328). */\n    Rejected: 2,\n} as const);\n\nexport type AlgoCertificateRequestStatus =\n    (typeof AlgoCertificateRequestStatus)[keyof typeof AlgoCertificateRequestStatus];\n", "/**\n * Identifies the message transaction type.\n * - Tag: 3016\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AlgoCertificateRequestTransType = Object.freeze({\n    /** New */\n    New: 0,\n    /** Cancel */\n    Cancel: 1,\n    /** Replace */\n    Replace: 2,\n} as const);\n\nexport type AlgoCertificateRequestTransType =\n    (typeof AlgoCertificateRequestTransType)[keyof typeof AlgoCertificateRequestTransType];\n", "/**\n * Specifies the type of business event related to an algo certification request.\n * - Tag: 3077\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AlgoCertificateRequestType = Object.freeze({\n    /** Certificate information\n        The recipient of the request is asked to provide certificates based on the criteria defined as part of the request. */\n    CertificateInformation: 0,\n    /** Generate certificate\n        The recipient of the request is asked to generate a new certificate based on the information defined or referenced in the request. */\n    GenerateCertificate: 1,\n    /** Change certificate status\n        The recipient of the request is asked to update the status of the certificate referenced in the request. The requested status is provided with AlgoCertificateStatus(3022). */\n    ChangeCertificateStatus: 2,\n    /** Forward certificate\n        The recipient of the request is asked to submit the certificate referenced in the request to the venue identified in the TargetParties component. */\n    ForwardCertificate: 3,\n} as const);\n\nexport type AlgoCertificateRequestType = (typeof AlgoCertificateRequestType)[keyof typeof AlgoCertificateRequestType];\n", "/**\n * Status of the certification as provided by the regulatory authority.\n * - Tag: 3022\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AlgoCertificateStatus = Object.freeze({\n    /** Draft\n        Algo certificate created. */\n    Draft: 0,\n    /** Approved\n        Algo certificate approved by authorized person. */\n    Approved: 1,\n    /** Submitted\n        Algo certificate received by at least one venue included in the certificate. */\n    Submitted: 2,\n    /** Registered\n        Algo certificate accepted and registered by at least one venue included in the certificate. */\n    Registered: 3,\n    /** Cancelled\n        Algo certificate terminated by the issuer prior to the submission to any venue or after revoking from the venue(s). */\n    Cancelled: 4,\n} as const);\n\nexport type AlgoCertificateStatus = (typeof AlgoCertificateStatus)[keyof typeof AlgoCertificateStatus];\n", "/**\n * Indicates that the order or trade originates from a computer program or algorithm requiring little-to-no human intervention.\n * - Tag: 2667\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AlgorithmicTradeIndicator = Object.freeze({\n    /** Non-algorithmic trade */\n    NonAlgorithmicTrade: 0,\n    /** Algorithmic trade\n        In the context of ESMA MiFID II, a trade has to be flagged as \"algorithmic\" if at least one of the matched orders was submitted by a trading algorithm. See Directive 2014/65/EU Article 4(1)(39). */\n    AlgorithmicTrade: 1,\n} as const);\n\nexport type AlgorithmicTradeIndicator = (typeof AlgorithmicTradeIndicator)[keyof typeof AlgorithmicTradeIndicator];\n", "/**\n * Type of account associated with a confirmation or other trade-level message\n * - Tag: 798\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocAccountType = Object.freeze({\n    /** Account is carried pn customer side of books */\n    CarriedCustomerSide: 1,\n    /** Account is carried on non-customer side of books */\n    CarriedNonCustomerSide: 2,\n    /** House trader */\n    HouseTrader: 3,\n    /** Floor trader */\n    FloorTrader: 4,\n    /** Account is carried on non-customer side of books and is cross margined */\n    CarriedNonCustomerSideCrossMargined: 6,\n    /** Account is house trader and is cross margined */\n    HouseTraderCrossMargined: 7,\n    /** Joint back office account (JBO) */\n    JointBackOfficeAccount: 8,\n} as const);\n\nexport type AllocAccountType = (typeof AllocAccountType)[keyof typeof AllocAccountType];\n", "/**\n * An indicator to override the normal procedure to roll up allocations for the same take-up firm.\n * - Tag: 1735\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocationRollupInstruction = Object.freeze({\n    /** Roll up */\n    Rollup: 0,\n    /** Do not roll up */\n    DoNotRollUp: 1,\n} as const);\n\nexport type AllocationRollupInstruction =\n    (typeof AllocationRollupInstruction)[keyof typeof AllocationRollupInstruction];\n", "/**\n * Reason for cancelling or replacing an Allocation Instruction or Allocation Report message\n * - Tag: 796\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocCancReplaceReason = Object.freeze({\n    /** Original details incomplete/incorrect */\n    OriginalDetailsIncomplete: 1,\n    /** Change in underlying order details */\n    ChangeInUnderlyingOrderDetails: 2,\n    /** Cancelled by give-up firm */\n    CancelledByGiveupFirm: 3,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type AllocCancReplaceReason = (typeof AllocCancReplaceReason)[keyof typeof AllocCancReplaceReason];\n", "/**\n * Status of the trade give-up relative to the group identified in AllocGroupID(1730).\n * - Tag: 2767\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocGroupStatus = Object.freeze({\n    /** Added\n        This trade has been associated with the group for the first time. */\n    Added: 0,\n    /** Canceled\n        This trade has been removed from the group. */\n    Canceled: 1,\n    /** Replaced\n        This trade already in the group has been updated. */\n    Replaced: 2,\n    /** Changed\n        An allocated trade or give-up has moved from one allocation group to another. */\n    Changed: 3,\n    /** Pending\n        A request to assign or change an allocation group is pending. */\n    Pending: 4,\n} as const);\n\nexport type AllocGroupStatus = (typeof AllocGroupStatus)[keyof typeof AllocGroupStatus];\n", "/**\n * Type of trade attribute defining a subgroup in an allocation group.\n * - Tag: 2980\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocGroupSubQtyType = Object.freeze({\n    /** Trade type */\n    TradeType: 1,\n    /** Trade publication indicator */\n    TradePublicationIndicator: 2,\n    /** Order handling instruction */\n    OrderHandlingInstruction: 3,\n} as const);\n\nexport type AllocGroupSubQtyType = (typeof AllocGroupSubQtyType)[keyof typeof AllocGroupSubQtyType];\n", "/**\n * Indicates how the receiver (i.e. third party) of allocation information should handle/process the account details.\n * - Tag: 209\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocHandlInst = Object.freeze({\n    /** Match */\n    Match: 1,\n    /** Forward */\n    Forward: 2,\n    /** Forward and Match */\n    ForwardAndMatch: 3,\n    /** Auto claim give-up\n        Indicates that the give-up and take-up party are the same and that trade give-up is to be claimed automatically. */\n    AutoClaimGiveUp: 4,\n} as const);\n\nexport type AllocHandlInst = (typeof AllocHandlInst)[keyof typeof AllocHandlInst];\n", "/**\n * Response to allocation to be communicated to a counterparty through an intermediary, i.e. clearing house. Used in conjunction with AllocType = \"Request to Intermediary\" and AllocReportType = \"Request to Intermediary\"\n * - Tag: 808\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocIntermedReqType = Object.freeze({\n    /** Pending Accept */\n    PendingAccept: 1,\n    /** Pending Release */\n    PendingRelease: 2,\n    /** Pending Reversal */\n    PendingReversal: 3,\n    /** Accept */\n    Accept: 4,\n    /** Block Level Reject */\n    BlockLevelReject: 5,\n    /** Account Level Reject */\n    AccountLevelReject: 6,\n} as const);\n\nexport type AllocIntermedReqType = (typeof AllocIntermedReqType)[keyof typeof AllocIntermedReqType];\n", "/**\n * Identifies the type of Allocation linkage when AllocLinkID(196) is used.\n * - Tag: 197\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocLinkType = Object.freeze({\n    /** FX Netting */\n    FXNetting: 0,\n    /** FX Swap */\n    FXSwap: 1,\n} as const);\n\nexport type AllocLinkType = (typeof AllocLinkType)[keyof typeof AllocLinkType];\n", "/**\n * Specifies the method under which a trade quantity was allocated.\n * - Tag: 1002\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocMethod = Object.freeze({\n    /** Automatic */\n    Automatic: 1,\n    /** Guarantor */\n    Guarantor: 2,\n    /** Manual */\n    Manual: 3,\n    /** Broker assigned */\n    BrokerAssigned: 4,\n} as const);\n\nexport type AllocMethod = (typeof AllocMethod)[keyof typeof AllocMethod];\n", "/**\n * Indicates how the orders being booked and allocated by an AllocationInstruction or AllocationReport message are identified, e.g. by explicit definition in the OrdAllocGrp or ExecAllocGrp components, or not identified explicitly.\n * - Tag: 857\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocNoOrdersType = Object.freeze({\n    /** Not specified */\n    NotSpecified: 0,\n    /** Explicit list provided */\n    ExplicitListProvided: 1,\n} as const);\n\nexport type AllocNoOrdersType = (typeof AllocNoOrdersType)[keyof typeof AllocNoOrdersType];\n", "/**\n * Indicates whether the resulting position after a trade should be an opening position or closing position. Used for omnibus accounting - where accounts are held on a gross basis instead of being netted together.\n * - Tag: 1047\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const AllocPositionEffect = Object.freeze({\n    /** Open */\n    Open: 'O',\n    /** Close */\n    Close: 'C',\n    /** Rolled */\n    Rolled: 'R',\n    /** FIFO */\n    FIFO: 'F',\n} as const);\n\nexport type AllocPositionEffect = (typeof AllocPositionEffect)[keyof typeof AllocPositionEffect];\n", "/**\n * Identifies reason for rejection.\n * - Tag: 88\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocRejCode = Object.freeze({\n    /** Unknown or missing account(s) */\n    UnknownAccount: 0,\n    /** Incorrect or missing block quantity */\n    IncorrectQuantity: 1,\n    /** Incorrect or missing average price */\n    IncorrectAveragePrice: 2,\n    /** Unknown executing broker mnemonic */\n    UnknownExecutingBrokerMnemonic: 3,\n    /** Incorrect or missing commission */\n    CommissionDifference: 4,\n    /** Unknown OrderID(37) */\n    UnknownOrderID: 5,\n    /** Unknown ListID(66) */\n    UnknownListID: 6,\n    /** Other (further in Text (58)) */\n    OtherSeeText: 7,\n    /** Incorrect or missing allocated quantity */\n    IncorrectAllocatedQuantity: 8,\n    /** Calculation difference */\n    CalculationDifference: 9,\n    /** Unknown or Stale ExecID(17) */\n    UnknownOrStaleExecID: 10,\n    /** Mismatched data */\n    MismatchedData: 11,\n    /** Unknown ClOrdID(11) */\n    UnknownClOrdID: 12,\n    /** Warehouse request rejected */\n    WarehouseRequestRejected: 13,\n    /** Duplicate or missing IndividualAllocID(467) */\n    DuplicateOrMissingIndividualAllocID: 14,\n    /** Trade not recognized */\n    TradeNotRecognized: 15,\n    /** Trade previously allocated */\n    DuplicateTrade: 16,\n    /** Incorrect or missing instrument */\n    IncorrectOrMissingInstrument: 17,\n    /** Incorrect or missing settlement date */\n    IncorrectOrMissingSettlDate: 18,\n    /** Incorrect or missing fund ID or fund name */\n    IncorrectOrMissingFundIDOrFundName: 19,\n    /** Incorrect or missing settlement instructions */\n    IncorrectOrMissingSettlInstructions: 20,\n    /** Incorrect or missing fees */\n    IncorrectOrMissingFees: 21,\n    /** Incorrect or missing tax */\n    IncorrectOrMissingTax: 22,\n    /** Unknown or missing party */\n    UnknownOrMissingParty: 23,\n    /** Incorrect or missing side */\n    IncorrectOrMissingSide: 24,\n    /** Incorrect or missing net-money */\n    IncorrectOrMissingNetMoney: 25,\n    /** Incorrect or missing trade date */\n    IncorrectOrMissingTradeDate: 26,\n    /** Incorrect or missing settlement currency instructions */\n    IncorrectOrMissingSettlCcyInstructions: 27,\n    /** Incorrrect or missing ProcessCode(81) */\n    IncorrectOrMissingProcessCode: 28,\n    /** Other\n        Use RejectText(1328) for further reject reasons. */\n    Other: 99,\n} as const);\n\nexport type AllocRejCode = (typeof AllocRejCode)[keyof typeof AllocRejCode];\n", "/**\n * Describes the specific type or purpose of an Allocation Report message\n * - Tag: 794\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocReportType = Object.freeze({\n    /** Preliminary request to intermediary */\n    PreliminaryRequestToIntermediary: 2,\n    /** Sellside calculated using preliminary (includes MiscFees and NetMoney) */\n    SellsideCalculatedUsingPreliminary: 3,\n    /** Sellside calculated without preliminary (sent unsolicited by sellside, includes MiscFees and NetMoney) */\n    SellsideCalculatedWithoutPreliminary: 4,\n    /** Warehouse recap */\n    WarehouseRecap: 5,\n    /** Request to intermediary */\n    RequestToIntermediary: 8,\n    /** Accept */\n    Accept: 9,\n    /** Reject */\n    Reject: 10,\n    /** Accept Pending */\n    AcceptPending: 11,\n    /** Complete */\n    Complete: 12,\n    /** Reverse Pending */\n    ReversePending: 14,\n    /** Give-up */\n    Giveup: 15,\n    /** Take-up */\n    Takeup: 16,\n    /** Reversal */\n    Reversal: 17,\n    /** Alleged reversal */\n    Alleged: 18,\n    /** Sub-allocation give-up */\n    SubAllocationGiveup: 19,\n} as const);\n\nexport type AllocReportType = (typeof AllocReportType)[keyof typeof AllocReportType];\n", "/**\n * Status of the AllocationInstructionAlertRequest(35=DU).\n * - Tag: 2768\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocRequestStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Rejected */\n    Rejected: 1,\n} as const);\n\nexport type AllocRequestStatus = (typeof AllocRequestStatus)[keyof typeof AllocRequestStatus];\n", "/**\n * Identifies the status of a reversal transaction.\n * - Tag: 1738\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocReversalStatus = Object.freeze({\n    /** Completed */\n    Completed: 0,\n    /** Refused */\n    Refused: 1,\n    /** Cancelled */\n    Cancelled: 2,\n} as const);\n\nexport type AllocReversalStatus = (typeof AllocReversalStatus)[keyof typeof AllocReversalStatus];\n", "/**\n * Used to indicate whether settlement instructions are provided on an allocation instruction message, and if not, how they are to be derived.\n * - Tag: 780\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocSettlInstType = Object.freeze({\n    /** Use default instructions */\n    UseDefaultInstructions: 0,\n    /** Derive from parameters provided */\n    DeriveFromParametersProvided: 1,\n    /** Full details provided */\n    FullDetailsProvided: 2,\n    /** SSI DB IDs provided */\n    SSIDBIDsProvided: 3,\n    /** Phone for instructions */\n    PhoneForInstructions: 4,\n} as const);\n\nexport type AllocSettlInstType = (typeof AllocSettlInstType)[keyof typeof AllocSettlInstType];\n", "/**\n * Identifies status of allocation.\n * - Tag: 87\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocStatus = Object.freeze({\n    /** Accepted (successfully processed) */\n    Accepted: 0,\n    /** Block level reject */\n    BlockLevelReject: 1,\n    /** Account level reject */\n    AccountLevelReject: 2,\n    /** Received (received not yet processed) */\n    Received: 3,\n    /** Incomplete */\n    Incomplete: 4,\n    /** Rejected by intermediary */\n    RejectedByIntermediary: 5,\n    /** Allocation pending */\n    AllocationPending: 6,\n    /** Reversed */\n    Reversed: 7,\n    /** Cancelled by intermediary */\n    CancelledByIntermediary: 8,\n    /** Claimed */\n    Claimed: 9,\n    /** Refused */\n    Refused: 10,\n    /** Pending give-up approval */\n    PendingGiveUpApproval: 11,\n    /** Cancelled */\n    Cancelled: 12,\n    /** Pending take-up approval */\n    PendingTakeUpApproval: 13,\n    /** Reversal pending */\n    ReversalPending: 14,\n} as const);\n\nexport type AllocStatus = (typeof AllocStatus)[keyof typeof AllocStatus];\n", "/**\n * Identifies allocation transaction type *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" ***\n * - Tag: 71\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const AllocTransType = Object.freeze({\n    /** New */\n    New: '0',\n    /** Replace */\n    Replace: '1',\n    /** Cancel */\n    Cancel: '2',\n    /** Reversal */\n    Reversal: '6',\n} as const);\n\nexport type AllocTransType = (typeof AllocTransType)[keyof typeof AllocTransType];\n", "/**\n * Describes the specific type or purpose of an Allocation message (i.e. \"Buyside Calculated\")\n    (see Volume : \"Glossary\" for value definitions)\n    *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" ***\n * - Tag: 626\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AllocType = Object.freeze({\n    /** Calculated (includes MiscFees and NetMoney) */\n    Calculated: 1,\n    /** Preliminary (without MiscFees and NetMoney) */\n    Preliminary: 2,\n    /** Ready-To-Book */\n    ReadyToBook: 5,\n    /** Warehouse instruction */\n    WarehouseInstruction: 7,\n    /** Request to intermediary */\n    RequestToIntermediary: 8,\n    /** Accept */\n    Accept: 9,\n    /** Reject */\n    Reject: 10,\n    /** Accept Pending */\n    AcceptPending: 11,\n    /** Incomplete group */\n    IncompleteGroup: 12,\n    /** Complete group */\n    CompleteGroup: 13,\n    /** Reversal Pending */\n    ReversalPending: 14,\n    /** Reopen group */\n    ReopenGroup: 15,\n    /** Cancel group */\n    CancelGroup: 16,\n    /** Give-up */\n    Giveup: 17,\n    /** Take-up */\n    Takeup: 18,\n    /** Refuse take-up */\n    RefuseTakeup: 19,\n    /** Initiate reversal */\n    InitiateReversal: 20,\n    /** Reverse */\n    Reverse: 21,\n    /** Refuse reversal */\n    RefuseReversal: 22,\n    /** Sub-allocation give-up */\n    SubAllocationGiveup: 23,\n    /** Approve give-up */\n    ApproveGiveup: 24,\n    /** Approve take-up */\n    ApproveTakeup: 25,\n    /** Notional value average price group allocation\n        Used when conducting notional value average price (NVAP) group allocation with a clearinghouse. */\n    NotionalValueAveragePxGroupAlloc: 26,\n} as const);\n\nexport type AllocType = (typeof AllocType)[keyof typeof AllocType];\n", "/**\n * Indicates whether application level recovery is needed.\n * - Tag: 1744\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ApplLevelRecoveryIndicator = Object.freeze({\n    /** Application level recovery is not needed (default) */\n    NoApplRecoveryNeeded: 0,\n    /** Application level recovery is needed */\n    ApplRecoveryNeeded: 1,\n} as const);\n\nexport type ApplLevelRecoveryIndicator = (typeof ApplLevelRecoveryIndicator)[keyof typeof ApplLevelRecoveryIndicator];\n", "/**\n * Action to take to resolve an application message queue (backlog).\n * - Tag: 815\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ApplQueueAction = Object.freeze({\n    /** No Action Taken */\n    NoActionTaken: 0,\n    /** Queue Flushed */\n    QueueFlushed: 1,\n    /** Overlay Last */\n    OverlayLast: 2,\n    /** End Session */\n    EndSession: 3,\n} as const);\n\nexport type ApplQueueAction = (typeof ApplQueueAction)[keyof typeof ApplQueueAction];\n", "/**\n * Resolution taken when ApplQueueDepth (813) exceeds ApplQueueMax (812) or system specified maximum queue size.\n * - Tag: 814\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ApplQueueResolution = Object.freeze({\n    /** No Action Taken */\n    NoActionTaken: 0,\n    /** Queue Flushed */\n    QueueFlushed: 1,\n    /** Overlay Last */\n    OverlayLast: 2,\n    /** End Session */\n    EndSession: 3,\n} as const);\n\nexport type ApplQueueResolution = (typeof ApplQueueResolution)[keyof typeof ApplQueueResolution];\n", "/**\n * Type of report\n * - Tag: 1426\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ApplReportType = Object.freeze({\n    /** Reset ApplSeqNum to new value specified in ApplNewSeqNum(1399) */\n    ApplSeqNumReset: 0,\n    /** Reports that the last message has been sent for the ApplIDs Refer to RefApplLastSeqNum(1357) for the application sequence number of the last message. */\n    LastMessageSent: 1,\n    /** Heartbeat message indicating that Application identified by RefApplID(1355) is still alive. Refer to RefApplLastSeqNum(1357) for the application sequence number of the previous message. */\n    ApplicationAlive: 2,\n    /** Application message re-send completed. */\n    ResendComplete: 3,\n} as const);\n\nexport type ApplReportType = (typeof ApplReportType)[keyof typeof ApplReportType];\n", "/**\n * Type of Application Message Request being made.\n * - Tag: 1347\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ApplReqType = Object.freeze({\n    /** Retransmission of application messages for the specified Applications */\n    Retransmission: 0,\n    /** Subscription to the specified Applications */\n    Subscription: 1,\n    /** Request for the last ApplLastSeqNum published for the specified Applications */\n    RequestLastSeqNum: 2,\n    /** Request valid set of Applications */\n    RequestApplications: 3,\n    /** Unsubscribe to the specified Applications */\n    Unsubscribe: 4,\n    /** Cancel retransmission */\n    CancelRetransmission: 5,\n    /** Cancel retransmission and unsubscribe to the specified applications */\n    CancelRetransmissionUnsubscribe: 6,\n} as const);\n\nexport type ApplReqType = (typeof ApplReqType)[keyof typeof ApplReqType];\n", "/**\n * Used to return an error code or text associated with a response to an Application Request.\n * - Tag: 1354\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ApplResponseError = Object.freeze({\n    /** Application does not exist */\n    ApplicationDoesNotExist: 0,\n    /** Messages requested are not available */\n    MessagesRequestedAreNotAvailable: 1,\n    /** User not authorized for application */\n    UserNotAuthorizedForApplication: 2,\n} as const);\n\nexport type ApplResponseError = (typeof ApplResponseError)[keyof typeof ApplResponseError];\n", "/**\n * Used to indicate the type of acknowledgement being sent.\n * - Tag: 1348\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ApplResponseType = Object.freeze({\n    /** Request successfully processed */\n    RequestSuccessfullyProcessed: 0,\n    /** Application does not exist */\n    ApplicationDoesNotExist: 1,\n    /** Messages not available */\n    MessagesNotAvailable: 2,\n} as const);\n\nexport type ApplResponseType = (typeof ApplResponseType)[keyof typeof ApplResponseType];\n", "/**\n * Specifies the application layer version being applied at the message level.\n * - Tag: 1128\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ApplVerID = Object.freeze({\n    /** FIX27 */\n    FIX27: '0',\n    /** FIX30 */\n    FIX30: '1',\n    /** FIX40 */\n    FIX40: '2',\n    /** FIX41 */\n    FIX41: '3',\n    /** FIX42 */\n    FIX42: '4',\n    /** FIX43 */\n    FIX43: '5',\n    /** FIX44 */\n    FIX44: '6',\n    /** FIX50 */\n    FIX50: '7',\n    /** FIX50SP1 */\n    FIX50SP1: '8',\n    /** FIX50SP2 */\n    FIX50SP2: '9',\n    /** FIXLatest */\n    FIXLatest: '10',\n} as const);\n\nexport type ApplVerID = (typeof ApplVerID)[keyof typeof ApplVerID];\n", "/**\n * A trade that is being submitted for a trade date prior to the current trade or clearing date, e.g. in an open outcry market an out trade being submitted for the previous trading session or trading day.\n * - Tag: 1015\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const AsOfIndicator = Object.freeze({\n    /** false - trade is not an AsOf trade */\n    False: '0',\n    /** true - trade is an AsOf trade */\n    True: '1',\n} as const);\n\nexport type AsOfIndicator = (typeof AsOfIndicator)[keyof typeof AsOfIndicator];\n", "/**\n * The broad asset category for assessing risk exposure.\n * - Tag: 1938\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AssetClass = Object.freeze({\n    /** Interest rate */\n    InterestRate: 1,\n    /** Currency */\n    Currency: 2,\n    /** Credit */\n    Credit: 3,\n    /** Equity */\n    Equity: 4,\n    /** Commodity */\n    Commodity: 5,\n    /** Other */\n    Other: 6,\n    /** Cash */\n    Cash: 7,\n    /** Debt */\n    Debt: 8,\n    /** Fund\n        Such as mutual fund, collective investment vehicle, investment program, specialized account program. */\n    Fund: 9,\n    /** Loan facility */\n    LoanFacility: 10,\n    /** Index\n        A main index identified as a security type, for example under EU SFTR reporting. */\n    Index: 11,\n} as const);\n\nexport type AssetClass = (typeof AssetClass)[keyof typeof AssetClass];\n", "/**\n * Indicates the broad product or asset classification. May be used to provide grouping for the product taxonomy (Product(460), SecurityType(167), etc.) and/or the risk taxonomy (AssetClass(1938), AssetSubClass(1939), AssetType(1940), etc.).\n * - Tag: 2210\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AssetGroup = Object.freeze({\n    /** Financials\n        A categorization which usually includes rates, foreign exchange, credit, bonds and equity products or assets. */\n    Financials: 1,\n    /** Commodities\n        A categorization which usually includes hard commodities such as agricultural, metals, freight, energy products or assets. */\n    Commodities: 2,\n    /** Alternative investments\n        A categorization which usually includes weather, housing, and commodity indices products or assets. */\n    AlternativeInvestments: 3,\n} as const);\n\nexport type AssetGroup = (typeof AssetGroup)[keyof typeof AssetGroup];\n", "/**\n * The subcategory description of the asset class.\n * - Tag: 1939\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AssetSubClass = Object.freeze({\n    /** Single currency */\n    SingleCurrency: 1,\n    /** Cross currency */\n    CrossCurrency: 2,\n    /** Basket [for multi-currency] */\n    Basket: 3,\n    /** Single name */\n    SingleName: 4,\n    /** Credit index */\n    CreditIndex: 5,\n    /** Index tranche */\n    IndexTranche: 6,\n    /** Credit basket */\n    CreditBasket: 7,\n    /** Exotic */\n    Exotic: 8,\n    /** Common */\n    Common: 9,\n    /** Preferred */\n    Preferred: 10,\n    /** Equity index */\n    EquityIndex: 11,\n    /** Equity basket */\n    EquityBasket: 12,\n    /** Metals */\n    Metals: 13,\n    /** Bullion */\n    Bullion: 14,\n    /** Energy */\n    Energy: 15,\n    /** Commodity index */\n    CommodityIndex: 16,\n    /** Agricultural */\n    Agricultural: 17,\n    /** Environmental */\n    Environmental: 18,\n    /** Freight */\n    Freight: 19,\n    /** Government */\n    Government: 20,\n    /** Agency */\n    Agency: 21,\n    /** Corporate */\n    Corporate: 22,\n    /** Financing */\n    Financing: 23,\n    /** Money market */\n    MoneyMarket: 24,\n    /** Mortgage */\n    Mortgage: 25,\n    /** Municipal */\n    Municipal: 26,\n    /** Mutual fund */\n    MutualFund: 27,\n    /** Collective investment vehicle */\n    CollectiveInvestmentVehicle: 28,\n    /** Investment program\n        A generalized fund for major investors. */\n    InvestmentProgram: 29,\n    /** Specialized account program\n        A specialized fund setup for a particular account or group of accounts. */\n    SpecializedAccountProgram: 30,\n    /** Term loan */\n    TermLoan: 31,\n    /** Bridge loan */\n    BridgeLoan: 32,\n    /** Letter of credit */\n    LetterOfCredit: 33,\n    /** Dividend index */\n    DividendIndex: 34,\n    /** Stock dividend */\n    StockDividend: 35,\n    /** Exchange traded fund */\n    ExchangeTradedFund: 36,\n    /** Volatility index */\n    VolatilityIndex: 37,\n    /** FX cross rates */\n    FXCrossRates: 38,\n    /** FX emerging markets */\n    FXEmergingMarkets: 39,\n    /** FX Majors */\n    FXMajors: 40,\n    /** Fertilizer */\n    Fertilizer: 41,\n    /** Industrial product */\n    IndustrialProduct: 42,\n    /** Inflation */\n    Inflation: 43,\n    /** Paper */\n    Paper: 44,\n    /** Polypropylene */\n    Polypropylene: 45,\n    /** Official economic statistics */\n    OfficialEconomicStatistics: 46,\n    /** Other C10\n        Defined under MiFID II (Directive 2014/65/EU) Section C(10) of Annex I and paraphrased in ESMA RTS 2 Annex III Section 10, \"Other C10\" is a financial instrument \"which is not a 'Freight derivative', any of the following interest rate derivatives sub-asset classes: 'Inflation multi-currency swap or cross-currency swap', a 'Future/forward on inflation multi-currency swaps or cross-currency swaps', an 'Inflation single currency swap', a 'Future/forward on inflation single currency swap' and any of the following equity derivatives sub-asset classes: a 'Volatility index option', a 'Volatility index future/forward', a swap with parameter return variance, a swap with parameter return volatility, a portfolio swap with parameter return variance, a portfolio swap with parameter return volatility\". */\n    OtherC10: 47,\n    /** Other\n        May be used with any AssetClass(1938) values. */\n    Other: 48,\n} as const);\n\nexport type AssetSubClass = (typeof AssetSubClass)[keyof typeof AssetSubClass];\n", "/**\n * Identifies the model used for asset valuation or pricing calculations.\n * - Tag: 2994\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AssetValuationModel = Object.freeze({\n    /** Black-Scholes */\n    BlackScholes: 1,\n    /** Whaley */\n    Whaley: 2,\n    /** Bachelier */\n    Bachelier: 3,\n    /** Kirk */\n    Kirk: 4,\n    /** Curran */\n    Curran: 5,\n    /** Black-76 */\n    Black76: 6,\n    /** Binomial */\n    Binomial: 7,\n    /** Other model */\n    OtherModel: 99,\n} as const);\n\nexport type AssetValuationModel = (typeof AssetValuationModel)[keyof typeof AssetValuationModel];\n", "/**\n * Method by which short positions are assigned to an exercise notice during exercise and assignment processing\n * - Tag: 744\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const AssignmentMethod = Object.freeze({\n    /** Pro rata */\n    ProRata: 'P',\n    /** Random */\n    Random: 'R',\n} as const);\n\nexport type AssignmentMethod = (typeof AssignmentMethod)[keyof typeof AssignmentMethod];\n", "/**\n * The encoding type of the content provided in EncodedAttachment(2112).\n    The AttachmentEncodingType(2109) is a distinct and separate concept from MessageEncoding(347) that defines how FIX fields of type data are encoded. The MessageEncoding(347) is used to embed text in another character set (e.g. Unicode or Shift-JIS) within FIX.\n * - Tag: 2109\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AttachmentEncodingType = Object.freeze({\n    /** Base64 encoding */\n    Base64: 0,\n    /** Raw binary\n        Unencoded binary content. */\n    RawBinary: 1,\n} as const);\n\nexport type AttachmentEncodingType = (typeof AttachmentEncodingType)[keyof typeof AttachmentEncodingType];\n", "/**\n * Instruction related to system generated auctions, e.g. flash order auctions.\n * - Tag: 1805\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AuctionInstruction = Object.freeze({\n    /** Automatic auction permitted (default) */\n    AutomatedAuctionPermitted: 0,\n    /** Automatic auction not permitted */\n    AutomatedAuctionNotPermitted: 1,\n} as const);\n\nexport type AuctionInstruction = (typeof AuctionInstruction)[keyof typeof AuctionInstruction];\n", "/**\n * Type of auction order.\n * - Tag: 1803\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AuctionType = Object.freeze({\n    /** None */\n    None: 0,\n    /** Block order auction */\n    BlockOrderAuction: 1,\n    /** Directed order auction */\n    DirectedOrderAuction: 2,\n    /** Exposure order auction */\n    ExposureOrderAuction: 3,\n    /** Flash order auction */\n    FlashOrderAuction: 4,\n    /** Facilitation order auction */\n    FacilitationOrderAuction: 5,\n    /** Solicitation order auction */\n    SolicitationOrderAuction: 6,\n    /** Price improvement mechanism (PIM) */\n    PriceImprovementMechanism: 7,\n    /** Directed Order price improvement mechanism (PIM) */\n    DirectedOrderPriceImprovementMechanism: 8,\n} as const);\n\nexport type AuctionType = (typeof AuctionType)[keyof typeof AuctionType];\n", "/**\n * The average pricing model used for block trades.\n * - Tag: 2763\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AveragePriceType = Object.freeze({\n    /** Time weighted average price\n        TWAP is the simple average price of a security over a specified time without regard to the volume traded. */\n    TimeWeightedAveragePrice: 0,\n    /** Volume weighted average price\n        VWAP is the sum of the currency amount traded for all trades in the averaging group (price times quantity) divided by the total quantity. */\n    VolumeWeightedAveragePrice: 1,\n    /** Percent of volume average price\n        POV is the sum of the currency amount traded for all trades executed as part of an order intended to purchase a specified percentage of the total volume of an instrument, divided by the total quantity. */\n    PercentOfVolumeAveragePrice: 2,\n    /** Limit order average price\n        The limit order average price is the currency amount of all trades executed to fill a limit order, divided by the total quantity. */\n    LimitOrderAveragePrice: 3,\n} as const);\n\nexport type AveragePriceType = (typeof AveragePriceType)[keyof typeof AveragePriceType];\n", "/**\n * Average pricing indicator.\n * - Tag: 819\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const AvgPxIndicator = Object.freeze({\n    /** No average pricing */\n    NoAveragePricing: 0,\n    /** Trade is part of an average price group identified by the AvgPxGroupID(1731) */\n    Trade: 1,\n    /** Last trade of the average price group identified by the AvgPxGroupID(1731) */\n    LastTrade: 2,\n    /** Trade is part of a notional value average price group\n        A notional value average price (NVAP) group is effectively closed and available for allocation as long as the NVAP of the group is non-zero. */\n    NotionalValueAveragePxGroupTrade: 3,\n    /** Trade is average priced */\n    AveragePricedTrade: 4,\n} as const);\n\nexport type AvgPxIndicator = (typeof AvgPxIndicator)[keyof typeof AvgPxIndicator];\n", "/**\n * Code to represent the basis price type.\n * - Tag: 419\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const BasisPxType = Object.freeze({\n    /** Closing price at morning session */\n    ClosingPriceAtMorningSession: '2',\n    /** Closing price */\n    ClosingPrice: '3',\n    /** Current price */\n    CurrentPrice: '4',\n    /** SQ */\n    SQ: '5',\n    /** VWAP through a day */\n    VWAPThroughADay: '6',\n    /** VWAP through a morning session */\n    VWAPThroughAMorningSession: '7',\n    /** VWAP through an afternoon session */\n    VWAPThroughAnAfternoonSession: '8',\n    /** VWAP through a day except \"YORI\" (an opening auction) */\n    VWAPThroughADayExcept: '9',\n    /** VWAP through a morning session except \"YORI\" (an opening auction) */\n    VWAPThroughAMorningSessionExcept: 'A',\n    /** VWAP through an afternoon session except \"YORI\" (an opening auction) */\n    VWAPThroughAnAfternoonSessionExcept: 'B',\n    /** Strike */\n    Strike: 'C',\n    /** Open */\n    Open: 'D',\n    /** Others */\n    Others: 'Z',\n} as const);\n\nexport type BasisPxType = (typeof BasisPxType)[keyof typeof BasisPxType];\n", "/**\n * Indicates the processing mode for a batch of messages.\n * - Tag: 50002\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const BatchProcessMode = Object.freeze({\n    /** Update/incremental (default if not specified) */\n    Update: 0,\n    /** Snapshot\n        Indicates that messages within the batch should be considered complete, and should replace all prior information. The recipient can take action, to be decided out of band, on previously received data omitted from the batch (e.g. an account not referenced has zero collateral value, a security not referenced is no longer tradable). The scope of completeness (e.g. a complete list of collateral values for all of a given firm's accounts, a complete list of options trading on a given exchange) will be decided out of band. */\n    Snapshot: 1,\n} as const);\n\nexport type BatchProcessMode = (typeof BatchProcessMode)[keyof typeof BatchProcessMode];\n", "/**\n * Identifies beginning of new message and session protocol version by means of a session profile identifier (see FIX Session Layer for details). ALWAYS FIRST FIELD IN MESSAGE. (Always unencrypted).\n * - Tag: 8\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const BeginString = Object.freeze({\n    /** Session profile FIX.4.2 */\n    FIX42: 'FIX.4.2',\n    /** Session profile FIX4 */\n    FIX44: 'FIX.4.4',\n    /** Session profile FIXT or LFXIT\n        The choice between FIXT and LFIXT is subject to counterparty agreement. */\n    FIXT11: 'FIXT.1.1',\n} as const);\n\nexport type BeginString = (typeof BeginString)[keyof typeof BeginString];\n", "/**\n * For Fixed Income. Identifies the benchmark (e.g. used in conjunction with the SpreadToBenchmark field).\n * - Tag: 219\n * - FIX Specification type: char\n * - FIX Specification version: FIX42\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const Benchmark = Object.freeze({\n    /** CURVE */\n    CURVE: '1',\n    /** 5-YR */\n    FiveYR: '2',\n    /** OLD-5 */\n    OLD5: '3',\n    /** 10-YR */\n    TenYR: '4',\n    /** OLD-10 */\n    OLD10: '5',\n    /** 30-YR */\n    ThirtyYR: '6',\n    /** OLD-30 */\n    OLD30: '7',\n    /** 3-MO-LIBOR */\n    ThreeMOLIBOR: '8',\n    /** 6-MO-LIBOR */\n    SixMOLIBOR: '9',\n} as const);\n\nexport type Benchmark = (typeof Benchmark)[keyof typeof Benchmark];\n", "/**\n * Name of benchmark curve.\n    (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\n * - Tag: 221\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const BenchmarkCurveName = Object.freeze({\n    /** EONIA */\n    EONIA: 'EONIA',\n    /** EUREPO */\n    EUREPO: 'EUREPO',\n    /** EURIBOR (deprecated use enum EURIBOR instead)\n        Deprecated use of EURIBOR for the enumeration. */\n    Euribor: 'Euribor',\n    /** FutureSWAP */\n    FutureSWAP: 'FutureSWAP',\n    /** LIBID */\n    LIBID: 'LIBID',\n    /** LIBOR (London Inter-Bank Offer) */\n    LIBOR: 'LIBOR',\n    /** MuniAAA */\n    MuniAAA: 'MuniAAA',\n    /** OTHER */\n    OTHER: 'OTHER',\n    /** Pfandbriefe */\n    Pfandbriefe: 'Pfandbriefe',\n    /** SONIA */\n    SONIA: 'SONIA',\n    /** SWAP */\n    SWAP: 'SWAP',\n    /** Treasury */\n    Treasury: 'Treasury',\n    /** US Federal Reserve fed funds effective rate\n        US Federal Reserve fed funds effective rate or the weighted average of the actual negotiated rates banks pay each other to to borrow funds. */\n    FedFundRateEffective: 'FEDEFF',\n    /** US fed funds target rate\n        Fed funds target rate as determined by the US Federal Reserve Federal Open Market Committee. */\n    FedOpen: 'FEDOPEN',\n    /** Euro interbank offer rate */\n    EURIBOR: 'EURIBOR',\n    /** Australian Bank Bill Swap Rate */\n    AUBSW: 'AUBSW',\n    /** Budapest Bank Offered Rate */\n    BUBOR: 'BUBOR',\n    /** Canadian Dollar Offered Rate */\n    CDOR: 'CDOR',\n    /** Copenhagen Interbank Offered Rate */\n    CIBOR: 'CIBOR',\n    /** Euro Overnight Index Average Swap Rate */\n    EONIASWAP: 'EONIASWAP',\n    /** Euro Short Term Rate\n        Replaces EONIA. */\n    ESTR: 'ESTR',\n    /** Euro Dollar Rate */\n    EURODOLLAR: 'EURODOLLAR',\n    /** Euro Swiss Franc Rate */\n    EUROSWISS: 'EUROSWISS',\n    /** DTCC General Collateral Finance Repo Index */\n    GCFREPO: 'GCFREPO',\n    /** ICE Swap Rate */\n    ISDAFIX: 'ISDAFIX',\n    /** Johannesburg Interbank Agreed Rate */\n    JIBAR: 'JIBAR',\n    /** Moscow Prime Offered Rate */\n    MOSPRIM: 'MOSPRIM',\n    /** Nigeria Three Month Interbank Rate */\n    NIBOR: 'NIBOR',\n    /** Czech Republic Interbank Offered Rate */\n    PRIBOR: 'PRIBOR',\n    /** Secured Overnight Financing Rate\n        Replaces LIBOR. */\n    SOFR: 'SOFR',\n    /** Stockholm Interbank Offered Rate */\n    STIBOR: 'STIBOR',\n    /** Bank of Israel Interbank Offered Rate */\n    TELBOR: 'TELBOR',\n    /** Tokyo Interbank Offered Rate */\n    TIBOR: 'TIBOR',\n    /** Warsaw Interbank Offered Rate */\n    WIBOR: 'WIBOR',\n    /** Reserve Bank of Australia Interbank Overnight Cash Rate\n        Also known as AUD Overnight Index Average. */\n    AONIA: 'AONIA',\n    /** Realised AONIA\n        \"Realised AONIA applies a compounding formula to the daily AONIA rate, to determine the compounded average rate over the prior 1 to 6 month period.\" (source https://www.asx.com.au/documents/products/realised-aonia-explained.pdf). */\n    AONIAR: 'AONIA-R',\n    /** New Zealand Bank Bill Market Rate */\n    BKBM: 'BKBM',\n    /** Republic of Korea 90-Day Certificate of Deposit Rate */\n    CD91D: 'CD91D',\n    /** Canadian Overnight Repo Rate Average */\n    CORRA: 'CORRA',\n    /** Danish Interbank Interest Rate-Tomorrow or Next */\n    DIRRTN: 'DIRR-TN',\n    /** Emirates Interbank Offered Rate */\n    EIBOR: 'EIBOR',\n    /** China Interbank Overnight Repo Rate */\n    FixingRepoRate: 'FixingRepoRate',\n    /** Hong Kong Interbank Offered Rate */\n    HIBOR: 'HIBOR',\n    /** Colombia Overnight Interbank Reference Rate */\n    IBR: 'IBR',\n    /** Kuala Lumpur Interbank Offered Rate */\n    KLIBOR: 'KLIBOR',\n    /** Mumbia Interbank Offered Rate */\n    MIBOR: 'MIBOR',\n    /** New Zealand Overnight Indexed Swaps (OIS) */\n    NZONIA: 'NZONIA',\n    /** Philippines Interbank Reference Rate */\n    PHIREF: 'PHIREF',\n    /** Reykjavik Interbank Offered Rate */\n    REIBOR: 'REIBOR',\n    /** Saudi Arabian Interbank Offered Rate */\n    SAIBOR: 'SAIBOR',\n    /** Swiss Average Rate Overnight */\n    SARON: 'SARON',\n    /** Singapore Swap Offer Rate */\n    SORA: 'SORA',\n    /** Turkish Lira Overnight Reference Rate */\n    TLREF: 'TLREF',\n    /** Mexico Interbank Equilibrium Interest Rate */\n    TIIE: 'TIIE',\n    /** Thai Baht Interest Rate Fixing */\n    THBFIX: 'THBFIX',\n    /** Tokyo Overnight Average Rate */\n    TONAR: 'TONAR',\n    /** Overnight Bank Funding Rate\n        US Federal Reserve measure of wholesale, unsecured, overnight bank funding costs (see https://www.newyorkfed.org/markets/reference-rates/obfr). */\n    OBFR: 'OBFR',\n} as const);\n\nexport type BenchmarkCurveName = (typeof BenchmarkCurveName)[keyof typeof BenchmarkCurveName];\n", "/**\n * Code to identify the type of BidDescriptor (400).\n * - Tag: 399\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const BidDescriptorType = Object.freeze({\n    /** Sector */\n    Sector: 1,\n    /** Country */\n    Country: 2,\n    /** Index */\n    Index: 3,\n} as const);\n\nexport type BidDescriptorType = (typeof BidDescriptorType)[keyof typeof BidDescriptorType];\n", "/**\n * Identifies the Bid Request message type.\n * - Tag: 374\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const BidRequestTransType = Object.freeze({\n    /** Cancel */\n    Cancel: 'C',\n    /** New */\n    New: 'N',\n} as const);\n\nexport type BidRequestTransType = (typeof BidRequestTransType)[keyof typeof BidRequestTransType];\n", "/**\n * Code to represent the type of trade.\n    (Prior to FIX 4.4 this field was named \"TradeType\")\n * - Tag: 418\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const BidTradeType = Object.freeze({\n    /** Agency */\n    Agency: 'A',\n    /** VWAP Guarantee */\n    VWAPGuarantee: 'G',\n    /** Guaranteed Close */\n    GuaranteedClose: 'J',\n    /** Risk Trade */\n    RiskTrade: 'R',\n} as const);\n\nexport type BidTradeType = (typeof BidTradeType)[keyof typeof BidTradeType];\n", "/**\n * Code to identify the type of Bid Request.\n * - Tag: 394\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const BidType = Object.freeze({\n    /** \"Non Disclosed\" style (e.g. US/European) */\n    NonDisclosed: 1,\n    /** \"Disclosed\" style (e.g. Japanese) */\n    Disclosed: 2,\n    /** No bidding process */\n    NoBiddingProcess: 3,\n} as const);\n\nexport type BidType = (typeof BidType)[keyof typeof BidType];\n", "/**\n * Indication that a block trade will be allocated.\n * - Tag: 1980\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const BlockTrdAllocIndicator = Object.freeze({\n    /** Block to be allocated */\n    BlockToBeAllocated: 0,\n    /** Block not to be allocated */\n    BlockNotToBeAllocated: 1,\n    /** Allocated trade\n        A sub-trade of a block trade. */\n    AllocatedTrade: 2,\n} as const);\n\nexport type BlockTrdAllocIndicator = (typeof BlockTrdAllocIndicator)[keyof typeof BlockTrdAllocIndicator];\n", "/**\n * Method for booking out this order. Used when notifying a broker that an order to be settled by that broker is to be booked out as an OTC derivative (e.g. CFD or similar).\n * - Tag: 775\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const BookingType = Object.freeze({\n    /** Regular booking */\n    RegularBooking: 0,\n    /** CFD (Contract for difference) */\n    CFD: 1,\n    /** Total Return Swap */\n    TotalReturnSwap: 2,\n} as const);\n\nexport type BookingType = (typeof BookingType)[keyof typeof BookingType];\n", "/**\n * Indicates what constitutes a bookable unit.\n * - Tag: 590\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const BookingUnit = Object.freeze({\n    /** Each partial execution is a bookable unit */\n    EachPartialExecutionIsABookableUnit: '0',\n    /** Aggregate partial executions on this order, and book one trade per order */\n    AggregatePartialExecutionsOnThisOrder: '1',\n    /** Aggregate executions for this symbol, side, and settlement date */\n    AggregateExecutionsForThisSymbol: '2',\n} as const);\n\nexport type BookingUnit = (typeof BookingUnit)[keyof typeof BookingUnit];\n", "/**\n * The business day convention used for adjusting dates. The value defined here applies to all adjustable dates in the instrument unless specifically overridden.\n * - Tag: 40921\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const BusinessDayConvention = Object.freeze({\n    /** Not applicable\n        Business day convention is not applicable. */\n    NotApplicable: 0,\n    /** None (current day) */\n    None: 1,\n    /** Following day\n        The following business day. */\n    FollowingDay: 2,\n    /** Floating rate note\n        The FRN business day convention. */\n    FloatingRateNote: 3,\n    /** Modified following day\n        The modified following business day. */\n    ModifiedFollowingDay: 4,\n    /** Preceding day\n        The preceding business day. */\n    PrecedingDay: 5,\n    /** Modified preceding day\n        The modified preceding business day. */\n    ModifiedPrecedingDay: 6,\n    /** Nearest day\n        The nearest applicable business day. */\n    NearestDay: 7,\n} as const);\n\nexport type BusinessDayConvention = (typeof BusinessDayConvention)[keyof typeof BusinessDayConvention];\n", "/**\n * Code to identify reason for a Business Message Reject message.\n * - Tag: 380\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const BusinessRejectReason = Object.freeze({\n    /** Other */\n    Other: 0,\n    /** Unknown ID */\n    UnknownID: 1,\n    /** Unknown Security */\n    UnknownSecurity: 2,\n    /** Unsupported Message Type */\n    UnsupportedMessageType: 3,\n    /** Application not available */\n    ApplicationNotAvailable: 4,\n    /** Conditionally required field missing */\n    ConditionallyRequiredFieldMissing: 5,\n    /** Not Authorized */\n    NotAuthorized: 6,\n    /** DeliverTo firm not available at this time */\n    DeliverToFirmNotAvailableAtThisTime: 7,\n    /** Throttle limit exceeded */\n    ThrottleLimitExceeded: 8,\n    /** Throttle limit exceeded, session will be disconnected */\n    ThrottleLimitExceededSessionDisconnected: 9,\n    /** Throttled messages rejected on request */\n    ThrottledMessagesRejectedOnRequest: 10,\n    /** Invalid price increment */\n    InvalidPriceIncrement: 18,\n} as const);\n\nexport type BusinessRejectReason = (typeof BusinessRejectReason)[keyof typeof BusinessRejectReason];\n", "/**\n * Specifies how the calculation will be made.\n * - Tag: 2592\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CalculationMethod = Object.freeze({\n    /** Automatic (default) */\n    Automatic: 0,\n    /** Manual */\n    Manual: 1,\n} as const);\n\nexport type CalculationMethod = (typeof CalculationMethod)[keyof typeof CalculationMethod];\n", "/**\n * For CIV - A one character code identifying whether Cancellation rights/Cooling off period applies.\n * - Tag: 480\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const CancellationRights = Object.freeze({\n    /** Yes */\n    Yes: 'Y',\n    /** No - Execution Only */\n    NoExecutionOnly: 'N',\n    /** No - Waiver agreement */\n    NoWaiverAgreement: 'M',\n    /** No - Institutional */\n    NoInstitutional: 'O',\n} as const);\n\nexport type CancellationRights = (typeof CancellationRights)[keyof typeof CancellationRights];\n", "/**\n * Identifies whether an order is a margin order or a non-margin order. This is primarily used when sending orders to Japanese exchanges to indicate sell margin or buy to cover. The same tag could be assigned also by buy-side to indicate the intent to sell or buy margin and the sell-side to accept or reject (base on some validation criteria) the margin request.\n * - Tag: 544\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const CashMargin = Object.freeze({\n    /** Cash */\n    Cash: '1',\n    /** Margin Open */\n    MarginOpen: '2',\n    /** Margin Close */\n    MarginClose: '3',\n} as const);\n\nexport type CashMargin = (typeof CashMargin)[keyof typeof CashMargin];\n", "/**\n * The default election for determining settlement price.\n * - Tag: 42217\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CashSettlPriceDefault = Object.freeze({\n    /** Close\n        Official closing price. */\n    Close: 0,\n    /** Hedge\n        Determined by the hedging party. */\n    Hedge: 1,\n} as const);\n\nexport type CashSettlPriceDefault = (typeof CashSettlPriceDefault)[keyof typeof CashSettlPriceDefault];\n", "/**\n * The type of quote used to determine the cash settlement price.\n * - Tag: 40027\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CashSettlQuoteMethod = Object.freeze({\n    /** Bid */\n    Bid: 0,\n    /** Mid */\n    Mid: 1,\n    /** Offer */\n    Offer: 2,\n} as const);\n\nexport type CashSettlQuoteMethod = (typeof CashSettlQuoteMethod)[keyof typeof CashSettlQuoteMethod];\n", "/**\n * The ISDA defined methodology for determining the final price of the reference obligation for purposes of cash settlement.\n    ISDA 2003 Term: Valuation Method\n * - Tag: 40038\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CashSettlValuationMethod = Object.freeze({\n    /** Market */\n    Market: 0,\n    /** Highest */\n    Highest: 1,\n    /** Average market */\n    AverageMarket: 2,\n    /** Average highest */\n    AverageHighest: 3,\n    /** Blended market */\n    BlendedMarket: 4,\n    /** Blended highest */\n    BlendedHighest: 5,\n    /** Average blended market */\n    AverageBlendedMarket: 6,\n    /** Average blended highest */\n    AverageBlendedHighest: 7,\n} as const);\n\nexport type CashSettlValuationMethod = (typeof CashSettlValuationMethod)[keyof typeof CashSettlValuationMethod];\n", "/**\n * Indicates whether the trade or position being reported was cleared through a clearing organization.\n * - Tag: 1832\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ClearedIndicator = Object.freeze({\n    /** Not cleared\n        Trade or position has not yet been submitted for clearing. */\n    NotCleared: 0,\n    /** Cleared\n        Trade or position has been successfully cleared. */\n    Cleared: 1,\n    /** Submitted\n        Trade or position has been submitted for clearing. */\n    Submitted: 2,\n    /** Rejected\n        Trade or position was rejected by clearing. */\n    Rejected: 3,\n} as const);\n\nexport type ClearedIndicator = (typeof ClearedIndicator)[keyof typeof ClearedIndicator];\n", "/**\n * Designates the account type to be used for the order when submitted to clearing.\n * - Tag: 1816\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ClearingAccountType = Object.freeze({\n    /** Customer */\n    Customer: 1,\n    /** Firm */\n    Firm: 2,\n    /** Market maker */\n    MarketMaker: 3,\n} as const);\n\nexport type ClearingAccountType = (typeof ClearingAccountType)[keyof typeof ClearingAccountType];\n", "/**\n * Indicates type of fee being assessed of the customer for trade executions at an exchange. Applicable for futures markets only at this time.\n    (Values source CBOT, CME, NYBOT, and NYMEX):\n * - Tag: 635\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ClearingFeeIndicator = Object.freeze({\n    /** 1st year delegate trading for own account */\n    FirstYearDelegate: '1',\n    /** 2nd year delegate trading for own account */\n    SecondYearDelegate: '2',\n    /** 3rd year delegate trading for own account */\n    ThirdYearDelegate: '3',\n    /** 4th year delegate trading for own account */\n    FourthYearDelegate: '4',\n    /** 5th year delegate trading for own account */\n    FifthYearDelegate: '5',\n    /** 6th year delegate trading for own account */\n    SixthYearDelegate: '9',\n    /** CBOE Member */\n    CBOEMember: 'B',\n    /** Non-member and Customer */\n    NonMemberAndCustomer: 'C',\n    /** Equity Member and Clearing Member */\n    EquityMemberAndClearingMember: 'E',\n    /** Full and Associate Member trading for own account and as floor brokers */\n    FullAndAssociateMember: 'F',\n    /** 106.H and 106.J firms */\n    Firms106HAnd106J: 'H',\n    /** GIM, IDEM and COM Membership Interest Holders */\n    GIM: 'I',\n    /** Lessee 106.F Employees */\n    Lessee106FEmployees: 'L',\n    /** All other ownership types */\n    AllOtherOwnershipTypes: 'M',\n} as const);\n\nexport type ClearingFeeIndicator = (typeof ClearingFeeIndicator)[keyof typeof ClearingFeeIndicator];\n", "/**\n * Eligibility of this trade for clearing and central counterparty processing.\n * - Tag: 577\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ClearingInstruction = Object.freeze({\n    /** Process normally */\n    ProcessNormally: 0,\n    /** Exclude from all netting */\n    ExcludeFromAllNetting: 1,\n    /** Bilateral netting only */\n    BilateralNettingOnly: 2,\n    /** Ex clearing */\n    ExClearing: 3,\n    /** Special trade */\n    SpecialTrade: 4,\n    /** Multilateral netting */\n    MultilateralNetting: 5,\n    /** Clear against central counterparty */\n    ClearAgainstCentralCounterparty: 6,\n    /** Exclude from central counterparty */\n    ExcludeFromCentralCounterparty: 7,\n    /** Manual mode (pre-posting and/or pre-giveup) */\n    ManualMode: 8,\n    /** Automatic posting mode (trade posting to the position account number specified) */\n    AutomaticPostingMode: 9,\n    /** Automatic give-up mode (trade give-up to the give-up destination number specified) */\n    AutomaticGiveUpMode: 10,\n    /** Qualified Service Representative QSR */\n    QualifiedServiceRepresentativeQSR: 11,\n    /** Customer trade */\n    CustomerTrade: 12,\n    /** Self clearing */\n    SelfClearing: 13,\n    /** Buy-in */\n    BuyIn: 14,\n} as const);\n\nexport type ClearingInstruction = (typeof ClearingInstruction)[keyof typeof ClearingInstruction];\n", "/**\n * Specifies the party's or parties' intention to clear the trade.\n * - Tag: 1924\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ClearingIntention = Object.freeze({\n    /** Do not intend to clear */\n    DoNotIntendToClear: 0,\n    /** Intend to clear */\n    IntendToClear: 1,\n} as const);\n\nexport type ClearingIntention = (typeof ClearingIntention)[keyof typeof ClearingIntention];\n", "/**\n * Specifies whether a party to a swap is using an exception to a clearing requirement. In the US, one such clearing requirement is CFTC's rule pursuant to CEA Section 2(h)(1).\n * - Tag: 1932\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ClearingRequirementException = Object.freeze({\n    /** No exception */\n    NoException: 0,\n    /** Exception\n        Used to indicate an exception to a clearing requirement without elaborating on the type of exception. */\n    Exception: 1,\n    /** End-user exception\n        In the US, see CFTC Final Rule on End-User Exception to Clearing Requirements for Swaps Fact Sheet http://www.cftc.gov/ucm/groups/public/@newsroom/documents/file/eue_factsheet_final.pdf */\n    EndUserException: 2,\n    /** Inter-affiliate exception\n        In the US, see CFTC Final Rule - Clearing Exemption for Swaps Between Certain Affiliated Entities http://www.cftc.gov//ucm/groups/public/@lrfederalregister/documents/file/2013-07970a.pdf */\n    InterAffiliateException: 3,\n    /** Treasury affiliate exception\n        In the US, see CFTC No Action Letter 13-22 No Action Relief from the Clearing Requirement for Swaps Entered into by Eligible Treasury Affiliates http://www.cftc.gov/ucm/groups/public/@lrlettergeneral/documents/letter/13-22.pdf */\n    TreasuryAffiliateException: 4,\n    /** Cooperative exception\n        Clearing exception for certain swaps entered into by cooperatives. In the US, see Regulation 50.51(a) Definition of Exempt Cooperative: https://www.federalregister.gov/articles/2013/08/22/2013-19945/clearing-exemption-for-certain-swaps-entered-into-by-cooperatives */\n    CooperativeException: 5,\n} as const);\n\nexport type ClearingRequirementException =\n    (typeof ClearingRequirementException)[keyof typeof ClearingRequirementException];\n", "/**\n * Action proposed for an Underlying Instrument instance.\n * - Tag: 944\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollAction = Object.freeze({\n    /** Retain */\n    Retain: 0,\n    /** Add */\n    Add: 1,\n    /** Remove */\n    Remove: 2,\n} as const);\n\nexport type CollAction = (typeof CollAction)[keyof typeof CollAction];\n", "/**\n * conveys how the collateral should be/has been applied\n * - Tag: 1043\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollApplType = Object.freeze({\n    /** Specific Deposit */\n    SpecificDeposit: 0,\n    /** General */\n    General: 1,\n} as const);\n\nexport type CollApplType = (typeof CollApplType)[keyof typeof CollApplType];\n", "/**\n * Reason for Collateral Assignment\n * - Tag: 895\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollAsgnReason = Object.freeze({\n    /** Initial */\n    Initial: 0,\n    /** Scheduled */\n    Scheduled: 1,\n    /** Time Warning */\n    TimeWarning: 2,\n    /** Margin Deficiency\n        In a CollateralRequest(35=AX), this indicates there is a margin deficiency. In a CollateralAssignment(35=AY), this indicates that the assignment is a deposit to meet margin deficiency. */\n    MarginDeficiency: 3,\n    /** Margin Excess\n        In a CollateralRequest(35=AX), this indicates there is excess margin. In a CollateralAssignment(35=AY), this indicates that the assignment is a withdrawal of the margin excess. */\n    MarginExcess: 4,\n    /** Forward Collateral Demand */\n    ForwardCollateralDemand: 5,\n    /** Event of default */\n    EventOfDefault: 6,\n    /** Adverse tax event */\n    AdverseTaxEvent: 7,\n    /** Transfer deposit\n        Collateral deposit in which the asset is to be transferred from an undesignated holding into collateral. I.e. there is no intermediate conversion to cash. */\n    TransferDeposit: 8,\n    /** Transfer withdrawal\n        Collateral withdrawal in which the asset is to be transferred from collateral into an undesignated holding. I.e. there is no intermediate conversion to cash. */\n    TransferWithdrawal: 9,\n    /** Pledge\n        The purpose of the collateral assignment is to pledge or \"lock up\" a value of a basket of securities, individual security or fund as collateral. */\n    Pledge: 10,\n} as const);\n\nexport type CollAsgnReason = (typeof CollAsgnReason)[keyof typeof CollAsgnReason];\n", "/**\n * Collateral Assignment Reject Reason\n * - Tag: 906\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollAsgnRejectReason = Object.freeze({\n    /** Unknown deal (order / trade) */\n    UnknownDeal: 0,\n    /** Unknown or invalid instrument */\n    UnknownOrInvalidInstrument: 1,\n    /** Unauthorized transaction */\n    UnauthorizedTransaction: 2,\n    /** Insufficient collateral */\n    InsufficientCollateral: 3,\n    /** Invalid type of collateral */\n    InvalidTypeOfCollateral: 4,\n    /** Excessive substitution */\n    ExcessiveSubstitution: 5,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type CollAsgnRejectReason = (typeof CollAsgnRejectReason)[keyof typeof CollAsgnRejectReason];\n", "/**\n * Type of collateral assignment response.\n * - Tag: 905\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollAsgnRespType = Object.freeze({\n    /** Received */\n    Received: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Declined */\n    Declined: 2,\n    /** Rejected */\n    Rejected: 3,\n    /** Transaction pending\n        The collateral assignment transaction is pending at the recipient. */\n    TransactionPending: 4,\n    /** Transaction completed with warning - see Text(58) for further information.\n        The collateral assignment transaction was accepted and completed but with warnings. */\n    TransactionCompletedWithWarning: 5,\n} as const);\n\nexport type CollAsgnRespType = (typeof CollAsgnRespType)[keyof typeof CollAsgnRespType];\n", "/**\n * Collateral Assignment Transaction Type\n * - Tag: 903\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollAsgnTransType = Object.freeze({\n    /** New */\n    New: 0,\n    /** Replace */\n    Replace: 1,\n    /** Cancel */\n    Cancel: 2,\n    /** Release */\n    Release: 3,\n    /** Reverse */\n    Reverse: 4,\n} as const);\n\nexport type CollAsgnTransType = (typeof CollAsgnTransType)[keyof typeof CollAsgnTransType];\n", "/**\n * The type of value in CurrentCollateralAmount(1704).\n * - Tag: 2632\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollateralAmountType = Object.freeze({\n    /** Market valuation (the default) */\n    MarketValuation: 0,\n    /** Portfolio value before processing pledge request */\n    PortfolioValue: 1,\n    /** Value confirmed as \"locked-up\" for processing a pledge request */\n    ValueConfirmed: 2,\n    /** Credit value of collateral at CCP processing a pledge request */\n    CollateralCreditValue: 3,\n    /** Additional collateral value\n        Additional collateral deposited by the collateral provider at trade or post-trade. CollateralPercentOverage(2690) gives the overage percent */\n    AdditionalCollateralValue: 4,\n    /** Estimated market valuation\n        Estimated market valuation of collateral. In the context of EU SFTR this may be used for value of re-use of collateral. */\n    EstimatedMarketValuation: 5,\n} as const);\n\nexport type CollateralAmountType = (typeof CollateralAmountType)[keyof typeof CollateralAmountType];\n", "/**\n * Indicates the type of investment the cash collateral is re-invested in.\n * - Tag: 2844\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollateralReinvestmentType = Object.freeze({\n    /** Money market fund\n        Registered money market fund. In the context of EU SFTR reporting this corresponds to code \"MMFT\". */\n    MoneyMarketFund: 0,\n    /** Other comingled pool\n        Any commingled pool other than money market fund. In the context of EU SFTR reporting this corresponds to code \"OCMP\". */\n    OtherComingledPool: 1,\n    /** Repo market\n        The repurchase agreement market. In the context of EU SFTR reporting this corresponds to code \"REPM\". */\n    RepoMarket: 2,\n    /** Direct purchase of securities\n        In the context of EU SFTR reporting this corresponds to code \"SDPU\". */\n    DirectPurchaseOfSecurities: 3,\n    /** Other investments\n        In the context of EU SFTR reporting this corresponds to code \"OTHR\". */\n    OtherInvestments: 4,\n} as const);\n\nexport type CollateralReinvestmentType = (typeof CollateralReinvestmentType)[keyof typeof CollateralReinvestmentType];\n", "/**\n * Collateral inquiry qualifiers:\n * - Tag: 896\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollInquiryQualifier = Object.freeze({\n    /** Trade Date */\n    TradeDate: 0,\n    /** GC Instrument */\n    GCInstrument: 1,\n    /** Collateral Instrument */\n    CollateralInstrument: 2,\n    /** Substitution Eligible */\n    SubstitutionEligible: 3,\n    /** Not Assigned */\n    NotAssigned: 4,\n    /** Partially Assigned */\n    PartiallyAssigned: 5,\n    /** Fully Assigned */\n    FullyAssigned: 6,\n    /** Outstanding Trades (Today \\< end date) */\n    OutstandingTrades: 7,\n} as const);\n\nexport type CollInquiryQualifier = (typeof CollInquiryQualifier)[keyof typeof CollInquiryQualifier];\n", "/**\n * Result returned in response to Collateral Inquiry\n    4000+ Reserved and available for bi-laterally agreed upon user-defined values\n * - Tag: 946\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollInquiryResult = Object.freeze({\n    /** Successful (default) */\n    Successful: 0,\n    /** Invalid or unknown instrument */\n    InvalidOrUnknownInstrument: 1,\n    /** Invalid or unknown collateral type */\n    InvalidOrUnknownCollateralType: 2,\n    /** Invalid Parties */\n    InvalidParties: 3,\n    /** Invalid Transport Type requested */\n    InvalidTransportTypeRequested: 4,\n    /** Invalid Destination requested */\n    InvalidDestinationRequested: 5,\n    /** No collateral found for the trade specified */\n    NoCollateralFoundForTheTradeSpecified: 6,\n    /** No collateral found for the order specified */\n    NoCollateralFoundForTheOrderSpecified: 7,\n    /** Collateral inquiry type not supported */\n    CollateralInquiryTypeNotSupported: 8,\n    /** Unauthorized for collateral inquiry */\n    UnauthorizedForCollateralInquiry: 9,\n    /** Other (further information in Text (58) field) */\n    Other: 99,\n} as const);\n\nexport type CollInquiryResult = (typeof CollInquiryResult)[keyof typeof CollInquiryResult];\n", "/**\n * Status of Collateral Inquiry\n * - Tag: 945\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollInquiryStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Accepted With Warnings */\n    AcceptedWithWarnings: 1,\n    /** Completed */\n    Completed: 2,\n    /** Completed With Warnings */\n    CompletedWithWarnings: 3,\n    /** Rejected */\n    Rejected: 4,\n} as const);\n\nexport type CollInquiryStatus = (typeof CollInquiryStatus)[keyof typeof CollInquiryStatus];\n", "/**\n * Reject reason code for rejecting the collateral report.\n * - Tag: 2487\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollRptRejectReason = Object.freeze({\n    /** Unknown trade or transaction */\n    UnknownTrade: 0,\n    /** Unknown or invalid instrument */\n    UnknownInstrument: 1,\n    /** Unknown or invalid counterparty */\n    UnknownCounterparty: 2,\n    /** Unknown or invalid position */\n    UnknownPosition: 3,\n    /** Unacceptable or invalid type of collateral */\n    UnacceptableCollateral: 4,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type CollRptRejectReason = (typeof CollRptRejectReason)[keyof typeof CollRptRejectReason];\n", "/**\n * The status of the collateral report.\n * - Tag: 2488\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollRptStatus = Object.freeze({\n    /** Accepted (successfully processed) */\n    Accepted: 0,\n    /** Received (not yet processed) */\n    Received: 1,\n    /** Rejected */\n    Rejected: 2,\n} as const);\n\nexport type CollRptStatus = (typeof CollRptStatus)[keyof typeof CollRptStatus];\n", "/**\n * Collateral Status\n * - Tag: 910\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CollStatus = Object.freeze({\n    /** Unassigned */\n    Unassigned: 0,\n    /** Partially Assigned */\n    PartiallyAssigned: 1,\n    /** Assignment Proposed */\n    AssignmentProposed: 2,\n    /** Assigned (Accepted) */\n    Assigned: 3,\n    /** Challenged */\n    Challenged: 4,\n    /** Reused\n        A modification of the details of the collateral re-use. In the context of EU SFTR reporting, to be used with RegulatoryReportType(1934)=31 (Collateral update). */\n    Reused: 5,\n} as const);\n\nexport type CollStatus = (typeof CollStatus)[keyof typeof CollStatus];\n", "/**\n * Further sub classification of the CommissionAmountType(2641).\n * - Tag: 2725\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CommissionAmountSubType = Object.freeze({\n    /** Research payment account (RPA) */\n    ResearchPaymentAccount: 0,\n    /** Commission sharing agreement (CSA) */\n    CommissionSharingAgreement: 1,\n    /** Other type of research payment\n        A type of research payment other than RPA or CSA. */\n    OtherTypeResearchPayment: 2,\n} as const);\n\nexport type CommissionAmountSubType = (typeof CommissionAmountSubType)[keyof typeof CommissionAmountSubType];\n", "/**\n * Indicates what type of commission is being expressed in CommissionAmount(2640).\n * - Tag: 2641\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CommissionAmountType = Object.freeze({\n    /** Unspecified */\n    Unspecified: 0,\n    /** Acceptance\n        The bank's charge for issuing a Letter of Credit. */\n    Acceptance: 1,\n    /** Broker\n        The executing broker's commission. */\n    Broker: 2,\n    /** Clearing broker\n        The clearing broker's commission. */\n    ClearingBroker: 3,\n    /** Retail\n        Commission charged by or related to retail sales. */\n    Retail: 4,\n    /** Sales commission\n        The commission charged by the sales desk. */\n    SalesCommission: 5,\n    /** Local commission\n        Commission paid to local broker in a cross-border transaction. */\n    LocalCommission: 6,\n    /** Research payment */\n    ResearchPayment: 7,\n} as const);\n\nexport type CommissionAmountType = (typeof CommissionAmountType)[keyof typeof CommissionAmountType];\n", "/**\n * Final price type of the commodity as specified by the trading venue.\n * - Tag: 2736\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CommodityFinalPriceType = Object.freeze({\n    /** Argus McCloskey */\n    ArgusMcCloskey: 0,\n    /** Baltic */\n    Baltic: 1,\n    /** Exchange */\n    Exchange: 2,\n    /** Global Coal */\n    GlobalCoal: 3,\n    /** IHS McCloskey */\n    IHSMcCloskey: 4,\n    /** Platts */\n    Platts: 5,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type CommodityFinalPriceType = (typeof CommodityFinalPriceType)[keyof typeof CommodityFinalPriceType];\n", "/**\n * Specifies the basis or unit used to calculate the total commission based on the rate.\n * - Tag: 13\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const CommType = Object.freeze({\n    /** Amount per unit\n        Implying shares, par, currency, physical unit etc. Use CommissionUnitOfMeasure(1238) to clarify for commodities. */\n    PerUnit: '1',\n    /** Percent */\n    Percent: '2',\n    /** Absolute\n        Total monetary amount. */\n    Absolute: '3',\n    /** Percentage waived, cash discount basis\n        For use with CIV buy orders. */\n    PercentageWaivedCashDiscount: '4',\n    /** Percentage waived, enhanced units basis\n        For use with CIV buy orders. */\n    PercentageWaivedEnhancedUnits: '5',\n    /** Points per bond or contract\n        Specify ContractMultiplier(231) in the Instrument component if the security is denominated in a size other than the market convention, e.g. 1000 par for bonds. */\n    PointsPerBondOrContract: '6',\n    /** Basis points\n        The commission is expressed in basis points in reference to the gross price of the reference asset. */\n    BasisPoints: '7',\n    /** Amount per contract\n        Specify ContractMultiplier(231) in the Instrument component if the security is denominated in a size other than the market convention. */\n    AmountPerContract: '8',\n} as const);\n\nexport type CommType = (typeof CommType)[keyof typeof CommType];\n", "/**\n * Specifies the condition between complex events when more than one event is specified.\n    Multiple barrier events would use an \"or\" condition since only one can be effective at a given time. A set of digital range events would use an \"and\" condition since both conditions must be in effect for a payout to result.\n * - Tag: 1490\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ComplexEventCondition = Object.freeze({\n    /** And */\n    And: 1,\n    /** Or */\n    Or: 2,\n} as const);\n\nexport type ComplexEventCondition = (typeof ComplexEventCondition)[keyof typeof ComplexEventCondition];\n", "/**\n * The notifying party is the party that notifies the other party when a credit event has occurred by means of a credit event notice. If more than one party is referenced as being the notifying party then either party may notify the other of a credit event occurring.\n * - Tag: 2134\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ComplexEventCreditEventNotifyingParty = Object.freeze({\n    /** Seller notifies */\n    SellerNotifies: 0,\n    /** Buyer notifies */\n    BuyerNotifies: 1,\n    /** Seller or buyer notifies */\n    SellerOrBuyerNotifies: 2,\n} as const);\n\nexport type ComplexEventCreditEventNotifyingParty =\n    (typeof ComplexEventCreditEventNotifyingParty)[keyof typeof ComplexEventCreditEventNotifyingParty];\n", "/**\n * Specifies the day type of the relative date offset.\n * - Tag: 41024\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ComplexEventDateOffsetDayType = Object.freeze({\n    /** Business */\n    Business: 0,\n    /** Calendar */\n    Calendar: 1,\n    /** Commodity business */\n    CommodityBusiness: 2,\n    /** Currency business */\n    CurrencyBusiness: 3,\n    /** Exchange business */\n    ExchangeBusiness: 4,\n    /** Scheduled trading day */\n    ScheduledTradingDay: 5,\n} as const);\n\nexport type ComplexEventDateOffsetDayType =\n    (typeof ComplexEventDateOffsetDayType)[keyof typeof ComplexEventDateOffsetDayType];\n", "/**\n * Specifies the period type.\n * - Tag: 41011\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ComplexEventPeriodType = Object.freeze({\n    /** Asian Out */\n    AsianOut: 0,\n    /** Asian In */\n    AsianIn: 1,\n    /** Barrier Cap */\n    BarrierCap: 2,\n    /** Barrier Floor */\n    BarrierFloor: 3,\n    /** Knock Out */\n    KnockOut: 4,\n    /** Knock In */\n    KnockIn: 5,\n} as const);\n\nexport type ComplexEventPeriodType = (typeof ComplexEventPeriodType)[keyof typeof ComplexEventPeriodType];\n", "/**\n * Specifies the boundary condition to be used for the event price relative to the underlying price at the point the complex event outcome takes effect as determined by the ComplexEventPriceTimeType.\n * - Tag: 1487\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ComplexEventPriceBoundaryMethod = Object.freeze({\n    /** Less than ComplexEventPrice(1486) */\n    LessThanComplexEventPrice: 1,\n    /** Less than or equal to ComplexEventPrice(1486) */\n    LessThanOrEqualToComplexEventPrice: 2,\n    /** Equal to ComplexEventPrice(1486) */\n    EqualToComplexEventPrice: 3,\n    /** Greater than or equal to ComplexEventPrice(1486) */\n    GreaterThanOrEqualToComplexEventPrice: 4,\n    /** Greater than ComplexEventPrice(1486) */\n    GreaterThanComplexEventPrice: 5,\n} as const);\n\nexport type ComplexEventPriceBoundaryMethod =\n    (typeof ComplexEventPriceBoundaryMethod)[keyof typeof ComplexEventPriceBoundaryMethod];\n", "/**\n * Specifies when the complex event outcome takes effect. The outcome of a complex event is a payout or barrier action as specified by the ComplexEventType(1484).\n * - Tag: 1489\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ComplexEventPriceTimeType = Object.freeze({\n    /** Expiration */\n    Expiration: 1,\n    /** Immediate (At Any Time) */\n    Immediate: 2,\n    /** Specified Date/Time */\n    SpecifiedDate: 3,\n    /** Close\n        Official closing time of the exchange on valuation date. */\n    Close: 4,\n    /** Open\n        Official opening time of the exchange on valuation date. */\n    Open: 5,\n    /** Official settlement price\n        Official settlement price determination time. */\n    OfficialSettlPrice: 6,\n    /** Derivatives close\n        Official closing time of the derivatives exchange. */\n    DerivativesClose: 7,\n    /** As specified in Master Confirmation */\n    AsSpecifiedMasterConfirmation: 8,\n} as const);\n\nexport type ComplexEventPriceTimeType = (typeof ComplexEventPriceTimeType)[keyof typeof ComplexEventPriceTimeType];\n", "/**\n * Specifies the fallback provisions for the hedging party in the determination of the final settlement price.\n * - Tag: 2599\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ComplexEventPVFinalPriceElectionFallback = Object.freeze({\n    /** Close\n        In respect of the \"early final valuation date\", the provisions for \"future present value close\" shall apply. */\n    Close: 0,\n    /** Hedge election\n        In respect of the \"early final valuation date\", the provisions for \"future present value hedge execution\" shall apply. */\n    HedgeElection: 1,\n} as const);\n\nexport type ComplexEventPVFinalPriceElectionFallback =\n    (typeof ComplexEventPVFinalPriceElectionFallback)[keyof typeof ComplexEventPVFinalPriceElectionFallback];\n", "/**\n * For foreign exchange Quanto option feature.\n * - Tag: 2126\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ComplexEventQuoteBasis = Object.freeze({\n    /** Currency 1 per currency 2 */\n    Currency1PerCurrency2: 0,\n    /** Currency 2 per currency 1 */\n    Currency2PerCurrency1: 1,\n} as const);\n\nexport type ComplexEventQuoteBasis = (typeof ComplexEventQuoteBasis)[keyof typeof ComplexEventQuoteBasis];\n", "/**\n * Identifies the type of complex event.\n * - Tag: 1484\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ComplexEventType = Object.freeze({\n    /** Capped */\n    Capped: 1,\n    /** Trigger */\n    Trigger: 2,\n    /** Knock-in up */\n    KnockInUp: 3,\n    /** Knock-in down */\n    KnockInDown: 4,\n    /** Knock-out up */\n    KnockOutUp: 5,\n    /** Knock-out down */\n    KnockOutDown: 6,\n    /** Underlying */\n    Underlying: 7,\n    /** Reset Barrier */\n    ResetBarrier: 8,\n    /** Rolling Barrier */\n    RollingBarrier: 9,\n    /** One-touch */\n    OneTouch: 10,\n    /** No-touch */\n    NoTouch: 11,\n    /** Double one-touch */\n    DblOneTouch: 12,\n    /** Double no-touch */\n    DblNoTouch: 13,\n    /** Foreign exchange composite */\n    FXComposite: 14,\n    /** Foreign exchange Quanto */\n    FXQuanto: 15,\n    /** Foreign exchange cross currency */\n    FXCrssCcy: 16,\n    /** Strike spread */\n    StrkSpread: 17,\n    /** Calendar spread */\n    ClndrSpread: 18,\n    /** Price observation (Asian or Lookback) */\n    PxObsvtn: 19,\n    /** Pass-through */\n    PassThrough: 20,\n    /** Strike schedule */\n    StrkSched: 21,\n    /** Equity valuation */\n    EquityValuation: 22,\n    /** Dividend valuation */\n    DividendValuation: 23,\n} as const);\n\nexport type ComplexEventType = (typeof ComplexEventType)[keyof typeof ComplexEventType];\n", "/**\n * Specifies when the payout is to occur.\n * - Tag: 2121\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ComplexOptPayoutTime = Object.freeze({\n    /** Close */\n    Close: 0,\n    /** Open */\n    Open: 1,\n    /** Official settlement */\n    OfficialSettl: 2,\n    /** Valuation time */\n    ValuationTime: 3,\n    /** Exchange settlement time */\n    ExcahgneSettlTime: 4,\n    /** Derivatives close */\n    DerivativesClose: 5,\n    /** As specified in master confirmation */\n    AsSpecified: 6,\n} as const);\n\nexport type ComplexOptPayoutTime = (typeof ComplexOptPayoutTime)[keyof typeof ComplexOptPayoutTime];\n", "/**\n * Specifies how a trade was confirmed.\n * - Tag: 1927\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ConfirmationMethod = Object.freeze({\n    /** Non-electronic */\n    NonElectronic: 0,\n    /** Electronic */\n    Electronic: 1,\n    /** Unconfirmed */\n    Unconfirmed: 2,\n} as const);\n\nexport type ConfirmationMethod = (typeof ConfirmationMethod)[keyof typeof ConfirmationMethod];\n", "/**\n * Identifies the reason for rejecting a Confirmation.\n * - Tag: 774\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ConfirmRejReason = Object.freeze({\n    /** Incorrect or missing account */\n    MismatchedAccount: 1,\n    /** Incorrect or missing settlement instructions */\n    MissingSettlementInstructions: 2,\n    /** Unknown or missing IndividualAllocId(467) */\n    UnknownOrMissingIndividualAllocId: 3,\n    /** Transaction not recognized */\n    TransactionNotRecognized: 4,\n    /** Duplicate transaction */\n    DuplicateTransaction: 5,\n    /** Incorrect or missing instrument */\n    IncorrectOrMissingInstrument: 6,\n    /** Incorrect or missing price */\n    IncorrectOrMissingPrice: 7,\n    /** Incorrect or missing commission */\n    IncorrectOrMissingCommission: 8,\n    /** Incorrect or missing settlement date */\n    IncorrectOrMissingSettlDate: 9,\n    /** Incorrect or missing fund ID or fund name */\n    IncorrectOrMissingFundIDOrFundName: 10,\n    /** Incorrect or missing quantity */\n    IncorrectOrMissingQuantity: 11,\n    /** Incorrect or missing fees */\n    IncorrectOrMissingFees: 12,\n    /** Incorrect or missing tax */\n    IncorrectOrMissingTax: 13,\n    /** Incorrect or missing party */\n    IncorrectOrMissingParty: 14,\n    /** Incorrect or missing side */\n    IncorrectOrMissingSide: 15,\n    /** Incorrect or missing net-money */\n    IncorrectOrMissingNetMoney: 16,\n    /** Incorrect or missing trade date */\n    IncorrectOrMissingTradeDate: 17,\n    /** Incorrect or missing settlement currency instructions */\n    IncorrectOrMissingSettlCcyInstructions: 18,\n    /** Incorrect or missing capacity */\n    IncorrectOrMissingCapacity: 19,\n    /** Other\n        Use Text(58) for further reject reasons. */\n    Other: 99,\n} as const);\n\nexport type ConfirmRejReason = (typeof ConfirmRejReason)[keyof typeof ConfirmRejReason];\n", "/**\n * Identifies the status of the Confirmation.\n * - Tag: 665\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ConfirmStatus = Object.freeze({\n    /** Received */\n    Received: 1,\n    /** Mismatched Account */\n    MismatchedAccount: 2,\n    /** Missing Settlement Instructions */\n    MissingSettlementInstructions: 3,\n    /** Confirmed */\n    Confirmed: 4,\n    /** Request Rejected */\n    RequestRejected: 5,\n} as const);\n\nexport type ConfirmStatus = (typeof ConfirmStatus)[keyof typeof ConfirmStatus];\n", "/**\n * Identifies the Confirmation transaction type.\n * - Tag: 666\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ConfirmTransType = Object.freeze({\n    /** New */\n    New: 0,\n    /** Replace */\n    Replace: 1,\n    /** Cancel */\n    Cancel: 2,\n} as const);\n\nexport type ConfirmTransType = (typeof ConfirmTransType)[keyof typeof ConfirmTransType];\n", "/**\n * Identifies the type of Confirmation message being sent.\n * - Tag: 773\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ConfirmType = Object.freeze({\n    /** Status */\n    Status: 1,\n    /** Confirmation */\n    Confirmation: 2,\n    /** Confirmation Request Rejected (reason can be stated in Text (58) field) */\n    ConfirmationRequestRejected: 3,\n} as const);\n\nexport type ConfirmType = (typeof ConfirmType)[keyof typeof ConfirmType];\n", "/**\n * Type of ContAmtValue (520).\n    NOTE That Commission Amount / % in Contract Amounts is the commission actually charged, rather than the commission instructions given in Fields 2/3.\n * - Tag: 519\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ContAmtType = Object.freeze({\n    /** Commission amount (actual) */\n    CommissionAmount: 1,\n    /** Commission percent (actual) */\n    CommissionPercent: 2,\n    /** Initial Charge Amount */\n    InitialChargeAmount: 3,\n    /** Initial Charge Percent */\n    InitialChargePercent: 4,\n    /** Discount Amount */\n    DiscountAmount: 5,\n    /** Discount Percent */\n    DiscountPercent: 6,\n    /** Dilution Levy Amount */\n    DilutionLevyAmount: 7,\n    /** Dilution Levy Percent */\n    DilutionLevyPercent: 8,\n    /** Exit Charge Amount */\n    ExitChargeAmount: 9,\n    /** Exit Charge Percent */\n    ExitChargePercent: 10,\n    /** Fund-Based Renewal Commission Percent (a.k.a. Trail commission) */\n    FundBasedRenewalCommissionPercent: 11,\n    /** Projected Fund Value (i.e. for investments intended to realise or exceed a specific future value) */\n    ProjectedFundValue: 12,\n    /** Fund-Based Renewal Commission Amount (based on Order value) */\n    FundBasedRenewalCommissionOnOrder: 13,\n    /** Fund-Based Renewal Commission Amount (based on Projected Fund value) */\n    FundBasedRenewalCommissionOnFund: 14,\n    /** Net Settlement Amount */\n    NetSettlementAmount: 15,\n} as const);\n\nexport type ContAmtType = (typeof ContAmtType)[keyof typeof ContAmtType];\n", "/**\n * Defines the type of contingency.\n * - Tag: 1385\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ContingencyType = Object.freeze({\n    /** One Cancels the Other (OCO) */\n    OneCancelsTheOther: 1,\n    /** One Triggers the Other (OTO) */\n    OneTriggersTheOther: 2,\n    /** One Updates the Other (OUO) - Absolute Quantity Reduction */\n    OneUpdatesTheOtherAbsolute: 3,\n    /** One Updates the Other (OUO) - Proportional Quantity Reduction */\n    OneUpdatesTheOtherProportional: 4,\n    /** Bid and Offer */\n    BidAndOffer: 5,\n    /** Bid and Offer OCO */\n    BidAndOfferOCO: 6,\n} as const);\n\nexport type ContingencyType = (typeof ContingencyType)[keyof typeof ContingencyType];\n", "/**\n * Indicates the type of multiplier being applied to the contract. Can be optionally used to further define what unit ContractMultiplier(tag 231) is expressed in.\n * - Tag: 1435\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ContractMultiplierUnit = Object.freeze({\n    /** Shares */\n    Shares: 0,\n    /** Hours */\n    Hours: 1,\n    /** Days */\n    Days: 2,\n} as const);\n\nexport type ContractMultiplierUnit = (typeof ContractMultiplierUnit)[keyof typeof ContractMultiplierUnit];\n", "/**\n * Additional information related to the pricing of a commodity swaps position, specifically an indicator referring to the position type.\n * - Tag: 1833\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ContractRefPosType = Object.freeze({\n    /** Two component intercommodity spread */\n    TwoComponentIntercommoditySpread: 0,\n    /** Index or basket */\n    IndexOrBasket: 1,\n    /** Two component locational basis */\n    TwoComponentLocationBasis: 2,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type ContractRefPosType = (typeof ContractRefPosType)[keyof typeof ContractRefPosType];\n", "/**\n * Identifies the type of Corporate Action.\n * - Tag: 292\n * - FIX Specification type: MultipleCharValue\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const CorporateAction = Object.freeze({\n    /** Ex-Dividend */\n    ExDividend: 'A',\n    /** Ex-Distribution */\n    ExDistribution: 'B',\n    /** Ex-Rights */\n    ExRights: 'C',\n    /** New */\n    New: 'D',\n    /** Ex-Interest */\n    ExInterest: 'E',\n    /** Cash Dividend */\n    CashDividend: 'F',\n    /** Stock Dividend */\n    StockDividend: 'G',\n    /** Non-Integer Stock Split */\n    NonIntegerStockSplit: 'H',\n    /** Reverse Stock Split */\n    ReverseStockSplit: 'I',\n    /** Standard-Integer Stock Split */\n    StandardIntegerStockSplit: 'J',\n    /** Position Consolidation */\n    PositionConsolidation: 'K',\n    /** Liquidation Reorganization */\n    LiquidationReorganization: 'L',\n    /** Merger Reorganization */\n    MergerReorganization: 'M',\n    /** Rights Offering */\n    RightsOffering: 'N',\n    /** Shareholder Meeting */\n    ShareholderMeeting: 'O',\n    /** Spinoff */\n    Spinoff: 'P',\n    /** Tender Offer */\n    TenderOffer: 'Q',\n    /** Warrant */\n    Warrant: 'R',\n    /** Special Action */\n    SpecialAction: 'S',\n    /** Symbol Conversion */\n    SymbolConversion: 'T',\n    /** CUSIP / Name Change */\n    CUSIP: 'U',\n    /** Leap Rollover */\n    LeapRollover: 'V',\n    /** Succession Event */\n    SuccessionEvent: 'W',\n} as const);\n\nexport type CorporateAction = (typeof CorporateAction)[keyof typeof CorporateAction];\n", "/**\n * The day count convention used in interest calculations for a bond or an interest bearing security. Absence of this field for a bond or an interest bearing security transaction implies a \"flat\" trade, i.e. no accrued interest determined at time of the transaction.\n * - Tag: 1950\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CouponDayCount = Object.freeze({\n    /** 1/1\n        If parties specify the Day Count Fraction to be 1/1 then in calculating the applicable amount, 1 is simply input into the calculation as the relevant Day Count Fraction. See also 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (a). */\n    OneOne: 0,\n    /** 30/360 (30U/360 or Bond Basis)\n        See also ISO 15022 MICO code 'A001'. */\n    ThirtyThreeSixtyUS: 1,\n    /** 30/360 (SIA)\n        A variant of \"30/360\" - when Date1 and Date2 are both Feb. 28th or 29th convert them to 30th using the same logic in the conversion of 31st to 30th. */\n    ThirtyThreeSixtySIA: 2,\n    /** 30/360M\n        Commonly used day count convention for US mortgage backed securities. Feb 28th (or 29th in a leap year) is always considered as a 30th for a start date. As a comparison, in the regular 30/360 day count as used by most US agency and corporate bonds, a start date of Feb 28th (or 29th in a leap year) is still considered as the 28th (or 29th) day of a month of 30 days. */\n    ThirtyThreeSixtyM: 3,\n    /** 30E/360 (Eurobond Basis)\n        See also ISO 15022 MICO code 'A007'. */\n    ThirtyEThreeSixty: 4,\n    /** 30E/360 (ISDA)\n        Date adjustment rules are: (1) if Date1 is the last day of the month, then change Date1 to 30; (2) if D2 is the last day of the month (unless Date2 is the maturity date and Date2 is in February), then change Date2 to 30. See also 2006 ISDA Definitions, Section 4.16. Day Count Fraction, paragraph (h). */\n    ThirtyEThreeSixtyISDA: 5,\n    /** Act/360\n        See also ISO 15022 MICO code 'A004'. */\n    ActThreeSixty: 6,\n    /** Act/365 (FIXED)\n        See also ISO 15022 MICO code 'A005'. */\n    ActThreeSixtyFiveFixed: 7,\n    /** Act/Act (AFB)\n        See also ISO 15022 MICO code 'A010'. */\n    ActActAFB: 8,\n    /** Act/Act (ICMA)\n        See also ISO 15022 MICO code 'A006'. */\n    ActActICMA: 9,\n    /** Act/Act (ICMA Ultimo)\n        The Act/Act (ICMA Ultimo) differs from Act/Act (ICMA) method only that it assumes that regular coupons always fall on the last day of the month. */\n    ActActISMAUltimo: 10,\n    /** Act/Act (ISDA)\n        See also ISO 15022 MICO code 'A008'. */\n    ActActISDA: 11,\n    /** BUS/252\n        Used for Brazilian Real swaps, which is based on business days instead of calendar days. The number of business days divided by 252. */\n    BusTwoFiftyTwo: 12,\n    /** 30E+/360\n        Variation on 30E/360. Date adjustment rules: (1) If Date1 falls on the 31st, then change it to the 30th; (2) If Date2 falls on the 31st, then change it to 1 and increase Month2 by one, i.e. next month. */\n    ThirtyEPlusThreeSixty: 13,\n    /** Act/365L\n        See also ISO 15022 MICO code 'A009'. */\n    ActThreeSixtyFiveL: 14,\n    /** NL365\n        See also ISO 15022 MICO code 'A014'. */\n    NLThreeSixtyFive: 15,\n    /** NL360\n        This is the same as Act/360, with the exception of leap days (29th February) which are ignored. */\n    NLThreeSixty: 16,\n    /** Act/364\n        The actual number of days between Date1 and Date2, divided by 364. */\n    Act364: 17,\n    /** 30/365\n        Interest is calculated based on a 30-day month in a way similar to the 30/360 (basic rule) and a 365-day year. Accrued interest to a value date on the last day of a month shall be the same as to the 30th calendar day of the same month, except for February. This means that a 31 is assumed to be a 30 and the 28 February (or 29 February for a leap year) is assumed to be a 28 (or 29). See also ISO 15022 MICO code 'A002'. */\n    ThirtyThreeSixtyFive: 18,\n    /** 30/Actual\n        Interest is calculated based on a 30-day month in a way similar to the 30/360 (basic rule) and the assumed number of days in a year in a way similar to the Actual/Actual (ICMA). Accrued interest to a value date on the last day of a month shall be the same as to the 30th calendar day of the same month, except for February. This means that a 31 is assumed to be a 30 and the 28 February (or 29 February for a leap year) is assumed to be a 28 (or 29). The assumed number of days in a year is computed as the actual number of days in the coupon period multiplied by the number of interest payments in the year. See also ISO 15022 MICO code 'A003'. */\n    ThirtyActual: 19,\n    /** 30/360 (ICMA or basis rule)\n        Interest is calculated based on a 30-day month and a 360-day year. Accrued interest to a value date on the last day of a month shall be the same as to the 30 calendar day of the same month, except for February. This means that a 31 is assumed to be a 30 and the 28 February (or 29 February for a leap year) is assumed to be a 28 (or 29). It is the most commonly used 30/360 method for non-US straight and convertible bonds issued before 1 January 1999. See also ISO 15022 MICO code 'A011'. */\n    ThirtyThreeSixtyICMA: 20,\n    /** 30E2/360 (Eurobond basis model two)\n        Interest is calculated based on a 30-day month and a 360-day year. Accrued interest to a value date on the last day of a month shall be the same as to the 30th calendar day of the same month, except for the last day of February whose day of the month value shall be adapted to the value of the first day of the interest period if the latter is higher and if the period is one of a regular schedule. This means that a 31 is assumed to be a 30 and the 28 February of a non-leap year is assumed to be equivalent to a 29 February when the first day of the interest period is a 29, or to a 30 February when the first day of the interest period is a 30 or a 31. The 29 February of a leap year is assumed to be equivalent to a 30 February when the first day of the interest period is a 30 or a 31. Similarly, if the coupon period starts on the last day of February, it is assumed to produce only one day of interest in February as if it was starting on a 30 February when the end of the period is a 30 or a 31, or two days of interest in February when the end of the period is a 29, or three days of interest in February when it is the 28 February of a non-leap year and the end of the period is before the 29. See also ISO 15022 MICO code 'A012'. */\n    ThirtyETwoThreeSixty: 21,\n    /** 30E3/360 (Eurobond basis model three)\n        Interest is calculated based on a 30-day month and a 360-day year. Accrued interest to a value date on the last day of a month shall be the same as to the 30th calendar day of the same month. This means that a 31 is assumed to be a 30 and the 28 February (or 29 February for a leap year) is assumed to be equivalent to a 30 February. It is a variation of the 30E/360 (or Eurobond basis) method where the last day of February is always assumed to be a 30, even if it is the last day of the maturity coupon period. See also ISO 15022 MICO code 'A013'. */\n    ThirtyEThreeThreeSixty: 22,\n    /** Other\n        For other day count method. See also ISO 15022 MICO code 'OTHR'. */\n    Other: 99,\n} as const);\n\nexport type CouponDayCount = (typeof CouponDayCount)[keyof typeof CouponDayCount];\n", "/**\n * Time unit associated with the frequency of the bond's coupon payment.\n * - Tag: 1949\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const CouponFrequencyUnit = Object.freeze({\n    /** Day */\n    Day: 'D',\n    /** Week */\n    Week: 'Wk',\n    /** Month */\n    Month: 'Mo',\n    /** Year */\n    Year: 'Yr',\n    /** Hour */\n    Hour: 'H',\n    /** Minute */\n    Minute: 'Min',\n    /** Second */\n    Second: 'S',\n    /** Term */\n    Term: 'T',\n} as const);\n\nexport type CouponFrequencyUnit = (typeof CouponFrequencyUnit)[keyof typeof CouponFrequencyUnit];\n", "/**\n * Coupon type of the bond.\n * - Tag: 1946\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CouponType = Object.freeze({\n    /** Zero */\n    Zero: 0,\n    /** Fixed rate */\n    FixedRate: 1,\n    /** Floating rate */\n    FloatingRate: 2,\n    /** Structured */\n    Structured: 3,\n} as const);\n\nexport type CouponType = (typeof CouponType)[keyof typeof CouponType];\n", "/**\n * Used for derivative products, such as options\n * - Tag: 203\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CoveredOrUncovered = Object.freeze({\n    /** Covered */\n    Covered: 0,\n    /** Uncovered */\n    Uncovered: 1,\n} as const);\n\nexport type CoveredOrUncovered = (typeof CoveredOrUncovered)[keyof typeof CoveredOrUncovered];\n", "/**\n * The program under which a commercial paper offering is exempt from SEC registration identified by the paragraph number(s) within the US Securities Act of 1933 or as identified below.\n * - Tag: 875\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CPProgram = Object.freeze({\n    /** 3(a)(3)\n        Arising out of a current transaction with a maturity less than 9 months. */\n    Program3a3: 1,\n    /** 4(2)\n        Issued not involving any public offering. */\n    Program42: 2,\n    /** 3(a)(2)\n        Issued or guaranteed by the US, state or territorial government. */\n    Program3a2: 3,\n    /** 3(a)(3) & 3(c)(7)\n        Combination of 3(a)(3) and 3(c)(7). */\n    Program3a3And3c7: 4,\n    /** 3(a)(4)\n        Religious, education, benevolent, fraternal, charitable or reformatory purposes. */\n    Program3a4: 5,\n    /** 3(a)(5)\n        Issued by an institution supervised by state or federal authority or by an exempt farmer's cooperative. */\n    Program3a5: 6,\n    /** 3(a)(7)\n        Issued by a receiver or trustee in bankruptcy. */\n    Program3a7: 7,\n    /** 3(c)(7)\n        Qualified hedge-fund under the Investment Company Act of 1940. */\n    Program3c7: 8,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type CPProgram = (typeof CPProgram)[keyof typeof CPProgram];\n", "/**\n * Indicates whether the order or quote was crossed with another order or quote having the same context, e.g. having accounts with a common ownership.\n * - Tag: 2523\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CrossedIndicator = Object.freeze({\n    /** No cross\n        Crossing did not occur. */\n    NoCross: 0,\n    /** Cross rejected\n        Crossing occurred but execution was prevented, e.g. due to self-match prevention. */\n    CrossRejected: 1,\n    /** Cross accepted\n        Crossing occurred but execution was permitted. */\n    CrossAccepted: 2,\n} as const);\n\nexport type CrossedIndicator = (typeof CrossedIndicator)[keyof typeof CrossedIndicator];\n", "/**\n * Indicates if one side or the other of a cross order should be prioritized.\n    The definition of prioritization is left to the market. In some markets prioritization means which side of the cross order is applied to the market first. In other markets - prioritization may mean that the prioritized side is fully executed (sometimes referred to as the side being protected).\n * - Tag: 550\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CrossPrioritization = Object.freeze({\n    /** None */\n    None: 0,\n    /** Buy side is prioritized */\n    BuySideIsPrioritized: 1,\n    /** Sell side is prioritized */\n    SellSideIsPrioritized: 2,\n} as const);\n\nexport type CrossPrioritization = (typeof CrossPrioritization)[keyof typeof CrossPrioritization];\n", "/**\n * Type of cross being submitted to a market\n * - Tag: 549\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CrossType = Object.freeze({\n    /** All-or-none cross\n        A cross order which is executed completely or not at all. Both sides of the cross are treated in the same manner. */\n    CrossAON: 1,\n    /** Immediate-or-cancel cross\n        A cross order which is immediately executed with any unfilled quantity cancelled. CrossPrioritization(550) may be used to indicate whether one side should have execution priority and any remaining quantity of the partially executed side be cancelled. Using CrossPrioritiation(550)=\"Y\" and CrossType(549)=2(Immediate-or-cancel cross) is equivalent to non-prioritized leg having a TimeInForce(59)=3(IOC) Immediate-or-cancel. */\n    CrossIOC: 2,\n    /** One sided cross\n        A cross order which is executed on one side with any unfilled quantity remaining active. CrossPrioritization(550) may be used to indicate which side should have execution priority. */\n    CrossOneSide: 3,\n    /** Cross executed against book\n        A cross order which is executed against existing orders in the order book. The quantity on one side of the cross is executed against existing orders and quotes with the same price, and any remaining quantity of the cross is executed against the other side of the cross. The two sides of the cross may have different quantities. */\n    CrossSamePrice: 4,\n    /** Basis cross\n        A cross order where a basket of securities or an index participation unit is transacted at prices achieved through the execution of related exchange-traded derivative instruments in an amount that will correspond to an equivalent market exposure. */\n    BasisCross: 5,\n    /** Contingent cross\n        A cross order resulting from a paired order placed by a participant to execute an order on a security that is contingent on the execution of a second order for an offsetting volume of a related security. */\n    ContingentCross: 6,\n    /** Volume-weighted-average-price (VWAP) cross\n        A cross order for the purpose of executing a trade at a volume-weighted-average-price (VWAP) of a security traded for a continuous period on or during a trading day. */\n    VWAPCross: 7,\n    /** Special trading session cross\n        A closing price cross resulting from an order placed by a participant for execution in a special trading session at the last sale price. */\n    STSCross: 8,\n    /** Customer to customer cross\n        Cross order where both sides of the cross represent agency orders. */\n    CustomerToCustomer: 9,\n} as const);\n\nexport type CrossType = (typeof CrossType)[keyof typeof CrossType];\n", "/**\n * Identifies class or source of the Currency(15) value.\n * - Tag: 2897\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const CurrencyCodeSource = Object.freeze({\n    /** CUSIP */\n    CUSIP: '1',\n    /** SEDOL */\n    SEDOL: '2',\n    /** ISIN */\n    ISINNumber: '4',\n    /** ISO Currency Code (ISO 4217) */\n    ISOCurrencyCode: '6',\n    /** Financial Instrument Global Identifier\n        An Object Management Group (OMG) standard. Also referred to as FIGI. Formerly known as \"Bloomberg Open Symbology BBGID\". */\n    FinancialInstrumentGlobalIdentifier: 'S',\n    /** Digital Token Identifier (ISO 24165) */\n    DigitalTokenIdentifier: 'Y',\n} as const);\n\nexport type CurrencyCodeSource = (typeof CurrencyCodeSource)[keyof typeof CurrencyCodeSource];\n", "/**\n * Capacity of customer placing the order.\n    Used by futures exchanges to indicate the CTICode (customer type indicator) as required by the US CFTC (Commodity Futures Trading Commission). May be used as required by other regulatory commissions for similar purposes.\n * - Tag: 582\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CustOrderCapacity = Object.freeze({\n    /** Member trading for their own account */\n    MemberTradingForTheirOwnAccount: 1,\n    /** Clearing firm trading for its proprietary account */\n    ClearingFirmTradingForItsProprietaryAccount: 2,\n    /** Member trading for another member */\n    MemberTradingForAnotherMember: 3,\n    /** All other */\n    AllOther: 4,\n    /** Retail customer\n        An order that originated from a retail customer (a natural person). In the context of the US Securities and Exchange Commission, this also means an order originated from a natural person where, prior to submission, no change was made to the terms of the order with respect to price or side of market and the order does not originate from an algorithm or other computerized trading method. */\n    RetailCustomer: 5,\n} as const);\n\nexport type CustOrderCapacity = (typeof CustOrderCapacity)[keyof typeof CustOrderCapacity];\n", "/**\n * Codes that apply special information that the Broker / Dealer needs to report, as specified by the customer.\n    NOTE: This field and its values have no bearing on the ExecInst and TimeInForce fields. These values should not be used instead of ExecInst or TimeInForce. This field and its values are intended for compliance reporting and/or billing purposes only.\n    For OrderHandlingInstSrc(1032) = 1 (FINRA OATS), valid values are (as of OATS Phase 3 as provided by FINRA. See also http://www.finra.org/Industry/Compliance/MarketTransparency/OATS/PhaseIII/index.htm for a complete list.\n    For OrderHandlingInstSrc(1032) = 2 (FIA Execution Source Code), only one enumeration value may be specified.\n * - Tag: 1031\n * - FIX Specification type: MultipleStringValue\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const CustOrderHandlingInst = Object.freeze({\n    /** Phone simple */\n    PhoneSimple: 'A',\n    /** G Order(FINRA OATS), FCM API or FIX(FIA Execution Source) */\n    GOrderAndFCMAPIorFIX: 'G',\n    /** Phone complex */\n    PhoneComplex: 'B',\n    /** Add-on order */\n    AddOnOrder: 'ADD',\n    /** FCM provided screen */\n    FCMProvidedScreen: 'C',\n    /** All or none */\n    AllOrNone: 'AON',\n    /** Other provided screen */\n    OtherProvidedScreen: 'D',\n    /** Conditional order */\n    ConditionalOrder: 'CND',\n    /** Client provided platform controlled by FCM */\n    ClientProvidedPlatformControlledByFCM: 'E',\n    /** Cash not held */\n    CashNotHeld: 'CNH',\n    /** Client provided platform direct to exchange */\n    ClientProvidedPlatformDirectToExchange: 'F',\n    /** Delivery instructions - cash */\n    DeliveryInstructionsCash: 'CSH',\n    /** Directed order */\n    DirectedOrder: 'DIR',\n    /** Algo engine */\n    AlgoEngine: 'H',\n    /** Discretionary limit order */\n    DiscretionaryLimitOrder: 'DLO',\n    /** Price at execution (price added at initial order entry, trading, middle office or time of give-up) */\n    PriceAtExecution: 'J',\n    /** Exchange for physical transaction */\n    ExchangeForPhysicalTransaction: 'E.W',\n    /** Desk - electronic */\n    DeskElectronic: 'W',\n    /** Fill or kill */\n    FillOrKill: 'FOK',\n    /** Desk - pit */\n    DeskPit: 'X',\n    /** Client - electronic */\n    ClientElectronic: 'Y',\n    /** Intraday cross */\n    IntraDayCross: 'IDX',\n    /** Client - pit */\n    ClientPit: 'Z',\n    /** Imbalance only */\n    ImbalanceOnly: 'IO',\n    /** Immediate or cancel */\n    ImmediateOrCancel: 'IOC',\n    /** Intermarket sweep order */\n    IntermarketSweepOrder: 'ISO',\n    /** Limit on open */\n    LimitOnOpen: 'LOO',\n    /** Limit on Close */\n    LimitOnClose: 'LOC',\n    /** Market at Open */\n    MarketAtOpen: 'MAO',\n    /** Market at close */\n    MarketAtClose: 'MAC',\n    /** Market on open */\n    MarketOnOpen: 'MOO',\n    /** Market on close */\n    MarketOnClose: 'MOC',\n    /** Merger related transfer position */\n    MergerRelatedTransferPosition: 'MPT',\n    /** Minimum quantity */\n    MinimumQuantity: 'MQT',\n    /** Market to limit */\n    MarketToLimit: 'MTL',\n    /** Delivery instructions - next day */\n    DeliveryInstructionsNextDay: 'ND',\n    /** Not held */\n    NotHeld: 'NH',\n    /** Options related transaction */\n    OptionsRelatedTransaction: 'OPT',\n    /** Over the day */\n    OverTheDay: 'OVD',\n    /** Pegged */\n    Pegged: 'PEG',\n    /** Reserve size order */\n    ReserveSizeOrder: 'RSV',\n    /** Stop stock transaction */\n    StopStockTransaction: 'S.W',\n    /** Scale */\n    Scale: 'SCL',\n    /** Delivery instructions - sellers option */\n    DeliveryInstructionsSellersOption: 'SLR',\n    /** Time order */\n    TimeOrder: 'TMO',\n    /** Trailing stop */\n    TrailingStop: 'TS',\n    /** Work */\n    Work: 'WRK',\n    /** Stay on offerside */\n    StayOnOfferside: 'F0',\n    /** Go along */\n    GoAlong: 'F3',\n    /** Participate do not initiate */\n    ParticipateDoNotInitiate: 'F6',\n    /** Strict scale */\n    StrictScale: 'F7',\n    /** Try to scale */\n    TryToScale: 'F8',\n    /** Stay on bidside */\n    StayOnBidside: 'F9',\n    /** No cross */\n    NoCross: 'FA',\n    /** OK to cross */\n    OKToCross: 'FB',\n    /** Call first */\n    CallFirst: 'FC',\n    /** Percent of volume */\n    PercentOfVolume: 'FD',\n    /** Reinstate on system failure */\n    ReinstateOnSystemFailure: 'FH',\n    /** Institution only */\n    InstitutionOnly: 'FI',\n    /** Reinstate on trading halt */\n    ReinstateOnTradingHalt: 'FJ',\n    /** Cancel on trading half */\n    CancelOnTradingHalf: 'FK',\n    /** Last peg */\n    LastPeg: 'FL',\n    /** Mid-price peg */\n    MidPricePeg: 'FM',\n    /** Non-negotiable */\n    NonNegotiable: 'FN',\n    /** Opening peg */\n    OpeningPeg: 'FO',\n    /** Market peg */\n    MarketPeg: 'FP',\n    /** Cancel on system failure */\n    CancelOnSystemFailure: 'FQ',\n    /** Primary peg */\n    PrimaryPeg: 'FR',\n    /** Suspend */\n    Suspend: 'FS',\n    /** Fixed peg to local best bid or offer at time of order */\n    FixedPegToLocalBBO: 'FT',\n    /** Peg to VWAP */\n    PegToVWAP: 'FW',\n    /** Trade along */\n    TradeAlong: 'FX',\n    /** Try to stop */\n    TryToStop: 'FY',\n    /** Cancel if not best */\n    CancelIfNotBest: 'FZ',\n    /** Strict limit */\n    StrictLimit: 'Fb',\n    /** Ignore price validity checks */\n    IgnorePriceValidityChecks: 'Fc',\n    /** Peg to Limit Price */\n    PegToLimitPrice: 'Fd',\n    /** Work to target strategy */\n    WorkToTargetStrategy: 'Fe',\n} as const);\n\nexport type CustOrderHandlingInst = (typeof CustOrderHandlingInst)[keyof typeof CustOrderHandlingInst];\n", "/**\n * Used for options when delivering the order to an execution system/exchange to specify if the order is for a customer or the firm placing the order itself.\n * - Tag: 204\n * - FIX Specification type: int\n * - FIX Specification version: FIX42\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CustomerOrFirm = Object.freeze({\n    /** Customer */\n    Customer: 0,\n    /** Firm */\n    Firm: 1,\n} as const);\n\nexport type CustomerOrFirm = (typeof CustomerOrFirm)[keyof typeof CustomerOrFirm];\n", "/**\n * Specifies the kind of priority given to customers.\n * - Tag: 2570\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CustomerPriority = Object.freeze({\n    /** No priority */\n    NoPriority: 0,\n    /** Unconditional priority */\n    UnconditionalPriority: 1,\n} as const);\n\nexport type CustomerPriority = (typeof CustomerPriority)[keyof typeof CustomerPriority];\n", "/**\n * Code to identify reason for cancel rejection.\n * - Tag: 102\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const CxlRejReason = Object.freeze({\n    /** Too late to cancel */\n    TooLateToCancel: 0,\n    /** Unknown order */\n    UnknownOrder: 1,\n    /** Broker / Exchange Option */\n    BrokerCredit: 2,\n    /** Order already in Pending Cancel or Pending Replace status */\n    OrderAlreadyInPendingStatus: 3,\n    /** Unable to process Order Mass Cancel Request */\n    UnableToProcessOrderMassCancelRequest: 4,\n    /** OrigOrdModTime (586) did not match last TransactTime (60) of order */\n    OrigOrdModTime: 5,\n    /** Duplicate ClOrdID (11) received */\n    DuplicateClOrdID: 6,\n    /** Price exceeds current price */\n    PriceExceedsCurrentPrice: 7,\n    /** Price exceeds current price band */\n    PriceExceedsCurrentPriceBand: 8,\n    /** Invalid price increment */\n    InvalidPriceIncrement: 18,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type CxlRejReason = (typeof CxlRejReason)[keyof typeof CxlRejReason];\n", "/**\n * Identifies the type of request that a Cancel Reject is in response to.\n * - Tag: 434\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const CxlRejResponseTo = Object.freeze({\n    /** Order cancel request */\n    OrderCancelRequest: '1',\n    /** Order cancel/replace request */\n    OrderCancelReplaceRequest: '2',\n} as const);\n\nexport type CxlRejResponseTo = (typeof CxlRejResponseTo)[keyof typeof CxlRejResponseTo];\n", "/**\n * The convention for determining a sequence of dates. It is used in conjunction with a specified frequency. The value defined here applies to all adjustable dates in the instrument unless specifically overridden. Additional values may be used by mutual agreement of the counterparties.\n * - Tag: 40922\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const DateRollConvention = Object.freeze({\n    /** 1st day of the month */\n    FirstDay: '1',\n    /** 2nd day of the month */\n    SecondDay: '2',\n    /** 3rd day of the month */\n    ThirdDay: '3',\n    /** 4th day of the month */\n    FourthDay: '4',\n    /** 5th day of the month */\n    FifthDay: '5',\n    /** 6thd day of the month */\n    SixthDay: '6',\n    /** 7th day of the month */\n    SeventhDay: '7',\n    /** 8th day of the month */\n    EighthDay: '8',\n    /** 9th day of the month */\n    NinthDay: '9',\n    /** 10th day of the month */\n    TenthDay: '10',\n    /** 11th day of the month */\n    EleventhDay: '11',\n    /** 12th day of the month */\n    TwelvthDay: '12',\n    /** 13th day of the month */\n    ThirteenthDay: '13',\n    /** 14th day of the month */\n    ForteenthDay: '14',\n    /** 15th day of the month */\n    FifteenthDay: '15',\n    /** 16th day of the month */\n    SixteenthDay: '16',\n    /** 17th day of the month */\n    SeventeenthDay: '17',\n    /** 18th day of the month */\n    EighteenthDay: '18',\n    /** 19th day of the month */\n    NineteenthDay: '19',\n    /** 20th day of the month */\n    TwentiethDay: '20',\n    /** 21st day of the month */\n    TwentyFirstDay: '21',\n    /** 22nd day of the month */\n    TwentySecondDay: '22',\n    /** 23rd day of the month */\n    TwentyThirdDay: '23',\n    /** 24th day of the month */\n    TwentyFourthDay: '24',\n    /** 25th day of the month */\n    TwentyFifthDay: '25',\n    /** 26th day of the month */\n    TwentySixthDay: '26',\n    /** 27th day of the month */\n    TwentySeventhDay: '27',\n    /** 28th day of the month */\n    TwentyEigthDa28y: '28',\n    /** 29th day of the month */\n    TwentyNinthDay: '29',\n    /** 30th day of the month */\n    ThirtiethDay: '30',\n    /** The end of the month.\n        Use EOM for 31st day of the month. */\n    EOM: 'EOM',\n    /** The floating rate note convention or Eurodollar convention. */\n    FRN: 'FRN',\n    /** The International Money Market settlement date, i.e. the 3rd Wednesday of the month. */\n    IMM: 'IMM',\n    /** The last trading day/expiration day of the Canadian Derivatives Exchange. */\n    IMMCAD: 'IMMCAD',\n    /** The last trading day of the Sydney Futures Exchange Australian 90-day bank accepted bill futures contract. */\n    IMMAUD: 'IMMAUD',\n    /** The last trading day of the Sydney Futures Exchange New Zealand 90-day bank bill futures contract. */\n    IMMNZD: 'IMMNZD',\n    /** The Sydney Futures Exchange 90-day bank accepted bill futures settlement dates. */\n    SFE: 'SFE',\n    /** No adjustment */\n    NONE: 'NONE',\n    /** The 13-week and 26-week U.S. Treasury Bill auction dates. */\n    TBILL: 'TBILL',\n    /** Monday */\n    MON: 'MON',\n    /** Tuesday */\n    TUE: 'TUE',\n    /** Wednesday */\n    WED: 'WED',\n    /** Thursday */\n    THU: 'THU',\n    /** Friday */\n    FRI: 'FRI',\n    /** Saturday */\n    SAT: 'SAT',\n    /** Sunday */\n    SUN: 'SUN',\n} as const);\n\nexport type DateRollConvention = (typeof DateRollConvention)[keyof typeof DateRollConvention];\n", "/**\n * Indicates whether or not automatic booking can occur.\n * - Tag: 589\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const DayBookingInst = Object.freeze({\n    /** Can trigger booking without reference to the order initiator (\"auto\") */\n    Auto: '0',\n    /** Speak with order initiator before booking (\"speak first\") */\n    SpeakWithOrderInitiatorBeforeBooking: '1',\n    /** Accumulate */\n    Accumulate: '2',\n} as const);\n\nexport type DayBookingInst = (typeof DayBookingInst)[keyof typeof DayBookingInst];\n", "/**\n * Identifies role of dealer in the trade.\n * - Tag: 1048\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const DealingCapacity = Object.freeze({\n    /** Agent */\n    Agent: 'A',\n    /** Principal */\n    Principal: 'P',\n    /** Riskless Principal */\n    RisklessPrincipal: 'R',\n    /** Cross as principal\n        In the context of the EU Consolidated Tape, this is used for the post-trade transparency flag MTCH. */\n    CrossAsPrincipal: 'X',\n} as const);\n\nexport type DealingCapacity = (typeof DealingCapacity)[keyof typeof DealingCapacity];\n", "/**\n * Reason for deletion.\n * - Tag: 285\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const DeleteReason = Object.freeze({\n    /** Cancellation / Trade Bust */\n    Cancellation: '0',\n    /** Error */\n    Error: '1',\n} as const);\n\nexport type DeleteReason = (typeof DeleteReason)[keyof typeof DeleteReason];\n", "/**\n * Identifies the form of delivery.\n * - Tag: 668\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryForm = Object.freeze({\n    /** Book Entry (default) */\n    BookEntry: 1,\n    /** Bearer */\n    Bearer: 2,\n} as const);\n\nexport type DeliveryForm = (typeof DeliveryForm)[keyof typeof DeliveryForm];\n", "/**\n * Specifies the day or group of days for delivery.\n * - Tag: 41052\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryScheduleSettlDay = Object.freeze({\n    /** Monday */\n    Monday: 1,\n    /** Tuesday */\n    Tuesday: 2,\n    /** Wednesday */\n    Wednesday: 3,\n    /** Thursday */\n    Thursday: 4,\n    /** Friday */\n    Friday: 5,\n    /** Saturday */\n    Saturday: 6,\n    /** Sunday */\n    Sunday: 7,\n    /** All weekdays */\n    AllWeekdays: 8,\n    /** All days */\n    AllDays: 9,\n    /** All weekends */\n    AllWeekends: 10,\n} as const);\n\nexport type DeliveryScheduleSettlDay = (typeof DeliveryScheduleSettlDay)[keyof typeof DeliveryScheduleSettlDay];\n", "/**\n * Specifies the commodity delivery flow type.\n * - Tag: 41049\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryScheduleSettlFlowType = Object.freeze({\n    /** All times */\n    AllTimes: 0,\n    /** On peak */\n    OnPeak: 1,\n    /** Off peak */\n    OffPeak: 2,\n    /** Base */\n    Base: 3,\n    /** Block hours */\n    BlockHours: 4,\n    /** Other */\n    Other: 5,\n} as const);\n\nexport type DeliveryScheduleSettlFlowType =\n    (typeof DeliveryScheduleSettlFlowType)[keyof typeof DeliveryScheduleSettlFlowType];\n", "/**\n * Indicates whether holidays are included in the settlement periods. Required for electricity contracts.\n * - Tag: 41050\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryScheduleSettlHolidaysProcessingInstruction = Object.freeze({\n    /** Do not include holidays */\n    DoNotIncludeHolidays: 0,\n    /** Include holidays */\n    IncludeHolidays: 1,\n} as const);\n\nexport type DeliveryScheduleSettlHolidaysProcessingInstruction =\n    (typeof DeliveryScheduleSettlHolidaysProcessingInstruction)[keyof typeof DeliveryScheduleSettlHolidaysProcessingInstruction];\n", "/**\n * Specifies the format of the delivery start and end time values.\n * - Tag: 41057\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryScheduleSettlTimeType = Object.freeze({\n    /** Hour of the day\n        Applicable for electricity contracts. Time value is expressed as an integer hour of the day (1-24). The delivery start/end hour is specified as the end of the included hour. For example, a start hour of \"4\" begins at 3 a.m.; an end hour of \"20\" ends at 8 p.m.; a start hour of \"1\" and end hour of \"24\" indicates midnight to midnight delivery. */\n    Hour: 0,\n    /** HH:MM time format\n        Applicable for gas contracts. Time value is expressed using a 24-hour time format. For example, a time value of \"13:30\" is 1:30 p.m. */\n    Timestamp: 1,\n} as const);\n\nexport type DeliveryScheduleSettlTimeType =\n    (typeof DeliveryScheduleSettlTimeType)[keyof typeof DeliveryScheduleSettlTimeType];\n", "/**\n * Specifies the tolerance value type.\n * - Tag: 41046\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryScheduleToleranceType = Object.freeze({\n    /** Absolute */\n    Absolute: 0,\n    /** Percentage */\n    Percentage: 1,\n} as const);\n\nexport type DeliveryScheduleToleranceType =\n    (typeof DeliveryScheduleToleranceType)[keyof typeof DeliveryScheduleToleranceType];\n", "/**\n * Specifies the type of delivery schedule.\n * - Tag: 41038\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryScheduleType = Object.freeze({\n    /** Notional */\n    Notional: 0,\n    /** Delivery */\n    Delivery: 1,\n    /** Physical settlement period */\n    PhysicalSettlPeriods: 2,\n} as const);\n\nexport type DeliveryScheduleType = (typeof DeliveryScheduleType)[keyof typeof DeliveryScheduleType];\n", "/**\n * Identifies the class or source of DeliveryStreamDeliveryPoint(41062).\n * - Tag: 42192\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryStreamDeliveryPointSource = Object.freeze({\n    /** Proprietary */\n    Proprietary: 0,\n    /** Energy Identification Code (EIC)\n        Energy Identification Code specifies the location or connection point codes of energy delivery. See http://www.entsog.eu/eic-codes/eic-location-codes-v or http://www.eiccodes.eu for more information and allocated values to use in DeliveryStreamDeliveryPoint(41062). */\n    EIC: 1,\n} as const);\n\nexport type DeliveryStreamDeliveryPointSource =\n    (typeof DeliveryStreamDeliveryPointSource)[keyof typeof DeliveryStreamDeliveryPointSource];\n", "/**\n * Specifies under what conditions the buyer and seller should be excused of their delivery obligations.\n * - Tag: 41063\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryStreamDeliveryRestriction = Object.freeze({\n    /** Firm\n        Never excused of delivery obligations. */\n    Firm: 1,\n    /** Interruptable or non-firm\n        Excused when interrupted for any reason or for no reason without liability. */\n    NonFirm: 2,\n    /** Force majeure\n        Excused when prevented by force majeure. */\n    ForceMajeure: 3,\n    /** System firm\n        Must be supplied from the owned or controlled generation of pre-existing purchased power assets of the system specified. */\n    SystemFirm: 4,\n    /** Unit firm\n        Must be supplied from the generation assset specified. */\n    UnitFirm: 5,\n} as const);\n\nexport type DeliveryStreamDeliveryRestriction =\n    (typeof DeliveryStreamDeliveryRestriction)[keyof typeof DeliveryStreamDeliveryRestriction];\n", "/**\n * A reference to the party able to choose whether the gas is delivered for a particular period as found in a swing or interruptible contract.\n * - Tag: 41080\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryStreamElectingPartySide = Object.freeze({\n    /** Buyer */\n    Buyer: 0,\n    /** Seller */\n    Seller: 1,\n} as const);\n\nexport type DeliveryStreamElectingPartySide =\n    (typeof DeliveryStreamElectingPartySide)[keyof typeof DeliveryStreamElectingPartySide];\n", "/**\n * Specifies the condition of title transfer.\n * - Tag: 41069\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryStreamTitleTransferCondition = Object.freeze({\n    /** Transfers with risk of loss */\n    Transfers: 0,\n    /** Does not transfer with risk of loss */\n    DoesNotTransfer: 1,\n} as const);\n\nexport type DeliveryStreamTitleTransferCondition =\n    (typeof DeliveryStreamTitleTransferCondition)[keyof typeof DeliveryStreamTitleTransferCondition];\n", "/**\n * Indicates whether the tolerance is at the seller's or buyer's option.\n * - Tag: 41075\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryStreamToleranceOptionSide = Object.freeze({\n    /** Buyer */\n    Buyer: 1,\n    /** Seller */\n    Seller: 2,\n} as const);\n\nexport type DeliveryStreamToleranceOptionSide =\n    (typeof DeliveryStreamToleranceOptionSide)[keyof typeof DeliveryStreamToleranceOptionSide];\n", "/**\n * Specifies the type of delivery stream.\n * - Tag: 41058\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryStreamType = Object.freeze({\n    /** Periodic (default if not specified) */\n    Periodic: 0,\n    /** Initial */\n    Initial: 1,\n    /** Single */\n    Single: 2,\n} as const);\n\nexport type DeliveryStreamType = (typeof DeliveryStreamType)[keyof typeof DeliveryStreamType];\n", "/**\n * Identifies type of settlement\n * - Tag: 919\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeliveryType = Object.freeze({\n    /** \"Versus Payment\": Deliver (if sell) or Receive (if buy) vs. (against) Payment */\n    VersusPayment: 0,\n    /** \"Free\": Deliver (if sell) or Receive (if buy) Free */\n    Free: 1,\n    /** Tri-Party */\n    TriParty: 2,\n    /** Hold In Custody */\n    HoldInCustody: 3,\n    /** Deliver-by-Value\n        In the context of EU SFTR reporting, indicates that the transaction is to be or was settled using the DBV mechanism. */\n    DeliverByValue: 4,\n} as const);\n\nexport type DeliveryType = (typeof DeliveryType)[keyof typeof DeliveryType];\n", "/**\n * Identifies the type of Trading Desk.\n    Conditionally required when InformationBarrierID(1727) is specified for OATS.\n * - Tag: 1033\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const DeskType = Object.freeze({\n    /** Agency */\n    Agency: 'A',\n    /** Arbitrage */\n    Arbitrage: 'AR',\n    /** Block trading */\n    BlockTrading: 'B',\n    /** Convertible desk */\n    ConvertibleDesk: 'C',\n    /** Central risk books */\n    CentralRiskBooks: 'CR',\n    /** Derivatives */\n    Derivatives: 'D',\n    /** Equity capital markets */\n    EquityCapitalMarkets: 'EC',\n    /** International */\n    International: 'IN',\n    /** Institutional */\n    Institutional: 'IS',\n    /** Other */\n    Other: 'O',\n    /** Preferred trading */\n    PreferredTrading: 'PF',\n    /** Proprietary */\n    Proprietary: 'PR',\n    /** Program trading */\n    ProgramTrading: 'PT',\n    /** Sales */\n    Sales: 'S',\n    /** Swaps */\n    Swaps: 'SW',\n    /** Trading desk or system non-market maker */\n    TradingDeskSystem: 'T',\n    /** Treasury */\n    Treasury: 'TR',\n    /** Floor Broker */\n    FloorBroker: 'FB',\n} as const);\n\nexport type DeskType = (typeof DeskType)[keyof typeof DeskType];\n", "/**\n * Identifies the class or source of DeskType(1033) values. Conditionally required when DeskType(1033) is specified.\n * - Tag: 1034\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DeskTypeSource = Object.freeze({\n    /** FINRA OATS */\n    FINRAOATS: 1,\n} as const);\n\nexport type DeskTypeSource = (typeof DeskTypeSource)[keyof typeof DeskTypeSource];\n", "/**\n * Instruction to disclose information or to use default value of the receiver.\n * - Tag: 1814\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DisclosureInstruction = Object.freeze({\n    /** No */\n    No: 0,\n    /** Yes */\n    Yes: 1,\n    /** Use default setting */\n    UseDefaultSetting: 2,\n} as const);\n\nexport type DisclosureInstruction = (typeof DisclosureInstruction)[keyof typeof DisclosureInstruction];\n", "/**\n * Information subject to disclosure.\n * - Tag: 1813\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DisclosureType = Object.freeze({\n    /** Volume */\n    Volume: 1,\n    /** Price */\n    Price: 2,\n    /** Side */\n    Side: 3,\n    /** AON */\n    AON: 4,\n    /** General\n        General is used for bilateral agreed disclosure information type(s). */\n    General: 5,\n    /** Clearing account */\n    ClearingAccount: 6,\n    /** CMTA account */\n    CMTAAccount: 7,\n} as const);\n\nexport type DisclosureType = (typeof DisclosureType)[keyof typeof DisclosureType];\n", "/**\n * Code to identify the price a DiscretionOffsetValue (389) is related to and should be mathematically added to.\n * - Tag: 388\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const DiscretionInst = Object.freeze({\n    /** Related to displayed price */\n    RelatedToDisplayedPrice: '0',\n    /** Related to market price */\n    RelatedToMarketPrice: '1',\n    /** Related to primary price */\n    RelatedToPrimaryPrice: '2',\n    /** Related to local primary price */\n    RelatedToLocalPrimaryPrice: '3',\n    /** Related to midpoint price */\n    RelatedToMidpointPrice: '4',\n    /** Related to last trade price */\n    RelatedToLastTradePrice: '5',\n    /** Related to VWAP */\n    RelatedToVWAP: '6',\n    /** Average Price Guarantee */\n    AveragePriceGuarantee: '7',\n} as const);\n\nexport type DiscretionInst = (typeof DiscretionInst)[keyof typeof DiscretionInst];\n", "/**\n * Type of Discretion Limit\n * - Tag: 843\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DiscretionLimitType = Object.freeze({\n    /** Or better (default) - price improvement allowed */\n    OrBetter: 0,\n    /** Strict - limit is a strict limit */\n    Strict: 1,\n    /** Or worse - for a buy the discretion price is a minimum and for a sell the discretion price is a maximum (for use for orders which have a price range) */\n    OrWorse: 2,\n} as const);\n\nexport type DiscretionLimitType = (typeof DiscretionLimitType)[keyof typeof DiscretionLimitType];\n", "/**\n * Describes whether discretionay price is static or floats\n * - Tag: 841\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DiscretionMoveType = Object.freeze({\n    /** Floating (default) */\n    Floating: 0,\n    /** Fixed */\n    Fixed: 1,\n} as const);\n\nexport type DiscretionMoveType = (typeof DiscretionMoveType)[keyof typeof DiscretionMoveType];\n", "/**\n * Type of Discretion Offset value\n * - Tag: 842\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DiscretionOffsetType = Object.freeze({\n    /** Price (default) */\n    Price: 0,\n    /** Basis Points */\n    BasisPoints: 1,\n    /** Ticks */\n    Ticks: 2,\n    /** Price Tier / Level */\n    PriceTier: 3,\n} as const);\n\nexport type DiscretionOffsetType = (typeof DiscretionOffsetType)[keyof typeof DiscretionOffsetType];\n", "/**\n * If the calculated discretionary price is not a valid tick price, specifies whether to round the price to be more or less aggressive\n * - Tag: 844\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DiscretionRoundDirection = Object.freeze({\n    /** More aggressive - on a buy order round the price up to the nearest tick; on a sell round down to the nearest tick */\n    MoreAggressive: 1,\n    /** More passive - on a buy order round down to the nearest tick; on a sell order round up to the nearest tick */\n    MorePassive: 2,\n} as const);\n\nexport type DiscretionRoundDirection = (typeof DiscretionRoundDirection)[keyof typeof DiscretionRoundDirection];\n", "/**\n * The scope of the discretion\n * - Tag: 846\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DiscretionScope = Object.freeze({\n    /** Local (Exchange, ECN, ATS) */\n    Local: 1,\n    /** National */\n    National: 2,\n    /** Global */\n    Global: 3,\n    /** National excluding local */\n    NationalExcludingLocal: 4,\n} as const);\n\nexport type DiscretionScope = (typeof DiscretionScope)[keyof typeof DiscretionScope];\n", "/**\n * Defines what value to use in DisplayQty (1138). If not specified the default DisplayMethod is \"1\"\n * - Tag: 1084\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const DisplayMethod = Object.freeze({\n    /** Initial (use original DisplayQty) */\n    Initial: '1',\n    /** New (use RefreshQty) */\n    New: '2',\n    /** Random (randomize value) */\n    Random: '3',\n    /** Undisclosed (invisible order) */\n    Undisclosed: '4',\n} as const);\n\nexport type DisplayMethod = (typeof DisplayMethod)[keyof typeof DisplayMethod];\n", "/**\n * Instructs when to refresh DisplayQty (1138).\n * - Tag: 1083\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const DisplayWhen = Object.freeze({\n    /** Immediate (after each fill) */\n    Immediate: '1',\n    /** Exhaust (when DisplayQty = 0) */\n    Exhaust: '2',\n} as const);\n\nexport type DisplayWhen = (typeof DisplayWhen)[keyof typeof DisplayWhen];\n", "/**\n * Identifies the payment method for a (fractional) distribution. Used for CIV.\n * - Tag: 477\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DistribPaymentMethod = Object.freeze({\n    /** CREST */\n    CREST: 1,\n    /** NSCC */\n    NSCC: 2,\n    /** Euroclear */\n    Euroclear: 3,\n    /** Clearstream */\n    Clearstream: 4,\n    /** Cheque */\n    Cheque: 5,\n    /** Telegraphic Transfer */\n    TelegraphicTransfer: 6,\n    /** Fed Wire */\n    FedWire: 7,\n    /** Direct Credit (BECS, BACS) */\n    DirectCredit: 8,\n    /** ACH Credit */\n    ACHCredit: 9,\n    /** BPAY */\n    BPAY: 10,\n    /** High Value Clearing System HVACS */\n    HighValueClearingSystemHVACS: 11,\n    /** Reinvest In Fund */\n    ReinvestInFund: 12,\n    /** Other */\n    Other: 999,\n} as const);\n\nexport type DistribPaymentMethod = (typeof DistribPaymentMethod)[keyof typeof DistribPaymentMethod];\n", "/**\n * Indicates how the gross cash dividend amount per share is determined.\n * - Tag: 42247\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DividendAmountType = Object.freeze({\n    /** Record amount\n        100% of the gross cash dividend per share paid over record date during relevant dividend period. */\n    RecordAmount: 0,\n    /** Ex amount\n        100% of gross cash dividend per share paid after the ex-dividend date during relevant dividend period. */\n    ExAmount: 1,\n    /** Paid amount\n        100% of gross cash dividend per share paid during relevant dividend period. */\n    PaidAmount: 2,\n    /** As specified in master confirmation\n        The amount is determined as provided in the relevant master confirmation. */\n    PerMasterConfirm: 3,\n} as const);\n\nexport type DividendAmountType = (typeof DividendAmountType)[keyof typeof DividendAmountType];\n", "/**\n * Defines how the composition of dividends is to be determined.\n * - Tag: 42259\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DividendComposition = Object.freeze({\n    /** Equity amount receiver election\n        The equity amount receiver determines the composition of dividends (subject to conditions). */\n    EquityAmountReceiver: 0,\n    /** Calculation agent election\n        The calculation agent determines the composition of dividends (subject to conditions). */\n    CalculationAgent: 1,\n} as const);\n\nexport type DividendComposition = (typeof DividendComposition)[keyof typeof DividendComposition];\n", "/**\n * Defines the contract event which the receiver of the derivative is entitled to the dividend.\n * - Tag: 42246\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const DividendEntitlementEvent = Object.freeze({\n    /** Ex-date\n        Dividend entitlement is on the dividend ex-date. */\n    ExDate: 0,\n    /** Record date\n        Dividend entitlement is on the dividend record date. */\n    RecordDate: 1,\n} as const);\n\nexport type DividendEntitlementEvent = (typeof DividendEntitlementEvent)[keyof typeof DividendEntitlementEvent];\n", "/**\n * Reason for execution rejection.\n * - Tag: 127\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const DKReason = Object.freeze({\n    /** Unknown security */\n    UnknownSymbol: 'A',\n    /** Wrong side */\n    WrongSide: 'B',\n    /** Quantity exceeds order */\n    QuantityExceedsOrder: 'C',\n    /** No matching order */\n    NoMatchingOrder: 'D',\n    /** Price exceeds limit */\n    PriceExceedsLimit: 'E',\n    /** Calculation difference */\n    CalculationDifference: 'F',\n    /** No matching ExecutionReport(35=8) */\n    NoMatchingExecutionReport: 'G',\n    /** Other */\n    Other: 'Z',\n} as const);\n\nexport type DKReason = (typeof DKReason)[keyof typeof DKReason];\n", "/**\n * Used to indicate whether a delivery instruction is used for securities or cash settlement.\n * - Tag: 787\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const DlvyInstType = Object.freeze({\n    /** Cash */\n    Cash: 'C',\n    /** Securities */\n    Securities: 'S',\n} as const);\n\nexport type DlvyInstType = (typeof DlvyInstType)[keyof typeof DlvyInstType];\n", "/**\n * Indicates whether or not the halt was due to the Related Security being halted.\n * - Tag: 329\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const DueToRelated = Object.freeze({\n    /** Halt was not related to a halt of the related security */\n    NotRelatedToSecurityHalt: 'N',\n    /** Halt was due to related security being halted */\n    RelatedToSecurityHalt: 'Y',\n} as const);\n\nexport type DueToRelated = (typeof DueToRelated)[keyof typeof DueToRelated];\n", "/**\n * Used to indicate that a ClOrdID(11) value is an intentional duplicate of a previously sent value. Allows to avoid the rejection of an order with OrdRejReason(103) = 6 (Duplicate Order).\n    In the context of US CAT this can be used when the recipient of a previously routed order requires the same identifier to be re-used for a new route.\n * - Tag: 2829\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const DuplicateClOrdIDIndicator = Object.freeze({\n    /** Unique ClOrdID(11) */\n    UniqueClOrdID: 'N',\n    /** Duplicate ClOrdID(11) */\n    DuplicateClOrdID: 'Y',\n} as const);\n\nexport type DuplicateClOrdIDIndicator = (typeof DuplicateClOrdIDIndicator)[keyof typeof DuplicateClOrdIDIndicator];\n", "/**\n * Email message type.\n * - Tag: 94\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const EmailType = Object.freeze({\n    /** New */\n    New: '0',\n    /** Reply */\n    Reply: '1',\n    /** Admin Reply */\n    AdminReply: '2',\n} as const);\n\nexport type EmailType = (typeof EmailType)[keyof typeof EmailType];\n", "/**\n * Method of encryption.\n * - Tag: 98\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const EncryptMethod = Object.freeze({\n    /** None / Other */\n    None: 0,\n    /** PKCS (Proprietary) */\n    PKCS: 1,\n    /** DES (ECB Mode) */\n    DES: 2,\n    /** PKCS / DES (Proprietary) */\n    PKCSDES: 3,\n    /** PGP / DES (Defunct) */\n    PGPDES: 4,\n    /** PGP / DES-MD5 (See app note on FIX web site) */\n    PGPDESMD5: 5,\n    /** PEM / DES-MD5 (see app note on FIX web site) */\n    PEM: 6,\n} as const);\n\nexport type EncryptMethod = (typeof EncryptMethod)[keyof typeof EncryptMethod];\n", "/**\n * Datatype of the entitlement attribute.\n * - Tag: 1779\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const EntitlementAttribDatatype = Object.freeze({\n    /** int */\n    Int: 1,\n    /** Length */\n    Length: 2,\n    /** NumInGroup */\n    NumInGroup: 3,\n    /** SeqNum */\n    SeqNum: 4,\n    /** TagNum */\n    TagNum: 5,\n    /** float */\n    Float: 6,\n    /** Qty */\n    Qty: 7,\n    /** Price */\n    Price: 8,\n    /** PriceOffset */\n    PriceOffset: 9,\n    /** Amt */\n    Amt: 10,\n    /** Percentage */\n    Percentage: 11,\n    /** char */\n    Char: 12,\n    /** Boolean */\n    Boolean: 13,\n    /** String */\n    String: 14,\n    /** MultipleCharValue */\n    MultipleCharValue: 15,\n    /** Currency */\n    Currency: 16,\n    /** Exchange */\n    Exchange: 17,\n    /** MonthYear */\n    MonthYear: 18,\n    /** UTCTimestamp */\n    UTCTimestamp: 19,\n    /** UTCTimeOnly */\n    UTCTimeOnly: 20,\n    /** LocalMktDate */\n    LocalMktDate: 21,\n    /** UTCDateOnly */\n    UTCDateOnly: 22,\n    /** data */\n    Data: 23,\n    /** MultipleStringValue */\n    MultipleStringValue: 24,\n    /** Country */\n    Country: 25,\n    /** Language */\n    Language: 26,\n    /** TZTimeOnly */\n    TZTimeOnly: 27,\n    /** TZTimestamp */\n    TZTimestamp: 28,\n    /** Tenor */\n    Tenor: 29,\n    /** DayOfMonth */\n    DayOfMonth: 30,\n    /** XMLData */\n    XMLData: 31,\n    /** Pattern */\n    Pattern: 32,\n    /** Reserved100Plus */\n    Reserved100Plus: 33,\n    /** Reserved1000Plus */\n    Reserved1000Plus: 34,\n    /** Reserved4000Plus */\n    Reserved4000Plus: 35,\n} as const);\n\nexport type EntitlementAttribDatatype = (typeof EntitlementAttribDatatype)[keyof typeof EntitlementAttribDatatype];\n", "/**\n * Result of risk limit definition request.\n * - Tag: 1881\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const EntitlementRequestResult = Object.freeze({\n    /** Successful (default) */\n    Successful: 0,\n    /** Invalid party(-ies) */\n    InvalidParty: 1,\n    /** Invalid related party(-ies) */\n    InvalidRelatedParty: 2,\n    /** Invalid entitlement type(s) */\n    InvalidEntitlementType: 3,\n    /** Invalid entitlement ID(s) / ref ID(s) */\n    InvalidEntitlementID: 4,\n    /** Invalid entitlement attribute(s) */\n    InvalidEntitlementAttribute: 5,\n    /** Invalid instrument scope(s) */\n    InvalidInstrumentScope: 6,\n    /** Invalid market segment scope(s) */\n    InvalidMarketSegmentScope: 7,\n    /** Invalid start date */\n    InvalidStartDate: 8,\n    /** Invalid end date */\n    InvalidEndDate: 9,\n    /** Instrument scope not supported */\n    InstrumentScopeNotSupported: 10,\n    /** Market segment scope not supported */\n    MarketSegmentScopeNotSupported: 11,\n    /** Entitlement not approved for party(-ies) */\n    EntitlementNotApprovedForParty: 12,\n    /** Entitlement already defined for party(-ies) */\n    EntitlementAlreadyDefinedForParty: 13,\n    /** Instrument not approved for party(-ies) */\n    InstrumentNotApprovedForParty: 14,\n    /** Not authorized */\n    NotAuthorized: 98,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type EntitlementRequestResult = (typeof EntitlementRequestResult)[keyof typeof EntitlementRequestResult];\n", "/**\n * Status of entitlement definition for one party.\n * - Tag: 1883\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const EntitlementStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Accepted with changes */\n    AcceptedWithChanges: 1,\n    /** Rejected */\n    Rejected: 2,\n    /** Pending\n        Entitlement definition request submitted that still requires an action to be taken (e.g. approval or setting up). */\n    Pending: 3,\n    /** Requested\n        Entitlement definition has been requested. */\n    Requested: 4,\n    /** Deferred\n        Entitlement definition request is being postponed or delayed. */\n    Deferred: 5,\n} as const);\n\nexport type EntitlementStatus = (typeof EntitlementStatus)[keyof typeof EntitlementStatus];\n", "/**\n * Subtype of an entitlement specified in EntitlementType(1775).\n * - Tag: 2402\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const EntitlementSubType = Object.freeze({\n    /** Order entry\n        Entitle to enter new orders */\n    OrderEntry: 1,\n    /** Hit/Lift\n        Entitle to Hit/Lift */\n    HItLift: 2,\n    /** View indicative prices\n        Entitle to subscribe to indicative prices */\n    ViewIndicativePx: 3,\n    /** View executable prices\n        Entitle to subscribe to executable prices */\n    ViewExecutablePx: 4,\n    /** Single quote\n        Entitle to submit quote request for a single quote */\n    SingleQuote: 5,\n    /** Streaming quotes\n        Entitle to submit quote request for streaming quotes */\n    StreamingQuotes: 6,\n    /** Single broker\n        Entitle to submit quote request for a single broker */\n    SingleBroker: 7,\n    /** Multi brokers\n        Entitle to submit quote request for multiple brokers */\n    MultiBrokers: 8,\n} as const);\n\nexport type EntitlementSubType = (typeof EntitlementSubType)[keyof typeof EntitlementSubType];\n", "/**\n * Type of entitlement.\n * - Tag: 1775\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const EntitlementType = Object.freeze({\n    /** Trade */\n    Trade: 0,\n    /** Make markets */\n    MakeMarkets: 1,\n    /** Hold positions */\n    HoldPositions: 2,\n    /** Perform give-ups */\n    PerformGiveUps: 3,\n    /** Submit Indications of Interest (IOIs) */\n    SubmitIOIs: 4,\n    /** Subscribe to market data */\n    SubscribeMarketData: 5,\n    /** Short with pre-borrow\n        Short sell order is allowed with pre-borrowing. */\n    ShortWithPreBorrow: 6,\n    /** Submit quote requests\n        Entitled to submit quote requests into the market in order to receive quotes from the market. */\n    SubmitQuoteRequests: 7,\n    /** Respond to quote requests\n        Entitled to respond to quote requests from the market. */\n    RespondToQuoteRequests: 8,\n} as const);\n\nexport type EntitlementType = (typeof EntitlementType)[keyof typeof EntitlementType];\n", "/**\n * Indicates the type of entity who initiated an event, e.g. modification or cancellation of an order or quote.\n * - Tag: 2830\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const EventInitiatorType = Object.freeze({\n    /** Customer or client */\n    CustomerOrClient: 'C',\n    /** Exchange or execution venue */\n    ExchangeOrExecutionVenue: 'E',\n    /** Firm or broker */\n    FirmOrBroker: 'F',\n} as const);\n\nexport type EventInitiatorType = (typeof EventInitiatorType)[keyof typeof EventInitiatorType];\n", "/**\n * Time unit associated with the event.\n * - Tag: 1827\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const EventTimeUnit = Object.freeze({\n    /** Hour */\n    Hour: 'H',\n    /** Minute */\n    Minute: 'Min',\n    /** Second */\n    Second: 'S',\n    /** Day */\n    Day: 'D',\n    /** Week */\n    Week: 'Wk',\n    /** Month */\n    Month: 'Mo',\n    /** Year */\n    Year: 'Yr',\n} as const);\n\nexport type EventTimeUnit = (typeof EventTimeUnit)[keyof typeof EventTimeUnit];\n", "/**\n * Code to represent the type of event\n * - Tag: 865\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const EventType = Object.freeze({\n    /** Put */\n    Put: 1,\n    /** Call */\n    Call: 2,\n    /** Tender */\n    Tender: 3,\n    /** Sinking fund call */\n    SinkingFundCall: 4,\n    /** Activation */\n    Activation: 5,\n    /** Inactivation */\n    Inactiviation: 6,\n    /** Last eligible trade date */\n    LastEligibleTradeDate: 7,\n    /** Swap start date */\n    SwapStartDate: 8,\n    /** Swap end date */\n    SwapEndDate: 9,\n    /** Swap roll date */\n    SwapRollDate: 10,\n    /** Swap next start date */\n    SwapNextStartDate: 11,\n    /** Swap next roll date */\n    SwapNextRollDate: 12,\n    /** First delivery date */\n    FirstDeliveryDate: 13,\n    /** Last delivery date */\n    LastDeliveryDate: 14,\n    /** Initial inventory due date */\n    InitialInventoryDueDate: 15,\n    /** Final inventory due date */\n    FinalInventoryDueDate: 16,\n    /** First intent date */\n    FirstIntentDate: 17,\n    /** Last intent date */\n    LastIntentDate: 18,\n    /** Position removal date */\n    PositionRemovalDate: 19,\n    /** Minimum notice */\n    MinimumNotice: 20,\n    /** Delivery start time */\n    DeliveryStartTime: 21,\n    /** Delivery end time */\n    DeliveryEndTime: 22,\n    /** First notice date\n        The first day that a notice of intent to deliver a commodity can be made by a clearing house to a buyer in fulfillment of a given month's futures contract. */\n    FirstNoticeDate: 23,\n    /** Last notice date\n        The last day on which a clearing house may inform an investor that a seller intends to make delivery of a commodity that the investor previously bought in a futures contract. The date is governed by the rules of different exchanges and clearing houses, but may also be stated in the futures contract itself. */\n    LastNoticeDate: 24,\n    /** First exercise date */\n    FirstExerciseDate: 25,\n    /** Redemption date */\n    RedemptionDate: 26,\n    /** Trade continuation effective date */\n    TrdCntntnEfctvDt: 27,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type EventType = (typeof EventType)[keyof typeof EventType];\n", "/**\n * Indicates whether or not to exchange for phsyical.\n * - Tag: 411\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ExchangeForPhysical = Object.freeze({\n    /** False */\n    False: 'N',\n    /** True */\n    True: 'Y',\n} as const);\n\nexport type ExchangeForPhysical = (typeof ExchangeForPhysical)[keyof typeof ExchangeForPhysical];\n", "/**\n * The ID source of ExDestination\n * - Tag: 1133\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ExDestinationIDSource = Object.freeze({\n    /** BIC (Bank Identification Code) (ISO 9362) */\n    BIC: 'B',\n    /** Generally accepted market participant identifier (e.g. NASD mnemonic) */\n    GeneralIdentifier: 'C',\n    /** Proprietary / Custom code */\n    Proprietary: 'D',\n    /** ISO Country Code */\n    ISOCountryCode: 'E',\n    /** MIC (ISO 10383 - Market Identifier Code) */\n    MIC: 'G',\n} as const);\n\nexport type ExDestinationIDSource = (typeof ExDestinationIDSource)[keyof typeof ExDestinationIDSource];\n", "/**\n * Identifies the type of execution destination for the order.\n * - Tag: 2704\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ExDestinationType = Object.freeze({\n    /** No restriction\n        May be used for MiFID II to indicate no restriction on where the order is executed. */\n    NoRestriction: 0,\n    /** Can be traded only on a trading venue\n        May be used for MiFID II to indicate the order can only be executed on a trading venue. */\n    TradedOnlyOnTradingVenue: 1,\n    /** Can be traded only on a Systematic Internaliser (SI)\n        May be used for MiFID II to indicate the order can only be executed on a Systematic Internaliser. */\n    TradedOnlyOnSI: 2,\n    /** Can be traded on a trading venue or Systematic internaliser (SI)\n        May be used for MiFID II to indicate the order can be executed on either a trading venue or a Systematic Internaliser. */\n    TradedOnTradingVenueOrSI: 3,\n} as const);\n\nexport type ExDestinationType = (typeof ExDestinationType)[keyof typeof ExDestinationType];\n", "/**\n * The status of this execution acknowledgement message.\n * - Tag: 1036\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ExecAckStatus = Object.freeze({\n    /** Received, not yet processed */\n    Received: '0',\n    /** Accepted */\n    Accepted: '1',\n    /** Don't know / Rejected */\n    DontKnow: '2',\n} as const);\n\nexport type ExecAckStatus = (typeof ExecAckStatus)[keyof typeof ExecAckStatus];\n", "/**\n * Instructions for order handling on exchange trading floor. If more than one instruction is applicable to an order, this field can contain multiple instructions separated by space. *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" *** (see Volume : \"Glossary\" for value definitions)\n * - Tag: 18\n * - FIX Specification type: MultipleCharValue\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ExecInst = Object.freeze({\n    /** Stay on offer side */\n    StayOnOfferSide: '0',\n    /** Not held */\n    NotHeld: '1',\n    /** Work */\n    Work: '2',\n    /** Go along */\n    GoAlong: '3',\n    /** Over the day */\n    OverTheDay: '4',\n    /** Held */\n    Held: '5',\n    /** Participate don't initiate */\n    ParticipateDoNotInitiate: '6',\n    /** Strict scale */\n    StrictScale: '7',\n    /** Try to scale */\n    TryToScale: '8',\n    /** Stay on bid side */\n    StayOnBidSide: '9',\n    /** No cross\n        Cross is forbidden. */\n    NoCross: 'A',\n    /** OK to cross */\n    OKToCross: 'B',\n    /** Call first */\n    CallFirst: 'C',\n    /** Percent of volume\n        Indicates that the sender does not want the order to be all of the volume on the floor vs. a specific percentage. */\n    PercentOfVolume: 'D',\n    /** Do not increase - DNI */\n    DoNotIncrease: 'E',\n    /** Do not reduce - DNR */\n    DoNotReduce: 'F',\n    /** All or none - AON */\n    AllOrNone: 'G',\n    /** Reinstate on system failure\n        Mutually exclusive with Q and l (lower case L). */\n    ReinstateOnSystemFailure: 'H',\n    /** Institutions only */\n    InstitutionsOnly: 'I',\n    /** Reinstate on trading halt\n        Mutually exclusive with K and m. */\n    ReinstateOnTradingHalt: 'J',\n    /** Cancel on trading halt\n        Mutually exclusive with J and m. */\n    CancelOnTradingHalt: 'K',\n    /** Last peg (last sale) */\n    LastPeg: 'L',\n    /** Mid-price peg (midprice of inside quote) */\n    MidPricePeg: 'M',\n    /** Non-negotiable */\n    NonNegotiable: 'N',\n    /** Opening peg */\n    OpeningPeg: 'O',\n    /** Market peg */\n    MarketPeg: 'P',\n    /** Cancel on system failure\n        Mutually exclusive with H and l(lower case L). */\n    CancelOnSystemFailure: 'Q',\n    /** Primary peg\n        Primary market - buy at bid, sell at offer. */\n    PrimaryPeg: 'R',\n    /** Suspend */\n    Suspend: 'S',\n    /** Fixed peg to local best bid or offer at time of order */\n    FixedPegToLocalBestBidOrOfferAtTimeOfOrder: 'T',\n    /** Customer display instruction\n        Used in US Markets for: SEC Rule 11Ac1-1/4. */\n    CustomerDisplayInstruction: 'U',\n    /** Netting (for Forex) */\n    Netting: 'V',\n    /** Peg to VWAP */\n    PegToVWAP: 'W',\n    /** Trade along */\n    TradeAlong: 'X',\n    /** Try to stop */\n    TryToStop: 'Y',\n    /** Cancel if not best */\n    CancelIfNotBest: 'Z',\n    /** Trailing stop peg */\n    TrailingStopPeg: 'a',\n    /** Strict limit\n        No price improvement. */\n    StrictLimit: 'b',\n    /** Ignore price validity checks */\n    IgnorePriceValidityChecks: 'c',\n    /** Peg to limit price */\n    PegToLimitPrice: 'd',\n    /** Work to target strategy */\n    WorkToTargetStrategy: 'e',\n    /** Intermarket sweep */\n    IntermarketSweep: 'f',\n    /** External routing allowed */\n    ExternalRoutingAllowed: 'g',\n    /** External routing not allowed */\n    ExternalRoutingNotAllowed: 'h',\n    /** Imbalance only */\n    ImbalanceOnly: 'i',\n    /** Single execution requested for block trade */\n    SingleExecutionRequestedForBlockTrade: 'j',\n    /** Best execution */\n    BestExecution: 'k',\n    /** Suspend on system failure\n        Mutually exclusive with H and Q. */\n    SuspendOnSystemFailure: 'l',\n    /** Suspend on trading halt\n        Mutually exclusive with J and K. */\n    SuspendOnTradingHalt: 'm',\n    /** Reinstate on connection loss\n        Mutually exclusive with o and p. */\n    ReinstateOnConnectionLoss: 'n',\n    /** Cancel on connection loss\n        Mutually exclusive with n and p. */\n    CancelOnConnectionLoss: 'o',\n    /** Suspend on connection loss\n        Mutually exclusive with n and o. */\n    SuspendOnConnectionLoss: 'p',\n    /** Release\n        Mutually exclusive with S and w. */\n    Release: 'q',\n    /** Execute as delta neutral using volatility provided */\n    ExecuteAsDeltaNeutral: 'r',\n    /** Execute as duration neutral */\n    ExecuteAsDurationNeutral: 's',\n    /** Execute as FX neutral */\n    ExecuteAsFXNeutral: 't',\n    /** Minimum guaranteed fill eligible */\n    MinGuaranteedFillEligible: 'u',\n    /** Bypass non-displayed liquidity */\n    BypassNonDisplayLiquidity: 'v',\n    /** Lock\n        Mutually exclusive with q. */\n    Lock: 'w',\n    /** Ignore notional value checks */\n    IgnoreNotionalValueChecks: 'x',\n    /** Trade at reference price\n        In the context of Reg NMS and the Tick Size Pilot Program, this is intended to indicate the order should Trade At Intermarket Sweep Order (TAISO) price. */\n    TrdAtRefPx: 'y',\n    /** Allow facilitation\n        Express explicit consent to receive facilitation services from the counterparty. Facilitation services are when an institutional client allows a broker to assume a risk-taking principal position rather than an agency position, to obtain liquidity or achieve a guaranteed execution price on the client's behalf. Interpretation of absence of this value needs to be bilaterally agreed, if applicable. In the context of Hong Kong's SFC, this can be used to comply with SFC regulations for disclosure of client facilitation. */\n    AllowFacilitation: 'z',\n} as const);\n\nexport type ExecInst = (typeof ExecInst)[keyof typeof ExecInst];\n", "/**\n * Specifies how the transaction was executed, e.g. via an automated execution platform or other method.\n * - Tag: 2405\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ExecMethod = Object.freeze({\n    /** Undefined/unspecified - (default when not specified) */\n    Unspecified: 0,\n    /** Manual\n        The transaction was executed in a manual or other non-automated manner, e.g. by voice directly between the counterparties. In the context of Market Model Typology (MMT), this value represents an off book non-automated transaction type. */\n    Manual: 1,\n    /** Automated\n        The transaction was executed on an automated execution platform such as an automated systematic internaliser system, broker crossing network, broker crossing system, dark pool trading, \"direct to capital\" systems, broker position unwind mechanisms, etc. */\n    Automated: 2,\n    /** Voice brokered\n        The transaction was negotiated by voice through an intermediary. */\n    VoiceBrokered: 3,\n} as const);\n\nexport type ExecMethod = (typeof ExecMethod)[keyof typeof ExecMethod];\n", "/**\n * For CIV - Identifies how the execution price LastPx (31) was calculated from the fund unit/share price(s) calculated at the fund valuation point.\n * - Tag: 484\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ExecPriceType = Object.freeze({\n    /** Bid price */\n    BidPrice: 'B',\n    /** Creation price */\n    CreationPrice: 'C',\n    /** Creation price plus adjustment percent */\n    CreationPricePlusAdjustmentPercent: 'D',\n    /** Creation price plus adjustment amount */\n    CreationPricePlusAdjustmentAmount: 'E',\n    /** Offer price */\n    OfferPrice: 'O',\n    /** Offer price minus adjustment percent */\n    OfferPriceMinusAdjustmentPercent: 'P',\n    /** Offer price minus adjustment amount */\n    OfferPriceMinusAdjustmentAmount: 'Q',\n    /** Single price */\n    SinglePrice: 'S',\n} as const);\n\nexport type ExecPriceType = (typeof ExecPriceType)[keyof typeof ExecPriceType];\n", "/**\n * The reason for restatement when an ExecutionReport(35=8) or TradeCaptureReport(35=AE) message is sent with ExecType(150) = D (Restated) or used when communicating an unsolicited cancel.\n * - Tag: 378\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ExecRestatementReason = Object.freeze({\n    /** GT corporate action */\n    GTCorporateAction: 0,\n    /** GT renewal / restatement (no corporate action) */\n    GTRenewal: 1,\n    /** Verbal change */\n    VerbalChange: 2,\n    /** Repricing of order */\n    RepricingOfOrder: 3,\n    /** Broker option */\n    BrokerOption: 4,\n    /** Partial decline of OrderQty (e.g. exchange initiated partial cancel) */\n    PartialDeclineOfOrderQty: 5,\n    /** Cancel on Trading Halt */\n    CancelOnTradingHalt: 6,\n    /** Cancel on System Failure */\n    CancelOnSystemFailure: 7,\n    /** Market (Exchange) option */\n    Market: 8,\n    /** Canceled, not best */\n    Canceled: 9,\n    /** Warehouse Recap */\n    WarehouseRecap: 10,\n    /** Peg Refresh */\n    PegRefresh: 11,\n    /** Cancel On Connection Loss */\n    CancelOnConnectionLoss: 12,\n    /** Cancel On Logout */\n    CancelOnLogout: 13,\n    /** Assign Time Priority */\n    AssignTimePriority: 14,\n    /** Cancelled, Trade Price Violation */\n    CancelledForTradePriceViolation: 15,\n    /** Cancelled, Cross Imbalance */\n    CancelledForCrossImbalance: 16,\n    /** Cancelled, self-match prevention\n        Cancelled order based on standing rules for self-match prevention (i.e. SelfMatchPreventionInstruction(2964) not specified or used). */\n    CxldSMP: 17,\n    /** Cancelled, self-match prevention aggressive order\n        Cancelled due to incoming order with the same SelfMatchPreventionID(2362) and SelfMatchPreventionInstruction(2964)=1 (Cancel aggressive). */\n    CxldSMPAggressive: 18,\n    /** Cancelled, self-match prevention passive order\n        Cancelled due to incoming order with the same SelfMatchPreventionID(2362) and SelfMatchPreventionInstruction(2964)=2 (Cancel passive). */\n    CxldSMPPassive: 19,\n    /** Cancelled, self-match prevention aggressive and passive order\n        Cancelled due to incoming order with the same SelfMatchPreventionID(2362) and SelfMatchPreventionInstruction(2964)=3 (Cancel aggressive and passive). */\n    CxldSMPAggressivePassive: 20,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type ExecRestatementReason = (typeof ExecRestatementReason)[keyof typeof ExecRestatementReason];\n", "/**\n * Identifies transaction type\n * - Tag: 20\n * - FIX Specification type: char\n * - FIX Specification version: FIX42\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ExecTransType = Object.freeze({\n    /** New */\n    New: '0',\n    /** Cancel */\n    Cancel: '1',\n    /** Correct */\n    Correct: '2',\n    /** Status */\n    Status: '3',\n} as const);\n\nexport type ExecTransType = (typeof ExecTransType)[keyof typeof ExecTransType];\n", "/**\n * Describes the specific ExecutionRpt (e.g. Pending Cancel) while OrdStatus(39) will always identify the current order status (e.g. Partially Filled).\n * - Tag: 150\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ExecType = Object.freeze({\n    /** New */\n    New: '0',\n    /** Done for day */\n    DoneForDay: '3',\n    /** Canceled */\n    Canceled: '4',\n    /** Replaced */\n    Replaced: '5',\n    /** Pending Cancel (e.g. result of Order Cancel Request) */\n    PendingCancel: '6',\n    /** Stopped */\n    Stopped: '7',\n    /** Rejected */\n    Rejected: '8',\n    /** Suspended */\n    Suspended: '9',\n    /** Pending New */\n    PendingNew: 'A',\n    /** Calculated */\n    Calculated: 'B',\n    /** Expired */\n    Expired: 'C',\n    /** Restated (Execution Report sent unsolicited by sellside, with ExecRestatementReason (378) set) */\n    Restated: 'D',\n    /** Pending Replace (e.g. result of Order Cancel/Replace Request) */\n    PendingReplace: 'E',\n    /** Trade (partial fill or fill) */\n    Trade: 'F',\n    /** Trade Correct */\n    TradeCorrect: 'G',\n    /** Trade Cancel */\n    TradeCancel: 'H',\n    /** Order Status */\n    OrderStatus: 'I',\n    /** Trade in a Clearing Hold */\n    TradeInAClearingHold: 'J',\n    /** Trade has been released to Clearing */\n    TradeHasBeenReleasedToClearing: 'K',\n    /** Triggered or Activated by System */\n    TriggeredOrActivatedBySystem: 'L',\n    /** Locked */\n    Locked: 'M',\n    /** Released */\n    Released: 'N',\n} as const);\n\nexport type ExecType = (typeof ExecType)[keyof typeof ExecType];\n", "/**\n * The initiating event when an ExecutionReport(35=8) is sent.\n * - Tag: 2431\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ExecTypeReason = Object.freeze({\n    /** Order added upon request */\n    OrdAddedOnRequest: 1,\n    /** Order replaced upon request */\n    OrdReplacedOnRequest: 2,\n    /** Order cancelled upon request */\n    OrdCxldOnRequest: 3,\n    /** Unsolicited order cancellation */\n    UnsolicitedOrdCxl: 4,\n    /** Non-resting order added upon request */\n    NonRestingOrdAddedOnRequest: 5,\n    /** Order replaced with non-resting order upon request */\n    OrdReplacedWithNonRestingOrdOnRequest: 6,\n    /** Trigger order replaced upon request */\n    TriggerOrdReplacedOnRequest: 7,\n    /** Suspended order replaced upon request */\n    SuspendedOrdReplacedOnRequest: 8,\n    /** Suspended order canceled upon request */\n    SuspendedOrdCxldOnRequest: 9,\n    /** Order cancellation pending */\n    OrdCxlPending: 10,\n    /** Pending cancellation executed */\n    PendingCxlExecuted: 11,\n    /** Resting order triggered */\n    RestingOrdTriggered: 12,\n    /** Suspended order activated */\n    SuspendedOrdActivated: 13,\n    /** Active order suspended */\n    ActiveOrdSuspended: 14,\n    /** Order expired */\n    OrdExpired: 15,\n} as const);\n\nexport type ExecTypeReason = (typeof ExecTypeReason)[keyof typeof ExecTypeReason];\n", "/**\n * Indicates whether follow-up confirmation of exercise (written or electronic) is required following telephonic notice by the buyer to the seller or seller's agent.\n * - Tag: 41111\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ExerciseConfirmationMethod = Object.freeze({\n    /** Not required */\n    NotRequired: 0,\n    /** Non-electronic */\n    NonElectronic: 1,\n    /** Electronic */\n    Electronic: 2,\n    /** Unknown at time of report */\n    Unknown: 3,\n} as const);\n\nexport type ExerciseConfirmationMethod = (typeof ExerciseConfirmationMethod)[keyof typeof ExerciseConfirmationMethod];\n", "/**\n * Exercise Method used to in performing assignment.\n * - Tag: 747\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ExerciseMethod = Object.freeze({\n    /** Automatic */\n    Automatic: 'A',\n    /** Manual */\n    Manual: 'M',\n} as const);\n\nexport type ExerciseMethod = (typeof ExerciseMethod)[keyof typeof ExerciseMethod];\n", "/**\n * Type of exercise of a derivatives security\n * - Tag: 1194\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ExerciseStyle = Object.freeze({\n    /** European */\n    European: 0,\n    /** American */\n    American: 1,\n    /** Bermuda */\n    Bermuda: 2,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type ExerciseStyle = (typeof ExerciseStyle)[keyof typeof ExerciseStyle];\n", "/**\n * Part of trading cycle when an instrument expires. Field is applicable for derivatives.\n * - Tag: 827\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ExpirationCycle = Object.freeze({\n    /** Expire on trading session close (default) */\n    ExpireOnTradingSessionClose: 0,\n    /** Expire on trading session open */\n    ExpireOnTradingSessionOpen: 1,\n    /** Trading eligibility expiration specified in the date and time fields [EventDate(866) and EventTime(1145)] associated with EventType(865)=7(Last Eligible Trade Date) */\n    SpecifiedExpiration: 2,\n} as const);\n\nexport type ExpirationCycle = (typeof ExpirationCycle)[keyof typeof ExpirationCycle];\n", "/**\n * Expiration Quantity type\n * - Tag: 982\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ExpirationQtyType = Object.freeze({\n    /** Auto Exercise */\n    AutoExercise: 1,\n    /** Non Auto Exercise */\n    NonAutoExercise: 2,\n    /** Final Will Be Exercised */\n    FinalWillBeExercised: 3,\n    /** Contrary Intention */\n    ContraryIntention: 4,\n    /** Difference */\n    Difference: 5,\n} as const);\n\nexport type ExpirationQtyType = (typeof ExpirationQtyType)[keyof typeof ExpirationQtyType];\n", "/**\n * Defines how adjustments will be made to the contract should one or more of the extraordinary events occur.\n * - Tag: 2602\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ExtraordinaryEventAdjustmentMethod = Object.freeze({\n    /** Calculation agent\n        The Calculation Agent has the right to adjust the terms of the trade following a corporate action. */\n    CalculationAgent: 0,\n    /** Options exchange\n        The trade will be adjusted in accordance with any adjustment made by the exchange on which options on the underlying are listed. */\n    OptionsExchange: 1,\n} as const);\n\nexport type ExtraordinaryEventAdjustmentMethod =\n    (typeof ExtraordinaryEventAdjustmentMethod)[keyof typeof ExtraordinaryEventAdjustmentMethod];\n", "/**\n * Identifies a firm's or a security's financial status\n * - Tag: 291\n * - FIX Specification type: MultipleCharValue\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const FinancialStatus = Object.freeze({\n    /** Bankrupt */\n    Bankrupt: '1',\n    /** Pending delisting */\n    PendingDelisting: '2',\n    /** Restricted */\n    Restricted: '3',\n} as const);\n\nexport type FinancialStatus = (typeof FinancialStatus)[keyof typeof FinancialStatus];\n", "/**\n * The industry standard flow schedule by which electricity or natural gas is traded. Schedules may exist by regions and on-peak and off-peak status, such as \"Western Peak\".\n * - Tag: 1439\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const FlowScheduleType = Object.freeze({\n    /** NERC Eastern Off-Peak */\n    NERCEasternOffPeak: 0,\n    /** NERC Western Off-Peak */\n    NERCWesternOffPeak: 1,\n    /** NERC Calendar-All Days in month */\n    NERCCalendarAllDaysInMonth: 2,\n    /** NERC Eastern Peak */\n    NERCEasternPeak: 3,\n    /** NERC Western Peak */\n    NERCWesternPeak: 4,\n    /** All times */\n    AllTimes: 5,\n    /** On peak */\n    OnPeak: 6,\n    /** Off peak */\n    OffPeak: 7,\n    /** Base */\n    Base: 8,\n    /** Block */\n    Block: 9,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type FlowScheduleType = (typeof FlowScheduleType)[keyof typeof FlowScheduleType];\n", "/**\n * Indicates request for forex accommodation trade to be executed along with security transaction.\n * - Tag: 121\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ForexReq = Object.freeze({\n    /** Do Not Execute Forex After Security Trade */\n    DoNotExecuteForexAfterSecurityTrade: 'N',\n    /** Execute Forex After Security Trade */\n    ExecuteForexAfterSecurityTrade: 'Y',\n} as const);\n\nexport type ForexReq = (typeof ForexReq)[keyof typeof ForexReq];\n", "/**\n * Specifies the funding source used to finance margin or collateralized loan.\n * - Tag: 2846\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const FundingSource = Object.freeze({\n    /** Repurchase agreement\n        Repurchase agreements or Buy Sellbacks. In the context of EU SFTR reporting this corresponds to code \"REPO\". */\n    Repo: 0,\n    /** Cash\n        Cash collateral from securities lending. In the context of EU SFTR reporting this corresponds to code \"SECL\". */\n    Cash: 1,\n    /** Free credits\n        In the context of EU SFTR reporting this corresponds to code \"FREE\". */\n    FreeCedits: 2,\n    /** Customer short sales\n        Proceeds from customer short sales. In the context of EU SFTR reporting this corresponds to code \"CSHS\". */\n    CustomerShortSales: 3,\n    /** Broker short sales\n        Proceeds from broker short sales. In the context of EU SFTR reporting this corresponds to code \"BSHS\". */\n    BrokerShortSales: 4,\n    /** Unsecured borrowing\n        In the context of EU SFTR reporting this corresponds to code \"UBOR\". */\n    UnsecuredBorrowing: 5,\n    /** Other\n        In the context of EU SFTR reporting this corresponds to code \"OTHR\". */\n    Other: 99,\n} as const);\n\nexport type FundingSource = (typeof FundingSource)[keyof typeof FundingSource];\n", "/**\n * A one character code identifying whether the Fund based renewal commission is to be waived.\n * - Tag: 497\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const FundRenewWaiv = Object.freeze({\n    /** No */\n    No: 'N',\n    /** Yes */\n    Yes: 'Y',\n} as const);\n\nexport type FundRenewWaiv = (typeof FundRenewWaiv)[keyof typeof FundRenewWaiv];\n", "/**\n * The source of where to obtain the FX benchmark rate to use for fixing the rate.\n    The value in this field can be different from RateSource(1446). For example, \"Bloomberg\" can be the reference source identified in RateSource(1446), and FXBenchmark(3073) can be \"central bank\" - what this says is to use Bloomberg to look up/reference the published central bank rate. Likewise, the BFIX rate for fixing (FXBenchmark(3073)=1 (Bloomberg)) can be sourced from Reuters (RateSource(1446)=1 (Reuters)). If the source for benchmark fixing rate is the same as the reference source (RateSource(1446)), this field, FXBenchmark(3073), can be omitted.\n * - Tag: 3073\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const FXBenchmark = Object.freeze({\n    /** Bloomberg\n        Also referred to as BFIX. */\n    Bloomberg: 1,\n    /** Central Bank */\n    CentralBank: 2,\n    /** WMR */\n    WMR: 3,\n    /** Mitsubishi-UFJ\n        Also referred to as the Tokyo Fix. */\n    MitsubishiUFJ: 4,\n    /** London Bullion Market Association\n        Gold and Silver fixes are LBMA rates generated by ICE; Platinum and palladium fixes are LBMA rates generated by LME. */\n    LondonBullionMarketAssociation: 5,\n    /** London Metal Exchange\n        Base metal prices come from the LME. LBMA should be used for platinum and palladium even though these are LME rates. */\n    LondonMetalExchange: 6,\n    /** Other\n        An appropriate reference page, ReferencePage(1448), at the specified RateSource(1446) needs to be specified. */\n    Other: 99,\n} as const);\n\nexport type FXBenchmark = (typeof FXBenchmark)[keyof typeof FXBenchmark];\n", "/**\n * Indicates that the Sequence Reset message is replacing administrative or application messages which will not be resent.\n * - Tag: 123\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const GapFillFlag = Object.freeze({\n    /** Sequence Reset, Ignore Msg Seq Num (N/A For FIXML - Not Used) */\n    SequenceReset: 'N',\n    /** Gap Fill Message, Msg Seq Num Field Valid */\n    GapFillMessage: 'Y',\n} as const);\n\nexport type GapFillFlag = (typeof GapFillFlag)[keyof typeof GapFillFlag];\n", "/**\n * Code to identify whether to book out executions on a part-filled GT order on the day of execution or to accumulate.\n * - Tag: 427\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const GTBookingInst = Object.freeze({\n    /** Book out all trades on day of execution */\n    BookOutAllTradesOnDayOfExecution: 0,\n    /** Accumulate executions until order is filled or expires */\n    AccumulateUntilFilledOrExpired: 1,\n    /** Accumulate until verbally notified otherwise */\n    AccumulateUntilVerballyNotifiedOtherwise: 2,\n} as const);\n\nexport type GTBookingInst = (typeof GTBookingInst)[keyof typeof GTBookingInst];\n", "/**\n * Denotes the reason for the Opening Delay or Trading Halt.\n * - Tag: 327\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const HaltReason = Object.freeze({\n    /** News Dissemination */\n    NewsDissemination: 0,\n    /** Order Influx */\n    OrderInflux: 1,\n    /** Order Imbalance */\n    OrderImbalance: 2,\n    /** Additional Information */\n    AdditionalInformation: 3,\n    /** News Pending */\n    NewsPending: 4,\n    /** Equipment Changeover */\n    EquipmentChangeover: 5,\n} as const);\n\nexport type HaltReason = (typeof HaltReason)[keyof typeof HaltReason];\n", "/**\n * Instructions for order handling on Broker trading floor\n * - Tag: 21\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const HandlInst = Object.freeze({\n    /** Automated execution order, private, no Broker intervention */\n    AutomatedExecutionNoIntervention: '1',\n    /** Automated execution order, public, Broker intervention OK */\n    AutomatedExecutionInterventionOK: '2',\n    /** Manual order, best execution */\n    ManualOrder: '3',\n} as const);\n\nexport type HandlInst = (typeof HandlInst)[keyof typeof HandlInst];\n", "/**\n * Identifies class of alternative SecurityID\n * - Tag: 22\n * - FIX Specification type: String\n * - FIX Specification version: FIX42\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const IDSource = Object.freeze({\n    /** CUSIP */\n    CUSIP: '1',\n    /** SEDOL */\n    SEDOL: '2',\n    /** QUIK */\n    QUIK: '3',\n    /** ISIN number */\n    ISINNumber: '4',\n    /** RIC code */\n    RICCode: '5',\n    /** ISO Currency Code */\n    ISOCurrencyCode: '6',\n    /** ISO Country Code */\n    ISOCountryCode: '7',\n    /** Exchange Symbol */\n    ExchangeSymbol: '8',\n    /** Consolidated Tape Association (CTA) Symbol (SIAC CTS/CQS line format) */\n    ConsolidatedTapeAssociation: '9',\n} as const);\n\nexport type IDSource = (typeof IDSource)[keyof typeof IDSource];\n", "/**\n * Indicates that an implied market should be created for either the legs of a multi-leg instrument (Implied-in) or for the multi-leg instrument based on the existence of the legs (Implied-out). Determination as to whether implied markets should be created is generally done at the level of the multi-leg instrument. Commonly used in listed derivatives.\n * - Tag: 1144\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ImpliedMarketIndicator = Object.freeze({\n    /** Not implied */\n    NotImplied: 0,\n    /** Implied-in - The existence of a multi-leg instrument is implied by the legs of that instrument */\n    ImpliedIn: 1,\n    /** Implied-out - The existence of the underlying legs are implied by the multi-leg instrument */\n    ImpliedOut: 2,\n    /** Both Implied-in and Implied-out */\n    BothImpliedInAndImpliedOut: 3,\n} as const);\n\nexport type ImpliedMarketIndicator = (typeof ImpliedMarketIndicator)[keyof typeof ImpliedMarketIndicator];\n", "/**\n * Code to represent whether value is net (inclusive of tax) or gross.\n * - Tag: 416\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const IncTaxInd = Object.freeze({\n    /** Net */\n    Net: 1,\n    /** Gross */\n    Gross: 2,\n} as const);\n\nexport type IncTaxInd = (typeof IncTaxInd)[keyof typeof IncTaxInd];\n", "/**\n * Identifies whether the allocation is to be sub-allocated or allocated to a third party\n * - Tag: 992\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const IndividualAllocType = Object.freeze({\n    /** Sub Allocate */\n    SubAllocate: 1,\n    /** Third Party Allocation */\n    ThirdPartyAllocation: 2,\n} as const);\n\nexport type IndividualAllocType = (typeof IndividualAllocType)[keyof typeof IndividualAllocType];\n", "/**\n * Code to represent the type of instrument attribute\n * - Tag: 871\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const InstrAttribType = Object.freeze({\n    /** Flat (securities pay interest on a current basis but are traded without interest) */\n    Flat: 1,\n    /** Zero coupon */\n    ZeroCoupon: 2,\n    /** Interest bearing (for Euro commercial paper when not issued at discount) */\n    InterestBearing: 3,\n    /** No periodic payments */\n    NoPeriodicPayments: 4,\n    /** Variable rate */\n    VariableRate: 5,\n    /** Less fee for put */\n    LessFeeForPut: 6,\n    /** Stepped coupon */\n    SteppedCoupon: 7,\n    /** Coupon period (if not semi-annual)\n        Supply redemption date in the InstrAttribValue(872) field. */\n    CouponPeriod: 8,\n    /** When [and if] issued */\n    When: 9,\n    /** Original issue discount */\n    OriginalIssueDiscount: 10,\n    /** Callable, puttable */\n    Callable: 11,\n    /** Escrowed to Maturity */\n    EscrowedToMaturity: 12,\n    /** Escrowed to redemption date - callable\n        Supply redemption date in the InstrAttribValue(872) field. */\n    EscrowedToRedemptionDate: 13,\n    /** Pre-refunded */\n    PreRefunded: 14,\n    /** In default */\n    InDefault: 15,\n    /** Unrated */\n    Unrated: 16,\n    /** Taxable */\n    Taxable: 17,\n    /** Indexed */\n    Indexed: 18,\n    /** Subject To Alternative Minimum Tax */\n    SubjectToAlternativeMinimumTax: 19,\n    /** Original issue discount price\n        Supply price in the InstrAttribValue(872) field. */\n    OriginalIssueDiscountPrice: 20,\n    /** Callable below maturity value */\n    CallableBelowMaturityValue: 21,\n    /** Callable without notice by mail to holder unless registered */\n    CallableWithoutNotice: 22,\n    /** Price tick rules for security */\n    PriceTickRulesForSecurity: 23,\n    /** Trade type eligibility details for security */\n    TradeTypeEligibilityDetailsForSecurity: 24,\n    /** Instrument denominator */\n    InstrumentDenominator: 25,\n    /** Instrument numerator */\n    InstrumentNumerator: 26,\n    /** Instrument price precision */\n    InstrumentPricePrecision: 27,\n    /** Instrument strike price */\n    InstrumentStrikePrice: 28,\n    /** Tradeable indicator */\n    TradeableIndicator: 29,\n    /** Instrument is eligible to accept anonymous orders */\n    InstrumentEligibleAnonOrders: 30,\n    /** Minimum guaranteed fill volume */\n    MinGuaranteedFillVolume: 31,\n    /** Minimum guaranteed fill status */\n    MinGuaranteedFillStatus: 32,\n    /** Trade at settlement (TAS) eligibility */\n    TradeAtSettlementEligibility: 33,\n    /** Test instrument\n        Instrument that is tradable but has no effect on the positions, exchange turnover etc. */\n    TestInstrument: 34,\n    /** Dummy instrument\n        Instrument that is normally halted and is only activated for trading under very special conditions (e.g. temporarily assigned for newly listed instrument). Use of a dummy instrument generally applies to systems that are unable to add reference data for new instruments intraday. */\n    DummyInstrument: 35,\n    /** Negative settlement price eligibility */\n    NegativeSettlementPriceEligibility: 36,\n    /** Negative strike price eligibility */\n    NegativeStrikePriceEligibility: 37,\n    /** US standard contract indicator\n        Indicates through InstrAttribValue(872) - values Y or N - whether the underlying asset in the trade references or is economically related to a contract listed in Appendix B of CFTC Part 43 regulation. See http://www.ecfr.gov/cgi-bin/text-idx?SID=4b2d1078ad68f6564a89d7ff6c52ec43&node=17:2.0.1.1.3.0.1.8.2&rgn=div or refer to Appendix B to Part 43 in the final rule at http://www.cftc.gov/ucm/groups/public/@lrfederalregister/documents/file/2013-12133a.pdf */\n    USStdContractInd: 38,\n    /** Admitted to trading on a trading venue */\n    AdmittedToTradingOnTradingVenue: 39,\n    /** Average daily notional amount */\n    AverageDailyNotionalAmount: 40,\n    /** Average daily number of trades */\n    AverageDailyNumberTrades: 41,\n    /** Text\n        Supply the text value in InstrAttribValue(872). */\n    Text: 99,\n} as const);\n\nexport type InstrAttribType = (typeof InstrAttribType)[keyof typeof InstrAttribType];\n", "/**\n * Method under which assignment was conducted\n * - Tag: 1049\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const InstrmtAssignmentMethod = Object.freeze({\n    /** Pro rata */\n    ProRata: 'P',\n    /** Random */\n    Random: 'R',\n} as const);\n\nexport type InstrmtAssignmentMethod = (typeof InstrmtAssignmentMethod)[keyof typeof InstrmtAssignmentMethod];\n", "/**\n * Operator to perform on the instrument(s) specified\n * - Tag: 1535\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const InstrumentScopeOperator = Object.freeze({\n    /** Include */\n    Include: 1,\n    /** Exclude */\n    Exclude: 2,\n} as const);\n\nexport type InstrumentScopeOperator = (typeof InstrumentScopeOperator)[keyof typeof InstrumentScopeOperator];\n", "/**\n * Specifies an option instrument's \"in the money\" condition.\n * - Tag: 2681\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const InTheMoneyCondition = Object.freeze({\n    /** Standard in-the-money\n        The option's strike price is less than the underlying settlement price for a call or greater than the underlying settlement price for a put. */\n    StandardITM: 0,\n    /** At-the-money is in-the-money\n        The option's strike price of either the put or call is equal to the underlying settlement price in addition to standard in-the-money behavior. */\n    ATMITM: 1,\n    /** At-the-money call is in-the-money\n        The call option's strike price is equal to the underlying settlement price in addition to standard in-the-money behavior. */\n    ATMCallITM: 2,\n    /** At-the-money put is in-the-money\n        The put option's strike price is equal to the underlying settlement price in addition to standard in-the-money behavior. */\n    ATMPutITM: 3,\n} as const);\n\nexport type InTheMoneyCondition = (typeof InTheMoneyCondition)[keyof typeof InTheMoneyCondition];\n", "/**\n * Indicates whether or not the halt was due to Common Stock trading being halted.\n * - Tag: 328\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const InViewOfCommon = Object.freeze({\n    /** Halt was not related to a halt of the common stock */\n    HaltWasNotRelatedToAHaltOfTheCommonStock: 'N',\n    /** Halt was due to common stock being halted */\n    HaltWasDueToCommonStockBeingHalted: 'Y',\n} as const);\n\nexport type InViewOfCommon = (typeof InViewOfCommon)[keyof typeof InViewOfCommon];\n", "/**\n * Indicates that IOI is the result of an existing agency order or a facilitation position resulting from an agency order, not from principal trading or order solicitation activity.\n * - Tag: 130\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const IOINaturalFlag = Object.freeze({\n    /** Not Natural */\n    NotNatural: 'N',\n    /** Natural */\n    Natural: 'Y',\n} as const);\n\nexport type IOINaturalFlag = (typeof IOINaturalFlag)[keyof typeof IOINaturalFlag];\n", "/**\n * Relative quality of indication\n * - Tag: 25\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const IOIQltyInd = Object.freeze({\n    /** High */\n    High: 'H',\n    /** Low */\n    Low: 'L',\n    /** Medium */\n    Medium: 'M',\n} as const);\n\nexport type IOIQltyInd = (typeof IOIQltyInd)[keyof typeof IOIQltyInd];\n", "/**\n * Quantity (e.g. number of shares) in numeric form or relative size.\n * - Tag: 27\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const IOIQty = Object.freeze({\n    /** Small */\n    Small: 'S',\n    /** Medium */\n    Medium: 'M',\n    /** Large */\n    Large: 'L',\n    /** Undisclosed Quantity */\n    UndisclosedQuantity: 'U',\n} as const);\n\nexport type IOIQty = (typeof IOIQty)[keyof typeof IOIQty];\n", "/**\n * Code to qualify IOI use. (see Volume : \"Glossary\" for value definitions)\n * - Tag: 104\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const IOIQualifier = Object.freeze({\n    /** All or None (AON) */\n    AllOrNone: 'A',\n    /** Market On Close (MOC) (held to close) */\n    MarketOnClose: 'B',\n    /** At the close (around/not held to close) */\n    AtTheClose: 'C',\n    /** VWAP (Volume Weighted Average Price) */\n    VWAP: 'D',\n    /** Axe\n        Indicates that a quote is an Axe, without specifying a side preference. Mutually exclusive with F(Axe on bid) and G(Axe on offer). */\n    Axe: 'E',\n    /** Axe on bid\n        Indicates that a quote is an Axe, with a preference to execute on the bid side. Mutually exclusive with E(Axe) and G (Axe on offer) */\n    AxeOnBid: 'F',\n    /** Axe on offer\n        Indicates that a quote is an Axe, with a preference to execute on the offer side. Mutually exclusive with E(Axe) and F (Axe on bid) */\n    AxeOnOffer: 'G',\n    /** Client natural working\n        With reference to the AFME/IA Framework for Indications of Interest, this is to be used to denote IOIs of type C2 \u2013 Client Natural (Working). A client should be able to seek verification (from IOI publisher\u2019s management/compliance) that, for any C2 IOIs received, there was a corresponding live client order for at least the advertised size prior to the IOI being generated. Resulting trades are expected to be of a riskless nature. */\n    ClientNaturalWorking: 'H',\n    /** In touch with\n        With reference to the AFME/IA Framework for Indications of Interest, this is to be used to denote IOIs of type P1 - Potential. Post-execution, a client should be able to seek verification (from IOI publisher\u2019s management/ compliance) that, for any P1 IOIs received and executed against, there was by time of the execution, an opposing specific client order. Resulting trades are expected to be of a riskless nature. If the anticipated client order does not materialise, and the broker elects to commit capital, this must be disclosed prior to execution. */\n    InTouchWith: 'I',\n    /** Position wanted\n        With reference to the AFME/IA Framework for Indications of Interest, this is to be used to denote IOIs of type H2 \u2013 Position Wanted. Brokers will be likely be sourcing liquidity and therefore may advertise the size of IOI they wish; however, clients can expect the broker to honour the size of IOI shown. The presumption is that there is no intent to immediately unwind the position without notification, however, brokers may provide additional granularity to the category and may offer bilateral post trade commitments. Brokers will also offer clients a feedback mechanism. */\n    PositionWanted: 'J',\n    /** Market making\n        With reference to the AFME/IA Framework for Indications of Interest, this is to be used to denote IOIs of type H3 \u2013 Market Making, no enforcement is required. */\n    MarketMaking: 'K',\n    /** Limit */\n    Limit: 'L',\n    /** More Behind */\n    MoreBehind: 'M',\n    /** Client natural block\n        With reference to the AFME/IA Framework for Indications of Interest, this is to be used to denote IOIs of type C1 - Client Natural (Block). A client should be able to seek verification (from IOI publisher\u2019s management/compliance) that, for any C1 IOIs received, there was a corresponding live client order for at least the advertised size prior to the IOI being generated. Resulting trades are expected to be of a riskless nature. */\n    ClientNaturalBlock: 'N',\n    /** At the Open */\n    AtTheOpen: 'O',\n    /** Taking a Position */\n    TakingAPosition: 'P',\n    /** At the Market (previously called Current Quote) */\n    AtTheMarket: 'Q',\n    /** Ready to Trade */\n    ReadyToTrade: 'R',\n    /** Inventory or Portfolio Shown */\n    PortfolioShown: 'S',\n    /** Through the Day */\n    ThroughTheDay: 'T',\n    /** Unwind\n        With reference to the AFME/IA Framework for Indications of Interest, this is to be used to denote IOIs of type H1 - Unwind. Brokers will be responsible for ensuring that the size of the IOI reflects the actual house position in the relevant business unit and should not inflate the size of the IOI. The presumption is that there is no intent to immediately replace the position without notification, however, brokers may provide additional granularity to the category and may offer bilateral post trade commitments. Brokers will also offer clients a feedback mechanism. */\n    Unwind: 'U',\n    /** Versus */\n    Versus: 'V',\n    /** Indication - Working Away */\n    Indication: 'W',\n    /** Crossing Opportunity */\n    CrossingOpportunity: 'X',\n    /** At the Midpoint */\n    AtTheMidpoint: 'Y',\n    /** Pre-open */\n    PreOpen: 'Z',\n    /** Quantity is negotiable\n        When specified, the dealer may counter with a reduced quantity in its Quotes in response to QuoteRequest(35=R). All-or-none if omitted. */\n    QuantityNegotiable: '1',\n    /** Allow late bids\n        When specified in QuoteRequest(35=R) the dealer may submit quotes after curtain time has elapsed. */\n    AllowLateBids: '2',\n    /** Immediate or counter\n        When specified, the buy-side customer is permitted to counter a firm quote during wiretime. */\n    ImmediateOrCounter: '3',\n    /** Auto trade\n        Trade is in an auto-trading mode whereby the best quote that satisfies user criteria as determined by the trading platform will be accepted automatically. */\n    AutoTrade: '4',\n    /** Automatic spot\n        At completion of price negotiation based on spread the trading platform will propose a benchmark spot price which may be filled immediately by the dealer or countered. */\n    AutomaticSpot: 'a',\n    /** Platform calculated spot\n        At completion of price negotiation based on spread the trading platform will supply a benchmark spot price and immediately complete the trade reporting fill. There is no dealer last look. */\n    PlatformCalculatedSpot: 'b',\n    /** Outside spread\n        The IOI is identifiable outside the current bid/offer. */\n    OutsideSpread: 'c',\n    /** Deferred spot\n        At a future time after completion of price negotiation based on spread and reported in StrikeTime(443) the trading platform will propose a benchmark spot price which may be filled immediately by the dealer or countered. */\n    DeferredSpot: 'd',\n    /** Negotiated spot\n        Once price negotiation based on spread is completed negotiation of the benchmark spot price proceeds immediately. */\n    NegotiatedSpot: 'n',\n} as const);\n\nexport type IOIQualifier = (typeof IOIQualifier)[keyof typeof IOIQualifier];\n", "/**\n * Number of shares in numeric or relative size.\n * - Tag: 27\n * - FIX Specification type: String\n * - FIX Specification version: FIX42\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const IOIShares = Object.freeze({\n    /** Large */\n    Large: 'L',\n    /** Medium */\n    Medium: 'M',\n    /** Small */\n    Small: 'S',\n} as const);\n\nexport type IOIShares = (typeof IOIShares)[keyof typeof IOIShares];\n", "/**\n * Identifies IOI message transaction type\n * - Tag: 28\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const IOITransType = Object.freeze({\n    /** New */\n    New: 'N',\n    /** Cancel */\n    Cancel: 'C',\n    /** Replace */\n    Replace: 'R',\n} as const);\n\nexport type IOITransType = (typeof IOITransType)[keyof typeof IOITransType];\n", "/**\n * Used to specify whether the principal is paying or receiving the fixed rate in an interest rate swap.\n * - Tag: 1933\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const IRSDirection = Object.freeze({\n    /** Principal is paying fixed rate */\n    Pay: 'PAY',\n    /** Principal is receiving fixed rate */\n    Rcv: 'RCV',\n    /** Swap is float/float or fixed/fixed */\n    NA: 'NA',\n} as const);\n\nexport type IRSDirection = (typeof IRSDirection)[keyof typeof IRSDirection];\n", "/**\n * Broker capacity in order execution\n * - Tag: 29\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const LastCapacity = Object.freeze({\n    /** Agent */\n    Agent: '1',\n    /** Cross as agent */\n    CrossAsAgent: '2',\n    /** Cross as principal */\n    CrossAsPrincipal: '3',\n    /** Principal */\n    Principal: '4',\n    /** Riskless principal */\n    RisklessPrincipal: '5',\n} as const);\n\nexport type LastCapacity = (typeof LastCapacity)[keyof typeof LastCapacity];\n", "/**\n * Indicates whether this message is the last in a sequence of messages for those messages that support fragmentation, such as Allocation Instruction, Mass Quote, Security List, Derivative Security List\n * - Tag: 893\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const LastFragment = Object.freeze({\n    /** Not Last Message */\n    NotLastMessage: 'N',\n    /** Last Message */\n    LastMessage: 'Y',\n} as const);\n\nexport type LastFragment = (typeof LastFragment)[keyof typeof LastFragment];\n", "/**\n * Indicator to identify whether this fill was a result of a liquidity provider providing or liquidity taker taking the liquidity.\n * - Tag: 851\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const LastLiquidityInd = Object.freeze({\n    /** Neither added nor removed liquidity\n        May be used by venues where market rules do not define \"add\" or \"remove\" liquidity.\n        In the context of the SEC amendment of Regulation NMS Rule 606(b), may be used to identify executions that are only reported as part of total shares executed and not as part of shares providing or removing liquidity (see https://www.sec.gov/rules/final/2018/34-84528.pdf for details). */\n    NeitherAddedNorRemovedLiquidity: 0,\n    /** Added Liquidity */\n    AddedLiquidity: 1,\n    /** Removed Liquidity */\n    RemovedLiquidity: 2,\n    /** Liquidity Routed Out */\n    LiquidityRoutedOut: 3,\n    /** Auction execution */\n    Auction: 4,\n    /** Triggered stop order\n        Fill was the result of a stop order being triggered and immediately executed. */\n    TriggeredStopOrder: 5,\n    /** Triggered contingency order\n        Fill was the result of a contingency order (OCO, OTO, OUO) becoming active (after cancelling or updating another order) and being immediately executed. */\n    TriggeredContingencyOrder: 6,\n    /** Triggered market order\n        Fill was the result of a market order being triggered due to an executable orderbook situation. */\n    TriggeredMarketOrder: 7,\n    /** Removed liquidity after firm order commitment\n        An order that was submitted for continuous trading that required a firm order commit prior to execution. \"Conditional order\" is an alternate term used for such orders. */\n    RemovedLiquidityAfterFirmOrderCommitment: 8,\n    /** Auction execution after firm order commitment\n        An order that was submitted for auction trading that required a firm order commit prior to execution. \"Conditional order\" is an alternate term used for such orders. */\n    AuctionExecutionAfterFirmOrderCommitment: 9,\n    /** Unknown\n        The liquidity indicator of the execution cannot be determined or was not provided upon execution. */\n    Unknown: 10,\n    /** Other\n        None of the existing liquidity indicators are applicable for the execution (e.g. due to a venue's new order type that does not fit existing values). */\n    Other: 11,\n} as const);\n\nexport type LastLiquidityInd = (typeof LastLiquidityInd)[keyof typeof LastLiquidityInd];\n", "/**\n * Indicates whether this message is the last report message in response to a request message, e.g. OrderMassStatusRequest(35=AF), TradeCaptureReportRequest(35=AD).\n * - Tag: 912\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const LastRptRequested = Object.freeze({\n    /** Not last message */\n    NotLastMessage: 'N',\n    /** Last message */\n    LastMessage: 'Y',\n} as const);\n\nexport type LastRptRequested = (typeof LastRptRequested)[keyof typeof LastRptRequested];\n", "/**\n * Indicates that this message is to serve as the final and legal confirmation.\n * - Tag: 650\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const LegalConfirm = Object.freeze({\n    /** Does not consitute a Legal Confirm */\n    DoesNotConsituteALegalConfirm: 'N',\n    /** Legal Confirm */\n    LegalConfirm: 'Y',\n} as const);\n\nexport type LegalConfirm = (typeof LegalConfirm)[keyof typeof LegalConfirm];\n", "/**\n * For Fixed Income, used instead of LegOrderQty(685) to requests the respondent to calculate the quantity based on the quantity on the opposite side of the swap.\n * - Tag: 690\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const LegSwapType = Object.freeze({\n    /** Par For Par */\n    ParForPar: 1,\n    /** Modified Duration */\n    ModifiedDuration: 2,\n    /** Risk */\n    Risk: 4,\n    /** Proceeds */\n    Proceeds: 5,\n} as const);\n\nexport type LegSwapType = (typeof LegSwapType)[keyof typeof LegSwapType];\n", "/**\n * Indicates the seniority level of the lien in a loan.\n * - Tag: 1954\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const LienSeniority = Object.freeze({\n    /** Unknown */\n    Unknown: 0,\n    /** First lien */\n    FirstLien: 1,\n    /** Second lien */\n    SecondLien: 2,\n    /** Third lien */\n    ThirdLien: 3,\n} as const);\n\nexport type LienSeniority = (typeof LienSeniority)[keyof typeof LienSeniority];\n", "/**\n * Identifies the type of limit amount expressed in LastLimitAmt(1632) and LimitAmtRemaining(1633).\n * - Tag: 1631\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const LimitAmtType = Object.freeze({\n    /** Credit limit */\n    CreditLimit: 0,\n    /** Gross position limit */\n    GrossPositionLimit: 1,\n    /** Net position limit */\n    NetPositionLimit: 2,\n    /** Risk exposure limit */\n    RiskExposureLimit: 3,\n    /** Long position limit */\n    LongPositionLimit: 4,\n    /** Short position limit */\n    ShortPositionLimit: 5,\n} as const);\n\nexport type LimitAmtType = (typeof LimitAmtType)[keyof typeof LimitAmtType];\n", "/**\n * Code to identify the type of liquidity indicator.\n * - Tag: 409\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const LiquidityIndType = Object.freeze({\n    /** 5-day moving average */\n    FiveDayMovingAverage: 1,\n    /** 20-day moving average */\n    TwentyDayMovingAverage: 2,\n    /** Normal market size */\n    NormalMarketSize: 3,\n    /** Other */\n    Other: 4,\n} as const);\n\nexport type LiquidityIndType = (typeof LiquidityIndType)[keyof typeof LiquidityIndType];\n", "/**\n * Identifies the type of ListExecInst (69).\n * - Tag: 433\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ListExecInstType = Object.freeze({\n    /** Immediate */\n    Immediate: '1',\n    /** Wait for Execut Instruction (i.e. a List Execut message or phone call before proceeding with execution of the list) */\n    WaitForInstruction: '2',\n    /** Exchange/switch CIV order - Sell driven */\n    SellDriven: '3',\n    /** Exchange/switch CIV order - Buy driven, cash top-up (i.e. additional cash will be provided to fulfill the order) */\n    BuyDrivenCashTopUp: '4',\n    /** Exchange/switch CIV order - Buy driven, cash withdraw (i.e. additional cash will not be provided to fulfill the order) */\n    BuyDrivenCashWithdraw: '5',\n} as const);\n\nexport type ListExecInstType = (typeof ListExecInstType)[keyof typeof ListExecInstType];\n", "/**\n * Indicates whether instruments are pre-listed only or can also be defined via user request\n * - Tag: 1198\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ListMethod = Object.freeze({\n    /** pre-listed only */\n    PreListedOnly: 0,\n    /** user requested */\n    UserRequested: 1,\n} as const);\n\nexport type ListMethod = (typeof ListMethod)[keyof typeof ListMethod];\n", "/**\n * Code to represent the status of a list order.\n * - Tag: 431\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ListOrderStatus = Object.freeze({\n    /** In bidding process */\n    InBiddingProcess: 1,\n    /** Received for execution */\n    ReceivedForExecution: 2,\n    /** Executing */\n    Executing: 3,\n    /** Cancelling */\n    Cancelling: 4,\n    /** Alert */\n    Alert: 5,\n    /** All Done */\n    AllDone: 6,\n    /** Reject */\n    Reject: 7,\n} as const);\n\nexport type ListOrderStatus = (typeof ListOrderStatus)[keyof typeof ListOrderStatus];\n", "/**\n * Identifies the reason for rejection of a New Order List message. Note that OrdRejReason(103) is used if the rejection is based on properties of an individual order part of the List.\n * - Tag: 1386\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ListRejectReason = Object.freeze({\n    /** Broker / Exchange option */\n    BrokerCredit: 0,\n    /** Exchange closed */\n    ExchangeClosed: 2,\n    /** Too late to enter */\n    TooLateToEnter: 4,\n    /** Unknown order */\n    UnknownOrder: 5,\n    /** Duplicate Order (e.g. dupe ClOrdID) */\n    DuplicateOrder: 6,\n    /** Unsupported order characteristic */\n    UnsupportedOrderCharacteristic: 11,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type ListRejectReason = (typeof ListRejectReason)[keyof typeof ListRejectReason];\n", "/**\n * Code to represent the status type.\n * - Tag: 429\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ListStatusType = Object.freeze({\n    /** Ack */\n    Ack: 1,\n    /** Response */\n    Response: 2,\n    /** Timed */\n    Timed: 3,\n    /** Exec Started */\n    ExecStarted: 4,\n    /** All Done */\n    AllDone: 5,\n    /** Alert */\n    Alert: 6,\n} as const);\n\nexport type ListStatusType = (typeof ListStatusType)[keyof typeof ListStatusType];\n", "/**\n * If provided, then Instrument occurrence has explicitly changed\n * - Tag: 1324\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ListUpdateAction = Object.freeze({\n    /** Add */\n    Add: 'A',\n    /** Delete */\n    Delete: 'D',\n    /** Modify */\n    Modify: 'M',\n    /** Snapshot */\n    Snapshot: 'S',\n} as const);\n\nexport type ListUpdateAction = (typeof ListUpdateAction)[keyof typeof ListUpdateAction];\n", "/**\n * Specifies the type of loan when the credit default swap's reference obligation is a loan.\n * - Tag: 1955\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const LoanFacility = Object.freeze({\n    /** Bridge loan */\n    BridgeLoan: 0,\n    /** Letter of credit */\n    LetterOfCredit: 1,\n    /** Revolving loan */\n    RevolvingLoan: 2,\n    /** Swingline funding */\n    SwinglineFunding: 3,\n    /** Term loan */\n    TermLoan: 4,\n    /** Trade claim */\n    TradeClaim: 5,\n} as const);\n\nexport type LoanFacility = (typeof LoanFacility)[keyof typeof LoanFacility];\n", "/**\n * Indicates whether the broker is to locate the stock in conjunction with a short sell order.\n * - Tag: 114\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const LocateReqd = Object.freeze({\n    /** Indicates the broker is not required to locate */\n    No: 'N',\n    /** Indicates the broker is responsible for locating the stock */\n    Yes: 'Y',\n} as const);\n\nexport type LocateReqd = (typeof LocateReqd)[keyof typeof LocateReqd];\n", "/**\n * Indicates whether an order is locked and for what reason.\n * - Tag: 1807\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const LockType = Object.freeze({\n    /** Not locked */\n    NotLocked: 0,\n    /** Away market better */\n    AwayMarketNetter: 1,\n    /** Three tick locked */\n    ThreeTickLocked: 2,\n    /** Locked by market maker */\n    LockedByMarketMaker: 3,\n    /** Directed order lock */\n    DirectedOrderLock: 4,\n    /** Multileg lock\n        Lock in the context of multileg orders where legs are executed independently and the entire order is locked until matching information is available for all legs. A multileg order or quote must be matched in its entirety or not at all. For example, one of the legs may be a stock leg sent to a different execution venue that may or may not be able to fill it. */\n    MultilegLock: 5,\n    /** Market order lock */\n    MarketOrderLock: 6,\n    /** Pre-assignment lock */\n    PreAssignmentLock: 7,\n} as const);\n\nexport type LockType = (typeof LockType)[keyof typeof LockType];\n", "/**\n * Defines the lot type assigned to the order.\n * - Tag: 1093\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const LotType = Object.freeze({\n    /** Odd Lot */\n    OddLot: '1',\n    /** Round Lot */\n    RoundLot: '2',\n    /** Block Lot */\n    BlockLot: '3',\n    /** Round lot based upon UnitOfMeasure(996) */\n    RoundLotBasedUpon: '4',\n} as const);\n\nexport type LotType = (typeof LotType)[keyof typeof LotType];\n", "/**\n * Type of margin requirement amount being specified.\n * - Tag: 1644\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarginAmtType = Object.freeze({\n    /** Additional Margin\n        Component of the total margin calculation which allows the CCP to include amounts generated outside of the Margin Deficit. Additional risk charges collected when a firm is placed on higher than normal surveillance.\n        Additional margin serves to cover the additional liquidation costs that potentially could be incurred. Such possible close-out costs could arise if, based on the current market value of a portfolio, the worst case loss were to occur within a 24-hour period. It is used for options (also options on futures) and non-spread futures positions, bonds and equity trades. For bonds and equity trades, the additional margin is calculated for security positions but not for the corresponding cash positions. */\n    AdditionalMargin: 1,\n    /** Adjusted Margin\n        Unadjusted Margin can be modified to become an Adjusted Margin by assigning a specific collateral to it or by applying an exchange rate. */\n    AdjustedMargin: 2,\n    /** Unadjusted Margin\n        Calculated by adding up the options Premium Margin, the current Liquidating Margin, the Futures Spread Margin and the Additional Margin on account and currency level. */\n    UnadjustedMargin: 3,\n    /** Binary Add-On Amount\n        Requirement generated from positions in Binary Options which are considered fully margined. Margin for an individual contract in this category represents the total amount that would be paid upon delivery of a contract should it expire in-the-money. This amount is included as a component of Additional Margin in the Total Margin calculation. */\n    BinaryAddOnAmount: 4,\n    /** Cash Balance Amount\n        Information about cash balance posted to the clearing house to cover the current margin requirement. */\n    CashBalanceAmount: 5,\n    /** Concentration Margin\n        Reflects a riskier portfolio concentration when a set of closely related products is held. */\n    ConcentrationMargin: 6,\n    /** Core Margin\n        Specific basic requirement of a position. Core margin is equal to Initial Margin plus a percentage of the Variation Margin. */\n    CoreMargin: 7,\n    /** Delivery Margin\n        Margin amount calculated between the Last Trade Date or Options Exercise Date and the Delivery or Settlement Date. Can also represent a commodities or energy delivery. */\n    DeliveryMargin: 8,\n    /** Discretionary Margin\n        Unspecific margin amount added by the risk manager, also called Increase Coverage Amount. */\n    DiscretionaryMargin: 9,\n    /** Futures Spread Margin\n        Long and short positions of futures with different expiration dates can be offset against each other and are called \u201Cspreads\u201D. The remaining risk stems from the difference in expiration dates which does not provide a perfect price correlation. The purpose of Futures Spread Margin is to cover this risk until the next trading day.\n        This kind of margin is levied in order to cover those risks associated with a futures spread which could arise between today and tomorrow. */\n    FuturesSpreadMargin: 10,\n    /** Initial Margin\n        The initial amount required to cover the position. */\n    InitialMargin: 11,\n    /** Liquidating Margin\n        Calculated for cash, bond and equity positions and is equal to the profits and losses in such positions at the time of calculation. This margin protects the CCP if it is required to close out the position at the current/EOD price.\n        The liquidating margin (also called Current Liquidating Margin or Net Liquidating Margin) is paid by the buyer or the seller of the bonds. This margin covers losses that would occur if a position were to be liquidated today. The liquidating margin is adjusted daily similar to premium margin. */\n    LiquidatingMargin: 12,\n    /** Margin Call Amount\n        If the collateral that has been deposited is no longer sufficient, meaning a lack of coverage exists, then the market participant will be called upon to provide additional cash as collateral. */\n    MarginCallAmount: 13,\n    /** Margin Deficit Amount (Shortfall)\n        Base margin risk charge. This amount represents anticipated losses should the value of a portfolio (all positions in the account) fall below predefined level of Historical Value-at-Risk confidence. Also called Expected Shortfall Amount. */\n    MarginDeficitAmount: 14,\n    /** Margin Excess Amount (Surplus)\n        Excess long premium value which is generated when long premium value exceeds the sum of any short premium debit requirement and the account's risk charges. Also called Expected Surplus Amount or Margin Credit Amount. */\n    MarginExcessAmount: 15,\n    /** Option Premium Amount\n        Premium registered on the given trading date.\n        The amount of money that the options buyer must pay the options seller. */\n    OptionPremiumAmount: 16,\n    /** Premium Margin\n        Premium margin must be deposited by the seller of a traditional options position. It remains effective until the exercise or expiration of the option, and covers the potential costs of a close-out (liquidation) of the position of the seller at the settlement price. */\n    PremiumMargin: 17,\n    /** Reserve Margin\n        Reserve margin provides a way to reflect the inflated risk of a position. Reserve margin is equal to a percentage of the variation margin. */\n    ReserveMargin: 18,\n    /** Security Collateral Amount\n        Information about the security collateral posted to the clearing house to cover the current margin requirement. */\n    SecurityCollateralAmount: 19,\n    /** Stress Test Add-On Amount\n        Amount in addition to Margin Deficit in the Risk component of the margin calculation. This charge is based on tests which incorporate changes to distributional and confidence level assumptions to evaluate exposure to security concentration and changes in dependence structure; a predetermined percentage of the calculated exposure is collateralized as this charge. */\n    StressTestAddOnAmount: 20,\n    /** Super Margin\n        Additional risk charge applied to predetermined Cross-Margin accounts. The charge is based on the account's level of Margin Deficit. This amount is included as a component of Additional Margin in the Total Margin calculation. */\n    SuperMargin: 21,\n    /** Total Margin\n        Sum of all margin amounts at value date. */\n    TotalMargin: 22,\n    /** Variation Margin\n        Variation margin (also called Contingent Variation Margin or Maintenance Margin) is the daily Profit and Loss (P&L) on Open Positions for the given trading date. The current price is compared to the previous day's price.\n        Variation margin (a daily offsetting of profits and losses) occurs as a result of the mark-to-market procedure used for futures and options on futures. */\n    VariationMargin: 23,\n    /** Secondary Variation Margin\n        Variation margin on Option Positions that is calculated based on the market movement. This will be used by CCPs wanting to report the variation for Options and Futures separately. */\n    SecondaryVariationMargin: 24,\n    /** Rolled up margin deficit */\n    RolledUpMarginDeficit: 25,\n    /** Spread response margin\n        Risk factor component associated with spread moves, curve shape changes and recovery rates. */\n    SpreadResponseMargin: 26,\n    /** Systemic risk margin\n        Risk factor component to capture parallel shift of credit spreads. */\n    SystemicRiskMargin: 27,\n    /** Curve risk margin\n        Risk factor captures curve shifts based on portfolio. */\n    CurveRiskMargin: 28,\n    /** Index spread risk margin\n        Risk factor component associated with risks due to widening/tightening spreads of CDS indices relative to each other. */\n    IndexSpreadRiskMargin: 29,\n    /** Sector risk margin\n        Risk factor component to capture sector risk. */\n    SectorRiskMargin: 30,\n    /** Jump-to-default risk margin\n        Risk factor component to capture extreme widening of credit spreads of a reference entity. Also known as Idiosyncratic Risk. */\n    JumpToDefaultRiskMargin: 31,\n    /** Basis risk margin\n        Risk factor component to capture basis risk between index and index constituent reference entities. */\n    BasisRiskMargin: 32,\n    /** Interest rate risk margin\n        Risk factor component associated with parallel shift movements in interest rates. */\n    InterestRateRiskMargin: 33,\n    /** Jump-to-health risk margin\n        Risk factor component to capture extreme narrowing of credit spreads of a reference entity. Also known as Idiosyncratic Risk. */\n    JumpToHealthRiskMargin: 34,\n    /** Other risk margin\n        Any other risk factors include in the Margin Model. */\n    OtherRiskMargin: 35,\n} as const);\n\nexport type MarginAmtType = (typeof MarginAmtType)[keyof typeof MarginAmtType];\n", "/**\n * Indicates whether the margin described is posted or received.\n * - Tag: 2851\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarginDirection = Object.freeze({\n    /** Posted\n        The party or account that is the object of the report posted margin. */\n    Posted: 0,\n    /** Received\n        The party or account that is the object of the report received margin. */\n    Received: 1,\n} as const);\n\nexport type MarginDirection = (typeof MarginDirection)[keyof typeof MarginDirection];\n", "/**\n * Qualifier for MarginRequirementInquiry to identify a specific report.\n * - Tag: 1637\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarginReqmtInqQualifier = Object.freeze({\n    /** Summary */\n    Summary: 0,\n    /** Detail */\n    Detail: 1,\n    /** Excess/Deficit */\n    ExcessDeficit: 2,\n    /** Net Position */\n    NetPosition: 3,\n} as const);\n\nexport type MarginReqmtInqQualifier = (typeof MarginReqmtInqQualifier)[keyof typeof MarginReqmtInqQualifier];\n", "/**\n * Result returned in response to MarginRequirementInquiry.\n * - Tag: 1641\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarginReqmtInqResult = Object.freeze({\n    /** Successful (default) */\n    Successful: 0,\n    /** Invalid or unknown instrument */\n    InvalidOrUnknownInstrument: 1,\n    /** Invalid or unknown margin class */\n    InvalidOrUnknownMarginClass: 2,\n    /** Invalid Parties */\n    InvalidParties: 3,\n    /** Invalid Transport Type requested */\n    InvalidTransportTypeReq: 4,\n    /** Invalid Destination requested */\n    InvalidDestinationReq: 5,\n    /** No margin requirement found */\n    NoMarginReqFound: 6,\n    /** Margin requirement inquiry qualifier not supported */\n    MarginReqInquiryQualifierNotSupported: 7,\n    /** Unauthorized for margin requirement inquiry */\n    UnauthorizedForMarginReqInquiry: 8,\n    /** Other (further information in Text (58) field) */\n    Other: 99,\n} as const);\n\nexport type MarginReqmtInqResult = (typeof MarginReqmtInqResult)[keyof typeof MarginReqmtInqResult];\n", "/**\n * Type of MarginRequirementReport.\n * - Tag: 1638\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarginReqmtRptType = Object.freeze({\n    /** Summary */\n    Summary: 0,\n    /** Detail */\n    Detail: 1,\n    /** Excess/Deficit */\n    ExcessDeficit: 2,\n} as const);\n\nexport type MarginReqmtRptType = (typeof MarginReqmtRptType)[keyof typeof MarginReqmtRptType];\n", "/**\n * Market condition. In the context of ESMA RTS 8 it is important that trading venues communicate the condition of the market, particularly \"stressed\" and \"exceptional\", in order to provide incentives for firms contributing to liquidity.\n * - Tag: 2705\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarketCondition = Object.freeze({\n    /** Normal\n        The condition of the market in the absence of \"stressed\" or \"exceptional\" conditions. */\n    Normal: 0,\n    /** Stressed\n        In the context of ESMA RTS 8 Article 6: Trading venues shall set out the parameters to identify stressed market conditions in terms of significant short-term changes of price and volume. Trading venues shall consider the resumption of trading after volatility interruptions as stressed market conditions. */\n    Stressed: 1,\n    /** Exceptional\n        In the context of ESMA RTS 8 Article 3: Due to (a) a situation of extreme volatility; (b) war, industrial action, civil unrest or cyber sabotage; (c) disorderly trading conditions, e.g. due to technical issues; (d) unavailability of risk management facilities. */\n    Exceptional: 2,\n} as const);\n\nexport type MarketCondition = (typeof MarketCondition)[keyof typeof MarketCondition];\n", "/**\n * Specifies the location of the fallback provision documentation.\n * - Tag: 41088\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarketDisruptionFallbackProvision = Object.freeze({\n    /** As specified in master agreement */\n    MasterAgreement: 0,\n    /** As specified in confirmation */\n    Confirmation: 1,\n} as const);\n\nexport type MarketDisruptionFallbackProvision =\n    (typeof MarketDisruptionFallbackProvision)[keyof typeof MarketDisruptionFallbackProvision];\n", "/**\n * The type of reference price underlier.\n * - Tag: 41097\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarketDisruptionFallbackUnderlierType = Object.freeze({\n    /** Basket */\n    Basket: 0,\n    /** Bond */\n    Bond: 1,\n    /** Cash */\n    Cash: 2,\n    /** Commodity */\n    Commodity: 3,\n    /** Convertible bond */\n    ConvertibleBond: 4,\n    /** Equity */\n    Equity: 5,\n    /** Exchange traded fund */\n    ExchangeTradedFund: 6,\n    /** Future */\n    Future: 7,\n    /** Index */\n    Index: 8,\n    /** Loan */\n    Loan: 9,\n    /** Mortgage */\n    Mortgage: 10,\n    /** Mutual fund */\n    MutualFund: 11,\n} as const);\n\nexport type MarketDisruptionFallbackUnderlierType =\n    (typeof MarketDisruptionFallbackUnderlierType)[keyof typeof MarketDisruptionFallbackUnderlierType];\n", "/**\n * The consequences of market disruption events.\n * - Tag: 41087\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarketDisruptionProvision = Object.freeze({\n    /** Not applicable */\n    NotApplicable: 0,\n    /** Applicable */\n    Applicable: 1,\n    /** As specified in master agreement */\n    AsInMasterAgreement: 2,\n    /** As specified in confirmation */\n    AsInConfirmation: 3,\n} as const);\n\nexport type MarketDisruptionProvision = (typeof MarketDisruptionProvision)[keyof typeof MarketDisruptionProvision];\n", "/**\n * Indicates market maker participation in security.\n * - Tag: 1655\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarketMakerActivity = Object.freeze({\n    /** No participation */\n    NoParticipation: 0,\n    /** Buy participation */\n    BuyParticipation: 1,\n    /** Sell participation */\n    SellParticipation: 2,\n    /** Both buy and sell participation */\n    BothBuyAndSellParticipation: 3,\n} as const);\n\nexport type MarketMakerActivity = (typeof MarketMakerActivity)[keyof typeof MarketMakerActivity];\n", "/**\n * Type of relationship between two or more market segments.\n * - Tag: 2547\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarketSegmentRelationship = Object.freeze({\n    /** Market segment pool member\n        Market segments represent constituents of the pool identified. */\n    MarketSegmentPoolMember: 1,\n    /** Retail segment\n        Retail segment related to wholesale segment identified. */\n    RetailSegment: 2,\n    /** Wholesale segment\n        Wholesale segment related to retail segment identified. */\n    WholesaleSegment: 3,\n} as const);\n\nexport type MarketSegmentRelationship = (typeof MarketSegmentRelationship)[keyof typeof MarketSegmentRelationship];\n", "/**\n * Status of market segment.\n * - Tag: 2542\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarketSegmentStatus = Object.freeze({\n    /** Active\n        Market segment is active, i.e. trading is possible. */\n    Active: 1,\n    /** Inactive\n        Market segment has previously been active and is now inactive. */\n    Inactive: 2,\n    /** Published\n        Market segment information is provided prior to its first activation. */\n    Published: 3,\n} as const);\n\nexport type MarketSegmentStatus = (typeof MarketSegmentStatus)[keyof typeof MarketSegmentStatus];\n", "/**\n * Used to further categorize market segments within a MarketSegmentType(2543).\n * - Tag: 2544\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarketSegmentSubType = Object.freeze({\n    /** Inter-product spread\n        Complex instruments which consist of leg instruments from different products, e.g. a location spread which include country-specific products in each leg instrument. */\n    InterProductSpread: 1,\n} as const);\n\nexport type MarketSegmentSubType = (typeof MarketSegmentSubType)[keyof typeof MarketSegmentSubType];\n", "/**\n * Used to classify the type of market segment.\n * - Tag: 2543\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MarketSegmentType = Object.freeze({\n    /** Pool\n        Used when multiple market segments are being grouped or pooled together. */\n    Pool: 1,\n    /** Retail */\n    Retail: 2,\n    /** Wholesale */\n    Wholesale: 3,\n} as const);\n\nexport type MarketSegmentType = (typeof MarketSegmentType)[keyof typeof MarketSegmentType];\n", "/**\n * Reason for submission of mass action.\n * - Tag: 2675\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MassActionReason = Object.freeze({\n    /** No special reason (default) */\n    None: 0,\n    /** Trading risk control\n        General violation of trading rules. Can be used if specific reason is unavailable or must not be disclosed. */\n    TradingRiskControl: 1,\n    /** Clearing risk control\n        General violation of clearing rules. Can be used if specific reason is unavailable or must not be disclosed. */\n    ClearingRiskControl: 2,\n    /** Market maker protection\n        Specific action taken to prevent further executions for a market maker. */\n    MarketMakerProtection: 3,\n    /** Stop trading\n        Specific action taken in conjunction with the prevention of further trading. Scope can be defined with TargetParties component. */\n    StopTrading: 4,\n    /** Emergency action\n        Specific action taken due to an emergency condition. Scope can be defined with TargetParties component. */\n    EmergencyAction: 5,\n    /** Session loss or logout\n        Protection of trader or firm after having lost connectivity. */\n    SessionLossLogout: 6,\n    /** Duplicate login\n        Trader only allowed to login once. */\n    DuplicateLogin: 7,\n    /** Product not traded\n        Product not available for trading, e.g. in a halted state. */\n    ProductNotTraded: 8,\n    /** Instrument not traded\n        Instrument not available for trading, e.g. due to intra-day expiration. */\n    InstrumentNotTraded: 9,\n    /** Complex instrument deleted\n        Removal of complex instrument, e.g. due to expiry, leading to mass action on open orders. */\n    CompleInstrumentDeleted: 10,\n    /** Circuit breaker activated\n        Trading interruption leading to mass action on open orders. */\n    CircuitBreakerActivated: 11,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type MassActionReason = (typeof MassActionReason)[keyof typeof MassActionReason];\n", "/**\n * Reason Order Mass Action Request was rejected\n * - Tag: 1376\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MassActionRejectReason = Object.freeze({\n    /** Mass action not supported */\n    MassActionNotSupported: 0,\n    /** Invalid or unknown security */\n    InvalidOrUnknownSecurity: 1,\n    /** Invalid or unknown underlying security */\n    InvalidOrUnknownUnderlyingSecurity: 2,\n    /** Invalid or unknown product */\n    InvalidOrUnknownProduct: 3,\n    /** Invalid or unknown CFI Code */\n    InvalidOrUnknownCFICode: 4,\n    /** Invalid or unknown security type */\n    InvalidOrUnknownSecurityType: 5,\n    /** Invalid or unknown trading session */\n    InvalidOrUnknownTradingSession: 6,\n    /** Invalid or unknown market */\n    InvalidOrUnknownMarket: 7,\n    /** Invalid or unknown market segment */\n    InvalidOrUnknownMarketSegment: 8,\n    /** Invalid or unknown security group */\n    InvalidOrUnknownSecurityGroup: 9,\n    /** Invalid or unknown issuer */\n    InvalidOrUnknownSecurityIssuer: 10,\n    /** Invalid or unknown issuer of underlying security */\n    InvalidOrUnknownIssuerOfUnderlyingSecurity: 11,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type MassActionRejectReason = (typeof MassActionRejectReason)[keyof typeof MassActionRejectReason];\n", "/**\n * Specifies the action taken by counterparty order handling system as a result of the action type indicated in MassActionType of the Order Mass Action Request.\n * - Tag: 1375\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MassActionResponse = Object.freeze({\n    /** Rejected - See MassActionRejectReason(1376) */\n    Rejected: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Completed */\n    Completed: 2,\n} as const);\n\nexport type MassActionResponse = (typeof MassActionResponse)[keyof typeof MassActionResponse];\n", "/**\n * Specifies scope of Order Mass Action Request.\n * - Tag: 1374\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MassActionScope = Object.freeze({\n    /** All orders for a security */\n    AllOrdersForASecurity: 1,\n    /** All orders for an underlying security */\n    AllOrdersForAnUnderlyingSecurity: 2,\n    /** All orders for a product */\n    AllOrdersForAProduct: 3,\n    /** All orders for a CFI Code */\n    AllOrdersForACFICode: 4,\n    /** All orders for a security type */\n    AllOrdersForASecurityType: 5,\n    /** All orders for a trading session */\n    AllOrdersForATradingSession: 6,\n    /** All orders */\n    AllOrders: 7,\n    /** All orders for a market */\n    AllOrdersForAMarket: 8,\n    /** All orders for a market segment (or multiple segments) */\n    AllOrdersForAMarketSegment: 9,\n    /** All orders for a security group */\n    AllOrdersForASecurityGroup: 10,\n    /** All orders for an issuer */\n    CancelForSecurityIssuer: 11,\n    /** All orders for an issuer of underlying security */\n    CancelForIssuerOfUnderlyingSecurity: 12,\n} as const);\n\nexport type MassActionScope = (typeof MassActionScope)[keyof typeof MassActionScope];\n", "/**\n * Specifies the type of action requested\n * - Tag: 1373\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MassActionType = Object.freeze({\n    /** Suspend orders */\n    SuspendOrders: 1,\n    /** Release orders from suspension */\n    ReleaseOrdersFromSuspension: 2,\n    /** Cancel orders */\n    CancelOrders: 3,\n} as const);\n\nexport type MassActionType = (typeof MassActionType)[keyof typeof MassActionType];\n", "/**\n * Reason Order Mass Cancel Request was rejected\n * - Tag: 532\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MassCancelRejectReason = Object.freeze({\n    /** Mass Cancel Not Supported */\n    MassCancelNotSupported: 0,\n    /** Invalid or unknown security */\n    InvalidOrUnknownSecurity: 1,\n    /** Invalid or unknown underlying security */\n    InvalidOrUnknownUnderlyingSecurity: 2,\n    /** Invalid or unknown product */\n    InvalidOrUnknownProduct: 3,\n    /** Invalid or unknown CFI Code */\n    InvalidOrUnknownCFICode: 4,\n    /** Invalid or unknown security type */\n    InvalidOrUnknownSecurityType: 5,\n    /** Invalid or unknown trading session */\n    InvalidOrUnknownTradingSession: 6,\n    /** Invalid or unknown market */\n    InvalidOrUnknownMarket: 7,\n    /** Invalid or unknown market segment */\n    InvalidOrUnkownMarketSegment: 8,\n    /** Invalid or unknown security group */\n    InvalidOrUnknownSecurityGroup: 9,\n    /** Invalid or unknown security issuer */\n    InvalidOrUnknownSecurityIssuer: 10,\n    /** Invalid or unknown issuer of underlying security */\n    InvalidOrUnknownIssuerOfUnderlyingSecurity: 11,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type MassCancelRejectReason = (typeof MassCancelRejectReason)[keyof typeof MassCancelRejectReason];\n", "/**\n * Specifies scope of Order Mass Cancel Request.\n * - Tag: 530\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MassCancelRequestType = Object.freeze({\n    /** Cancel orders for a security */\n    CancelOrdersForASecurity: '1',\n    /** Cancel orders for an underlying security */\n    CancelOrdersForAnUnderlyingSecurity: '2',\n    /** Cancel orders for a product */\n    CancelOrdersForAProduct: '3',\n    /** Cancel orders for a CFICode */\n    CancelOrdersForACFICode: '4',\n    /** Cancel orders for a security type */\n    CancelOrdersForASecurityType: '5',\n    /** Cancel orders for a trading session */\n    CancelOrdersForATradingSession: '6',\n    /** Cancel all orders */\n    CancelAllOrders: '7',\n    /** Cancel orders for a market */\n    CancelOrdersForAMarket: '8',\n    /** Cancel orders for a market segment */\n    CancelOrdersForAMarketSegment: '9',\n    /** Cancel orders for a security group */\n    CancelOrdersForASecurityGroup: 'A',\n    /** Cancel orders for an issuer */\n    CancelOrdersForSecurityIssuer: 'B',\n    /** Cancel orders for an issuer of underlying security */\n    CancelForIssuerOfUnderlyingSecurity: 'C',\n} as const);\n\nexport type MassCancelRequestType = (typeof MassCancelRequestType)[keyof typeof MassCancelRequestType];\n", "/**\n * Specifies the action taken by counterparty order handling system as a result of the Order Mass Cancel Request\n * - Tag: 531\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MassCancelResponse = Object.freeze({\n    /** Cancel Request Rejected - See MassCancelRejectReason (532) */\n    CancelRequestRejected: '0',\n    /** Cancel orders for a security */\n    CancelOrdersForASecurity: '1',\n    /** Cancel orders for an underlying security */\n    CancelOrdersForAnUnderlyingSecurity: '2',\n    /** Cancel orders for a product */\n    CancelOrdersForAProduct: '3',\n    /** Cancel orders for a CFI Code */\n    CancelOrdersForACFICode: '4',\n    /** Cancel orders for a security type */\n    CancelOrdersForASecurityType: '5',\n    /** Cancel orders for a trading session */\n    CancelOrdersForATradingSession: '6',\n    /** Cancel all orders */\n    CancelAllOrders: '7',\n    /** Cancel orders for a market */\n    CancelOrdersForAMarket: '8',\n    /** Cancel orders for a market segment */\n    CancelOrdersForAMarketSegment: '9',\n    /** Cancel orders for a security group */\n    CancelOrdersForASecurityGroup: 'A',\n    /** Cancel orders for an issuer */\n    CancelOrdersForASecuritiesIssuer: 'B',\n    /** Cancel orders for an issuer of underlying security */\n    CancelOrdersForIssuerOfUnderlyingSecurity: 'C',\n} as const);\n\nexport type MassCancelResponse = (typeof MassCancelResponse)[keyof typeof MassCancelResponse];\n", "/**\n * Request result of mass order request.\n * - Tag: 2426\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MassOrderRequestResult = Object.freeze({\n    /** Successful */\n    Successful: 0,\n    /** Response level not supported */\n    ResponseLevelNotSupported: 1,\n    /** Invalid market */\n    InvalidMarket: 2,\n    /** Invalid market segment */\n    InvalidMarketSegment: 3,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type MassOrderRequestResult = (typeof MassOrderRequestResult)[keyof typeof MassOrderRequestResult];\n", "/**\n * Status of mass order request.\n * - Tag: 2425\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MassOrderRequestStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 1,\n    /** Accepted with additional events */\n    AcceptedWithAdditionalEvents: 2,\n    /** Rejected */\n    Rejected: 3,\n} as const);\n\nexport type MassOrderRequestStatus = (typeof MassOrderRequestStatus)[keyof typeof MassOrderRequestStatus];\n", "/**\n * Specifies the type or scope of the mass order status request.\n * - Tag: 585\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MassStatusReqType = Object.freeze({\n    /** Status for orders for a security */\n    StatusForOrdersForASecurity: 1,\n    /** Status for orders for an underlying security */\n    StatusForOrdersForAnUnderlyingSecurity: 2,\n    /** Status for orders for a product */\n    StatusForOrdersForAProduct: 3,\n    /** Status for orders for a CFI Code */\n    StatusForOrdersForACFICode: 4,\n    /** Status for orders for a security type */\n    StatusForOrdersForASecurityType: 5,\n    /** Status for orders for a trading session */\n    StatusForOrdersForATradingSession: 6,\n    /** Status for all orders */\n    StatusForAllOrders: 7,\n    /** Status for orders for a party identifier */\n    StatusForOrdersForAPartyID: 8,\n    /** Status for orders for an issuer */\n    StatusForSecurityIssuer: 9,\n    /** Status for orders for an issuer of underlying security */\n    StatusForIssuerOfUnderlyingSecurity: 10,\n} as const);\n\nexport type MassStatusReqType = (typeof MassStatusReqType)[keyof typeof MassStatusReqType];\n", "/**\n * Identifies the data point used in the matching operation which resulted in an exception.\n * - Tag: 2774\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MatchExceptionElementType = Object.freeze({\n    /** Accrued interest */\n    AccruedInterest: 1,\n    /** Deal price */\n    DealPrice: 2,\n    /** Trade date\n        Tolerance not applicable */\n    TradeDate: 3,\n    /** Settlement date\n        Tolerance not applicable */\n    SettlementDate: 4,\n    /** Side indicator\n        Tolerance not applicable */\n    SideIndicator: 5,\n    /** Traded currency\n        Tolerance not applicable */\n    TradedCurrency: 6,\n    /** Account ID\n        Tolerance not applicable */\n    AccountID: 7,\n    /** Executing broker ID\n        Tolerance not applicable */\n    ExecutingBrokerID: 8,\n    /** Settlement currency and amount */\n    SettlementCurrencyAndAmount: 9,\n    /** Investment manager ID\n        Tolerance not applicable */\n    InvestmentManagerID: 10,\n    /** Net amount */\n    NetAmount: 11,\n    /** Place of settlement\n        Tolerance not applicable */\n    PlaceOfSettlement: 12,\n    /** Commissions */\n    Commissions: 13,\n    /** Security identifier\n        Tolerance not applicable */\n    SecurityIdentifier: 14,\n    /** Quantity allocated */\n    QualityAllocated: 15,\n    /** Principal */\n    Principal: 16,\n    /** Fees */\n    Fees: 17,\n    /** Tax */\n    Tax: 18,\n} as const);\n\nexport type MatchExceptionElementType = (typeof MatchExceptionElementType)[keyof typeof MatchExceptionElementType];\n", "/**\n * The type of value in MatchExceptionToleranceValue(2778). Omitted if no tolerance is allowed or not applicable.\n    For example, if the tolerance for accrued interest is 0.01% of total accrued interest then MatchExceptionElementType(2774)=1 (Accrued interest), MatchExceptionToleranceValueType(2779)=2 (Percentage) and MatchExcecptionToleranceValue(2778)=0.0001. If tolerance for the exchange rate of an FX trade is \"0.001\" then MatchExceptionElementType(2774)=2 (Deal pPrice), MatchExceptionToleranceValueType(2779)=1 (Fixed amount) and MatchExcecptionToleranceValue(2778)=0.001.\n * - Tag: 2779\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MatchExceptionToleranceValueType = Object.freeze({\n    /** Fixed amount\n        Default if not specified */\n    FixedAmount: 1,\n    /** Percentage */\n    Percentage: 2,\n} as const);\n\nexport type MatchExceptionToleranceValueType =\n    (typeof MatchExceptionToleranceValueType)[keyof typeof MatchExceptionToleranceValueType];\n", "/**\n * Type of matching exception.\n * - Tag: 2773\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MatchExceptionType = Object.freeze({\n    /** No matching confirmation */\n    NoMatchingConfirmation: 0,\n    /** No matching allocation */\n    NoMatchingAllocation: 1,\n    /** Allocation data element missing */\n    AllocationDataElementMissing: 2,\n    /** Confirmation data element missing */\n    ConfirmationDataElementMissing: 3,\n    /** Data difference not within tolerance */\n    DataDifferenceNotWithinTolerance: 4,\n    /** Match within tolerance */\n    MatchWithinTolerance: 5,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type MatchExceptionType = (typeof MatchExceptionType)[keyof typeof MatchExceptionType];\n", "/**\n * Matching Instruction for the order.\n * - Tag: 1625\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MatchInst = Object.freeze({\n    /** Match */\n    Match: 1,\n    /** Do Not Match */\n    DoNotMatch: 2,\n} as const);\n\nexport type MatchInst = (typeof MatchInst)[keyof typeof MatchInst];\n", "/**\n * Data point's matching type.\n * - Tag: 2782\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MatchingDataPointIndicator = Object.freeze({\n    /** Mandatory */\n    Mandatory: 1,\n    /** Optional */\n    Optional: 2,\n} as const);\n\nexport type MatchingDataPointIndicator = (typeof MatchingDataPointIndicator)[keyof typeof MatchingDataPointIndicator];\n", "/**\n * The status of this trade with respect to matching or comparison.\n * - Tag: 573\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MatchStatus = Object.freeze({\n    /** Compared, matched or affirmed */\n    Compared: '0',\n    /** Uncompared, unmatched, or unaffirmed */\n    Uncompared: '1',\n    /** Advisory or alert */\n    AdvisoryOrAlert: '2',\n    /** Mismatched\n        Indicates that data points from the AllocationInstruction(35=J) and Confirmation(35=AK) are matched but there are variances. MatchExceptionGrp component may be used to detail on the mis-matched data fields. */\n    Mismatched: '3',\n} as const);\n\nexport type MatchStatus = (typeof MatchStatus)[keyof typeof MatchStatus];\n", "/**\n * The point in the matching process at which this trade was matched.\n * - Tag: 574\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MatchType = Object.freeze({\n    /** Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator plus four badges and execution time (within two-minute window) */\n    ExactMatchPlus4BadgesExecTime: 'A1',\n    /** Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator, plus four badges */\n    ExactMatchPlus4Badges: 'A2',\n    /** ACT Accepted Trade */\n    ACTAcceptedTrade: 'M3',\n    /** Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator, plus two badges and execution time (within two-minute window) */\n    ExactMatchPlus2BadgesExecTime: 'A3',\n    /** ACT Default Trade */\n    ACTDefaultTrade: 'M4',\n    /** Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator, plus two badges */\n    ExactMatchPlus2Badges: 'A4',\n    /** ACT Default After M2 */\n    ACTDefaultAfterM2: 'M5',\n    /** Exact match on Trade Date, Stock Symbol, Quantity, Price, TradeType, and Special Trade Indicator plus execution time (within two-minute window) */\n    ExactMatchPlusExecTime: 'A5',\n    /** ACT M6 Match */\n    ACTM6Match: 'M6',\n    /** Compared records resulting from stamped advisories or specialist accepts/pair-offs */\n    StampedAdvisoriesOrSpecialistAccepts: 'AQ',\n    /** Summarized match using A1 exact match criteria except quantity is summaried */\n    A1ExactMatchSummarizedQuantity: 'S1',\n    /** Summarized match using A2 exact match criteria except quantity is summarized */\n    A2ExactMatchSummarizedQuantity: 'S2',\n    /** Summarized match using A3 exact match criteria except quantity is summarized */\n    A3ExactMatchSummarizedQuantity: 'S3',\n    /** Summarized match using A4 exact match criteria except quantity is summarized */\n    A4ExactMatchSummarizedQuantity: 'S4',\n    /** Summarized match using A5 exact match criteria except quantity is summarized */\n    A5ExactMatchSummarizedQuantity: 'S5',\n    /** Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator minus badges And times: ACT M1 match */\n    ExactMatchMinusBadgesTimes: 'M1',\n    /** Summarized match minus badges and times: ACT M2 Match */\n    SummarizedMatchMinusBadgesTimes: 'M2',\n    /** OCS Locked In: Non-ACT */\n    OCSLockedIn: 'MT',\n    /** One-Party Trade Report (privately negotiated trade) */\n    OnePartyTradeReport: '1',\n    /** Two-Party Trade Report (privately negotiated trade) */\n    TwoPartyTradeReport: '2',\n    /** Confirmed Trade Report (reporting from recognized markets) */\n    ConfirmedTradeReport: '3',\n    /** Auto-match */\n    AutoMatch: '4',\n    /** Cross Auction */\n    CrossAuction: '5',\n    /** Counter-Order Selection */\n    CounterOrderSelection: '6',\n    /** Call Auction */\n    CallAuction: '7',\n    /** Issuing/Buy Back Auction */\n    Issuing: '8',\n    /** Systematic Internaliser (SI) */\n    SystematicInternaliser: '9',\n    /** Auto-match with last look\n        Execution that arises from a match against orders or quotes which require a confirmation during continuous trading. */\n    AutoMatchLastLook: '10',\n    /** Cross auction with last look\n        Execution that arises from a match against orders or quotes which require a confirmation during an auction. */\n    CrossAuctionLastLook: '11',\n} as const);\n\nexport type MatchType = (typeof MatchType)[keyof typeof MatchType];\n", "/**\n * Format used to generate the MaturityMonthYear for each option\n * - Tag: 1303\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MaturityMonthYearFormat = Object.freeze({\n    /** YearMonth Only (default) */\n    YearMonthOnly: 0,\n    /** YearMonthDay */\n    YearMonthDay: 1,\n    /** YearMonthWeek */\n    YearMonthWeek: 2,\n} as const);\n\nexport type MaturityMonthYearFormat = (typeof MaturityMonthYearFormat)[keyof typeof MaturityMonthYearFormat];\n", "/**\n * Unit of measure for the Maturity Month Year Increment\n * - Tag: 1302\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MaturityMonthYearIncrementUnits = Object.freeze({\n    /** Months */\n    Months: 0,\n    /** Days */\n    Days: 1,\n    /** Weeks */\n    Weeks: 2,\n    /** Years */\n    Years: 3,\n} as const);\n\nexport type MaturityMonthYearIncrementUnits =\n    (typeof MaturityMonthYearIncrementUnits)[keyof typeof MaturityMonthYearIncrementUnits];\n", "/**\n * Describes the type of book for which the feed is intended. Used when multiple feeds are provided over the same connection\n * - Tag: 1021\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDBookType = Object.freeze({\n    /** Top of Book */\n    TopOfBook: 1,\n    /** Price Depth */\n    PriceDepth: 2,\n    /** Order Depth */\n    OrderDepth: 3,\n} as const);\n\nexport type MDBookType = (typeof MDBookType)[keyof typeof MDBookType];\n", "/**\n * Indicates the acceptance status of a market data entry.\n * - Tag: 3106\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDEntryStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Accepted with errors\n        In the context of the EU Consolidated Tape, this is used to identify suspicious data that may be flagged as such with MDQualityIndicator(3105) when forwarded from the CTP to the data user. */\n    AcceptedWithErrors: 1,\n    /** Rejected */\n    Rejected: 2,\n} as const);\n\nexport type MDEntryStatus = (typeof MDEntryStatus)[keyof typeof MDEntryStatus];\n", "/**\n * Type of market data entry.\n * - Tag: 269\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MDEntryType = Object.freeze({\n    /** Bid */\n    Bid: '0',\n    /** Offer */\n    Offer: '1',\n    /** Trade */\n    Trade: '2',\n    /** Index value\n        A reference stock index (e.g. DJIA) or benchmark rate (e.g. LIBOR). */\n    IndexValue: '3',\n    /** Opening price */\n    OpeningPrice: '4',\n    /** Closing price */\n    ClosingPrice: '5',\n    /** Settlement price */\n    SettlementPrice: '6',\n    /** Trading session high price */\n    TradingSessionHighPrice: '7',\n    /** Trading session low price */\n    TradingSessionLowPrice: '8',\n    /** Volume Weighted Average Price\n        VWAP */\n    VWAP: '9',\n    /** Imbalance */\n    Imbalance: 'A',\n    /** Trade volume */\n    TradeVolume: 'B',\n    /** Open interest */\n    OpenInterest: 'C',\n    /** Composite underlying price */\n    CompositeUnderlyingPrice: 'D',\n    /** Simulated sell price */\n    SimulatedSellPrice: 'E',\n    /** Simulated buy price */\n    SimulatedBuyPrice: 'F',\n    /** Margin rate */\n    MarginRate: 'G',\n    /** Mid-price */\n    MidPrice: 'H',\n    /** Empty book */\n    EmptyBook: 'J',\n    /** Settle high price */\n    SettleHighPrice: 'K',\n    /** Settle low price */\n    SettleLowPrice: 'L',\n    /** Prior settle price */\n    PriorSettlePrice: 'M',\n    /** Session high bid */\n    SessionHighBid: 'N',\n    /** Session low offer */\n    SessionLowOffer: 'O',\n    /** Early prices */\n    EarlyPrices: 'P',\n    /** Auction clearing price */\n    AuctionClearingPrice: 'Q',\n    /** Swap Value Factor (SVF) for swaps cleared through a central counterparty (CCP) */\n    SwapValueFactor: 'S',\n    /** Daily value adjustment for long positions */\n    DailyValueAdjustmentForLongPositions: 'R',\n    /** Cumulative value adjustment for long positions */\n    CumulativeValueAdjustmentForLongPositions: 'T',\n    /** Daily value adjustment for short positions */\n    DailyValueAdjustmentForShortPositions: 'U',\n    /** Cumulative value adjustment for short positions */\n    CumulativeValueAdjustmentForShortPositions: 'V',\n    /** Fixing price */\n    FixingPrice: 'W',\n    /** Cash rate */\n    CashRate: 'X',\n    /** Recovery rate */\n    RecoveryRate: 'Y',\n    /** Recovery rate for long positions */\n    RecoveryRateForLong: 'Z',\n    /** Recovery rate for short positions */\n    RecoveryRateForShort: 'a',\n    /** Market bid */\n    MarketBid: 'b',\n    /** Market offer */\n    MarketOffer: 'c',\n    /** Short sale minimum price */\n    ShortSaleMinPrice: 'd',\n    /** Previous closing price */\n    PreviousClosingPrice: 'e',\n    /** Corporate action reference price\n        Signifies a change to a reference price, such as settlement price or closing price, due to a corporate action event. */\n    CorporateActionReferencePrice: 'f',\n    /** Threshold limits and price banding\n        Conveys incremental real time change to pre-configured or previously disseminated pricing thresholds and/or banding parameters. */\n    ThresholdLimitPriceBanding: 'g',\n    /** Daily financing value\n        The financing cost of rolling an analogous total return swap from the previous business day to the current business day. In the context of Adjusted Interest Rate (AIR) futures this is a component of the cleared futures price. */\n    DailyFinancingValue: 'h',\n    /** Accrued financing value\n        The total of the daily funding values or amounts from a contract's first day of trading to the current day. In the context of Adjusted Interest Rate (AIR) futures this is a component of the cleared futures price. */\n    AccruedFinancingValue: 'i',\n    /** Time Weighted Average Price\n        TWAP */\n    TWAP: 't',\n} as const);\n\nexport type MDEntryType = (typeof MDEntryType)[keyof typeof MDEntryType];\n", "/**\n * Defines how a server handles distribution of a truncated book. Defaults to broker option.\n * - Tag: 547\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MDImplicitDelete = Object.freeze({\n    /** Server must send an explicit delete for bids or offers falling outside the requested MarketDepth of the request */\n    No: 'N',\n    /** Client has responsibility for implicitly deleting bids or offers falling outside the MarketDepth of the request */\n    Yes: 'Y',\n} as const);\n\nexport type MDImplicitDelete = (typeof MDImplicitDelete)[keyof typeof MDImplicitDelete];\n", "/**\n * Used to describe the origin of the market data entry.\n * - Tag: 1024\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDOriginType = Object.freeze({\n    /** Book */\n    Book: 0,\n    /** Off-Book */\n    OffBook: 1,\n    /** Cross */\n    Cross: 2,\n    /** Quote driven market\n        Examples for quote driven markets are market maker or specialist market models. */\n    QuoteDrivenMarket: 3,\n    /** Dark order book */\n    DarkOrderBook: 4,\n    /** Auction driven market\n        Markets where matching occurs only in scheduled auctions. */\n    AuctionDrivenMarket: 5,\n    /** Quote negotiation\n        Discretionary quoting on request or \"request for quote\" market. */\n    QuoteNegotiation: 6,\n    /** Voice negotiation\n        A trading system where transactions between members are arranged through voice negotiation. */\n    VoiceNegotiation: 7,\n    /** Hybrid market\n        A hybrid system falling into two or more types of trading systems. In the context of ESMA reporting, this is for \"Hybrid system.\" In the context of FCA reporting, this is for \"Any other, including hybrid.\" */\n    HybridMarket: 8,\n    /** Other market\n        A market that does not fall under any of the market types defined for MDOriginType(1024). In the context of ESMA reporting, this is for \"Any other, excluding hybrid.\" */\n    OtherMarket: 9,\n} as const);\n\nexport type MDOriginType = (typeof MDOriginType)[keyof typeof MDOriginType];\n", "/**\n * Indicates the quality of the market data being provided.\n    In the context of the EU Consolidated Tape, this is used by the CTP to identify suspicious data coming from the data contributor.\n * - Tag: 3105\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDQualityIndicator = Object.freeze({\n    /** No data quality issue */\n    NoQualityIssue: 0,\n    /** Data quality issue */\n    QualityIssue: 1,\n} as const);\n\nexport type MDQualityIndicator = (typeof MDQualityIndicator)[keyof typeof MDQualityIndicator];\n", "/**\n * Technical event within market data feed.\n * - Tag: 2535\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDReportEvent = Object.freeze({\n    /** Start of instrument reference data */\n    StartInstrumentRefData: 1,\n    /** End of instrument reference data */\n    EndInstrumentRefData: 2,\n    /** Start of off-market trades */\n    StartOffMarketTrades: 3,\n    /** End of off-market trades */\n    EndOffMarketTrades: 4,\n    /** Start of order book trades */\n    StartOrderBookTrades: 5,\n    /** End of order book trades */\n    EndOrderBookTrades: 6,\n    /** Start of open interest */\n    StartOpenInterest: 7,\n    /** End of open interest */\n    EndOpenInterest: 8,\n    /** Start of settlement prices */\n    StartSettlementPrices: 9,\n    /** End of settlement prices */\n    EndSettlementPrices: 10,\n    /** Start of statistics reference data */\n    StartStatsRefData: 11,\n    /** End of statistics reference data */\n    EndStatsRefData: 12,\n    /** Start of statistics */\n    StartStatistics: 13,\n    /** End of statistics */\n    EndStatistics: 14,\n} as const);\n\nexport type MDReportEvent = (typeof MDReportEvent)[keyof typeof MDReportEvent];\n", "/**\n * Reason for the rejection of a Market Data request.\n * - Tag: 281\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MDReqRejReason = Object.freeze({\n    /** Unknown symbol */\n    UnknownSymbol: '0',\n    /** Duplicate MDReqID */\n    DuplicateMDReqID: '1',\n    /** Insufficient Bandwidth */\n    InsufficientBandwidth: '2',\n    /** Insufficient Permissions */\n    InsufficientPermissions: '3',\n    /** Unsupported SubscriptionRequestType */\n    UnsupportedSubscriptionRequestType: '4',\n    /** Unsupported MarketDepth */\n    UnsupportedMarketDepth: '5',\n    /** Unsupported MDUpdateType */\n    UnsupportedMDUpdateType: '6',\n    /** Unsupported AggregatedBook */\n    UnsupportedAggregatedBook: '7',\n    /** Unsupported MDEntryType */\n    UnsupportedMDEntryType: '8',\n    /** Unsupported TradingSessionID */\n    UnsupportedTradingSessionID: '9',\n    /** Unsupported Scope */\n    UnsupportedScope: 'A',\n    /** Unsupported OpenCloseSettleFlag */\n    UnsupportedOpenCloseSettleFlag: 'B',\n    /** Unsupported MDImplicitDelete */\n    UnsupportedMDImplicitDelete: 'C',\n    /** Insufficient credit */\n    InsufficientCredit: 'D',\n} as const);\n\nexport type MDReqRejReason = (typeof MDReqRejReason)[keyof typeof MDReqRejReason];\n", "/**\n * Specifies the type of secondary size.\n * - Tag: 1178\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDSecSizeType = Object.freeze({\n    /** Customer\n        Quantity of retail investors. */\n    Customer: 1,\n    /** Customer professional\n        Quantity of high-volume investors acting similar to broker-dealers. */\n    CustomerProfessional: 2,\n    /** Do not trade through\n        Quantity that cannot trade through the away markets. */\n    DoNotTradeThrough: 3,\n} as const);\n\nexport type MDSecSizeType = (typeof MDSecSizeType)[keyof typeof MDSecSizeType];\n", "/**\n * Type of interval over which statistic is calculated.\n * - Tag: 2464\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDStatisticIntervalType = Object.freeze({\n    /** Sliding window\n        Window is defined as an interval period up to the current time of dissemination, see MDStatisticIntervalPeriod (2466). */\n    SlidingWindow: 1,\n    /** Sliding window peak\n        Highest value of all sliding windows across date and/or time range. Omission of date/time range represents current day. */\n    SlidingWindowPeak: 2,\n    /** Fixed date range\n        Interval may be open ended on either side, see MDStatisticStartDate (2468) and MDStatisticEndDate(2469). Starting/ending time of date fields only apply to the first/last day of the date range. Additional time range may be defined with MDStatisticStartTime(2470) and MDStatisticEndTime(2471) and applies to every business day within date range, i.e. to define an identical time slice across days. */\n    FixedDateRange: 3,\n    /** Fixed time range\n        Interval may be open ended on either side, see MDStatisticStartTime(2470) and MDStatisticEndTime(2471). */\n    FixedTimeRange: 4,\n    /** Current time unit\n        Relative time unit which has not ended yet, e.g. current day. Interval ends with the time of dissemination of the statistic. Requires the definition of an actual unit, see MDStatisticIntervalTypeUnit(2465). */\n    CurrentTimeUnit: 5,\n    /** Previous time unit\n        Relative time unit which has ended in the past. Requires the definition of an actual unit, see MDStatisticIntervalTypeUnit(2465). */\n    PreviousTimeUnit: 6,\n    /** Maximum range\n        Use to convey record values over the lifetime of the system or venue. */\n    MaximumRange: 7,\n    /** Maximum range up to previous time unit\n        Use to convey record values over the lifetime of the system or venue but does not include the most recent time unit as it has not completed yet. Requires the definition of an actual unit, see MDStatisticIntervalTypeUnit(2465) */\n    MaximumRangeUpToPreviousTimeUnit: 8,\n} as const);\n\nexport type MDStatisticIntervalType = (typeof MDStatisticIntervalType)[keyof typeof MDStatisticIntervalType];\n", "/**\n * Ratios between various entities.\n * - Tag: 2472\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDStatisticRatioType = Object.freeze({\n    /** Buyers to sellers */\n    BuyersToSellers: 1,\n    /** Upticks to downticks\n        Can also be used with a scope of multiple instruments representing an index. */\n    UpticksToDownticks: 2,\n    /** Market maker to non-market maker\n        Use to identify share of market making activity. */\n    MarketMakerToNonMarketMaker: 3,\n    /** Automated to non-automated\n        Use to identify ratio of orders and quotes resulting from automated trading. */\n    AutomatedToNonAutomated: 4,\n    /** Orders to trades\n        Use with scope of trades. */\n    OrdersToTrades: 5,\n    /** Quotes to trades\n        Use with scope of trades. */\n    QuotesToTrades: 6,\n    /** Orders and quotes to trades\n        Use with scope of trades. */\n    OrdersAndQuotesToTrades: 7,\n    /** Failed to total traded value\n        Total value of failed trades over total traded value. */\n    FailedToTotalTradedValue: 8,\n    /** Benefits to total traded value\n        Total value of all benefits over total traded value. */\n    BenefitsToTotalTradedValue: 9,\n    /** Fees to total traded value\n        Total value of all fees excluding rebates over total traded value. */\n    FeesToTotalTradedValue: 10,\n    /** Trade volume to total traded volume\n        Total value of failed trades over total traded value. */\n    TradeVolumeToTotalTradedVolume: 11,\n    /** Orders to total number of orders\n        Orders pertaining to a type over total number of orders. */\n    OrdersToTotalNumberOrders: 12,\n} as const);\n\nexport type MDStatisticRatioType = (typeof MDStatisticRatioType)[keyof typeof MDStatisticRatioType];\n", "/**\n * Result returned in response to MarketDataStatisticsRequest (35=DO).\n * - Tag: 2473\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDStatisticRequestResult = Object.freeze({\n    /** Successful (default) */\n    Successful: 0,\n    /** Invalid or unknown market */\n    InvalidOrUnknownMarket: 1,\n    /** Invalid or unknown market segment */\n    InvalidOrUnknownMarketSegment: 2,\n    /** Invalid or unknown security list */\n    InvalidOrUnknownSecurityList: 3,\n    /** Invalid or unknown instrument(s) */\n    InvalidOrUnknownInstruments: 4,\n    /** Invalid parties */\n    InvalidParties: 5,\n    /** Trade date out of supported range */\n    TradeDateOutOfSupportedRange: 6,\n    /** Statistic type not supported */\n    UnsupportedStatisticType: 7,\n    /** Scope or sub-scope not supported */\n    UnsupportedScopeOrSubScope: 8,\n    /** Scope type not supported */\n    UnsupportedScopeType: 9,\n    /** Market depth not supported */\n    MarketDepthNotSupported: 10,\n    /** Frequency not supported */\n    FrequencyNotSupported: 11,\n    /** Statistic interval not supported */\n    UnsupportedStatisticInterval: 12,\n    /** Statistic date range not supported */\n    UnsupportedStatisticDateRange: 13,\n    /** Statistic time range not supported */\n    UnsupportedStatisticTimeRange: 14,\n    /** Ratio type not supported */\n    UnsupportedRatioType: 15,\n    /** Invalid or unknown trade input source */\n    InvalidOrUnknownTradeInputSource: 16,\n    /** Invalid or unknown trading session */\n    InvalidOrUnknownTradingSession: 17,\n    /** Unauthorized for statistic request */\n    UnauthorizedForStatisticRequest: 18,\n    /** Other (further information in Text (58) field) */\n    Other: 99,\n} as const);\n\nexport type MDStatisticRequestResult = (typeof MDStatisticRequestResult)[keyof typeof MDStatisticRequestResult];\n", "/**\n * Entities used as basis for the statistics.\n * - Tag: 2457\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDStatisticScope = Object.freeze({\n    /** Bid prices */\n    BidPrices: 1,\n    /** Offer prices */\n    OfferPrices: 2,\n    /** Bid depth */\n    BidDepth: 3,\n    /** Offer depth */\n    OfferDepth: 4,\n    /** Orders */\n    Orders: 5,\n    /** Quotes */\n    Quotes: 6,\n    /** Orders and Quotes */\n    OrdersAndQuotes: 7,\n    /** Trades */\n    Trades: 8,\n    /** Trade prices */\n    TradePrices: 9,\n    /** Auction prices */\n    AuctionPrices: 10,\n    /** Opening prices */\n    OpeningPrices: 11,\n    /** Closing prices */\n    ClosingPrices: 12,\n    /** Settlement prices */\n    SettlementPrices: 13,\n    /** Underlying prices */\n    UnderlyingPrices: 14,\n    /** Open interest */\n    OpenInterest: 15,\n    /** Index values */\n    IndexValues: 16,\n    /** Margin rates */\n    MarginRates: 17,\n    /** Outages\n        System halt due to a technical malfunction or failure. */\n    Outages: 18,\n    /** Scheduled auctions */\n    ScheduledAuctions: 19,\n    /** Reference prices */\n    ReferencePrices: 20,\n    /** Trade value\n        Trade size multiplied by price. */\n    TradeValue: 21,\n    /** Market data fee items\n        Fees related to market data access. */\n    MarketDataFeeItems: 22,\n    /** Rebates\n        Rebate items offered to the client. */\n    Rebates: 23,\n    /** Discounts\n        Discounts offered to the client. */\n    Discounts: 24,\n    /** Payments\n        Other benefits offered to the client. */\n    Payments: 25,\n    /** Taxes\n        Taxes incurred. */\n    Taxes: 26,\n    /** Levies\n        Levies incurred. */\n    Levies: 27,\n    /** Benefits\n        Benefits offered to the client. */\n    Benefits: 28,\n    /** Fees */\n    Fees: 29,\n    /** Orders and RFQs (Request for quotes) */\n    OrdersRFQs: 30,\n    /** Market makers */\n    MarketMakers: 31,\n    /** Trading interruptions\n        Disruption in trading due to an automatic or manual decision. */\n    TradingInterruptions: 32,\n    /** Trading suspensions\n        An instrument is deliberately prevented from being quoted or traded due to a decision by execution venue or a competent authority. */\n    TradingSuspensions: 33,\n    /** No quotes\n        Period of no quotes received. */\n    NoQuotes: 34,\n    /** Request for quotes */\n    RequestForQuotes: 35,\n    /** Trade volume\n        Quantity traded. */\n    TradeVolume: 36,\n} as const);\n\nexport type MDStatisticScope = (typeof MDStatisticScope)[keyof typeof MDStatisticScope];\n", "/**\n * Scope details of the statistics to reduce the number of events being used as basis for the statistics.\n * - Tag: 2459\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDStatisticScopeType = Object.freeze({\n    /** Entry rate */\n    EntryRate: 1,\n    /** Modification rate */\n    ModificationRate: 2,\n    /** Cancel rate */\n    CancelRate: 3,\n    /** Downward move */\n    DownwardMove: 4,\n    /** Upward move */\n    UpwardMove: 5,\n} as const);\n\nexport type MDStatisticScopeType = (typeof MDStatisticScopeType)[keyof typeof MDStatisticScopeType];\n", "/**\n * Status for a statistic to indicate its availability.\n * - Tag: 2477\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDStatisticStatus = Object.freeze({\n    /** Active (default) */\n    Active: 1,\n    /** Inactive (not disseminated) */\n    Inactive: 2,\n} as const);\n\nexport type MDStatisticStatus = (typeof MDStatisticStatus)[keyof typeof MDStatisticStatus];\n", "/**\n * Sub-scope of the statistics to further reduce the entities used as basis for the statistics.\n * - Tag: 2458\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDStatisticSubScope = Object.freeze({\n    /** Visible\n        Only includes visible orders and/or quotes. */\n    Visible: 1,\n    /** Hidden\n        Only includes hidden orders and/or quotes. */\n    Hidden: 2,\n    /** Indicative\n        Only includes IOIs and non-tradable quotes. */\n    Indicative: 3,\n    /** Tradeable\n        Excludes IOIs and indicative quotes. */\n    Tradeable: 4,\n    /** Passive\n        Only includes resting orders and tradeable quotes. */\n    Passive: 5,\n    /** Market consensus\n        Only includes entities, e.g. trades, conforming to minimum requirements. Details to be defined out of band. */\n    MarketConsensus: 6,\n    /** Power\n        Outages due to power failure. */\n    Power: 7,\n    /** Hardware error\n        Outages due to a hardware malfunction or failure. */\n    HardwareError: 8,\n    /** Software error\n        Outages due to a software malfunction or failure. */\n    SoftwareError: 9,\n    /** Network error\n        Outages due to network error. */\n    NetworkError: 10,\n    /** Failed\n        Transaction voided by the execution venue. */\n    Failed: 11,\n    /** Executed\n        Total or partial execution of an order or quote. */\n    Executed: 12,\n    /** Entered\n        Order or quote entry. */\n    Entered: 13,\n    /** Modified\n        Order or quote modification. */\n    Modified: 14,\n    /** Cancelled\n        Order or quote cancellation. */\n    Cancelled: 15,\n    /** Market data access */\n    MarketDataAccess: 16,\n    /** Terminal access */\n    TerminalAccess: 17,\n    /** Volume\n        Specifies sub-scope of market data per volume. */\n    Volume: 18,\n    /** Cleared\n        Cleared trade. */\n    Cleared: 19,\n    /** Settled\n        Settled trade. */\n    Settled: 20,\n    /** Other\n        Any other fees incurred by the client. */\n    Other: 21,\n    /** Monetary\n        Monetary benefits offered to the clients. */\n    Monetary: 22,\n    /** Non-monetary\n        Non-monetary benefits offered to the clients */\n    NonMonetary: 23,\n    /** Gross\n        Total fees excluding rebates and discounts. */\n    Gross: 24,\n    /** Large in scale\n        Means an order classified as large in scale in accordance with a regulatory definition. */\n    LargeInScale: 25,\n    /** Neither hidden nor large in scale\n        Excluding orders pending disclosures and LIS. */\n    NeitherHiddenNorLargeInScale: 26,\n    /** Corporate action\n        Specifies type of trading suspension. */\n    CorporateAction: 27,\n    /** Venue decision\n        Specifies type of trading suspension. */\n    VenueDecision: 28,\n    /** Minimum time period\n        Minimum time period for the event defined by scope. */\n    MinimumTimePeriod: 29,\n    /** Open\n        Open status of RFQs (request for quotes), no quotes have been provided. */\n    Open: 30,\n    /** Not executed\n        Orders or quotes that didn't execute. */\n    NotExecuted: 31,\n    /** Aggressive\n        Order or Quote entered into the order book that took liquidity. */\n    Aggressive: 32,\n    /** Directed\n        An order where execution venue is specified by the client. */\n    Directed: 33,\n} as const);\n\nexport type MDStatisticSubScope = (typeof MDStatisticSubScope)[keyof typeof MDStatisticSubScope];\n", "/**\n * Type of statistic value.\n * - Tag: 2456\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDStatisticType = Object.freeze({\n    /** Count\n        Simple count of entities or events, e.g. orders transactions during a period of time. */\n    Count: 1,\n    /** Average volume\n        Average quantity of entities, e.g. average volume of incoming quotes or average trade volume. */\n    AverageVolume: 2,\n    /** Total volume\n        Aggregated quantities of entities across events, e.g. total trade volume during a period of time. */\n    TotalVolume: 3,\n    /** Distribution\n        Distribution of entities across entity types, e.g. percentage of limit orders amongst all order types. */\n    Distribution: 4,\n    /** Ratio\n        Pre-defined ratio between entities, e.g. ratio of trades triggered by buy orders. */\n    Ratio: 5,\n    /** Liquidity\n        Measurement of liquidity of an instrument, e.g. by providing the spread between bid and offer or the trade volume needed to move the price. */\n    Liquidity: 6,\n    /** Volume weighted average price (VWAP)\n        Benchmark price. */\n    VWAP: 7,\n    /** Volatility\n        Volatility of entities, e.g. price movements of incoming orders. */\n    Volatility: 8,\n    /** Duration\n        Time period of events, e.g. resting period of passive orders. */\n    Duration: 9,\n    /** Tick\n        Price movement of an instrument in number of ticks. */\n    Tick: 10,\n    /** Average value\n        Average quantity multiplied by price. */\n    AverageValue: 11,\n    /** Total value\n        Aggregated quantity multiplied by price; also described as turnover. */\n    TotalValue: 12,\n    /** High\n        Highest price. */\n    High: 13,\n    /** Low\n        Lowest price. */\n    Low: 14,\n    /** Midpoint\n        Midpoint price between bid and offer. */\n    Midpoint: 15,\n    /** First\n        First price or initial value. */\n    First: 16,\n    /** Last\n        Most recent price or value. */\n    Last: 17,\n    /** Final\n        Final price or confirmed value. */\n    Final: 18,\n    /** Exchange best\n        Best price of a single venue regardless of volume. */\n    ExchangeBest: 19,\n    /** Exchange best with volume\n        Best price of a single venue with volume at or above a pre-defined threshold. */\n    ExchangeBestWithVolume: 20,\n    /** Consolidated best\n        Best price across multiple venues regardless of volume. */\n    ConsolidatedBest: 21,\n    /** Consolidated best with volume\n        Best price across multiple venues with volume at or above a pre-defined threshold. */\n    ConsolidatedBestWithVolume: 22,\n    /** Time weighted average price (TWAP) */\n    TWAP: 23,\n    /** Average duration\n        Average duration of time periods of events. */\n    AverageDuration: 24,\n    /** Average price\n        Average price across entities e.g. trade prices. */\n    AveragePrice: 25,\n    /** Total fees\n        Aggregated fees. */\n    TotalFees: 26,\n    /** Total benefits\n        Aggregated benefits. */\n    TotalBenefits: 27,\n    /** Median value\n        Median quantity multiplied by price for orders or quotes. */\n    MedianValue: 28,\n    /** Average liquidity\n        Average liquidity of an instrument e.g. average effective spread. */\n    AverageLiquidity: 29,\n    /** Median duration\n        Median duration of time periods of events. */\n    MedianDuration: 30,\n} as const);\n\nexport type MDStatisticType = (typeof MDStatisticType)[keyof typeof MDStatisticType];\n", "/**\n * Type of statistical value.\n * - Tag: 2479\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDStatisticValueType = Object.freeze({\n    /** Absolute */\n    Absolute: 1,\n    /** Percentage */\n    Percentage: 2,\n} as const);\n\nexport type MDStatisticValueType = (typeof MDStatisticValueType)[keyof typeof MDStatisticValueType];\n", "/**\n * Type of Market Data update action.\n * - Tag: 279\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MDUpdateAction = Object.freeze({\n    /** New */\n    New: '0',\n    /** Change */\n    Change: '1',\n    /** Delete */\n    Delete: '2',\n    /** Delete Thru */\n    DeleteThru: '3',\n    /** Delete From */\n    DeleteFrom: '4',\n    /** Overlay */\n    Overlay: '5',\n} as const);\n\nexport type MDUpdateAction = (typeof MDUpdateAction)[keyof typeof MDUpdateAction];\n", "/**\n * Specifies the type of Market Data update.\n * - Tag: 265\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDUpdateType = Object.freeze({\n    /** Full refresh */\n    FullRefresh: 0,\n    /** Incremental refresh */\n    IncrementalRefresh: 1,\n} as const);\n\nexport type MDUpdateType = (typeof MDUpdateType)[keyof typeof MDUpdateType];\n", "/**\n * Describes the reporting ranges for executed transactions.\n    In context of ESMA RTS 27 Article 9, the execution venue is required to report on transactions within several size ranges (in terms of a value and currency). The thresholds for these ranges are dependent on the type of financial instrument.\n * - Tag: 2711\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MDValueTier = Object.freeze({\n    /** Range 1 */\n    Range1: 1,\n    /** Range 2 */\n    Range2: 2,\n    /** Range 3 */\n    Range3: 3,\n} as const);\n\nexport type MDValueTier = (typeof MDValueTier)[keyof typeof MDValueTier];\n", "/**\n * Type of message encoding (non-ASCII (non-English) characters) used in a message\u2019s \"Encoded\" fields.\n * - Tag: 347\n * - FIX Specification type: String\n * - FIX Specification version: FIX44\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MessageEncoding = Object.freeze({\n    /** JIS */\n    ISO2022JP: 'ISO-2022-JP',\n    /** EUC */\n    EUCJP: 'EUC-JP',\n    /** for using SJIS */\n    ShiftJIS: 'Shift_JIS',\n    /** Unicode */\n    UTF8: 'UTF-8',\n} as const);\n\nexport type MessageEncoding = (typeof MessageEncoding)[keyof typeof MessageEncoding];\n", "/**\n * Specifies the source of the price(s) of the security used in the calculation of the metrics or analytics data.\n * - Tag: 2993\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MetricsCalculationPriceSource = Object.freeze({\n    /** Real-time\n        Real-time market prices used as the data source in metrics/analytics calculation. */\n    Realtime: 1,\n    /** End of day\n        Official end of day price (marking) used as the data source in metrics/analytics calculation. */\n    EndOfDay: 2,\n} as const);\n\nexport type MetricsCalculationPriceSource =\n    (typeof MetricsCalculationPriceSource)[keyof typeof MetricsCalculationPriceSource];\n", "/**\n * Indicates how the minimum quantity should be applied when executing the order.\n * - Tag: 1822\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MinQtyMethod = Object.freeze({\n    /** Once (applies only to first execution) */\n    Once: 1,\n    /** Multiple (applies to every execution) */\n    Multiple: 2,\n} as const);\n\nexport type MinQtyMethod = (typeof MinQtyMethod)[keyof typeof MinQtyMethod];\n", "/**\n * Defines the unit for a miscellaneous fee.\n * - Tag: 891\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MiscFeeBasis = Object.freeze({\n    /** Absolute\n        The fee or markup is a total fixed amount expressed in the currency of the trade. */\n    Absolute: 0,\n    /** Per Unit\n        The fee or markup is an amount per quantity unit, i.e. per share or contract, expressed in the currency of the trade. */\n    PerUnit: 1,\n    /** Percentage\n        The percentage is expressed in standard FIX \"Percentage\" datatype format, i.e. \"0.01\" for 1 percent and ranges between 0 and 1. It is the number which when multiplied by the trade price and quantity produces the total amount of the fee or markup. */\n    Percentage: 2,\n} as const);\n\nexport type MiscFeeBasis = (typeof MiscFeeBasis)[keyof typeof MiscFeeBasis];\n", "/**\n * Identifies whether the current entry contributes to the trade or transaction economics, i.e. affects NetMoney(118).\n * - Tag: 2712\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MiscFeeQualifier = Object.freeze({\n    /** Contributes (default)\n        Fee contributes to the trade or transaction economics. */\n    Contributes: 0,\n    /** Does not contribute\n        Fee does not contribute to the trade or transaction economics. */\n    DoesNotContribute: 1,\n} as const);\n\nexport type MiscFeeQualifier = (typeof MiscFeeQualifier)[keyof typeof MiscFeeQualifier];\n", "/**\n * Indicates type of miscellaneous fee.\n * - Tag: 139\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MiscFeeType = Object.freeze({\n    /** Regulatory (e.g. SEC) */\n    Regulatory: '1',\n    /** Tax */\n    Tax: '2',\n    /** Local Commission\n        DEPRECATE - use \\<CommissionDataGrp\\> component instead */\n    LocalCommission: '3',\n    /** Exchange Fees */\n    ExchangeFees: '4',\n    /** Stamp */\n    Stamp: '5',\n    /** Levy */\n    Levy: '6',\n    /** Other */\n    Other: '7',\n    /** Markup */\n    Markup: '8',\n    /** Consumption Tax */\n    ConsumptionTax: '9',\n    /** Per transaction */\n    PerTransaction: '10',\n    /** Conversion */\n    Conversion: '11',\n    /** Agent */\n    Agent: '12',\n    /** Transfer Fee */\n    TransferFee: '13',\n    /** Security Lending */\n    SecurityLending: '14',\n    /** Trade reporting\n        The fee charged to recover the cost of trade reporting, e.g. corporate bonds and structured products reported to FINRA TRACE. */\n    TradeReporting: '15',\n    /** Tax on principal amount */\n    TaxOnPrincipalAmount: '16',\n    /** Tax on accrued interest amount */\n    TaxOnAccruedInterestAmount: '17',\n    /** New issuance fee */\n    NewIssuanceFee: '18',\n    /** Service fee */\n    ServiceFee: '19',\n    /** Odd lot fee */\n    OddLotFee: '20',\n    /** Auction fee */\n    AuctionFee: '21',\n    /** Value Added tax - VAT */\n    ValueAddedTax: '22',\n    /** Sales tax */\n    SalesTax: '23',\n    /** Execution venue fee */\n    ExecutionFee: '24',\n    /** Order or quote entry fee\n        Order or quote submission fees per transaction. */\n    OrderEntryFee: '25',\n    /** Order or quote modification fee\n        Order or quote modification fees per transaction. */\n    OrderModificationFee: '26',\n    /** Orders or quote cancellation fee\n        Order or quote cancellation fees per transaction. */\n    OrdersCancellationFee: '27',\n    /** Market data access fee\n        Fee for market data access. */\n    MarketDataAccessFee: '28',\n    /** Market data terminal fee\n        Fee for market data terminal. */\n    MarketDataTerminalFee: '29',\n    /** Market data volume fee\n        Fee for market data per volume group. */\n    MarketDataVolumeFee: '30',\n    /** Clearing fee\n        Fee for clearing of trades. */\n    ClearingFee: '31',\n    /** Settlement fee\n        Fee for settlement of trades. */\n    SettlementFee: '32',\n    /** Rebates\n        Rebates offered to the client. */\n    Rebates: '33',\n    /** Discounts\n        Discounts offered to the client. */\n    Discounts: '34',\n    /** Payments\n        Other benefits offered to the client. */\n    Payments: '35',\n    /** Non-monetary payments\n        Non-monetary benefits offered to the client. */\n    NonMonetaryPayments: '36',\n} as const);\n\nexport type MiscFeeType = (typeof MiscFeeType)[keyof typeof MiscFeeType];\n", "/**\n * Type of pricing model used\n * - Tag: 1434\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ModelType = Object.freeze({\n    /** Utility provided standard model */\n    UtilityProvidedStandardModel: 0,\n    /** Proprietary (user supplied) model */\n    ProprietaryModel: 1,\n} as const);\n\nexport type ModelType = (typeof ModelType)[keyof typeof ModelType];\n", "/**\n * A one character code identifying Money laundering status.\n * - Tag: 481\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MoneyLaunderingStatus = Object.freeze({\n    /** Passed */\n    Passed: 'Y',\n    /** Not Checked */\n    NotChecked: 'N',\n    /** Exempt - Below the Limit */\n    ExemptBelowLimit: '1',\n    /** Exempt - Client Money Type exemption */\n    ExemptMoneyType: '2',\n    /** Exempt - Authorised Credit or financial institution */\n    ExemptAuthorised: '3',\n} as const);\n\nexport type MoneyLaunderingStatus = (typeof MoneyLaunderingStatus)[keyof typeof MoneyLaunderingStatus];\n", "/**\n * Specifies the direction of the message.\n * - Tag: 385\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MsgDirection = Object.freeze({\n    /** Receive */\n    Receive: 'R',\n    /** Send */\n    Send: 'S',\n} as const);\n\nexport type MsgDirection = (typeof MsgDirection)[keyof typeof MsgDirection];\n", "/**\n * Defines message type ALWAYS THIRD FIELD IN MESSAGE. (Always unencrypted)\n    Note: A \"U\" as the first character in the MsgType field (i.e. U, U2, etc) indicates that the message format is privately defined between the sender and receiver.\n    *** Note the use of lower case letters ***\n * - Tag: 35\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MsgType = Object.freeze({\n    /** Heartbeat\n        The Heartbeat monitors the status of the communication link and identifies when the last of a string of messages was not received. */\n    Heartbeat: '0',\n    /** TestRequest\n        The test request message forces a heartbeat from the opposing application. The test request message checks sequence numbers or verifies communication line status. The opposite application responds to the Test Request with a Heartbeat containing the TestReqID. */\n    TestRequest: '1',\n    /** ResendRequest\n        The resend request is sent by the receiving application to initiate the retransmission of messages. This function is utilized if a sequence number gap is detected, if the receiving application lost a message, or as a function of the initialization process. */\n    ResendRequest: '2',\n    /** Reject\n        The reject message should be issued when a message is received but cannot be properly processed due to a session-level rule violation. An example of when a reject may be appropriate would be the receipt of a message with invalid basic data which successfully passes de-encryption, CheckSum and BodyLength checks. */\n    Reject: '3',\n    /** SequenceReset\n        The sequence reset message is used by the sending application to reset the incoming sequence number on the opposing side. */\n    SequenceReset: '4',\n    /** Logout\n        The logout message initiates or confirms the termination of a FIX session. Disconnection without the exchange of logout messages should be interpreted as an abnormal condition. */\n    Logout: '5',\n    /** IOI\n        Indication of interest messages are used to market merchandise which the broker is buying or selling in either a proprietary or agency capacity. The indications can be time bound with a specific expiration value. Indications are distributed with the understanding that other firms may react to the message first and that the merchandise may no longer be available due to prior trade.\n        Indication messages can be transmitted in various transaction types; NEW, CANCEL, and REPLACE. All message types other than NEW modify the state of the message identified in IOIRefID. */\n    IOI: '6',\n    /** Advertisement\n        Advertisement messages are used to announce completed transactions. The advertisement message can be transmitted in various transaction types; NEW, CANCEL and REPLACE. All message types other than NEW modify the state of a previously transmitted advertisement identified in AdvRefID. */\n    Advertisement: '7',\n    /** ExecutionReport\n        The execution report message is used to:\n        1. confirm the receipt of an order\n        2. confirm changes to an existing order (i.e. accept cancel and replace requests)\n        3. relay order status information\n        4. relay fill information on working orders\n        5. relay fill information on tradeable or restricted tradeable quotes\n        6. reject orders\n        7. report post-trade fees calculations associated with a trade */\n    ExecutionReport: '8',\n    /** OrderCancelReject\n        The order cancel reject message is issued by the broker upon receipt of a cancel request or cancel/replace request message which cannot be honored. */\n    OrderCancelReject: '9',\n    /** Logon\n        The logon message authenticates a user establishing a connection to a remote system. The logon message must be the first message sent by the application requesting to initiate a FIX session. */\n    Logon: 'A',\n    /** News\n        The news message is a general free format message between the broker and institution. The message contains flags to identify the news item's urgency and to allow sorting by subject company (symbol). The News message can be originated at either the broker or institution side, or exchanges and other marketplace venues. */\n    News: 'B',\n    /** Email\n        The email message is similar to the format and purpose of the News message, however, it is intended for private use between two parties. */\n    Email: 'C',\n    /** NewOrderSingle\n        The new order message type is used by institutions wishing to electronically submit securities and forex orders to a broker for execution.\n        The New Order message type may also be used by institutions or retail intermediaries wishing to electronically submit Collective Investment Vehicle (CIV) orders to a broker or fund manager for execution. */\n    NewOrderSingle: 'D',\n    /** NewOrderList\n        The NewOrderList Message can be used in one of two ways depending on which market conventions are being followed. */\n    NewOrderList: 'E',\n    /** OrderCancelRequest\n        The order cancel request message requests the cancellation of all of the remaining quantity of an existing order. Note that the Order Cancel/Replace Request should be used to partially cancel (reduce) an order). */\n    OrderCancelRequest: 'F',\n    /** OrderCancelReplaceRequest\n        The order cancel/replace request is used to change the parameters of an existing order.\n        Do not use this message to cancel the remaining quantity of an outstanding order, use the Order Cancel Request message for this purpose. */\n    OrderCancelReplaceRequest: 'G',\n    /** OrderStatusRequest\n        The order status request message is used by the institution to generate an order status message back from the broker. */\n    OrderStatusRequest: 'H',\n    /** AllocationInstruction\n        The AllocationInstruction(35=J) message provides the ability to specify how an order or set of orders should be subdivided amongst one or more accounts. */\n    AllocationInstruction: 'J',\n    /** ListCancelRequest\n        The List Cancel Request message type is used by institutions wishing to cancel previously submitted lists either before or during execution. */\n    ListCancelRequest: 'K',\n    /** ListExecute\n        The List Execute message type is used by institutions to instruct the broker to begin execution of a previously submitted list. This message may or may not be used, as it may be mirroring a phone conversation. */\n    ListExecute: 'L',\n    /** ListStatusRequest\n        The list status request message type is used by institutions to instruct the broker to generate status messages for a list. */\n    ListStatusRequest: 'M',\n    /** ListStatus\n        The list status message is issued as the response to a List Status Request message sent in an unsolicited fashion by the sell-side. It indicates the current state of the orders within the list as they exist at the broker's site. This message may also be used to respond to the List Cancel Request. */\n    ListStatus: 'N',\n    /** AllocationInstructionAck\n        In versions of FIX prior to version 4.4, this message was known as the Allocation ACK message.\n        The Allocation Instruction Ack message is used to acknowledge the receipt of and provide status for an Allocation Instruction message. */\n    AllocationInstructionAck: 'P',\n    /** DontKnowTrade\n        The Don\u2019t Know Trade (DK) message notifies a trading partner that an electronically received execution has been rejected. This message can be thought of as an execution reject message. */\n    DontKnowTrade: 'Q',\n    /** QuoteRequest\n        In some markets it is the practice to request quotes from brokers prior to placement of an order. The quote request message is used for this purpose. This message is commonly referred to as an Request For Quote (RFQ) */\n    QuoteRequest: 'R',\n    /** Quote\n        The Quote message is used as the response to a Quote Request or a Quote Response message in both indicative, tradeable, and restricted tradeable quoting markets. */\n    Quote: 'S',\n    /** SettlementInstructions\n        The Settlement Instructions message provides the broker\u2019s, the institution\u2019s, or the intermediary\u2019s instructions for trade settlement. This message has been designed so that it can be sent from the broker to the institution, from the institution to the broker, or from either to an independent \"standing instructions\" database or matching system or, for CIV, from an intermediary to a fund manager. */\n    SettlementInstructions: 'T',\n    /** MarketDataRequest\n        Some systems allow the transmission of real-time quote, order, trade, trade volume, open interest, and/or other price information on a subscription basis. A MarketDataRequest(35=V) is a general request for market data on specific securities or forex quotes. The values in the fields provided within the request will serve as further filter criteria for the result set. */\n    MarketDataRequest: 'V',\n    /** MarketDataSnapshotFullRefresh\n        The Market Data messages are used as the response to a Market Data Request message. In all cases, one Market Data message refers only to one Market Data Request. It can be used to transmit a 2-sided book of orders or list of quotes, a list of trades, index values, opening, closing, settlement, high, low, or VWAP prices, the trade volume or open interest for a security, or any combination of these. */\n    MarketDataSnapshotFullRefresh: 'W',\n    /** MarketDataIncrementalRefresh\n        The Market Data message for incremental updates may contain any combination of new, changed, or deleted Market Data Entries, for any combination of instruments, with any combination of trades, imbalances, quotes, index values, open, close, settlement, high, low, and VWAP prices, trade volume and open interest so long as the maximum FIX message size is not exceeded. All of these types of Market Data Entries can be changed and deleted. */\n    MarketDataIncrementalRefresh: 'X',\n    /** MarketDataRequestReject\n        The Market Data Request Reject is used when the broker cannot honor the Market Data Request, due to business or technical reasons. Brokers may choose to limit various parameters, such as the size of requests, whether just the top of book or the entire book may be displayed, and whether Full or Incremental updates must be used. */\n    MarketDataRequestReject: 'Y',\n    /** QuoteCancel\n        The Quote Cancel message is used by an originator of quotes to cancel quotes.\n        The Quote Cancel message supports cancellation of:\n        \u2022 All quotes\n        \u2022 Quotes for a specific symbol or security ID\n        \u2022 All quotes for a security type\n        \u2022 All quotes for an underlying */\n    QuoteCancel: 'Z',\n    /** QuoteStatusRequest\n        The quote status request message is used for the following purposes in markets that employ tradeable or restricted tradeable quotes:\n        \u2022 For the issuer of a quote in a market to query the status of that quote (using the QuoteID to specify the target quote).\n        \u2022 To subscribe and unsubscribe for Quote Status Report messages for one or more securities. */\n    QuoteStatusRequest: 'a',\n    /** MassQuoteAck\n        Mass Quote Acknowledgement is used as the application level response to a Mass Quote message. */\n    MassQuoteAck: 'b',\n    /** SecurityDefinitionRequest\n        The SecurityDefinitionRequest(35=c) message is used for the following:\n        1. Request a specific security to be traded with the second party. The requested security can be defined as a multileg security made up of one or more instrument legs.\n        2. Request a set of individual securities for a single market segment.\n        3. Request all securities, independent of market segment. */\n    SecurityDefinitionRequest: 'c',\n    /** SecurityDefinition\n        The SecurityDefinition(35=d) message is used for the following:\n        1. Accept the security defined in a SecurityDefinition(35=d) message.\n        2. Accept the security defined in a SecurityDefinition(35=d) message with changes to the definition and/or identity of the security.\n        3. Reject the security requested in a SecurityDefinition(35=d) message.\n        4. Respond to a request for securities within a specified market segment.\n        5. Convey comprehensive security definition for all market segments that the security participates in.\n        6. Convey the security's trading rules that differ from default rules for the market segment. */\n    SecurityDefinition: 'd',\n    /** SecurityStatusRequest\n        The Security Status Request message provides for the ability to request the status of a security. One or more Security Status messages are returned as a result of a Security Status Request message. */\n    SecurityStatusRequest: 'e',\n    /** SecurityStatus\n        The Security Status message provides for the ability to report changes in status to a security. The Security Status message contains fields to indicate trading status, corporate actions, financial status of the company. The Security Status message is used by one trading entity (for instance an exchange) to report changes in the state of a security. */\n    SecurityStatus: 'f',\n    /** TradingSessionStatusRequest\n        The Trading Session Status Request is used to request information on the status of a market. With the move to multiple sessions occurring for a given trading party (morning and evening sessions for instance) there is a need to be able to provide information on what product is trading on what market. */\n    TradingSessionStatusRequest: 'g',\n    /** TradingSessionStatus\n        The Trading Session Status provides information on the status of a market. For markets multiple trading sessions on multiple-markets occurring (morning and evening sessions for instance), this message is able to provide information on what products are trading on what market during what trading session. */\n    TradingSessionStatus: 'h',\n    /** MassQuote\n        The Mass Quote message can contain quotes for multiple securities to support applications that allow for the mass quoting of an option series. Two levels of repeating groups have been provided to minimize the amount of data required to submit a set of quotes for a class of options (e.g. all option series for IBM). */\n    MassQuote: 'i',\n    /** BusinessMessageReject\n        The Business Message Reject message can reject an application-level message which fulfills session-level rules and cannot be rejected via any other means. Note if the message fails a session-level rule (e.g. body length is incorrect), a session-level Reject message should be issued. */\n    BusinessMessageReject: 'j',\n    /** BidRequest\n        The BidRequest Message can be used in one of two ways depending on which market conventions are being followed.\n        In the \"Non disclosed\" convention (e.g. US/European model) the BidRequest message can be used to request a bid based on the sector, country, index and liquidity information contained within the message itself. In the \"Non disclosed\" convention the entry repeating group is used to define liquidity of the program. See \" Program/Basket/List Trading\" for an example.\n        In the \"Disclosed\" convention (e.g. Japanese model) the BidRequest message can be used to request bids based on the ListOrderDetail messages sent in advance of BidRequest message. In the \"Disclosed\" convention the list repeating group is used to define which ListOrderDetail messages a bid is being sort for and the directions of the required bids. */\n    BidRequest: 'k',\n    /** BidResponse\n        The Bid Response message can be used in one of two ways depending on which market conventions are being followed.\n        In the \"Non disclosed\" convention the Bid Response message can be used to supply a bid based on the sector, country, index and liquidity information contained within the corresponding bid request message. See \"Program/Basket/List Trading\" for an example.\n        In the \"Disclosed\" convention the Bid Response message can be used to supply bids based on the List Order Detail messages sent in advance of the corresponding Bid Request message. */\n    BidResponse: 'l',\n    /** ListStrikePrice\n        The strike price message is used to exchange strike price information for principal trades. It can also be used to exchange reference prices for agency trades. */\n    ListStrikePrice: 'm',\n    /** XMLnonFIX */\n    XMLnonFIX: 'n',\n    /** RegistrationInstructions\n        The Registration Instructions message type may be used by institutions or retail intermediaries wishing to electronically submit registration information to a broker or fund manager (for CIV) for an order or for an allocation. */\n    RegistrationInstructions: 'o',\n    /** RegistrationInstructionsResponse\n        The Registration Instructions Response message type may be used by broker or fund manager (for CIV) in response to a Registration Instructions message submitted by an institution or retail intermediary for an order or for an allocation. */\n    RegistrationInstructionsResponse: 'p',\n    /** OrderMassCancelRequest\n        The order mass cancel request message requests the cancellation of all of the remaining quantity of a group of orders matching criteria specified within the request. NOTE: This message can only be used to cancel order messages (reduce the full quantity). */\n    OrderMassCancelRequest: 'q',\n    /** OrderMassCancelReport\n        The Order Mass Cancel Report is used to acknowledge an Order Mass Cancel Request. Note that each affected order that is canceled is acknowledged with a separate Execution Report or Order Cancel Reject message. */\n    OrderMassCancelReport: 'r',\n    /** NewOrderCross\n        Used to submit a cross order into a market. The cross order contains two order sides (a buy and a sell). The cross order is identified by its CrossID. */\n    NewOrderCross: 's',\n    /** CrossOrderCancelReplaceRequest\n        Used to modify a cross order previously submitted using the New Order - Cross message. See Order Cancel Replace Request for details concerning message usage. */\n    CrossOrderCancelReplaceRequest: 't',\n    /** CrossOrderCancelRequest\n        Used to fully cancel the remaining open quantity of a cross order. */\n    CrossOrderCancelRequest: 'u',\n    /** SecurityTypeRequest\n        The Security Type Request message is used to return a list of security types available from a counterparty or market. */\n    SecurityTypeRequest: 'v',\n    /** SecurityTypes\n        The Security Type Request message is used to return a list of security types available from a counterparty or market. */\n    SecurityTypes: 'w',\n    /** SecurityListRequest\n        The Security List Request message is used to return a list of securities from the counterparty that match criteria provided on the request */\n    SecurityListRequest: 'x',\n    /** SecurityList\n        The Security List message is used to return a list of securities that matches the criteria specified in a Security List Request. */\n    SecurityList: 'y',\n    /** DerivativeSecurityListRequest\n        The Derivative Security List Request message is used to return a list of securities from the counterparty that match criteria provided on the request */\n    DerivativeSecurityListRequest: 'z',\n    /** DerivativeSecurityList\n        The Derivative Security List message is used to return a list of securities that matches the criteria specified in a Derivative Security List Request. */\n    DerivativeSecurityList: 'AA',\n    /** NewOrderMultileg\n        The New Order - Multileg is provided to submit orders for securities that are made up of multiple securities, known as legs. */\n    NewOrderMultileg: 'AB',\n    /** MultilegOrderCancelReplace\n        Used to modify a multileg order previously submitted using the New Order - Multileg message. See Order Cancel Replace Request for details concerning message usage. */\n    MultilegOrderCancelReplace: 'AC',\n    /** TradeCaptureReportRequest\n        The Trade Capture Report Request can be used to:\n        \u2022 Request one or more trade capture reports based upon selection criteria provided on the trade capture report request\n        \u2022 Subscribe for trade capture reports based upon selection criteria provided on the trade capture report request. */\n    TradeCaptureReportRequest: 'AD',\n    /** TradeCaptureReport\n        The Trade Capture Report message can be:\n        - Used to report trades between counterparties.\n        - Used to report trades to a trade matching system.\n        - Sent unsolicited between counterparties.\n        - Sent as a reply to a Trade Capture Report Request.\n        - Used to report unmatched and matched trades. */\n    TradeCaptureReport: 'AE',\n    /** OrderMassStatusRequest\n        The order mass status request message requests the status for orders matching criteria specified within the request. */\n    OrderMassStatusRequest: 'AF',\n    /** QuoteRequestReject\n        The Quote Request Reject message is used to reject Quote Request messages for all quoting models. */\n    QuoteRequestReject: 'AG',\n    /** RFQRequest\n        In tradeable and restricted tradeable quoting markets \u2013 Quote Requests are issued by counterparties interested in ascertaining the market for an instrument. Quote Requests are then distributed by the market to liquidity providers who make markets in the instrument. The RFQ Request is used by liquidity providers to indicate to the market for which instruments they are interested in receiving Quote Requests. It can be used to register interest in receiving quote requests for a single instrument or for multiple instruments */\n    RFQRequest: 'AH',\n    /** QuoteStatusReport\n        The quote status report message is used:\n        \u2022 as the response to a Quote Status Request message\n        \u2022 as a response to a Quote Cancel message\n        \u2022 as a response to a Quote Response message in a negotiation dialog (see Volume 7 \u2013 PRODUCT: FIXED INCOME and USER GROUP: EXCHANGES AND MARKETS) */\n    QuoteStatusReport: 'AI',\n    /** QuoteResponse\n        The QuoteResponse(35=AJ) message is used for the following purposes:\n        1. Respond to an IOI(35=6) message\n        2. Respond to a Quote(35=S) message\n        3. Counter a Quote\n        4. End a negotiation dialog\n        5. Follow-up or end a QuoteRequest(35=R) dialog that did not receive a response. */\n    QuoteResponse: 'AJ',\n    /** Confirmation\n        The Confirmation messages are used to provide individual trade level confirmations from the sell side to the buy side. In versions of FIX prior to version 4.4, this role was performed by the allocation message. Unlike the allocation message, the confirmation message operates at an allocation account (trade) level rather than block level, allowing for the affirmation or rejection of individual confirmations. */\n    Confirmation: 'AK',\n    /** PositionMaintenanceRequest\n        The Position Maintenance Request message allows the position owner to submit requests to the holder of a position which will result in a specific action being taken which will affect the position. Generally, the holder of the position is a central counter party or clearing organization but can also be a party providing investment services. */\n    PositionMaintenanceRequest: 'AL',\n    /** PositionMaintenanceReport\n        The Position Maintenance Report message is sent by the holder of a position in response to a Position Maintenance Request and is used to confirm that a request has been successfully processed or rejected. */\n    PositionMaintenanceReport: 'AM',\n    /** RequestForPositions\n        The Request For Positions message is used by the owner of a position to request a Position Report from the holder of the position, usually the central counter party or clearing organization. The request can be made at several levels of granularity. */\n    RequestForPositions: 'AN',\n    /** RequestForPositionsAck\n        The Request for Positions Ack message is returned by the holder of the position in response to a Request for Positions message. The purpose of the message is to acknowledge that a request has been received and is being processed. */\n    RequestForPositionsAck: 'AO',\n    /** PositionReport\n        The Position Report message is returned by the holder of a position in response to a Request for Position message. The purpose of the message is to report all aspects of a position and may be provided on a standing basis to report end of day positions to an owner. */\n    PositionReport: 'AP',\n    /** TradeCaptureReportRequestAck\n        The Trade Capture Request Ack message is used to:\n        - Provide an acknowledgement to a Trade Capture Report Request in the case where the Trade Capture Report Request is used to specify a subscription or delivery of reports via an out-of-band ResponseTransmissionMethod.\n        - Provide an acknowledgement to a Trade Capture Report Request in the case when the return of the Trade Capture Reports matching that request will be delayed or delivered asynchronously. This is useful in distributed trading system environments.\n        - Indicate that no trades were found that matched the selection criteria specified on the Trade Capture Report Request or the Trade Capture Request was invalid for some business reason, such as request is not authorized, invalid or unknown instrument, party, trading session, etc. */\n    TradeCaptureReportRequestAck: 'AQ',\n    /** TradeCaptureReportAck\n        The Trade Capture Report Ack message can be:\n        - Used to acknowledge trade capture reports received from a counterparty.\n        - Used to reject a trade capture report received from a counterparty. */\n    TradeCaptureReportAck: 'AR',\n    /** AllocationReport\n        Sent from sell-side to buy-side, sell-side to 3rd-party or 3rd-party to buy-side, the AllocationReport(35=AS) message (Claim) provides account breakdown of an order or set of orders plus any additional follow-up front-office information developed post-trade during the trade allocation, matching and calculation phase. */\n    AllocationReport: 'AS',\n    /** AllocationReportAck\n        The Allocation Report Ack message is used to acknowledge the receipt of and provide status for an Allocation Report message. */\n    AllocationReportAck: 'AT',\n    /** ConfirmationAck\n        The Confirmation Ack (aka Affirmation) message is used to respond to a Confirmation message. */\n    ConfirmationAck: 'AU',\n    /** SettlementInstructionRequest\n        The Settlement Instruction Request message is used to request standing settlement instructions from another party. */\n    SettlementInstructionRequest: 'AV',\n    /** AssignmentReport\n        Assignment Reports are sent from a clearing house to counterparties, such as a clearing firm as a result of the assignment process. */\n    AssignmentReport: 'AW',\n    /** CollateralRequest\n        An initiator that requires collateral from a respondent sends a Collateral Request. The initiator can be either counterparty to a trade in a two party model or an intermediary such as an ATS or clearinghouse in a three party model. A Collateral Assignment is expected as a response to a request for collateral. */\n    CollateralRequest: 'AX',\n    /** CollateralAssignment\n        Used to assign collateral to cover a trading position. This message can be sent unsolicited or in reply to a Collateral Request message. */\n    CollateralAssignment: 'AY',\n    /** CollateralResponse\n        Used to respond to a Collateral Assignment message. */\n    CollateralResponse: 'AZ',\n    /** CollateralReport\n        Used to report collateral status when responding to a Collateral Inquiry message. */\n    CollateralReport: 'BA',\n    /** CollateralInquiry\n        Used to inquire for collateral status. */\n    CollateralInquiry: 'BB',\n    /** NetworkCounterpartySystemStatusRequest\n        This message is send either immediately after logging on to inform a network (counterparty system) of the type of updates required or to at any other time in the FIX conversation to change the nature of the types of status updates required. It can also be used with a NetworkRequestType of Snapshot to request a one-off report of the status of a network (or counterparty) system. Finally this message can also be used to cancel a request to receive updates into the status of the counterparties on a network by sending a NetworkRequestStatusMessage with a NetworkRequestType of StopSubscribing. */\n    NetworkCounterpartySystemStatusRequest: 'BC',\n    /** NetworkCounterpartySystemStatusResponse\n        This message is sent in response to a Network (Counterparty System) Status Request Message. */\n    NetworkCounterpartySystemStatusResponse: 'BD',\n    /** UserRequest\n        This message is used to initiate a user action, logon, logout or password change. It can also be used to request a report on a user's status. */\n    UserRequest: 'BE',\n    /** UserResponse\n        This message is used to respond to a user request message, it reports the status of the user after the completion of any action requested in the user request message. */\n    UserResponse: 'BF',\n    /** CollateralInquiryAck\n        Used to respond to a Collateral Inquiry in the following situations:\n        \u2022 When the CollateralInquiry will result in an out of band response (such as a file transfer).\n        \u2022 When the inquiry is otherwise valid but no collateral is found to match the criteria specified on the Collateral Inquiry message.\n        \u2022 When the Collateral Inquiry is invalid based upon the business rules of the counterparty. */\n    CollateralInquiryAck: 'BG',\n    /** ConfirmationRequest\n        The Confirmation Request message is used to request a Confirmation message. */\n    ConfirmationRequest: 'BH',\n    /** ContraryIntentionReport\n        The Contrary Intention Report is used for reporting of contrary expiration quantities for Saturday expiring options. This information is required by options exchanges for regulatory purposes. */\n    ContraryIntentionReport: 'BO',\n    /** SecurityDefinitionUpdateReport\n        This message is used for reporting updates to a product security master file. Updates could be the result of corporate actions or other business events. Updates may include additions, modifications or deletions. */\n    SecurityDefinitionUpdateReport: 'BP',\n    /** SecurityListUpdateReport\n        The Security List Update Report is used for reporting updates to a Contract Security Masterfile. Updates could be due to Corporate Actions or other business events. Update may include additions, modifications and deletions. */\n    SecurityListUpdateReport: 'BK',\n    /** AdjustedPositionReport\n        Used to report changes in position, primarily in equity options, due to modifications to the underlying due to corporate actions */\n    AdjustedPositionReport: 'BL',\n    /** AllocationInstructionAlert\n        This message is used in a 3-party allocation model (buy-side and sell-side using a central clearing entity) where notification of group creation and group updates to counterparties is needed. The message will also carry trade information that comprised the group to the counterparties. */\n    AllocationInstructionAlert: 'BM',\n    /** ExecutionAck\n        The Execution Report Acknowledgement message is an optional message that provides dual functionality to notify a trading partner that an electronically received execution has either been accepted or rejected (DK'd). */\n    ExecutionAck: 'BN',\n    /** TradingSessionList\n        The Trading Session List message is sent as a response to a Trading Session List Request. The Trading Session List should contain the characteristics of the trading session and the current state of the trading session. */\n    TradingSessionList: 'BJ',\n    /** TradingSessionListRequest\n        The Trading Session List Request is used to request a list of trading sessions available in a market place and the state of those trading sessions. A successful request will result in a response from the counterparty of a Trading Session List (MsgType=BJ) message that contains a list of zero or more trading sessions. */\n    TradingSessionListRequest: 'BI',\n    /** SettlementObligationReport\n        The Settlement Obligation Report message provides a central counterparty, institution, or individual counterparty with a capacity for reporting the final details of a currency settlement obligation. */\n    SettlementObligationReport: 'BQ',\n    /** DerivativeSecurityListUpdateReport\n        The Derivative Security List Update Report message is used to send updates to an option family or the strikes that comprise an option family. */\n    DerivativeSecurityListUpdateReport: 'BR',\n    /** TradingSessionListUpdateReport\n        The Trading Session List Update Report is used by marketplaces to provide intra-day updates of trading sessions when there are changes to one or more trading sessions. */\n    TradingSessionListUpdateReport: 'BS',\n    /** MarketDefinitionRequest\n        The Market Definition Request message is used to request for market structure information from the Respondent that receives this request. */\n    MarketDefinitionRequest: 'BT',\n    /** MarketDefinition\n        The MarketDefinition(35=BU) message is used to respond to MarketDefinitionRequest(35=BT). In a subscription, it will be used to provide the initial snapshot of the information requested. Subsequent updates are provided by the MarketDefinitionUpdateReport(35=BV). */\n    MarketDefinition: 'BU',\n    /** MarketDefinitionUpdateReport\n        In a subscription for market structure information, this message is used once the initial snapshot of the information has been sent using the MarketDefinition(35=BU) message. */\n    MarketDefinitionUpdateReport: 'BV',\n    /** ApplicationMessageRequest\n        This message is used to request a retransmission of a set of one or more messages generated by the application specified in RefApplID (1355). */\n    ApplicationMessageRequest: 'BW',\n    /** ApplicationMessageRequestAck\n        This message is used to acknowledge an Application Message Request providing a status on the request (i.e. whether successful or not). This message does not provide the actual content of the messages to be resent. */\n    ApplicationMessageRequestAck: 'BX',\n    /** ApplicationMessageReport\n        This message is used for three difference purposes: to reset the ApplSeqNum (1181) of a specified ApplID (1180). to indicate that the last message has been sent for a particular ApplID, or as a keep-alive mechanism for ApplIDs with infrequent message traffic. */\n    ApplicationMessageReport: 'BY',\n    /** OrderMassActionReport\n        The Order Mass Action Report is used to acknowledge an Order Mass Action Request. Note that each affected order that is suspended or released or canceled is acknowledged with a separate Execution Report for each order. */\n    OrderMassActionReport: 'BZ',\n    /** OrderMassActionRequest\n        The Order Mass Action Request message can be used to request the suspension or release of a group of orders that match the criteria specified within the request. This is equivalent to individual Order Cancel Replace Requests for each order with or without adding \"S\" to the ExecInst values. It can also be used for mass order cancellation. */\n    OrderMassActionRequest: 'CA',\n    /** UserNotification\n        The User Notification message is used to notify one or more users of an event or information from the sender of the message. This message is usually sent unsolicited from a marketplace (e.g. Exchange, ECN) to a market participant. */\n    UserNotification: 'CB',\n    /** StreamAssignmentRequest\n        In certain markets where market data aggregators fan out to end clients the pricing streams provided by the price makers, the price maker may assign the clients to certain pricing streams that the price maker publishes via the aggregator. An example of this use is in the FX markets where clients may be assigned to different pricing streams based on volume bands and currency pairs. */\n    StreamAssignmentRequest: 'CC',\n    /** StreamAssignmentReport\n        The StreamAssignmentReport(35=CD) message is in response to the StreamAssignmentRequest(35=CC) message. It provides information back to the aggregator as to which clients to assign to receive which price stream based on requested CCY pair. This message can be sent unsolicited to the Aggregator from the Price Maker. */\n    StreamAssignmentReport: 'CD',\n    /** StreamAssignmentReportACK\n        This message is used to respond to the Stream Assignment Report, to either accept or reject an unsolicited assingment. */\n    StreamAssignmentReportACK: 'CE',\n    /** PartyDetailsListRequest\n        The PartyDetailsListRequest is used to request party detail information. */\n    PartyDetailsListRequest: 'CF',\n    /** PartyDetailsListReport\n        The PartyDetailsListReport message is used to disseminate party details between counterparties. PartyDetailsListReport messages may be sent in response to a PartyDetailsListRequest message or sent unsolicited. */\n    PartyDetailsListReport: 'CG',\n    /** MarginRequirementInquiry\n        The purpose of this message is to initiate a margin requirement inquiry for a margin account. The inquiry may be submitted at the detail level or the summary level. It can also be used to inquire margin excess/deficit or net position information. Margin excess/deficit will provide information about the surplus or shortfall compared to the previous trading day or a more recent margin calculation. An inquiry for net position information will trigger one or more PositionReport messages instead of one or more MarginRequirementReport messages.\n        If the inquiry is made at the detail level, an Instrument block must be provided with the desired level of detail. If the inquiry is made at the summary level, the Instrument block is not provided, implying a summary request is being made. For example, if the inquiring firm specifies the Security Type of \u201CFUT\u201D in the Instrument block, then a detail report will be generated containing the margin requirements for all futures positions for the inquiring account. Similarly, if the inquiry is made at the summary level, the report will contain the total margin requirement aggregated to the margin account level. */\n    MarginRequirementInquiry: 'CH',\n    /** MarginRequirementInquiryAck\n        Used to respond to a Margin Requirement Inquiry. */\n    MarginRequirementInquiryAck: 'CI',\n    /** MarginRequirementReport\n        The Margin Requirement Report returns information about margin requirement either as on overview across all margin accounts or on a detailed level due to the inquiry making use of the optional Instrument component block. Application sequencing can be used to re-request a range of reports. */\n    MarginRequirementReport: 'CJ',\n    /** PartyDetailsListUpdateReport\n        The PartyDetailsListUpdateReport(35=CK) is used to disseminate updates to party detail information. */\n    PartyDetailsListUpdateReport: 'CK',\n    /** PartyRiskLimitsRequest\n        The PartyRiskLimitsRequest message is used to request for risk information for specific parties, specific party roles or specific instruments. */\n    PartyRiskLimitsRequest: 'CL',\n    /** PartyRiskLimitsReport\n        The PartyRiskLimitsReport message is used to communicate party risk limits. The message can either be sent as a response to the PartyRiskLimitsRequest message or can be published unsolicited. */\n    PartyRiskLimitsReport: 'CM',\n    /** SecurityMassStatusRequest */\n    SecurityMassStatusRequest: 'CN',\n    /** SecurityMassStatus */\n    SecurityMassStatus: 'CO',\n    /** AccountSummaryReport\n        The AccountSummaryReport is provided by the clearinghouse to its clearing members on a daily basis. It contains margin, settlement, collateral and pay/collect data for each clearing member level account type. Clearing member account types will be described through use of the Parties component and PtysSubGrp sub-component.\n        In certain usages, the clearing members can send the AccountSummaryReport message to the clearinghouse as needed. For example, clearing members can send this message to the clearinghouse to identify the value of collateral for each customer (to satisfy CFTC Legally Segregated Operationally Commingled (LSOC) regulatory reporting obligations).\n        Clearing organizations can also send the AccountSummaryReport message to regulators to meet regulatory reporting obligations. For example, clearing organizations can use this message to submit daily reports for each clearing member (\u201CCM\u201D) by house origin and by each customer origin for all futures, options, and swaps positions, and all securities positions held in a segregated account or pursuant to a cross margining agreement, to a regulator (e.g. to the CFTC to meet Part 39, Section 39.19 reporting obligations). */\n    AccountSummaryReport: 'CQ',\n    /** PartyRiskLimitsUpdateReport\n        The PartyRiskLimitsUpdateReport(35=CR) is used to convey incremental changes to risk limits. It is similar to the regular report but uses the PartyRiskLimitsUpdateGrp component instead of the PartyRiskLimitsGrp component to include an update action. */\n    PartyRiskLimitsUpdateReport: 'CR',\n    /** PartyRiskLimitsDefinitionRequest\n        PartyRiskLimitDefinitionRequest is used for defining new risk limits. */\n    PartyRiskLimitsDefinitionRequest: 'CS',\n    /** PartyRiskLimitsDefinitionRequestAck\n        PartyRiskLimitDefinitionRequestAck is used for accepting (with or without changes) or rejecting the definition of risk limits. */\n    PartyRiskLimitsDefinitionRequestAck: 'CT',\n    /** PartyEntitlementsRequest\n        The PartyEntitlementsRequest message is used to request for entitlement information for one or more party(-ies), specific party role(s), or specific instruments(s). */\n    PartyEntitlementsRequest: 'CU',\n    /** PartyEntitlementsReport\n        The PartyEntitlementsReport is used to report entitlements for one or more parties, party role(s), or specific instrument(s). */\n    PartyEntitlementsReport: 'CV',\n    /** QuoteAck\n        The QuoteAck(35=CW) message is used to acknowledge a Quote(35=S) submittal or request to cancel an individual quote using the QuoteCancel(35=Z) message during a Quote/Negotiation dialog. */\n    QuoteAck: 'CW',\n    /** PartyDetailsDefinitionRequest\n        The PartyDetailsDefinitionRequest(35=CX) is used for defining new parties and modifying or deleting existing parties information, including the relationships between parties.\n        The recipient of the message responds with a PartyDetailsDefinitionRequestAck(35=CY) to indicate whether the request was accepted or rejected. */\n    PartyDetailsDefinitionRequest: 'CX',\n    /** PartyDetailsDefinitionRequestAck\n        The PartyDetailsDefinitionRequestAck(35=CY) is used as a response to the PartyDetailsDefinitionRequest(35=CX) message. The request can be accepted (with or without changes) or rejected. */\n    PartyDetailsDefinitionRequestAck: 'CY',\n    /** PartyEntitlementsUpdateReport\n        The PartyEntitlementsUpdateReport(35=CZ) is used to convey incremental changes to party entitlements. It is similar to the PartyEntitlementsReport(35=CV). This message uses the PartyEntitlementsUpdateGrp component which includes the ability to specify an update action using ListUpdateAction(1324). */\n    PartyEntitlementsUpdateReport: 'CZ',\n    /** PartyEntitlementsDefinitionRequest\n        The PartyEntitlementsDefinitionRequest(35=DA) is used for defining new entitlements, and modifying or deleting existing entitlements for the specified party(-ies). */\n    PartyEntitlementsDefinitionRequest: 'DA',\n    /** PartyEntitlementsDefinitionRequestAck\n        The PartyEntitlementsDefinitionRequestAck(35=DB) is used as a response to the PartyEntitlemensDefinitionRequest(35=DA) to accept (with or without changes) or reject the definition of party entitlements. */\n    PartyEntitlementsDefinitionRequestAck: 'DB',\n    /** TradeMatchReport\n        The TradeMatchReport(35=DC) message is used by exchanges and ECN\u2019s to report matched trades to central counterparties (CCPs) as an atomic event. The message is used to express the one-to-one, one-to-many and many-to-many matches as well as implied matches in which more complex instruments can match with simpler instruments. */\n    TradeMatchReport: 'DC',\n    /** TradeMatchReportAck\n        The TradeMatchReportAck(35=DD) is used to respond to theTradeMatchReport(35=DC) message. It may be used to report on the status of the request (e.g. accepting the request or rejecting the request). */\n    TradeMatchReportAck: 'DD',\n    /** PartyRiskLimitsReportAck\n        PartyRiskLimitsReportAck is an optional message used as a response to the PartyRiskLimitReport(35=CM) or PartyRiskLimitUpdateReport(35=CR) messages to acknowledge or reject those messages. */\n    PartyRiskLimitsReportAck: 'DE',\n    /** PartyRiskLimitCheckRequest\n        PartyRiskLimitCheckRequest is used to request for approval of credit or risk limit amount intended to be used by a party in a transaction from another party that holds the information. */\n    PartyRiskLimitCheckRequest: 'DF',\n    /** PartyRiskLimitCheckRequestAck\n        PartyRiskLimitCheckRequestAck is used to acknowledge a PartyRiskLimitCheckRequest(35=DF) message and to respond whether the limit check request was approved or not. When used to accept the PartyRiskLimitCheckRequest(35=DF) message the Respondent may also include the limit amount that was approved. */\n    PartyRiskLimitCheckRequestAck: 'DG',\n    /** PartyActionRequest\n        The PartyActionRequest message is used suspend or halt the specified party from further trading activities at the Respondent. The Respondent must respond with a PartyActionReport(35=DI) message. */\n    PartyActionRequest: 'DH',\n    /** PartyActionReport\n        Used to respond to the PartyActionRequest(35=DH) message, indicating whether the request has been received, accepted or rejected. Can also be used in an unsolicited manner to report party actions, e.g. reinstatements after a manual intervention out of band. */\n    PartyActionReport: 'DI',\n    /** MassOrder\n        The MassOrder(35=DJ) message can be used to add, modify or delete multiple unrelated orders with a single message. Apart from clearing related attributes, only the key order attributes for high performance trading are available. */\n    MassOrder: 'DJ',\n    /** MassOrderAck\n        The mass order acknowledgement message is used to acknowledge the receipt of and the status for a MassOrder(35=DJ) message. */\n    MassOrderAck: 'DK',\n    /** PositionTransferInstruction\n        The PositionTransferInstruction(35=DL) is sent by clearing firms to CCPs to initiate position transfers, or to accept or decline position transfers. */\n    PositionTransferInstruction: 'DL',\n    /** PositionTransferInstructionAck\n        The PositionTransferInstructionAck(35=DM) is sent by CCPs to clearing firms to acknowledge position transfer instructions, and to report errors processing position transfer instructions. */\n    PositionTransferInstructionAck: 'DM',\n    /** PositionTransferReport\n        The PositionTransferReport(35=DN) is sent by CCPs to clearing firms indicating of positions that are to be transferred to the clearing firm, or to report on status of the transfer to the clearing firms involved in the transfer process. */\n    PositionTransferReport: 'DN',\n    /** MarketDataStatisticsRequest\n        The MarketDataStatisticsRequest(35=DO) is used to request for statistical data. The simple form is to use an identifier (MDStatisticID(2475)) assigned by the market place which would denote a pre-defined statistical report. Alternatively, or also in addition, the request can define a number of parameters for the desired statistical information. */\n    MarketDataStatisticsRequest: 'DO',\n    /** MarketDataStatisticsReport\n        The MarketDataStatisticsReport(35=DP) is used to provide unsolicited statistical information or in response to a specific request. Each report contains a set of statistics for a single entity which could be a market, a market segment, a security list or an instrument. */\n    MarketDataStatisticsReport: 'DP',\n    /** CollateralReportAck\n        CollateralReportAck(35=DQ) is used as a response to the CollateralReport(35=BA). It can be used to reject a CollateralReport(35=BA) when the content of the report is invalid based on the business rules of the receiver. The message may also be used to acknowledge receipt of a valid CollateralReport(35=BA). */\n    CollateralReportAck: 'DQ',\n    /** MarketDataReport\n        The MarketDataReport(35=DR) message is used to provide delimiting references (e.g. start and end markers in a continuous broadcast) and details about the number of market data messages sent in a given distribution cycle. */\n    MarketDataReport: 'DR',\n    /** CrossRequest\n        The CrossRequest(35=DS) message is used to indicate the submission of orders or quotes that may result in a crossed trade. */\n    CrossRequest: 'DS',\n    /** CrossRequestAck\n        The CrossRequestAck(35=DT) message is used to confirm the receipt of a CrossRequest(35=DS) message. */\n    CrossRequestAck: 'DT',\n    /** AllocationInstructionAlertRequest\n        This message is used in a clearinghouse 3-party allocation model to request for AllocationInstructionAlert(35=BM) from the clearinghouse. The request may be used to obtain a one-time notification of the status of an allocation group. */\n    AllocationInstructionAlertRequest: 'DU',\n    /** AllocationInstructionAlertRequestAck\n        This message is used in a clearinghouse 3-party allocation model to acknowledge a AllocationInstructionAlertRequest(35=DU) message for an AllocationInstructionAlert(35=BM) message from the clearinghouse. */\n    AllocationInstructionAlertRequestAck: 'DV',\n    /** TradeAggregationRequest\n        TradeAggregationRequest(35=DW) is used to request that the identified trades between the initiator and respondent be aggregated together for further processing. */\n    TradeAggregationRequest: 'DW',\n    /** TradeAggregationReport\n        TradeAggregationReport(35=DX) is used to respond to the TradeAggregationRequest(35=DW) message. It provides the status of the request (e.g. accepted or rejected) and may also provide additional information supplied by the respondent. */\n    TradeAggregationReport: 'DX',\n    /** PayManagementReport\n        PayManagementReport(35=EA) may be used to respond to the PayManagementRequest(35=DY) message. It provides the status of the request (e.g. accepted, disputed) and may provide additional information related to the request.\n        PayManagementReport(35=EA) may also be sent unsolicited by the broker to a client. In which case the client may acknowledge and resolve disputes out-of-band or with a simple PayManagementReportAck(35=EB).\n        PayManagementReport(35=EA) may also be sent unsolicited to report the progress status of the payment itself with PayReportTransType(2804)=2 (Status). */\n    PayManagementReport: 'EA',\n    /** PayManagementReportAck\n        PayManagementReportAck(35=EB) is used as a response to the PayManagementReport(35=EA) message. It may be used to accept, reject or dispute the details of the PayManagementReport(35=EA) depending on the business rules of the receiver. This message may also be used to acknowledge the receipt of a PayManagementReport(35=EA) message. */\n    PayManagementReportAck: 'EB',\n    /** PayManagementRequest\n        PayManagementRequest(35=DY) message is used to communicate a future or expected payment to be made or received related to a trade or contract after its settlement. */\n    PayManagementRequest: 'DY',\n    /** PayManagementRequestAck\n        PayManagementRequestAck(35=DZ) is used to acknowledge the receipt of the PayManagementRequest(35=DY) message (i.e. a technical acknowledgement of receipt). Acceptance or rejection of the request is reported in the corresponding PayManagementReport(35=EA). */\n    PayManagementRequestAck: 'DZ',\n    /** SettlementStatusRequest\n        SettlementStatusRequest(35=EC) is used to request for the settlement status of a trade. */\n    SettlementStatusRequest: 'EC',\n    /** SettlementStatusRequestAck\n        SettlementStatusRequestAck(35=ED) is used to respond to the SettlementStatusRequest(35=EC) to acknowledge the request and provide status for the request message. */\n    SettlementStatusRequestAck: 'ED',\n    /** SettlementStatusReport\n        SettlementStatusReport(35=EE) is a response to the SettlementStatusRequest(35=EC) to provide settlement status for the requested trade. It may also be sent unsolicited without an explicit request message by the party able to provide the settlement status for the trade identified in the report message. */\n    SettlementStatusReport: 'EE',\n    /** SettlementStatusReportAck\n        SettlementStatusReportAck(35=EF) is used to respond to the SettlementStatusReport(35=EE) to acknowledge or reject the report. */\n    SettlementStatusReportAck: 'EF',\n    /** SecurityRiskMetricsReport\n        SecurityRiskMetricsReport(35=EG) is used for publishing the risk metrics, valuation metrics or analytics of one or more securities, or for an option series. */\n    SecurityRiskMetricsReport: 'EG',\n    /** AlgoCertificateRequest\n        AlgoCertificateRequest(35=EH) is used to request algo testing certificate information for one or more algorithms. */\n    AlgoCertificateRequest: 'EH',\n    /** AlgoCertificateRequestAck\n        AlgoCertificateRequestAck(35=EI) is used to respond to the AlgoCertificateRequest(35=EH) to acknowledge the request and provide status for the request message. */\n    AlgoCertificateRequestAck: 'EI',\n    /** AlgoCertificateReport\n        AlgoCertificateReport(35=EJ) is a response to the AlgoCertificateRequest(35=EH) to certify an algo. It may also be sent unsolicited without an explicit request message by the party able to provide certificate information for the algo identified in the report message. */\n    AlgoCertificateReport: 'EJ',\n    /** AlgoCertificateReportAck\n        AlgoCertificateReportAck(35=EK) is used to respond to the AlgoCertificateReport(35=EJ) to acknowledge or reject the report message. */\n    AlgoCertificateReportAck: 'EK',\n    /** TestSuiteDefinitionRequest\n        TestSuiteDefinitionRequest(35=EL) is used to convey to the test system the suite of test scenarios to perform. */\n    TestSuiteDefinitionRequest: 'EL',\n    /** TestSuiteDefinitionRequestAck\n        TestSuiteDefinitionRequestAck(35=EM) is used to respond to the TestSuiteDefinitionRequest(35= EL) to acknowledge the request and provide status for the request message. */\n    TestSuiteDefinitionRequestAck: 'EM',\n    /** TestActionRequest\n        TestActionRequest(35=EN) is used to manage test executions or request for testing activity state of the identified test suite. */\n    TestActionRequest: 'EN',\n    /** TestActionRequestAck\n        TestActionRequestAck(35=EO) is used to respond to the TestActionRequest(35=EN) to acknowledge the request and provide status for the request message. */\n    TestActionRequestAck: 'EO',\n    /** TestActionReport\n        TestActionReport(35=EP) is used to report the testing results of the identified test suite that has been executed with TestActionRequest(35=EN). In the context of algorithmic trading, the results may be used to create a certificate for the algorithm upon meeting the success criteria. */\n    TestActionReport: 'EP',\n    /** MarketDataAck\n        This message may be used as a response to the MarketDataSnapshotFullRefresh(35=W) and MarketDataIncrementalRefresh(35=X) messages. */\n    MarketDataAck: 'EQ',\n    /** SecurityStatusAck\n        This message may be used as a response to the SecurityStatus(35=f) message. */\n    SecurityStatusAck: 'ER',\n    /** TradingSessionStatusAck\n        This message may be used as a response to the TradingSessionStatus(35=h) message. */\n    TradingSessionStatusAck: 'ES',\n} as const);\n\nexport type MsgType = (typeof MsgType)[keyof typeof MsgType];\n", "/**\n * Indicate whether a trade is eligible to be reported to more than one regulatory jurisdictions, e.g. due to overlapping reporting rules that require reporting to different jurisdictions.\n * - Tag: 2963\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MultiJurisdictionReportingIndicator = Object.freeze({\n    /** Trade not eligible for multi-jurisdiction reporting */\n    NotMultiJrsdctnEligible: 0,\n    /** Trade eligible for multi-jurisdiction reporting */\n    MultiJrsdctnEligible: 1,\n} as const);\n\nexport type MultiJurisdictionReportingIndicator =\n    (typeof MultiJurisdictionReportingIndicator)[keyof typeof MultiJurisdictionReportingIndicator];\n", "/**\n * Used to indicate how the multi-legged security (e.g. option strategies, spreads, etc.) is being reported.\n * - Tag: 442\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const MultiLegReportingType = Object.freeze({\n    /** Single security (default if not specified) */\n    SingleSecurity: '1',\n    /** Individual leg of a multi-leg security */\n    IndividualLegOfAMultiLegSecurity: '2',\n    /** Multi-leg security */\n    MultiLegSecurity: '3',\n} as const);\n\nexport type MultiLegReportingType = (typeof MultiLegReportingType)[keyof typeof MultiLegReportingType];\n", "/**\n * Indicates the method of execution reporting requested by issuer of the order.\n * - Tag: 563\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MultiLegRptTypeReq = Object.freeze({\n    /** Report by mulitleg security only (do not report legs) */\n    ReportByMulitlegSecurityOnly: 0,\n    /** Report by multileg security and by instrument legs belonging to the multileg security */\n    ReportByMultilegSecurityAndInstrumentLegs: 1,\n    /** Report by instrument legs belonging to the multileg security only (do not report status of multileg security) */\n    ReportByInstrumentLegsOnly: 2,\n} as const);\n\nexport type MultiLegRptTypeReq = (typeof MultiLegRptTypeReq)[keyof typeof MultiLegRptTypeReq];\n", "/**\n * Specifies the type of multileg order. Defines whether the security is pre-defined or user-defined. Note that MultilegModel(1377)=2(User-defined, Non-Securitized, Multileg) does not apply for Securities.\n * - Tag: 1377\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MultilegModel = Object.freeze({\n    /** Predefined Multileg Security */\n    PredefinedMultilegSecurity: 0,\n    /** User-defined Multileg Security */\n    UserDefinedMultilegSecurity: 1,\n    /** User-defined, Non-Securitized, Multileg */\n    UserDefined: 2,\n} as const);\n\nexport type MultilegModel = (typeof MultilegModel)[keyof typeof MultilegModel];\n", "/**\n * Code to represent how the multileg price is to be interpreted when applied to the legs.\n    (See Volume : \"Glossary\" for further value definitions)\n * - Tag: 1378\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const MultilegPriceMethod = Object.freeze({\n    /** Net Price */\n    NetPrice: 0,\n    /** Reversed Net Price */\n    ReversedNetPrice: 1,\n    /** Yield Difference */\n    YieldDifference: 2,\n    /** Individual */\n    Individual: 3,\n    /** Contract Weighted Average Price */\n    ContractWeightedAveragePrice: 4,\n    /** Multiplied Price */\n    MultipliedPrice: 5,\n} as const);\n\nexport type MultilegPriceMethod = (typeof MultilegPriceMethod)[keyof typeof MultilegPriceMethod];\n", "/**\n * Type of NBBO information.\n * - Tag: 2831\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const NBBOEntryType = Object.freeze({\n    /** Bid\n        May apply to price or quantity. */\n    Bid: 0,\n    /** Offer\n        May apply to price or quantity. */\n    Offer: 1,\n    /** Mid-price */\n    MidPrice: 2,\n} as const);\n\nexport type NBBOEntryType = (typeof NBBOEntryType)[keyof typeof NBBOEntryType];\n", "/**\n * Source of NBBO information.\n * - Tag: 2834\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const NBBOSource = Object.freeze({\n    /** Not applicable\n        Default if not specified. NBBO information is not applicable. NBBOEntryType(2831), NBBOPrice(2832), and NBBOQty(2833) must be omitted. */\n    NotApplicable: 0,\n    /** Direct\n        Information is retrieved directly from an exchange or other electronic execution venue. There may be a performance advantage compared to retrieving the information from a source consolidating multiple feeds. */\n    Direct: 1,\n    /** Securities Information Processor\n        The Securities Information Processor (SIP) links the U.S. markets by processing and consolidating all protected bid/ask quotes and trades from every trading venue into a single, easily consumed data feed. */\n    SIP: 2,\n    /** Hybrid\n        A combination of two or more data feeds is used as NBBO source. In the context of US CAT this is used for a combination of direct and SIP feeds. */\n    Hybrid: 3,\n} as const);\n\nexport type NBBOSource = (typeof NBBOSource)[keyof typeof NBBOSource];\n", "/**\n * Specifies the negotiation method to be used.\n * - Tag: 2115\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const NegotiationMethod = Object.freeze({\n    /** Auto spot\n        The spot price for the reference or benchmark security is provided automatically. */\n    AutoSpot: 0,\n    /** Negotiated spot\n        The spot price for the reference or benchmark security is to be negotiated. */\n    NegotiatedSpot: 1,\n    /** The spot price for the reference or benchmark security is to be negotiated via phone or voice.\n        The spot price for the reference of benchmark security is to be negotiated via phone or voice. */\n    PhoneSpot: 2,\n} as const);\n\nexport type NegotiationMethod = (typeof NegotiationMethod)[keyof typeof NegotiationMethod];\n", "/**\n * Code to represent whether value is net (inclusive of tax) or gross.\n * - Tag: 430\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const NetGrossInd = Object.freeze({\n    /** Net */\n    Net: 1,\n    /** Gross */\n    Gross: 2,\n} as const);\n\nexport type NetGrossInd = (typeof NetGrossInd)[keyof typeof NetGrossInd];\n", "/**\n * Indicates the type and level of details required for a Network Status Request Message\n    Boolean logic applies EG If you want to subscribe for changes to certain id's then UserRequestType =0 (8+2), Snapshot for certain ID's = 9 (8+1)\n * - Tag: 935\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const NetworkRequestType = Object.freeze({\n    /** Snapshot */\n    Snapshot: 1,\n    /** Subscribe */\n    Subscribe: 2,\n    /** Stop Subscribing */\n    StopSubscribing: 4,\n    /** Level of Detail, then NoCompID's becomes required */\n    LevelOfDetail: 8,\n} as const);\n\nexport type NetworkRequestType = (typeof NetworkRequestType)[keyof typeof NetworkRequestType];\n", "/**\n * Indicates the type of Network Response Message.\n * - Tag: 937\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const NetworkStatusResponseType = Object.freeze({\n    /** Full */\n    Full: 1,\n    /** Incremental Update */\n    IncrementalUpdate: 2,\n} as const);\n\nexport type NetworkStatusResponseType = (typeof NetworkStatusResponseType)[keyof typeof NetworkStatusResponseType];\n", "/**\n * Category of news message.\n * - Tag: 1473\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const NewsCategory = Object.freeze({\n    /** Company News */\n    CompanyNews: 0,\n    /** Marketplace News */\n    MarketplaceNews: 1,\n    /** Financial Market News */\n    FinancialMarketNews: 2,\n    /** Technical News */\n    TechnicalNews: 3,\n    /** Other News */\n    OtherNews: 99,\n} as const);\n\nexport type NewsCategory = (typeof NewsCategory)[keyof typeof NewsCategory];\n", "/**\n * Type of reference to another News(35=B) message item.\n * - Tag: 1477\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const NewsRefType = Object.freeze({\n    /** Replacement */\n    Replacement: 0,\n    /** Other language */\n    OtherLanguage: 1,\n    /** Complimentary */\n    Complimentary: 2,\n    /** Withdrawal\n        Withdrawal of the referenced news item, e.g. to correct an error. */\n    Withdrawal: 3,\n} as const);\n\nexport type NewsRefType = (typeof NewsRefType)[keyof typeof NewsRefType];\n", "/**\n * Defines the treatment of non-cash dividends.\n * - Tag: 42258\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const NonCashDividendTreatment = Object.freeze({\n    /** Potential adjustment event\n        The treatment of any non-cash dividend shall be determined in accordance with the potential adjustment event provisions. */\n    PotentialAdjustment: 0,\n    /** Cash equivalent\n        Any non-cash dividend shall be treated as a declared cash equivalent dividend. */\n    CashEquivalent: 1,\n} as const);\n\nexport type NonCashDividendTreatment = (typeof NonCashDividendTreatment)[keyof typeof NonCashDividendTreatment];\n", "/**\n * Specifies the type of date (e.g. adjusted for holidays).\n * - Tag: 40827\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const NonDeliverableFixingDateType = Object.freeze({\n    /** Unadjusted */\n    Unadjusted: 0,\n    /** Adjusted */\n    Adjusted: 1,\n} as const);\n\nexport type NonDeliverableFixingDateType =\n    (typeof NonDeliverableFixingDateType)[keyof typeof NonDeliverableFixingDateType];\n", "/**\n * Number of Side repeating group instances.\n * - Tag: 552\n * - FIX Specification type: NumInGroup\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const NoSides = Object.freeze({\n    /** One Side */\n    OneSide: 1,\n    /** Both Sides */\n    BothSides: 2,\n} as const);\n\nexport type NoSides = (typeof NoSides)[keyof typeof NoSides];\n", "/**\n * Reason for order being unaffected by mass action even though it belongs to the orders covered by MassActionScope(1374).\n * - Tag: 2677\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const NotAffectedReason = Object.freeze({\n    /** Order suspended */\n    OrderSuspended: 0,\n    /** Instrument suspended */\n    InstrumentSuspended: 1,\n} as const);\n\nexport type NotAffectedReason = (typeof NotAffectedReason)[keyof typeof NotAffectedReason];\n", "/**\n * Indicates whether or not details should be communicated to BrokerOfCredit (i.e. step-in broker).\n * - Tag: 208\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const NotifyBrokerOfCredit = Object.freeze({\n    /** Details should not be communicated */\n    DetailsShouldNotBeCommunicated: 'N',\n    /** Details should be communicated */\n    DetailsShouldBeCommunicated: 'Y',\n} as const);\n\nexport type NotifyBrokerOfCredit = (typeof NotifyBrokerOfCredit)[keyof typeof NotifyBrokerOfCredit];\n", "/**\n * Type of reference obligation for credit derivatives contracts.\n * - Tag: 1739\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ObligationType = Object.freeze({\n    /** Bond */\n    Bond: '0',\n    /** Convertible bond */\n    ConvertBond: '1',\n    /** Mortgage */\n    Mortgage: '2',\n    /** Loan */\n    Loan: '3',\n} as const);\n\nexport type ObligationType = (typeof ObligationType)[keyof typeof ObligationType];\n", "/**\n * This trade is to be treated as an odd lot\n    If this field is not specified, the default will be \"N\"\n * - Tag: 575\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const OddLot = Object.freeze({\n    /** Treat as round lot (default) */\n    TreatAsRoundLot: 'N',\n    /** Treat as odd lot */\n    TreatAsOddLot: 'Y',\n} as const);\n\nexport type OddLot = (typeof OddLot)[keyof typeof OddLot];\n", "/**\n * Indicates the trade is a result of an offset or onset.\n * - Tag: 1849\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OffsetInstruction = Object.freeze({\n    /** Offset\n        A type of transaction where an executing firm gives up a trade as a result of an allocation. Or, in the case of a reversal of an allocation, the take-up (claiming) firm's transaction. */\n    Offset: 0,\n    /** Onset\n        A type of transaction where a take-up (claiming) firm takes up a trade as a result of an allocation. Or, in the case of a reversal of an allocation, the executing firm's transaction. */\n    Onset: 1,\n} as const);\n\nexport type OffsetInstruction = (typeof OffsetInstruction)[keyof typeof OffsetInstruction];\n", "/**\n * Indicates the type of the currency rate being used. This is relevant for currencies that have offshore rate that different from onshore rate.\n * - Tag: 2795\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OffshoreIndicator = Object.freeze({\n    /** Regular - Default if not specified.\n        The notion of onshore and offshore rates does not apply. */\n    Regular: 0,\n    /** Offshore\n        Used to indicate that the rate specified is an offshore rate which differs from its onshore rate. */\n    Offshore: 1,\n    /** Onshore\n        Used to indicate that the rate specified is an onshore rate which differs from its offshore rate. */\n    Onshore: 2,\n} as const);\n\nexport type OffshoreIndicator = (typeof OffshoreIndicator)[keyof typeof OffshoreIndicator];\n", "/**\n * Indicates whether the resulting position after a trade should be an opening position or closing position. Used for omnibus accounting - where accounts are held on a gross basis instead of being netted together.\n * - Tag: 77\n * - FIX Specification type: char\n * - FIX Specification version: FIX42\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const OpenClose = Object.freeze({\n    /** Close */\n    Close: 'C',\n    /** Open */\n    Open: 'O',\n} as const);\n\nexport type OpenClose = (typeof OpenClose)[keyof typeof OpenClose];\n", "/**\n * Flag that identifies a price.\n * - Tag: 286\n * - FIX Specification type: char\n * - FIX Specification version: FIX42\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const OpenCloseSettleFlag = Object.freeze({\n    /** Daily Open / Close / Settlement price */\n    DailyOpen: '0',\n    /** Session Open / Close / Settlement price */\n    SessionOpen: '1',\n    /** Delivery Settlement price */\n    DeliverySettlementEntry: '2',\n} as const);\n\nexport type OpenCloseSettleFlag = (typeof OpenCloseSettleFlag)[keyof typeof OpenCloseSettleFlag];\n", "/**\n * Flag that identifies a market data entry. (Prior to FIX 4.3 this field was of type char)\n * - Tag: 286\n * - FIX Specification type: MultipleCharValue\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const OpenCloseSettlFlag = Object.freeze({\n    /** Daily Open / Close / Settlement entry */\n    DailyOpen: '0',\n    /** Session Open / Close / Settlement entry */\n    SessionOpen: '1',\n    /** Delivery Settlement entry */\n    DeliverySettlementEntry: '2',\n    /** Expected entry */\n    ExpectedEntry: '3',\n    /** Entry from previous business day */\n    EntryFromPreviousBusinessDay: '4',\n    /** Theoretical Price value */\n    TheoreticalPriceValue: '5',\n} as const);\n\nexport type OpenCloseSettlFlag = (typeof OpenCloseSettlFlag)[keyof typeof OpenCloseSettlFlag];\n", "/**\n * Specifies the type of date. When specified it applies not only to the current date but to all subsequent dates in the group until overridden with a new type.\n * - Tag: 41139\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OptionExerciseDateType = Object.freeze({\n    /** Unadjusted */\n    Unadjusted: 0,\n    /** Adjusted */\n    Adjusted: 1,\n} as const);\n\nexport type OptionExerciseDateType = (typeof OptionExerciseDateType)[keyof typeof OptionExerciseDateType];\n", "/**\n * Indicates the type of valuation method or payout trigger for an in-the-money option.\n * - Tag: 1482\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OptPayoutType = Object.freeze({\n    /** Vanilla */\n    Vanilla: 1,\n    /** Capped */\n    Capped: 2,\n    /** Digital (Binary) */\n    Binary: 3,\n    /** Asian */\n    Asian: 4,\n    /** Barrier */\n    Barrier: 5,\n    /** Digital Barrier */\n    DigitalBarrier: 6,\n    /** Lookback */\n    Lookback: 7,\n    /** Other path dependent */\n    OtherPathDependent: 8,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type OptPayoutType = (typeof OptPayoutType)[keyof typeof OptPayoutType];\n", "/**\n * The type of order attribute.\n * - Tag: 2594\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OrderAttributeType = Object.freeze({\n    /** Aggregated order\n        In the context of ESMA RTS 24 Article 2(3), when OrderAttributeValue(2595)=Y, it signifies that the order consists of several orders aggregated together. This maps to ESMA RTS value \"AGGR\". */\n    AggregatedOrder: 0,\n    /** Order pending allocation\n        In the context of ESMA RTS 24 Article 2(2), when OrderAttributeValue(2595)=Y, it signifies that the order submitter \"is authorized under the legislation of a Member State to allocate an order to its client following submission of the order to the trading venue and has not yet allocated the order to its client at the time of the submission of the order\". This maps to ESMA RTS value \"PNAL\". */\n    PendingAllocation: 1,\n    /** Liquidity provision activity order\n        In the context of ESMA RTS 24 Article 3, when OrderAttributeValue(2595)=Y, it signifies that the order was submitted \"as part of a market making strategy pursuant to Articles 17 and 18 of Directive 2014/65/EU, or is submitted as part of another activity in accordance with Article 3\" (of RTS 24). */\n    LiquidityProvisionActivityOrder: 2,\n    /** Risk reduction order\n        In the context of ESMA RTS 22 Article 4(2)(i), when OrderAttributeValue(2595)=Y, it signifies that the commodity derivative order is a transaction \"to reduce risk in an objectively measurable way in accordance with Article 57 of Directive 2014/65/EU\". */\n    RiskReductionOrder: 3,\n    /** Algorithmic order\n        When OrderAttributeValue(2595)=Y, it signifies the order submitted to the dealer/investment firm resulted from an algorithm. */\n    AlgorithmicOrder: 4,\n    /** Authorised reporter order\n        When OrderAttributeValue(2595)=Y, it signifies the order is submitted by an authorised reporter who is responsible for reporting trades resulting from the order. This may be a systematic internaliser. */\n    SystematicInternaliserOrder: 5,\n    /** All executions for the order are to be submitted to an APA\n        All executions from this order that may need to be trade reported by the order submitter under MiFID II rules will be submitted by the order receiver on the submitter's behalf to the Approved Publication Arrangement (APA) facility specified in OrderAttributeValue(2595). ESMA RTS 1. */\n    AllExecutionsSubmittedToAPA: 6,\n    /** Order execution instructed by client\n        In the context of ESMA RTS 22, Annex I, Table 2, Field 59, when OrderAttributeValue(2595)=Y, it signifies that the execution (e.g. the details of the trade including the venue of execution) was instructed by a client or by another person from outside the Investment Firm but within the same group (Field 59 'CLIENT' in ESMA 2016-1452 Guidelines). */\n    OrderExecutionInstructedByClient: 7,\n    /** Large in scale order\n        In the context of MiFIR Article 4(1)(c) and Article 9(1)(a), when OrderAttributeValue(2595)=Y, it signifies that the order size is large in scale compared to normal market size. */\n    LargeInScale: 8,\n    /** Hidden order\n        In the context of MiFIR Article 4(1)(d) and Article 9(1)(a), when OrderAttributeValue(2595)=Y, it signifies that the order is held in an order management facility of the trading venue pending disclosure. */\n    Hidden: 9,\n    /** Subject to EU share trading obligation (STO)\n        This attribute is mutually exclusive with OrderAttributeType(2594)=14 (Exempt from STO), but not mutually exclusive with OrderAttributeType(2594)=11 (Subject to UK STO).\n        In the context of the trading obligation for shares (STO) under ESMA's Article 23 of MiFIR, it signifies that the order is subject to the rules defined by ESMA. */\n    SubjectToEUSTO: 10,\n    /** Subject to UK share trading obligation (STO)\n        This attribute is mutually exclusive with OrderAttributeType(2594)=14 (Exempt from STO), but not mutually exclusive with OrderAttributeType(2594)=10 (Subject to EU STO).\n        In the context of the trading obligation for shares (STO) under ESMA's Article 23 of MiFIR, it signifies that the order is subject to UK rules defined by the FCA. */\n    SubjectToUKSTO: 11,\n    /** Representative order\n        Order was originated to represent an order received by the broker from a customer/client. */\n    RepresentativeOrder: 12,\n    /** Linkage type\n        Order is subject to regulatory linkage requirements related to customer/client orders. Can be used for US CAT order and trade level linkages between customer/client orders and representative orders. */\n    LinkageType: 13,\n    /** Exempt from share trading obligation (STO)\n        This attribute is mutually exclusive with OrderAttributeType(2594)=10 = (Subject to EU STO) and OrderAttributeType(2594)=11 = (Subject to UK STO). It can be used to override standing instructions for a trading obligation for shares (STO). It overrides the standing instructions in their entirety.\n        In the context of STO under ESMA's Article 23 of MiFIR, it signifies that the order is exempt from any share trading obligation. */\n    ExemptFromSTO: 14,\n} as const);\n\nexport type OrderAttributeType = (typeof OrderAttributeType)[keyof typeof OrderAttributeType];\n", "/**\n * Designates the capacity of the firm placing the order.\n    (as of FIX 4.3, this field replaced Rule80A (tag 47) --used in conjunction with OrderRestrictions (529) field)\n    (see Volume : \"Glossary\" for value definitions)\n * - Tag: 528\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const OrderCapacity = Object.freeze({\n    /** Agency */\n    Agency: 'A',\n    /** Proprietary */\n    Proprietary: 'G',\n    /** Individual */\n    Individual: 'I',\n    /** Principal\n        For some markets Principal may include Proprietary. */\n    Principal: 'P',\n    /** Riskless Principal */\n    RisklessPrincipal: 'R',\n    /** Agent for Other Member */\n    AgentForOtherMember: 'W',\n    /** Mixed capacity */\n    MixedCapacity: 'M',\n} as const);\n\nexport type OrderCapacity = (typeof OrderCapacity)[keyof typeof OrderCapacity];\n", "/**\n * Defines the type of interest behind a trade (fill or partial fill).\n * - Tag: 1115\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const OrderCategory = Object.freeze({\n    /** Order */\n    Order: '1',\n    /** Quote */\n    Quote: '2',\n    /** Privately Negotiated Trade */\n    PrivatelyNegotiatedTrade: '3',\n    /** Multileg order */\n    MultilegOrder: '4',\n    /** Linked order */\n    LinkedOrder: '5',\n    /** Quote Request */\n    QuoteRequest: '6',\n    /** Implied Order */\n    ImpliedOrder: '7',\n    /** Cross Order */\n    CrossOrder: '8',\n    /** Streaming price (quote) */\n    StreamingPrice: '9',\n    /** Internal Cross Order */\n    InternalCrossOrder: 'A',\n} as const);\n\nexport type OrderCategory = (typeof OrderCategory)[keyof typeof OrderCategory];\n", "/**\n * Time unit in which the OrderDelay(1428) is expressed\n * - Tag: 1429\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OrderDelayUnit = Object.freeze({\n    /** Seconds (default if not specified) */\n    Seconds: 0,\n    /** Tenths of a second */\n    TenthsOfASecond: 1,\n    /** Hundredths of a second */\n    HundredthsOfASecond: 2,\n    /** milliseconds */\n    Milliseconds: 3,\n    /** microseconds */\n    Microseconds: 4,\n    /** nanoseconds */\n    Nanoseconds: 5,\n    /** minutes */\n    Minutes: 10,\n    /** hours */\n    Hours: 11,\n    /** days */\n    Days: 12,\n    /** weeks */\n    Weeks: 13,\n    /** months */\n    Months: 14,\n    /** years */\n    Years: 15,\n} as const);\n\nexport type OrderDelayUnit = (typeof OrderDelayUnit)[keyof typeof OrderDelayUnit];\n", "/**\n * Specifies the action to be taken for the given order.\n * - Tag: 2429\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const OrderEntryAction = Object.freeze({\n    /** Add */\n    Add: '1',\n    /** Modify */\n    Modify: '2',\n    /** Delete / Cancel */\n    Delete: '3',\n    /** Suspend */\n    Suspend: '4',\n    /** Release */\n    Release: '5',\n} as const);\n\nexport type OrderEntryAction = (typeof OrderEntryAction)[keyof typeof OrderEntryAction];\n", "/**\n * Action that caused the event to occur.\n * - Tag: 1798\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OrderEventReason = Object.freeze({\n    /** Add order request */\n    AddOrderRequest: 1,\n    /** Modify order request */\n    ModifyOrderRequest: 2,\n    /** Delete order request */\n    DeleteOrderRequest: 3,\n    /** Order entered out-of-band */\n    OrderEnteredOOB: 4,\n    /** Order modified out-of-band */\n    OrderModifiedOOB: 5,\n    /** Order deleted out-of-band */\n    OrderDeletedOOB: 6,\n    /** Order activated or triggered */\n    OrderActivatedOrTriggered: 7,\n    /** Order expired */\n    OrderExpired: 8,\n    /** Reserve order refreshed */\n    ReserveOrderRefreshed: 9,\n    /** Away market better */\n    AwayMarketBetter: 10,\n    /** Corporate action */\n    CorporateAction: 11,\n    /** Start of day */\n    StartOfDay: 12,\n    /** End of day */\n    EndOfDay: 13,\n} as const);\n\nexport type OrderEventReason = (typeof OrderEventReason)[keyof typeof OrderEventReason];\n", "/**\n * The type of event affecting an order. The last event type within the OrderEventGrp component indicates the ExecType(150) value resulting from the series of events (ExecType(150) values are shown in brackets).\n * - Tag: 1796\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OrderEventType = Object.freeze({\n    /** Added (0=New) */\n    Added: 1,\n    /** Modified (5=Replaced) */\n    Modified: 2,\n    /** Deleted (4=Canceled) */\n    Deleted: 3,\n    /** Partially Filled (F=Trade) */\n    PartiallyFilled: 4,\n    /** Filled (F=Trade) */\n    Filled: 5,\n    /** Suspended (9=Suspended) */\n    Suspended: 6,\n    /** Released (N=Released) */\n    Released: 7,\n    /** Restated (D=Restated) */\n    Restated: 8,\n    /** Locked (M=Locked) */\n    Locked: 9,\n    /** Triggered (L=Triggered or Activated by System) */\n    Triggered: 10,\n    /** Activated (L=Triggered or Activated by System) */\n    Activated: 11,\n} as const);\n\nexport type OrderEventType = (typeof OrderEventType)[keyof typeof OrderEventType];\n", "/**\n * Identifies the class or source of the order handling instruction values. \u00A0Scope of this will apply to both CustOrderHandlingInst(1031) and DeskOrderHandlingInst(1035).\n    Conditionally required when CustOrderHandlingInst(1031) or DeskOrderHandlingInst(1035) is specified.\n * - Tag: 1032\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OrderHandlingInstSource = Object.freeze({\n    /** FINRA OATS */\n    FINRAOATS: 1,\n    /** FIA Execution Source Code */\n    FIAExecutionSourceCode: 2,\n} as const);\n\nexport type OrderHandlingInstSource = (typeof OrderHandlingInstSource)[keyof typeof OrderHandlingInstSource];\n", "/**\n * Identifies the origin of the order.\n * - Tag: 1724\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OrderOrigination = Object.freeze({\n    /** Order received from a customer */\n    OrderReceivedFromCustomer: 1,\n    /** Order received from within the firm */\n    OrderReceivedFromWithinFirm: 2,\n    /** Order received from another broker-dealer */\n    OrderReceivedFromAnotherBrokerDealer: 3,\n    /** Order received from a customer or originated from within the firm */\n    OrderReceivedFromCustomerOrWithFirm: 4,\n    /** Order received from a direct access or sponsored access customer */\n    OrderReceivedFromDirectAccessCustomer: 5,\n    /** Order received from a foreign dealer equivalent\n        A foreign dealer equivalent is a person in the business of trading securities in a foreign jurisdiction in a manner analogous to an investment dealer and that is subject to the regulatory jurisdiction of a signatory to the International Organization of Securities Commissions\u2019 (IOSCO) Multilateral Memorandum of Understanding in that foreign jurisdiction. */\n    OrderReceivedFromForeignDealerEquivalent: 6,\n    /** Order received from an execution-only service\n        The acceptance and execution of orders from customers for trades that the broker-dealer has not recommended and for which the broker-dealer takes no responsibility as to the appropriateness or suitability of orders accepted or account positions held. */\n    OrderReceivedFromExecutionOnlyService: 7,\n} as const);\n\nexport type OrderOrigination = (typeof OrderOrigination)[keyof typeof OrderOrigination];\n", "/**\n * Change of ownership of an order to a specific party.\n * - Tag: 2679\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OrderOwnershipIndicator = Object.freeze({\n    /** No change of ownership (default) */\n    NoChange: 0,\n    /** Change of ownership to executing party\n        Executing party can be given either implicitly via session attributes or explicitly via Parties component. The party taking over ownership must also be the one submitting the request. */\n    ExecutingPartyChange: 1,\n    /** Change of ownership to entering party\n        Entering party can be given either implicitly via session attributes or explicitly via Parties component. The party taking over ownership must also be the one submitting the request. */\n    EnteringPartyChange: 2,\n    /** Change of ownership to specified party\n        Ownership is transferred by a third party from/to the parties specified via Parties component together with PartyRoleQualifier(2376) = Current(18) and New(19). */\n    SpecifiedPartyChange: 3,\n} as const);\n\nexport type OrderOwnershipIndicator = (typeof OrderOwnershipIndicator)[keyof typeof OrderOwnershipIndicator];\n", "/**\n * Describes the type of relationship between the order identified by RelatedOrderID(2887) and the order outside of the RelatedOrderGrp component.\n * - Tag: 2890\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OrderRelationship = Object.freeze({\n    /** Not specified */\n    NotSpecified: 0,\n    /** Order aggregation\n        Order has been subject to a bundling of multiple orders to a single new order identified outside of the component. */\n    OrderAggregation: 1,\n    /** Order split\n        Order has been created as a child order of the order identified outside of the component. */\n    OrderSplit: 2,\n} as const);\n\nexport type OrderRelationship = (typeof OrderRelationship)[keyof typeof OrderRelationship];\n", "/**\n * The level of response requested from receiver of mass order messages. A default value should be bilaterally agreed.\n * - Tag: 2427\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OrderResponseLevel = Object.freeze({\n    /** No acknowledgement\n        Responses are provided through one or more ExecutionReport(35=8) messages. */\n    NoAck: 0,\n    /** Minimum acknowledgement\n        The minimum is any information to explain why the requested transaction was refused or led to additional events, e.g. immediate execution of an order that was entered or modified. */\n    MinimumAck: 1,\n    /** Acknowledge each order\n        The number of entries in the response is identical to the number of entries in the request. */\n    AckEach: 2,\n    /** Summary acknowledgement\n        Responses are provided through a single MassOrderAck(35=DK) without entries and one or more ExecutionReport(35=8) messages. */\n    SummaryAck: 3,\n} as const);\n\nexport type OrderResponseLevel = (typeof OrderResponseLevel)[keyof typeof OrderResponseLevel];\n", "/**\n * Restrictions associated with an order. If more than one restriction is applicable to an order, this field can contain multiple instructions separated by space.\n * - Tag: 529\n * - FIX Specification type: MultipleCharValue\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const OrderRestrictions = Object.freeze({\n    /** Program Trade */\n    ProgramTrade: '1',\n    /** Index Arbitrage */\n    IndexArbitrage: '2',\n    /** Non-Index Arbitrage */\n    NonIndexArbitrage: '3',\n    /** Competing Market Maker */\n    CompetingMarketMaker: '4',\n    /** Acting as Market Maker or Specialist in the security */\n    ActingAsMarketMakerOrSpecialistInSecurity: '5',\n    /** Acting as Market Maker or Specialist in the underlying security of a derivative security */\n    ActingAsMarketMakerOrSpecialistInUnderlying: '6',\n    /** Foreign Entity (of foreign government or regulatory jurisdiction) */\n    ForeignEntity: '7',\n    /** External Market Participant */\n    ExternalMarketParticipant: '8',\n    /** External Inter-connected Market Linkage */\n    ExternalInterConnectedMarketLinkage: '9',\n    /** Riskless Arbitrage */\n    RisklessArbitrage: 'A',\n    /** Issuer Holding */\n    IssuerHolding: 'B',\n    /** Issue Price Stabilization */\n    IssuePriceStabilization: 'C',\n    /** Non-algorithmic */\n    NonAlgorithmic: 'D',\n    /** Algorithmic */\n    Algorithmic: 'E',\n    /** Cross */\n    Cross: 'F',\n    /** Insider Account */\n    InsiderAccount: 'G',\n    /** Significant Shareholder */\n    SignificantShareholder: 'H',\n    /** Normal Course Issuer Bid (NCIB) */\n    NormalCourseIssuerBid: 'I',\n} as const);\n\nexport type OrderRestrictions = (typeof OrderRestrictions)[keyof typeof OrderRestrictions];\n", "/**\n * Code to identify reason for order rejection. Note: Values 3, 4, and 5 will be used when rejecting an order due to pre-allocation information errors.\n * - Tag: 103\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OrdRejReason = Object.freeze({\n    /** Broker / Exchange option */\n    BrokerCredit: 0,\n    /** Unknown symbol\n        In the context of IA FX Reject codes, Trade Request Rejection Category F, order rejected due to the product not being supported, e.g. by the specific venue, tenor restrictions on the market participant(s) involved. */\n    UnknownSymbol: 1,\n    /** Exchange closed */\n    ExchangeClosed: 2,\n    /** Order exceeds limit */\n    OrderExceedsLimit: 3,\n    /** Too late to enter */\n    TooLateToEnter: 4,\n    /** Unknown order */\n    UnknownOrder: 5,\n    /** Duplicate Order (e.g. dupe ClOrdID) */\n    DuplicateOrder: 6,\n    /** Duplicate of a verbally communicated order */\n    DuplicateOfAVerballyCommunicatedOrder: 7,\n    /** Stale order */\n    StaleOrder: 8,\n    /** Trade along required */\n    TradeAlongRequired: 9,\n    /** Invalid Investor ID */\n    InvalidInvestorID: 10,\n    /** Unsupported order characteristic */\n    UnsupportedOrderCharacteristic: 11,\n    /** Surveillance option */\n    SurveillanceOption: 12,\n    /** Incorrect quantity */\n    IncorrectQuantity: 13,\n    /** Incorrect allocated quantity */\n    IncorrectAllocatedQuantity: 14,\n    /** Unknown account(s)\n        In the context of IA FX Reject codes, Trade Request Rejection Category D, order rejected due to static data when the account/fund is not setup or unknown. */\n    UnknownAccount: 15,\n    /** Price exceeds current price band */\n    PriceExceedsCurrentPriceBand: 16,\n    /** Invalid price increment */\n    InvalidPriceIncrement: 18,\n    /** Reference price not available */\n    ReferencePriceNotAvailable: 19,\n    /** Notional value exceeds threshold */\n    NotionalValueExceedsThreshold: 20,\n    /** Algorithm risk threshold breached\n        A sell-side broker algorithm has detected that a risk limit has been breached which requires further communication with the client. Used in conjunction with Text(58) to convey the details of the specific event. */\n    AlgorithmRiskThresholdBreached: 21,\n    /** Short sell not permitted */\n    ShortSellNotPermitted: 22,\n    /** Short sell rejected due to security pre-borrow restriction */\n    ShortSellSecurityPreBorrowRestriction: 23,\n    /** Short sell rejected due to account pre-borrow restriction */\n    ShortSellAccountPreBorrowRestriction: 24,\n    /** Insufficient credit limit\n        In the context of IA FX Reject codes, Trade Request Rejection Category C, order rejected due to credit limit exceeded or not in place. */\n    InsufficientCreditLimit: 25,\n    /** Exceeded clip size limit */\n    ExceededClipSizeLimit: 26,\n    /** Exceeded maximum notional order amount */\n    ExceededMaxNotionalOrderAmt: 27,\n    /** Exceeded DV01/PV01 limit */\n    ExceededDV01PV01Limit: 28,\n    /** Exceeded CS01 limit */\n    ExceededCS01Limit: 29,\n    /** Last look\n        In the context of IA FX Reject codes, Trade Request Rejection Category A-1, order rejected due to a \"last look\". */\n    LastLook: 30,\n    /** Last look latency\n        In the context of IA FX Reject codes, Trade Request Rejection Category A-2, order rejected due to \"last look latency\", therefore price or liquidity is unavailable. */\n    LastLookLatency: 31,\n    /** Unavailable price or liquidity\n        In the context of IA FX Reject codes, Trade Request Rejection Category B, the order was not subjected to last look but rejected due to pricing or liquidity being no longer available for execution. */\n    UnavailablePriceLiquidity: 32,\n    /** Invalid or missing entitlements\n        In the context of IA FX Reject codes, Trade Request Rejection Category D, order rejected due to static/reference data error where counterparty is not permissioned or entitled. */\n    InvalidMissingEntitlements: 33,\n    /** Other\n        In the context of IA FX Reject codes, Trade Request Rejection Category E, order rejected due to other exceptions. Further detail may be provided in RejectText(1328) or Text(58), with preference for RejectText(1328) if field is present in the message. */\n    Other: 99,\n} as const);\n\nexport type OrdRejReason = (typeof OrdRejReason)[keyof typeof OrdRejReason];\n", "/**\n * Identifies current status of order. *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" *** (see Volume : \"Glossary\" for value definitions)\n * - Tag: 39\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const OrdStatus = Object.freeze({\n    /** New */\n    New: '0',\n    /** Partially filled */\n    PartiallyFilled: '1',\n    /** Filled */\n    Filled: '2',\n    /** Done for day */\n    DoneForDay: '3',\n    /** Canceled */\n    Canceled: '4',\n    /** Replaced (No longer used) */\n    Replaced: '5',\n    /** Pending Cancel (i.e. result of Order Cancel Request) */\n    PendingCancel: '6',\n    /** Stopped */\n    Stopped: '7',\n    /** Rejected */\n    Rejected: '8',\n    /** Suspended */\n    Suspended: '9',\n    /** Pending New */\n    PendingNew: 'A',\n    /** Calculated */\n    Calculated: 'B',\n    /** Expired */\n    Expired: 'C',\n    /** Accepted for Bidding */\n    AcceptedForBidding: 'D',\n    /** Pending Replace (i.e. result of Order Cancel/Replace Request) */\n    PendingReplace: 'E',\n} as const);\n\nexport type OrdStatus = (typeof OrdStatus)[keyof typeof OrdStatus];\n", "/**\n * Order type. *** SOME VALUES ARE NO LONGER USED - See \"Deprecated (Phased-out) Features and Supported Approach\" *** (see Volume : \"Glossary\" for value definitions)\n * - Tag: 40\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const OrdType = Object.freeze({\n    /** Market */\n    Market: '1',\n    /** Limit */\n    Limit: '2',\n    /** Stop/Stop Loss.\n        A stop order that is triggered as a result of a trade in the market at which point the stopped order becomes a market order. */\n    Stop: '3',\n    /** Stop Limit.\n        A stop limit order that is triggered as a result of a trade in the market at which point the stopped order becomes a limit order. */\n    StopLimit: '4',\n    /** Market On Close (No longer used) */\n    MarketOnClose: '5',\n    /** With Or Without */\n    WithOrWithout: '6',\n    /** Limit Or Better */\n    LimitOrBetter: '7',\n    /** Limit With Or Without */\n    LimitWithOrWithout: '8',\n    /** On Basis */\n    OnBasis: '9',\n    /** On Close (No longer used) */\n    OnClose: 'A',\n    /** Limit On Close (No longer used) */\n    LimitOnClose: 'B',\n    /** Forex Market (No longer used) */\n    ForexMarket: 'C',\n    /** Previously Quoted */\n    PreviouslyQuoted: 'D',\n    /** Previously Indicated */\n    PreviouslyIndicated: 'E',\n    /** Forex Limit (No longer used) */\n    ForexLimit: 'F',\n    /** Forex Swap */\n    ForexSwap: 'G',\n    /** Forex Previously Quoted (No longer used) */\n    ForexPreviouslyQuoted: 'H',\n    /** Funari (Limit day order with unexecuted portion handles as Market On Close. E.g. Japan) */\n    Funari: 'I',\n    /** Market If Touched (MIT) */\n    MarketIfTouched: 'J',\n    /** Market With Left Over as Limit (market order with unexecuted quantity becoming limit order at last price) */\n    MarketWithLeftOverAsLimit: 'K',\n    /** Previous Fund Valuation Point (Historic pricing; for CIV) */\n    PreviousFundValuationPoint: 'L',\n    /** Next Fund Valuation Point (Forward pricing; for CIV) */\n    NextFundValuationPoint: 'M',\n    /** Pegged */\n    Pegged: 'P',\n    /** Counter-order selection */\n    CounterOrderSelection: 'Q',\n    /** Stop on Bid or Offer\n        A stop order that is triggered by a bid or offer price movement (quote) at which point the stopped order becomes a market order, also known as \"stop on quote\" in some markets (e.g. US markets). In the US equities market it is common to trigger a stop off the National Best Bid or Offer (NBBO). */\n    StopOnBidOrOffer: 'R',\n    /** Stop Limit on Bid or Offer\n        A stop order that is triggered by a bid or offer price movement (quote) at which point the stopped order becomes a limit order, also known as \"stop limit on quote\" in some markets (e.g. US markets). In the US equities market it is common to trigger a stop off the National Best Bid or Offer (NBBO). */\n    StopLimitOnBidOrOffer: 'S',\n} as const);\n\nexport type OrdType = (typeof OrdType)[keyof typeof OrdType];\n", "/**\n * The customer capacity for this trade at the time of the order/execution.\n    Primarily used by futures exchanges to indicate the CTICode (customer type indicator) as required by the US CFTC (Commodity Futures Trading Commission).\n * - Tag: 1432\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OrigCustOrderCapacity = Object.freeze({\n    /** Member trading for their own account */\n    MemberTradingForTheirOwnAccount: 1,\n    /** Clearing Firm trading for its proprietary account */\n    ClearingFirmTradingForItsProprietaryAccount: 2,\n    /** Member trading for another member */\n    MemberTradingForAnotherMember: 3,\n    /** All other */\n    AllOther: 4,\n} as const);\n\nexport type OrigCustOrderCapacity = (typeof OrigCustOrderCapacity)[keyof typeof OrigCustOrderCapacity];\n", "/**\n * The relationship between Registration parties.\n * - Tag: 517\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const OwnershipType = Object.freeze({\n    /** Joint Investors */\n    JointInvestors: 'J',\n    /** Tenants in Common */\n    TenantsInCommon: 'T',\n    /** Joint Trustees */\n    JointTrustees: '2',\n} as const);\n\nexport type OwnershipType = (typeof OwnershipType)[keyof typeof OwnershipType];\n", "/**\n * Identifies the type of owner.\n * - Tag: 522\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const OwnerType = Object.freeze({\n    /** Individual investor */\n    IndividualInvestor: 1,\n    /** Public company */\n    PublicCompany: 2,\n    /** Private company */\n    PrivateCompany: 3,\n    /** Individual trustee */\n    IndividualTrustee: 4,\n    /** Company trustee */\n    CompanyTrustee: 5,\n    /** Pension plan */\n    PensionPlan: 6,\n    /** Custodian under Gifts to Minors Act */\n    CustodianUnderGiftsToMinorsAct: 7,\n    /** Trusts */\n    Trusts: 8,\n    /** Fiduciaries */\n    Fiduciaries: 9,\n    /** Networking sub-account */\n    NetworkingSubAccount: 10,\n    /** Non-profit organization */\n    NonProfitOrganization: 11,\n    /** Corporate body */\n    CorporateBody: 12,\n    /** Nominee */\n    Nominee: 13,\n    /** Institutional customer */\n    InstitutionalCustomer: 14,\n    /** Combined\n        Representing more than one type of beneficial owner account. */\n    Combined: 15,\n    /** Member firm employee or associated person */\n    MemberFirmEmployee: 16,\n    /** Market making account */\n    MarketMakingAccount: 17,\n    /** Proprietary account */\n    ProprietaryAccount: 18,\n    /** Non-broker-dealer */\n    NonbrokerDealer: 19,\n    /** Unknown beneficial owner type\n        In the context of US CAT this is a non-broker-dealer foreign affiliate or non-reporting foreign broker-dealer. */\n    UnknownBeneficialOwnerType: 20,\n    /** Error account of firm */\n    FirmsErrorAccount: 21,\n    /** Firm agency average price account */\n    FirmAgencyAveragePriceAccount: 22,\n} as const);\n\nexport type OwnerType = (typeof OwnerType)[keyof typeof OwnerType];\n", "/**\n * Specifies the reason the PartyActionRequest(35=DH) was rejected.\n * - Tag: 2333\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PartyActionRejectReason = Object.freeze({\n    /** Invalid party or parties */\n    InvalidParty: 0,\n    /** Unknown requesting party */\n    UnkReqParty: 1,\n    /** Not authorized */\n    NotAuthorized: 98,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type PartyActionRejectReason = (typeof PartyActionRejectReason)[keyof typeof PartyActionRejectReason];\n", "/**\n * Specifies the action taken as a result of the PartyActionType(2239) of the PartyActionRequest(35=DH) message.\n * - Tag: 2332\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PartyActionResponse = Object.freeze({\n    /** Accepted\n        The action request is accepted for processing. */\n    Accepted: 0,\n    /** Completed\n        The processing of the requested action has been successfully completed. */\n    Completed: 1,\n    /** Rejected\n        The action request was rejected. PartyActionRejectReason(2233) should be used to specify the rejection reason */\n    Rejected: 2,\n} as const);\n\nexport type PartyActionResponse = (typeof PartyActionResponse)[keyof typeof PartyActionResponse];\n", "/**\n * Specifies the type of action to take or was taken for a given party.\n * - Tag: 2329\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PartyActionType = Object.freeze({\n    /** Suspend */\n    Suspend: 0,\n    /** Halt trading */\n    HaltTrading: 1,\n    /** Reinstate */\n    Reinstate: 2,\n} as const);\n\nexport type PartyActionType = (typeof PartyActionType)[keyof typeof PartyActionType];\n", "/**\n * Status of party detail definition for one party.\n * - Tag: 1879\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PartyDetailDefinitionStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Accepted with changes */\n    AcceptedWithChanges: 1,\n    /** Rejected */\n    Rejected: 2,\n} as const);\n\nexport type PartyDetailDefinitionStatus =\n    (typeof PartyDetailDefinitionStatus)[keyof typeof PartyDetailDefinitionStatus];\n", "/**\n * Result party detail definition request.\n * - Tag: 1877\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PartyDetailRequestResult = Object.freeze({\n    /** Successful (default) */\n    Successful: 0,\n    /** Invalid party(-ies) */\n    InvalidParty: 1,\n    /** Invalid related party(-ies) */\n    InvalidRelatedParty: 2,\n    /** Invalid party status(es) */\n    InvalidPartyStatus: 3,\n    /** Not authorized */\n    NotAuthorized: 98,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type PartyDetailRequestResult = (typeof PartyDetailRequestResult)[keyof typeof PartyDetailRequestResult];\n", "/**\n * Status of party details definition request.\n * - Tag: 1878\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PartyDetailRequestStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Accepted with changes */\n    AcceptedWithChanges: 1,\n    /** Rejected */\n    Rejected: 2,\n    /** Acceptance pending */\n    AcceptancePending: 3,\n} as const);\n\nexport type PartyDetailRequestStatus = (typeof PartyDetailRequestStatus)[keyof typeof PartyDetailRequestStatus];\n", "/**\n * Qualifies the value of PartyDetailRole(1693).\n * - Tag: 1674\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PartyDetailRoleQualifier = Object.freeze({\n    /** Agency */\n    Agency: 0,\n    /** Principal */\n    Principal: 1,\n    /** Riskless principal */\n    RisklessPrincipal: 2,\n    /** Exchange order submitter\n        Used to identify original or initial exchange order submitting broker when party role \"1\" (Executing Firm) appears more than once. */\n    ExchangeOrderSubmitter: 30,\n    /** General clearing member */\n    GeneralClearingMember: 3,\n    /** Individual clearing member */\n    IndividualClearingMember: 4,\n    /** Preferred market maker\n        Market maker getting a part of the matched quantity before primary or default market maker. */\n    PreferredMarketMaker: 5,\n    /** Directed market maker\n        Single market maker to handle the order provided. */\n    DirectedMarketMaker: 6,\n    /** Bank */\n    Bank: 7,\n    /** Hub\n        Indicates that the Intermediary party is a hub system or service provider. */\n    Hub: 8,\n    /** Primary trade repository\n        Used to differentiate the principal trade repository from the Original or Additional trade repositories when there are multiple trade repositories being reported. */\n    PrimaryTrdRepository: 9,\n    /** Original trade repository\n        Used to identify the trade repository to which the trade was originally reported if different from the current repository to which the trade is being reported. */\n    OrigTrdRepository: 10,\n    /** Additional international trade repository\n        Used with InternationalSwapIndicator(2526) to identify the trade repository that is in addition to the local swaps data repository as required by U.S. law. */\n    AddtnlIntlTrdRepository: 11,\n    /** Additional domestic trade repository\n        Used with MixedSwapIndicator(1929) to identify the trade repository that is in addition to the current trade repository when the assets in the swap are subject to two different domestic regulators. */\n    AddtnlDomesticTrdRepository: 12,\n    /** Related exchange */\n    RelatedExchange: 13,\n    /** Options exchange */\n    OptionsExchange: 14,\n    /** Specified exchange */\n    SpecifiedExchange: 15,\n    /** Constituent exchange */\n    ConstituentExchange: 16,\n    /** Exempt from trade reporting\n        In the context of FINRA TRACE reporting requirements, this is used to indicate the ATS has been granted a regulatory exemption from reporting. */\n    ExemptFromTradeReporting: 17,\n    /** Current\n        Can be used to convey an existing party identifier for the same party role in a single message. */\n    Current: 18,\n    /** New\n        Can be used to convey a future party identifier for the same party role in a single message. */\n    New: 19,\n    /** Designated sponsor\n        Market maker jointly providing liquidity for the same security with other market makers. */\n    DesignatedSponsor: 20,\n    /** Specialist\n        Market maker being the only one providing liquidity for a security. */\n    Specialist: 21,\n    /** Algorithm */\n    Algorithm: 22,\n    /** Firm or legal entity */\n    FirmOrLegalEntity: 23,\n    /** Natural person */\n    NaturalPerson: 24,\n    /** Regular trader\n        Standard trader profile. */\n    RegularTrader: 25,\n    /** Head trader\n        Senior trader leading a group of regular traders. */\n    HeadTrader: 26,\n    /** Supervisor\n        Administrative user that has only limited rights for normal trading but possibly special rights for emergency actions. */\n    Supervisor: 27,\n    /** Tri-party\n        In the context of EU SFTR reporting, identifies the third party, not necessarily the custodian, to which the reporting counterparty has outsourced the post-trade processing of an SFT (if applicable). */\n    TriParty: 28,\n    /** Lender\n        In the context of EU SFTR reporting, identifies the agent lender involved in the securities lending transaction. */\n    Lender: 29,\n} as const);\n\nexport type PartyDetailRoleQualifier = (typeof PartyDetailRoleQualifier)[keyof typeof PartyDetailRoleQualifier];\n", "/**\n * Indicates the status of the party identified with PartyDetailID(1691).\n * - Tag: 1672\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PartyDetailStatus = Object.freeze({\n    /** Active (default if not specified) */\n    Active: 0,\n    /** Suspended */\n    Suspended: 1,\n    /** Halted */\n    Halted: 2,\n} as const);\n\nexport type PartyDetailStatus = (typeof PartyDetailStatus)[keyof typeof PartyDetailStatus];\n", "/**\n * Identifies class or source of the PartyID (448) value. Required if PartyID is specified. Note: applicable values depend upon PartyRole (452) specified.\n    See \"Appendix 6-G - Use of <Parties> Component Block\"\n * - Tag: 447\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PartyIDSource = Object.freeze({\n    /** UK National Insurance or Pension Number */\n    UKNationalInsuranceOrPensionNumber: '6',\n    /** Korean Investor ID\n        Also known as the Investor Registration Certificate (IRC) issued by Korea's Financial Supervisory Service (FSS), an identifier tied into the depository for settlement and record keeping. */\n    KoreanInvestorID: '1',\n    /** Directed broker three character acronym as defined in ISITC \"ETC Best Practice\" guidelines document */\n    ISITCAcronym: 'I',\n    /** BIC (Bank Identification Code - SWIFT managed) code (ISO9362 - See \"Appendix 6-B\") */\n    BIC: 'B',\n    /** US Social Security Number */\n    USSocialSecurityNumber: '7',\n    /** Taiwanese Qualified Foreign Investor ID QFII/FID */\n    TaiwaneseForeignInvestorID: '2',\n    /** Generally accepted market participant identifier (e.g. NASD mnemonic) */\n    GeneralIdentifier: 'C',\n    /** US Employer or Tax ID Number */\n    USEmployerOrTaxIDNumber: '8',\n    /** Taiwanese Trading Acct */\n    TaiwaneseTradingAcct: '3',\n    /** Proprietary / Custom code\n        Custom ID schema used between counterparties, trading platforms and repositories. */\n    Proprietary: 'D',\n    /** Australian Business Number */\n    AustralianBusinessNumber: '9',\n    /** Malaysian Central Depository (MCD) number */\n    MalaysianCentralDepository: '4',\n    /** ISO Country Code */\n    ISOCountryCode: 'E',\n    /** Australian Tax File Number */\n    AustralianTaxFileNumber: 'A',\n    /** Chinese Investor ID */\n    ChineseInvestorID: '5',\n    /** Settlement Entity Location (note if Local Market Settlement use \"E=ISO Country Code\") (see \"Appendix 6-G\" for valid values) */\n    SettlementEntityLocation: 'F',\n    /** Tax ID */\n    TaxID: 'J',\n    /** Market Identifier Code (ISO 10383) MIC */\n    MIC: 'G',\n    /** CSD participant/member code (e.g. Euroclear, DTC, CREST or Kassenverein number */\n    CSDParticipant: 'H',\n    /** Australian Company Number */\n    AustralianCompanyNumber: 'K',\n    /** Australian Registered Body Number */\n    AustralianRegisteredBodyNumber: 'L',\n    /** CFTC reporting firm identifier */\n    CFTCReportingFirmIdentifier: 'M',\n    /** Legal Entity Identifier (ISO 17442) LEI */\n    LegalEntityIdentifier: 'N',\n    /** Interim identifier\n        An interim entity identifier assigned by a regulatory agency prior to an LEI (ISO 17442) being assigned. */\n    InterimIdentifier: 'O',\n    /** Short code identifier\n        A generic means for trading venues, brokers, investment managers to convey a bilaterally agreed upon \"short hand\" code for an identifier that is a reference to a mapping between the parties. Can be used with PartyRole(452)=131 (Algorithm) for the short code of an algorithm. */\n    ShortCodeIdentifier: 'P',\n    /** National ID of natural person\n        An identification number generally assigned by a government authority or agency to a natural person which is unique to the person it is assigned to. Examples include, but not limited to, \"social security number\", \"pension number\". */\n    NationalIDNaturalPerson: 'Q',\n    /** India Permanent Account Number\n        Also referred to as PAN ID. An identifier issued by the Income Tax Department of India. */\n    IndiaPermanentAccountNumber: 'R',\n    /** Firm designated identifier\n        Also referred to as FDID. A unique identifier required by the SEC for each trading account designated by Industry Members for purposes of reporting to CAT (Consolidated Audit Trail). */\n    FDID: 'S',\n    /** Special Segregated Account ID\n        Also referred to as SPSA ID. The Special Segregated Account identifier issued by Hong Kong Exchanges and Clearing. */\n    SPSAID: 'T',\n    /** Master Special Segregated Account ID\n        Also referred to as Master SPSA ID. The master identifier issued by Hong Kong Exchanges and Clearing for the aggregation of SPSA IDs. */\n    MasterSPSAID: 'U',\n    /** Korea Short Selling Registration Number\n        Short selling registration number assigned by Korea's Financial Supervisory Service (FSS) for institutions placing eligible orders under Korea's Financial Services Commission's \"Short Sale Reform Measures\". */\n    KoreaShortSellingRegistrationNumber: 'V',\n} as const);\n\nexport type PartyIDSource = (typeof PartyIDSource)[keyof typeof PartyIDSource];\n", "/**\n * Used to specify the type of the party relationship.\n * - Tag: 1515\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PartyRelationship = Object.freeze({\n    /** Is also */\n    IsAlso: 0,\n    /** Clears for */\n    ClearsFor: 1,\n    /** Clears through */\n    ClearsThrough: 2,\n    /** Trades for */\n    TradesFor: 3,\n    /** Trades through */\n    TradesThrough: 4,\n    /** Sponsors */\n    Sponsors: 5,\n    /** Sponsored through */\n    SponsoredThrough: 6,\n    /** Provides guarantee for */\n    ProvidesGuaranteeFor: 7,\n    /** Is guaranteed by */\n    IsGuaranteedBy: 8,\n    /** Member of */\n    MemberOf: 9,\n    /** Has members */\n    HasMembers: 10,\n    /** Provides marketplace for */\n    ProvidesMarketplaceFor: 11,\n    /** Participant of marketplace */\n    ParticipantOfMarketplace: 12,\n    /** Carries positions for */\n    CarriesPositionsFor: 13,\n    /** Posts trades to */\n    PostsTradesTo: 14,\n    /** Enters trades for */\n    EntersTradesFor: 15,\n    /** Enters trades through */\n    EntersTradesThrough: 16,\n    /** Provides quotes to */\n    ProvidesQuotesTo: 17,\n    /** Requests quotes from */\n    RequestsQuotesFrom: 18,\n    /** Invests for */\n    InvestsFor: 19,\n    /** Invests through */\n    InvestsThrough: 20,\n    /** Brokers trades for */\n    BrokersTradesFor: 21,\n    /** Brokers trades through */\n    BrokersTradesThrough: 22,\n    /** Provides trading services for */\n    ProvidesTradingServicesFor: 23,\n    /** Uses trading services of */\n    UsesTradingServicesOf: 24,\n    /** Approves of */\n    ApprovesOf: 25,\n    /** Approved by */\n    ApprovedBy: 26,\n    /** Parent firm for */\n    ParentFirmFor: 27,\n    /** Subsidiary of */\n    SubsidiaryOf: 28,\n    /** Regulatory owner of */\n    RegulatoryOwnerOf: 29,\n    /** Owned by (regulatory) */\n    OwnedByRegulatory: 30,\n    /** Controls */\n    Controls: 31,\n    /** Is controlled by */\n    IsControlledBy: 32,\n    /** Legal / titled owner of */\n    LegalOwnerOf: 33,\n    /** Owned by (legal / title) */\n    OwnedByLegal: 34,\n    /** Beneficial owner of */\n    BeneficialOwnerOf: 35,\n    /** Owned by (beneficial) */\n    OwnedByBeneficial: 36,\n    /** Settles for */\n    SettlesFor: 37,\n    /** Settles through */\n    SettlesThrough: 38,\n} as const);\n\nexport type PartyRelationship = (typeof PartyRelationship)[keyof typeof PartyRelationship];\n", "/**\n * The status of risk limits for a party.\n * - Tag: 2355\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PartyRiskLimitStatus = Object.freeze({\n    /** Disabled\n        Risk limits for party is disabled. */\n    Disabled: 0,\n    /** Enabled\n        Risk limits for party is enabled. */\n    Enabled: 1,\n} as const);\n\nexport type PartyRiskLimitStatus = (typeof PartyRiskLimitStatus)[keyof typeof PartyRiskLimitStatus];\n", "/**\n * Identifies the type or role of the PartyID (448) specified.\n * - Tag: 452\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PartyRole = Object.freeze({\n    /** Executing Firm (formerly FIX 4.2 ExecBroker) */\n    ExecutingFirm: 1,\n    /** Broker of Credit (formerly FIX 4.2 BrokerOfCredit) */\n    BrokerOfCredit: 2,\n    /** Client ID (formerly FIX 4.2 ClientID) */\n    ClientID: 3,\n    /** Clearing Firm (formerly FIX 4.2 ClearingFirm) */\n    ClearingFirm: 4,\n    /** Investor ID */\n    InvestorID: 5,\n    /** Introducing Firm */\n    IntroducingFirm: 6,\n    /** Entering Firm */\n    EnteringFirm: 7,\n    /** Locate / Lending Firm (for short-sales) */\n    Locate: 8,\n    /** Fund Manager Client ID (for CIV) */\n    FundManagerClientID: 9,\n    /** Settlement Location (formerly FIX 4.2 SettlLocation) */\n    SettlementLocation: 10,\n    /** Order Origination Trader (associated with Order Origination Firm - i.e. trader who initiates/submits the order) */\n    OrderOriginationTrader: 11,\n    /** Executing Trader (associated with Executing Firm - actually executes) */\n    ExecutingTrader: 12,\n    /** Order Origination Firm (e.g. buy-side firm) */\n    OrderOriginationFirm: 13,\n    /** Giveup Clearing Firm (firm to which trade is given up) */\n    GiveupClearingFirmDepr: 14,\n    /** Correspondant Clearing Firm */\n    CorrespondantClearingFirm: 15,\n    /** Executing System */\n    ExecutingSystem: 16,\n    /** Contra Firm */\n    ContraFirm: 17,\n    /** Contra Clearing Firm */\n    ContraClearingFirm: 18,\n    /** Sponsoring Firm */\n    SponsoringFirm: 19,\n    /** Underlying Contra Firm */\n    UnderlyingContraFirm: 20,\n    /** Clearing Organization */\n    ClearingOrganization: 21,\n    /** Exchange\n        Identify using PartyIDSource(tag 447) = G (Market Identifier Code) if the MIC exists. */\n    Exchange: 22,\n    /** Customer Account */\n    CustomerAccount: 24,\n    /** Correspondent Clearing Organization */\n    CorrespondentClearingOrganization: 25,\n    /** Correspondent Broker */\n    CorrespondentBroker: 26,\n    /** Buyer/Seller (Receiver/Deliverer) */\n    Buyer: 27,\n    /** Custodian */\n    Custodian: 28,\n    /** Intermediary */\n    Intermediary: 29,\n    /** Agent */\n    Agent: 30,\n    /** Sub-custodian */\n    SubCustodian: 31,\n    /** Beneficiary */\n    Beneficiary: 32,\n    /** Interested party */\n    InterestedParty: 33,\n    /** Regulatory body\n        In the context of regulatory reporting, this identifies the regulator the trade is being reported to. */\n    RegulatoryBody: 34,\n    /** Liquidity provider */\n    LiquidityProvider: 35,\n    /** Entering trader */\n    EnteringTrader: 36,\n    /** Contra trader */\n    ContraTrader: 37,\n    /** Position account\n        The account which positions are maintained. Typically represents the aggregation of one or more customer accounts. */\n    PositionAccount: 38,\n    /** Contra Investor ID */\n    ContraInvestorID: 39,\n    /** Transfer to Firm */\n    TransferToFirm: 40,\n    /** Contra Position Account */\n    ContraPositionAccount: 41,\n    /** Contra Exchange */\n    ContraExchange: 42,\n    /** Internal Carry Account */\n    InternalCarryAccount: 43,\n    /** Order Entry Operator ID */\n    OrderEntryOperatorID: 44,\n    /** Secondary Account Number */\n    SecondaryAccountNumber: 45,\n    /** Foreign Firm */\n    ForeignFirm: 46,\n    /** Third Party Allocation Firm */\n    ThirdPartyAllocationFirm: 47,\n    /** Claiming Account */\n    ClaimingAccount: 48,\n    /** Asset Manager */\n    AssetManager: 49,\n    /** Pledgor Account */\n    PledgorAccount: 50,\n    /** Pledgee Account */\n    PledgeeAccount: 51,\n    /** Large Trader Reportable Account */\n    LargeTraderReportableAccount: 52,\n    /** Trader mnemonic */\n    TraderMnemonic: 53,\n    /** Sender Location */\n    SenderLocation: 54,\n    /** Session ID */\n    SessionID: 55,\n    /** Acceptable Counterparty */\n    AcceptableCounterparty: 56,\n    /** Unacceptable Counterparty */\n    UnacceptableCounterparty: 57,\n    /** Entering Unit */\n    EnteringUnit: 58,\n    /** Executing Unit */\n    ExecutingUnit: 59,\n    /** Introducing Broker */\n    IntroducingBroker: 60,\n    /** Quote originator */\n    QuoteOriginator: 61,\n    /** Report originator */\n    ReportOriginator: 62,\n    /** Systematic internaliser (SI) */\n    SystematicInternaliser: 63,\n    /** Multilateral Trading Facility (MTF)\n        Identify using PartyIDSource(tag 447) = G (Market Identifier Code) if the MIC exists. */\n    MultilateralTradingFacility: 64,\n    /** Regulated Market (RM)\n        Identify using PartyIDSource(tag 447) = G (Market Identifier Code) if the MIC exists. */\n    RegulatedMarket: 65,\n    /** Market Maker */\n    MarketMaker: 66,\n    /** Investment Firm */\n    InvestmentFirm: 67,\n    /** Host Competent Authority (Host CA) */\n    HostCompetentAuthority: 68,\n    /** Home Competent Authority (Home CA) */\n    HomeCompetentAuthority: 69,\n    /** Competent Authority of the most relevant market in terms of liquidity (CAL) */\n    CompetentAuthorityLiquidity: 70,\n    /** Competent Authority of the Transaction (Execution) Venue (CATV) */\n    CompetentAuthorityTransactionVenue: 71,\n    /** Reporting intermediary\n        The medium or vendor used to report to a regulator, non-regulatory agency or data repository. */\n    ReportingIntermediary: 72,\n    /** Execution Venue\n        Identify using PartyIDSource(tag 447) = G (Market Identifier Code) if the MIC exists. */\n    ExecutionVenue: 73,\n    /** Market data entry originator */\n    MarketDataEntryOriginator: 74,\n    /** Location ID */\n    LocationID: 75,\n    /** Desk ID */\n    DeskID: 76,\n    /** Market data market */\n    MarketDataMarket: 77,\n    /** Allocation Entity */\n    AllocationEntity: 78,\n    /** Prime Broker providing General Trade Services */\n    PrimeBroker: 79,\n    /** Step-Out Firm (Prime Broker) */\n    StepOutFirm: 80,\n    /** Broker clearing identifier */\n    BrokerClearingID: 81,\n    /** Central Registration Depository (CRD) */\n    CentralRegistrationDepository: 82,\n    /** Clearing Account */\n    ClearingAccount: 83,\n    /** Acceptable Settling Counterparty */\n    AcceptableSettlingCounterparty: 84,\n    /** Unacceptable Settling Counterparty */\n    UnacceptableSettlingCounterparty: 85,\n    /** CLS Member Bank */\n    CLSMemberBank: 86,\n    /** In Concert Group */\n    InConcertGroup: 87,\n    /** In Concert Controlling Entity */\n    InConcertControllingEntity: 88,\n    /** Large Positions Reporting Account */\n    LargePositionsReportingAccount: 89,\n    /** Settlement Firm */\n    SettlementFirm: 90,\n    /** Settlement account\n        The account to which individual payment obligations are aggregated for netting and funds movement. Typically represents the aggregation of many margin (performance bond) accounts. */\n    SettlementAccount: 91,\n    /** Reporting Market Center */\n    ReportingMarketCenter: 92,\n    /** Related Reporting Market Center */\n    RelatedReportingMarketCenter: 93,\n    /** Away Market\n        Identify using PartyIDSource(tag 447) = G (Market Identifier Code) if the MIC exists. */\n    AwayMarket: 94,\n    /** Give-up (trading) firm */\n    GiveupTradingFirm: 95,\n    /** Take-up (trading) firm */\n    TakeupTradingFirm: 96,\n    /** Give-up clearing firm */\n    GiveupClearingFirm: 97,\n    /** Take-up clearing firm */\n    TakeupClearingFirm: 98,\n    /** Originating Market\n        Identifies the Market using PartyIDSource(tag 447) = G (Market Identifier Code) where an order originated in the event that the order is sent to an alternative market for execution. Serves as an inverse of an away market. */\n    OriginatingMarket: 99,\n    /** Margin account\n        Also referred to as \"performance bond account\". The margin account is the calculated margin requirements. Typically represents the aggregation of one or more position accounts. */\n    MarginAccount: 100,\n    /** Collateral asset account\n        The account at which individual collateral assets are maintained. Typically, although not always, one-for-one with the settlement account. */\n    CollateralAssetAccount: 101,\n    /** Data repository\n        Multiple instances of this PartyRole may appear for reporting purposes. */\n    DataRepository: 102,\n    /** Calculation agent */\n    CalculationAgent: 103,\n    /** Sender of exercise notice */\n    ExerciseNoticeSender: 104,\n    /** Receiver of exercise notice */\n    ExerciseNoticeReceiver: 105,\n    /** Rate reference bank\n        The bank providing the reference rate. Multiple instance of this PartyRole may appear. */\n    RateReferenceBank: 106,\n    /** Correspondent */\n    Correspondent: 107,\n    /** Beneficiary's bank or depository institution\n        The institution in which the beneficiary, a person or an entity, has their account with. The institution may be a bank or non-bank institution. */\n    BeneficiaryBank: 109,\n    /** Borrower */\n    Borrower: 110,\n    /** Primary obligator */\n    PrimaryObligator: 111,\n    /** Guarantor */\n    Guarantor: 112,\n    /** Excluded reference entity */\n    ExcludedReferenceEntity: 113,\n    /** Determining party */\n    DeterminingParty: 114,\n    /** Hedging party */\n    HedgingParty: 115,\n    /** Reporting entity\n        The entity that is reporting the information. */\n    ReportingEntity: 116,\n    /** Sales person\n        The person who is involved in the sales activities for their firm. */\n    SalesPerson: 117,\n    /** Operator\n        The person who has the capabilities and authorization to take certain actions; for example, setting entitlements, etc. */\n    Operator: 118,\n    /** Central Securities Depository (CSD) */\n    CSD: 119,\n    /** International Central Securities Depository (ICSD) */\n    ICSD: 120,\n    /** Trading sub-account\n        Example of sub-accounts include a clearing account that has multiple trading sub-accounts, a trading account that has multiple trading sub-accounts belonging to different trading firms. */\n    TradingSubAccount: 121,\n    /** Investment decision maker\n        In the context of ESMA RTS reporting, this is used to specify party responsible for the investment decision. See RTS 24, Annex, Table 2, Field 4. */\n    InvestmentDecisionMaker: 122,\n    /** Publishing intermediary\n        The medium or vendor used to publish to the market. */\n    PublishingIntermediary: 123,\n    /** Central Securities Depository (CSD) Participant\n        In the context of EU SFTR reporting the identifier of the CSD participant or indirect participant of the reporting counterparty. Where both the CSD participant and indirect participant are involved in the transaction this should identify the indirect participant. */\n    CSDParticipant: 124,\n    /** Issuer\n        The issuer of the security. */\n    Issuer: 125,\n    /** Contra Customer Account\n        Same as PartyRole(452) = 24 (Customer Account) but for the counterparty. Can be used whenever the parties component is not nested in a repeating group representing both sides. */\n    ContraCustomerAccount: 126,\n    /** Contra Investment Decision Maker\n        Same as PartyRole(452) = 122 (Investment Decision Maker) but for the counterparty. Can be used whenever the parties component is not nested in a repeating group representing both sides. */\n    ContraInvestmentDecisionMaker: 127,\n    /** Authorizing person\n        In the context of MiFIR, this value is used to identify the person authorizing algorithms within a trading firm. */\n    AuthorizingPerson: 128,\n    /** Primary place of listing\n        Official place of listing. There can only be one home market where an instrument is listed. Identify using PartyIDSource(447) = G (Market Identifier Code) if the MIC exists. */\n    PrimaryPlaceOfListing: 129,\n    /** Secondary place of listing\n        The market where an instrument is listed. This may not be the only market where the instrument is traded. Identify using PartyIDSource(447) = G (Market Identifier Code) if the MIC exists. */\n    SecondaryPlaceOfListing: 130,\n    /** Algorithm\n        Identifier of a previously defined algorithm, e.g. the name of a branded algorithm or its short code. The version of an algorithm can be provided with an instance of PtysSubGrp with PartySubIDType(803)=88 (Algorithm version). */\n    Algorithm: 131,\n} as const);\n\nexport type PartyRole = (typeof PartyRole)[keyof typeof PartyRole];\n", "/**\n * Type of PartySubID(523) value.\n * - Tag: 803\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PartySubIDType = Object.freeze({\n    /** Firm */\n    Firm: 1,\n    /** Person */\n    Person: 2,\n    /** System */\n    System: 3,\n    /** Application */\n    Application: 4,\n    /** Full legal name of firm */\n    FullLegalNameOfFirm: 5,\n    /** Postal address */\n    PostalAddress: 6,\n    /** Phone number */\n    PhoneNumber: 7,\n    /** Email address */\n    EmailAddress: 8,\n    /** Contact name */\n    ContactName: 9,\n    /** Securities account number (for settlement instructions) */\n    SecuritiesAccountNumber: 10,\n    /** Registration number (for settlement instructions and confirmations) */\n    RegistrationNumber: 11,\n    /** Registered address (for confirmation purposes) */\n    RegisteredAddressForConfirmation: 12,\n    /** Regulatory status (for confirmation purposes) */\n    RegulatoryStatus: 13,\n    /** Registration name (for settlement instructions) */\n    RegistrationName: 14,\n    /** Cash account number (for settlement instructions) */\n    CashAccountNumber: 15,\n    /** BIC */\n    BIC: 16,\n    /** CSD participant member code */\n    CSDParticipantMemberCode: 17,\n    /** Registered address */\n    RegisteredAddress: 18,\n    /** Fund account name */\n    FundAccountName: 19,\n    /** Telex number */\n    TelexNumber: 20,\n    /** Fax number */\n    FaxNumber: 21,\n    /** Securities account name */\n    SecuritiesAccountName: 22,\n    /** Cash account name */\n    CashAccountName: 23,\n    /** Department */\n    Department: 24,\n    /** Location desk */\n    LocationDesk: 25,\n    /** Position account type */\n    PositionAccountType: 26,\n    /** Security locate ID */\n    SecurityLocateID: 27,\n    /** Market maker */\n    MarketMaker: 28,\n    /** Eligible counterparty */\n    EligibleCounterparty: 29,\n    /** Professional client */\n    ProfessionalClient: 30,\n    /** Location */\n    Location: 31,\n    /** Execution venue */\n    ExecutionVenue: 32,\n    /** Currency delivery identifier */\n    CurrencyDeliveryIdentifier: 33,\n    /** Address City */\n    AddressCity: 34,\n    /** Address State/Province */\n    AddressStateOrProvince: 35,\n    /** Address Postal Code */\n    AddressPostalCode: 36,\n    /** Address Street */\n    AddressStreet: 37,\n    /** Address Country (ISO country code) */\n    AddressISOCountryCode: 38,\n    /** ISO country code */\n    ISOCountryCode: 39,\n    /** Market segment */\n    MarketSegment: 40,\n    /** Customer account type */\n    CustomerAccountType: 41,\n    /** Omnibus account */\n    OmnibusAccount: 42,\n    /** Funds segregation type */\n    FundsSegregationType: 43,\n    /** Guarantee fund\n        Identifies a guarantee fund related to an account. Used when one account has multiple funds of collateral, each guaranteeing different positions. Can be used for PartyRole(452) = Customer Account(24). */\n    GuaranteeFund: 44,\n    /** Swap dealer\n        The US regulator's defined term for identifying the trade counterparty as \"any person who holds itself out as a dealer in swaps, makes a market in swaps, regularly enters into swaps with counterparties as an ordinary course of business for its own account, or engages in activity causing itself to be commonly known in the trade as a dealer or market maker in swaps\". */\n    SwapDealer: 45,\n    /** Major participant\n        When PartySubID(523)=Y the counterparty is not the swap dealer but is a major swap participant as defined in the regulations. */\n    MajorParticipant: 46,\n    /** Financial entity\n        When PartySubID(523)=Y the counterparty is neither a swap dealer nor a major swap participant but is a financial entity as defined in the regulations. */\n    FinancialEntity: 47,\n    /** U.S. person\n        A legal term referring to any U.S. person or legal entity anywhere in the world that should be taxed under U.S. law. */\n    USPerson: 48,\n    /** Reporting entity indicator\n        Indicates the entity obligated or delegated to report to their regulator, a non-regulatory agency or data repository. Set PartySubID(523)=Y if true. */\n    ReportingEntityIndicator: 49,\n    /** Elected clearing requirement exception */\n    ElectedClearingRequirementException: 50,\n    /** Business center */\n    BusinessCenter: 51,\n    /** Reference text */\n    ReferenceText: 52,\n    /** Short-marking exempt account */\n    ShortMarkingExemptAccount: 53,\n    /** Parent firm identifier\n        Implementation-specific identifier of this party's parent entity. */\n    ParentFirmIdentifier: 54,\n    /** Parent firm name\n        Full name of this party's parent entity. */\n    ParentFirmName: 55,\n    /** Deal identifier\n        The internal identifier assigned to the trade by this party, particularly by a Clearing Organization. */\n    DealIdentifier: 56,\n    /** System trade identifier */\n    SystemTradeID: 57,\n    /** System trade sub-identifier */\n    SystemTradeSubID: 58,\n    /** Futures Commission Merchant (FCM) code\n        The FCM's code or identifier in relation to the PartyRole(452). For example, if PartyRole(452) is the exchange or clearinghouse, the FCM code/ID specified in PartySubID(523) is the FCM's identifier at the exchange or clearinghouse. */\n    FCMCode: 59,\n    /** Delivery terminal customer account/code\n        Usually used for gas delivery to identify whose account the gas is allocated to at the delivery terminal. Often referred to as \"HUB\" code. */\n    DlvryTrmlCode: 60,\n    /** Voluntary reporting entity\n        The entity voluntarily reporting the trade to the regulator. Set PartySubID(523)=Y if true. */\n    VolntyRptEntity: 61,\n    /** Reporting obligation jurisdiction\n        For a trade that falls under multiple jurisdictions this may be used to identify, through PartySubID(523), the reporting jurisdiction to which the party is obligated to report. */\n    RptObligJursdctn: 62,\n    /** Voluntary reporting jurisdiction\n        For a trade that falls under multiple jurisdictions this may be used to identify, through PartySubID(523), the regulatory jurisdiction to which the party is submitting a voluntary report. */\n    VolntyRptJursdctn: 63,\n    /** Company activities\n        For regulatory reporting. ID values include: A = Assurance undertaking authorized in accordance with Directive 2002/83/EC C=Credit institution authorized in accordance with Directive 2006/48/EC F=Investment firm in accordance with Directive 2004/39/EC I=Insurance undertaking authorized in accordance with Directive 73/239/EC L=Alternative investment fund managed by AIFMs authorized or registered in accordance with Directive 2011/61/EC O=Institution for occupational retirement provision within the meaning of Article 6(a0 of Directive 2003/41/EC R=Reinsurance undertaking authorized in accordance with Directive 2005/68/EC U=UCITS and its management company, authorized in accordance with Directive 2009/65/EC or blank in case of coverage by LEI or in case of non-financial counterparties.\n        In the context of EU SFTR reporting use the appropriate 4- or 1-character code noted in the regulations. See SFTR ITS \"Commission Implementing Regulation (EU) 2019/363\" Annexes 1 and 2 for values. */\n    CompanyActivities: 64,\n    /** European Economic Area domiciled\n        ID values: Y or N */\n    EEAreaDomiciled: 65,\n    /** Contract linked to commercial or treasury financing for this counterparty\n        ID values: Y or N */\n    ContractLinked: 66,\n    /** Contract above clearing threshold for this counterparty\n        ID values: Y or N */\n    ContractAbove: 67,\n    /** Voluntary reporting party\n        When PartySubID(523)=Y, identifies that the trading party is reporting voluntarily when VoluntaryRegulatoryReport(1935)=Y. */\n    VolntyRptPty: 68,\n    /** End user\n        When PartySubID(523)=Y, the counterparty is neither the swap dealer, major swap participant nor financial entity as defined in the regulations. */\n    EndUser: 69,\n    /** Location or jurisdiction\n        One or more instances may be used in combination with PartySubIDType(803) = 49 (Reporting entity indicator) or 102 (Data repository) to identify the jurisdiction, countries, regions or provinces for which the party is a reporting entity or data repository when that characteristic is ambiguous or where there are multiple locations. The party sub-ID value is either a jurisdiction acronym, a 2-character ISO 3166 country code, or a hyphenated combination of the country code and the standard post-office abbreviation for province, state or region if necessary. E.g. \"US\" for United States or \"CA-QC\" for Quebec Canada. */\n    LocationOrJurisdiction: 70,\n    /** Derivatives dealer\n        Indicates whether the party is a derivatives dealer or not (Y/N). The Canadian regulator's defined term for identifying the trade counterparty as \"a person or company engaging in or holding himself, herself or itself out as engaging in the business of trading in derivatives in Ontario as principal or agent\". */\n    DerivativesDealer: 71,\n    /** Domicile\n        Country and optionally province, state or region of domicile. The party sub-ID value is either a 2-character ISO 3166 country code or a hyphenated combination of the country code and the standard post-office abbreviation of province, state or region if necessary. E.g. \"US\" for United States or \"CA-QC\" for Quebec Canada. */\n    Domicile: 72,\n    /** Exempt from recognition\n        Used with party role 21 \"Clearing Organization\" to indicate exemption (Y/N). Identifies a clearing agency as exempt from oversight in Ontario, i.e. one that 1) only provides limited services and does not present significant risks or 2) is foreign-based, indends to operate in Ontario but is subject to regulatory oversight in another jurisdiction. */\n    ExemptFromRecognition: 73,\n    /** Payer\n        Identifies the party as the payer of a particular payment stream or bullet payment by quoting the stream's StreamDesc(40051) (or LegStreamDesc(40243) or UnderlyingStreamDesc(40542)) or payment's PaymentDesc(43087) in the associated party sub-identifier field. */\n    Payer: 74,\n    /** Receiver\n        Identifies the party as the receiver of a particular payment stream or bullet payment by quoting the stream's StreamDesc(40051) (or LegStreamDesc(40243) or UnderlyingStreamDesc(40542)) or payment's PaymentDesc(43087) in the associated party sub-identifier field. */\n    Receiver: 75,\n    /** Systematic Internaliser (SI)\n        In the context of ESMA reporting, this is used to indicate whether the specified party is a Systematic Internaliser or not for the security defined in the Instrument component (Y/N). */\n    SystematicInternaliser: 76,\n    /** Publishing entity indicator\n        Indicates the entity obligated or delegated to publish to the market. Set PartySubID(523)=Y if true. */\n    PublishingEntityIndicator: 77,\n    /** First name\n        The first name(s) of a natural person. If multiple names, separate entries by a comma. */\n    FirstName: 78,\n    /** Surname\n        The surname(s) or lastname(s) of a natural person. If multiple names, separate entries by a comma. */\n    Surname: 79,\n    /** Date of birth\n        The date of birth of a natural person in the format YYYYMMDD. */\n    DateOfBirth: 80,\n    /** Order transmitting firm\n        Identifies whether the party specified in PartyID(448) is the firm that transmitted the order. In the context of RTS 22 Article 4, when \"true\" the PartySubID(523)=Y shall be set \"by the transmitting firm within the transmitting firm's report where conditions for transmission specified in Article 4 were not satisfied.\" */\n    OrderTransmittingFirm: 81,\n    /** Order transmitting firm for buyer\n        Identifies the firm that transmitted the order for the buyer. In the context of ESMA RTS 22, PartySubID(523)=Y is used to indicate the firm identified in PartyID(448) is the firm that transmitted the order for the buyer. \"This shall be populated by the receiving firm within the receiving firm's report with the identification code provided by the transmitting firm.\" */\n    OrderTransmittingFirmBuyer: 82,\n    /** Order transmitter for seller\n        Identifies the order transmitting firm for the seller. In the context of ESMA RTS 22, PartySubID(523)=Y is used to indicate the firm identified in PartyID(448) is the firm that transmitted the order for the seller. \"This shall be populated by the receiving firm within the receiving firm's report with the identification code provided by the transmitting firm.\" */\n    OrderTransmitterSeller: 83,\n    /** Legal Entity Identifier (ISO 17442) LEI */\n    LegalEntityIdentifier: 84,\n    /** Sub-sector classification\n        Supplemental to party sub-ID type \"64\" (Company activities) for regulatory reporting. For EU SFTR reporting use the appropriate 4-character code noted in the regulations applying the conditional association rules. See SFTR ITS \"Commission Implementing Regulation (EU) 2019/363\" Annexes 1 and 2 for values. */\n    SubSectorClassification: 85,\n    /** Party side\n        May be used, when appropriate, to explicitly indicate the transaction side of the party, e.g. Buyer, Seller, Lender, Borrower, Maker, Taker, etc. in the ID. In the context of EU SFTR reporting, use values as required by SFTR, \"GIVE\" and \"TAKE\" in the ID, to identify collateral giver and taker. */\n    PartySide: 86,\n    /** Legal registration country\n        ISO Country Code where the registered office of the party is located as specified in the LEI reference data. */\n    LegalRegistrationCountry: 87,\n    /** Algorithm version\n        Unique identifier for the version of a previously defined algorithm identified in PartyID(448). */\n    AlgorithmVersion: 88,\n    /** Certificate registration status\n        Used to indicate the current status of a certificate that is registered with multiple venues (PartyRole(452)=73 (Execution venue)). In the context of algo certification, use values \"SUBMITTED\", \"REJECTED\", \"REGISTERED\", \"REVOKED\". */\n    CertificateRegistrationStatus: 89,\n} as const);\n\nexport type PartySubIDType = (typeof PartySubIDType)[keyof typeof PartySubIDType];\n", "/**\n * Specifies the day type of the relative payment date offset.\n * - Tag: 41159\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentDateOffsetDayType = Object.freeze({\n    /** Business */\n    Business: 0,\n    /** Calendar */\n    Calendar: 1,\n    /** Commodity business */\n    Commodity: 2,\n    /** Currency business */\n    Currency: 3,\n    /** Exchange business */\n    Exchange: 4,\n    /** Scheduled trading day */\n    Scheduled: 5,\n} as const);\n\nexport type PaymentDateOffsetDayType = (typeof PaymentDateOffsetDayType)[keyof typeof PaymentDateOffsetDayType];\n", "/**\n * Forward start premium type.\n * - Tag: 41160\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentForwardStartType = Object.freeze({\n    /** Prepaid */\n    Prepaid: 0,\n    /** Post-paid */\n    Postpaid: 1,\n    /** Variable */\n    Variable: 2,\n    /** Fixed */\n    Fixed: 3,\n} as const);\n\nexport type PaymentForwardStartType = (typeof PaymentForwardStartType)[keyof typeof PaymentForwardStartType];\n", "/**\n * Identifies the settlement payment method.\n * - Tag: 492\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentMethod = Object.freeze({\n    /** CREST */\n    CREST: 1,\n    /** NSCC */\n    NSCC: 2,\n    /** Euroclear */\n    Euroclear: 3,\n    /** Clearstream */\n    Clearstream: 4,\n    /** Cheque */\n    Cheque: 5,\n    /** Telegraphic Transfer */\n    TelegraphicTransfer: 6,\n    /** Fed Wire */\n    FedWire: 7,\n    /** Debit Card */\n    DebitCard: 8,\n    /** Direct Debit (BECS) */\n    DirectDebit: 9,\n    /** Direct Credit (BECS) */\n    DirectCredit: 10,\n    /** Credit Card */\n    CreditCard: 11,\n    /** ACH Debit */\n    ACHDebit: 12,\n    /** ACH Credit */\n    ACHCredit: 13,\n    /** BPAY */\n    BPAY: 14,\n    /** High Value Clearing System (HVACS) */\n    HighValueClearingSystem: 15,\n    /** CHIPS */\n    CHIPS: 16,\n    /** S.W.I.F.T. */\n    SWIFT: 17,\n    /** CHAPS */\n    CHAPS: 18,\n    /** SIC */\n    SIC: 19,\n    /** euroSIC */\n    EuroSIC: 20,\n    /** Other */\n    Other: 999,\n} as const);\n\nexport type PaymentMethod = (typeof PaymentMethod)[keyof typeof PaymentMethod];\n", "/**\n * The side of the party paying the payment.\n * - Tag: 40214\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentPaySide = Object.freeze({\n    /** Buy */\n    Buy: 1,\n    /** Sell */\n    Sell: 2,\n} as const);\n\nexport type PaymentPaySide = (typeof PaymentPaySide)[keyof typeof PaymentPaySide];\n", "/**\n * Specifies whether the PaymentScheduleStepRate(40847) or PaymentScheduleStepOffsetValue(40846) should be applied to the initial notional or the previous notional in order to calculate the notional step change amount.\n * - Tag: 40849\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentScheduleStepRelativeTo = Object.freeze({\n    /** Initial */\n    Initial: 0,\n    /** Previous */\n    Previous: 1,\n} as const);\n\nexport type PaymentScheduleStepRelativeTo =\n    (typeof PaymentScheduleStepRelativeTo)[keyof typeof PaymentScheduleStepRelativeTo];\n", "/**\n * Type of schedule.\n * - Tag: 40829\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentScheduleType = Object.freeze({\n    /** Notional */\n    Notional: 0,\n    /** Cash flow */\n    CashFlow: 1,\n    /** FX linked notional */\n    FXLinkedNotional: 2,\n    /** Fixed rate */\n    FixedRate: 3,\n    /** Future value notional */\n    FutureValueNotional: 4,\n    /** Known amount */\n    KnownAmount: 5,\n    /** Floating rate multiplier */\n    FloatingRateMultiplier: 6,\n    /** Spread */\n    Spread: 7,\n    /** Cap rate */\n    CapRate: 8,\n    /** Floor rate */\n    FloorRate: 9,\n    /** Non-deliverable settlement payment dates */\n    NonDeliverableSettlPaymentDates: 10,\n    /** Non-deliverable settlement calculation dates */\n    NonDeliverableSettlCalculationDates: 11,\n    /** Non-deliverable fixing dates. */\n    NonDeliverableFXFixingDates: 12,\n    /** Settlement period notional */\n    SettlPeriodNotnl: 13,\n    /** Settlement period price */\n    SettlPeriodPx: 14,\n    /** Calculation period */\n    CalcPeriod: 15,\n    /** Dividend accrual rate multiplier */\n    DividendAccrualRateMultiplier: 16,\n    /** Dividend accrual rate spread */\n    DividendAccrualRateSpread: 17,\n    /** Dividend accrual cap rate */\n    DividendAccrualCapRate: 18,\n    /** Dividend accrual floor rate */\n    DividendAccrualFloorRate: 19,\n    /** Compounding rate multiplier */\n    CompoundingRateMultiplier: 20,\n    /** Compounding rate spread */\n    CompoundingRateSpread: 21,\n    /** Compounding cap rate */\n    CompoundingCapRate: 22,\n    /** Compounding floor rate */\n    CompoundingFloorRate: 23,\n} as const);\n\nexport type PaymentScheduleType = (typeof PaymentScheduleType)[keyof typeof PaymentScheduleType];\n", "/**\n * Payment settlement style.\n * - Tag: 40227\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentSettlStyle = Object.freeze({\n    /** Standard */\n    Standard: 0,\n    /** Net */\n    Net: 1,\n    /** Standard and net */\n    StandardfNet: 2,\n} as const);\n\nexport type PaymentSettlStyle = (typeof PaymentSettlStyle)[keyof typeof PaymentSettlStyle];\n", "/**\n * When rate averaging is applicable, used to specify whether a weighted or unweighted average calculation method is to be used.\n * - Tag: 40806\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamAveragingMethod = Object.freeze({\n    /** Unweighted */\n    Unweighted: 0,\n    /** Weighted */\n    Weighted: 1,\n} as const);\n\nexport type PaymentStreamAveragingMethod =\n    (typeof PaymentStreamAveragingMethod)[keyof typeof PaymentStreamAveragingMethod];\n", "/**\n * Reference to the buyer of the cap rate option through its trade side.\n * - Tag: 40798\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamCapRateBuySide = Object.freeze({\n    /** Buyer of the trade */\n    Buyer: 1,\n    /** Seller of the trade */\n    Seller: 2,\n} as const);\n\nexport type PaymentStreamCapRateBuySide =\n    (typeof PaymentStreamCapRateBuySide)[keyof typeof PaymentStreamCapRateBuySide];\n", "/**\n * Compounding method.\n * - Tag: 40747\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamCompoundingMethod = Object.freeze({\n    /** None */\n    None: 0,\n    /** Flat */\n    Flat: 1,\n    /** Straight */\n    Straight: 2,\n    /** Spread exclusive */\n    SpreadExclusive: 3,\n} as const);\n\nexport type PaymentStreamCompoundingMethod =\n    (typeof PaymentStreamCompoundingMethod)[keyof typeof PaymentStreamCompoundingMethod];\n", "/**\n * The method of calculating discounted payment amounts\n * - Tag: 40744\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamDiscountType = Object.freeze({\n    /** Standard */\n    Standard: 0,\n    /** Forward Rate Agreement (FRA) */\n    FRA: 1,\n} as const);\n\nexport type PaymentStreamDiscountType = (typeof PaymentStreamDiscountType)[keyof typeof PaymentStreamDiscountType];\n", "/**\n * Reference to the buyer of the floor rate option through its trade side.\n * - Tag: 40801\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamFloorRateBuySide = Object.freeze({\n    /** Buyer of the trade */\n    Buyer: 1,\n    /** Seller of the trade */\n    Seller: 2,\n} as const);\n\nexport type PaymentStreamFloorRateBuySide =\n    (typeof PaymentStreamFloorRateBuySide)[keyof typeof PaymentStreamFloorRateBuySide];\n", "/**\n * The method of Forward Rate Agreement (FRA) discounting, if any, that will apply.\n * - Tag: 40816\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamFRADiscounting = Object.freeze({\n    /** None */\n    None: 0,\n    /** International Swaps and Derivatives Association (ISDA) */\n    ISDA: 1,\n    /** Australian Financial Markets Association (AFMA) */\n    AFMA: 2,\n} as const);\n\nexport type PaymentStreamFRADiscounting =\n    (typeof PaymentStreamFRADiscounting)[keyof typeof PaymentStreamFRADiscounting];\n", "/**\n * The method used when calculating the Inflation Index Level from multiple points - the most common is Linear.\n * - Tag: 40811\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamInflationInterpolationMethod = Object.freeze({\n    /** None */\n    None: 0,\n    /** Linear zero yield */\n    LinearZeroYield: 1,\n} as const);\n\nexport type PaymentStreamInflationInterpolationMethod =\n    (typeof PaymentStreamInflationInterpolationMethod)[keyof typeof PaymentStreamInflationInterpolationMethod];\n", "/**\n * The inflation lag period day type.\n * - Tag: 40810\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamInflationLagDayType = Object.freeze({\n    /** Business */\n    Business: 0,\n    /** Calendar */\n    Calendar: 1,\n    /** Commodity business */\n    CommodityBusiness: 2,\n    /** Currency business */\n    CurrencyBusiness: 3,\n    /** Exchange business */\n    ExchangeBusiness: 4,\n    /** Scheduled trading day */\n    ScheduledTradingDay: 5,\n} as const);\n\nexport type PaymentStreamInflationLagDayType =\n    (typeof PaymentStreamInflationLagDayType)[keyof typeof PaymentStreamInflationLagDayType];\n", "/**\n * Time unit associated with the inflation lag period.\n * - Tag: 40809\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PaymentStreamInflationLagUnit = Object.freeze({\n    /** Day */\n    Day: 'D',\n    /** Week */\n    Week: 'Wk',\n    /** Month */\n    Month: 'Mo',\n    /** Year */\n    Year: 'Yr',\n} as const);\n\nexport type PaymentStreamInflationLagUnit =\n    (typeof PaymentStreamInflationLagUnit)[keyof typeof PaymentStreamInflationLagUnit];\n", "/**\n * Defines applicable periods for interpolation.\n * - Tag: 42604\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamInterpolationPeriod = Object.freeze({\n    /** Initial\n        Interpolation is applicable to the initial period only. */\n    Initial: 0,\n    /** Initial and final\n        Interpolation is applicable to the initial and final periods only. */\n    InitialAndFinal: 1,\n    /** Final\n        Interpolation is applicable to the final period only. */\n    Final: 2,\n    /** Any period\n        Interpolation is applicable to any non-standard period. */\n    AnyPeriod: 3,\n} as const);\n\nexport type PaymentStreamInterpolationPeriod =\n    (typeof PaymentStreamInterpolationPeriod)[keyof typeof PaymentStreamInterpolationPeriod];\n", "/**\n * For a variance swap specifies how PaymentStreamLinkStrikePrice(42673) is expressed.\n * - Tag: 42674\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamLinkStrikePriceType = Object.freeze({\n    /** Volatility */\n    Volatility: 0,\n    /** Variance */\n    Variance: 1,\n} as const);\n\nexport type PaymentStreamLinkStrikePriceType =\n    (typeof PaymentStreamLinkStrikePriceType)[keyof typeof PaymentStreamLinkStrikePriceType];\n", "/**\n * The specification of any provisions for calculating payment obligations when a floating rate is negative (either due to a quoted negative floating rate or by operation of a spread that is subtracted from the floating rate).\n * - Tag: 40807\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamNegativeRateTreatment = Object.freeze({\n    /** Zero interest rate method */\n    ZeroInterestRateMethod: 0,\n    /** Negative interest rate method */\n    NegativeInterestRateMethod: 1,\n} as const);\n\nexport type PaymentStreamNegativeRateTreatment =\n    (typeof PaymentStreamNegativeRateTreatment)[keyof typeof PaymentStreamNegativeRateTreatment];\n", "/**\n * Specifies the day type of the relative payment date offset.\n * - Tag: 40920\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamPaymentDateOffsetDayType = Object.freeze({\n    /** Business */\n    Business: 0,\n    /** Calendar */\n    Calendar: 1,\n    /** Commodity business */\n    CommodityBusiness: 2,\n    /** Currency business */\n    CurrencyBusiness: 3,\n    /** Exchange business */\n    ExchangeBusiness: 4,\n    /** Scheduled trading day */\n    ScheduledTradingDay: 5,\n} as const);\n\nexport type PaymentStreamPaymentDateOffsetDayType =\n    (typeof PaymentStreamPaymentDateOffsetDayType)[keyof typeof PaymentStreamPaymentDateOffsetDayType];\n", "/**\n * Time unit multiplier for the relative initial fixing date offset.\n * - Tag: 40760\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PaymentStreamPaymentDateOffsetUnit = Object.freeze({\n    /** Day */\n    Day: 'D',\n    /** Week */\n    Week: 'Wk',\n    /** Month */\n    Month: 'Mo',\n    /** Year */\n    Year: 'Yr',\n} as const);\n\nexport type PaymentStreamPaymentDateOffsetUnit =\n    (typeof PaymentStreamPaymentDateOffsetUnit)[keyof typeof PaymentStreamPaymentDateOffsetUnit];\n", "/**\n * Time unit associated with the frequency of payments.\n * - Tag: 40754\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PaymentStreamPaymentFrequencyUnit = Object.freeze({\n    /** Day */\n    Day: 'D',\n    /** Week */\n    Week: 'Wk',\n    /** Month */\n    Month: 'Mo',\n    /** Year */\n    Year: 'Yr',\n    /** Term */\n    Term: 'T',\n} as const);\n\nexport type PaymentStreamPaymentFrequencyUnit =\n    (typeof PaymentStreamPaymentFrequencyUnit)[keyof typeof PaymentStreamPaymentFrequencyUnit];\n", "/**\n * The distribution of pricing days.\n * - Tag: 41214\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamPricingDayDistribution = Object.freeze({\n    /** All */\n    All: 0,\n    /** First */\n    First: 1,\n    /** Last */\n    Last: 2,\n    /** Penultimate */\n    Penultimate: 3,\n} as const);\n\nexport type PaymentStreamPricingDayDistribution =\n    (typeof PaymentStreamPricingDayDistribution)[keyof typeof PaymentStreamPricingDayDistribution];\n", "/**\n * The day of the week on which pricing takes place.\n * - Tag: 41228\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamPricingDayOfWeek = Object.freeze({\n    /** Every day (the default if not specified) */\n    EveryDay: 0,\n    /** Monday */\n    Monday: 1,\n    /** Tuesday */\n    Tuesday: 2,\n    /** Wednesday */\n    Wednesday: 3,\n    /** Thursday */\n    Thursday: 4,\n    /** Friday */\n    Friday: 5,\n    /** Saturday */\n    Saturday: 6,\n    /** Sunday */\n    Sunday: 7,\n} as const);\n\nexport type PaymentStreamPricingDayOfWeek =\n    (typeof PaymentStreamPricingDayOfWeek)[keyof typeof PaymentStreamPricingDayOfWeek];\n", "/**\n * Time unit associated with the floating rate index.\n * - Tag: 40791\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PaymentStreamRateIndexCurveUnit = Object.freeze({\n    /** Day */\n    Day: 'D',\n    /** Week */\n    Week: 'Wk',\n    /** Month */\n    Month: 'Mo',\n    /** Year */\n    Year: 'Yr',\n} as const);\n\nexport type PaymentStreamRateIndexCurveUnit =\n    (typeof PaymentStreamRateIndexCurveUnit)[keyof typeof PaymentStreamRateIndexCurveUnit];\n", "/**\n * The source of the payment stream floating rate index.\n * - Tag: 40790\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamRateIndexSource = Object.freeze({\n    /** Bloomberg */\n    Bloomberg: 0,\n    /** Reuters */\n    Reuters: 1,\n    /** Telerate */\n    Telerate: 2,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type PaymentStreamRateIndexSource =\n    (typeof PaymentStreamRateIndexSource)[keyof typeof PaymentStreamRateIndexSource];\n", "/**\n * Identifies whether the rate spread is applied to a long or short position.\n * - Tag: 40795\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamRateSpreadPositionType = Object.freeze({\n    /** Short */\n    Short: 0,\n    /** Long */\n    Long: 1,\n} as const);\n\nexport type PaymentStreamRateSpreadPositionType =\n    (typeof PaymentStreamRateSpreadPositionType)[keyof typeof PaymentStreamRateSpreadPositionType];\n", "/**\n * Identifies whether the rate spread is an absolute value to be added to the index rate or a percentage of the index rate.\n * - Tag: 41206\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamRateSpreadType = Object.freeze({\n    /** Absolute */\n    Absolute: 0,\n    /** Percentage */\n    Percentage: 1,\n} as const);\n\nexport type PaymentStreamRateSpreadType =\n    (typeof PaymentStreamRateSpreadType)[keyof typeof PaymentStreamRateSpreadType];\n", "/**\n * Specifies the yield calculation treatment for the index.\n * - Tag: 40796\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamRateTreatment = Object.freeze({\n    /** Bond equivalent yield */\n    BondEquivalentYield: 0,\n    /** Money market yield */\n    MoneyMarketYield: 1,\n} as const);\n\nexport type PaymentStreamRateTreatment = (typeof PaymentStreamRateTreatment)[keyof typeof PaymentStreamRateTreatment];\n", "/**\n * Indicates which price to use to satisfy the boundary condition.\n * - Tag: 42679\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamRealizedVarianceMethod = Object.freeze({\n    /** Previous\n        For a return on day T, the observed price on T-1 must be in range. */\n    Previous: 0,\n    /** Last\n        For a return on day T, the observed price on T must be in range. */\n    Last: 1,\n    /** Both\n        For a return on day T, the observed prices on both T and T-1 must be in range. */\n    Both: 2,\n} as const);\n\nexport type PaymentStreamRealizedVarianceMethod =\n    (typeof PaymentStreamRealizedVarianceMethod)[keyof typeof PaymentStreamRealizedVarianceMethod];\n", "/**\n * Used to specify the day of the week in which the reset occurs for payments that reset on a weekly basis.\n * - Tag: 40766\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PaymentStreamResetWeeklyRollConvention = Object.freeze({\n    /** Monday */\n    Monday: 'MON',\n    /** Tuesday */\n    Tuesday: 'TUE',\n    /** Wednesday */\n    Wednesday: 'WED',\n    /** Thursday */\n    Thursday: 'THU',\n    /** Friday */\n    Friday: 'FRI',\n    /** Saturday */\n    Saturday: 'SAT',\n    /** Sunday */\n    Sunday: 'SUN',\n} as const);\n\nexport type PaymentStreamResetWeeklyRollConvention =\n    (typeof PaymentStreamResetWeeklyRollConvention)[keyof typeof PaymentStreamResetWeeklyRollConvention];\n", "/**\n * Specifies how weather index units are to be calculated.\n * - Tag: 41199\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamSettlLevel = Object.freeze({\n    /** Average\n        The cumulative number of weather index units for each day in the calculation period divided by the number of days in the calculation period. */\n    Average: 0,\n    /** Maximum\n        The maximum number of weather index units for any day in the calculaiton period. */\n    Maximum: 1,\n    /** Minimum\n        The minimum number of weather index units for any day in the calculaiton period. */\n    Minimum: 2,\n    /** Cumulative\n        The cumulative number of weather index units for each day in the calculaiton period. */\n    Cumulative: 3,\n} as const);\n\nexport type PaymentStreamSettlLevel = (typeof PaymentStreamSettlLevel)[keyof typeof PaymentStreamSettlLevel];\n", "/**\n * Identifies the type of payment stream associated with the swap.\n * - Tag: 40738\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStreamType = Object.freeze({\n    /** Periodic (default) */\n    Periodic: 0,\n    /** Initial */\n    Initial: 1,\n    /** Single */\n    Single: 2,\n    /** Dividend */\n    Dividend: 3,\n    /** Interest */\n    Interest: 4,\n    /** Dividend return */\n    DividendReturn: 5,\n    /** Price return */\n    PriceReturn: 6,\n    /** Total return */\n    TotalReturn: 7,\n    /** Variance */\n    Variance: 8,\n    /** Correlation */\n    Correlation: 9,\n} as const);\n\nexport type PaymentStreamType = (typeof PaymentStreamType)[keyof typeof PaymentStreamType];\n", "/**\n * Optional indication whether stub is shorter or longer than the regular swap period.\n * - Tag: 40874\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStubLength = Object.freeze({\n    /** Short */\n    Short: 0,\n    /** Long */\n    Long: 1,\n} as const);\n\nexport type PaymentStubLength = (typeof PaymentStubLength)[keyof typeof PaymentStubLength];\n", "/**\n * Stub type.\n * - Tag: 40873\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentStubType = Object.freeze({\n    /** Initial */\n    Initial: 0,\n    /** Final */\n    Final: 1,\n    /** Compounding initial */\n    CompoundingInitial: 2,\n    /** Compounding final */\n    CompoundingFinal: 3,\n} as const);\n\nexport type PaymentStubType = (typeof PaymentStubType)[keyof typeof PaymentStubType];\n", "/**\n * Used to further clarify the value of PaymentType(40213).\n * - Tag: 40993\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentSubType = Object.freeze({\n    /** Initial (principal exchange) */\n    Initial: 0,\n    /** Intermediate (principal exchange) */\n    Intermediate: 1,\n    /** Final (principal exchange) */\n    Final: 2,\n    /** Prepaid (premium forward) */\n    Prepaid: 3,\n    /** Postpaid (premium forward) */\n    Postpaid: 4,\n    /** Variable (premium forward) */\n    Variable: 5,\n    /** Fixed (premium forward) */\n    Fixed: 6,\n    /** Swap (premium)\n        Indicates that the premium is to be paid in the style of payments under an IRS contract. */\n    Swap: 7,\n    /** Conditional (principal exchange on exercise) */\n    Conditional: 8,\n    /** Fixed rate\n        Applicable to PaymentType(40213)=14 (Rebate) for which PaymentFixedRate(43097) and its qualifiers supersede PaymentAmount(40217). */\n    FixedRate: 9,\n    /** Floating rate\n        Applicable to PaymentType(40213)=14 (Rebate) for which PaymentFloatingRateIndex(43098) and its qualifiers supersede PaymentAmount(40217). */\n    FloatingRate: 10,\n} as const);\n\nexport type PaymentSubType = (typeof PaymentSubType)[keyof typeof PaymentSubType];\n", "/**\n * Type of payment.\n * - Tag: 40213\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PaymentType = Object.freeze({\n    /** Brokerage */\n    Brokerage: 0,\n    /** Upfront fee */\n    UpfrontFee: 1,\n    /** Independent amount / collateral */\n    IndependentAmountCollateral: 2,\n    /** Principal exchange */\n    PrincipalExchange: 3,\n    /** Novation / termination */\n    NovationTermination: 4,\n    /** Early termination provision */\n    EarlyTerminationProvision: 5,\n    /** Cancelable provision */\n    CancelableProvision: 6,\n    /** Extendible provision */\n    ExtendibleProvision: 7,\n    /** Cap rate provision */\n    CapRateProvision: 8,\n    /** Floor rate provision */\n    FloorRateProvision: 9,\n    /** Option premium */\n    OptionPremium: 10,\n    /** Settlement payment */\n    SettlementPayment: 11,\n    /** Cash settlement */\n    CashSettl: 12,\n    /** Security lending\n        Fee that the borrower of the security or commodity pays to the lender. The basis rate is specified in PaymentFixedRate(43097). A security lending fee payment may be periodic, in which case specify PaymentFrequencyPeriod(43102) and PaymentFrequencyUnit(43103). */\n    SecurityLending: 13,\n    /** Rebate\n        For contracts calling for rebate payment(s), e.g. Securities Lending, normally specified as a fixed or floating rate rather than a fixed amount. A rebate payment may be periodic, in which case specify PaymentFrequencyPeriod(43102) and PaymentFrequencyUnit(43103). */\n    Rebate: 14,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type PaymentType = (typeof PaymentType)[keyof typeof PaymentType];\n", "/**\n * Identifies status of the payment report.\n * - Tag: 2806\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PayReportStatus = Object.freeze({\n    /** Received, not yet processed */\n    Received: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Rejected */\n    Rejected: 2,\n    /** Disputed\n        Used when there is some type of mismatch that can be resolved. */\n    Disputed: 3,\n} as const);\n\nexport type PayReportStatus = (typeof PayReportStatus)[keyof typeof PayReportStatus];\n", "/**\n * Identifies the message transaction type.\n * - Tag: 2804\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PayReportTransType = Object.freeze({\n    /** New */\n    New: 0,\n    /** Replace */\n    Replace: 1,\n    /** Status\n        An unsolicited message reporting the current progress status of the payment. */\n    Status: 2,\n} as const);\n\nexport type PayReportTransType = (typeof PayReportTransType)[keyof typeof PayReportTransType];\n", "/**\n * Identifies status of the request being responded to.\n * - Tag: 2813\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PayRequestStatus = Object.freeze({\n    /** Received, not yet processed */\n    Received: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Rejected */\n    Rejected: 2,\n    /** Disputed\n        Used when there is some type of mismatch that can be resolved. */\n    Disputed: 3,\n} as const);\n\nexport type PayRequestStatus = (typeof PayRequestStatus)[keyof typeof PayRequestStatus];\n", "/**\n * Identifies the message transaction type.\n * - Tag: 2811\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PayRequestTransType = Object.freeze({\n    /** New */\n    New: 0,\n    /** Cancel */\n    Cancel: 1,\n} as const);\n\nexport type PayRequestTransType = (typeof PayRequestTransType)[keyof typeof PayRequestTransType];\n", "/**\n * Type of Peg Limit\n * - Tag: 837\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PegLimitType = Object.freeze({\n    /** Or better (default) - price improvement allowed */\n    OrBetter: 0,\n    /** Strict - limit is a strict limit */\n    Strict: 1,\n    /** Or worse - for a buy the peg limit is a minimum and for a sell the peg limit is a maximum (for use for orders which have a price range) */\n    OrWorse: 2,\n} as const);\n\nexport type PegLimitType = (typeof PegLimitType)[keyof typeof PegLimitType];\n", "/**\n * Describes whether peg is static or floats\n * - Tag: 835\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PegMoveType = Object.freeze({\n    /** Floating (default) */\n    Floating: 0,\n    /** Fixed */\n    Fixed: 1,\n} as const);\n\nexport type PegMoveType = (typeof PegMoveType)[keyof typeof PegMoveType];\n", "/**\n * Type of Peg Offset value\n * - Tag: 836\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PegOffsetType = Object.freeze({\n    /** Price (default) */\n    Price: 0,\n    /** Basis Points */\n    BasisPoints: 1,\n    /** Ticks */\n    Ticks: 2,\n    /** Price Tier / Level */\n    PriceTier: 3,\n    /** Percentage */\n    Percentage: 4,\n} as const);\n\nexport type PegOffsetType = (typeof PegOffsetType)[keyof typeof PegOffsetType];\n", "/**\n * Defines the type of peg.\n * - Tag: 1094\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PegPriceType = Object.freeze({\n    /** Last peg (last sale) */\n    LastPeg: 1,\n    /** Mid-price peg (midprice of inside quote) */\n    MidPricePeg: 2,\n    /** Opening peg */\n    OpeningPeg: 3,\n    /** Market peg */\n    MarketPeg: 4,\n    /** Primary peg (primary market - buy at bid or sell at offer) */\n    PrimaryPeg: 5,\n    /** Peg to VWAP */\n    PegToVWAP: 7,\n    /** Trailing Stop Peg */\n    TrailingStopPeg: 8,\n    /** Peg to Limit Price */\n    PegToLimitPrice: 9,\n    /** Short sale minimum price Peg\n        Short sale minimum price Peg (published price that a short sell order must meet in order to comply with regulatory requirements, e.g. SEC uptick rules). */\n    ShortSaleMinPricePeg: 10,\n} as const);\n\nexport type PegPriceType = (typeof PegPriceType)[keyof typeof PegPriceType];\n", "/**\n * If the calculated peg price is not a valid tick price, specifies whether to round the price to be more or less aggressive\n * - Tag: 838\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PegRoundDirection = Object.freeze({\n    /** More aggressive - on a buy order round the price up to the nearest tick; on a sell order round down to the nearest tick */\n    MoreAggressive: 1,\n    /** More passive - on a buy order round down to the nearest tick; on a sell order round up to the nearest tick */\n    MorePassive: 2,\n} as const);\n\nexport type PegRoundDirection = (typeof PegRoundDirection)[keyof typeof PegRoundDirection];\n", "/**\n * The scope of the peg\n * - Tag: 840\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PegScope = Object.freeze({\n    /** Local (Exchange, ECN, ATS) */\n    Local: 1,\n    /** National */\n    National: 2,\n    /** Global */\n    Global: 3,\n    /** National excluding local */\n    NationalExcludingLocal: 4,\n} as const);\n\nexport type PegScope = (typeof PegScope)[keyof typeof PegScope];\n", "/**\n * Specifies the reason for an amount type when reported on a position. Useful when multiple instances of the same amount type are reported.\n * - Tag: 1585\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PosAmtReason = Object.freeze({\n    /** Options settlement */\n    OptionsSettlement: 0,\n    /** Pending erosion adjustment */\n    PendingErosionAdjustment: 1,\n    /** Final erosion adjustment */\n    FinalErosionAdjustment: 2,\n    /** Tear-up coupon amount */\n    TearUpCouponAmount: 3,\n    /** Price alignment interest\n        To minimize the impact of daily cash variation margin payments on the pricing of interest rate swaps, the Clearing House will charge interest on cumulative variation margin received and pay interest on cumulative variation margin paid in respect of these instruments. This interest element is known as price alignment interest. */\n    PriceAlignmentInterest: 4,\n    /** Delivery invoice charges */\n    DeliveryInvoiceCharges: 5,\n    /** Delivery storage charges */\n    DeliveryStorageCharges: 6,\n} as const);\n\nexport type PosAmtReason = (typeof PosAmtReason)[keyof typeof PosAmtReason];\n", "/**\n * Type of Position amount\n * - Tag: 707\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PosAmtType = Object.freeze({\n    /** Cash amount (corporate event) */\n    CashAmount: 'CASH',\n    /** Cash residual amount */\n    CashResidualAmount: 'CRES',\n    /** Final mark-to-market amount */\n    FinalMarkToMarketAmount: 'FMTM',\n    /** Incremental mark-to-market */\n    IncrementalMarkToMarketAmount: 'IMTM',\n    /** Premium amount */\n    PremiumAmount: 'PREM',\n    /** Start of day mark-to-market */\n    StartOfDayMarkToMarketAmount: 'SMTM',\n    /** Trade variation amount */\n    TradeVariationAmount: 'TVAR',\n    /** Value adjusted amount */\n    ValueAdjustedAmount: 'VADJ',\n    /** Settlement value */\n    SettlementValue: 'SETL',\n    /** Initial trade coupon amount */\n    InitialTradeCouponAmount: 'ICPN',\n    /** Accrued coupon amount */\n    AccruedCouponAmount: 'ACPN',\n    /** Coupon amount */\n    CouponAmount: 'CPN',\n    /** Incremental accrued coupon */\n    IncrementalAccruedCoupon: 'IACPN',\n    /** Collateralized mark-to-market */\n    CollateralizedMarkToMarket: 'CMTM',\n    /** Incremental collateralized mark-to-market */\n    IncrementalCollateralizedMarkToMarket: 'ICMTM',\n    /** Compensation amount */\n    CompensationAmount: 'DLV',\n    /** Total banked amount */\n    TotalBankedAmount: 'BANK',\n    /** Total collateralized amount */\n    TotalCollateralizedAmount: 'COLAT',\n    /** Long paired swap or swaption notional value */\n    LongPairedSwapNotionalValue: 'LSNV',\n    /** Short paired swap or swaption notional value */\n    ShortPairedSwapNotionalValue: 'SSNV',\n    /** Start-of-day accrued coupon */\n    StartOfDayAccruedCoupon: 'SACPN',\n    /** Net present value */\n    NetPresentValue: 'NPV',\n    /** Start-of-day net present value */\n    StartOfDayNetPresentValue: 'SNPV',\n    /** Net cash flow */\n    NetCashFlow: 'NCF',\n    /** Present value of all fees */\n    PresentValueOfFees: 'PVFEES',\n    /** Present value of one basis points\n        Change in value if yield curve shifts 0.01%. */\n    PresentValueOneBasisPoints: 'PV01',\n    /** The five year equivalent notional amount */\n    FiveYearEquivalentNotional: '5YREN',\n    /** Undiscounted mark-to-market */\n    UndiscountedMarkToMarket: 'UMTM',\n    /** Mark-to-model */\n    MarkToModel: 'MTD',\n    /** Mark-to-market variance */\n    MarkToMarketVariance: 'VMTM',\n    /** Mark-to-model variance */\n    MarkToModelVariance: 'VMTD',\n    /** Upfront payment */\n    UpfrontPayment: 'UPFRNT',\n    /** End value\n        Principal amount of a securities financing transaction on maturity date. */\n    EndVale: 'ENDV',\n    /** Outstanding margin loan\n        The amount of the outstanding margin loan. In the event that the loan has a short market value, PosAmt(708) would be a negative value. */\n    OutstandingMarginLoan: 'MGNLN',\n    /** Loan value\n        The amount of the loan. */\n    LoanValue: 'LNVL',\n} as const);\n\nexport type PosAmtType = (typeof PosAmtType)[keyof typeof PosAmtType];\n", "/**\n * Used to describe the ownership of the position.\n * - Tag: 1834\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PositionCapacity = Object.freeze({\n    /** Principal */\n    Principal: 0,\n    /** Agent */\n    Agent: 1,\n    /** Customer */\n    Customer: 2,\n    /** Counterparty */\n    Counterparty: 3,\n} as const);\n\nexport type PositionCapacity = (typeof PositionCapacity)[keyof typeof PositionCapacity];\n", "/**\n * Indicates whether the resulting position after a trade should be an opening position or closing position. Used for omnibus accounting - where accounts are held on a gross basis instead of being netted together.\n * - Tag: 77\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PositionEffect = Object.freeze({\n    /** Close */\n    Close: 'C',\n    /** FIFO */\n    FIFO: 'F',\n    /** Open */\n    Open: 'O',\n    /** Rolled */\n    Rolled: 'R',\n    /** Close but notify on open */\n    CloseButNotifyOnOpen: 'N',\n    /** Default */\n    Default: 'D',\n} as const);\n\nexport type PositionEffect = (typeof PositionEffect)[keyof typeof PositionEffect];\n", "/**\n * Maintenance Action to be performed.\n * - Tag: 712\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PosMaintAction = Object.freeze({\n    /** New\n        Used to increment the overall transaction quantity. */\n    New: 1,\n    /** Replace\n        Used to override the overall transaction quantity or specific add messages based on the reference ID. */\n    Replace: 2,\n    /** Cancel\n        Used to remove the overall transaction quantity or specific add messages based on the reference ID. */\n    Cancel: 3,\n    /** Reverse\n        Used to completelly back-out the transaction such that the transaction never existed. */\n    Reverse: 4,\n} as const);\n\nexport type PosMaintAction = (typeof PosMaintAction)[keyof typeof PosMaintAction];\n", "/**\n * Result of Position Maintenance Request.\n * - Tag: 723\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PosMaintResult = Object.freeze({\n    /** Successful Completion - no warnings or errors */\n    SuccessfulCompletion: 0,\n    /** Rejected */\n    Rejected: 1,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type PosMaintResult = (typeof PosMaintResult)[keyof typeof PosMaintResult];\n", "/**\n * Status of Position Maintenance Request\n * - Tag: 722\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PosMaintStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Accepted With Warnings */\n    AcceptedWithWarnings: 1,\n    /** Rejected */\n    Rejected: 2,\n    /** Completed */\n    Completed: 3,\n    /** Completed With Warnings */\n    CompletedWithWarnings: 4,\n} as const);\n\nexport type PosMaintStatus = (typeof PosMaintStatus)[keyof typeof PosMaintStatus];\n", "/**\n * Status of this position.\n * - Tag: 706\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PosQtyStatus = Object.freeze({\n    /** Submitted */\n    Submitted: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Rejected */\n    Rejected: 2,\n} as const);\n\nexport type PosQtyStatus = (typeof PosQtyStatus)[keyof typeof PosQtyStatus];\n", "/**\n * Result of Request for Positions.\n * - Tag: 728\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PosReqResult = Object.freeze({\n    /** Valid request */\n    ValidRequest: 0,\n    /** Invalid or unsupported request */\n    InvalidOrUnsupportedRequest: 1,\n    /** No positions found that match criteria */\n    NoPositionsFoundThatMatchCriteria: 2,\n    /** Not authorized to request positions */\n    NotAuthorizedToRequestPositions: 3,\n    /** Request for position not supported */\n    RequestForPositionNotSupported: 4,\n    /** Other\n        Use Text(58) for further explanation. */\n    Other: 99,\n} as const);\n\nexport type PosReqResult = (typeof PosReqResult)[keyof typeof PosReqResult];\n", "/**\n * Status of Request for Positions\n * - Tag: 729\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PosReqStatus = Object.freeze({\n    /** Completed */\n    Completed: 0,\n    /** Completed With Warnings */\n    CompletedWithWarnings: 1,\n    /** Rejected */\n    Rejected: 2,\n} as const);\n\nexport type PosReqStatus = (typeof PosReqStatus)[keyof typeof PosReqStatus];\n", "/**\n * Used to specify the type of position request being made.\n * - Tag: 724\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PosReqType = Object.freeze({\n    /** Positions */\n    Positions: 0,\n    /** Trades */\n    Trades: 1,\n    /** Exercises */\n    Exercises: 2,\n    /** Assignments */\n    Assignments: 3,\n    /** Settlement Activity */\n    SettlementActivity: 4,\n    /** Backout Message */\n    BackoutMessage: 5,\n    /** Delta Positions */\n    DeltaPositions: 6,\n    /** Net Position */\n    NetPosition: 7,\n    /** Large Positions Reporting */\n    LargePositionsReporting: 8,\n    /** Exercise Position Reporting Submission */\n    ExercisePositionReportingSubmission: 9,\n    /** Position Limit Reporting Submission */\n    PositionLimitReportingSubmissing: 10,\n} as const);\n\nexport type PosReqType = (typeof PosReqType)[keyof typeof PosReqType];\n", "/**\n * Indicates possible retransmission of message with this sequence number\n * - Tag: 43\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PossDupFlag = Object.freeze({\n    /** Original transmission */\n    OriginalTransmission: 'N',\n    /** Possible duplicate */\n    PossibleDuplicate: 'Y',\n} as const);\n\nexport type PossDupFlag = (typeof PossDupFlag)[keyof typeof PossDupFlag];\n", "/**\n * Indicates that message may contain information that has been sent under another sequence number.\n * - Tag: 97\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PossResend = Object.freeze({\n    /** Original Transmission */\n    OriginalTransmission: 'N',\n    /** Possible Resend */\n    PossibleResend: 'Y',\n} as const);\n\nexport type PossResend = (typeof PossResend)[keyof typeof PossResend];\n", "/**\n * Identifies the type of position transaction.\n * - Tag: 709\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PosTransType = Object.freeze({\n    /** Exercise */\n    Exercise: 1,\n    /** Do not exercise */\n    DoNotExercise: 2,\n    /** Position adjustment */\n    PositionAdjustment: 3,\n    /** Position change submission / margin disposition */\n    PositionChangeSubmission: 4,\n    /** Pledge */\n    Pledge: 5,\n    /** Large trader submission */\n    LargeTraderSubmission: 6,\n    /** Large positions reporting submission */\n    LargePositionsReportingSubmission: 7,\n    /** Long holdings */\n    LongHoldings: 8,\n    /** Internal transfer\n        Changes due to transfer of positions within a firm. */\n    InternalTransfer: 9,\n    /** Transfer of firm\n        Changes due to transfer of all positions of a firm. */\n    TransferOfFirm: 10,\n    /** External transfer\n        Changes due to transfer of positions between firms. */\n    ExternalTransfer: 11,\n    /** Corporate action */\n    CorporateAction: 12,\n    /** Notification\n        Information about a position that has been chosen for assignment. */\n    Notification: 13,\n    /** Position creation\n        Changes due to an option exercise causing a new futures position to be created. */\n    PositionCreation: 14,\n    /** Close out\n        Information about a position that has been closed out. */\n    Closeout: 15,\n    /** Reopen\n        Information about a position that has been reopened, i.e. reversal of a close out. */\n    Reopen: 16,\n} as const);\n\nexport type PosTransType = (typeof PosTransType)[keyof typeof PosTransType];\n", "/**\n * Used to identify the type of quantity that is being returned.\n * - Tag: 703\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PosType = Object.freeze({\n    /** Allocation Trade Qty */\n    AllocationTradeQty: 'ALC',\n    /** Option Assignment */\n    OptionAssignment: 'AS',\n    /** As-of Trade Qty */\n    AsOfTradeQty: 'ASF',\n    /** Delivery Qty */\n    DeliveryQty: 'DLV',\n    /** Electronic Trade Qty */\n    ElectronicTradeQty: 'ETR',\n    /** Option Exercise Qty */\n    OptionExerciseQty: 'EX',\n    /** End-of-Day Qty */\n    EndOfDayQty: 'FIN',\n    /** Intra-spread Qty */\n    IntraSpreadQty: 'IAS',\n    /** Inter-spread Qty */\n    InterSpreadQty: 'IES',\n    /** Adjustment Qty */\n    AdjustmentQty: 'PA',\n    /** Pit Trade Qty */\n    PitTradeQty: 'PIT',\n    /** Start-of-Day Qty */\n    StartOfDayQty: 'SOD',\n    /** Integral Split */\n    IntegralSplit: 'SPL',\n    /** Transaction from Assignment */\n    TransactionFromAssignment: 'TA',\n    /** Total Transaction Qty */\n    TotalTransactionQty: 'TOT',\n    /** Transaction Quantity */\n    TransactionQuantity: 'TQ',\n    /** Transfer Trade Qty */\n    TransferTradeQty: 'TRF',\n    /** Transaction from Exercise */\n    TransactionFromExercise: 'TX',\n    /** Cross Margin Qty */\n    CrossMarginQty: 'XM',\n    /** Receive Quantity */\n    ReceiveQuantity: 'RCV',\n    /** Corporate Action Adjustment */\n    CorporateActionAdjustment: 'CAA',\n    /** Delivery Notice Qty */\n    DeliveryNoticeQty: 'DN',\n    /** Exchange for Physical Qty */\n    ExchangeForPhysicalQty: 'EP',\n    /** Privately negotiated Trade Qty (Non-regulated) */\n    PrivatelyNegotiatedTradeQty: 'PNTN',\n    /** Net Delta Qty */\n    NetDeltaQty: 'DLT',\n    /** Credit Event Adjustment */\n    CreditEventAdjustment: 'CEA',\n    /** Succession Event Adjustment */\n    SuccessionEventAdjustment: 'SEA',\n    /** Net Qty */\n    NetQty: 'NET',\n    /** Gross Qty */\n    GrossQty: 'GRS',\n    /** Intraday Qty */\n    IntradayQty: 'ITD',\n    /** Gross non-delta-adjusted swaption position */\n    GrossLongNonDeltaAdjustedSwaptionPosition: 'NDAS',\n    /** Delta-adjusted paired swaption position */\n    LongDeltaAdjustedPairedSwaptionPosition: 'DAS',\n    /** Expiring quantity\n        The position quantity on expiration day after the application of trade and post trade activity, but prior to the application of exercises and assignments. */\n    ExpiringQuantity: 'EXP',\n    /** Quantity not exercised\n        The exercise quantity requested that was not allowed, e.g., the exercise quantity requested that exceeded the final long position. */\n    QuantityNotExercised: 'UNEX',\n    /** Requested exercise quantity\n        The exercise quantity requested. It may differ from the exercise quantity if it exceeds the final long position. */\n    RequestedExerciseQuantity: 'REQ',\n    /** Cash futures equivalent quantity */\n    CashFuturesEquivalentQuantity: 'CFE',\n    /** Loan or borrowed quantity\n        The number of shares, par value of bonds or commodity contracts on loan or borrowed. */\n    LoanOrBorrowedQuantity: 'SECLN',\n} as const);\n\nexport type PosType = (typeof PosType)[keyof typeof PosType];\n", "/**\n * Payment side of this individual payment from the requesting firm's perspective.\n * - Tag: 2819\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PostTradePaymentDebitOrCredit = Object.freeze({\n    /** Debit / Pay */\n    DebitPay: 0,\n    /** Credit / Receive */\n    CreditReceive: 1,\n} as const);\n\nexport type PostTradePaymentDebitOrCredit =\n    (typeof PostTradePaymentDebitOrCredit)[keyof typeof PostTradePaymentDebitOrCredit];\n", "/**\n * Used to indicate the status of a post-trade payment.\n * - Tag: 2823\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PostTradePaymentStatus = Object.freeze({\n    /** New\n        Payment is awaiting confirmation from the recipient. */\n    New: 0,\n    /** Initiated\n        Payment is confirmed by the recipient and has been scheduled. */\n    Initiated: 1,\n    /** Pending\n        Payment has been instructed to the payment service but status is unknown. */\n    Pending: 2,\n    /** Confirmed\n        Payment is complete and confirmed by the payment service. */\n    Confirmed: 3,\n    /** Rejected\n        Payment was rejected by the payment service. */\n    Rejected: 4,\n} as const);\n\nexport type PostTradePaymentStatus = (typeof PostTradePaymentStatus)[keyof typeof PostTradePaymentStatus];\n", "/**\n * Indicates the method of preallocation.\n * - Tag: 591\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PreallocMethod = Object.freeze({\n    /** Pro rata */\n    ProRata: '0',\n    /** Do not pro-rata - discuss first */\n    DoNotProRata: '1',\n} as const);\n\nexport type PreallocMethod = (typeof PreallocMethod)[keyof typeof PreallocMethod];\n", "/**\n * Indicates if the transaction was previously reported to the counterparty or market.\n * - Tag: 570\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PreviouslyReported = Object.freeze({\n    /** Not reported to counterparty or market\n        In the context of RTS 13 Article 16 when a trade is reported to more than one \"approved publication arrangement\" (APA) the original report can be flagged as \"original\". This is the ESMA \"ORGN\" flag. */\n    NotReportedToCounterparty: 'N',\n    /** Previously reported to counterparty or market\n        In the context of RTS 13 Article 16 when a trade is reported to more than one \"approved publication arrangement\" (APA) the additional reports need to be flagged as \"duplicative\" and this flag needs to be present on any occurrence (even when publishing to the market). This is also used for reporting directly to ESMA when the trade has been previously reported. This is the ESMA \"DUPL\" flag. */\n    PreviouslyReportedToCounterparty: 'Y',\n} as const);\n\nexport type PreviouslyReported = (typeof PreviouslyReported)[keyof typeof PreviouslyReported];\n", "/**\n * Describes the how the price limits are expressed.\n * - Tag: 1306\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PriceLimitType = Object.freeze({\n    /** Price (default) */\n    Price: 0,\n    /** Ticks */\n    Ticks: 1,\n    /** Percentage */\n    Percentage: 2,\n} as const);\n\nexport type PriceLimitType = (typeof PriceLimitType)[keyof typeof PriceLimitType];\n", "/**\n * Describes the format of the PriceMovementValue(1921).\n * - Tag: 1923\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PriceMovementType = Object.freeze({\n    /** Amount */\n    Amount: 0,\n    /** Percentage */\n    Percentage: 1,\n} as const);\n\nexport type PriceMovementType = (typeof PriceMovementType)[keyof typeof PriceMovementType];\n", "/**\n * Defines the type of price protection the customer requires on their order.\n * - Tag: 1092\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PriceProtectionScope = Object.freeze({\n    /** None */\n    None: '0',\n    /** Local (Exchange, ECN, ATS) */\n    Local: '1',\n    /** National (Across all national markets) */\n    National: '2',\n    /** Global (Across all markets) */\n    Global: '3',\n} as const);\n\nexport type PriceProtectionScope = (typeof PriceProtectionScope)[keyof typeof PriceProtectionScope];\n", "/**\n * Qualifier for price. May be used when the price needs to be explicitly qualified.\n * - Tag: 2710\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PriceQualifier = Object.freeze({\n    /** Accrued interest (if any) is factored into the price\n        The price is either \"dirty\" or the security is in default or soon to be defaulted. I.e. on fill there will be no separate accrued interest amount. This is often called a \"flat\" price. */\n    AccruedInterestIsFactored: 0,\n    /** Tax is factored into the price\n        The security's price includes applicable taxes, e.g. Japanese government bonds. */\n    TaxIsFactored: 1,\n    /** The effect of bond amortization or the floating rate index offset is factored into the price\n        The security's price includes the effect of bond amortization or a floating rate index. For example this qualifier would apply to the normal pricing of index-linked UK gilt bonds but not to US or EU index-linked bonds. */\n    BondAmortizationIsFactored: 2,\n} as const);\n\nexport type PriceQualifier = (typeof PriceQualifier)[keyof typeof PriceQualifier];\n", "/**\n * Method for price quotation\n * - Tag: 1196\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PriceQuoteMethod = Object.freeze({\n    /** Standard, money per unit of a physical */\n    Standard: 'STD',\n    /** Index */\n    Index: 'INX',\n    /** Interest rate Index */\n    InterestRateIndex: 'INT',\n    /** Percent of Par */\n    PercentOfPar: 'PCTPAR',\n} as const);\n\nexport type PriceQuoteMethod = (typeof PriceQuoteMethod)[keyof typeof PriceQuoteMethod];\n", "/**\n * Code to represent the price type.\n * - Tag: 423\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PriceType = Object.freeze({\n    /** Percentage (i.e. percent of par) (often called \"dollar price\" for fixed income) */\n    Percentage: 1,\n    /** Per unit (i.e. per share or contract) */\n    PerUnit: 2,\n    /** Fixed amount (absolute value) */\n    FixedAmount: 3,\n    /** Discount - percentage points below par */\n    Discount: 4,\n    /** Premium - percentage points over par */\n    Premium: 5,\n    /** Spread (basis points spread)\n        Usually the difference in yield between two switched bonds or a corporate bond traded spread-to-benchmark. */\n    Spread: 6,\n    /** TED Price */\n    TEDPrice: 7,\n    /** TED Yield */\n    TEDYield: 8,\n    /** Yield */\n    Yield: 9,\n    /** Fixed cabinet trade price (primarily for listed futures and options) */\n    FixedCabinetTradePrice: 10,\n    /** Variable cabinet trade price (primarily for listed futures and options) */\n    VariableCabinetTradePrice: 11,\n    /** Price spread\n        Price spread is expressed based on market convention for the asset being priced or traded. For example, the difference between the prices of a multileg switch or strategy expressed in basis points for a CDS or TBA roll; a price value to be added to a reference price, such as a \"pay up\" for specified pools */\n    PriceSpread: 12,\n    /** Product ticks in halves */\n    ProductTicksInHalves: 13,\n    /** Product ticks in fourths */\n    ProductTicksInFourths: 14,\n    /** Product ticks in eighths */\n    ProductTicksInEighths: 15,\n    /** Product ticks in sixteenths */\n    ProductTicksInSixteenths: 16,\n    /** Product ticks in thirty-seconds */\n    ProductTicksInThirtySeconds: 17,\n    /** Product ticks in sixty-fourths */\n    ProductTicksInSixtyFourths: 18,\n    /** Product ticks in one-twenty-eighths */\n    ProductTicksInOneTwentyEighths: 19,\n    /** Normal rate representation (e.g. FX rate) */\n    NormalRateRepresentation: 20,\n    /** Inverse rate representation (e.g. FX rate) */\n    InverseRateRepresentation: 21,\n    /** Basis points\n        When the price is not spread based. */\n    BasisPoints: 22,\n    /** Up front points\n        Used specifically for CDS pricing. */\n    UpfrontPoints: 23,\n    /** Interest rate\n        When the price is an interest rate. For example, used with benchmark reference rate. */\n    InterestRate: 24,\n    /** Percentage of notional */\n    PercentageNotional: 25,\n} as const);\n\nexport type PriceType = (typeof PriceType)[keyof typeof PriceType];\n", "/**\n * Indicates if a Cancel/Replace has caused an order to lose book priority.\n * - Tag: 638\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PriorityIndicator = Object.freeze({\n    /** Priority unchanged */\n    PriorityUnchanged: 0,\n    /** Lost Priority as result of order change */\n    LostPriorityAsResultOfOrderChange: 1,\n} as const);\n\nexport type PriorityIndicator = (typeof PriorityIndicator)[keyof typeof PriorityIndicator];\n", "/**\n * Specifies whether a quote is public, i.e. available to the market, or private, i.e. available to a specified counterparty only.\n * - Tag: 1171\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PrivateQuote = Object.freeze({\n    /** Private Quote */\n    PrivateQuote: 'Y',\n    /** Public Quote */\n    PublicQuote: 'N',\n} as const);\n\nexport type PrivateQuote = (typeof PrivateQuote)[keyof typeof PrivateQuote];\n", "/**\n * Processing code for sub-account. Absence of this field in AllocAccount (79) / AllocPrice (366) /AllocQty (80) / ProcessCode instance indicates regular trade.\n * - Tag: 81\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ProcessCode = Object.freeze({\n    /** Regular */\n    Regular: '0',\n    /** Soft Dollar */\n    SoftDollar: '1',\n    /** Step-In */\n    StepIn: '2',\n    /** Step-Out */\n    StepOut: '3',\n    /** Soft-dollar Step-In */\n    SoftDollarStepIn: '4',\n    /** Soft-dollar Step-Out */\n    SoftDollarStepOut: '5',\n    /** Plan Sponsor */\n    PlanSponsor: '6',\n} as const);\n\nexport type ProcessCode = (typeof ProcessCode)[keyof typeof ProcessCode];\n", "/**\n * Indicates the type of product the security is associated with. See also the CFICode (461) and SecurityType (167) fields.\n * - Tag: 460\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const Product = Object.freeze({\n    /** AGENCY */\n    AGENCY: 1,\n    /** COMMODITY */\n    COMMODITY: 2,\n    /** CORPORATE */\n    CORPORATE: 3,\n    /** CURRENCY */\n    CURRENCY: 4,\n    /** EQUITY */\n    EQUITY: 5,\n    /** GOVERNMENT */\n    GOVERNMENT: 6,\n    /** INDEX */\n    INDEX: 7,\n    /** LOAN */\n    LOAN: 8,\n    /** MONEYMARKET */\n    MONEYMARKET: 9,\n    /** MORTGAGE */\n    MORTGAGE: 10,\n    /** MUNICIPAL */\n    MUNICIPAL: 11,\n    /** OTHER */\n    OTHER: 12,\n    /** FINANCING */\n    FINANCING: 13,\n} as const);\n\nexport type Product = (typeof Product)[keyof typeof Product];\n", "/**\n * Code to identify the desired frequency of progress reports.\n * - Tag: 414\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ProgRptReqs = Object.freeze({\n    /** Buy-side explicitly requests status using Statue Request (default), the sell-side firm can, however, send a DONE status List STatus Response in an unsolicited fashion */\n    BuySideRequests: 1,\n    /** Sell-side periodically sends status using List Status. Period optionally specified in ProgressPeriod. */\n    SellSideSends: 2,\n    /** Real-time execution reports (to be discourage) */\n    RealTimeExecutionReports: 3,\n} as const);\n\nexport type ProgRptReqs = (typeof ProgRptReqs)[keyof typeof ProgRptReqs];\n", "/**\n * Day type for events that specify a period and unit.\n * - Tag: 40197\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ProtectionTermEventDayType = Object.freeze({\n    /** Business */\n    Business: 0,\n    /** Calendar */\n    Calendar: 1,\n    /** Commodity business */\n    CommodityBusiness: 2,\n    /** Currency business */\n    CurrencyBusiness: 3,\n    /** Exchange business */\n    ExchangeBusiness: 4,\n    /** Scheduled trading day */\n    ScheduledTradingDay: 5,\n} as const);\n\nexport type ProtectionTermEventDayType = (typeof ProtectionTermEventDayType)[keyof typeof ProtectionTermEventDayType];\n", "/**\n * Protection term event qualifier. Used to further qualify ProtectionTermEventType(40192).\n * - Tag: 40200\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ProtectionTermEventQualifier = Object.freeze({\n    /** Retructuring - multiple holding obligations\n        In relation to a restructuring credit event, unless multiple holder obligation is not specified restructurings are limited to multiple holder obligations. A multiple holder obligation means an obligation that is held by more than three holders that are not affiliates of each other and where at least two thirds of the holders must agree to the event that constitutes the restructuring credit event. ISDA 2003 Term: Multiple Holder Obligation. */\n    RestructuringMultipleHoldingObligations: 'H',\n    /** Restructuring - multiple credit event notices\n        Presence of this element and value set to 'true' indicates that Section 3.9 of the 2003 Credit Derivatives Definitions shall apply. Absence of this element indicates that Section 3.9 shall not apply. NOTE: Not allowed under ISDA Credit 1999. */\n    RestructuringMultipleCreditEventNotices: 'E',\n    /** Floating rate interest shortfall\n        Indicates compounding. */\n    FloatingRateInterestShortfall: 'C',\n} as const);\n\nexport type ProtectionTermEventQualifier =\n    (typeof ProtectionTermEventQualifier)[keyof typeof ProtectionTermEventQualifier];\n", "/**\n * Time unit associated with protection term events.\n * - Tag: 40196\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ProtectionTermEventUnit = Object.freeze({\n    /** Day */\n    Day: 'D',\n    /** Week */\n    Week: 'Wk',\n    /** Month */\n    Month: 'Mo',\n    /** Year */\n    Year: 'Yr',\n} as const);\n\nexport type ProtectionTermEventUnit = (typeof ProtectionTermEventUnit)[keyof typeof ProtectionTermEventUnit];\n", "/**\n * Type of fee elected for the break provision.\n * - Tag: 42707\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ProvisionBreakFeeElection = Object.freeze({\n    /** Flat fee */\n    FlatFee: 0,\n    /** Amortized fee */\n    AmortizedFee: 1,\n    /** Funding fee */\n    FundingFee: 2,\n    /** Flat fee and funding fee */\n    FlatAndFundingFee: 3,\n    /** Amortized fee and funding fee */\n    AmortizedAndFundingFee: 4,\n} as const);\n\nexport type ProvisionBreakFeeElection = (typeof ProvisionBreakFeeElection)[keyof typeof ProvisionBreakFeeElection];\n", "/**\n * Used to identify the calculation agent. The calculation agent may be identified in ProvisionCalculationAgent(40098) or in the ProvisionParties component.\n * - Tag: 40098\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ProvisionCalculationAgent = Object.freeze({\n    /** Exercising party */\n    ExercisingParty: 0,\n    /** Non-exercising party */\n    NonExercisingParty: 1,\n    /** As specified in the master agreement */\n    MasterAgreeent: 2,\n    /** As specified in the standard terms supplement */\n    Supplement: 3,\n} as const);\n\nexport type ProvisionCalculationAgent = (typeof ProvisionCalculationAgent)[keyof typeof ProvisionCalculationAgent];\n", "/**\n * An ISDA defined cash settlement method used for the determination of the applicable cash settlement amount. The method is defined in the 2006 ISDA Definitions, Section 18.3. Cash Settlement Methods, paragraph (e).\n * - Tag: 40108\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ProvisionCashSettlMethod = Object.freeze({\n    /** Cash price */\n    CashPrice: 0,\n    /** Cash price alternate */\n    CashPriceAlternate: 1,\n    /** Par yield curve adjusted */\n    ParYieldCurveAdjusted: 2,\n    /** Zero coupon yield curve adjusted */\n    ZeroCouponYieldCurveAdjusted: 3,\n    /** Par yield curve unadjusted */\n    ParYieldCurveUnadjusted: 4,\n    /** Cross currency */\n    CrossCurrency: 5,\n    /** Collateralized price */\n    CollateralizedPrice: 6,\n} as const);\n\nexport type ProvisionCashSettlMethod = (typeof ProvisionCashSettlMethod)[keyof typeof ProvisionCashSettlMethod];\n", "/**\n * Specifies the type of date (e.g. adjusted for holidays).\n * - Tag: 40173\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ProvisionCashSettlPaymentDateType = Object.freeze({\n    /** Unadjusted */\n    Unadjusted: 0,\n    /** Adjusted */\n    Adjusted: 1,\n} as const);\n\nexport type ProvisionCashSettlPaymentDateType =\n    (typeof ProvisionCashSettlPaymentDateType)[keyof typeof ProvisionCashSettlPaymentDateType];\n", "/**\n * Identifies the type of quote to be used.\n * - Tag: 40111\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ProvisionCashSettlQuoteType = Object.freeze({\n    /** Bid */\n    Bid: 0,\n    /** Mid */\n    Mid: 1,\n    /** Offer */\n    Offer: 2,\n    /** Exercising party pays\n        See 2000 ISDA Definitions, Section 17.2, Certain Definitions Relating to Cash Settlement, paragraph (j) for definition of \"exercising party pays\". */\n    ExercisingPartyPays: 3,\n} as const);\n\nexport type ProvisionCashSettlQuoteType =\n    (typeof ProvisionCashSettlQuoteType)[keyof typeof ProvisionCashSettlQuoteType];\n", "/**\n * Time unit associated with the provision's tenor period.\n * - Tag: 40097\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ProvisionDateTenorUnit = Object.freeze({\n    /** Day */\n    Day: 'D',\n    /** Week */\n    Week: 'Wk',\n    /** Month */\n    Month: 'Mo',\n    /** Year */\n    Year: 'Yr',\n} as const);\n\nexport type ProvisionDateTenorUnit = (typeof ProvisionDateTenorUnit)[keyof typeof ProvisionDateTenorUnit];\n", "/**\n * Time unit associated with the interval to the first (and possibly only) exercise date in the exercise period.\n * - Tag: 40126\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ProvisionOptionExerciseEarliestDateOffsetUnit = Object.freeze({\n    /** Day */\n    Day: 'D',\n    /** Week */\n    Week: 'Wk',\n    /** Month */\n    Month: 'Mo',\n    /** Year */\n    Year: 'Yr',\n} as const);\n\nexport type ProvisionOptionExerciseEarliestDateOffsetUnit =\n    (typeof ProvisionOptionExerciseEarliestDateOffsetUnit)[keyof typeof ProvisionOptionExerciseEarliestDateOffsetUnit];\n", "/**\n * Specifies the type of date (e.g. adjusted for holidays).\n * - Tag: 40144\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ProvisionOptionExerciseFixedDateType = Object.freeze({\n    /** Unadjusted */\n    Unadjusted: 0,\n    /** Adjusted */\n    Adjusted: 1,\n} as const);\n\nexport type ProvisionOptionExerciseFixedDateType =\n    (typeof ProvisionOptionExerciseFixedDateType)[keyof typeof ProvisionOptionExerciseFixedDateType];\n", "/**\n * If optional early termination is not available to both parties then this component identifies the buyer of the option through its side of the trade.\n * - Tag: 40099\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ProvisionOptionSinglePartyBuyerSide = Object.freeze({\n    /** Buy */\n    Buy: 1,\n    /** Sell */\n    Sell: 2,\n} as const);\n\nexport type ProvisionOptionSinglePartyBuyerSide =\n    (typeof ProvisionOptionSinglePartyBuyerSide)[keyof typeof ProvisionOptionSinglePartyBuyerSide];\n", "/**\n * Type of provisions.\n * - Tag: 40091\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ProvisionType = Object.freeze({\n    /** Mandatory early termination */\n    MandatoryEarlyTermination: 0,\n    /** Optional early termination */\n    OptionalEarlyTermination: 1,\n    /** Cancelable */\n    Cancelable: 2,\n    /** Extendable\n        The contract can be extended by either party usually with a specific time notice prior to the expiry date. In the context of EU SFTR reporting this corresponds to \"termination optionality\" code \"ETSB\". */\n    Extendable: 3,\n    /** Mutual early termination */\n    MutualEarlyTermination: 4,\n    /** Evergreen\n        The contract automatically renews after the expiry date until one party gives the other notice to terminate. In the context of EU SFTR reporting this corresponds to \"termination optionality\" code \"EGRN\". */\n    Evergreen: 5,\n    /** Callable\n        Contract is callable. */\n    Callable: 6,\n    /** Puttable\n        Contract is puttable. */\n    Puttable: 7,\n} as const);\n\nexport type ProvisionType = (typeof ProvisionType)[keyof typeof ProvisionType];\n", "/**\n * Indicates if a trade should be reported via a market reporting service.\n * - Tag: 852\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const PublishTrdIndicator = Object.freeze({\n    /** Do Not Report Trade */\n    DoNotReportTrade: 'N',\n    /** Report Trade */\n    ReportTrade: 'Y',\n} as const);\n\nexport type PublishTrdIndicator = (typeof PublishTrdIndicator)[keyof typeof PublishTrdIndicator];\n", "/**\n * Indicates whether an option contract is a put, call, chooser or undetermined.\n * - Tag: 201\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const PutOrCall = Object.freeze({\n    /** Put\n        Also used for the case in which the buyer of a Swaption has the right to enter into an IRS contract as a fixed-rate receiver or into a CDS contract as a seller of protection or for the case of a Floor. */\n    Put: 0,\n    /** Call\n        Also used for the case in which the buyer of a Swaption has the right to enter into an IRS contract as a fixed-rate payer or into a CDS contract as a buyer of protection or for the case of a Cap. */\n    Call: 1,\n    /** Other\n        In the context of ESMA RTS 22 reporting, this value may be used when, at the time of execution, the option right cannot be determined. */\n    Other: 2,\n    /** Chooser\n        Indicates that the option buyer may choose to buy or sell the underlying security on exercise or if a Swaption to pay or receive the underlying IRS cash flow stream or to buy or sell CDS protection. */\n    Chooser: 3,\n} as const);\n\nexport type PutOrCall = (typeof PutOrCall)[keyof typeof PutOrCall];\n", "/**\n * Type of quantity specified in quantity field. ContractMultiplier (tag 231) is required when QtyType = 1 (Contracts). UnitOfMeasure (tag 996) and TimeUnit (tag 997) are required when QtyType = 2 (Units of Measure per Time Unit).\n * - Tag: 854\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QtyType = Object.freeze({\n    /** Units (shares, par, currency) */\n    Units: 0,\n    /** Contracts */\n    Contracts: 1,\n    /** Unit of Measure per Time Unit */\n    UnitsOfMeasurePerTimeUnit: 2,\n} as const);\n\nexport type QtyType = (typeof QtyType)[keyof typeof QtyType];\n", "/**\n * Acknowledgement status of a Quote(35=S) or QuoteCancel(35=Z) message submission.\n * - Tag: 1865\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuoteAckStatus = Object.freeze({\n    /** Received, not yet processed */\n    ReceivedNotYetProcessed: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Rejected */\n    Rejected: 2,\n} as const);\n\nexport type QuoteAckStatus = (typeof QuoteAckStatus)[keyof typeof QuoteAckStatus];\n", "/**\n * The type of attribute for the quote.\n * - Tag: 2707\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuoteAttributeType = Object.freeze({\n    /** Quote is above standard market size\n        In the context of ESMA pre-trade transparency under MiFIR to make prices public, the quote size is above standard market size, therefore the price is not made public. Applicable for cash equities instruments. */\n    QuoteAboveStandardMarketSize: 0,\n    /** Quote is above size specific to the instrument\n        In the context of ESMA pre-trade transparency under MiFID to make public prices, the quote size is above the size specific to the instrument, therefore the price is not or will not be made public. Applicable for non-cash equities instruments. */\n    QuoteAboveSpecificInstrumentSize: 1,\n    /** Quote applicable for liquidity provision activity\n        In the context of ESMA RTS 24 Article 3, when QuoteAttributeValue(2708)=Y, it signifies that the quote was submitted \"as part of a market making strategy pursuant to Articles 17 and 18 of Directive 2014/65/EU, or is submitted as part of another activity in accordance with Article 3\" (of RTS 24). */\n    QuoteApplicableForLiquidtyProvisionActivity: 2,\n    /** Quote issuer status\n        Indicate whether quote issuer is available or not. Can be used in the context of US CAT to indicate if a market maker\u2019s quote is open (O) or closed (C) whenever the quote is sent to an inter-dealer quotation system. */\n    QuoteIssuerStatus: 3,\n    /** Bid or ask request\n        Indicate explicitly whether a request for a quote is a request for a bid or an ask. */\n    BidOrAskRequest: 4,\n} as const);\n\nexport type QuoteAttributeType = (typeof QuoteAttributeType)[keyof typeof QuoteAttributeType];\n", "/**\n * Identifies the type of quote cancel.\n * - Tag: 298\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuoteCancelType = Object.freeze({\n    /** Cancel quotes for one or more securities */\n    CancelForOneOrMoreSecurities: 1,\n    /** Cancel quotes for security type(s) */\n    CancelForSecurityType: 2,\n    /** Cancel quotes for underlying security */\n    CancelForUnderlyingSecurity: 3,\n    /** Cancel all quotes */\n    CancelAllQuotes: 4,\n    /** Cancel specified single quote\n        Cancel single quote specified in QuoteID(117) or SecondaryQuoteID(1751) */\n    CancelSpecifiedSingleQuote: 5,\n    /** Cancel by type of quote\n        Cancel quotes by type of quote specified in QuoteType(537) */\n    CancelByTypeOfQuote: 6,\n    /** Cancel quotes for an issuer */\n    CancelForSecurityIssuer: 7,\n    /** Cancel quotes for an issuer of underlying security */\n    CancelForIssuerOfUnderlyingSecurity: 8,\n} as const);\n\nexport type QuoteCancelType = (typeof QuoteCancelType)[keyof typeof QuoteCancelType];\n", "/**\n * Space-delimited list of conditions describing a quote.\n * - Tag: 276\n * - FIX Specification type: MultipleStringValue\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const QuoteCondition = Object.freeze({\n    /** Open/Active */\n    Open: 'A',\n    /** Closed/Inactive */\n    Closed: 'B',\n    /** Exchange Best */\n    ExchangeBest: 'C',\n    /** Consolidated Best */\n    ConsolidatedBest: 'D',\n    /** Locked */\n    Locked: 'E',\n    /** Crossed */\n    Crossed: 'F',\n    /** Depth */\n    Depth: 'G',\n    /** Fast Trading */\n    FastTrading: 'H',\n    /** Non-Firm */\n    NonFirm: 'I',\n    /** Manual/Slow Quote */\n    Manual: 'L',\n    /** Outright Price */\n    OutrightPrice: 'J',\n    /** Implied Price */\n    ImpliedPrice: 'K',\n    /** Depth on Offer */\n    DepthOnOffer: 'M',\n    /** Depth on Bid */\n    DepthOnBid: 'N',\n    /** Closing */\n    Closing: 'O',\n    /** News Dissemination */\n    NewsDissemination: 'P',\n    /** Trading Range */\n    TradingRange: 'Q',\n    /** Order Influx */\n    OrderInflux: 'R',\n    /** Due to Related */\n    DueToRelated: 'S',\n    /** News Pending */\n    NewsPending: 'T',\n    /** Additional Info */\n    AdditionalInfo: 'U',\n    /** Additional Info due to related */\n    AdditionalInfoDueToRelated: 'V',\n    /** Resume */\n    Resume: 'W',\n    /** View of Common */\n    ViewOfCommon: 'X',\n    /** Volume Alert */\n    VolumeAlert: 'Y',\n    /** Order Imbalance */\n    OrderImbalance: 'Z',\n    /** Equipment Changeover */\n    EquipmentChangeover: 'a',\n    /** No Open / No Resume */\n    NoOpen: 'b',\n    /** Regular ETH */\n    RegularETH: 'c',\n    /** Automatic Execution */\n    AutomaticExecution: 'd',\n    /** Automatic Execution ETH */\n    AutomaticExecutionETH: 'e',\n    /** Fast Market ETH */\n    FastMarketETH: 'f',\n    /** Inactive ETH */\n    InactiveETH: 'g',\n    /** Rotation */\n    Rotation: 'h',\n    /** Rotation ETH */\n    RotationETH: 'i',\n    /** Halt */\n    Halt: 'j',\n    /** Halt ETH */\n    HaltETH: 'k',\n    /** Due to News Dissemination */\n    DueToNewsDissemination: 'l',\n    /** Due to News Pending */\n    DueToNewsPending: 'm',\n    /** Trading Resume */\n    TradingResume: 'n',\n    /** Out of Sequence */\n    OutOfSequence: 'o',\n    /** Bid Specialist */\n    BidSpecialist: 'p',\n    /** Offer Specialist */\n    OfferSpecialist: 'q',\n    /** Bid Offer Specialist */\n    BidOfferSpecialist: 'r',\n    /** End of Day SAM */\n    EndOfDaySAM: 's',\n    /** Forbidden SAM */\n    ForbiddenSAM: 't',\n    /** Frozen SAM */\n    FrozenSAM: 'u',\n    /** PreOpening SAM */\n    PreOpeningSAM: 'v',\n    /** Opening SAM */\n    OpeningSAM: 'w',\n    /** Open SAM */\n    OpenSAM: 'x',\n    /** Surveillance SAM */\n    SurveillanceSAM: 'y',\n    /** Suspended SAM */\n    SuspendedSAM: 'z',\n    /** Reserved SAM */\n    ReservedSAM: '0',\n    /** No Active SAM */\n    NoActiveSAM: '1',\n    /** Restricted */\n    Restricted: '2',\n    /** Rest of Book VWAP */\n    RestOfBookVWAP: '3',\n    /** Better Prices in Conditional Orders */\n    BetterPricesInConditionalOrders: '4',\n    /** Median Price */\n    MedianPrice: '5',\n    /** Full Curve */\n    FullCurve: '6',\n    /** Flat Curve */\n    FlatCurve: '7',\n} as const);\n\nexport type QuoteCondition = (typeof QuoteCondition)[keyof typeof QuoteCondition];\n", "/**\n * Reason Quote Entry was rejected:\n * - Tag: 368\n * - FIX Specification type: int\n * - FIX Specification version: FIX42\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuoteEntryRejectReason = Object.freeze({\n    /** Unknown symbol (Security) */\n    UnknownSymbol: 1,\n    /** Exchange (Security) closed */\n    Exchange: 2,\n    /** Quote exceeds limit */\n    QuoteExceedsLimit: 3,\n    /** Too late to enter */\n    TooLateToEnter: 4,\n    /** Unknown Quote */\n    UnknownQuote: 5,\n    /** Duplicate Quote */\n    DuplicateQuote: 6,\n    /** Invalid bid/ask spread */\n    InvalidBidAskSpread: 7,\n    /** Invalid price */\n    InvalidPrice: 8,\n    /** Not authorized to quote security */\n    NotAuthorizedToQuoteSecurity: 9,\n} as const);\n\nexport type QuoteEntryRejectReason = (typeof QuoteEntryRejectReason)[keyof typeof QuoteEntryRejectReason];\n", "/**\n * Identifies the status of an individual quote. See also QuoteStatus(297) which is used for single Quotes.\n * - Tag: 1167\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuoteEntryStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Rejected */\n    Rejected: 5,\n    /** Removed from Market */\n    RemovedFromMarket: 6,\n    /** Expired */\n    Expired: 7,\n    /** Locked Market Warning */\n    LockedMarketWarning: 12,\n    /** Cross Market Warning */\n    CrossMarketWarning: 13,\n    /** Canceled due to Lock Market */\n    CanceledDueToLockMarket: 14,\n    /** Canceled due to Cross Market */\n    CanceledDueToCrossMarket: 15,\n    /** Active */\n    Active: 16,\n} as const);\n\nexport type QuoteEntryStatus = (typeof QuoteEntryStatus)[keyof typeof QuoteEntryStatus];\n", "/**\n * Quote model type\n * - Tag: 2403\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuoteModelType = Object.freeze({\n    /** Quote entry\n        New quote is entered or previously submitted quote is updated in full without regard to amount executed when a subsequent quote (e.g. with the same QuoteID reference) is received by the Recipient of the quote message. */\n    QuoteEntry: 1,\n    /** Quote modification\n        Previously submitted quote must be present and is updated, taking into consideration the amount already executed when a subsequent quote (e.g. with the same QuoteID reference) is received by the Recipient of the quote message. */\n    QuoteModification: 2,\n} as const);\n\nexport type QuoteModelType = (typeof QuoteModelType)[keyof typeof QuoteModelType];\n", "/**\n * Code to represent price type requested in Quote.\n    If the Quote Request is for a Swap, values 1-8 apply to all legs.\n * - Tag: 692\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuotePriceType = Object.freeze({\n    /** Percentage (i.e. percent of par) (often called \"dollar price\" for fixed income) */\n    Percent: 1,\n    /** Per unit (i.e. per share or contract) */\n    PerShare: 2,\n    /** Fixed Amount (absolute value) */\n    FixedAmount: 3,\n    /** Discount - percentage points below par */\n    Discount: 4,\n    /** Premium - percentage points over par */\n    Premium: 5,\n    /** Spread (basis points relative to benchmark)\n        Usually the difference in yield between two switched bonds or a corporate bond traded spread-to-benchmark. */\n    Spread: 6,\n    /** TED Price */\n    TEDPrice: 7,\n    /** TED Yield */\n    TEDYield: 8,\n    /** Yield Spread (swaps) */\n    YieldSpread: 9,\n    /** Yield */\n    Yield: 10,\n    /** Price spread\n        Price spread is expressed based on market convention for the asset being priced or traded. For example: the difference between the prices of a multileg switch or strategy expressed in basis points for a CDS or TBA roll; a price value to be added to a reference price, such as a \"pay up\" for specified pools. */\n    PriceSpread: 12,\n    /** Product ticks in halves */\n    ProductTicksInHalves: 13,\n    /** Product ticks in fourths */\n    ProductTicksInFourths: 14,\n    /** Product ticks in eighths */\n    ProductTicksInEighths: 15,\n    /** Product ticks in sixteenths */\n    ProductTicksInSixteenths: 16,\n    /** Product ticks in thirty-seconds */\n    ProductTicksInThirtySeconds: 17,\n    /** Product ticks in sixty-fourths */\n    ProductTicksInSixtyFourths: 18,\n    /** Product ticks in one-twenty-eighths */\n    ProductTicksInOneTwentyEighths: 19,\n    /** Normal rate representation (e.g. FX rate) */\n    NormalRateRepresentation: 20,\n    /** Inverse rate representation (e.g. FX rate) */\n    InverseRateRepresentation: 21,\n    /** Basis points\n        When the price is not spread based */\n    BasisPoints: 22,\n    /** Up front points\n        Used specifically for CDS pricing. */\n    UpFrontPoints: 23,\n    /** Interest rate\n        When the price is an interest rate. For example, used with benchmark reference rate. */\n    InterestRate: 24,\n    /** Percentage of notional */\n    PercentageOfNotional: 25,\n} as const);\n\nexport type QuotePriceType = (typeof QuotePriceType)[keyof typeof QuotePriceType];\n", "/**\n * Reason quote was rejected.\n * - Tag: 300\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuoteRejectReason = Object.freeze({\n    /** Unknown symbol (security)\n        In the context of IA FX Reject codes, Trade Request Rejection Category F, this may be used with QuoteStatus(297)=5 (Rejected) to indicate product is not supported, e.g. by the specific venue, tenor restrictions on the market participant(s) involved. */\n    UnknownSymbol: 1,\n    /** Exchange (security) closed */\n    Exchange: 2,\n    /** Quote Request exceeds limit */\n    QuoteRequestExceedsLimit: 3,\n    /** Too late to enter */\n    TooLateToEnter: 4,\n    /** Unknown quote */\n    UnknownQuote: 5,\n    /** Duplicate quote */\n    DuplicateQuote: 6,\n    /** Invalid bid/ask spread */\n    InvalidBid: 7,\n    /** Invalid price\n        In the context of IA FX Reject codes, Trade Request Rejection Category A-2, this may be used with QuoteStatus(297)=5 (Rejected) to indicate price is not valid due to \"last look latency\". */\n    InvalidPrice: 8,\n    /** Not authorized to quote security */\n    NotAuthorizedToQuoteSecurity: 9,\n    /** Price exceeds current price band */\n    PriceExceedsCurrentPriceBand: 10,\n    /** Quote locked - unable to update/cancel */\n    QuoteLocked: 11,\n    /** Invalid or unknown security issuer */\n    InvalidOrUnknownSecurityIssuer: 12,\n    /** Invalid or unknown issuer of underlying security */\n    InvalidOrUnknownIssuerOfUnderlyingSecurity: 13,\n    /** Notional value exceeds threshold */\n    NotionalValueExceedsThreshold: 14,\n    /** Price exceeds current price band */\n    PriceExceedsCurrentPriceBandDepr: 15,\n    /** Reference price not available */\n    ReferencePriceNotAvailable: 16,\n    /** Insufficient credit limit\n        In the context of IA FX Reject codes, Trade Request Rejection Category C, this may be used with QuoteStatus(297)=5 (Rejected) to indicate credit limit is exceeded or not in place. */\n    InsufficientCreditLimit: 17,\n    /** Exceeded clip size limit */\n    ExceededClipSizeLimit: 18,\n    /** Exceeded maximum notional order amount */\n    ExceededMaxNotionalOrderAmt: 19,\n    /** Exceeded DV01/PV01 limit */\n    ExceededDV01PV01Limit: 20,\n    /** Exceeded CS01 limit */\n    ExceededCS01Limit: 21,\n    /** Unavailable price or liquidity\n        In the context of IA FX Reject codes, Trade Request Rejection Category B, this may be used with QuoteStatus(297)=5 (Rejected) to indicate the \"Hit/lift\" was not subjected to last look but pricing or liquidity is no longer available for execution. */\n    UnavailablePriceLiquidity: 22,\n    /** Invalid or missing entitlements\n        In the context of IA FX Reject codes, Trade Request Rejection Category D, this may be used with QuoteStatus(297)=5 (Rejected) to indicate the counterparty is not authorized or has missing entitlements. */\n    InvalidMissingEntitlements: 23,\n    /** Unknown account(s)\n        In the context of IA FX Reject codes, Trade Request Rejection Category D, this may be used with QuoteStatus(297)=5 (Rejected) to indicate the account/fund is unknown or not setup. */\n    UnknownAccounts: 24,\n    /** Other\n        In the context of IA FX Reject codes, Trade Request Rejection Category E, order rejected due to other exceptions. Further detail may be provided in RejectText(1328) or Text(58), with preference for RejectText(1328) if field is present in the message. */\n    Other: 99,\n} as const);\n\nexport type QuoteRejectReason = (typeof QuoteRejectReason)[keyof typeof QuoteRejectReason];\n", "/**\n * Reason quote request was rejected.\n * - Tag: 658\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuoteRequestRejectReason = Object.freeze({\n    /** Unknown Symbol (Security)\n        In the context of IA FX Reject codes, Quote Rejection Category F, the RFQ is rejected due to unknown or unsupported product, e.g. by the specific venue, tenor restrictions on the market participant(s) involved. */\n    UnknownSymbol: 1,\n    /** Exchange (Security) Closed */\n    Exchange: 2,\n    /** Quote Request Exceeds Limit\n        In the context of IA FX Reject codes, Quote Rejection Category D, the RFQ is rejected due to risk limit exceeded or not in place. */\n    QuoteRequestExceedsLimit: 3,\n    /** Too Late to enter */\n    TooLateToEnter: 4,\n    /** Invalid Price */\n    InvalidPrice: 5,\n    /** Not Authorized To Request Quote */\n    NotAuthorizedToRequestQuote: 6,\n    /** No Match For Inquiry */\n    NoMatchForInquiry: 7,\n    /** No Market For Instrument\n        In the context of IA FX Reject codes, Quote Rejection Category F, the RFQ is rejected due to unknown or unsupported product. */\n    NoMarketForInstrument: 8,\n    /** No Inventory */\n    NoInventory: 9,\n    /** Pass */\n    Pass: 10,\n    /** Insufficient credit\n        In the context of IA FX Reject codes, Quote Rejection Category A, the RFQ is rejected due to credit limit exceeded or not in place. */\n    InsufficientCredit: 11,\n    /** Exceeded clip size limit */\n    ExceededClipSizeLimit: 12,\n    /** Exceeded maximum notional order amount */\n    ExceededMaxNotionalOrderAmt: 13,\n    /** Exceeded DV01/PV01 limit */\n    ExceededDV01PV01Limit: 14,\n    /** Exceeded CS01 limit */\n    ExceededCS01Limit: 15,\n    /** Unavailable price or liquidity\n        In the context of IA FX Reject codes, Quote Rejection Category B, the RFQ is rejected due to unavailable price information. */\n    UnavailablePriceLiquidity: 16,\n    /** Unmet regulatory requirement\n        In the context of IA FX Reject codes, Quote Rejection Category C, the RFQ is rejected due to regulatory requirements not being met. For example, a RFQ is submitted into a SEF by a non-SEF participant, or an NDF was submitted into the trading platform. */\n    UnmetRegulatoryRequirement: 17,\n    /** Unknown account(s)\n        In the context of IA FX Reject codes, Quote Rejection Category E, the RFQ is rejected due to static data when the account/fund is not setup or unknown. */\n    UnknownAccounts: 18,\n    /** Invalid or missing entitlements\n        In the context of IA FX Reject codes, Quote Rejection Category E, the RFQ is rejected due to static data when the counterparty is not authorized or has missing entitlements. */\n    InvalidMissingEntitlements: 19,\n    /** Other\n        In the context of IA FX Reject codes, Quote Rejection Category G, the RFQ is rejected due to other exceptions. Further detail may be provided in RejectText(1328) or Text(58), with preference for RejectText(1328) if field is present in the message. */\n    Other: 99,\n} as const);\n\nexport type QuoteRequestRejectReason = (typeof QuoteRequestRejectReason)[keyof typeof QuoteRequestRejectReason];\n", "/**\n * Indicates the type of Quote Request being generated\n * - Tag: 303\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuoteRequestType = Object.freeze({\n    /** Manual */\n    Manual: 1,\n    /** Automatic */\n    Automatic: 2,\n    /** Confirm quote */\n    ConfirmQuote: 3,\n} as const);\n\nexport type QuoteRequestType = (typeof QuoteRequestType)[keyof typeof QuoteRequestType];\n", "/**\n * Level of Response requested from receiver of quote messages. A default value should be bilaterally agreed.\n * - Tag: 301\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuoteResponseLevel = Object.freeze({\n    /** No Acknowledgement */\n    NoAcknowledgement: 0,\n    /** Acknowledge only negative or erroneous quotes */\n    AcknowledgeOnlyNegativeOrErroneousQuotes: 1,\n    /** Acknowledge each quote message */\n    AcknowledgeEachQuoteMessage: 2,\n    /** Summary Acknowledgement */\n    SummaryAcknowledgement: 3,\n} as const);\n\nexport type QuoteResponseLevel = (typeof QuoteResponseLevel)[keyof typeof QuoteResponseLevel];\n", "/**\n * Identifies the type of Quote Response.\n * - Tag: 694\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuoteRespType = Object.freeze({\n    /** Hit/Lift */\n    Hit: 1,\n    /** Counter */\n    Counter: 2,\n    /** Expired */\n    Expired: 3,\n    /** Cover\n        Trade was done with another quote provider. Quote provider's original quoted price was the best price not traded (i.e. the cover price). */\n    Cover: 4,\n    /** Done away\n        Trade was done with another quote provider. */\n    DoneAway: 5,\n    /** Pass */\n    Pass: 6,\n    /** End trade\n        Indicates an end to the trade negotiation. */\n    EndTrade: 7,\n    /** Timed out */\n    TimedOut: 8,\n    /** Tied\n        Trade was done with another quote provider. Quote provider's original quoted price was the same as the traded price. */\n    Tied: 9,\n    /** Tied cover\n        Trade was done with another quote provider. Quote provider's original quoted price was the best price not traded. There were other quote provider(s) at the same price. */\n    TiedCover: 10,\n    /** Accept\n        Used in a response to acknowledge an action communicated by the counterparty. */\n    Accept: 11,\n    /** Terminate contract\n        Used to communicate the termination of an existing contract. */\n    TerminateContract: 12,\n} as const);\n\nexport type QuoteRespType = (typeof QuoteRespType)[keyof typeof QuoteRespType];\n", "/**\n * Indicates whether single sided quotes are allowed.\n * - Tag: 2559\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const QuoteSideIndicator = Object.freeze({\n    /** Single sided quotes are not allowed */\n    No: 'N',\n    /** Single sided quotes are allowed */\n    Yes: 'Y',\n} as const);\n\nexport type QuoteSideIndicator = (typeof QuoteSideIndicator)[keyof typeof QuoteSideIndicator];\n", "/**\n * Identifies the status of the quote acknowledgement.\n * - Tag: 297\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuoteStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Canceled for specific securities */\n    CancelForSymbol: 1,\n    /** Canceled for specific SecurityTypes(167) */\n    CanceledForSecurityType: 2,\n    /** Canceled for underlying */\n    CanceledForUnderlying: 3,\n    /** Canceled all */\n    CanceledAll: 4,\n    /** Rejected */\n    Rejected: 5,\n    /** Removed from market */\n    RemovedFromMarket: 6,\n    /** Expired\n        In the context of IA FX Reject codes, Trade Request Rejection Category A-2, this may be used to indicate price or liquidity is unavailable due to \"last look latency\". */\n    Expired: 7,\n    /** Query */\n    Query: 8,\n    /** Quote not found */\n    QuoteNotFound: 9,\n    /** Pending */\n    Pending: 10,\n    /** Pass\n        In the context of IA FX Reject codes, Trade Request Rejection Category A-1, this is used by price maker to pass due to a \"last look\". */\n    Pass: 11,\n    /** Locked market warning */\n    LockedMarketWarning: 12,\n    /** Crossed market warning */\n    CrossMarketWarning: 13,\n    /** Canceled due to locked market */\n    CanceledDueToLockMarket: 14,\n    /** Canceled due to crossed market */\n    CanceledDueToCrossMarket: 15,\n    /** Active */\n    Active: 16,\n    /** Canceled */\n    Canceled: 17,\n    /** Unsolicited quote replenishment */\n    UnsolicitedQuoteReplenishment: 18,\n    /** Pending end trade */\n    PendingEndTrade: 19,\n    /** Too late to end */\n    TooLateToEnd: 20,\n    /** Traded */\n    Traded: 21,\n    /** Traded and removed */\n    TradedAndRemoved: 22,\n    /** Contract terminated\n        Indicates a contract has been or is being terminated. */\n    ContractTerminates: 23,\n} as const);\n\nexport type QuoteStatus = (typeof QuoteStatus)[keyof typeof QuoteStatus];\n", "/**\n * Identifies the type of quote.\n    An indicative quote is used to inform a counterparty of a market. An indicative quote does not result directly in a trade.\n    A tradeable quote is submitted to a market and will result directly in a trade against other orders and quotes in a market.\n    A restricted tradeable quote is submitted to a market and within a certain restriction (possibly based upon price or quantity) will automatically trade against orders. Order that do not comply with restrictions are sent to the quote issuer who can choose to accept or decline the order.\n    A counter quote is used in the negotiation model. See Volume 7 - Product: Fixed Income for example usage.\n * - Tag: 537\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const QuoteType = Object.freeze({\n    /** Indicative */\n    Indicative: 0,\n    /** Tradeable */\n    Tradeable: 1,\n    /** Restricted tradeable */\n    RestrictedTradeable: 2,\n    /** Counter (tradeable) */\n    Counter: 3,\n    /** Initially tradeable */\n    InitiallyTradeable: 4,\n} as const);\n\nexport type QuoteType = (typeof QuoteType)[keyof typeof QuoteType];\n", "/**\n * Identifies the source of rate information.\n    For FX, the reference source to be used for the FX spot rate.\n    This is where to look up the rate information and is not necessarily the entity that sets the rate.\n * - Tag: 1446\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RateSource = Object.freeze({\n    /** Bloomberg */\n    Bloomberg: 0,\n    /** Reuters */\n    Reuters: 1,\n    /** Telerate */\n    Telerate: 2,\n    /** ISDA Settlement Rate Option\n        The source of the currency conversion as specified by the ISDA terms in Annex A to the 1998 FX and Currency Option Definitions. See http://www.fpml.org/coding-scheme/settlement-rate-option */\n    ISDARateOption: 3,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type RateSource = (typeof RateSource)[keyof typeof RateSource];\n", "/**\n * Indicates whether the rate source specified is a primary or secondary source.\n * - Tag: 1447\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RateSourceType = Object.freeze({\n    /** Primary */\n    Primary: 0,\n    /** Secondary */\n    Secondary: 1,\n} as const);\n\nexport type RateSourceType = (typeof RateSourceType)[keyof typeof RateSourceType];\n", "/**\n * Reference data entry's date-time type.\n * - Tag: 2748\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ReferenceDataDateType = Object.freeze({\n    /** Date of request for admission to trading\n        In the context of MiFID II ESMA RTS 23 this is defined as \"Date and time the issuer has approved admission to trading or trading in its financial instruments on a trading venue.\" (Reference: Annex I Table 3 Field 9) */\n    AdmitToTradeRequestDate: 0,\n    /** Date of approval of admission to trading\n        In the context of MiFID II ESMA RTS 23 this is defined as \"Date and time of the request for admission to trading on the trading venue.\" (Reference: Annex I Table 3 Field 10) */\n    AdmitToTradeApprovalDate: 1,\n    /** Date of admission to trading or date of first trade\n        In the context of MiFID II ESMA RTS 23 this is defined as \"Date and time of the admission to trading on the trading venue or the date and time when the instrument was first traded or an order or quote was first received by the trading venue.\" (Reference: Annex I Table 3 Field 11) */\n    AdmitToTradeOrFirstTradeDate: 2,\n    /** Termination date\n        In the context of MiFID II ESMA RTS 23 this is defined as \"Where available, the date and time when the financial instrument ceases to be traded or to be admitted to trading on the trading venue.\" (Reference: Annex I Table 3 Field 12) */\n    TerminationDate: 3,\n} as const);\n\nexport type ReferenceDataDateType = (typeof ReferenceDataDateType)[keyof typeof ReferenceDataDateType];\n", "/**\n * Specifies the type of reference entity for first-to-default CDS basket contracts.\n * - Tag: 1956\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ReferenceEntityType = Object.freeze({\n    /** Asian */\n    Asian: 1,\n    /** Australian and New Zealand */\n    AustralianNewZealand: 2,\n    /** European emerging markets */\n    EuropeanEmergingMarkets: 3,\n    /** Japanese */\n    Japanese: 4,\n    /** North American high yield */\n    NorthAmericanHighYield: 5,\n    /** North American insurance */\n    NorthAmericanInsurance: 6,\n    /** North American investment grade */\n    NorthAmericanInvestmentGrade: 7,\n    /** Singaporean */\n    Singaporean: 8,\n    /** Western European */\n    WesternEuropean: 9,\n    /** Western European insurance */\n    WesternEuropeanInsurance: 10,\n} as const);\n\nexport type ReferenceEntityType = (typeof ReferenceEntityType)[keyof typeof ReferenceEntityType];\n", "/**\n * Used to specify the source for the identifier in RefOrderID(1080). This can be an identifier provided in order depth market data when hitting (taking) a specific order or to identify what type of order or quote reference is being provided when seeking credit limit check. In the context of US CAT this can be used to identify related orders and quotes which are parent, previous, or manual orders or quotes. Previous relates to orders changing their unique system assigned order identifier.\n * - Tag: 1081\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const RefOrderIDSource = Object.freeze({\n    /** Secondary order ID\n        Can be used to refer to an additional order identifier assigned by the party accepting an order, e.g. SecondaryOrderID(198). */\n    SecondaryOrderID: '0',\n    /** Order ID\n        Can be used to refer to an order identifier assigned by the party accepting an order, e.g. OrderID(37). */\n    OrderID: '1',\n    /** Market data entry ID\n        Can be used to refer to a market data entry identifier provided with market data, e.g. MDEntryID(278). */\n    MDEntryID: '2',\n    /** Quote entry ID\n        Can be used to refer to a quote identifier provided with market data or quote, e.g. QuoteEntryID(299). */\n    QuoteEntryID: '3',\n    /** Original order ID\n        Can be used to refer to an initial order identifier assigned by the party accepting an order, e.g. OrderID(37) that changed. */\n    OriginalOrderID: '4',\n    /** Quote ID\n        Can be used to refer to a quote identifier assigned by the party issuing the quote, e.g. QuoteID(117). */\n    QuoteID: '5',\n    /** Quote request ID\n        Can be used to refer to a quote identifier or quote request identifier assigned by the party issuing the request, e.g. QuoteReqID(131). */\n    QuoteReqID: '6',\n    /** Previous order identifier\n        Can be used when previously assigned (unique) system order identifier has changed. */\n    PreviousOrderIdentifier: '7',\n    /** Previous quote identifier\n        Can be used when previously assigned (unique) quote identifier has changed. */\n    PreviousQuoteIdentifier: '8',\n    /** Parent order identifier\n        Can be used where orders are split into child orders and need to refer back to their parent order. */\n    ParentOrderIdentifier: '9',\n    /** Manual order identifier\n        Can be used to refer to a manually received order that is being replaced by an electronically received order. */\n    ManualOrderIdentifier: 'A',\n} as const);\n\nexport type RefOrderIDSource = (typeof RefOrderIDSource)[keyof typeof RefOrderIDSource];\n", "/**\n * The reason for updating the RefOrdID\n * - Tag: 1431\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RefOrdIDReason = Object.freeze({\n    /** GTC from previous day */\n    GTCFromPreviousDay: 0,\n    /** Partial Fill Remaining */\n    PartialFillRemaining: 1,\n    /** Order Changed */\n    OrderChanged: 2,\n} as const);\n\nexport type RefOrdIDReason = (typeof RefOrdIDReason)[keyof typeof RefOrdIDReason];\n", "/**\n * Specifies which type of identifier is specified in RefRiskLimitCheckID(2334) field.\n * - Tag: 2335\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RefRiskLimitCheckIDType = Object.freeze({\n    /** RiskLimitRequestID(1666) */\n    RiskLimitRequestID: 0,\n    /** RiskLimitCheckID(2319) */\n    RiskLimitCheckID: 1,\n    /** Out of band identifier */\n    OutOfBandID: 3,\n} as const);\n\nexport type RefRiskLimitCheckIDType = (typeof RefRiskLimitCheckIDType)[keyof typeof RefRiskLimitCheckIDType];\n", "/**\n * Reason(s) why Registration Instructions has been rejected.\n    The reason may be further amplified in the RegistRejReasonCode field.\n    Possible values of reason code include:\n * - Tag: 507\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RegistRejReasonCode = Object.freeze({\n    /** Invalid/unacceptable Account Type */\n    InvalidAccountType: 1,\n    /** Invalid/unacceptable Tax Exempt Type */\n    InvalidTaxExemptType: 2,\n    /** Invalid/unacceptable Ownership Type */\n    InvalidOwnershipType: 3,\n    /** Invalid/unacceptable No Reg Details */\n    NoRegDetails: 4,\n    /** Invalid/unacceptable Reg Seq No */\n    InvalidRegSeqNo: 5,\n    /** Invalid/unacceptable Reg Details */\n    InvalidRegDetails: 6,\n    /** Invalid/unacceptable Mailing Details */\n    InvalidMailingDetails: 7,\n    /** Invalid/unacceptable Mailing Instructions */\n    InvalidMailingInstructions: 8,\n    /** Invalid/unacceptable Investor ID */\n    InvalidInvestorID: 9,\n    /** Invalid/unaceeptable Investor ID Source */\n    InvalidInvestorIDSource: 10,\n    /** Invalid/unacceptable Date Of Birth */\n    InvalidDateOfBirth: 11,\n    /** Invalid/unacceptable Investor Country Of Residence */\n    InvalidCountry: 12,\n    /** Invalid/unacceptable No Distrib Instns */\n    InvalidDistribInstns: 13,\n    /** Invalid/unacceptable Distrib Percentage */\n    InvalidPercentage: 14,\n    /** Invalid/unacceptable Distrib Payment Method */\n    InvalidPaymentMethod: 15,\n    /** Invalid/unacceptable Cash Distrib Agent Acct Name */\n    InvalidAccountName: 16,\n    /** Invalid/unacceptable Cash Distrib Agent Code */\n    InvalidAgentCode: 17,\n    /** Invalid/unacceptable Cash Distrib Agent Acct Num */\n    InvalidAccountNum: 18,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type RegistRejReasonCode = (typeof RegistRejReasonCode)[keyof typeof RegistRejReasonCode];\n", "/**\n * Registration status as returned by the broker or (for CIV) the fund manager:\n * - Tag: 506\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const RegistStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 'A',\n    /** Rejected */\n    Rejected: 'R',\n    /** Held */\n    Held: 'H',\n    /** Reminder - i.e. Registration Instructions are still outstanding */\n    Reminder: 'N',\n} as const);\n\nexport type RegistStatus = (typeof RegistStatus)[keyof typeof RegistStatus];\n", "/**\n * Identifies Registration Instructions transaction type\n * - Tag: 514\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const RegistTransType = Object.freeze({\n    /** New */\n    New: '0',\n    /** Cancel */\n    Cancel: '2',\n    /** Replace */\n    Replace: '1',\n} as const);\n\nexport type RegistTransType = (typeof RegistTransType)[keyof typeof RegistTransType];\n", "/**\n * Type of regulatory report.\n * - Tag: 1934\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RegulatoryReportType = Object.freeze({\n    /** Real-time (RT)\n        Report of data relating to a regulated transaction including price and volume that is to be disseminated publically. If dissemination is to be suppressed due to an end user exception or to local regulatory rules that allow suppression of certain types of transactions use TradePublishIndicator(1390)=0. */\n    RT: 0,\n    /** Primary economic terms (PET)\n        Report to regulators of the full terms of a regulated transaction included in the legal confirmation. */\n    PET: 1,\n    /** Snapshot\n        Periodic report of full primary economic terms data throughout the life cycle of a regulated transaction. */\n    Snapshot: 2,\n    /** Confirmation\n        Report from a clearing organization of a cleared regulated transaction. */\n    Confirmation: 3,\n    /** Combination of RT and PET\n        A single report combining the requirements of both real-time and full primary economy terms of a regulated transaction. */\n    RTPET: 4,\n    /** Combination of PET and confirmation\n        A single report combining the requirements of both full primary economic terms of a regulated transaction report and confirmation. */\n    PETConfirmation: 5,\n    /** Combination of RT, PET and confirmation\n        A single report combining the requirements of real-time and full primary economic terms of a regulated transaction report, and confirmation. */\n    RTPETConfirmation: 6,\n    /** Post-trade valuation\n        Periodic report of the ongoing mark-to-market value of a regulated transaction. */\n    PostTrade: 7,\n    /** Verification\n        Used by the trading counterparty to report its full primary economic terms of a regulated transaction separately to the repository. */\n    Verification: 8,\n    /** Post-trade event\n        Report of a regulated transaction continuation event that does not fall within the requirements for real-time reporting. */\n    PstTrdEvnt: 9,\n    /** Post trade event RT reportable\n        Report of a regulated transaction continuation event that falls within the requirements for real-time reporting and public dissemination. If dissemination is to be suppressed due to an end user exception or to local regulatory rules that allow suppression of certain types of transactions, use TradePublishIndicator(1390) = 0 (Do not publish trade). */\n    PstTrdEvntRTReportable: 10,\n    /** Limited Details Trade\n        In the context of MiFIR RTS 2 and EU Consolidated Tape for derivatives, this is the supplementary deferral flag \"LMTF\". */\n    LimitedDetailsTrade: 11,\n    /** Daily Aggregated Trade\n        In the context of MiFIR RTS 2 and EU Consolidated Tape for derivatives, this is the supplementary deferral flag \"DATF\". */\n    DailyAggregatedTrade: 12,\n    /** Volume Omission Trade\n        In the context of MiFIR RTS 2, EU Consolidated Tape for derivatives and UK Consolidated Tape for bonds, this is the supplementary deferral flag \"VOLO\". In the context of MiFIR RTS 2 and EU Consolidated Tape for sovereign bonds, this is the supplementary deferral flag \"OMIS\". */\n    VolumeOmissionTrade: 13,\n    /** Four Weeks Aggregation Trade\n        In the context of MiFIR RTS 2 and EU Consolidated Tape for derivatives, this is the supplementary deferral flag \"FWAF\". In the context of MiFIR RTS 2 and EU Consolidated Tape for sovereign bonds, this is the supplementary deferral flag \"AGFW\". */\n    FourWeeksAggregationTrade: 14,\n    /** Indefinite Aggregation Trade\n        In the context of MiFIR RTS 2, this is the supplementary deferral flag \"IDAF\". Note as of April 2026 this value is no longer used by ESMA and is retained for backward compatibility and reference. */\n    IndefiniteAggregationTrade: 15,\n    /** Volume Omission Trade Eligible for Subsequent Aggregated Enrichment\n        In the context of MiFIR RTS 2, this is the supplementary deferral flag \"VOLW\". Note as of April 2026 this value is no longer used by ESMA and is retained for backward compatibility and reference. */\n    VolumeOmissionTradeEnrichment: 16,\n    /** Full Details of \"Limited Details Trade\"\n        Full details of a previously reported limited details trade. In the context of MiFIR RTS 2 and EU Consolidated Tape for derivatives, this is the supplementary deferral flag \"FULF\". */\n    FullDetailsLimitedDetailsTrade: 17,\n    /** Full Details of \"Daily Aggregated Trade\"\n        Full details of a previously reported daily aggregated trade. In the context of MiFIR RTS 2 and EU Consolidated Tape for derivatives, this is the supplementary deferral flag \"FULA\". */\n    FullDetailsDailyAggregatedTrade: 18,\n    /** Full Details of \"Volume Omission Trade\"\n        Full details of a previously reported volume omission trade. In the context of MiFIR RTS 2, EU Consolidated Tape for derivatives and UK Consolidated Tape for bonds, this is the supplementary deferral flag \"FULV\". In the context of MiFIR RTS 2 and EU Consolidated Tape for sovereign bonds, this is the supplementary deferral flag \"FULO\". */\n    FullDetailsVolumeOmissionTrade: 19,\n    /** Full Details of \"Four Weeks Aggregation Trade\"\n        Full details of a previously reported four weeks aggregation trade. In the context of MiFIR RTS 2 and EU Consolidated Tape for derivatives, this is the supplementary deferral flag \"FULJ\". In the context of MiFIR RTS 2 and EU Consolidated Tape for sovereign bonds, this is the supplementary deferral flag \"FULG\". */\n    FullDetailsFourWeeksAggregationTrade: 20,\n    /** Full Details in Aggregated Form of \"Volume Omission Trade Eligible for Subsequent Aggregated Enrichment\"\n        Full details of a previously reported \"volume omission trade eligible for subsequent aggregated enrichment\" transaction. In the context of MiFIR RTS 2, this is the supplementary deferral flag \"COAF\". Note as of April 2026 this value is no longer used by ESMA and is retained for backward compatibility and reference. */\n    FullDetailsVolumeOmissionTradeEnrichment: 21,\n    /** Order\n        Report for order handling events to enter, change or delete orders. In the context of US CAT this is used for the event types MENO, MEOM, MEOJ, and MEOC. */\n    Order: 22,\n    /** Child order\n        Report for child order handling events to enter, change or delete child orders. Child orders are created when a (parent) order is split into multiple (child) orders. In the context of US CAT this is used for the event types MECO, MECOM, and MECOC. */\n    ChildOrder: 23,\n    /** Order route\n        Reported when an order is routed between market participants and/or execution venues such as an exchange. In the context of US CAT this is used for the event types MEOR, MEOA and MEIR. */\n    OrderRoute: 24,\n    /** Trade\n        Report for trade handling events to enter, change or delete trades. In the context of US CAT this is used for the event types MEOT, MEOF and MEFA. */\n    Trade: 25,\n    /** Quote\n        Report for quote handling events to enter, change or delete quotes. In the context of US CAT this is used for the event types MENQ, MEQR, and MEQC. */\n    Quote: 26,\n    /** Supplement\n        Reported when an order, quote or trade report is split across multiple messages. The recipient must be able to create the full report by combining the initial and supplement reports. In the context of US CAT this is used for the event types MENOS, MEOMS and MEOTS. */\n    Supplement: 27,\n    /** New transaction\n        In the context of EU SFTR reporting this corresponds to \"action type\" \"NEWT\". */\n    NewTransaction: 28,\n    /** Transaction correction\n        In the context of EU SFTR reporting this corresponds to \"action type\" \"CORR\". */\n    TransactionCorrection: 29,\n    /** Transaction modification\n        In the context of EU SFTR reporting this corresponds to \"action type\" \"MODI\". */\n    TransactionModification: 30,\n    /** Collateral update\n        In the context of EU SFTR reporting this corresponds to \"action type\" \"COLU\" if CollStatus(910)=3 (Assigned (Accepted)), or \"REUU\" if CollStatus(910)=5 (Reused). */\n    CollateralUpdate: 31,\n    /** Margin update\n        In the context of EU SFTR reporting this corresponds to \"action type\" \"MARU\". */\n    MarginUpdate: 32,\n    /** Transaction reported in error\n        In the context of EU SFTR reporting this corresponds to \"action type\" \"EROR\". */\n    TransactionReportedInError: 33,\n    /** Termination / Early termination\n        In the context of EU SFTR reporting this corresponds to \"action type\" \"ETRM\". */\n    TerminationEarlyTermination: 34,\n} as const);\n\nexport type RegulatoryReportType = (typeof RegulatoryReportType)[keyof typeof RegulatoryReportType];\n", "/**\n * Identifies the event which caused origination of the identifier in RegulatoryTradeID(1903). When more than one event is the cause, use the higher enumeration value. For example, if the identifier is originated due to an allocated trade which was cleared and reported, use the enumeration value 2 (Clearing).\n * - Tag: 1904\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RegulatoryTradeIDEvent = Object.freeze({\n    /** Initial block trade */\n    InitialBlockTrade: 0,\n    /** Allocation\n        Determination that the block trade will not be further allocated. */\n    Allocation: 1,\n    /** Clearing */\n    Clearing: 2,\n    /** Compression */\n    Compression: 3,\n    /** Novation */\n    Novation: 4,\n    /** Termination */\n    Termination: 5,\n    /** Post-trade valuation */\n    PostTrdVal: 6,\n} as const);\n\nexport type RegulatoryTradeIDEvent = (typeof RegulatoryTradeIDEvent)[keyof typeof RegulatoryTradeIDEvent];\n", "/**\n * Specifies the scope to which the RegulatoryTradeID(1903) applies. Used when a trade must be assigned more than one identifier, e.g. one for the clearing member and another for the client on a cleared trade as with the principal model in Europe.\n * - Tag: 2397\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RegulatoryTradeIDScope = Object.freeze({\n    /** Clearing member */\n    ClearingMember: 1,\n    /** Client */\n    Client: 2,\n} as const);\n\nexport type RegulatoryTradeIDScope = (typeof RegulatoryTradeIDScope)[keyof typeof RegulatoryTradeIDScope];\n", "/**\n * Identifies the reporting entity that originated the value in RegulatoryTradeID(1903). The reporting entity identifier may be assigned by a regulator or from a supported standard identifier source scheme.\n    In the context of CFTC usage for Unique Swap Identifier (USI), this field is required to convey the namespace of the entity creating the USI, in accordance to the USI Data Standard (https://www.cftc.gov/sites/default/files/idc/groups/public/@swaps/documents/dfsubmission/usidatastandards100112.pdf). For standardized identifier source schemes, such as the Unique Transaction Identifier (UTI), the source scheme is identified using supported code values.\n * - Tag: 1905\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const RegulatoryTradeIDSource = Object.freeze({\n    /** Unique Transaction Identifier (ISO 23897) */\n    UniqueTransactionIdentifier: '1',\n} as const);\n\nexport type RegulatoryTradeIDSource = (typeof RegulatoryTradeIDSource)[keyof typeof RegulatoryTradeIDSource];\n", "/**\n * Specifies the type of trade identifier provided in RegulatoryTradeID(1903).\n    Contextual hierarchy of events for the same trade or transaction maybe captured through use of the different RegulatoryTradeIDType(1906) values using multiple instances of the repeating group as needed for regulatory reporting.\n * - Tag: 1906\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RegulatoryTradeIDType = Object.freeze({\n    /** Current\n        The default if not specified. */\n    Current: 0,\n    /** Previous\n        The previous trade's identifier when reporting a cleared trade or novation of a previous trade. */\n    Previous: 1,\n    /** Block\n        The block trade's identifier when reporting an allocated subtrade. */\n    Block: 2,\n    /** Related\n        The related trade identifier when reporting a mixed swap. */\n    Related: 3,\n    /** Cleared block trade\n        Assigned by the CCP to a bunched order/trade when it needs to be cleared with the standby clearing firm prior to post-trade allocation. */\n    ClearedBlockTrade: 4,\n    /** Trading venue transaction identifier\n        Assigned by the trading venue to a transaction. In the context of ESMA RTS 22 and RTS 24, this is an unique transaction identification \"number generated by trading venues and disseminated to both the buying and selling parties in accordance with Article 12 of [RTS 24 on the maintenance of relevant data relating to orders in financial instruments under Article 25 of Regulation 600/2014 EU].\" (quoted text from RTS 22). \"Uniqueness\" may be defined per relevant regulations. */\n    TradingVenueTransactionIdentifier: 5,\n    /** Report tracking number\n        In the context of EMIR Refit this is a \"unique code assigned to the execution of an order and common for a group of reports related to the same execution\" (see Q28 in https://www.esma.europa.eu/sites/default/files/library/esma74-362-2281_final_report_guidelines_emir_refit.pdf). Also referred to as the RTN. */\n    ReportTrackingNumber: 6,\n} as const);\n\nexport type RegulatoryTradeIDType = (typeof RegulatoryTradeIDType)[keyof typeof RegulatoryTradeIDType];\n", "/**\n * Specifies the regulatory mandate or rule that the transaction complies with.\n * - Tag: 2347\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RegulatoryTransactionType = Object.freeze({\n    /** None (default if not specified)\n        The transaction does not fall under any special regulatory rule or mandate. */\n    None: 0,\n    /** Swap Execution Facility (SEF) required transaction\n        The transaction is a \"Required\" transaction under Dodd-Frank Act SEF Rules. \"Required\" transactions are subject to the trade execution mandate under section 2(h)(8) of the CEA and are not block trades. */\n    SEFRequiredTransaction: 1,\n    /** Swap Execution Facility (SEF) permitted transaction\n        The transaction is a \"Permitted\" transaction under Dodd-Frank Act SEF Rules. \"Permitted\" transactions are not subject to the clearing and trade execution mandates, illiquid or bespoke swaps, or block trades. */\n    SEFPermittedTransaction: 2,\n} as const);\n\nexport type RegulatoryTransactionType = (typeof RegulatoryTransactionType)[keyof typeof RegulatoryTransactionType];\n", "/**\n * The type of instrument relationship\n * - Tag: 1648\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RelatedInstrumentType = Object.freeze({\n    /** \"hedges for\" instrument */\n    HedgesForInstrument: 1,\n    /** Underlier */\n    Underlier: 2,\n    /** Equity equivalent */\n    EquityEquivalent: 3,\n    /** Nearest exchange traded contract */\n    NearestExchangeTradedContract: 4,\n    /** Retail equivalent of wholesale instrument */\n    RetailEquivalent: 5,\n    /** Leg\n        Used to associate or link InstrumentLeg to Instrument in messages where there can be multiple instruments, such as in Email(35=C) and News(35=B) messages. */\n    Leg: 6,\n} as const);\n\nexport type RelatedInstrumentType = (typeof RelatedInstrumentType)[keyof typeof RelatedInstrumentType];\n", "/**\n * Describes the source of the identifier that RelatedOrderID(2887) represents.\n * - Tag: 2888\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RelatedOrderIDSource = Object.freeze({\n    /** Non-FIX Source */\n    NonFIXSource: 0,\n    /** Order identifier\n        Can be used to refer to an order identifier assigned by the party accepting the order, e.g. OrderID(37). */\n    SystemOrderIdentifier: 1,\n    /** Client order identifier\n        Can be used to refer to an order identifier assigned by the party initiating the order, e.g. ClOrdID(11). */\n    ClientOrderIdentifier: 2,\n    /** Secondary order identifier\n        Can be used to refer to an additional order identifier assigned by the party accepting the order, e.g. SecondaryOrderID(198). */\n    SecondaryOrderIdentifier: 3,\n    /** Secondary client order identifier\n        Can be used to refer to an additional order identifier assigned by the party initiating the order, e.g. SecondaryClOrdID(526). */\n    SecondaryClientOrderIdentifier: 4,\n} as const);\n\nexport type RelatedOrderIDSource = (typeof RelatedOrderIDSource)[keyof typeof RelatedOrderIDSource];\n", "/**\n * Describes the source of the identifier that RelatedPositionID(1862) represents.\n * - Tag: 1863\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RelatedPositionIDSource = Object.freeze({\n    /** Position maintenance report ID - PosMaintRptID(721) */\n    PosMaintRptID: 1,\n    /** Position transfer ID - TransferID(2437) */\n    TransferID: 2,\n    /** Position entity ID - PositionID(2618) */\n    PositionEntityID: 3,\n} as const);\n\nexport type RelatedPositionIDSource = (typeof RelatedPositionIDSource)[keyof typeof RelatedPositionIDSource];\n", "/**\n * Source for the price of a related entity, e.g. price of the underlying instrument in an Underlying Price Contingency (UPC) order. Can be used together with RelatedHighPrice (1819) and/or RelatedLowPrice (1820).\n * - Tag: 1821\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RelatedPriceSource = Object.freeze({\n    /** NBB (National Best Bid) */\n    NBBid: 1,\n    /** NBO (National Best Offer) */\n    NBOffer: 2,\n} as const);\n\nexport type RelatedPriceSource = (typeof RelatedPriceSource)[keyof typeof RelatedPriceSource];\n", "/**\n * Describes the source of the identifier that RelatedTradeID(1856) represents.\n * - Tag: 1857\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RelatedTradeIDSource = Object.freeze({\n    /** Non-FIX source */\n    NonFIXSource: 0,\n    /** Trade ID */\n    TradeID: 1,\n    /** Secondary trade ID */\n    SecondaryTradeID: 2,\n    /** Trade report ID */\n    TradeReportID: 3,\n    /** Firm trade ID */\n    FirmTradeID: 4,\n    /** Secondary firm Trade ID */\n    SecondaryFirmTradeID: 5,\n    /** Regulatory trade ID */\n    RegulatoryTradeID: 6,\n} as const);\n\nexport type RelatedTradeIDSource = (typeof RelatedTradeIDSource)[keyof typeof RelatedTradeIDSource];\n", "/**\n * Specifies the side of the relative value.\n * - Tag: 2532\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RelativeValueSide = Object.freeze({\n    /** Bid */\n    Bid: 1,\n    /** Mid */\n    Mid: 2,\n    /** Offer */\n    Offer: 3,\n} as const);\n\nexport type RelativeValueSide = (typeof RelativeValueSide)[keyof typeof RelativeValueSide];\n", "/**\n * Indicates the type of relative value measurement being specified.\n * - Tag: 2530\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RelativeValueType = Object.freeze({\n    /** Asset Swap Spread\n        ASW Spread. The asset swap spread is the difference in the bond's yield (yield to maturity) and a floating interest rate (usually LIBOR), expressed in basis points. */\n    ASWSpread: 1,\n    /** Overnight Indexed Swap Spread\n        OIS Spread. The overnight indexed swap spread is the spread, expressed in basis points, between the bond yield (the fixed rate) and an overnight indexed rate (e.g. Fed Funds rate, EONIA, SONIA, etc.) (the floating rate). */\n    OIS: 2,\n    /** Zero Volatility Spread\n        Z-Spread. The zero coupon spread is the constant spread added to the reference zero coupon yield curve (usually Treasury spot rate curve), expressed in basis points, to derive the adjusted yield curve used to determine the present value of the cash flows so that it equals the dirty price of the bond (i.e. accrued interested factored in). */\n    ZSpread: 3,\n    /** Discount Margin\n        The DM is the spread, expressed in basis points, added to the bond's reference rate that will equate the bond's cash flows to its current price. */\n    DiscountMargin: 4,\n    /** Interpolated Spread\n        I-Spread or I-Curve spread. The spread, expressed in basis points, added to an interpolated point on the reference yield curve. */\n    ISpread: 5,\n    /** Option Adjusted Spread\n        OAS or OA-spread. Used to evaluate bonds with embedded (callable or put-able) options. The option adjusted spread is a constant spread, expressed in basis points, applied to each point on the spot rate curve (usually Treasury spot rate curve) where the bond's cash flow is received, such that the price of the bond is the same as the present value of its cash flows. */\n    OAS: 6,\n    /** G-Spread\n        The spread difference between the bond's yield and the interpolated yield from the government reference yield curve, expressed in basis points. It represents the curve adjusted value of the bond by accounting for the difference between the bond's benchmark yield and the interpolated government reference yield at the same point on the curve that matches the bond's remaining life. */\n    GSpread: 7,\n    /** CDS Basis\n        Also referred to as CDS Bond Basis. The CDS basis is the spread difference between the CDS spread or premium for the obligor and the Z-Spread or the ASW spread of the same reference or obligor bond, expressed in basis points. */\n    CDSBasis: 8,\n    /** CDS Interpolated Basis\n        Also referred to as CDS Bond Interpolated Basis. The CDS interpolated basis is the difference between the reference or obligor bond's Z Spread or ASW spread and an interpolated point on CDS curve that matches the maturity of the reference bond, expressed in basis points. */\n    CDSInterpolatedBasis: 9,\n    /** DV01\n        The currency value change in response to a move of one basis point in the yield of the instrument. Typically used as a measure of interest rate risk of a single bond. Also known as \"basis point value\" or BPV. */\n    DV01: 10,\n    /** PV01\n        The present value change in response to a move of one basis point all along the yield curve used for the instrument. In certain cases the DV01 and PV01 values may be the same. */\n    PV01: 11,\n    /** CS01\n        Credit spread sensitivity. Represents the change in value of a (CDS) transaction for a one basis point change in the credit spread. */\n    CS01: 12,\n} as const);\n\nexport type RelativeValueType = (typeof RelativeValueType)[keyof typeof RelativeValueType];\n", "/**\n * Instruction to define conditions under which to release a locked order or parts of it.\n * - Tag: 1810\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ReleaseInstruction = Object.freeze({\n    /** Intermarket Sweep Order (ISO) */\n    ISO: 1,\n    /** No Away Market Better check */\n    NoAwayMarketBetterCheck: 2,\n} as const);\n\nexport type ReleaseInstruction = (typeof ReleaseInstruction)[keyof typeof ReleaseInstruction];\n", "/**\n * Indicates whether the trade price was adjusted for compensation (i.e. includes a mark-up, mark-down or commission) in the price paid.\n    In the context of MSRB and FINRA TRACE reporting requirements, this is used among firms to indicate trade remuneration.\n * - Tag: 2356\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RemunerationIndicator = Object.freeze({\n    /** No remuneration paid */\n    NoRemunerationPaid: 0,\n    /** Remuneration paid */\n    RemunerationPaid: 1,\n} as const);\n\nexport type RemunerationIndicator = (typeof RemunerationIndicator)[keyof typeof RemunerationIndicator];\n", "/**\n * Indicates the status of a report.\n * - Tag: 3113\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ReportStatus = Object.freeze({\n    /** Received, not yet processed */\n    ReceivedNotYetProcessed: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Rejected */\n    Rejected: 2,\n    /** Accepted with errors\n        This value applies to report responses containing a list of entries having an individual status that may or may not lead to a rejection of the entire report, e.g. MarketDataAck(35=EQ). */\n    AcceptedWithErrors: 3,\n} as const);\n\nexport type ReportStatus = (typeof ReportStatus)[keyof typeof ReportStatus];\n", "/**\n * Identifies party of trade responsible for exchange reporting.\n * - Tag: 113\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ReportToExch = Object.freeze({\n    /** Indicates the party sending message will report trade */\n    SenderReports: 'N',\n    /** Indicates the party receiving message must report trade */\n    ReceiverReports: 'Y',\n} as const);\n\nexport type ReportToExch = (typeof ReportToExch)[keyof typeof ReportToExch];\n", "/**\n * Result of a request as identified by the appropriate request ID field\n * - Tag: 1511\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RequestResult = Object.freeze({\n    /** Valid request */\n    ValidRequest: 0,\n    /** Invalid or unsupported request */\n    InvalidOrUnsupportedRequest: 1,\n    /** No data found that match selection criteria */\n    NoDataFound: 2,\n    /** Not authorized to retrieve data */\n    NotAuthorized: 3,\n    /** Data temporarily unavailable */\n    DataTemporarilyUnavailable: 4,\n    /** Request for data not supported */\n    RequestForDataNotSupported: 5,\n    /** Other (further information in RejectText (1328) field) */\n    Other: 99,\n} as const);\n\nexport type RequestResult = (typeof RequestResult)[keyof typeof RequestResult];\n", "/**\n * Indicates that both sides of the FIX session should reset sequence numbers.\n * - Tag: 141\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ResetSeqNumFlag = Object.freeze({\n    /** No */\n    No: 'N',\n    /** Yes, reset sequence numbers */\n    Yes: 'Y',\n} as const);\n\nexport type ResetSeqNumFlag = (typeof ResetSeqNumFlag)[keyof typeof ResetSeqNumFlag];\n", "/**\n * Specifies the type of respondents requested.\n * - Tag: 1172\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RespondentType = Object.freeze({\n    /** All market participants */\n    AllMarketParticipants: 1,\n    /** Specified market participants */\n    SpecifiedMarketParticipants: 2,\n    /** All Market Makers */\n    AllMarketMakers: 3,\n    /** Primary Market Maker(s) */\n    PrimaryMarketMaker: 4,\n} as const);\n\nexport type RespondentType = (typeof RespondentType)[keyof typeof RespondentType];\n", "/**\n * Identifies how the response to the request should be transmitted.\n * - Tag: 725\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ResponseTransportType = Object.freeze({\n    /** In-band (default)\n        Transport of the request was sent over in-band. */\n    Inband: 0,\n    /** Out of band\n        Pre-arranged out-of-band delivery mechanism (e.g. FTP, HTTP, NDM, etc.) between counterparties. Details specified via ResponseDestination(726). */\n    OutOfBand: 1,\n} as const);\n\nexport type ResponseTransportType = (typeof ResponseTransportType)[keyof typeof ResponseTransportType];\n", "/**\n * A category of CDS credit event in which the underlying bond experiences a restructuring.\n    Used to define a CDS instrument.\n * - Tag: 1449\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const RestructuringType = Object.freeze({\n    /** Full Restructuring */\n    FullRestructuring: 'FR',\n    /** Modified Restructuring */\n    ModifiedRestructuring: 'MR',\n    /** Modified Mod Restructuring */\n    ModifiedModRestructuring: 'MM',\n    /** No Restructuring specified */\n    NoRestructuringSpecified: 'XR',\n} as const);\n\nexport type RestructuringType = (typeof RestructuringType)[keyof typeof RestructuringType];\n", "/**\n * Specifies the valuation type applicable to the return rate date.\n * - Tag: 42710\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ReturnRateDateMode = Object.freeze({\n    /** Price valuation */\n    PriceValuation: 0,\n    /** Dividend valuation */\n    DividendValuation: 1,\n} as const);\n\nexport type ReturnRateDateMode = (typeof ReturnRateDateMode)[keyof typeof ReturnRateDateMode];\n", "/**\n * The basis of the return price.\n * - Tag: 42766\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ReturnRatePriceBasis = Object.freeze({\n    /** Gross */\n    Gross: 0,\n    /** Net */\n    Net: 1,\n    /** Accrued */\n    Accrued: 2,\n    /** Clean net */\n    CleanNet: 3,\n} as const);\n\nexport type ReturnRatePriceBasis = (typeof ReturnRatePriceBasis)[keyof typeof ReturnRatePriceBasis];\n", "/**\n * Specifies the type of price sequence of the return rate.\n * - Tag: 42736\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ReturnRatePriceSequence = Object.freeze({\n    /** Initial */\n    Initial: 0,\n    /** Interim */\n    Interim: 1,\n    /** Final */\n    Final: 2,\n} as const);\n\nexport type ReturnRatePriceSequence = (typeof ReturnRatePriceSequence)[keyof typeof ReturnRatePriceSequence];\n", "/**\n * Specifies whether the ReturnRatePrice(42767) is expressed in absolute or relative terms.\n * - Tag: 42769\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ReturnRatePriceType = Object.freeze({\n    /** Absolute terms */\n    AbsoluteTerms: 0,\n    /** Percentage of notional */\n    PercentageOfNotional: 1,\n} as const);\n\nexport type ReturnRatePriceType = (typeof ReturnRatePriceType)[keyof typeof ReturnRatePriceType];\n", "/**\n * Specifies how or the timing when the quote is to be obtained.\n * - Tag: 42748\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ReturnRateQuoteTimeType = Object.freeze({\n    /** Open\n        The official opening time of the exchange on valuation date. */\n    Open: 0,\n    /** Official settlement price time\n        The time at which the official settlement price is determined. */\n    OfficialSettlPx: 1,\n    /** XETRA\n        The time at which the official settlement price (following the auction by the exchange) is determined by the exchange. */\n    Xetra: 2,\n    /** Close\n        The official closing time of the exchange on valuation date. */\n    Close: 3,\n    /** Derivatives close\n        The official closing time for derivative trading of the exchange on valuation date. */\n    DerivativesClose: 4,\n    /** High\n        The high price for the day. */\n    High: 5,\n    /** Low\n        The low price for the day. */\n    Low: 6,\n    /** As specified in the master confirmation */\n    AsSpecifiedInMasterConfirmation: 7,\n} as const);\n\nexport type ReturnRateQuoteTimeType = (typeof ReturnRateQuoteTimeType)[keyof typeof ReturnRateQuoteTimeType];\n", "/**\n * Indicates whether an ISDA price option applies, and if applicable which type of price.\n * - Tag: 42759\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ReturnRateValuationPriceOption = Object.freeze({\n    /** None (the default) */\n    None: 0,\n    /** Futures price\n        The official settlement price as announced by the related futures exchange is applicable. */\n    FuturesPrice: 1,\n    /** Options price\n        The official settlement price as announced by the related options exchange is applicable. */\n    OptionsPrice: 2,\n} as const);\n\nexport type ReturnRateValuationPriceOption =\n    (typeof ReturnRateValuationPriceOption)[keyof typeof ReturnRateValuationPriceOption];\n", "/**\n * Indicates the type of return or payout trigger for the swap or forward.\n * - Tag: 2753\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ReturnTrigger = Object.freeze({\n    /** Dividend */\n    Dividend: 1,\n    /** Variance */\n    Variance: 2,\n    /** Volatility */\n    Volatility: 3,\n    /** Total return */\n    TotalReturn: 4,\n    /** Contract for difference */\n    ContractForDifference: 5,\n    /** Credit default */\n    CreditDefault: 6,\n    /** Spread bet */\n    SpreadBet: 7,\n    /** Price */\n    Price: 8,\n    /** Forward price of underlying instrument */\n    ForwardPriceUnderlyingInstrument: 9,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type ReturnTrigger = (typeof ReturnTrigger)[keyof typeof ReturnTrigger];\n", "/**\n * Identifies the action to take or risk model to assume should risk limit be exceeded or breached for the specified party.\n * - Tag: 1767\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RiskLimitAction = Object.freeze({\n    /** Queue inbound */\n    QueueInbound: 0,\n    /** Queue outbound */\n    QueueOutbound: 1,\n    /** Reject */\n    Reject: 2,\n    /** Disconnect */\n    Disconnect: 3,\n    /** Warning */\n    Warning: 4,\n    /** Ping credit check model with revalidation\n        Each subsequent order, quote request or quote submission by the Credit\n        User must obtain pre-approval. Any open orders, quote requests or quotes are to be cancelled. */\n    PingCreditCheckWithRevalidation: 5,\n    /** Ping credit check model without revalidation\n        Each subsequent order, quote request or quote submission by the Credit\n        User must obtain pre-approval. Any open orders, quote requests or quotes will remain active. */\n    PingCreditCheckNoRevalidation: 6,\n    /** Push credit check model with revalidation\n        Each subsequent order, quote request or quote subnmission by the Credit\n        User must be checked against the limit amounts pushed to the trading platform. Any open orders, quote requests or quotes are\n        to be cancelled. */\n    PushCreditCheckWithRevalidation: 7,\n    /** Push credit check model without revalidation\n        Each subsequent order, quote request or quote subnmission by the Credit\n        User must be checked against the limit amounts pushed to the trading platform. Any open orders, quote requests or quotes will\n        remain active. */\n    PushCreditCheckNoRevalidation: 8,\n    /** Suspend\n        Suspend the Credit User from trading once limit(s) is breached. This is\n        considered a \"soft\" stop. */\n    Suspend: 9,\n    /** Halt trading\n        Halt or stop the Credit User from trading once limit(s) is breached.\n        This is considered a \"hard\" stop and may require more involved actions to reinstate the Credit User's ability\n        to trade. */\n    HaltTrading: 10,\n} as const);\n\nexport type RiskLimitAction = (typeof RiskLimitAction)[keyof typeof RiskLimitAction];\n", "/**\n * Specifies the type of credit limit check model workflow to apply for the specified party\n * - Tag: 2339\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RiskLimitCheckModelType = Object.freeze({\n    /** None (default if not specified)\n        No specified limit check model is defined. Limit checks for the party will be based on parameters defined. */\n    None: 0,\n    /** PlusOne model\n        A pre-trade credit limit check model which allows trades to occur until it is determined by the clearinghouse or other designated limit checker that the party's limit(s) was breached by the most recent trade executed. */\n    PlusOneModel: 1,\n    /** Ping model\n        A pre-trade credit limit check model which requires the execution venue to obtain limit approval from the Credit Provider for every transaction about to be conducted by the Credit User. */\n    PingModel: 2,\n    /** Push model\n        A pre-trade credit limit check model in which the Credit Provider \"pushes\" to the execution venue the credit limit information allocated to each of the Credit Provider's counterparty or customer. */\n    PushModel: 3,\n} as const);\n\nexport type RiskLimitCheckModelType = (typeof RiskLimitCheckModelType)[keyof typeof RiskLimitCheckModelType];\n", "/**\n * Result of the credit limit check request.\n * - Tag: 2326\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RiskLimitCheckRequestResult = Object.freeze({\n    /** Successful (default) */\n    Successful: 0,\n    /** Invalid party */\n    InvalidParty: 1,\n    /** Requested amount exceeds credit limit */\n    ReqExceedsCreditLimit: 2,\n    /** Requested amount exceeds clip size limit */\n    ReqExceedsClipSizeLimit: 3,\n    /** Request exceeds maximum notional order amount */\n    ReqExceedsMaxNotional: 4,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type RiskLimitCheckRequestResult =\n    (typeof RiskLimitCheckRequestResult)[keyof typeof RiskLimitCheckRequestResult];\n", "/**\n * Indicates the status of the risk limit check request.\n * - Tag: 2325\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RiskLimitCheckRequestStatus = Object.freeze({\n    /** Approved\n        Request has been accepted and processed. The credit amount requested has been reserved for the transaction. */\n    Approved: 0,\n    /** Partially approved\n        Only a partial amount of the credit amount requested has been approved and has been reserved for the transaction. */\n    PartiallyApproved: 1,\n    /** Rejected */\n    Rejected: 2,\n    /** Approval pending */\n    ApprovalPending: 3,\n    /** Cancelled */\n    Cancelled: 4,\n} as const);\n\nexport type RiskLimitCheckRequestStatus =\n    (typeof RiskLimitCheckRequestStatus)[keyof typeof RiskLimitCheckRequestStatus];\n", "/**\n * Specifies the type of limit amount check being requested.\n * - Tag: 2323\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RiskLimitCheckRequestType = Object.freeze({\n    /** All or none (default if not specified).\n        The limit check request is for the full amount requested or none at all. Request can only be responded to with a full approval of the amount requested or a rejection of the request. */\n    AllOrNone: 0,\n    /** Partial\n        The requester will accept a partial approval of the requested credit limit amount. */\n    Partial: 1,\n} as const);\n\nexport type RiskLimitCheckRequestType = (typeof RiskLimitCheckRequestType)[keyof typeof RiskLimitCheckRequestType];\n", "/**\n * Indicates the status of the risk limit check performed on a trade.\n * - Tag: 2343\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RiskLimitCheckStatus = Object.freeze({\n    /** Accepted\n        For use when none of the more specific status enumerations apply. */\n    Accepted: 0,\n    /** Rejected\n        For use when none of the more specific status enumerations apply. */\n    Rejected: 1,\n    /** Claim required\n        Indicates that the clearing firm is required to accept or decline the trade. */\n    ClaimRequired: 2,\n    /** Pre-defined limit check succeeded\n        Indicates a check enforced automatically by the clearing house. */\n    PreDefinedLimitCheckSucceeded: 3,\n    /** Pre-defined limit check failed\n        Indicates a check enforced automatically by the clearing house. */\n    PreDefinedLimitCheckFailed: 4,\n    /** Pre-defined auto-accept rule invoked\n        Indicates that the clearing firm is required to accept or decline the trade because no limit or rule applies. */\n    PreDefinedAutoAcceptRuleInvoked: 5,\n    /** Pre-defined auto-reject rule invoked\n        Indicates a check enforced automatically by the clearing house. Note that clearing house rules of engagement may still require a clearing firm accept or reject the trade. */\n    PreDefinedAutoRejectRuleInvoked: 6,\n    /** Accepted by clearing firm\n        Indicates that explicit action by the clearing firm, and not an automatic check by the clearing house, was the basis for accepting the trade. */\n    AcceptedByClearingFirm: 7,\n    /** Rejected by clearing firm\n        Indicates that explicit action by the clearing firm, and not an automatic check by the clearing house, was the basis for rejecting the trade. */\n    RejectedByClearingFirm: 8,\n    /** Pending\n        Indicates that one or more side level risk checks are in progress. */\n    Pending: 9,\n    /** Accepted by credit hub\n        Indicates that a credit hub accepted the trade. An identifier assigned by the credit hub may appear in the appropriate RefRiskLimitCheckID(2334) field. */\n    AcceptedByCreditHub: 10,\n    /** Rejected by credit hub\n        Indicates that a credit hub rejected the trade. */\n    RejectedByCreditHub: 11,\n    /** Pending credit hub check\n        Indicates that a check is pending at a credit hub. */\n    PendingCreditHubCheck: 12,\n    /** Accepted by execution venue\n        Indicates acceptance by an execution venue, such as a SEF. */\n    AcceptedByExecVenue: 13,\n    /** Rejected by execution venue\n        Indicates that the trade was rejected by an execution venue, such as a SEF. */\n    RejectedByExecVenue: 14,\n} as const);\n\nexport type RiskLimitCheckStatus = (typeof RiskLimitCheckStatus)[keyof typeof RiskLimitCheckStatus];\n", "/**\n * Specifies the transaction type of the risk limit check request.\n * - Tag: 2320\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RiskLimitCheckTransType = Object.freeze({\n    /** New */\n    New: 0,\n    /** Cancel */\n    Cancel: 1,\n    /** Replace */\n    Replace: 2,\n} as const);\n\nexport type RiskLimitCheckTransType = (typeof RiskLimitCheckTransType)[keyof typeof RiskLimitCheckTransType];\n", "/**\n * Specifies the type of limit check message.\n * - Tag: 2321\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RiskLimitCheckType = Object.freeze({\n    /** Submit\n        Indicates a submission for a limit check. The RiskLimitCheckTransType(2320) indicates whether the submission is a new request, a cancel or replace/amend of a prior submission. */\n    Submit: 0,\n    /** Limit consumed\n        Indicates that the limit reserved by a prior request has been used or consumed by a transaction that occurred. */\n    LimitConsumed: 1,\n} as const);\n\nexport type RiskLimitCheckType = (typeof RiskLimitCheckType)[keyof typeof RiskLimitCheckType];\n", "/**\n * The reason for rejecting the PartyRiskLimitsReport(35=CM) or PartyRiskLimitsUpdateReport(35=CR).\n * - Tag: 2317\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RiskLimitReportRejectReason = Object.freeze({\n    /** Unknown RiskLimitReportID(1667) */\n    UnkRiskLmtRprtID: 0,\n    /** Unknown party */\n    UnkPty: 1,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type RiskLimitReportRejectReason =\n    (typeof RiskLimitReportRejectReason)[keyof typeof RiskLimitReportRejectReason];\n", "/**\n * Status of risk limit report.\n * - Tag: 2316\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RiskLimitReportStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Rejected */\n    Rejected: 1,\n} as const);\n\nexport type RiskLimitReportStatus = (typeof RiskLimitReportStatus)[keyof typeof RiskLimitReportStatus];\n", "/**\n * Result of risk limit definition request.\n * - Tag: 1761\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RiskLimitRequestResult = Object.freeze({\n    /** Successful (default) */\n    Successful: 0,\n    /** Invalid party(-ies) */\n    InvalidParty: 1,\n    /** Invalid related party(-ies) */\n    InvalidRelatedParty: 2,\n    /** Invalid risk limit type(s) */\n    InvalidRiskLimitType: 3,\n    /** Invalid risk limit ID(s) */\n    InvalidRiskLimitID: 4,\n    /** Invalid risk limit amount(s) */\n    InvalidRiskLimitAmount: 5,\n    /** Invalid risk/warning level action(s) */\n    InvalidRiskWarningLevelAction: 6,\n    /** Invalid risk instrument scope(s) */\n    InvalidRiskInstrumentScope: 7,\n    /** Risk limit actions not supported */\n    RiskLimitActionsNotSupported: 8,\n    /** Warning levels not supported */\n    WarningLevelsNotSupported: 9,\n    /** Warning level actions not supported */\n    WarningLevelActionsNotSupported: 10,\n    /** Risk instrument scope not supported */\n    RiskInstrumentScopeNotSupported: 11,\n    /** Risk limit not approved for party(-ies) */\n    RiskLimitNotApprovedForParty: 12,\n    /** Risk limit already defined for party(-ies) */\n    RiskLimitAlreadyDefinedForParty: 13,\n    /** Instrument not approved for party(-ies) */\n    InstrumentNotApprovedForParty: 14,\n    /** Not authorized */\n    NotAuthorized: 98,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type RiskLimitRequestResult = (typeof RiskLimitRequestResult)[keyof typeof RiskLimitRequestResult];\n", "/**\n * Type of risk limit information.\n * - Tag: 1760\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RiskLimitRequestType = Object.freeze({\n    /** Definitions(Default) */\n    Definitions: 1,\n    /** Utilization */\n    Utilization: 2,\n    /** Definitions and utilization */\n    DefinitionsAndUtilizations: 3,\n} as const);\n\nexport type RiskLimitRequestType = (typeof RiskLimitRequestType)[keyof typeof RiskLimitRequestType];\n", "/**\n * Used to specify the type of risk limit amount or position limit quantity or margin requirement amounts.\n * - Tag: 1530\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RiskLimitType = Object.freeze({\n    /** Credit limit\n        The credit limit provided by one party to another for trading. */\n    CreditLimit: 0,\n    /** Gross limit */\n    GrossLimit: 1,\n    /** Net limit */\n    NetLimit: 2,\n    /** Exposure */\n    Exposure: 3,\n    /** Long limit */\n    LongLimit: 4,\n    /** Short limit */\n    ShortLimit: 5,\n    /** Cash margin */\n    CashMargin: 6,\n    /** Additional margin */\n    AdditionalMargin: 7,\n    /** Total margin */\n    TotalMargin: 8,\n    /** Limit consumed\n        The limit used in the recent transaction. */\n    LimitConsumed: 9,\n    /** Clip size/notional limit per time period\n        The total notional amount limit allowed to be executed within a defined period of time or velocity. The defined period of time may be specified by the RiskLimitVelocityPeriod(2336) and RiskLimitVelocityUnit(2337). */\n    ClipSize: 10,\n    /** Maximum notional order size */\n    MaxNotionalOrderSize: 11,\n    /** DV01/PV01 limit\n        The maximum dollar value change resulting from a move of 1 basis point in the yield curve. This limits the interest rate risk exposure. Also known as \"basis point value\" or BPV. */\n    DV01PV01Limit: 12,\n    /** CS01 limit\n        Credit spread sensitivity. Represents the change in market value of a CDS for a one basis point change in the credit spread. This limits the credit risk exposure of a CDS. Also known as \"risky-DV01\". */\n    CS01Limit: 13,\n    /** Volume limit per time period\n        The total number of shares, bonds or contracts allowed to be executed within a defined period of time or velocity. The defined period of time may be specified by the RiskLimitVelocityPeriod(2336) and RiskLimitVelocityUnit(2337). */\n    VolumeLimitPerTimePeriod: 14,\n    /** Volume filled as percent of ordered volume per time period\n        The total number of shares, bonds or contracts executed as a percentage of the total ordered shares, contracts or notional amount for a specified security, instrument, symbol, or underlying, over a defined period of time or velocity. The defined period of time may be specified by the RiskLimitVelocityPeriod(2336) and RiskLimitVelocityUnit(2337). */\n    VolFilledPctOrdVolTmPeriod: 15,\n    /** Notional filled as percent of notional per time period\n        The total notional amount executed as a percentage of the total ordered shares, contracts or notional amount for a specified security, instrument, symbol, or underlying, over a defined period of time or velocity. The defined period of time may be specified by the RiskLimitVelocityPeriod(2336) and RiskLimitVelocityUnit(2337). */\n    NotlFilledPctNotlTmPeriod: 16,\n    /** Transaction/execution limit per time period\n        The total number of transactions or execution fills allowed within a defined period of time or velocity. The defined period of time may be specified by the RiskLimitVelocityPeriod(2336) and RiskLimitVelocityUnit(2337). */\n    TransactionExecutionLimitPerTimePeriod: 17,\n} as const);\n\nexport type RiskLimitType = (typeof RiskLimitType)[keyof typeof RiskLimitType];\n", "/**\n * Specifies which direction to round For CIV - indicates whether or not the quantity of shares/units is to be rounded and in which direction where CashOrdQty (152) or (for CIV only) OrderPercent (516) are specified on an order.\n    The default is for rounding to be at the discretion of the executing broker or fund manager.\n    e.g. for an order specifying CashOrdQty or OrderPercent if the calculated number of shares/units was 325.76 and RoundingModulus (469) was 0 - \"round down\" would give 320 units, 1 - \"round up\" would give 330 units and \"round to nearest\" would give 320 units.\n * - Tag: 468\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const RoundingDirection = Object.freeze({\n    /** Round to nearest */\n    RoundToNearest: '0',\n    /** Round down */\n    RoundDown: '1',\n    /** Round up */\n    RoundUp: '2',\n} as const);\n\nexport type RoundingDirection = (typeof RoundingDirection)[keyof typeof RoundingDirection];\n", "/**\n * Indicates whether a routing arrangement is in place, e.g. between two brokers. May be used together with OrderOrigination(1724) to further describe the origin of an order.\n    An arrangement under which a participant of a marketplace permits a broker to electronically transmit orders containing the identifier of the participant. This can be either through the systems of the participant for automatic onward transmission to a marketplace or directly to a marketplace without being electronically transmitted through the systems of the participant.\n * - Tag: 2883\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RoutingArrangementIndicator = Object.freeze({\n    /** No routing arrangement in place */\n    NoRoutingArrangementInPlace: 0,\n    /** Routing arrangement in place */\n    RoutingArrangementInPlace: 1,\n} as const);\n\nexport type RoutingArrangementIndicator =\n    (typeof RoutingArrangementIndicator)[keyof typeof RoutingArrangementIndicator];\n", "/**\n * Indicates the type of RoutingID (217) specified.\n * - Tag: 216\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const RoutingType = Object.freeze({\n    /** Target Firm */\n    TargetFirm: 1,\n    /** Target List */\n    TargetList: 2,\n    /** Block Firm */\n    BlockFirm: 3,\n    /** Block List */\n    BlockList: 4,\n    /** Target Person */\n    TargetPerson: 5,\n    /** Block Person */\n    BlockPerson: 6,\n} as const);\n\nexport type RoutingType = (typeof RoutingType)[keyof typeof RoutingType];\n", "/**\n * Note that the name of this field is changing to \"OrderCapacity\" as Rule80A is a very US market-specific term. Other world markets need to convey similar information, however, often a subset of the US values. . See the \"Rule80A (aka OrderCapacity) Usage by Market\" appendix for market-specific usage of this field.\n * - Tag: 47\n * - FIX Specification type: char\n * - FIX Specification version: FIX42\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const Rule80A = Object.freeze({\n    /** Agency single order */\n    AgencySingleOrder: 'A',\n    /** Short exempt transaction (refer to A type) */\n    ShortExemptTransactionAType: 'B',\n    /** Program Order, non-index arb, for Member firm/org */\n    ProprietaryNonAlgo: 'C',\n    /** Program Order, index arb, for Member firm/org */\n    ProgramOrderMember: 'D',\n    /** Registered Equity Market Maker trades */\n    ShortExemptTransactionForPrincipal: 'E',\n    /** Short exempt transaction (refer to W type) */\n    ShortExemptTransactionWType: 'F',\n    /** Short exempt transaction (refer to I type) */\n    ShortExemptTransactionIType: 'H',\n    /** Individual Investor, single order */\n    IndividualInvestor: 'I',\n    /** Program Order, index arb, for individual customer */\n    ProprietaryAlgo: 'J',\n    /** Program Order, non-index arb, for individual customer */\n    AgencyAlgo: 'K',\n    /** Short exempt transaction for member competing market-maker affiliated with the firm clearing the trade (refer to P and O types) */\n    ShortExemptTransactionMemberAffliated: 'L',\n    /** Program Order, index arb, for other member */\n    ProgramOrderOtherMember: 'M',\n    /** Program Order, non-index arb, for other member */\n    AgentForOtherMember: 'N',\n    /** Competing dealer trades */\n    ProprietaryTransactionAffiliated: 'O',\n    /** Principal */\n    Principal: 'P',\n    /** Competing dealer trades */\n    TransactionNonMember: 'R',\n    /** Specialist trades */\n    SpecialistTrades: 'S',\n    /** Competing dealer trades */\n    TransactionUnaffiliatedMember: 'T',\n    /** Program Order, index arb, for other agency */\n    AgencyIndexArb: 'U',\n    /** All other orders as agent for other member */\n    AllOtherOrdersAsAgentForOtherMember: 'W',\n    /** Short exempt transaction for member competing market-maker not affiliated with the firm clearing the trade (refer to W and T types) */\n    ShortExemptTransactionMemberNotAffliated: 'X',\n    /** Program Order, non-index arb, for other agency */\n    AgencyNonAlgo: 'Y',\n    /** Short exempt transaction for non-member competing market-maker (refer to A and R types) */\n    ShortExemptTransactionNonMember: 'Z',\n} as const);\n\nexport type Rule80A = (typeof Rule80A)[keyof typeof Rule80A];\n", "/**\n * Specifies the market scope of the market data.\n * - Tag: 546\n * - FIX Specification type: MultipleCharValue\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const Scope = Object.freeze({\n    /** Local Market (Exchange, ECN, ATS) */\n    LocalMarket: '1',\n    /** National */\n    National: '2',\n    /** Global */\n    Global: '3',\n} as const);\n\nexport type Scope = (typeof Scope)[keyof typeof Scope];\n", "/**\n * Allows classification of instruments according to a set of high level reasons. Classification reasons describe the classes in which the instrument participates.\n * - Tag: 1583\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SecurityClassificationReason = Object.freeze({\n    /** Fee */\n    Fee: 0,\n    /** Credit Controls */\n    CreditControls: 1,\n    /** Margin */\n    Margin: 2,\n    /** Entitlement / Eligibility */\n    EntitlementOrEligibility: 3,\n    /** Market Data */\n    MarketData: 4,\n    /** Account Selection */\n    AccountSelection: 5,\n    /** Delivery Process */\n    DeliveryProcess: 6,\n    /** Sector */\n    Sector: 7,\n} as const);\n\nexport type SecurityClassificationReason =\n    (typeof SecurityClassificationReason)[keyof typeof SecurityClassificationReason];\n", "/**\n * Identifies class or source of the SecurityID(48) value.\n * - Tag: 22\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SecurityIDSource = Object.freeze({\n    /** CUSIP */\n    CUSIP: '1',\n    /** SEDOL */\n    SEDOL: '2',\n    /** QUIK */\n    QUIK: '3',\n    /** ISIN */\n    ISINNumber: '4',\n    /** RIC */\n    RICCode: '5',\n    /** ISO Currency Code (ISO 4217) */\n    ISOCurrencyCode: '6',\n    /** ISO Country Code */\n    ISOCountryCode: '7',\n    /** Exchange symbol */\n    ExchangeSymbol: '8',\n    /** Consolidated Tape Association (CTA) Symbol (SIAC CTS/CQS line format) */\n    ConsolidatedTapeAssociation: '9',\n    /** Bloomberg Symbol */\n    BloombergSymbol: 'A',\n    /** Wertpapier */\n    Wertpapier: 'B',\n    /** Dutch */\n    Dutch: 'C',\n    /** Valoren */\n    Valoren: 'D',\n    /** Sicovam */\n    Sicovam: 'E',\n    /** Belgian */\n    Belgian: 'F',\n    /** \"Common\" (Clearstream and Euroclear) */\n    Common: 'G',\n    /** Clearing house / Clearing organization */\n    ClearingHouse: 'H',\n    /** ISDA/FpML product specification (XML in SecurityXML(1185)) */\n    ISDAFpMLSpecification: 'I',\n    /** Option Price Reporting Authority */\n    OptionPriceReportingAuthority: 'J',\n    /** ISDA/FpML product URL (URL in SecurityID(48)) */\n    ISDAFpMLURL: 'K',\n    /** Letter of credit */\n    LetterOfCredit: 'L',\n    /** Marketplace-assigned Identifier */\n    MarketplaceAssignedIdentifier: 'M',\n    /** Markit RED entity CLIP */\n    MarkitREDEntityCLIP: 'N',\n    /** Markit RED pair CLIP */\n    MarkitREDPairCLIP: 'P',\n    /** CFTC commodity code */\n    CFTCCommodityCode: 'Q',\n    /** ISDA Commodity Reference Price */\n    ISDACommodityReferencePrice: 'R',\n    /** Financial Instrument Global Identifier\n        An Object Management Group (OMG) standard. Also referred to as FIGI. Formerly known as \"Bloomberg Open Symbology BBGID\". */\n    FinancialInstrumentGlobalIdentifier: 'S',\n    /** Legal entity identifier */\n    LegalEntityIdentifier: 'T',\n    /** Synthetic\n        Used to specify that the security identifier is synthetic for linking nested underliers when there is no market identifier for the collection. */\n    Synthetic: 'U',\n    /** Fidessa Instrument Mnemonic (FIM) */\n    FidessaInstrumentMnemonic: 'V',\n    /** Index name\n        Standard name of the index or rate index, e.g. \"LIBOR\" or \"iTraxx Australia\". */\n    IndexName: 'W',\n    /** Uniform Symbol (UMTF Symbol) */\n    UniformSymbol: 'X',\n    /** Digital Token Identifier (ISO 24165) */\n    DigitalTokenIdentifier: 'Y',\n} as const);\n\nexport type SecurityIDSource = (typeof SecurityIDSource)[keyof typeof SecurityIDSource];\n", "/**\n * Identifies the type/criteria of Security List Request\n * - Tag: 559\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SecurityListRequestType = Object.freeze({\n    /** Symbol */\n    Symbol: 0,\n    /** SecurityType and/or CFICode */\n    SecurityTypeAnd: 1,\n    /** Product */\n    Product: 2,\n    /** TradingSessionID */\n    TradingSessionID: 3,\n    /** All Securities */\n    AllSecurities: 4,\n    /** MarketID or MarketID + MarketSegmentID */\n    MarketIDOrMarketID: 5,\n} as const);\n\nexport type SecurityListRequestType = (typeof SecurityListRequestType)[keyof typeof SecurityListRequestType];\n", "/**\n * Specifies a type of Security List.\n * - Tag: 1470\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SecurityListType = Object.freeze({\n    /** Industry Classification */\n    IndustryClassification: 1,\n    /** Trading List */\n    TradingList: 2,\n    /** Market / Market Segment List */\n    Market: 3,\n    /** Newspaper List */\n    NewspaperList: 4,\n} as const);\n\nexport type SecurityListType = (typeof SecurityListType)[keyof typeof SecurityListType];\n", "/**\n * Specifies a specific source for a SecurityListType. Relevant when a certain type can be provided from various sources.\n * - Tag: 1471\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SecurityListTypeSource = Object.freeze({\n    /** ICB (Industry Classification Benchmark) published by Dow Jones and FTSE - www.icbenchmark.com */\n    ICB: 1,\n    /** NAICS (North American Industry Classification System). Replaced SIC (Standard Industry Classification) www.census.gov/naics or www.naics.com. */\n    NAICS: 2,\n    /** GICS (Global Industry Classification Standard) published by Standards & Poor */\n    GICS: 3,\n} as const);\n\nexport type SecurityListTypeSource = (typeof SecurityListTypeSource)[keyof typeof SecurityListTypeSource];\n", "/**\n * Identifies the reason a security definition request is being rejected.\n * - Tag: 1607\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SecurityRejectReason = Object.freeze({\n    /** Invalid instrument requested */\n    InvalidInstrumentRequested: 1,\n    /** Instrument already exists */\n    InstrumentAlreadyExists: 2,\n    /** Request type not supported */\n    RequestTypeNotSupported: 3,\n    /** System unavailable for instrument creation */\n    SystemUnavailableForInstrumentCreation: 4,\n    /** Ineligible instrument group */\n    IneligibleInstrumentGroup: 5,\n    /** Instrument ID unavailable */\n    InstrumentIDUnavailable: 6,\n    /** Invalid or missing data on option leg */\n    InvalidOrMissingDataOnOptionLeg: 7,\n    /** Invalid or missing data on future leg */\n    InvalidOrMissingDataOnFutureLeg: 8,\n    /** Invalid or missing data on FX leg */\n    InvalidOrMissingDataOnFXLeg: 10,\n    /** Invalid leg price specified */\n    InvalidLegPriceSpecified: 11,\n    /** Invalid instrument structure specified */\n    InvalidInstrumentStructureSpecified: 12,\n} as const);\n\nexport type SecurityRejectReason = (typeof SecurityRejectReason)[keyof typeof SecurityRejectReason];\n", "/**\n * The results returned to a Security Request message\n * - Tag: 560\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SecurityRequestResult = Object.freeze({\n    /** Valid request */\n    ValidRequest: 0,\n    /** Invalid or unsupported request */\n    InvalidOrUnsupportedRequest: 1,\n    /** No instruments found that match selection criteria */\n    NoInstrumentsFound: 2,\n    /** Not authorized to retrieve instrument data */\n    NotAuthorizedToRetrieveInstrumentData: 3,\n    /** Instrument data temporarily unavailable */\n    InstrumentDataTemporarilyUnavailable: 4,\n    /** Request for instrument data not supported */\n    RequestForInstrumentDataNotSupported: 5,\n} as const);\n\nexport type SecurityRequestResult = (typeof SecurityRequestResult)[keyof typeof SecurityRequestResult];\n", "/**\n * Type of Security Definition Request.\n * - Tag: 321\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SecurityRequestType = Object.freeze({\n    /** Request Security identity and specifications */\n    RequestSecurityIdentityAndSpecifications: 0,\n    /** Request Security identity for the specifications provided (name of the security is not supplied) */\n    RequestSecurityIdentityForSpecifications: 1,\n    /** Request List Security Types */\n    RequestListSecurityTypes: 2,\n    /** Request List Securities (can be qualified with Symbol, SecurityType, TradingSessionID, SecurityExchange. If provided then only list Securities for the specific type.) */\n    RequestListSecurities: 3,\n    /** Symbol */\n    Symbol: 4,\n    /** SecurityType and or CFICode */\n    SecurityTypeAndOrCFICode: 5,\n    /** Product */\n    Product: 6,\n    /** TradingSessionID */\n    TradingSessionID: 7,\n    /** All Securities */\n    AllSecurities: 8,\n    /** MarketID or MarketID + MarketSegmentID */\n    MarketIDOrMarketID: 9,\n} as const);\n\nexport type SecurityRequestType = (typeof SecurityRequestType)[keyof typeof SecurityRequestType];\n", "/**\n * Type of Security Definition message response.\n * - Tag: 323\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SecurityResponseType = Object.freeze({\n    /** Accept security proposal as-is */\n    AcceptAsIs: 1,\n    /** Accept security proposal with revisions as indicated in the message */\n    AcceptWithRevisions: 2,\n    /** Reject security proposal */\n    RejectSecurityProposal: 5,\n    /** Cannot match selection criteria */\n    CannotMatchSelectionCriteria: 6,\n} as const);\n\nexport type SecurityResponseType = (typeof SecurityResponseType)[keyof typeof SecurityResponseType];\n", "/**\n * Indicates the current state of the instrument.\n * - Tag: 965\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SecurityStatus = Object.freeze({\n    /** Active\n        Instrument is active, i.e. trading is possible. */\n    Active: '1',\n    /** Inactive\n        Instrument has previously been active and is now no longer traded but has not expired yet. The instrument may become active again. */\n    Inactive: '2',\n    /** Active, closing orders only\n        Instrument is active but only orders closing positions (reducing risk) are allowed. */\n    ActiveClosingOrdersOnly: '3',\n    /** Expired\n        Instrument has expired. E.g. An instrument may expire due to reaching maturity or expired based on contract definitions or exchange rules. */\n    Expired: '4',\n    /** Delisted\n        Instrument has been removed from securities reference data. Delisting rules varies from exchange to exchange, which may include non-compliance of capitalization, revenue, consecutive minimum closing price. The instrument may become listed again once the instrument is back in compliance. A delisted instrument would not trade on the exchange but it may still be traded over-the-counter (e.g. OTCBB) or on Pink Sheets, or other similar trading service. */\n    Delisted: '5',\n    /** Knocked-out\n        Instrument has breached a pre-defined price threshold. */\n    KnockedOut: '6',\n    /** Knock-out revoked\n        Instrument reinstated, i.e. threshold has not been breached. */\n    KnockOutRevoked: '7',\n    /** Pending Expiry\n        Instrument is currently still active but will expire after the current business day. For example, a contract that expires intra-day (e.g. at noon time) and is no longer tradeable but will still show up in the current day's order book with related statistics. */\n    PendingExpiry: '8',\n    /** Suspended\n        Instrument has been temporarily disabled for trading (i.e. halted). */\n    Suspended: '9',\n    /** Published\n        Instrument information is provided prior to its first activation. */\n    Published: '10',\n    /** Pending Deletion\n        Instrument is awaiting deletion from security reference data. */\n    PendingDeletion: '11',\n} as const);\n\nexport type SecurityStatus = (typeof SecurityStatus)[keyof typeof SecurityStatus];\n", "/**\n * Identifies an event related to a SecurityTradingStatus(326). An event occurs and is gone, it is not a state that applies for a period of time.\n * - Tag: 1174\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SecurityTradingEvent = Object.freeze({\n    /** Order imbalance, auction is extended */\n    OrderImbalance: 1,\n    /** Trading resumes (after Halt) */\n    TradingResumes: 2,\n    /** Price Volatility Interruption */\n    PriceVolatilityInterruption: 3,\n    /** Change of Trading Session */\n    ChangeOfTradingSession: 4,\n    /** Change of Trading Subsession */\n    ChangeOfTradingSubsession: 5,\n    /** Change of Security Trading Status */\n    ChangeOfSecurityTradingStatus: 6,\n    /** Change of Book Type */\n    ChangeOfBookType: 7,\n    /** Change of Market Depth */\n    ChangeOfMarketDepth: 8,\n    /** Corporate action */\n    CorporateAction: 9,\n} as const);\n\nexport type SecurityTradingEvent = (typeof SecurityTradingEvent)[keyof typeof SecurityTradingEvent];\n", "/**\n * Identifies the trading status applicable to the transaction.\n * - Tag: 326\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SecurityTradingStatus = Object.freeze({\n    /** Opening delay */\n    OpeningDelay: 1,\n    /** Trading halt */\n    TradingHalt: 2,\n    /** Resume */\n    Resume: 3,\n    /** No Open / No Resume */\n    NoOpen: 4,\n    /** Price indication */\n    PriceIndication: 5,\n    /** Trading Range Indication */\n    TradingRangeIndication: 6,\n    /** Market Imbalance Buy */\n    MarketImbalanceBuy: 7,\n    /** Market Imbalance Sell */\n    MarketImbalanceSell: 8,\n    /** Market on Close Imbalance Buy */\n    MarketOnCloseImbalanceBuy: 9,\n    /** Market on Close Imbalance Sell */\n    MarketOnCloseImbalanceSell: 10,\n    /** No Market Imbalance */\n    NoMarketImbalance: 12,\n    /** No Market on Close Imbalance */\n    NoMarketOnCloseImbalance: 13,\n    /** ITS Pre-opening */\n    ITSPreOpening: 14,\n    /** New Price Indication */\n    NewPriceIndication: 15,\n    /** Trade Dissemination Time */\n    TradeDisseminationTime: 16,\n    /** Ready to trade (start of session) */\n    ReadyToTrade: 17,\n    /** Not available for trading (end of session) */\n    NotAvailableForTrading: 18,\n    /** Not traded on this market */\n    NotTradedOnThisMarket: 19,\n    /** Unknown or Invalid */\n    UnknownOrInvalid: 20,\n    /** Pre-open */\n    PreOpen: 21,\n    /** Opening Rotation */\n    OpeningRotation: 22,\n    /** Fast Market */\n    FastMarket: 23,\n    /** Pre-Cross - system is in a pre-cross state allowing market to respond to either side of cross */\n    PreCross: 24,\n    /** Cross - system has crossed a percentage of the orders and allows market to respond prior to crossing remaining portion */\n    Cross: 25,\n    /** Post-close */\n    PostClose: 26,\n    /** No-cancel */\n    NoCancel: 27,\n} as const);\n\nexport type SecurityTradingStatus = (typeof SecurityTradingStatus)[keyof typeof SecurityTradingStatus];\n", "/**\n * Indicates type of security. Security type enumerations are grouped by Product(460) field value. NOTE: Additional values may be used by mutual agreement of the counterparties.\n * - Tag: 167\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SecurityType = Object.freeze({\n    /** Euro Supranational Coupons\n        Identify the issuer name in Issuer(106). */\n    EuroSupranationalCoupons: 'EUSUPRA',\n    /** Corporate Bond */\n    CorporateBond: 'CORP',\n    /** Foreign Exchange Contract */\n    ForeignExchangeContract: 'FOR',\n    /** Common Stock */\n    CommonStock: 'CS',\n    /** Repurchase */\n    Repurchase: 'REPO',\n    /** Brady Bond */\n    BradyBond: 'BRADY',\n    /** Term Loan */\n    TermLoan: 'TERM',\n    /** Bankers Acceptance */\n    BankersAcceptance: 'BA',\n    /** Asset-backed Securities */\n    AssetBackedSecurities: 'ABS',\n    /** Other Anticipation Notes (BAN, GAN, etc.) */\n    OtherAnticipationNotes: 'AN',\n    /** Mutual Fund */\n    MutualFund: 'MF',\n    /** Federal Agency Coupon */\n    FederalAgencyCoupon: 'FAC',\n    /** Corporate Private Placement */\n    CorporatePrivatePlacement: 'CPP',\n    /** Non-deliverable forward */\n    NonDeliverableForward: 'FXNDF',\n    /** Cap\n        In an interest rate cap, the buyer receives payments at the end of each period in which the rate indec exceeds the agreed strike rate. */\n    Cap: 'CAP',\n    /** Preferred Stock */\n    PreferredStock: 'PS',\n    /** Forward */\n    Forward: 'FORWARD',\n    /** Canadian Treasury Notes */\n    CanadianTreasuryNotes: 'CAN',\n    /** Revolver Loan */\n    RevolverLoan: 'RVLV',\n    /** Bank Depository Note */\n    BankDepositoryNote: 'BDN',\n    /** Canadian Mortgage Bonds */\n    CanadianMortgageBonds: 'CMB',\n    /** Certificate Of Obligation */\n    CertificateOfObligation: 'COFO',\n    /** Multileg Instrument */\n    MultilegInstrument: 'MLEG',\n    /** Federal Agency Discount Note */\n    FederalAgencyDiscountNote: 'FADN',\n    /** Convertible Bond */\n    ConvertibleBond: 'CB',\n    /** FX Spot */\n    FXSpot: 'FXSPOT',\n    /** Credit Default Swap */\n    CreditDefaultSwap: 'CDS',\n    /** Depository Receipts */\n    DepositoryReceipts: 'DR',\n    /** Buy Sellback */\n    BuySellback: 'BUYSELL',\n    /** Canadian Treasury Bills */\n    CanadianTreasuryBills: 'CTB',\n    /** Revolver/Term Loan */\n    Revolver: 'RVLVTRM',\n    /** Bank Notes */\n    BankNotes: 'BN',\n    /** Corp. Mortgage-backed Securities */\n    Corp: 'CMBS',\n    /** Certificate Of Participation */\n    CertificateOfParticipation: 'COFP',\n    /** No Security Type */\n    NoSecurityType: 'NONE',\n    /** US Treasury Note (Deprecated Value Use TNOTE) */\n    USTreasuryNoteOld: 'UST',\n    /** Private Export Funding\n        Identify the issuer name in Issuer(106). */\n    PrivateExportFunding: 'PEF',\n    /** Dual Currency */\n    DualCurrency: 'DUAL',\n    /** FX Forward */\n    FXForward: 'FXFWD',\n    /** Collar\n        In an interest rate collar, this is a combination of a cap and a floor. */\n    Collar: 'CLLR',\n    /** Securities Loan */\n    SecuritiesLoan: 'SECLOAN',\n    /** Euro Sovereigns\n        Identify the issuer name in Issuer(106). */\n    EuroSovereigns: 'EUSOV',\n    /** Bridge Loan */\n    BridgeLoan: 'BRIDGE',\n    /** Bill Of Exchanges */\n    BillOfExchanges: 'BOX',\n    /** Collateralized Mortgage Obligation */\n    CollateralizedMortgageObligation: 'CMO',\n    /** General Obligation Bonds */\n    GeneralObligationBonds: 'GO',\n    /** US Treasury Bill (Deprecated Value Use TBILL) */\n    USTreasuryBillOld: 'USTB',\n    /** USD Supranational Coupons\n        Identify the issuer name in Issuer(106). */\n    USDSupranationalCoupons: 'SUPRA',\n    /** Euro Corporate Bond */\n    EuroCorporateBond: 'EUCORP',\n    /** FX Swap */\n    FXSwap: 'FXSWAP',\n    /** Commodity swap */\n    CommoditySwap: 'CMDTYSWAP',\n    /** Securities Pledge */\n    SecuritiesPledge: 'SECPLEDGE',\n    /** Canadian Provincial Bonds */\n    CanadianProvincialBonds: 'PROV',\n    /** Letter Of Credit */\n    LetterOfCredit: 'LOFC',\n    /** Canadian Money Markets */\n    CanadianMoneyMarkets: 'CAMM',\n    /** IOETTE Mortgage */\n    IOETTEMortgage: 'IET',\n    /** Mandatory Tender */\n    MandatoryTender: 'MT',\n    /** Euro Corporate Floating Rate Notes */\n    EuroCorporateFloatingRateNotes: 'EUFRN',\n    /** Non-deliverable Swap */\n    NonDeliverableSwap: 'FXNDS',\n    /** Exotic */\n    Exotic: 'EXOTIC',\n    /** Delivery versus pledge */\n    DeliveryVersusPledge: 'DVPLDG',\n    /** Treasury Bill - non US */\n    TreasuryBill: 'TB',\n    /** Swing Line Facility */\n    SwingLineFacility: 'SWING',\n    /** Certificate Of Deposit */\n    CertificateOfDeposit: 'CD',\n    /** Mortgage-backed Securities */\n    MortgageBackedSecurities: 'MBS',\n    /** Revenue Anticipation Note */\n    RevenueAnticipationNote: 'RAN',\n    /** Wildcard entry for use on Security Definition Request */\n    Wildcard: '?',\n    /** US Corporate Floating Rate Notes */\n    USCorporateFloatingRateNotes: 'FRN',\n    /** FX Bank Note */\n    FXBankNote: 'FXBN',\n    /** Options on Combo */\n    OptionsOnCombo: 'OOC',\n    /** Floor\n        In an interest rate floor, the buyer receives payments at the end of each period in which the rate index is below the agreed strike rate. */\n    Floor: 'FLR',\n    /** Collateral basket\n        A collection of securities held as collateral in the customer's collateral fund. The collateral fund is usually managed by a custodian. */\n    CollateralBasket: 'COLLBSKT',\n    /** US Treasury Bond */\n    USTreasuryBond: 'TBOND',\n    /** Debtor In Possession */\n    DebtorInPossession: 'DINP',\n    /** Call Loans */\n    CallLoans: 'CL',\n    /** Mortgage Interest Only */\n    MortgageInterestOnly: 'MIO',\n    /** Revenue Bonds */\n    RevenueBonds: 'REV',\n    /** Cash */\n    Cash: 'CASH',\n    /** Indexed Linked */\n    IndexedLinked: 'XLINKD',\n    /** Foreign Currency Discount Note\n        Discount notes issued in foreign currency by Fannie Mae. */\n    ForeignCurrencyDiscountNote: 'FXDN',\n    /** Forward Rate Agreement */\n    FRA: 'FRA',\n    /** Structured finance product */\n    StructuredFinanceProduct: 'SFP',\n    /** Interest Strip From Any Bond Or Note */\n    InterestStripFromAnyBondOrNote: 'TINT',\n    /** Defaulted */\n    Defaulted: 'DEFLTED',\n    /** Commercial Paper */\n    CommercialPaper: 'CP',\n    /** Mortgage Principal Only */\n    MortgagePrincipalOnly: 'MPO',\n    /** Special Assessment */\n    SpecialAssessment: 'SPCLA',\n    /** Other */\n    Other: 'Other',\n    /** Structured Notes */\n    StructuredNotes: 'STRUCT',\n    /** Future */\n    Future: 'FUT',\n    /** US Treasury Bill */\n    USTreasuryBill: 'TBILL',\n    /** Treasury Inflation Protected Securities */\n    TreasuryInflationProtectedSecurities: 'TIPS',\n    /** Withdrawn */\n    Withdrawn: 'WITHDRN',\n    /** Deposit Notes */\n    DepositNotes: 'DN',\n    /** Mortgage Private Placement */\n    MortgagePrivatePlacement: 'MPP',\n    /** Special Obligation */\n    SpecialObligation: 'SPCLO',\n    /** Exchange traded note */\n    ExchangeTradedNote: 'ETN',\n    /** Yankee Corporate Bond */\n    YankeeCorporateBond: 'YANK',\n    /** Derivative forward */\n    DerivativeForward: 'FWD',\n    /** Margin loan */\n    MarginLoan: 'MRGNLOAN',\n    /** Principal Strip Of A Callable Bond Or Note */\n    PrincipalStripOfACallableBondOrNote: 'TCAL',\n    /** Replaced */\n    Replaced: 'REPLACD',\n    /** Euro Certificate Of Deposit */\n    EuroCertificateOfDeposit: 'EUCD',\n    /** Miscellaneous Pass-through */\n    MiscellaneousPassThrough: 'MPT',\n    /** Special Tax */\n    SpecialTax: 'SPCLT',\n    /** Offshore issued Chinese Yuan (CNY) denominated corporate bond */\n    OffshoreIssuedChineseYuanCorporateBond: 'DIMSUMCORP',\n    /** Interest Rate Swap */\n    InterestRateSwap: 'IRS',\n    /** Total return swap */\n    TotalReturnSwap: 'TRS',\n    /** Principal Strip From A Non-Callable Bond Or Note */\n    PrincipalStripFromANonCallableBondOrNote: 'TPRN',\n    /** Matured */\n    Matured: 'MATURED',\n    /** Euro Commercial Paper */\n    EuroCommercialPaper: 'EUCP',\n    /** Pfandbrief\n        Identify the issuer name in Issuer(106). */\n    Pfandbrief: 'PFAND',\n    /** Tax Anticipation Note */\n    TaxAnticipationNote: 'TAN',\n    /** Securitized derivative */\n    SecuritizedDerivative: 'SECDERIV',\n    /** Preferred Corporate Bond */\n    PreferredCorporateBond: 'PRCORP',\n    /** Loan/lease */\n    LoanLease: 'LOANLEASE',\n    /** US Treasury Note */\n    USTreasuryNote: 'TNOTE',\n    /** Amended and restated */\n    Amended: 'AMENDED',\n    /** Liquidity Note */\n    LiquidityNote: 'LQN',\n    /** To Be Announced */\n    ToBeAnnounced: 'TBA',\n    /** Tax Allocation */\n    TaxAllocation: 'TAXA',\n    /** Exchange Traded Fund */\n    ExchangeTradedFund: 'ETF',\n    /** Offshore issued Chinese Yuan (CNY) denominated sovereign bond */\n    OffshoreIssuedChineseYuanSovereignBond: 'DIMSUMSOV',\n    /** Retired */\n    Retired: 'RETIRED',\n    /** Medium Term Notes */\n    MediumTermNotes: 'MTN',\n    /** Tax Exempt Commercial Paper */\n    TaxExemptCommercialPaper: 'TECP',\n    /** Digital Asset\n        Asset that exists only in digital form or which is the digital representation of another asset (Source: ISO 24165 - Terms and Definitions). */\n    DigitalAsset: 'DIGITAL',\n    /** Options on Futures */\n    OptionsOnFutures: 'OOF',\n    /** Sovereign Bond\n        Sovereign or government bond other than Euro and US issuer. Specify sovereign issuer in Issuer(106). */\n    SovereignBond: 'SOV',\n    /** Overnight */\n    Overnight: 'ONITE',\n    /** Taxable Municipal CP */\n    TaxableMunicipalCP: 'TMCP',\n    /** Options on Physical - use not recommended */\n    OptionsOnPhysical: 'OOP',\n    /** US Treasury Floating Rate Note */\n    USTreasuryFloatingRateNote: 'TFRN',\n    /** Promissory Note */\n    PromissoryNote: 'PN',\n    /** Short Term Loan Note */\n    ShortTermLoanNote: 'STN',\n    /** Tax Revenue Anticipation Note */\n    TaxRevenueAnticipationNote: 'TRAN',\n    /** Option */\n    Option: 'OPT',\n    /** Plazos Fijos */\n    PlazosFijos: 'PZFJ',\n    /** Variable Rate Demand Note */\n    VariableRateDemandNote: 'VRDN',\n    /** Spot forward */\n    SpotForward: 'SPOTFWD',\n    /** Secured Liquidity Note */\n    SecuredLiquidityNote: 'SLQN',\n    /** Warrant */\n    Warrant: 'WAR',\n    /** Swap option */\n    SwapOption: 'SWAPTION',\n    /** Time Deposit */\n    TimeDeposit: 'TD',\n    /** Municipal Interest Bearing Commercial Paper */\n    MunicipalInterestBearingCommercialPaper: 'MCPIB',\n    /** Transmission */\n    Transmission: 'XMISSION',\n    /** Taxable Municipal Bond */\n    TaxableMunicipalBond: 'TMB',\n    /** General type for a contract based on an established index */\n    Index: 'INDEX',\n    /** Term Liquidity Note */\n    TermLiquidityNote: 'TLQN',\n    /** Variable Rate Demand Obligation */\n    VariableRateDemandObligation: 'VRDO',\n    /** Bond basket */\n    BondBasket: 'BDBSKT',\n    /** Extended Comm Note */\n    ExtendedCommNote: 'XCN',\n    /** Contract for difference */\n    ContractForDifference: 'CFD',\n    /** Yankee Certificate Of Deposit */\n    YankeeCertificateOfDeposit: 'YCD',\n    /** Correlation swap */\n    CorrelationSwap: 'CRLTNSWAP',\n    /** Bank Accepted Bill\n        Also known as Bank Bill. */\n    BankAcceptedBill: 'BAB',\n    /** Dividend swap */\n    DiviendSwap: 'DVDNDSWAP',\n    /** Short Term Bank Note */\n    ShortTermBankNote: 'BNST',\n    /** Equity basket */\n    EquityBasket: 'EQBSKT',\n    /** Callable Commercial Paper */\n    CallableCommercialPaper: 'CLCP',\n    /** Equity forward */\n    EquityForward: 'EQFWD',\n    /** Commercial Note */\n    CommercialNote: 'CN',\n    /** Return swap */\n    ReturnSwap: 'RTRNSWAP',\n    /** Interest Bearing Commercial Paper */\n    InterestBearingCommercialPaper: 'CPIB',\n    /** Variance swap */\n    VarianceSwap: 'VARSWAP',\n    /** Euro Medium Term Note */\n    EuroMediumTermNote: 'EUMTN',\n    /** Portfolio swap */\n    PortfolioSwaps: 'PRTFLIOSWAP',\n    /** Euro Negotiable Commercial Paper */\n    EuroNegotiableCommercialPaper: 'EUNCP',\n    /** Futures on a Swap */\n    FuturesOnASwap: 'FUTSWAP',\n    /** Euro Structured Liquidity Note */\n    EuroStructuredLiquidityNote: 'EUSTLQN',\n    /** Forwards on a Swap */\n    ForwardsOnASwap: 'FWDSWAP',\n    /** Euro Time Deposit */\n    EuroTimeDeposit: 'EUTD',\n    /** Forward Freight Agreement */\n    ForwardFreightAgreement: 'FWDFRTAGMT',\n    /** Jumbo Certificate of Deposit */\n    JumboCertificateOfDeposit: 'JCD',\n    /** Spread Betting */\n    SpreadBetting: 'SPREADBET',\n    /** Money Market Fund */\n    MoneyMarketFund: 'MMF',\n    /** Exchange traded commodity */\n    ExchangeTradedCommodity: 'ETC',\n    /** Master Note\n        Short term notes issued by Federal Farm Credit Banks Funding Corporation to provide loans and funding under Federal Farm Credit System (FFCS). */\n    MasterNote: 'MN',\n    /** Negotiable Certificate of Deposit */\n    NegotiableCertificateOfDeposit: 'NCD',\n    /** Negotiable Commercial Paper */\n    NegotiableCommercialPaper: 'NCP',\n    /** Retail Certificate of Deposit */\n    RetailCertificateOfDeposit: 'RCD',\n    /** Term Deposit Receipt */\n    TermDepositReceipt: 'TDR',\n} as const);\n\nexport type SecurityType = (typeof SecurityType)[keyof typeof SecurityType];\n", "/**\n * Specifies the action taken or to be taken for the specified instrument or list of instruments.\n * - Tag: 980\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SecurityUpdateAction = Object.freeze({\n    /** Add */\n    Add: 'A',\n    /** Delete */\n    Delete: 'D',\n    /** Modify */\n    Modify: 'M',\n} as const);\n\nexport type SecurityUpdateAction = (typeof SecurityUpdateAction)[keyof typeof SecurityUpdateAction];\n", "/**\n * Indicate the instruction for self-match prevention when the incoming (aggressive) order has the same SelfMatchPreventionID(2362) as a resting (passive) order.\n * - Tag: 2964\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SelfMatchPreventionInstruction = Object.freeze({\n    /** Cancel aggressive\n        Cancel incoming order. */\n    CancelAggressive: 1,\n    /** Cancel passive\n        Cancel resting order with the same SelfMatchPreventionID(2362). */\n    CancelPassive: 2,\n    /** Cancel aggressive and passive\n        Cancel both incoming and resting order with the same SelfMatchPreventionID(2362). */\n    CancelAggressivePassive: 3,\n} as const);\n\nexport type SelfMatchPreventionInstruction =\n    (typeof SelfMatchPreventionInstruction)[keyof typeof SelfMatchPreventionInstruction];\n", "/**\n * Specifies which issue (underlying bond) will receive payment priority in the event of a default.\n    Used to define a CDS instrument.\n    The payment priority is this: Senior Secured (SD), Senior (SR), Senior Non-Preferred (SN), Subordinated (SB), Mezzanine (MZ), Junior (JR).\n * - Tag: 1450\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const Seniority = Object.freeze({\n    /** Senior Secured */\n    SeniorSecured: 'SD',\n    /** Senior */\n    Senior: 'SR',\n    /** Subordinated */\n    Subordinated: 'SB',\n    /** Junior\n        In the context of MiFID II this value is used as identified in RTS 23 Annex I Table 3 Field 23 \"Seniority of the bond\". */\n    Junior: 'JR',\n    /** Mezzanine\n        In the context of MiFID II this value is used as identified in RTS 23 Annex I Table 3 Field 23 \"Seniority of the bond\". */\n    Mezzanine: 'MZ',\n    /** Senior Non-Preferred\n        For CDS reference obligations of non-preferred senior debt issued by European Financials that constitute a layer of debt ranking between the bank's normal senior debt but above the bank's normal tier 2 subordinated debt (reference: ISDA Credit Market Infrastructure Group). */\n    SeniorNonPreferred: 'SN',\n} as const);\n\nexport type Seniority = (typeof Seniority)[keyof typeof Seniority];\n", "/**\n * Code to identify reason for a session-level Reject message.\n * - Tag: 373\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SessionRejectReason = Object.freeze({\n    /** Invalid Tag Number */\n    InvalidTagNumber: 0,\n    /** Required Tag Missing */\n    RequiredTagMissing: 1,\n    /** Tag not defined for this message type */\n    TagNotDefinedForThisMessageType: 2,\n    /** Undefined tag */\n    UndefinedTag: 3,\n    /** Tag specified without a value */\n    TagSpecifiedWithoutAValue: 4,\n    /** Value is incorrect (out of range) for this tag */\n    ValueIsIncorrect: 5,\n    /** Incorrect data format for value */\n    IncorrectDataFormatForValue: 6,\n    /** Decryption problem */\n    DecryptionProblem: 7,\n    /** Signature problem */\n    SignatureProblem: 8,\n    /** CompID problem */\n    CompIDProblem: 9,\n    /** SendingTime Accuracy Problem */\n    SendingTimeAccuracyProblem: 10,\n    /** Invalid MsgType */\n    InvalidMsgType: 11,\n    /** XML Validation Error */\n    XMLValidationError: 12,\n    /** Tag appears more than once */\n    TagAppearsMoreThanOnce: 13,\n    /** Tag specified out of required order */\n    TagSpecifiedOutOfRequiredOrder: 14,\n    /** Repeating group fields out of order */\n    RepeatingGroupFieldsOutOfOrder: 15,\n    /** Incorrect NumInGroup count for repeating group */\n    IncorrectNumInGroupCountForRepeatingGroup: 16,\n    /** Non \"Data\" value includes field delimiter (\\<SOH\\> character) */\n    NonDataValueIncludesFieldDelimiter: 17,\n    /** Invalid/Unsupported Application Version */\n    InvalidUnsupportedApplVer: 18,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type SessionRejectReason = (typeof SessionRejectReason)[keyof typeof SessionRejectReason];\n", "/**\n * Status of a FIX session\n * - Tag: 1409\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SessionStatus = Object.freeze({\n    /** Session active */\n    SessionActive: 0,\n    /** Session password changed */\n    SessionPasswordChanged: 1,\n    /** Session password due to expire */\n    SessionPasswordDueToExpire: 2,\n    /** New session password does not comply with policy */\n    NewSessionPasswordDoesNotComplyWithPolicy: 3,\n    /** Session logout complete */\n    SessionLogoutComplete: 4,\n    /** Invalid username or password */\n    InvalidUsernameOrPassword: 5,\n    /** Account locked */\n    AccountLocked: 6,\n    /** Logons are not allowed at this time */\n    LogonsAreNotAllowedAtThisTime: 7,\n    /** Password expired */\n    PasswordExpired: 8,\n    /** Received MsgSeqNum(34) is too low. */\n    ReceivedMsgSeqNumTooLow: 9,\n    /** Received NextExpectedMsgSeqNum(789) is too high. */\n    ReceivedNextExpectedMsgSeqNumTooHigh: 10,\n} as const);\n\nexport type SessionStatus = (typeof SessionStatus)[keyof typeof SessionStatus];\n", "/**\n * Specifies whether or not SettlCurrFxRate (155) should be multiplied or divided.\n * - Tag: 156\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SettlCurrFxRateCalc = Object.freeze({\n    /** Multiply */\n    Multiply: 'M',\n    /** Divide */\n    Divide: 'D',\n} as const);\n\nexport type SettlCurrFxRateCalc = (typeof SettlCurrFxRateCalc)[keyof typeof SettlCurrFxRateCalc];\n", "/**\n * Identifies type of settlement\n * - Tag: 172\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SettlDeliveryType = Object.freeze({\n    /** \"Versus. Payment\": Deliver (if Sell) or Receive (if Buy) vs. (Against) Payment */\n    Versus: 0,\n    /** \"Free\": Deliver (if Sell) or Receive (if Buy) Free */\n    Free: 1,\n    /** Tri-Party */\n    TriParty: 2,\n    /** Hold In Custody */\n    HoldInCustody: 3,\n} as const);\n\nexport type SettlDeliveryType = (typeof SettlDeliveryType)[keyof typeof SettlDeliveryType];\n", "/**\n * Specifies the consequences of bullion settlement disruption events.\n * - Tag: 2143\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SettlDisruptionProvision = Object.freeze({\n    /** Negotiation */\n    Negotiation: 1,\n    /** Cancellation and payment */\n    Cancellation: 2,\n} as const);\n\nexport type SettlDisruptionProvision = (typeof SettlDisruptionProvision)[keyof typeof SettlDisruptionProvision];\n", "/**\n * Indicates mode used for Settlement Instructions message. *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" ***\n * - Tag: 160\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SettlInstMode = Object.freeze({\n    /** Default (Replaced) */\n    Default: '0',\n    /** Standing Instructions Provided */\n    StandingInstructionsProvided: '1',\n    /** Specific Allocation Account Overriding (Replaced) */\n    SpecificAllocationAccountOverriding: '2',\n    /** Specific Allocation Account Standing (Replaced) */\n    SpecificAllocationAccountStanding: '3',\n    /** Specific Order for a single account (for CIV) */\n    SpecificOrderForASingleAccount: '4',\n    /** Request reject */\n    RequestReject: '5',\n} as const);\n\nexport type SettlInstMode = (typeof SettlInstMode)[keyof typeof SettlInstMode];\n", "/**\n * Identifies reason for rejection (of a settlement instruction request message).\n * - Tag: 792\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SettlInstReqRejCode = Object.freeze({\n    /** Unable to process request */\n    UnableToProcessRequest: 0,\n    /** Unknown account */\n    UnknownAccount: 1,\n    /** No matching settlement instructions found */\n    NoMatchingSettlementInstructionsFound: 2,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type SettlInstReqRejCode = (typeof SettlInstReqRejCode)[keyof typeof SettlInstReqRejCode];\n", "/**\n * Indicates source of Settlement Instructions\n * - Tag: 165\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SettlInstSource = Object.freeze({\n    /** Broker's Instructions */\n    BrokerCredit: '1',\n    /** Institution's Instructions */\n    Institution: '2',\n    /** Investor (e.g. CIV use) */\n    Investor: '3',\n} as const);\n\nexport type SettlInstSource = (typeof SettlInstSource)[keyof typeof SettlInstSource];\n", "/**\n * Settlement Instructions message transaction type\n * - Tag: 163\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SettlInstTransType = Object.freeze({\n    /** New */\n    New: 'N',\n    /** Cancel */\n    Cancel: 'C',\n    /** Replace */\n    Replace: 'R',\n    /** Restate */\n    Restate: 'T',\n} as const);\n\nexport type SettlInstTransType = (typeof SettlInstTransType)[keyof typeof SettlInstTransType];\n", "/**\n * Identifies Settlement Depository or Country Code (ISITC spec)\n * - Tag: 166\n * - FIX Specification type: String\n * - FIX Specification version: FIX42\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SettlLocation = Object.freeze({\n    /** CEDEL */\n    CEDEL: 'CED',\n    /** Depository Trust Company */\n    DepositoryTrustCompany: 'DTC',\n    /** Euroclear */\n    EuroClear: 'EUR',\n    /** Federal Book Entry */\n    FederalBookEntry: 'FED',\n    /** Local Market Settle Location */\n    LocalMarketSettleLocation: 'ISO Country Code',\n    /** Physical */\n    Physical: 'PNY',\n    /** Participant Trust Company */\n    ParticipantTrustCompany: 'PTC',\n} as const);\n\nexport type SettlLocation = (typeof SettlLocation)[keyof typeof SettlLocation];\n", "/**\n * Settlement method for a contract or instrument. Additional values may be used with bilateral agreement.\n * - Tag: 1193\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SettlMethod = Object.freeze({\n    /** Cash settlement required */\n    CashSettlementRequired: 'C',\n    /** Physical settlement required */\n    PhysicalSettlementRequired: 'P',\n    /** Election at exercise\n        The settlement method will be elected at the time of contract exercise. */\n    Election: 'E',\n} as const);\n\nexport type SettlMethod = (typeof SettlMethod)[keyof typeof SettlMethod];\n", "/**\n * Indicates order settlement period. Absence of this field is interpreted as Regular. Regular is defined as the default settlement period for the particular security on the exchange of execution.\n * - Tag: 63\n * - FIX Specification type: char\n * - FIX Specification version: FIX42\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SettlmntTyp = Object.freeze({\n    /** Regular */\n    Regular: '0',\n    /** Cash */\n    Cash: '1',\n    /** Next Day */\n    NextDay: '2',\n    /** T+2 */\n    TPlus2: '3',\n    /** T+3 */\n    TPlus3: '4',\n    /** T+4 */\n    TPlus4: '5',\n    /** Future */\n    Future: '6',\n    /** When Issued */\n    WhenAndIfIssued: '7',\n    /** Sellers Option */\n    SellersOption: '8',\n    /** T+ 5 */\n    TPlus5: '9',\n} as const);\n\nexport type SettlmntTyp = (typeof SettlmntTyp)[keyof typeof SettlmntTyp];\n", "/**\n * Used to identify the reporting mode of the settlement obligation which is either preliminary or final\n * - Tag: 1159\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SettlObligMode = Object.freeze({\n    /** Preliminary */\n    Preliminary: 1,\n    /** Final */\n    Final: 2,\n} as const);\n\nexport type SettlObligMode = (typeof SettlObligMode)[keyof typeof SettlObligMode];\n", "/**\n * Used to identify whether these delivery instructions are for the buyside or the sellside.\n * - Tag: 1164\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SettlObligSource = Object.freeze({\n    /** Instructions of Broker */\n    InstructionsOfBroker: '1',\n    /** Instructions for Institution */\n    InstructionsForInstitution: '2',\n    /** Investor */\n    Investor: '3',\n    /** Buyer's settlement instructions */\n    BuyersSettlementInstructions: '4',\n    /** Seller's settlement instructions */\n    SellersSettlementInstructions: '5',\n} as const);\n\nexport type SettlObligSource = (typeof SettlObligSource)[keyof typeof SettlObligSource];\n", "/**\n * Transaction Type - required except where SettlInstMode is 5=Reject SSI request\n * - Tag: 1162\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SettlObligTransType = Object.freeze({\n    /** Cancel */\n    Cancel: 'C',\n    /** New */\n    New: 'N',\n    /** Replace */\n    Replace: 'R',\n    /** Restate */\n    Restate: 'T',\n} as const);\n\nexport type SettlObligTransType = (typeof SettlObligTransType)[keyof typeof SettlObligTransType];\n", "/**\n * Calculation method used to determine settlement price.\n * - Tag: 2451\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SettlPriceDeterminationMethod = Object.freeze({\n    /** Unknown */\n    Unknown: 0,\n    /** Last trade price */\n    LastTradePrice: 1,\n    /** Last bid price */\n    LastBidPrice: 2,\n    /** Last offer price */\n    LastOfferPrice: 3,\n    /** Mid price\n        The price at the mid-point between last bid and last offer price. */\n    MidPrice: 4,\n    /** Average last trade price\n        The average price across a bi-laterally agreed number of trades, e.g. last five trades. */\n    AverageLastTradePrice: 5,\n    /** Average last trade period\n        Average price across bi-laterally agreed time period, e.g. last minute of trading. */\n    AverageLastTradePeriod: 6,\n    /** Underlying price\n        Based on price of underlying instrument. */\n    UnderlyingPrice: 7,\n    /** Calculated price\n        Other calculation method, e.g. theoretical price. */\n    CalculatedPrice: 8,\n    /** Manual price\n        Manually entered price. */\n    ManualPrice: 9,\n} as const);\n\nexport type SettlPriceDeterminationMethod =\n    (typeof SettlPriceDeterminationMethod)[keyof typeof SettlPriceDeterminationMethod];\n", "/**\n * Type of settlement price\n * - Tag: 731\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SettlPriceType = Object.freeze({\n    /** Final */\n    Final: 1,\n    /** Theoretical */\n    Theoretical: 2,\n} as const);\n\nexport type SettlPriceType = (typeof SettlPriceType)[keyof typeof SettlPriceType];\n", "/**\n * Identifies a specific settlement session\n * - Tag: 716\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SettlSessID = Object.freeze({\n    /** Intraday */\n    Intraday: 'ITD',\n    /** Regular Trading Hours */\n    RegularTradingHours: 'RTH',\n    /** Electronic Trading Hours */\n    ElectronicTradingHours: 'ETH',\n    /** End Of Day */\n    EndOfDay: 'EOD',\n} as const);\n\nexport type SettlSessID = (typeof SettlSessID)[keyof typeof SettlSessID];\n", "/**\n * Status of the report being responded to.\n * - Tag: 2973\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SettlStatusReportStatus = Object.freeze({\n    /** Received, not yet processed */\n    Received: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Rejected\n        Rejection reason provided in RejectText(1328). */\n    Rejected: 2,\n} as const);\n\nexport type SettlStatusReportStatus = (typeof SettlStatusReportStatus)[keyof typeof SettlStatusReportStatus];\n", "/**\n * Status of the SettlementStatusRequest(35=EC) message being responded to.\n * - Tag: 2966\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SettlStatusRequestStatus = Object.freeze({\n    /** Received, not yet processed */\n    Received: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Rejected\n        Rejection reason provided in RejectText(1328). */\n    Rejected: 2,\n} as const);\n\nexport type SettlStatusRequestStatus = (typeof SettlStatusRequestStatus)[keyof typeof SettlStatusRequestStatus];\n", "/**\n * Specifies a suitable settlement sub-method for a given settlement method.\n * - Tag: 2579\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SettlSubMethod = Object.freeze({\n    /** Shares */\n    Shares: 1,\n    /** Derivatives */\n    Derivatives: 2,\n    /** Payment vs payment */\n    PaymentVsPayment: 3,\n    /** Notional */\n    Notional: 4,\n    /** Cascade */\n    Cascade: 5,\n    /** Repurchase */\n    Repurchase: 6,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type SettlSubMethod = (typeof SettlSubMethod)[keyof typeof SettlSubMethod];\n", "/**\n * Indicates order settlement period. If present, SettlDate (64) overrides this field. If both SettlType (63) and SettDate (64) are omitted, the default for SettlType (63) is 0 (Regular)\n    Regular is defined as the default settlement period for the particular security on the exchange of execution.\n    In Fixed Income the contents of this field may influence the instrument definition if the SecurityID (48) is ambiguous. In the US an active Treasury offering may be re-opened, and for a time one CUSIP will apply to both the current and \"when-issued\" securities. Supplying a value of \"7\" clarifies the instrument description; any other value or the absence of this field should cause the respondent to default to the active issue.\n    Additionally the following patterns may be uses as well as enum values\n    Dx = FX tenor expression for \"days\", e.g. \"D5\", where \"x\" is any integer > 0\n    Mx = FX tenor expression for \"months\", e.g. \"M3\", where \"x\" is any integer > 0\n    Wx = FX tenor expression for \"weeks\", e.g. \"W13\", where \"x\" is any integer > 0\n    Yx = FX tenor expression for \"years\", e.g. \"Y1\", where \"x\" is any integer > 0\n    Noted that for FX the tenors expressed using Dx, Mx, Wx, and Yx values do not denote business days, but calendar days.\n * - Tag: 63\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SettlType = Object.freeze({\n    /** Regular / FX Spot settlement (T+1 or T+2 depending on currency) */\n    Regular: '0',\n    /** Cash (TOD / T+0) */\n    Cash: '1',\n    /** Next Day (TOM / T+1) */\n    NextDay: '2',\n    /** T+2 */\n    TPlus2: '3',\n    /** T+3 */\n    TPlus3: '4',\n    /** T+4 */\n    TPlus4: '5',\n    /** Future */\n    Future: '6',\n    /** When And If Issued */\n    WhenAndIfIssued: '7',\n    /** Sellers Option */\n    SellersOption: '8',\n    /** T+5 */\n    TPlus5: '9',\n    /** Broken date\n        Use within FX to specify a non-standard tenor. The use of SettlDate(64) is required to specify the actual settlement date when SettlType(63) = B (Broken date). */\n    BrokenDate: 'B',\n    /** FX Spot Next settlement (Spot+1, aka next day) */\n    FXSpotNextSettlement: 'C',\n} as const);\n\nexport type SettlType = (typeof SettlType)[keyof typeof SettlType];\n", "/**\n * Indicates the reason a short sale order is exempted from applicable regulation (e.g. Reg SHO addendum (b)(1) in the U.S.).\n * - Tag: 1688\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ShortSaleExemptionReason = Object.freeze({\n    /** Exemption reason unknown\n        An exemption reason not provided or received. */\n    ExemptionReasonUnknown: 0,\n    /** Income sell short exempt\n        Agency broker has the customer's exemption reason, which is not explicitly provided to executing broker. */\n    IncomingSSE: 1,\n    /** Above national best bid (broker/dealer provision)\n        Broker / dealer responsible for enforcing exemption rule has determined that the order is priced one or more ticks above the nation best bid of the security to be traded. */\n    AboveNationalBestBid: 2,\n    /** Delayed delivery\n        The broker-dealer has a reasonable basis to believe the seller owns the covered security (pursuant to Rule 200 in the U.S.), but is subject to restrictions on delivery, provided that the seller intends to deliver the security as soon as all restrictions on delivery have been removed. */\n    DelayedDelivery: 3,\n    /** Odd lot\n        The broker-dealer has a reasonable basis to believe the sale is by a market maker to offset customer odd-lot orders or to liquidate an odd-lot position that changes such broker\u2019s or dealer\u2019s position by no more than a unit of trading. */\n    OddLot: 4,\n    /** Domestic arbitrage\n        The sale is connected to a bona-fide domestic arbitrage transaction. */\n    DomesticArbitrage: 5,\n    /** International arbitrage\n        The sale is connected to an international arbitrage transaction. */\n    InternationalArbitrage: 6,\n    /** Underwriter or syndicate distribution\n        The short sale is (i) by an underwriter or member of a syndicate or group participating in the distribution of a security in connection with an over-allotment of securities; or (ii) is for purposes of a lay-off sale by an underwriter or member of a syndicate or group in connection with a distribution of securities through a rights or standby underwriting commitment. */\n    UnderwriterOrSyndicateDistribution: 7,\n    /** Riskless principal\n        The short sale is by a broker or dealer effecting the execution of a customer purchase or the execution of a customer \u201Clong\u201D sale on a riskless principal basis. */\n    RisklessPrincipal: 8,\n    /** VWAP\n        The short sale order is for the sale of a covered security at the volume weighted average price (VWAP) meeting certain criteria. */\n    VWAP: 9,\n} as const);\n\nexport type ShortSaleExemptionReason = (typeof ShortSaleExemptionReason)[keyof typeof ShortSaleExemptionReason];\n", "/**\n * Reason for short sale.\n * - Tag: 853\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ShortSaleReason = Object.freeze({\n    /** Dealer Sold Short */\n    DealerSoldShort: 0,\n    /** Dealer Sold Short Exempt */\n    DealerSoldShortExempt: 1,\n    /** Selling Customer Sold Short */\n    SellingCustomerSoldShort: 2,\n    /** Selling Customer Sold Short Exempt */\n    SellingCustomerSoldShortExempt: 3,\n    /** Qualified Service Representative (QSR) or Automatic Give-up (AGU) Contra Side Sold Short */\n    QualifiedServiceRepresentative: 4,\n    /** QSR or AGU Contra Side Sold Short Exempt */\n    QSROrAGUContraSideSoldShortExempt: 5,\n} as const);\n\nexport type ShortSaleReason = (typeof ShortSaleReason)[keyof typeof ShortSaleReason];\n", "/**\n * Indicates whether a restriction applies to short selling a security.\n * - Tag: 1687\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ShortSaleRestriction = Object.freeze({\n    /** No restrictions */\n    NoRestrictions: 0,\n    /** Security is not shortable */\n    SecurityNotShortable: 1,\n    /** Security not shortable at or below the best bid */\n    SecurityNotShortableAtOrBelowBestBid: 2,\n    /** Security is not shortable without pre-borrow */\n    SecurityNotShortableWithoutPreBorrow: 3,\n} as const);\n\nexport type ShortSaleRestriction = (typeof ShortSaleRestriction)[keyof typeof ShortSaleRestriction];\n", "/**\n * Side of order (see Volume : \"Glossary\" for value definitions)\n * - Tag: 54\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const Side = Object.freeze({\n    /** Buy\n        For Securities Financing indicates the receipt of securities or collateral. */\n    Buy: '1',\n    /** Sell\n        For Securities Financing indicates the delivery of securities or collateral. */\n    Sell: '2',\n    /** Buy minus */\n    BuyMinus: '3',\n    /** Sell plus */\n    SellPlus: '4',\n    /** Sell short */\n    SellShort: '5',\n    /** Sell short exempt */\n    SellShortExempt: '6',\n    /** Undisclosed */\n    Undisclosed: '7',\n    /** Cross (orders where counterparty is an exchange, valid for all messages except IOIs) */\n    Cross: '8',\n    /** Cross short */\n    CrossShort: '9',\n    /** Cross short exempt */\n    CrossShortExempt: 'A',\n    /** \"As Defined\" (for use with multileg instruments) */\n    AsDefined: 'B',\n    /** \"Opposite\" (for use with multileg instruments) */\n    Opposite: 'C',\n    /** Subscribe (e.g. CIV) */\n    Subscribe: 'D',\n    /** Redeem (e.g. CIV) */\n    Redeem: 'E',\n    /** Lend (FINANCING - identifies direction of collateral) */\n    Lend: 'F',\n    /** Borrow (FINANCING - identifies direction of collateral) */\n    Borrow: 'G',\n    /** Sell undisclosed\n        In the context of ESMA RTS 22, this allows for reporting of transactions where the investment firm (broker) is not able to determine whether the sell is a short sale transaction. Corresponds to RTS 22 \"short selling indicator\" value of 'UNDI'. */\n    SellUndisclosed: 'H',\n} as const);\n\nexport type Side = (typeof Side)[keyof typeof Side];\n", "/**\n * Indicates to recipient whether trade is clearing at execution prices LastPx(tag 31) or alternate clearing prices SideClearingTradePrice(tag 1597).\n * - Tag: 1598\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SideClearingTradePriceType = Object.freeze({\n    /** Trade Clearing at Execution Price */\n    TradeClearingAtExecutionPrice: 0,\n    /** Trade Clearing at Alternate Clearing Price */\n    TradeClearingAtAlternateClearingPrice: 1,\n} as const);\n\nexport type SideClearingTradePriceType = (typeof SideClearingTradePriceType)[keyof typeof SideClearingTradePriceType];\n", "/**\n * Used to indicate if the side being reported on Trade Capture Report represents a leg of a multileg instrument or a single security.\n * - Tag: 752\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SideMultiLegReportingType = Object.freeze({\n    /** Single Security (default if not specified) */\n    SingleSecurity: 1,\n    /** Individual leg of a multileg security */\n    IndividualLegOfAMultilegSecurity: 2,\n    /** Multileg Security */\n    MultilegSecurity: 3,\n} as const);\n\nexport type SideMultiLegReportingType = (typeof SideMultiLegReportingType)[keyof typeof SideMultiLegReportingType];\n", "/**\n * Code to identify which \"SideValue\" the value refers to. SideValue1 and SideValue2 are used as opposed to Buy or Sell so that the basket can be quoted either way as Buy or Sell.\n * - Tag: 401\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const SideValueInd = Object.freeze({\n    /** Side Value 1 */\n    SideValue1: 1,\n    /** Side Value 2 */\n    SideValue2: 2,\n} as const);\n\nexport type SideValueInd = (typeof SideValueInd)[keyof typeof SideValueInd];\n", "/**\n * Used to indicate whether the quoting system allows only one quote to be active at a time for the quote issuer or market maker.\n * - Tag: 2837\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SingleQuoteIndicator = Object.freeze({\n    /** Multiple quotes allowed */\n    MultipleQuotesAllowed: 'N',\n    /** Only one quote allowed */\n    OnlyOneQuoteAllowed: 'Y',\n} as const);\n\nexport type SingleQuoteIndicator = (typeof SingleQuoteIndicator)[keyof typeof SingleQuoteIndicator];\n", "/**\n * Indicates whether or not the order was solicited.\n * - Tag: 377\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SolicitedFlag = Object.freeze({\n    /** Was not solicited */\n    WasNotSolicited: 'N',\n    /** Was solicited */\n    WasSolicited: 'Y',\n} as const);\n\nexport type SolicitedFlag = (typeof SolicitedFlag)[keyof typeof SolicitedFlag];\n", "/**\n * Identifies the Standing Instruction database used\n * - Tag: 169\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StandInstDbType = Object.freeze({\n    /** Other */\n    Other: 0,\n    /** DTC SID */\n    DTCSID: 1,\n    /** Thomson ALERT */\n    ThomsonALERT: 2,\n    /** A Global Custodian (StandInstDBName (70) must be provided) */\n    AGlobalCustodian: 3,\n    /** AccountNet */\n    AccountNet: 4,\n} as const);\n\nexport type StandInstDbType = (typeof StandInstDbType)[keyof typeof StandInstDbType];\n", "/**\n * Type of statistics\n * - Tag: 1176\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StatsType = Object.freeze({\n    /** Exchange Last */\n    ExchangeLast: 1,\n    /** High / Low Price */\n    High: 2,\n    /** Average Price (VWAP, TWAP ... ) */\n    AveragePrice: 3,\n    /** Turnover (Price * Qty) */\n    Turnover: 4,\n} as const);\n\nexport type StatsType = (typeof StatsType)[keyof typeof StatsType];\n", "/**\n * Indicates the status of a network connection\n * - Tag: 928\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StatusValue = Object.freeze({\n    /** Connected */\n    Connected: 1,\n    /** Not Connected - down expected up */\n    NotConnectedUnexpected: 2,\n    /** Not Connected - down expected down */\n    NotConnectedExpected: 3,\n    /** In Process */\n    InProcess: 4,\n} as const);\n\nexport type StatusValue = (typeof StatusValue)[keyof typeof StatusValue];\n", "/**\n * For Fixed Income.\n    Type of Stipulation.\n    Other types may be used by mutual agreement of the counterparties.\n    (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\n * - Tag: 233\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const StipulationType = Object.freeze({\n    /** Alternative Minimum Tax (Y/N) */\n    AlternativeMinimumTax: 'AMT',\n    /** Incurred recovery (Y/N)\n        Specifies whether incurred recovery is applicable (Y) or not (N). Outstanding Swap Notional Amount is defined at any time on any day, as the greater of: (a) Zero; If Incurred Recovery Amount Applicable: (b) The Original Swap Notional Amount minus the sum of all Incurred Loss Amounts and all Incurred Recovery Amounts (if any) determined under this Confirmation at or prior to such time.Incurred Recovery Amount not populated: (b) The Original Swap Notional Amount minus the sum of all Incurred Loss Amounts determined under this Confirmation at or prior to such time. 2009 CDX Tranche Terms. */\n    IncurredRecovery: 'INCURRCVY',\n    /** Absolute Prepayment Speed */\n    AbsolutePrepaymentSpeed: 'ABS',\n    /** Auto Reinvestment at \\<rate\\> or better */\n    AutoReinvestment: 'AUTOREINV',\n    /** Additional term\n        Used for representing information contained in the Additional Terms field of the 2003 Master Credit Derivatives confirm. */\n    AdditionalTerm: 'ADDTRM',\n    /** Constant Prepayment Penalty */\n    ConstantPrepaymentPenalty: 'CPP',\n    /** Bank qualified (Y/N) */\n    BankQualified: 'BANKQUAL',\n    /** Modified equity delivery\n        Indicates whether delivery of selected obligationshaving an amountgreater than the reference entity notional amount is allowed (Y) or (N). 2005 iTraxx tranched Transactions Standard Terms Supplement. */\n    ModifiedEquityDelivery: 'MODEQTYDLVY',\n    /** Constant Prepayment Rate */\n    ConstantPrepaymentRate: 'CPR',\n    /** Bargain conditions (see StipulationValue (234) for values) */\n    BargainConditions: 'BGNCON',\n    /** No reference obligation (Y/N)\n        When specified as \"Y\" this indicates that there is no Reference Obligation associated with this Credit Default Swap and that there will never be one. 2003 ISDA Credit Derivatives Definitions. */\n    NoReferenceOblication: 'NOREFOBLIG',\n    /** Constant Prepayment Yield */\n    ConstantPrepaymentYield: 'CPY',\n    /** Coupon range */\n    CouponRange: 'COUPON',\n    /** Unknown reference obligation (Y/N)\n        When specified as \"Y\" this indicates that the Reference obligation associated with the Credit Default Swap is currently not known. This is not valid for Legal Confirmation purposes, but is valid for earlier stages in the trade life cycle (e.g. Broker Confirmation). 2003 FpML-CD-4.0. */\n    UnknownReferenceObligation: 'UNKREFOBLIG',\n    /** final CPR of Home Equity Prepayment Curve */\n    FinalCPROfHomeEquityPrepaymentCurve: 'HEP',\n    /** ISO Currency Code */\n    ISOCurrencyCode: 'CURRENCY',\n    /** All guarantees (Y/N)\n        Indicates whether an obligation of the Reference Entity, guaranteed by the Reference Entity on behalf of a non-Affiliate, is to be considered an Obligation for the purpose of the transaction (Y) or (N). ISDA 2003 Term: All Guarantees. */\n    AllGuarantees: 'ALLGUARANTEES',\n    /** Percent of Manufactured Housing Prepayment Curve */\n    PercentOfManufacturedHousingPrepaymentCurve: 'MHP',\n    /** Custom start/end date */\n    CustomStart: 'CUSTOMDATE',\n    /** Reference price (Y/N)\n        Specifies the reference price expressed as a percentage between 0 and 1 (e.g. 0.05 is 5%). The reference price is used to determine (a) for physically settled trades, the Physical Settlement Amount, which equals the Floating Rate Payer Calculation Amount times the Reference Price and (b) for cash settled trades, the Cash Settlement Amount, which equals the greater of (i) the difference between the Reference Price and the Final Price and (ii) zero. ISDA 2003 Term: Reference Price. */\n    ReferencePrice: 'REFPX',\n    /** Monthly Prepayment Rate */\n    MonthlyPrepaymentRate: 'MPR',\n    /** Geographics and % range (ex. 234=CA 0-80 [minimum of 80% California assets]) */\n    Geographics: 'GEOG',\n    /** Reference policy (Y/N)\n        Indicates whether the reference obligation is guaranteed (Y), or not (N), under a reference policy. If the Reference Obligation is guaranteed under a Reference Policy, and such Reference Policy by its terms excludes any component of the Expected Principal Amount for purposes of determining the liability of the relevant Insurer, or the Insurer is otherwise not required to pay any such amounts under the terms of the Reference Policy, the relevant component or amount shall also be excluded for purposes of determining the Expected Principal Amount with respect to any determination of Principal Shortfall hereunder. 2006 ISDA CDS on MBS Terms. */\n    ReferencePolicy: 'REFPOLICY',\n    /** Percent of Prospectus Prepayment Curve */\n    PercentOfProspectusPrepaymentCurve: 'PPC',\n    /** Valuation Discount */\n    ValuationDiscount: 'HAIRCUT',\n    /** Secured list (Y/N)\n        Specifies whether a list of Syndicated Secured Obligations (also known as the Relevant Secured List) exists (Y), or not (N), for the Reference Entity. With respect to any day, the list of Syndicated Secured Obligations of the Designated Priority of the Reference Entity published by Markit Group Limited or any successor thereto appointed by the Specified Dealers (the \"Secured List Publisher\") on or most recently before such day, which list is currently available at [http://www.markit.com]. ISDA 2003 Term: Relevant Secured List. */\n    SecuredList: 'SECRDLIST',\n    /** Percent of BMA Prepayment Curve */\n    PercentOfBMAPrepaymentCurve: 'PSA',\n    /** Insured (Y/N) */\n    Insured: 'INSURED',\n    /** Single Monthly Mortality */\n    SingleMonthlyMortality: 'SMM',\n    /** Year Or Year/Month of Issue (ex. 234=2002/09) */\n    IssueDate: 'ISSUE',\n    /** Issuer's ticker */\n    Issuer: 'ISSUER',\n    /** issue size range */\n    IssueSizeRange: 'ISSUESIZE',\n    /** Lookback Days */\n    LookbackDays: 'LOOKBACK',\n    /** Explicit lot identifier */\n    ExplicitLotIdentifier: 'LOT',\n    /** Lot Variance (value in percent maximum over- or under-allocation allowed) */\n    LotVariance: 'LOTVAR',\n    /** Maturity Year And Month */\n    MaturityYearAndMonth: 'MAT',\n    /** Maturity range */\n    MaturityRange: 'MATURITY',\n    /** Maximum substitutions (Repo) */\n    MaximumSubstitutions: 'MAXSUBS',\n    /** Minimum denomination */\n    MinimumDenomination: 'MINDNOM',\n    /** Minimum increment */\n    MinimumIncrement: 'MININCR',\n    /** Minimum quantity */\n    MinimumQuantity: 'MINQTY',\n    /** Payment frequency, calendar */\n    PaymentFrequency: 'PAYFREQ',\n    /** Number Of Pieces */\n    NumberOfPieces: 'PIECES',\n    /** Pools Maximum */\n    PoolsMaximum: 'PMAX',\n    /** Pools per Lot */\n    PoolsPerLot: 'PPL',\n    /** Pools per Million */\n    PoolsPerMillion: 'PPM',\n    /** Pools per Trade */\n    PoolsPerTrade: 'PPT',\n    /** Price Range */\n    PriceRange: 'PRICE',\n    /** Pricing frequency */\n    PricingFrequency: 'PRICEFREQ',\n    /** Production Year */\n    ProductionYear: 'PROD',\n    /** Call protection */\n    CallProtection: 'PROTECT',\n    /** Purpose */\n    Purpose: 'PURPOSE',\n    /** Benchmark price source */\n    BenchmarkPriceSource: 'PXSOURCE',\n    /** Rating source and range */\n    RatingSourceAndRange: 'RATING',\n    /** Type Of Redemption - values are: NonCallable, Prefunded, EscrowedToMaturity, Putable, Convertible */\n    TypeOfRedemption: 'REDEMPTION',\n    /** Restricted (Y/N) */\n    Restricted: 'RESTRICTED',\n    /** Market Sector */\n    MarketSector: 'SECTOR',\n    /** Security Type included or excluded */\n    SecurityTypeIncludedOrExcluded: 'SECTYPE',\n    /** Structure */\n    Structure: 'STRUCT',\n    /** Substitutions frequency (Repo) */\n    SubstitutionsFrequency: 'SUBSFREQ',\n    /** Substitutions left (Repo) */\n    SubstitutionsLeft: 'SUBSLEFT',\n    /** Freeform Text */\n    FreeformText: 'TEXT',\n    /** Trade Variance (value in percent maximum over- or under-allocation allowed) */\n    TradeVariance: 'TRDVAR',\n    /** Weighted Average Coupon - value in percent (exact or range) plus \"Gross\" or \"Net\" of servicing spread (the default) (ex. 234=6.5-Net [minimum of 6.5% net of servicing fee]) */\n    WeightedAverageCoupon: 'WAC',\n    /** Weighted Average Life Coupon - value in percent (exact or range) */\n    WeightedAverageLifeCoupon: 'WAL',\n    /** Weighted Average Loan Age - value in months (exact or range) */\n    WeightedAverageLoanAge: 'WALA',\n    /** Weighted Average Maturity - value in months (exact or range) */\n    WeightedAverageMaturity: 'WAM',\n    /** Whole Pool (Y/N) */\n    WholePool: 'WHOLE',\n    /** Yield Range */\n    YieldRange: 'YIELD',\n    /** Original amount\n        The original issued amount of a mortgage backed security or other loan/asset backed security. */\n    OriginalAmount: 'ORIGAMT',\n    /** Average FICO Score */\n    AverageFICOScore: 'AVFICO',\n    /** Pool effective date */\n    PoolEffectiveDate: 'POOLEFFDT',\n    /** Average Loan Size */\n    AverageLoanSize: 'AVSIZE',\n    /** Pool initial factor\n        For morttgage backed securities, the part of the mortgage that is outstanding on trade inception, i.e. has not been repaid yet as principal. It is expressed as a multiplier factor to the mortgage: where 1 means that the whole mortage amount is outstanding, 0.8 means that80% remains to be repaid and 20% has been repaid. */\n    PoolInitialFactor: 'POOLINITFCTR',\n    /** Maximum Loan Balance */\n    MaximumLoanBalance: 'MAXBAL',\n    /** Tranche identifier\n        Identifies the tranche of a mortgage backed security, loan, collateralized mortgage obligation or similar securities that can be split into different risk or maturity (for example) classes. */\n    Tranche: 'TRANCHE',\n    /** Pool Identifier */\n    PoolIdentifier: 'POOL',\n    /** Substitution (Y/N)\n        Indicates whether substitution is applicable (Y) or (N). */\n    Substitution: 'SUBSTITUTION',\n    /** Type of Roll trade */\n    TypeOfRollTrade: 'ROLLTYPE',\n    /** Multiple exchange fallback (Y/N)\n        For an index option transaction, indicates whether a relevant \"Multiple Exchange Index Annex\" is applicable (Y) to the transaction or not (N). This annex defines additional provisions which are applicable where an index is comprised of component securities that are traded on multiple exchanges. */\n    MULTEXCHFLLBCK: 'MULTEXCHFLLBCK',\n    /** Reference to rolling or closing trade */\n    ReferenceToRollingOrClosingTrade: 'REFTRADE',\n    /** Component security fallback (Y/N)\n        For an index option transaction, indicates whether a relevant \"Component Security Index Annex\" is applicable (Y) to the transaction or not (N). */\n    COMPSECFLLBCK: 'COMPSECFLLBCK',\n    /** Principal to rolling or closing trade */\n    PrincipalOfRollingOrClosingTrade: 'REFPRIN',\n    /** Local jurisdiction (Y/N)\n        \"Local Jurisdiction\" is used in the AEJ Master Confirmation to determine applicability (Y), or not (N), of local taxes (including taxes, duties, and similar charges) imposed by the taxing authority of the local jurisdiction. */\n    LOCLJRSDCTN: 'LOCLJRSDCTN',\n    /** Interest of rolling or closing trade */\n    InterestOfRollingOrClosingTrade: 'REFINT',\n    /** Relevant jurisdiction (Y/N)\n        \"Relevant Jurisdiction\" is used in the AEJ Master Confirmation to determine applicability (Y), or not (N), of local taxes (including taxes, duties and similar charges) that would be imposed by the taxing authority of the \"country of underlier\" on a \"hypothetical broker dealer\" assuming that the applicable hedge positions are held by its office in the Relevant Jurisdiction. */\n    RELVJRSDCTN: 'RELVJRSDCTN',\n    /** Available offer quantity to be shown to the street */\n    AvailableOfferQuantityToBeShownToTheStreet: 'AVAILQTY',\n    /** Broker's sales credit */\n    BrokerCredit: 'BROKERCREDIT',\n    /** Offer price to be shown to internal brokers */\n    OfferPriceToBeShownToInternalBrokers: 'INTERNALPX',\n    /** Offer quantity to be shown to internal brokers */\n    OfferQuantityToBeShownToInternalBrokers: 'INTERNALQTY',\n    /** The minimum residual offer quantity */\n    TheMinimumResidualOfferQuantity: 'LEAVEQTY',\n    /** Maximum order size */\n    MaximumOrderSize: 'MAXORDQTY',\n    /** Order quantity increment */\n    OrderQuantityIncrement: 'ORDRINCR',\n    /** Primary or Secondary market indicator */\n    PrimaryOrSecondaryMarketIndicator: 'PRIMARY',\n    /** Broker sales credit override */\n    BrokerSalesCreditOverride: 'SALESCREDITOVR',\n    /** Trader's credit */\n    TraderCredit: 'TRADERCREDIT',\n    /** Discount Rate (when price is denominated in percent of par) */\n    DiscountRate: 'DISCOUNT',\n    /** Yield to Maturity (when YieldType(235) and Yield(236) show a different yield) */\n    YieldToMaturity: 'YTM',\n    /** Interest payoff of rolling or amending trade */\n    InterestPayoffOfRollingOrAmendingTrade: 'PAYOFF',\n} as const);\n\nexport type StipulationType = (typeof StipulationType)[keyof typeof StipulationType];\n", "/**\n * Datatype of the parameter\n * - Tag: 959\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StrategyParameterType = Object.freeze({\n    /** Int */\n    Int: 1,\n    /** Length */\n    Length: 2,\n    /** NumInGroup */\n    NumInGroup: 3,\n    /** SeqNum */\n    SeqNum: 4,\n    /** TagNum */\n    TagNum: 5,\n    /** float */\n    Float: 6,\n    /** Qty */\n    Qty: 7,\n    /** Price */\n    Price: 8,\n    /** PriceOffset */\n    PriceOffset: 9,\n    /** Amt */\n    Amt: 10,\n    /** Percentage */\n    Percentage: 11,\n    /** Char */\n    Char: 12,\n    /** Boolean */\n    Boolean: 13,\n    /** String */\n    String: 14,\n    /** MultipleCharValue */\n    MultipleCharValue: 15,\n    /** Currency */\n    Currency: 16,\n    /** Exchange */\n    Exchange: 17,\n    /** MonthYear */\n    MonthYear: 18,\n    /** UTCTimestamp */\n    UTCTimestamp: 19,\n    /** UTCTimeOnly */\n    UTCTimeOnly: 20,\n    /** LocalMktDate */\n    LocalMktDate: 21,\n    /** UTCDateOnly */\n    UTCDateOnly: 22,\n    /** data */\n    Data: 23,\n    /** MultipleStringValue */\n    MultipleStringValue: 24,\n    /** Country */\n    Country: 25,\n    /** Language */\n    Language: 26,\n    /** TZTimeOnly */\n    TZTimeOnly: 27,\n    /** TZTimestamp */\n    TZTimestamp: 28,\n    /** Tenor */\n    Tenor: 29,\n} as const);\n\nexport type StrategyParameterType = (typeof StrategyParameterType)[keyof typeof StrategyParameterType];\n", "/**\n * Specifies the type of trade strategy.\n * - Tag: 2141\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const StrategyType = Object.freeze({\n    /** Straddle */\n    Straddle: 'STD',\n    /** Strangle */\n    Strangle: 'STG',\n    /** Butterfly */\n    Butterfly: 'BF',\n    /** Condor */\n    Condor: 'CNDR',\n    /** Callable inversible snowball */\n    CallableInversibleSnowball: 'CISN',\n    /** Other */\n    Other: 'OTHER',\n} as const);\n\nexport type StrategyType = (typeof StrategyType)[keyof typeof StrategyType];\n", "/**\n * Type of acknowledgement.\n * - Tag: 1503\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StreamAsgnAckType = Object.freeze({\n    /** Assignment Accepted */\n    AssignmentAccepted: 0,\n    /** Assignment Rejected */\n    AssignmentRejected: 1,\n} as const);\n\nexport type StreamAsgnAckType = (typeof StreamAsgnAckType)[keyof typeof StreamAsgnAckType];\n", "/**\n * Reason code for stream assignment request reject.\n * - Tag: 1502\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StreamAsgnRejReason = Object.freeze({\n    /** Unknown client */\n    UnknownClient: 0,\n    /** Exceeds maximum size */\n    ExceedsMaximumSize: 1,\n    /** Unknown or Invalid currency pair */\n    UnknownOrInvalidCurrencyPair: 2,\n    /** No available stream */\n    NoAvailableStream: 3,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type StreamAsgnRejReason = (typeof StreamAsgnRejReason)[keyof typeof StreamAsgnRejReason];\n", "/**\n * Type of stream assignment request.\n * - Tag: 1498\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StreamAsgnReqType = Object.freeze({\n    /** Stream assignment for new customer(s) */\n    StreamAssignmentForNewCustomer: 1,\n    /** Stream assignment for existing customer(s) */\n    StreamAssignmentForExistingCustomer: 2,\n} as const);\n\nexport type StreamAsgnReqType = (typeof StreamAsgnReqType)[keyof typeof StreamAsgnReqType];\n", "/**\n * The type of assignment being affected in the Stream Assignment Report.\n * - Tag: 1617\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StreamAsgnType = Object.freeze({\n    /** Assignment */\n    Assignment: 1,\n    /** Rejected */\n    Rejected: 2,\n    /** Terminate/Unassign */\n    Terminate: 3,\n} as const);\n\nexport type StreamAsgnType = (typeof StreamAsgnType)[keyof typeof StreamAsgnType];\n", "/**\n * Type of data source identifier.\n * - Tag: 41282\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StreamCommodityDataSourceIDType = Object.freeze({\n    /** City (4 character business center code) */\n    City: 0,\n    /** Airport (IATA standard) */\n    Airport: 1,\n    /** Weather station WBAN (Weather Bureau Army Navy) */\n    WeatherStation: 2,\n    /** Weather index WMO (World Meteorological Organization) */\n    WeatherIndex: 3,\n} as const);\n\nexport type StreamCommodityDataSourceIDType =\n    (typeof StreamCommodityDataSourceIDType)[keyof typeof StreamCommodityDataSourceIDType];\n", "/**\n * Time unit associated with the nearby settlement day.\n * - Tag: 41267\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const StreamCommodityNearbySettlDayUnit = Object.freeze({\n    /** Week */\n    Week: 'Wk',\n    /** Month */\n    Month: 'Mo',\n} as const);\n\nexport type StreamCommodityNearbySettlDayUnit =\n    (typeof StreamCommodityNearbySettlDayUnit)[keyof typeof StreamCommodityNearbySettlDayUnit];\n", "/**\n * Time unit associated with the commodity delivery date roll.\n * - Tag: 41273\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const StreamCommoditySettlDateRollUnit = Object.freeze({\n    /** Day */\n    Day: 'D',\n} as const);\n\nexport type StreamCommoditySettlDateRollUnit =\n    (typeof StreamCommoditySettlDateRollUnit)[keyof typeof StreamCommoditySettlDateRollUnit];\n", "/**\n * For equity swaps this specifies the conditions that govern the adjustment to the number of units of the swap.\n * - Tag: 42787\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StreamNotionalAdjustments = Object.freeze({\n    /** Execution\n        The adjustments to the number of units are governed by an execution clause. */\n    Execution: 0,\n    /** Portfolio rebalancing\n        The adjustments to the number of units are governed by a portfolio rebalancing clause. */\n    PortfolioRebalancing: 1,\n    /** Standard\n        The adjustments to the number of units are not governed by any specific clause. */\n    Standard: 2,\n} as const);\n\nexport type StreamNotionalAdjustments = (typeof StreamNotionalAdjustments)[keyof typeof StreamNotionalAdjustments];\n", "/**\n * The commodity's notional or quantity delivery frequency.\n * - Tag: 41308\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StreamNotionalCommodityFrequency = Object.freeze({\n    /** Term */\n    Term: 0,\n    /** Per business day */\n    PerBusinessDay: 1,\n    /** Per calculation period */\n    PerCalculationPeriod: 2,\n    /** Per settlement period */\n    PerSettlPeriod: 3,\n    /** Per calendar day */\n    PerCalendarDay: 4,\n    /** Per hour */\n    PerHour: 5,\n    /** Per month */\n    PerMonth: 6,\n} as const);\n\nexport type StreamNotionalCommodityFrequency =\n    (typeof StreamNotionalCommodityFrequency)[keyof typeof StreamNotionalCommodityFrequency];\n", "/**\n * Type of swap stream.\n * - Tag: 40050\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StreamType = Object.freeze({\n    /** Payment / cash settlement */\n    PaymentCashSettlement: 0,\n    /** Physical delivery */\n    PhysicalDelivery: 1,\n} as const);\n\nexport type StreamType = (typeof StreamType)[keyof typeof StreamType];\n", "/**\n * The quote side from which the index price is to be determined.\n * - Tag: 2601\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StrikeIndexQuote = Object.freeze({\n    /** Bid */\n    Bid: 0,\n    /** Mid */\n    Mid: 1,\n    /** Offer */\n    Offer: 2,\n} as const);\n\nexport type StrikeIndexQuote = (typeof StrikeIndexQuote)[keyof typeof StrikeIndexQuote];\n", "/**\n * Specifies the boundary condition to be used for the strike price relative to the underlying price at the point of option exercise.\n * - Tag: 1479\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StrikePriceBoundaryMethod = Object.freeze({\n    /** Less than underlying price is in-the-money (ITM) */\n    LessThan: 1,\n    /** Less than or equal to the underlying price is in-the-money(ITM) */\n    LessThanOrEqual: 2,\n    /** Equal to the underlying price is in-the-money(ITM) */\n    Equal: 3,\n    /** Greater than or equal to underlying price is in-the-money(ITM) */\n    GreaterThanOrEqual: 4,\n    /** Greater than underlying is in-the-money(ITM) */\n    GreaterThan: 5,\n} as const);\n\nexport type StrikePriceBoundaryMethod = (typeof StrikePriceBoundaryMethod)[keyof typeof StrikePriceBoundaryMethod];\n", "/**\n * Specifies how the strike price is determined at the point of option exercise. The strike may be fixed throughout the life of the option, set at expiration to the value of the underlying, set to the average value of the underlying , or set to the optimal value of the underlying.\n * - Tag: 1478\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const StrikePriceDeterminationMethod = Object.freeze({\n    /** Fixed strike (default if not specified) */\n    FixedStrike: 1,\n    /** Strike set at expiration to underlying or other value (lookback floating) */\n    StrikeSetAtExpiration: 2,\n    /** Strike set to average of underlying settlement price across the life of the option */\n    StrikeSetToAverageAcrossLife: 3,\n    /** Strike set to optimal value */\n    StrikeSetToOptimalValue: 4,\n} as const);\n\nexport type StrikePriceDeterminationMethod =\n    (typeof StrikePriceDeterminationMethod)[keyof typeof StrikePriceDeterminationMethod];\n", "/**\n * Subscription Request Type\n * - Tag: 263\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SubscriptionRequestType = Object.freeze({\n    /** Snapshot */\n    Snapshot: '0',\n    /** Snapshot + Updates (Subscribe) */\n    SnapshotAndUpdates: '1',\n    /** Disable previous Snapshot + Update Request (Unsubscribe) */\n    DisablePreviousSnapshot: '2',\n} as const);\n\nexport type SubscriptionRequestType = (typeof SubscriptionRequestType)[keyof typeof SubscriptionRequestType];\n", "/**\n * The classification or type of swap. Additional values may be used by mutual agreement of the counterparties.\n * - Tag: 1941\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SwapClass = Object.freeze({\n    /** Basis swap */\n    BasisSwap: 'BS',\n    /** Index swap */\n    IndexSwap: 'IX',\n    /** Broad-based security swap */\n    BroadBasedSecuritySwap: 'BB',\n    /** Basket swap */\n    BasketSwap: 'SK',\n} as const);\n\nexport type SwapClass = (typeof SwapClass)[keyof typeof SwapClass];\n", "/**\n * The sub-classification or notional schedule type of the swap.\n * - Tag: 1575\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SwapSubClass = Object.freeze({\n    /** Amortizing notional schedule */\n    Amortizing: 'AMTZ',\n    /** Compounding */\n    Compounding: 'COMP',\n    /** Constant notional schedule */\n    ConstantNotionalSchedule: 'CNST',\n    /** Accreting notional schedule */\n    AccretingNotionalSchedule: 'ACRT',\n    /** Custom notional schedule */\n    CustomNotionalSchedule: 'CUST',\n} as const);\n\nexport type SwapSubClass = (typeof SwapSubClass)[keyof typeof SwapSubClass];\n", "/**\n * Additional information about the security (e.g. preferred, warrants, etc.). Note also see SecurityType (167).\n    As defined in the NYSE Stock and bond Symbol Directory and in the AMEX Fitch Directory.\n * - Tag: 65\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const SymbolSfx = Object.freeze({\n    /** EUCP with lump-sum interest rather than discount price */\n    EUCPWithLumpSumInterest: 'CD',\n    /** \"When Issued\" for a security to be reissued under an old CUSIP or ISIN */\n    WhenIssued: 'WI',\n} as const);\n\nexport type SymbolSfx = (typeof SymbolSfx)[keyof typeof SymbolSfx];\n", "/**\n * The target strategy of the order\n    1000+ = Reserved and available for bi-laterally agreed upon user defined values\n * - Tag: 847\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TargetStrategy = Object.freeze({\n    /** VWAP */\n    VWAP: 1,\n    /** Participate (i.e. aim to be x percent of the market volume) */\n    Participate: 2,\n    /** Mininize market impact */\n    MininizeMarketImpact: 3,\n} as const);\n\nexport type TargetStrategy = (typeof TargetStrategy)[keyof typeof TargetStrategy];\n", "/**\n * Identifies the type of tax exempt account in which purchases shares/units are to be held. Used for CIV.\n * - Tag: 495\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TaxAdvantageType = Object.freeze({\n    /** None/Not Applicable (default) */\n    None: 0,\n    /** Maxi ISA (UK) */\n    MaxiISA: 1,\n    /** TESSA (UK) */\n    TESSA: 2,\n    /** Mini Cash ISA (UK) */\n    MiniCashISA: 3,\n    /** Mini Stocks And Shares ISA (UK) */\n    MiniStocksAndSharesISA: 4,\n    /** Mini Insurance ISA (UK) */\n    MiniInsuranceISA: 5,\n    /** Current Year Payment (US) */\n    CurrentYearPayment: 6,\n    /** Prior Year Payment (US) */\n    PriorYearPayment: 7,\n    /** Asset Transfer (US) */\n    AssetTransfer: 8,\n    /** Employee - prior year (US) */\n    EmployeePriorYear: 9,\n    /** Employee - current year (US) */\n    EmployeeCurrentYear: 10,\n    /** Employer - prior year (US) */\n    EmployerPriorYear: 11,\n    /** Employer - current year (US) */\n    EmployerCurrentYear: 12,\n    /** Non-fund prototype IRA (US) */\n    NonFundPrototypeIRA: 13,\n    /** Non-fund qualified plan (US) */\n    NonFundQualifiedPlan: 14,\n    /** Defined contribution plan (US) */\n    DefinedContributionPlan: 15,\n    /** Individual Retirement Account (US) */\n    IRA: 16,\n    /** Individual Retirement Account - Rollover (US) */\n    IRARollover: 17,\n    /** KEOGH (US) */\n    KEOGH: 18,\n    /** Profit Sharing Plan (US) */\n    ProfitSharingPlan: 19,\n    /** 401(k) (US) */\n    US401K: 20,\n    /** Self-directed IRA (US) */\n    SelfDirectedIRA: 21,\n    /** 403(b) (US) */\n    US403b: 22,\n    /** 457 (US) */\n    US457: 23,\n    /** Roth IRA (Fund Prototype) (US) */\n    RothIRAPrototype: 24,\n    /** Roth IRA (Non-prototype) (US) */\n    RothIRANonPrototype: 25,\n    /** Roth Conversion IRA (Fund Prototype) (US) */\n    RothConversionIRAPrototype: 26,\n    /** Roth Conversion IRA (Non-prototype) (US) */\n    RothConversionIRANonPrototype: 27,\n    /** Education IRA (Fund Prototype) (US) */\n    EducationIRAPrototype: 28,\n    /** Education IRA (Non-prototype) (US) */\n    EducationIRANonPrototype: 29,\n    /** Other */\n    Other: 999,\n} as const);\n\nexport type TaxAdvantageType = (typeof TaxAdvantageType)[keyof typeof TaxAdvantageType];\n", "/**\n * The type of identification taxonomy used to identify the security.\n * - Tag: 2375\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TaxonomyType = Object.freeze({\n    /** ISIN or Alternate instrument identifier plus CFI\n        Identified through use of SecurityID(48) and SecurityIDSource(22) of ISIN or another standard source plus CFICode(461). */\n    ISINOrAltInstrmtID: 'I',\n    /** Interim Taxonomy\n        Identified through use of AssetClass(1938) plus either Symbol(55) or SecurityID(48) and SecurityIDSource(22), and/or other additional instrument attributes. */\n    InterimTaxonomy: 'E',\n} as const);\n\nexport type TaxonomyType = (typeof TaxonomyType)[keyof typeof TaxonomyType];\n", "/**\n * Type of financing termination.\n * - Tag: 788\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TerminationType = Object.freeze({\n    /** Overnight */\n    Overnight: 1,\n    /** Term */\n    Term: 2,\n    /** Flexible */\n    Flexible: 3,\n    /** Open */\n    Open: 4,\n} as const);\n\nexport type TerminationType = (typeof TerminationType)[keyof typeof TerminationType];\n", "/**\n * Status of the TestActionRequest(35=EN) message being responded to.\n * - Tag: 3068\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TestActionRequestStatus = Object.freeze({\n    /** Received, not yet processed */\n    Received: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Rejected\n        Rejection reason provided in RejectText(1328). */\n    Rejected: 2,\n} as const);\n\nexport type TestActionRequestStatus = (typeof TestActionRequestStatus)[keyof typeof TestActionRequestStatus];\n", "/**\n * Specifies the type of action to take or that was taken for a given test suite.\n * - Tag: 3067\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TestActionType = Object.freeze({\n    /** Start */\n    Start: 0,\n    /** Stop */\n    Stop: 1,\n    /** State */\n    State: 2,\n} as const);\n\nexport type TestActionType = (typeof TestActionType)[keyof typeof TestActionType];\n", "/**\n * Type of test gateway information.\n * - Tag: 3094\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TestGatewayDetailType = Object.freeze({\n    /** Market data gateway IP address\n        IP address of the market data gateway of a venue. */\n    MarketDataGatewayIPAddress: 0,\n    /** Market data gateway port number\n        Port for the IP address of the market data gateway of a venue. */\n    MarketDataGatewayPortNumber: 1,\n    /** Market data gateway data format\n        Data format for market data. */\n    MarketDataGatewayDataFormat: 2,\n    /** Market data gateway format version\n        Version of the data format for market data. */\n    MarketDataGatewayFormatVersion: 3,\n    /** Market data gateway routing IP address\n        Intermediate gateway that is needed to setup the IP route to the actual market data gateway. */\n    MarketDataGatewayRoutingIPAddress: 4,\n    /** Order entry gateway IP address\n        IP address of the order entry gateway of a venue. */\n    OrderEntryGatewayIPAddress: 5,\n    /** Order entry gateway port number\n        Port for the IP address of the order entry gateway of a venue. */\n    OrderEntryGatewayPortNumber: 6,\n    /** Order entry gateway data format\n        Data format for order entry. */\n    OrderEntryGatewayDataFormat: 7,\n    /** Order entry gateway format version\n        Version of the data format for order entry. */\n    OrderEntryGatewayFormatVersion: 8,\n    /** Order entry gateway routing IP address\n        Intermediate gateway that is needed to setup the IP route to the actual order entry gateway. */\n    OrderEntryGatewayRoutingIPAddress: 9,\n} as const);\n\nexport type TestGatewayDetailType = (typeof TestGatewayDetailType)[keyof typeof TestGatewayDetailType];\n", "/**\n * Indicates whether or not this FIX Session is a \"test\" vs. \"production\" connection. Useful for preventing \"accidents\".\n * - Tag: 464\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TestMessageIndicator = Object.freeze({\n    /** False (production) */\n    False: 'N',\n    /** True (test) */\n    True: 'Y',\n} as const);\n\nexport type TestMessageIndicator = (typeof TestMessageIndicator)[keyof typeof TestMessageIndicator];\n", "/**\n * Specifies the activity state the test suite is in.\n * - Tag: 3069\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TestSuiteActivityState = Object.freeze({\n    /** Scheduled\n        Test suite is planned for execution but has not started yet. */\n    Scheduled: 0,\n    /** Running\n        Test suite is currently being executed. */\n    Running: 1,\n    /** Completed\n        Test suite has run to completion and test status information is available. */\n    Completed: 2,\n    /** Cancelled\n        Test suite has not run to completion due to a cancellation by the user or an abnormal termination by the test system. Test suite status information is undefined. */\n    Cancelled: 3,\n} as const);\n\nexport type TestSuiteActivityState = (typeof TestSuiteActivityState)[keyof typeof TestSuiteActivityState];\n", "/**\n * Status of the TestSuiteDefinitionRequest(35=EL) message being responded to.\n * - Tag: 3065\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TestSuiteRequestStatus = Object.freeze({\n    /** Received, not yet processed */\n    Received: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Rejected\n        Rejection reason provided in RejectText(1328). */\n    Rejected: 2,\n} as const);\n\nexport type TestSuiteRequestStatus = (typeof TestSuiteRequestStatus)[keyof typeof TestSuiteRequestStatus];\n", "/**\n * Identifies the message transaction type.\n * - Tag: 3064\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TestSuiteRequestTransType = Object.freeze({\n    /** New */\n    New: 0,\n    /** Cancel */\n    Cancel: 1,\n} as const);\n\nexport type TestSuiteRequestTransType = (typeof TestSuiteRequestTransType)[keyof typeof TestSuiteRequestTransType];\n", "/**\n * Identifies the overall test result of a group of individual test scenarios.\n * - Tag: 3070\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TestSuiteStatus = Object.freeze({\n    /** Undefined */\n    Undefined: 0,\n    /** Pass */\n    Pass: 1,\n    /** Fail */\n    Fail: 2,\n    /** Warning */\n    Warning: 3,\n} as const);\n\nexport type TestSuiteStatus = (typeof TestSuiteStatus)[keyof typeof TestSuiteStatus];\n", "/**\n * Identifies whether the value of a measure needs to be over or under a specific threshold to be successful.\n * - Tag: 3058\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TestThresholdType = Object.freeze({\n    /** Under */\n    Under: 0,\n    /** Over */\n    Over: 1,\n} as const);\n\nexport type TestThresholdType = (typeof TestThresholdType)[keyof typeof TestThresholdType];\n", "/**\n * Action to take should throttle limit be exceeded.\n * - Tag: 1611\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ThrottleAction = Object.freeze({\n    /** Queue inbound */\n    QueueInbound: 0,\n    /** Queue outbound */\n    QueueOutbound: 1,\n    /** Reject */\n    Reject: 2,\n    /** Disconnect */\n    Disconnect: 3,\n    /** Warning */\n    Warning: 4,\n} as const);\n\nexport type ThrottleAction = (typeof ThrottleAction)[keyof typeof ThrottleAction];\n", "/**\n * Indicates whether a message decrements the number of outstanding requests, e.g. one where ThrottleType = Outstanding Requests.\n * - Tag: 1686\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ThrottleCountIndicator = Object.freeze({\n    /** Outstanding requests unchanged */\n    OutstandingRequestsUnchanged: 0,\n    /** Outstanding requests decreased */\n    OutstandingRequestsDecreased: 1,\n} as const);\n\nexport type ThrottleCountIndicator = (typeof ThrottleCountIndicator)[keyof typeof ThrottleCountIndicator];\n", "/**\n * Describes action recipient should take if a throttle limit were exceeded.\n * - Tag: 1685\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ThrottleInst = Object.freeze({\n    /** Reject if throttle limit exceeded */\n    RejectIfThrottleLimitExceeded: 0,\n    /** Queue if throttle limit exceeded */\n    QueueIfThrottleLimitExceeded: 1,\n} as const);\n\nexport type ThrottleInst = (typeof ThrottleInst)[keyof typeof ThrottleInst];\n", "/**\n * Indicates whether a message was queued as a result of throttling.\n * - Tag: 1609\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ThrottleStatus = Object.freeze({\n    /** Throttle limit not exceeded, not queued */\n    ThrottleLimitNotExceededNotQueued: 0,\n    /** Queued due to throttle limit exceeded */\n    QueuedDueToThrottleLimitExceeded: 1,\n} as const);\n\nexport type ThrottleStatus = (typeof ThrottleStatus)[keyof typeof ThrottleStatus];\n", "/**\n * Type of throttle.\n * - Tag: 1612\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ThrottleType = Object.freeze({\n    /** Inbound Rate */\n    InboundRate: 0,\n    /** Outstanding Requests */\n    OutstandingRequests: 1,\n} as const);\n\nexport type ThrottleType = (typeof ThrottleType)[keyof typeof ThrottleType];\n", "/**\n * Direction of the \"tick\".\n * - Tag: 274\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TickDirection = Object.freeze({\n    /** Plus Tick */\n    PlusTick: '0',\n    /** Zero-Plus Tick */\n    ZeroPlusTick: '1',\n    /** Minus Tick */\n    MinusTick: '2',\n    /** Zero-Minus Tick */\n    ZeroMinusTick: '3',\n} as const);\n\nexport type TickDirection = (typeof TickDirection)[keyof typeof TickDirection];\n", "/**\n * Specifies the type of tick rule which is being described\n * - Tag: 1209\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TickRuleType = Object.freeze({\n    /** Regular trading */\n    RegularTrading: 0,\n    /** Variable cabinet */\n    VariableCabinet: 1,\n    /** Fixed cabinet */\n    FixedCabinet: 2,\n    /** Traded as a spread leg */\n    TradedAsASpreadLeg: 3,\n    /** Settled as a spread leg */\n    SettledAsASpreadLeg: 4,\n    /** Traded as spread\n        Basis points spread */\n    TradedAsSpread: 5,\n} as const);\n\nexport type TickRuleType = (typeof TickRuleType)[keyof typeof TickRuleType];\n", "/**\n * Specifies how long the order remains in effect. Absence of this field is interpreted as DAY. NOTE not applicable to CIV Orders.\n * - Tag: 59\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TimeInForce = Object.freeze({\n    /** Day (or session)\n        A buy or sell order that, if not executed expires at the end of the trading day on which it was entered. */\n    Day: '0',\n    /** Good Till Cancel (GTC)\n        An order to buy or sell that remains in effect until it is either executed or canceled; sometimes called an \u201Copen order\u201D. */\n    GoodTillCancel: '1',\n    /** At the Opening (OPG)\n        A market or limit-price order to be executed at the opening of the stock or not at all; all or part of any order not executed at the opening is treated as canceled. */\n    AtTheOpening: '2',\n    /** Immediate Or Cancel (IOC)\n        A market or limit-price order that is to be executed in whole or in part as soon as it is available in the market; any portion not so executed is to be canceled. */\n    ImmediateOrCancel: '3',\n    /** Fill Or Kill (FOK)\n        A market or limit-price order that is to be executed in its entirety as soon as it is available in the market; if not so executed, the order is to be canceled. */\n    FillOrKill: '4',\n    /** Good Till Crossing (GTX)\n        An order to buy or sell that is canceled prior to the market entering into an auction or crossing phase. */\n    GoodTillCrossing: '5',\n    /** Good Till Date (GTD)\n        An order to buy or sell that remains in effect until it expires, defined by ExpireDate(432) or ExpireTime(126). */\n    GoodTillDate: '6',\n    /** At the Close\n        Indicated price is to be around the closing price, however, not held to the closing price. */\n    AtTheClose: '7',\n    /** Good Through Crossing\n        An order that is valid up till and including a crossing phase.] */\n    GoodThroughCrossing: '8',\n    /** At Crossing\n        An order that is valid only during crossing (auction) phases. The order is valid during the day or up to and including a specified trading (sub) session. */\n    AtCrossing: '9',\n    /** Good for Time (GFT)\n        An order that is valid for a pre-defined time period expressed with ExposureDuration(1629) and (optionally) ExposureDurationUnit(1916). */\n    GoodForTime: 'A',\n    /** Good for Auction (GFA)\n        An order that is valid for an auction initiated by a trading firm (see AuctionType(1803) for examples. */\n    GoodForAuction: 'B',\n    /** Good for this Month (GFM)\n        An order that is valid until the end of the current month, i.e. from the time of order submission until the end of the last trading day of the current month. */\n    GoodForMonth: 'C',\n} as const);\n\nexport type TimeInForce = (typeof TimeInForce)[keyof typeof TimeInForce];\n", "/**\n * Unit of time associated with the contract.\n    NOTE: Additional values may be used by mutual agreement of the counterparties.\n * - Tag: 997\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TimeUnit = Object.freeze({\n    /** Hour */\n    Hour: 'H',\n    /** Minute */\n    Minute: 'Min',\n    /** Second */\n    Second: 'S',\n    /** Day */\n    Day: 'D',\n    /** Week */\n    Week: 'Wk',\n    /** Month */\n    Month: 'Mo',\n    /** Year */\n    Year: 'Yr',\n    /** Quarter */\n    Quarter: 'Q',\n    /** End of Month\n        End of Month identifies a relative time unit, e.g. until the third Friday of each month. */\n    EndOfMonth: 'EOM',\n    /** Flexible\n        A flexible time unit indicates that a specific time unit for the contract is currently undetermined. */\n    Flexible: 'F',\n} as const);\n\nexport type TimeUnit = (typeof TimeUnit)[keyof typeof TimeUnit];\n", "/**\n * Reason for trade aggregation request being rejected.\n * - Tag: 2791\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeAggregationRejectReason = Object.freeze({\n    /** Unknown order(s) */\n    UnknownOrders: 0,\n    /** Unknown execution/fill(s) */\n    UnknownExecutionFills: 1,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type TradeAggregationRejectReason =\n    (typeof TradeAggregationRejectReason)[keyof typeof TradeAggregationRejectReason];\n", "/**\n * Status of the trade aggregation request.\n * - Tag: 2790\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeAggregationRequestStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Rejected */\n    Rejected: 1,\n} as const);\n\nexport type TradeAggregationRequestStatus =\n    (typeof TradeAggregationRequestStatus)[keyof typeof TradeAggregationRequestStatus];\n", "/**\n * Identifies the trade aggregation transaction type.\n * - Tag: 2788\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeAggregationTransType = Object.freeze({\n    /** New */\n    New: 0,\n    /** Cancel */\n    Cancel: 1,\n    /** Replace */\n    Replace: 2,\n} as const);\n\nexport type TradeAggregationTransType = (typeof TradeAggregationTransType)[keyof typeof TradeAggregationTransType];\n", "/**\n * Instruction on how to add a trade to an allocation group when it is being given-up.\n * - Tag: 1848\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeAllocGroupInstruction = Object.freeze({\n    /** Add to an existing allocation group if one exists. */\n    Add: 0,\n    /** Do not add the trade to an allocation group. */\n    DoNotAdd: 1,\n} as const);\n\nexport type TradeAllocGroupInstruction = (typeof TradeAllocGroupInstruction)[keyof typeof TradeAllocGroupInstruction];\n", "/**\n * Identifies if, and how, the trade is to be allocated or split.\n * - Tag: 826\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeAllocIndicator = Object.freeze({\n    /** Allocation not required */\n    AllocationNotRequired: 0,\n    /** Allocation required (give-up trade) allocation information not provided (incomplete) */\n    AllocationRequired: 1,\n    /** Use allocation provided with the trade */\n    UseAllocationProvidedWithTheTrade: 2,\n    /** Allocation give-up executor */\n    AllocationGiveUpExecutor: 3,\n    /** Allocation from executor */\n    AllocationFromExecutor: 4,\n    /** Allocation to claim account */\n    AllocationToClaimAccount: 5,\n    /** Trade split */\n    TradeSplit: 6,\n} as const);\n\nexport type TradeAllocIndicator = (typeof TradeAllocIndicator)[keyof typeof TradeAllocIndicator];\n", "/**\n * Identifies the status of an allocation when using a pre-clear workflow.\n    Note: This is different from the give-up process where a trade is cleared and then given up and goes through the allocation flow.\n * - Tag: 1840\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeAllocStatus = Object.freeze({\n    /** Pending clear */\n    PendingClear: 0,\n    /** Claimed */\n    Claimed: 1,\n    /** Cleared */\n    Cleared: 2,\n    /** Rejected */\n    Rejected: 3,\n} as const);\n\nexport type TradeAllocStatus = (typeof TradeAllocStatus)[keyof typeof TradeAllocStatus];\n", "/**\n * Specifies how the trade is collateralized.\n    In the context of Dodd-Frank, all values shown except for 4 (Net exposure) apply.\n    In the context of ESMA EU SFTR reporting only the values 1 (Uncollateralized), 3 (Fully collateralized) and 4 (Net exposure) apply.\n * - Tag: 1936\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeCollateralization = Object.freeze({\n    /** Uncollateralized */\n    Uncollateralized: 0,\n    /** Partially collateralized */\n    PartiallyCollateralized: 1,\n    /** One-way collaterallization */\n    OneWayCollaterallization: 2,\n    /** Fully collateralized */\n    FullyCollateralized: 3,\n    /** Net exposure\n        Indication of whether the collateral has been provided for a net exposure, rather than for a single transaction. */\n    NetExposure: 4,\n} as const);\n\nexport type TradeCollateralization = (typeof TradeCollateralization)[keyof typeof TradeCollateralization];\n", "/**\n * Type of market data entry.\n * - Tag: 277\n * - FIX Specification type: MultipleStringValue\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TradeCondition = Object.freeze({\n    /** Cash (only) Market */\n    Cash: 'A',\n    /** Average Price Trade */\n    AveragePriceTrade: 'B',\n    /** Cash Trade (same day clearing) */\n    CashTrade: 'C',\n    /** Next Day (only)Market */\n    NextDay: 'D',\n    /** Opening/Reopening Trade Detail */\n    Opening: 'E',\n    /** Intraday Trade Detail */\n    IntradayTradeDetail: 'F',\n    /** Rule 127 Trade (NYSE) */\n    Rule127Trade: 'G',\n    /** Rule 155 Trade (AMEX) */\n    Rule155Trade: 'H',\n    /** Sold Last (late reporting) */\n    SoldLast: 'I',\n    /** Next Day Trade (next day clearing) */\n    NextDayTrade: 'J',\n    /** Opened (late report of opened trade) */\n    Opened: 'K',\n    /** Seller */\n    Seller: 'L',\n    /** Sold (out of sequence) */\n    Sold: 'M',\n    /** Stopped Stock (guarantee of price but does not execute the order) */\n    StoppedStock: 'N',\n    /** Imbalance More Buyers (cannot be used in combination with Q) */\n    ImbalanceMoreBuyers: 'P',\n    /** Imbalance More Sellers (cannot be used in combination with P) */\n    ImbalanceMoreSellers: 'Q',\n    /** Opening Price */\n    OpeningPrice: 'R',\n    /** Bargain Condition (LSE) */\n    BargainCondition: 'S',\n    /** Converted Price Indicator */\n    ConvertedPriceIndicator: 'T',\n    /** Exchange Last */\n    ExchangeLast: 'U',\n    /** Final Price of Session */\n    FinalPriceOfSession: 'V',\n    /** Ex-pit */\n    ExPit: 'W',\n    /** Crossed */\n    Crossed: 'X',\n    /** Trades resulting from manual/slow quote */\n    TradesResultingFromManual: 'Y',\n    /** Trades resulting from intermarket sweep */\n    TradesResultingFromIntermarketSweep: 'Z',\n    /** Volume Only */\n    VolumeOnly: 'a',\n    /** Direct Plus */\n    DirectPlus: 'b',\n    /** Acquisition */\n    Acquisition: 'c',\n    /** Bunched */\n    Bunched: 'd',\n    /** Distribution */\n    Distribution: 'e',\n    /** Bunched Sale */\n    BunchedSale: 'f',\n    /** Split Trade */\n    SplitTrade: 'g',\n    /** Cancel Stopped */\n    CancelStopped: 'h',\n    /** Cancel ETH */\n    CancelETH: 'i',\n    /** Cancel Stopped ETH */\n    CancelStoppedETH: 'j',\n    /** Out of Sequence ETH */\n    OutOfSequenceETH: 'k',\n    /** Cancel Last ETH */\n    CancelLastETH: 'l',\n    /** Sold Last Sale ETH */\n    SoldLastSaleETH: 'm',\n    /** Cancel Last */\n    CancelLast: 'n',\n    /** Sold Last Sale */\n    SoldLastSale: 'o',\n    /** Cancel Open */\n    CancelOpen: 'p',\n    /** Cancel Open ETH */\n    CancelOpenETH: 'q',\n    /** Opened Sale ETH */\n    OpenedSaleETH: 'r',\n    /** Cancel Only */\n    CancelOnly: 's',\n    /** Cancel Only ETH */\n    CancelOnlyETH: 't',\n    /** Late Open ETH */\n    LateOpenETH: 'u',\n    /** Auto Execution ETH */\n    AutoExecutionETH: 'v',\n    /** Reopen */\n    Reopen: 'w',\n    /** Reopen ETH */\n    ReopenETH: 'x',\n    /** Adjusted */\n    Adjusted: 'y',\n    /** Adjusted ETH */\n    AdjustedETH: 'z',\n    /** Spread */\n    Spread: 'AA',\n    /** Spread ETH */\n    SpreadETH: 'AB',\n    /** Straddle */\n    Straddle: 'AC',\n    /** Straddle ETH */\n    StraddleETH: 'AD',\n    /** Stopped */\n    Stopped: 'AE',\n    /** Stopped ETH */\n    StoppedETH: 'AF',\n    /** Regular ETH */\n    RegularETH: 'AG',\n    /** Combo */\n    Combo: 'AH',\n    /** Combo ETH */\n    ComboETH: 'AI',\n    /** Official Closing Price */\n    OfficialClosingPrice: 'AJ',\n    /** Prior Reference Price */\n    PriorReferencePrice: 'AK',\n    /** Stopped Sold Last */\n    StoppedSoldLast: 'AL',\n    /** Stopped Out of Sequence */\n    StoppedOutOfSequence: 'AM',\n    /** Official Closing Price (duplicate enumeration - use 'AJ' instead) */\n    OfficialClosingPriceDup: 'AN',\n    /** Crossed (duplicate enumeration - use 'X' instead) */\n    CrossedOld: 'AO',\n    /** Fast Market */\n    FastMarket: 'AP',\n    /** Automatic Execution */\n    AutomaticExecution: 'AQ',\n    /** Form T */\n    FormT: 'AR',\n    /** Basket Index */\n    BasketIndex: 'AS',\n    /** Burst Basket */\n    BurstBasket: 'AT',\n    /** Trade through exempt\n        Trade ignored prices on away markets. */\n    TradeThroughExempt: 'AU',\n    /** Quote spread */\n    QuoteSpread: 'AV',\n    /** Last auction price\n        Trade represents outcome of last auction */\n    LastAuctionPrice: 'AW',\n    /** High price\n        Trade establishes new high price for the session */\n    HighPrice: 'AX',\n    /** Low price\n        Trade establishes new low price for the session */\n    LowPrice: 'AY',\n    /** Systematic Internaliser (SI)\n        Trade conducted by Systematic Internaliser (SI). */\n    SystematicInternaliser: 'AZ',\n    /** Away market\n        Trade conducted on away market */\n    AwayMarket: 'BA',\n    /** Mid-point price\n        Trade represents current midpoint price */\n    MidpointPrice: 'BB',\n    /** Traded before issue date\n        Trade conducted during subscription phase of new issue */\n    TradedBeforeIssueDate: 'BC',\n    /** Previous closing price\n        Trade represents closing price of previous business day */\n    PreviousClosingPrice: 'BD',\n    /** National Best Bid and Offer\n        Trade price within National Best Bid and Offer (NBBO) */\n    NationalBestBidOffer: 'BE',\n    /** Cancel */\n    Cancel: '0',\n    /** Implied Trade */\n    ImpliedTrade: '1',\n    /** Marketplace entered trade */\n    MarketplaceEnteredTrade: '2',\n    /** Multi-asset class multileg trade */\n    MultiAssetClassMultilegTrade: '3',\n    /** Multileg-to-Multileg Trade */\n    MultilegToMultilegTrade: '4',\n    /** Short Sale Minimum Price */\n    ShortSaleMinPrice: '5',\n    /** Benchmark\n        Market Model Typology (MMT) terminology: The \"benchmark\" price depends on a benchmark which has no current price but derived from a time series such as a VWAP. */\n    Benchmark: '6',\n} as const);\n\nexport type TradeCondition = (typeof TradeCondition)[keyof typeof TradeCondition];\n", "/**\n * Indicates the contingency attribute for a trade in an asset class that may be contingent on the clearing of a corresponding paired trade (for example Exchange for Physical (EFP), Exchange for Swap (EFS), Exchange for Related (EFR) or Exchange for Option (EFO), collectively called EFRPs). Once the paired trade clears or fails to clear, the related trade (the trade which carries this attribute) ceases to exist.\n * - Tag: 2387\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeContingency = Object.freeze({\n    /** Does not apply (default if not specified)\n        The trade is for an asset class that is not traded with contingency. */\n    DoesNotApply: 0,\n    /** Contingent trade\n        The trade is terminated as soon as its paired trade is cleared or denied clearing. */\n    ContingentTrade: 1,\n    /** Non-contingent trade\n        Identifies a trade that is not contingent but is for an asset class that may be contingent. */\n    NonContingentTrade: 2,\n} as const);\n\nexport type TradeContingency = (typeof TradeContingency)[keyof typeof TradeContingency];\n", "/**\n * Specifies the post-execution trade continuation or lifecycle event. Additional values may be used by mutual agreement of the counterparties.\n * - Tag: 1937\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeContinuation = Object.freeze({\n    /** Novation */\n    Novation: 0,\n    /** Partial novation */\n    PartialNovation: 1,\n    /** Trade unwind\n        \"Trade\" includes \"Swaps\". */\n    TradeUnwind: 2,\n    /** Partial trade unwind\n        \"Trade\" includes \"Swaps\". */\n    PartialTradeUnwind: 3,\n    /** Exercise */\n    Exercise: 4,\n    /** Compression/Netting\n        Compression (used for OTC derivative trades) and Netting (used for Futures trades) are essentially the same business process, i.e. rolling up closely related contracts into a single trade or position. */\n    Netting: 5,\n    /** Full netting */\n    FullNetting: 6,\n    /** Partial netting */\n    PartialNetting: 7,\n    /** Amendment\n        Based on mutual agreement between the counterparties, used to change the original or previously amended contract terms reported to a trade repository. */\n    Amendment: 8,\n    /** Increase */\n    Increase: 9,\n    /** Credit event */\n    CreditEvent: 10,\n    /** Strategic restructuring */\n    StrategicRestructuring: 11,\n    /** Succession event reorganization */\n    SuccessionEventReorganization: 12,\n    /** Succession event renaming */\n    SuccessionEventRenaming: 13,\n    /** Porting */\n    Porting: 14,\n    /** Withdrawal\n        One party withdrew from the trade prior to confirmation or clearing. Can be used with TradeReportTransType(487)=1 (Cancel). */\n    Withdrawl: 15,\n    /** Void\n        Trade is to be ended after clearing. Can be used with TradeReportTransType(487)=1 (Cancel). */\n    Void: 16,\n    /** Account transfer */\n    AccountTransfer: 17,\n    /** Give up */\n    GiveUp: 18,\n    /** TakeUp */\n    TakeUp: 19,\n    /** Average pricing */\n    AveragePricing: 20,\n    /** Reversal */\n    Reversal: 21,\n    /** Allocation/Trade posting */\n    AllocTrdPosting: 22,\n    /** Cascade\n        The breakdown of a contract position to a more granular level, e.g. from a yearly position to monthly positions. */\n    Cascade: 23,\n    /** Delivery */\n    Delivery: 24,\n    /** Option assignment */\n    OptionAsgn: 25,\n    /** Expiration */\n    Expiration: 26,\n    /** Maturity */\n    Maturity: 27,\n    /** Equal position adjustment */\n    EqualPosAdj: 28,\n    /** Unequal position adjustment\n        An adjustment to either the long or short position quantity but not both. */\n    UnequalPosAdj: 29,\n    /** Correction\n        Used to correct an error in the contract terms of a previously submitted report to a trade repository. */\n    Correction: 30,\n    /** Early termination\n        The transaction/contract has closed before its natural end (maturity date or end date). */\n    EarlyTermination: 31,\n    /** Rerate\n        Change in the repo rate of an open repo contract due to shift in the market conditions. */\n    Rerate: 32,\n    /** Other price-forming continuation data\n        Other price-forming continuation data or lifecycle event. Include description of type in TradeContinuationText(2374). */\n    Other: 99,\n} as const);\n\nexport type TradeContinuation = (typeof TradeContinuation)[keyof typeof TradeContinuation];\n", "/**\n * Driver and part of trade in the event that the Security Master file was wrong at the point of entry(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\n * - Tag: 258\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TradedFlatSwitch = Object.freeze({\n    /** Not Traded Flat */\n    NotTradedFlat: 'N',\n    /** Traded Flat */\n    TradedFlat: 'Y',\n} as const);\n\nexport type TradedFlatSwitch = (typeof TradedFlatSwitch)[keyof typeof TradedFlatSwitch];\n", "/**\n * Specified how the TradeCaptureReport(35=AE) should be handled by the respondent.\n * - Tag: 1123\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TradeHandlingInstr = Object.freeze({\n    /** Trade confirmation */\n    TradeConfirmation: '0',\n    /** Two-party report */\n    TwoPartyReport: '1',\n    /** One-party report for matching */\n    OnePartyReportForMatching: '2',\n    /** One-party report for pass through\n        Can be used when one of the parties to the trade submits a report which then has to be approved or confirmed by the other (counter)party. */\n    OnePartyReportForPassThrough: '3',\n    /** Automated floor order routing */\n    AutomatedFloorOrderRouting: '4',\n    /** Two-party report for claim */\n    TwoPartyReportForClaim: '5',\n    /** One-party report */\n    OnePartyReport: '6',\n    /** Third-party report for pass through\n        Can be used when RootParties component contains a service provider role who submits the trade report and is not necessarily also on one side of the trade. */\n    ThirdPtyRptForPassThrough: '7',\n    /** One-party report for auto-match\n        Indicates that the submission is a transfer trade to a firm or account that is part of the same corporate entity and that once validated the transfer should be automatically accepted without confirmation. */\n    OnePartyReportAutoMatch: '8',\n} as const);\n\nexport type TradeHandlingInstr = (typeof TradeHandlingInstr)[keyof typeof TradeHandlingInstr];\n", "/**\n * Used to indicate the status of the trade match report submission.\n * - Tag: 1896\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeMatchAckStatus = Object.freeze({\n    /** Received, not yet processed */\n    ReceivedNotProcessed: 0,\n    /** Accepted */\n    Accepted: 1,\n    /** Rejected */\n    Rejected: 2,\n} as const);\n\nexport type TradeMatchAckStatus = (typeof TradeMatchAckStatus)[keyof typeof TradeMatchAckStatus];\n", "/**\n * Reason the trade match report submission was rejected.\n * - Tag: 1897\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeMatchRejectReason = Object.freeze({\n    /** Successful */\n    Successful: 0,\n    /** Invalid party information */\n    InvalidPartyInformation: 1,\n    /** Unknown instrument */\n    UnknownInstrument: 2,\n    /** Not authorized to report trades */\n    Unauthorized: 3,\n    /** Invalid trade type */\n    InvalidTradeType: 4,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type TradeMatchRejectReason = (typeof TradeMatchRejectReason)[keyof typeof TradeMatchRejectReason];\n", "/**\n * Price conditions in effect at the time of the trade. Multiple price conditions can be in effect at the same time. Price conditions are usually required to be reported in markets that have regulations on price execution at a market or national best bid or offer, and the trade price differs from the best bid or offer.\n * - Tag: 1839\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradePriceCondition = Object.freeze({\n    /** Special cum dividend (CD) */\n    SpecialCumDividend: 0,\n    /** Special cum rights (CR) */\n    SpecialCumRights: 1,\n    /** Special ex dividend (XD) */\n    SpecialExDividend: 2,\n    /** Special ex rights (XR) */\n    SpecialExRights: 3,\n    /** Special cum coupon (CC) */\n    SpecialCumCoupon: 4,\n    /** Special cum capital repayments (CP) */\n    SpecialCumCapitalRepayments: 5,\n    /** Special ex coupon (XC) */\n    SpecialExCoupon: 6,\n    /** Special ex capital repayments (XP) */\n    SpecialExCapitalRepayments: 7,\n    /** Cash settlement (CS) */\n    CashSettlement: 8,\n    /** Special cum bonus (CB) */\n    SpecialCumBonus: 9,\n    /** Special price (SP)\n        Usually net or all-in price. */\n    SpecialPrice: 10,\n    /** Special ex bonus (XB) */\n    SpecialExBonus: 11,\n    /** Guaranteed delivery (GD) */\n    GuaranteedDelivery: 12,\n    /** Special dividend\n        Deviation from regular ex/cum treatment (without further specification) leading to price modification. To be used only if it is not clear whether it is a special cum or special ex dividend. For ESMA RTS 1, this is the \"SDIV\" flag. */\n    SpecialDividend: 13,\n    /** Price improvement\n        The price is better than a reference price. For example, this may be due to an offer by a systematic internaliser to always quote better prices than a public reference price. For ESMA RTS 1, this is the \"RPRI\" flag. */\n    PriceImprovement: 14,\n    /** Non-price forming trade\n        In the context of MiFID II, these are transactions which are exempted from the trading obligation (i.e. permitted to be transacted as an OTC transaction) and are deemed not to be contributing to the price discovery process. However, these transactions are not exempted from post trade transparency reporting and are required to be published by MiFID venues and \"approved publication arrangement\" (APAs) for market transparency purposes. The price from exempted transactions should be disregarded for the purposes of price discovery. For ESMA RTS 1 and RTS 2, this is the \"NPFT\" flag. */\n    NonPriceFormingTrade: 15,\n    /** Trade exempted from trading obligation\n        Per MiFIR Article 23, these types of trades are not exempted from post-trade transparency if reported to a trading venue under MiFID II and deemed on exchange, however, they are ignored for price formation despite published by venue. For the UK implementation of MiFIR RTS 1, this is the \"TNCP\" flag. */\n    TradeExemptedFromTradingObligation: 16,\n    /** Price or strike price is pending\n        In the context of MiFIR RTS 1, RTS 2, and RTS 22, this is the \"PNDG\" flag. */\n    PricePending: 17,\n    /** Price is not applicable\n        In the context of MiFIR RTS 1, RTS 2, and RTS 22, this is the \"NOAP\" flag. */\n    PriceNotApplicable: 18,\n} as const);\n\nexport type TradePriceCondition = (typeof TradePriceCondition)[keyof typeof TradePriceCondition];\n", "/**\n * Method used for negotiation of contract price.\n * - Tag: 1740\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradePriceNegotiationMethod = Object.freeze({\n    /** Percent of par */\n    PercentPar: 0,\n    /** Deal spread */\n    DealSpread: 1,\n    /** Upfront points */\n    UpfrontPnts: 2,\n    /** Upfront amount */\n    UpfrontAmt: 3,\n    /** Percent of par and upfront amount */\n    ParUpfrontAmt: 4,\n    /** Deal spread and upfront amount */\n    SpreadUpfrontAmt: 5,\n    /** Upfront points and upfront amount */\n    UpfrontPntsAmt: 6,\n} as const);\n\nexport type TradePriceNegotiationMethod =\n    (typeof TradePriceNegotiationMethod)[keyof typeof TradePriceNegotiationMethod];\n", "/**\n * Indicates if a trade should be or has been published via a market publication service. The indicator governs all publication services of the recipient. Replaces PublishTrdIndicator(852).\n * - Tag: 1390\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradePublishIndicator = Object.freeze({\n    /** Do Not Publish Trade */\n    DoNotPublishTrade: 0,\n    /** Publish Trade */\n    PublishTrade: 1,\n    /** Deferred Publication */\n    DeferredPublication: 2,\n    /** Published\n        Indicates that the transaction has been published to the market. */\n    Published: 3,\n} as const);\n\nexport type TradePublishIndicator = (typeof TradePublishIndicator)[keyof typeof TradePublishIndicator];\n", "/**\n * Indicates the type of trade quantity in TradeQty(1843).\n * - Tag: 1842\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeQtyType = Object.freeze({\n    /** Cleared quantity */\n    ClearedQuantity: 0,\n    /** Long side claimed quantity */\n    LongSideClaimedQuantity: 1,\n    /** Short side claimed quantity */\n    ShortSideClaimedQuantity: 2,\n    /** Long side rejected quantity */\n    LongSideRejectedQuantity: 3,\n    /** Short side rejected quantity */\n    ShortSideRejectedQuantity: 4,\n    /** Pending quantity */\n    PendingQuantity: 5,\n    /** Transaction quantity */\n    TransactionQuantity: 6,\n    /** Remaining trade quantity\n        Used to indicate the remaining quantity of a trade after a give-up or posting action. */\n    RemainingQuantity: 7,\n    /** Previous remaining trade quantity\n        Used to indicate the remaining quantity of a trade prior to a give-up or posting action. */\n    PreviousRemainingQuantity: 8,\n} as const);\n\nexport type TradeQtyType = (typeof TradeQtyType)[keyof typeof TradeQtyType];\n", "/**\n * Used between parties to convey trade reporting status.\n    In the context of regulatory reporting, this field may be used by the reporting party (e.g. party obligated to report to regulators) to inform their trading counterparty or other interested parties the trade reporting status.\n    The term \u201Cauthorised reporter\u201D represents the appropriate reporting firm under applicable regulation. In the context of ESMA reporting, this is the \"Systematic Internaliser\". In the context of FCA reporting, this is the \"Designated Reporter\".\n * - Tag: 2524\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeReportingIndicator = Object.freeze({\n    /** Trade has not (yet) been reported\n        Depending on the regulatory regime the trade is reportable and the recipient may be responsible for reporting. */\n    NotReported: 0,\n    /** Trade has been or will be reported by a trading venue as an \"on-book\" trade */\n    OnBook: 1,\n    /** Trade has or will be reported as a seller trade by the authorised reporter */\n    SISeller: 2,\n    /** Trade has or will be reported as a buyer trade by the authorised reporter */\n    SIBuyer: 3,\n    /** Trade has or will be reported as a seller trade by an entity other than the authorised reporter */\n    NonSISeller: 4,\n    /** Trade has been or will be reported under a sub-delegation arrangement by an investment firm to a reporting facility (e.g. APA) on behalf of another investment firm */\n    SubDelegationByFirm: 5,\n    /** Trade has been or will be reported\n        Depending on the regulatory regime the recipient is not responsible for reporting. */\n    Reportable: 6,\n    /** Trade has been or will be reported as a buyer trade by an entity other than the authorised reporter */\n    NonSIBuyer: 7,\n    /** Trade has been or will be reported by a trading venue as an \"off-book\" trade */\n    OffBook: 8,\n    /** Trade is not reportable\n        The (non-equity) instrument does not need to be reported by any party, e.g. because it is not deemed to have been traded on a trading venue. */\n    NotReportable: 9,\n} as const);\n\nexport type TradeReportingIndicator = (typeof TradeReportingIndicator)[keyof typeof TradeReportingIndicator];\n", "/**\n * Reason Trade Capture Request was rejected.\n    100+ Reserved and available for bi-laterally agreed upon user-defined values.\n * - Tag: 751\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeReportRejectReason = Object.freeze({\n    /** Successful (default) */\n    Successful: 0,\n    /** Invalid party information */\n    InvalidPartyInformation: 1,\n    /** Unknown instrument */\n    UnknownInstrument: 2,\n    /** Unauthorized to report trades */\n    UnauthorizedToReportTrades: 3,\n    /** Invalid trade type */\n    InvalidTradeType: 4,\n    /** Price exceeds current price band */\n    PriceExceedsCurrentPriceBand: 5,\n    /** Reference price not available */\n    ReferencePriceNotAvailable: 6,\n    /** Notional value exceeds threshold */\n    NotionalValueExceedsThreshold: 7,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type TradeReportRejectReason = (typeof TradeReportRejectReason)[keyof typeof TradeReportRejectReason];\n", "/**\n * Identifies Trade Report message transaction type\n    (Prior to FIX 4.4 this field was of type char)\n * - Tag: 487\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeReportTransType = Object.freeze({\n    /** New */\n    New: 0,\n    /** Cancel */\n    Cancel: 1,\n    /** Replace */\n    Replace: 2,\n    /** Release */\n    Release: 3,\n    /** Reverse */\n    Reverse: 4,\n    /** Cancel Due To Back Out of Trade */\n    CancelDueToBackOutOfTrade: 5,\n} as const);\n\nexport type TradeReportTransType = (typeof TradeReportTransType)[keyof typeof TradeReportTransType];\n", "/**\n * Type of Trade Report\n * - Tag: 856\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeReportType = Object.freeze({\n    /** Submit */\n    Submit: 0,\n    /** Alleged */\n    Alleged: 1,\n    /** Accept */\n    Accept: 2,\n    /** Decline */\n    Decline: 3,\n    /** Addendum\n        Used to provide material supplemental data to a previously submitted trade. */\n    Addendum: 4,\n    /** No/Was\n        Used to report a full replacement of a previously submitted trade. */\n    No: 5,\n    /** Trade Report Cancel */\n    TradeReportCancel: 6,\n    /** (Locked-In) Trade Break */\n    LockedIn: 7,\n    /** Defaulted */\n    Defaulted: 8,\n    /** Invalid CMTA */\n    InvalidCMTA: 9,\n    /** Pended */\n    Pended: 10,\n    /** Alleged New */\n    AllegedNew: 11,\n    /** Alleged Addendum */\n    AllegedAddendum: 12,\n    /** Alleged No/Was */\n    AllegedNo: 13,\n    /** Alleged Trade Report Cancel */\n    AllegedTradeReportCancel: 14,\n    /** Alleged (Locked-In) Trade Break */\n    AllegedTradeBreak: 15,\n    /** Verify\n        Used in reports from a trading party to the SDR to confirm trade details. Omit RegulatoryReportType(1934). */\n    Verify: 16,\n    /** Dispute\n        Used in reports from a trading party to the SDR to dispute trade details. Omit RegulatoryReportType(1934). */\n    Dispute: 17,\n    /** Non-material Update\n        Used to provide non-material supplemental data to a previously submitted trade. */\n    NonMaterialUpdate: 18,\n} as const);\n\nexport type TradeReportType = (typeof TradeReportType)[keyof typeof TradeReportType];\n", "/**\n * Result of Trade Request\n * - Tag: 749\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeRequestResult = Object.freeze({\n    /** Successful (default) */\n    Successful: 0,\n    /** Invalid or unknown instrument */\n    InvalidOrUnknownInstrument: 1,\n    /** Invalid type of trade requested */\n    InvalidTypeOfTradeRequested: 2,\n    /** Invalid parties */\n    InvalidParties: 3,\n    /** Invalid transport type requested */\n    InvalidTransportTypeRequested: 4,\n    /** Invalid destination requested */\n    InvalidDestinationRequested: 5,\n    /** TradeRequestType not supported */\n    TradeRequestTypeNotSupported: 8,\n    /** Not authorized */\n    NotAuthorized: 9,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type TradeRequestResult = (typeof TradeRequestResult)[keyof typeof TradeRequestResult];\n", "/**\n * Status of Trade Request.\n * - Tag: 750\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeRequestStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Completed */\n    Completed: 1,\n    /** Rejected */\n    Rejected: 2,\n} as const);\n\nexport type TradeRequestStatus = (typeof TradeRequestStatus)[keyof typeof TradeRequestStatus];\n", "/**\n * Type of Trade Capture Report.\n * - Tag: 569\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeRequestType = Object.freeze({\n    /** All Trades */\n    AllTrades: 0,\n    /** Matched trades matching criteria provided on request (Parties, ExecID, TradeID, OrderID, Instrument, InputSource, etc.) */\n    MatchedTradesMatchingCriteria: 1,\n    /** Unmatched trades that match criteria */\n    UnmatchedTradesThatMatchCriteria: 2,\n    /** Unreported trades that match criteria */\n    UnreportedTradesThatMatchCriteria: 3,\n    /** Advisories that match criteria */\n    AdvisoriesThatMatchCriteria: 4,\n} as const);\n\nexport type TradeRequestType = (typeof TradeRequestType)[keyof typeof TradeRequestType];\n", "/**\n * Code to represent the type of trade.\n * - Tag: 418\n * - FIX Specification type: char\n * - FIX Specification version: FIX42\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TradeType = Object.freeze({\n    /** Agency */\n    Agency: 'A',\n    /** VWAP Guarantee */\n    VWAPGuarantee: 'G',\n    /** Guaranteed Close */\n    GuaranteedClose: 'J',\n    /** Risk Trade */\n    RiskTrade: 'R',\n} as const);\n\nexport type TradeType = (typeof TradeType)[keyof typeof TradeType];\n", "/**\n * Define the type of trade volume applicable for the MinTradeVol(562) and MaxTradeVol(1140)\n * - Tag: 1786\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradeVolType = Object.freeze({\n    /** Number of units (e.g. share, par, currency, contracts) (default) */\n    NumberOfUnits: 0,\n    /** Number of round lots */\n    NumberOfRoundLots: 1,\n} as const);\n\nexport type TradeVolType = (typeof TradeVolType)[keyof typeof TradeVolType];\n", "/**\n * Designates the capacity in which the order is submitted for trading by the market participant.\n * - Tag: 1815\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradingCapacity = Object.freeze({\n    /** Customer */\n    Customer: 1,\n    /** Customer professional */\n    CustomerProfessional: 2,\n    /** Broker-dealer */\n    BrokerDealer: 3,\n    /** Customer broker-dealer */\n    CustomerBrokerDealer: 4,\n    /** Principal */\n    Principal: 5,\n    /** Market maker */\n    MarketMaker: 6,\n    /** Away market maker */\n    AwayMarketMaker: 7,\n    /** Systematic internaliser */\n    SystematicInternaliser: 8,\n} as const);\n\nexport type TradingCapacity = (typeof TradingCapacity)[keyof typeof TradingCapacity];\n", "/**\n * Identifier for a trading session.\n    A trading session spans an extended period of time that can also be expressed informally in terms of the trading day. Usage is determined by market or counterparties.\n    To specify good for session where session spans more than one calendar day, use TimeInForce = 0 (Day) in conjunction with TradingSessionID(336).\n    Bilaterally agreed values of data type \"String\" that start with a character can be used for backward compatibility.\n * - Tag: 336\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TradingSessionID = Object.freeze({\n    /** Day */\n    Day: '1',\n    /** HalfDay */\n    HalfDay: '2',\n    /** Morning */\n    Morning: '3',\n    /** Afternoon */\n    Afternoon: '4',\n    /** Evening */\n    Evening: '5',\n    /** After-hours */\n    AfterHours: '6',\n    /** Holiday */\n    Holiday: '7',\n} as const);\n\nexport type TradingSessionID = (typeof TradingSessionID)[keyof typeof TradingSessionID];\n", "/**\n * Optional market assigned sub identifier for a trading phase within a trading session. Usage is determined by market or counterparties. Used by US based futures markets to identify exchange specific execution time bracket codes as required by US market regulations. Bilaterally agreed values of data type \"String\" that start with a character can be used for backward compatibility\n * - Tag: 625\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TradingSessionSubID = Object.freeze({\n    /** Pre-Trading */\n    PreTrading: '1',\n    /** Opening or opening auction */\n    OpeningOrOpeningAuction: '2',\n    /** (Continuous) Trading */\n    Continuous: '3',\n    /** Closing or closing auction */\n    ClosingOrClosingAuction: '4',\n    /** Post-Trading */\n    PostTrading: '5',\n    /** Scheduled intraday auction */\n    ScheduledIntradayAuction: '6',\n    /** Quiescent */\n    Quiescent: '7',\n    /** Any auction */\n    AnyAuction: '8',\n    /** Unscheduled intraday auction\n        An unscheduled intraday auction might be triggered by a circuit breaker. */\n    UnscheduledIntradayAuction: '9',\n    /** Out of main session trading\n        In the context of Market Model Typology \"Out of main session trading\" refers to both before and after session, neither auction nor continuous trading. */\n    OutOfMainSessionTrading: '10',\n    /** Private auction\n        An auction phase where only two parties participate. */\n    PrivateAuction: '11',\n    /** Public auction\n        An auction phase where all trading parties participate. */\n    PublicAuction: '12',\n    /** Group auction\n        An auction phase limited to specific parties (e.g. parties that have resting orders in the order book). */\n    GroupAuction: '13',\n    /** Order initiated auction\n        Auction automatically triggered by an order, e.g. an incoming order or a resting order that can be matched based on an incoming order. Use 9=\"Unscheduled intraday auction\" for any other auctions that are not scheduled. In the context of Market Model Topology, this can be used for an on demand auction (a.k.a. frequent batched auction). */\n    OrderInitiatedAuction: '14',\n    /** Other\n        In the context of the EU Consolidated Tape, this is used for a trading phase that is not included in the list defined by ESMA. */\n    Other: '99',\n} as const);\n\nexport type TradingSessionSubID = (typeof TradingSessionSubID)[keyof typeof TradingSessionSubID];\n", "/**\n * Indicates how control of trading session and subsession transitions are performed.\n * - Tag: 1785\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradSesControl = Object.freeze({\n    /** Automatic (Default) */\n    Automatic: 0,\n    /** Manual */\n    Manual: 1,\n} as const);\n\nexport type TradSesControl = (typeof TradSesControl)[keyof typeof TradSesControl];\n", "/**\n * Identifies an event related to a TradSesStatus(340). An event occurs and is gone, it is not a state that applies for a period of time.\n * - Tag: 1368\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradSesEvent = Object.freeze({\n    /** Trading resumes (after Halt) */\n    TradingResumes: 0,\n    /** Change of Trading Session */\n    ChangeOfTradingSession: 1,\n    /** Change of Trading Subsession */\n    ChangeOfTradingSubsession: 2,\n    /** Change of Trading Status */\n    ChangeOfTradingStatus: 3,\n} as const);\n\nexport type TradSesEvent = (typeof TradSesEvent)[keyof typeof TradSesEvent];\n", "/**\n * Method of trading\n * - Tag: 338\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradSesMethod = Object.freeze({\n    /** Electronic */\n    Electronic: 1,\n    /** Open Outcry */\n    OpenOutcry: 2,\n    /** Two Party */\n    TwoParty: 3,\n    /** Voice */\n    Voice: 4,\n} as const);\n\nexport type TradSesMethod = (typeof TradSesMethod)[keyof typeof TradSesMethod];\n", "/**\n * Trading Session Mode\n * - Tag: 339\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradSesMode = Object.freeze({\n    /** Testing */\n    Testing: 1,\n    /** Simulated */\n    Simulated: 2,\n    /** Production */\n    Production: 3,\n} as const);\n\nexport type TradSesMode = (typeof TradSesMode)[keyof typeof TradSesMode];\n", "/**\n * State of the trading session.\n * - Tag: 340\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradSesStatus = Object.freeze({\n    /** Unknown */\n    Unknown: 0,\n    /** Halted */\n    Halted: 1,\n    /** Open */\n    Open: 2,\n    /** Closed */\n    Closed: 3,\n    /** Pre-Open */\n    PreOpen: 4,\n    /** Pre-Close */\n    PreClose: 5,\n    /** Request Rejected */\n    RequestRejected: 6,\n    /** Outage */\n    Outage: 7,\n    /** Partial outage */\n    PartialOutage: 8,\n} as const);\n\nexport type TradSesStatus = (typeof TradSesStatus)[keyof typeof TradSesStatus];\n", "/**\n * Indicates the reason a Trading Session Status Request was rejected.\n * - Tag: 567\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TradSesStatusRejReason = Object.freeze({\n    /** Unknown or invalid TradingSessionID */\n    UnknownOrInvalidTradingSessionID: 1,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type TradSesStatusRejReason = (typeof TradSesStatusRejReason)[keyof typeof TradSesStatusRejReason];\n", "/**\n * Type of attribute(s) or characteristic(s) associated with the transaction.\n * - Tag: 2872\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TransactionAttributeType = Object.freeze({\n    /** Exclusive arrangement\n        In the context of securities borrowing and lending transaction, an indication of whether the borrower has exclusive access to borrow from the lender's securities portfolio. Not applicable to commodities. TransactionAttributeValue(2873) takes Y or N value. */\n    ExclusiveArrangement: 0,\n    /** Collateral reuse\n        Indication of whether the collateral taker can reuse the securities provided as collateral for the transaction. TransactionAttributeValue(tbd2873) takes Y or N value. */\n    CollateralReuse: 1,\n    /** Collateral arrangement type\n        In the context of securities financing transactions, indicates the type of collateral arrangement. For EU SFTR reporting, TransactionAttributeValue(2873) may take ESMA assigned values \"TTCA\" (title transfer), \"SICA\" (securities financial interest), or \"SIUR\" (securities financial interest with right of use). */\n    CollateralArrangementType: 2,\n} as const);\n\nexport type TransactionAttributeType = (typeof TransactionAttributeType)[keyof typeof TransactionAttributeType];\n", "/**\n * Reason the transfer instruction was rejected.\n * - Tag: 2443\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TransferRejectReason = Object.freeze({\n    /** Success */\n    Success: 0,\n    /** Invalid party */\n    InvalidParty: 1,\n    /** Unknown instrument */\n    UnknownInstrument: 2,\n    /** Not authorized to submit transfers */\n    UnauthorizedToSubmitXfer: 3,\n    /** Unknown position */\n    UnknownPosition: 4,\n    /** Other */\n    Other: 99,\n} as const);\n\nexport type TransferRejectReason = (typeof TransferRejectReason)[keyof typeof TransferRejectReason];\n", "/**\n * Indicates the type of transfer report.\n * - Tag: 2444\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TransferReportType = Object.freeze({\n    /** Submit */\n    Submit: 0,\n    /** Alleged */\n    Alleged: 1,\n} as const);\n\nexport type TransferReportType = (typeof TransferReportType)[keyof typeof TransferReportType];\n", "/**\n * Indicates the type of transfer.\n * - Tag: 2441\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TransferScope = Object.freeze({\n    /** Inter-firm transfer */\n    InterFirmTransfer: 0,\n    /** Intra-firm transfer */\n    IntraFirmTransfer: 1,\n    /** Clearing Member Trade Assignment */\n    CMTA: 2,\n} as const);\n\nexport type TransferScope = (typeof TransferScope)[keyof typeof TransferScope];\n", "/**\n * Status of the transfer.\n * - Tag: 2442\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TransferStatus = Object.freeze({\n    /** Received */\n    Received: 0,\n    /** Rejected by intermediary */\n    RejectedByIntermediary: 1,\n    /** Accept pending */\n    AcceptPending: 2,\n    /** Accepted */\n    Accepted: 3,\n    /** Declined */\n    Declined: 4,\n    /** Cancelled */\n    Cancelled: 5,\n} as const);\n\nexport type TransferStatus = (typeof TransferStatus)[keyof typeof TransferStatus];\n", "/**\n * Indicates the type of transfer transaction.\n * - Tag: 2439\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TransferTransType = Object.freeze({\n    /** New */\n    New: 0,\n    /** Replace */\n    Replace: 1,\n    /** Cancel */\n    Cancel: 2,\n} as const);\n\nexport type TransferTransType = (typeof TransferTransType)[keyof typeof TransferTransType];\n", "/**\n * Indicates the type of transfer request.\n * - Tag: 2440\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TransferType = Object.freeze({\n    /** Request transfer */\n    RequestTransfer: 0,\n    /** Accept transfer */\n    AcceptTransfer: 1,\n    /** Decline transfer */\n    DeclineTransfer: 2,\n} as const);\n\nexport type TransferType = (typeof TransferType)[keyof typeof TransferType];\n", "/**\n * Used to indicate the status of the trade submission (not the trade report)\n * - Tag: 1523\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TrdAckStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Rejected */\n    Rejected: 1,\n    /** Received */\n    Received: 2,\n} as const);\n\nexport type TrdAckStatus = (typeof TrdAckStatus)[keyof typeof TrdAckStatus];\n", "/**\n * Additional reason for trade publication type specified in TrdRegPublicationType(2669).\n    Reasons may be specific to regulatory trade publication rules.\n * - Tag: 2670\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TrdRegPublicationReason = Object.freeze({\n    /** No preceding order in book as transaction price set within average spread of a liquid instrument\n        Per MiFIR Article 4(1)(b)(i) the obligation to place a public order can be waived for transactions of liquid instruments on \"systems that formalise negotiated transactions which are made within the current volume weighted spread reflected on the order book or the quotes of the market makers of the trading venue operating that system, subject to the conditions set out in Article 5\" of MiFIR on volume caps. \"Liquid markets\" as per MiFIR Article 2(17)(b) are assessed by the regulator for the purposes of MiFIR Articles 4, 5 and 14. For ESMA RTS 1, RTS 6 and RTS 22 this is the waiver \"NLIQ\" flag. */\n    NoBookOrderDueToAverageSpreadPrice: 0,\n    /** No preceding order in book as transaction price depends on system-set reference price for an illiquid instrument\n        Per MiFIR Article 4(1)(b)(ii) the obligation to place a public order can be waived for \"negotiated transactions which are in an illiquid share, depositary receipt, ETF, certificate or other similar financial instrument that does not fall within the meaning of a liquid market, and are dealt within a percentage of a suitable reference price, being a percentage and a reference price set in advance by the system operator.\" For ESMA RTS 1, this is the \"OILQ\" flag. */\n    NoBookOrderDueToRefPrice: 1,\n    /** No preceding order in book as transaction price is for transaction subject to conditions other than current market price\n        Per MiFIR Article 4(1)(b)(iii), the obligation to place a public order can be waived in \"systems that formalise negotiated transactions which are subject to conditions other than the current market price of that financial instrument.\" For ESMA RTS1, RTS 6 and RTS 22 this is the waiver flag \"PRIC\". */\n    NoBookOrderDueToOtherConditions: 2,\n    /** No public price for preceding order as public reference price was used for matching orders\n        Per MiFIR Article 4(1)(a) the obligation to place a public order can be waived for \"systems matching orders based on a trading methodology by which the price of the financial instrument is derived from the trading venue where that financial instrument was first admitted to trading or the most relevant market in terms of liquidity, where that reference price is widely published and is regarded by market participants as a reliable reference price.\" For ESMA RTS 1, RTS 6 and RTS 22 this is the waiver flag \"RFPT\". */\n    NoPublicPriceDueToRefPrice: 3,\n    /** No public price quoted as instrument is illiquid\n        According to MiFIR Article 4(1)(b)(ii) and Article 14(1) the obligation to publish the quote prior to closing the trade may be waived if it was made in an illiquid instrument. However, according to MiFIR Article 14(1) and Article 18(2), systematic internalisers shall still disclose quotes to their clients upon request. This obligation may also be waived in case of bonds, structured finance products, emission allowances and derivatives. For ESMA RTS 1, RTS 2, RTS 6 and RTS 22 this is the waiver flag \"ILQD\". */\n    NoPublicPriceDueToIlliquid: 4,\n    /** No public price quoted due to \"Size\"\n        In the context of ESMA, as per MiFIR Article 4(1)(c) and Article 14(2), the systematic internaliser was not obliged to quote prior to closing the trade as the trade was above the standard market size. In accordance to MiFIR Article 9(1)(b) and Article 18(10), market operators, investment firms and systematic internalisers may be waived, in accordance to guidance from the Competent Authorities, from making public prices for derivative instruments which are above a side specific to the instrument. For ESMA RTS 1, RTS 2, RTS 6 and RTS 22 this is the waiver flag \"SIZE\". */\n    NoPublicPriceDueToOrderSize: 5,\n    /** Deferral due to \"Large in Scale\"\n        Per MiFID Article 14, publication deferral is permitted if the transaction is large in scale compared to a standard market size, as set in RTS 1/Annex II (thresholds for \"large in scale\") and RTS 2/Annex III (\"LIS and SSTI thresholds\"). For ESMA RTS 1 and RTS 2, this is the \"LRGS\" flag. */\n    DeferralDueToLargeInScale: 6,\n    /** Deferral due to \"Illiquid Instrument\"\n        Publication deferral is permitted if the transaction's instrument is illiquid, as defined by regulator's stipulation. For ESMA RTS 2, this is the \"ILQD\" flag. */\n    DeferralDueToIlliquid: 7,\n    /** Deferral due to \"Size Specific\"\n        Per MiFIR Article 11, publication deferral is permitted if the transaction is greater than the stipulated 'Size Specific to the financial instrument' threshold. For ESMA RTS 2, this is the \"SIZE\" flag. */\n    DeferralDueToSizeSpecific: 8,\n    /** No public price and/or size quoted as transaction is \"large in scale\"\n        In the context of ESMA, as per MiFIR Article 4(1)(c) and Article 9(1)(a), the trading venue was not obliged to quote prior to closing the trade as the order size was above normal market size. */\n    NoPublicPriceDueToLargeInScale: 9,\n    /** No public price and/or size quoted due to order being hidden\n        In the context of ESMA, as per MiFIR Article 4(1)(d) and Article 9(1)(a), a transaction arising from an order that was not fully pre-trade transparent due to all or part of it being held in a trading venue order management facility, such as a reserve order. */\n    NoPublicPriceSizeDueToOrderHidden: 10,\n    /** Exempted due to securities financing transaction\n        Per ESMA RTS 22, Annex I, Table 2, Field 65: a transaction which \"falls within the scope of activity but is exempted from reporting under Securities Financing Transaction Regulation\". */\n    ExemptedDueToSecuritiesFinancingTransaction: 11,\n    /** Exempted due to European System of Central Banks (ESCB) policy transaction\n        Per ESMA RTS2, Article 14(1), and Article 15(1): \"A transaction shall be considered to be entered into by a member of the European System of Central Banks (ESCB) in performance of monetary, foreign exchange and financial stability policy [is exempted from publication] \u2026 [The regulation] shall not apply to the following types of transaction entered into by a member of the ESCB for the performance of one of the tasks referred to in Article 14: transaction entered into for the management of its own funds; transaction entered into for administrative purposes or for the staff of the member of the ESCB which include transactions conducted in the capacity as administrator of a pension scheme for its staff; transactions entered into for its investment portfolio pursuant to obligations under national law.\" */\n    ExemptedDueToESCBPolicyTransaction: 12,\n    /** Exception due to report by paper\n        Incomplete report due to submission by paper (form). In the context of US CAT this is Form T pursuant to FINRA Trade Reporting Rules. */\n    ExceptionDueToReportByPaper: 13,\n    /** Exception due to trade with non-reporting party\n        Incomplete report due to counterparty of the reporting party being absent. In the context of US CAT this is when a trade was executed by a non-FINRA member and reported to the TRF by the FINRA member counterparty. */\n    ExceptionDueToTradeExecutedWithNonReportingParty: 14,\n    /** Exception due to intra-firm order\n        Incomplete report due to intra\u2013firm order filled from firm\u2019s proprietary account. */\n    ExceptionDueToIntraFirmOrder: 15,\n    /** Reported outside of reporting hours\n        In the context of ESMA, trades published after the trade reporting facility being used (e.g. APA for trades brought onto a trading venue) closes, will be reported the following business day and not flagged as deferred (as the MiFID deferral regime is not applicable). This value distinguishes these types of trades from trades executed (and published) on the same business day. It is recommended that this value be set by the trade reporting facility, e.g. APAs, (as opposed to publishing investment firms) to ensure the most accurate use of this value. */\n    ReportedOutsideReportingHours: 16,\n    /** No public price quoted due to usage of a pre-trade transparency waiver\n        Per FCA policy statement PS23/4, this is the \"NETW\" flag for negotiated trades in accordance to MiFIR Article 4(1)(b). */\n    NoPublicPxDueToPreTradeWaiver: 17,\n    /** Deferral due to medium liquid instrument\n        In the context of the EU Consolidated Tape, this is used for the post-trade deferral flag MLF1. */\n    DeferralDueToMediumLiquidInstrument: 18,\n    /** Deferral due to medium illiquid instrument\n        In the context of the EU Consolidated Tape, this is used for the post-trade deferral flag MIF2. */\n    DeferralDueToMediumIlliquidInstrument: 19,\n    /** Deferral due to large liquid instrument\n        In the context of the EU Consolidated Tape, this is used for the post-trade deferral flag LLF3. */\n    DeferralDueToLargeLiquidInstrument: 20,\n    /** Deferral due to large illiquid instrument\n        In the context of the EU Consolidated Tape, this is used for the post-trade deferral flag LIF4. */\n    DeferralDueToLargeIlliquidInstrument: 21,\n    /** Deferral due to very large liquid instrument\n        In the context of the EU Consolidated Tape, this is used for the post-trade deferral flag VLF5. */\n    DeferralDueToVeryLargeLiquidInstrument: 22,\n    /** Deferral due to very large illiquid instrument\n        In the context of the EU Consolidated Tape, this is used for the post-trade deferral flag VIF5. */\n    DeferralDueToVeryLargeIlliquidInstrument: 23,\n    /** Deferral due to asset class\n        In the context of the EU Consolidated Tape, this is used for the post-trade deferral flag DEFF. */\n    DeferralDueToAssetClass: 24,\n} as const);\n\nexport type TrdRegPublicationReason = (typeof TrdRegPublicationReason)[keyof typeof TrdRegPublicationReason];\n", "/**\n * Specifies the type of regulatory trade publication.\n    Additional reasons for the publication type may be specified in TrdRegPublicationReason(2670).\n * - Tag: 2669\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TrdRegPublicationType = Object.freeze({\n    /** Pre-trade transparency waiver\n        There are allowable waivers from the obligation to make public current bid/offer prices and trading depth. In the context of MiFIR, see Article 3 and Article 4. */\n    PreTradeTransparencyWaiver: 0,\n    /** Post-trade deferral\n        There are allowable deferrals for the post-trade publication of trade transactions. In the context of MiFIR, see Article 7(1). */\n    PostTradeDeferral: 1,\n    /** Exempt from publication\n        There are allowable exemptions for the post-trade publication of trade transactions. In the context of ESMA exemptions are specified in RTS 22 Annex I, Table 2, Field 65 and RTS 2 Article 14(1) and Article 15(1). */\n    ExemptFromPublication: 2,\n    /** Order level publication to subscribers\n        Individual orders are displayed outside of the execution venue but only to subscribers. In the context of US CAT this can be used by Alternative Trading Systems (ATSs) to provide additional information related to price distribution. */\n    OrderLevelPublicationToSubscribers: 3,\n    /** Price level publication to subscribers\n        Aggregated orders are displayed outside of the execution venue but only to subscribers. In the context of US CAT this can be used by Alternative Trading Systems (ATSs) to provide additional information related to price distribution. */\n    PriceLevelPublicationToSubscribers: 4,\n    /** Order level publication to the public\n        Individual orders are displayed outside of the execution venue via public quotation. In the context of US CAT this can be used by Alternative Trading Systems (ATSs) to provide additional information related to price distribution. */\n    OrderLevelPublicationToThePublic: 5,\n    /** Publication internal to execution venue\n        Orders are not displayed outside of the execution venue. In the context of US CAT this can be used by Alternative Trading Systems (ATSs) to provide additional information related to price distribution. */\n    PublicationInternalToExecutionVenue: 6,\n} as const);\n\nexport type TrdRegPublicationType = (typeof TrdRegPublicationType)[keyof typeof TrdRegPublicationType];\n", "/**\n * Indicates whether a given timestamp was manually captured.\n * - Tag: 2839\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TrdRegTimestampManualIndicator = Object.freeze({\n    /** Not manually captured */\n    NotManuallyCaptured: 'N',\n    /** Manually captured */\n    ManuallyCaptured: 'Y',\n} as const);\n\nexport type TrdRegTimestampManualIndicator =\n    (typeof TrdRegTimestampManualIndicator)[keyof typeof TrdRegTimestampManualIndicator];\n", "/**\n * Trading / Regulatory timestamp type.\n    Note of applicability: Values are required in various regulatory environments: required for US futures markets to support computerized trade reconstruction, required by MiFID II / MiFIR for transaction reporting and publication, required by FINRA for reporting to the Consolidated Audit Trail (CAT), and required by SEC for recordkeeping requirements in the context of T+1.\n * - Tag: 770\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TrdRegTimestampType = Object.freeze({\n    /** Execution time\n        Timestamp for the order execution. In the context of US futures markets (CFTC regulated) this is the non-qualified reporting time of order execution. */\n    ExecutionTime: 1,\n    /** Time in\n        Timestamp for receiving an order, quote or trade. In the context of US futures markets (CFTC) this is the timestamp of when the order was received on the trading floor (booth). */\n    TimeIn: 2,\n    /** Time out\n        Timestamp for sending an order, quote or trade. In the context of US futures markets (CFTC) this is the timestamp when the trade was received from the pit. */\n    TimeOut: 3,\n    /** Broker receipt\n        Timestamp for a broker receiving an order, quote or trade. In the context of US futures markets (CFTC) this is the time at which the broker received the order. */\n    BrokerReceipt: 4,\n    /** Broker execution\n        Timestamp for the broker executing an order. In the context of US futures markets (CFTC regulated) this is the time at which a broker executed the order for another broker. */\n    BrokerExecution: 5,\n    /** Desk receipt\n        Timestamp for the transmission of an order to an internal desk or department on the same day the firm received the order. */\n    DeskReceipt: 6,\n    /** Submission to clearing\n        The timestamp when the trade was officially acknowledged by the Clearing House. */\n    SubmissionToClearing: 7,\n    /** Time priority\n        A timestamp (manually or electronically) assigned by a market to specify time priority for an order or quote. */\n    TimePriority: 8,\n    /** Orderbook entry time\n        Timestamp for an order representing the time it was entered in the orderbook of the execution venue. The orderbook entry time cannot change during the lifetime of the order. */\n    OrderbookEntryTime: 9,\n    /** Order submission time\n        Time the order was sent by the submitter. */\n    OrderSubmissionTime: 10,\n    /** Publicly reported\n        In the context of MiFID II, this is used to identify the time at which the transaction was first published to the market. */\n    PubliclyReported: 11,\n    /** Public report updated\n        In the context of MiFID II, this is used to identify the time at which the transaction's publication to the market was last updated */\n    PublicReportUpdated: 12,\n    /** Non-publicly reported */\n    NonPubliclyReported: 13,\n    /** Non-public report updated */\n    NonPublicReportUpdated: 14,\n    /** Submitted for confirmation */\n    SubmittedForConfirmation: 15,\n    /** Updated for confirmation */\n    UpdatedForConfirmation: 16,\n    /** Confirmed */\n    Confirmed: 17,\n    /** Updated for clearing */\n    UpdatedForClearing: 18,\n    /** Cleared */\n    Cleared: 19,\n    /** Allocations submitted */\n    AllocationsSubmitted: 20,\n    /** Allocations updated */\n    AllocationsUpdated: 21,\n    /** Allocations completed */\n    AllocationsCompleted: 22,\n    /** Submitted to repository */\n    SubmittedToRepository: 23,\n    /** Post-trade continuation event */\n    PostTrdContntnEvnt: 24,\n    /** Post-trade valuation */\n    PostTradeValuation: 25,\n    /** Previous time priority\n        Can be used in conjunction with TrdRegTimestampType(770) = 8 (Time priority) to provide the current and last priority timestamp in a single message. */\n    PreviousTimePriority: 26,\n    /** Identifier assigned\n        Timestamp for the assignment of a (unique) identifier to an entity (e.g. order, quote, trade). */\n    IdentifierAssigned: 27,\n    /** Previous identifier assigned\n        Timestamp of previous assignment of a (unique) identifier to an entity (e.g. order, quote, trade). */\n    PreviousIdentifierAssigned: 28,\n    /** Order cancellation time\n        Timestamp for the cancellation of an order or quote. */\n    OrderCancellationTime: 29,\n    /** Order modification time\n        Timestamp for the modification of an order or quote. */\n    OrderModificationTime: 30,\n    /** Order routing time\n        Timestamp for the routing of an order to another broker or electronic execution venue. */\n    OrderRoutingTime: 31,\n    /** Trade cancellation time\n        Timestamp for the cancellation of an execution (ExecType(150) = H (Trade Cancel)) or trade (TradeReportType(856) = 6 (Trade Report Cancel)). */\n    TradeCancellationTime: 32,\n    /** Trade modification time\n        Timestamp for the modification of an execution (ExecType(150) = G (Trade Correct)) or trade (TradeReportType(856) = 5 (No/Was)). */\n    TradeModificationTime: 33,\n    /** Reference time for BBO\n        Timestamp for a BBO (best bid/offer) reference price at the level of a national or regional jurisdiction. The national or regional jurisdiction scope should be clarified by the implementation(s) using this code value. */\n    ReferenceTimeForBBO: 34,\n    /** Affirmed */\n    Affirmed: 35,\n    /** Update time\n        Timestamp for the last update, e.g. to an aggregated book or to the indicative price or volume of an auction. */\n    UpdateTime: 36,\n} as const);\n\nexport type TrdRegTimestampType = (typeof TrdRegTimestampType)[keyof typeof TrdRegTimestampType];\n", "/**\n * Trade Report Status\n * - Tag: 939\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TrdRptStatus = Object.freeze({\n    /** Accepted */\n    Accepted: 0,\n    /** Rejected */\n    Rejected: 1,\n    /** Cancelled */\n    Cancelled: 2,\n    /** Accepted with errors */\n    AcceptedWithErrors: 3,\n    /** Pending New */\n    PendingNew: 4,\n    /** Pending Cancel */\n    PendingCancel: 5,\n    /** Pending Replace */\n    PendingReplace: 6,\n    /** Terminated */\n    Terminated: 7,\n    /** Pending verification\n        Used in reports from the SDR to the regulator and to trading parties to indicate that the trade details have not been verified by one or both parties. */\n    PendingVerification: 8,\n    /** Deemed verified\n        Used in reports from the SDR to the regulator and to trading parties to indicate that the trade details are deemed verified by the SDR but have not been confirmed by the trading parties. */\n    DeemedVerified: 9,\n    /** Verified\n        Used in reports from the SDR to the regulator and to trading parties to indicate that the trade details have been confirmed by the trading parties. */\n    Verified: 10,\n    /** Disputed\n        Used in reports from the SDR to the regulator and to trading parties to indicate that the trade details have been disputed by a trading party. */\n    Disputed: 11,\n} as const);\n\nexport type TrdRptStatus = (typeof TrdRptStatus)[keyof typeof TrdRptStatus];\n", "/**\n * Further qualification to the trade type defined in TrdType(828).\n * - Tag: 829\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TrdSubType = Object.freeze({\n    /** CMTA */\n    CMTA: 0,\n    /** Internal transfer or adjustment */\n    InternalTransferOrAdjustment: 1,\n    /** External transfer or transfer of account */\n    ExternalTransferOrTransferOfAccount: 2,\n    /** Reject for submitting side */\n    RejectForSubmittingSide: 3,\n    /** Advisory for contra side */\n    AdvisoryForContraSide: 4,\n    /** Offset due to an allocation */\n    OffsetDueToAnAllocation: 5,\n    /** Onset due to an allocation */\n    OnsetDueToAnAllocation: 6,\n    /** Differential spread */\n    DifferentialSpread: 7,\n    /** Implied spread leg executed against an outright */\n    ImpliedSpreadLegExecutedAgainstAnOutright: 8,\n    /** Transaction from exercise */\n    TransactionFromExercise: 9,\n    /** Transaction from assignment */\n    TransactionFromAssignment: 10,\n    /** ACATS */\n    ACATS: 11,\n    /** AI (Automated input facility disabled in response to an exchange request.) */\n    AI: 14,\n    /** B (Transaction between two member firms where neither member firm is registered as a market maker in the security in question and neither is a designated fund manager. Also used by broker dealers when dealing with another broker which is not a member firm. Non-order book securities only.) */\n    B: 15,\n    /** K (Transaction using block trade facility.) */\n    K: 16,\n    /** LC (Correction submitted more than three days after publication of the original trade report.) */\n    LC: 17,\n    /** M (Transaction, other than a transaction resulting from a stock swap or stock switch, between two market makers registered in that security including IDB or a public display system trades. Non-order book securities only.) */\n    M: 18,\n    /** N (Non-protected portfolio transaction or a fully disclosed portfolio transaction) */\n    N: 19,\n    /** NM ( i) transaction where Exchange has granted permission for non-publication\n        ii)IDB is reporting as seller\n        iii) submitting a transaction report to the Exchange, where the transaction report is not also a trade report.) */\n    NM: 20,\n    /** NR (Non-risk transaction in a SEATS security other than an AIM security) */\n    NR: 21,\n    /** P (Protected portfolio transaction or a worked principal agreement to effect a portfolio transaction which includes order book securities) */\n    P: 22,\n    /** PA (Protected transaction notification) */\n    PA: 23,\n    /** PC (Contra trade for transaction which took place on a previous day and which was automatically executed on the Exchange trading system) */\n    PC: 24,\n    /** PN (Worked principal notification for a portfolio transaction which includes order book securities) */\n    PN: 25,\n    /** R ( (i) riskless principal transaction between non-members where the buying and selling transactions are executed at different prices or on different terms (requires a trade report with trade type indicator R for each transaction)\n        (ii) market maker is reporting all the legs of a riskless principal transaction where the buying and selling transactions are executed at different prices (requires a trade report with trade type indicator R for each transaction)or\n        (iii) market maker is reporting the onward leg of a riskless principal transaction where the legs are executed at different prices, and another market maker has submitted a trade report using trade type indicator M for the first leg (this requires a single trade report with trade type indicator R).) */\n    R: 26,\n    /** RO (Transaction which resulted from the exercise of a traditional option or a stock-settled covered warrant) */\n    RO: 27,\n    /** RT (Risk transaction in a SEATS security, (excluding AIM security) reported by a market maker registered in that security) */\n    RT: 28,\n    /** SW (Transactions resulting from stock swap or a stock switch (one report is required for each line of stock)) */\n    SW: 29,\n    /** T (If reporting a single protected transaction) */\n    T: 30,\n    /** WN (Worked principal notification for a single order book security) */\n    WN: 31,\n    /** WT (Worked principal transaction (other than a portfolio transaction)) */\n    WT: 32,\n    /** Off Hours Trade */\n    OffHoursTrade: 33,\n    /** On Hours Trade */\n    OnHoursTrade: 34,\n    /** OTC Quote */\n    OTCQuote: 35,\n    /** Converted SWAP */\n    ConvertedSWAP: 36,\n    /** Crossed Trade (X) */\n    CrossedTrade: 37,\n    /** Interim Protected Trade (I) */\n    InterimProtectedTrade: 38,\n    /** Large in Scale (L) */\n    LargeInScale: 39,\n    /** Wash Trade */\n    WashTrade: 40,\n    /** Trade at Settlement (TAS)\n        Identifies a trade that will be priced using the settlement price. */\n    TradeAtSettlement: 41,\n    /** Auction Trade\n        Mutually exclusive with TrdSubType(829) = 50 (Balancing). */\n    AuctionTrade: 42,\n    /** Trade at Marker (TAM)\n        Posted at a specific time each day and used to price the consummated trade for the product/month/strip executed (+/- and differentials). Closely related to TAS trades in function and trade practice. */\n    TradeAtMarker: 43,\n    /** Default (Credit Event) */\n    CreditDefault: 44,\n    /** Restructuring (credit event) */\n    CreditRestructuring: 45,\n    /** Merger (succession event) */\n    Merger: 46,\n    /** Spin-off (succession event) */\n    SpinOff: 47,\n    /** Multilateral compression\n        Used to identify a special case of compression between multiple parties, e.g. for netted or portfolio trades. */\n    MultilateralCompression: 48,\n    /** Balancing\n        Identifies an additional trade distributed to auction participants meant to resolve an imbalance between bids and offers.\n        Mutually exclusive with TrdSubType(829) = 42 =(Auction). */\n    Balancing: 50,\n    /** Basis Trade index Close (BTIC)\n        The marketplace name given to Trade at Marker (TAM) transactions in equity index futures. */\n    BasisTradeIndexClose: 51,\n    /** Trade At Cash Open (TACO)\n        The marketplace name given to trading futures based on an opening quote of the underlying cash market. */\n    TradeAtCashOpen: 52,\n    /** Trade submitted to venue for clearing and settlement\n        Identifies trades brought on a trading venue purely for clearing and settlement purposes. */\n    TrdSubmitVenueClrSettl: 53,\n    /** Bilateral compression\n        Used to identify a special case of compression between two parties, e.g. for netted or portfolio trades. */\n    BilateralCompression: 54,\n} as const);\n\nexport type TrdSubType = (typeof TrdSubType)[keyof typeof TrdSubType];\n", "/**\n * Type of trade assigned to a trade. SecondaryTrdType(855) and TertiaryTrdType(2896) may be used in addition to TrdType(828) to assign up to three different trade types to a single trade.\n    Note: several enumerations of this field duplicate the enumerations in TradePriceCondition(1839) field. These may be deprecated from TrdType(828) in the future. TradePriceCondition(1839) is preferred in messages that support it.\n * - Tag: 828\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TrdType = Object.freeze({\n    /** Regular trade */\n    RegularTrade: 0,\n    /** Block trade */\n    BlockTrade: 1,\n    /** Exchange for physical (EFP) */\n    EFP: 2,\n    /** Transfer */\n    Transfer: 3,\n    /** Late trade */\n    LateTrade: 4,\n    /** T trade */\n    TTrade: 5,\n    /** Weighted average price trade */\n    WeightedAveragePriceTrade: 6,\n    /** Bunched trade */\n    BunchedTrade: 7,\n    /** Late bunched trade */\n    LateBunchedTrade: 8,\n    /** Prior reference price trade */\n    PriorReferencePriceTrade: 9,\n    /** After hours trade */\n    AfterHoursTrade: 10,\n    /** Exchange for risk (EFR) */\n    ExchangeForRisk: 11,\n    /** Exchange for swap (EFS) */\n    ExchangeForSwap: 12,\n    /** Exchange of futures for in market futures (EFM)\n        For example full sized for mini. */\n    ExchangeOfFuturesFor: 13,\n    /** Exchange of options for options (EOO) */\n    ExchangeOfOptionsForOptions: 14,\n    /** Trading at settlement */\n    TradingAtSettlement: 15,\n    /** All or none */\n    AllOrNone: 16,\n    /** Futures large order execution */\n    FuturesLargeOrderExecution: 17,\n    /** Exchange of futures for external market futures (EFF) */\n    ExchangeOfFuturesForFutures: 18,\n    /** Option interim trade */\n    OptionInterimTrade: 19,\n    /** Option cabinet trade */\n    OptionCabinetTrade: 20,\n    /** Privately negotiated trade */\n    PrivatelyNegotiatedTrades: 22,\n    /** Substitution of futures for forwards */\n    SubstitutionOfFuturesForForwards: 23,\n    /** Error trade */\n    ErrorTrade: 24,\n    /** Special cum dividend (CD) */\n    SpecialCumDividend: 25,\n    /** Special ex dividend (XD) */\n    SpecialExDividend: 26,\n    /** Special cum coupon (CC) */\n    SpecialCumCoupon: 27,\n    /** Special ex coupon (XC) */\n    SpecialExCoupon: 28,\n    /** Cash settlement (CS) */\n    CashSettlement: 29,\n    /** Special price (SP)\n        Usually net or all-in price. */\n    SpecialPrice: 30,\n    /** Guaranteed delivery (GD) */\n    GuaranteedDelivery: 31,\n    /** Special cum rights (CR) */\n    SpecialCumRights: 32,\n    /** Special ex rights (XR) */\n    SpecialExRights: 33,\n    /** Special cum capital repayments (CP) */\n    SpecialCumCapitalRepayments: 34,\n    /** Special ex capital repayments (XP) */\n    SpecialExCapitalRepayments: 35,\n    /** Special cum bonus (CB) */\n    SpecialCumBonus: 36,\n    /** Special ex bonus (XB) */\n    SpecialExBonus: 37,\n    /** Block trade\n        The same as large trade. */\n    LargeTrade: 38,\n    /** Worked principal trade */\n    WorkedPrincipalTrade: 39,\n    /** Block trades */\n    BlockTrades: 40,\n    /** Name change */\n    NameChange: 41,\n    /** Portfolio transfer */\n    PortfolioTransfer: 42,\n    /** Prorogation buy\n        Used by Euronext Paris only. Is used to defer settlement under French SRD (deferred settlement system). Trades must be reported as crosses at zero price. */\n    ProrogationBuy: 43,\n    /** Prorogation sell\n        See prorogation buy. */\n    ProrogationSell: 44,\n    /** Option exercise */\n    OptionExercise: 45,\n    /** Delta neutral transaction */\n    DeltaNeutralTransaction: 46,\n    /** Financing transaction */\n    FinancingTransaction: 47,\n    /** Non-standard settlement */\n    NonStandardSettlement: 48,\n    /** Derivative related transaction */\n    DerivativeRelatedTransaction: 49,\n    /** Portfolio trade\n        Identifies a collection/basket of trades. In the context of bonds (e.g. corporate bonds) these are transacted as a single trade at an aggregate price for the entire portfolio and may be traded all-or-none or most-or-none depending on bilateral agreement.\n        In the context of ESMA RTS 1 Article 2(b), may be used to refer to portfolio trades to distinguish between addressable and non-addressable volume.\n        In the context of Market Model Typology (MMT), use of this value applies to SecondaryTrdType(855) or TertiaryTrdType(2896), and when used for MMT market data publication requires MDEntryType(269) = 2 (Trade). */\n    PortfolioTrade: 50,\n    /** Volume weighted average trade */\n    VolumeWeightedAverageTrade: 51,\n    /** Exchange granted trade */\n    ExchangeGrantedTrade: 52,\n    /** Repurchase agreement */\n    RepurchaseAgreement: 53,\n    /** OTC\n        Trade executed off-market. In the context of CFTC regulatory reporting for swaps, it is a large notional off-facility swap. In the context of MiFID transparency reporting rules this is used to report, into an exchange, deals made outside exchange rules. */\n    OTC: 54,\n    /** Exchange basis facility (EBF) */\n    ExchangeBasisFacility: 55,\n    /** Opening trade\n        Identifies a trade that resulted from the opening of a market. In the context of IIROC, this indicates a trade that occurred at the opening or the first trade of the day for a security. */\n    OpeningTrade: 56,\n    /** Netted trade */\n    NettedTrade: 57,\n    /** Block swap trade\n        Block trade executed off-market or on a registered market. In the context of CFTC regulatory reporting for swaps, it is a swap executed according to SEF or DCM rules. */\n    BlockSwapTrade: 58,\n    /** Credit event trade */\n    CreditEventTrade: 59,\n    /** Succession event trade */\n    SuccessionEventTrade: 60,\n    /** Give-up Give-in trade */\n    GiveUpGiveInTrade: 61,\n    /** Dark trade\n        In the context of Market Model Typology (MMT), a dark trade might also come from a lit/hybrid book (e.g. when an aggressive lit order hits a resting dark order). The use of this value applies to TrdType(828), and when used for MMT market data publication requires MDEntryType(269) = 2 (Trade). */\n    DarkTrade: 62,\n    /** Technical trade */\n    TechnicalTrade: 63,\n    /** Benchmark\n        In the context of ESMA RTS 1 Article 2(a), may be used to refer to benchmark trades.\n        In the context of Market Model Typology (MMT), the \"benchmark\" price depends on a benchmark which has no current price but was derived from a time series such as a VWAP. The use of this value applies to SecondaryTrdType(855) or TertiaryTrdType(2896), and when used for MMT market data publication requires MDEntryType(269) = 2 (Trade). */\n    Benchmark: 64,\n    /** Package trade\n        May be used to identify the pseudo-trade of a stream or collection of trades to be transacted, cleared and be reported as an atomic unit.\n        In the context of MiFIR RTS 1, this is the \"CONT\" flag.\n        In the context of MiFIR RTS 2 Article 1(1)(b), may be used to refer to package transactions (excluding exchange for physicals).\n        In the context of Market Model Typology (MMT), use of this value applies to SecondaryTrdType(855) or TertiaryTrdType(2896), and when used for MMT market data publication requires MDEntryType(269) = 2 (Trade). */\n    PackageTrade: 65,\n    /** Roll trade\n        Trade is a roll from one contract that is about to expire to a new contract. */\n    RollTrade: 66,\n    /** Closing price trade\n        Identifies a trade that uses the closing price of a market without resulting from the closing of this market. In the context of FCA policy statement PS23/4, this indicates a benchmark transaction executed using the market closing price and is the \"CLSE\" flag. */\n    ClosingPriceTrade: 67,\n    /** Inter-fund transfer trade\n        Administrative trade (non price-forming) related to the transfer of ownership between funds. */\n    InterFundTransferTrade: 68,\n    /** Net asset value calculated trade\n        Trade of a fund priced at the net asset value of its constituents. In the context of MiFIR RTS 1, this may be used for ETFs when the NAV price becomes available. */\n    NetAssetValueCalculatedTrade: 69,\n} as const);\n\nexport type TrdType = (typeof TrdType)[keyof typeof TrdType];\n", "/**\n * Defines the type of action to take when the trigger hits.\n * - Tag: 1101\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TriggerAction = Object.freeze({\n    /** Activate */\n    Activate: '1',\n    /** Modify */\n    Modify: '2',\n    /** Cancel */\n    Cancel: '3',\n} as const);\n\nexport type TriggerAction = (typeof TriggerAction)[keyof typeof TriggerAction];\n", "/**\n * Indicates whether order has been triggered during its lifetime. Applies to cases where original information, e.g. OrdType(40), is modified when the order is triggered.\n * - Tag: 1823\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const Triggered = Object.freeze({\n    /** Not triggered (default) */\n    NotTriggered: 0,\n    /** Triggered */\n    Triggered: 1,\n    /** Stop order triggered */\n    StopOrderTriggered: 2,\n    /** One Cancels the Other (OCO) order triggered */\n    OCOOrderTriggered: 3,\n    /** One Triggers the Other (OTO) order triggered */\n    OTOOrderTriggered: 4,\n    /** One Updates the Other (OUO) order triggered */\n    OUOOrderTriggered: 5,\n} as const);\n\nexport type Triggered = (typeof Triggered)[keyof typeof Triggered];\n", "/**\n * The OrdType the order should have after the trigger has hit. Required to express orders that change from Limit to Market. Other values from OrdType (40) may be used if appropriate and bilaterally agreed upon.\n * - Tag: 1111\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TriggerOrderType = Object.freeze({\n    /** Market */\n    Market: '1',\n    /** Limit */\n    Limit: '2',\n} as const);\n\nexport type TriggerOrderType = (typeof TriggerOrderType)[keyof typeof TriggerOrderType];\n", "/**\n * The side from which the trigger price is reached.\n * - Tag: 1109\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TriggerPriceDirection = Object.freeze({\n    /** Trigger if the price of the specified type goes UP to or through the specified Trigger Price. */\n    Up: 'U',\n    /** Trigger if the price of the specified type goes DOWN to or through the specified Trigger Price. */\n    Down: 'D',\n} as const);\n\nexport type TriggerPriceDirection = (typeof TriggerPriceDirection)[keyof typeof TriggerPriceDirection];\n", "/**\n * The type of price that the trigger is compared to.\n * - Tag: 1107\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TriggerPriceType = Object.freeze({\n    /** Best Offer */\n    BestOffer: '1',\n    /** Last Trade */\n    LastTrade: '2',\n    /** Best Bid */\n    BestBid: '3',\n    /** Best Bid or Last Trade */\n    BestBidOrLastTrade: '4',\n    /** Best Offer or Last Trade */\n    BestOfferOrLastTrade: '5',\n    /** Best Mid */\n    BestMid: '6',\n} as const);\n\nexport type TriggerPriceType = (typeof TriggerPriceType)[keyof typeof TriggerPriceType];\n", "/**\n * Defines the type of price protection the customer requires on their order.\n * - Tag: 1108\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TriggerPriceTypeScope = Object.freeze({\n    /** None */\n    None: '0',\n    /** Local (Exchange, ECN, ATS) */\n    Local: '1',\n    /** National (Across all national markets) */\n    National: '2',\n    /** Global (Across all markets) */\n    Global: '3',\n} as const);\n\nexport type TriggerPriceTypeScope = (typeof TriggerPriceTypeScope)[keyof typeof TriggerPriceTypeScope];\n", "/**\n * Defines the scope of TriggerAction(1101) when it is set to \"cancel\" (3).\n * - Tag: 1628\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const TriggerScope = Object.freeze({\n    /** This order (default) */\n    ThisOrder: 0,\n    /** Other order (use RefID) */\n    OtherOrder: 1,\n    /** All other orders for the given security */\n    AllOtherOrdersForGivenSecurity: 2,\n    /** All other orders for the given security and price */\n    AllOtherOrdersForGivenSecurityAndPrice: 3,\n    /** All other orders for the given security and side */\n    AllOtherOrdersForGivenSecurityAndSide: 4,\n    /** All other orders for the given security, price and side */\n    AllOtherOrdersForGivenSecurityPriceAndSide: 5,\n} as const);\n\nexport type TriggerScope = (typeof TriggerScope)[keyof typeof TriggerScope];\n", "/**\n * Defines when the trigger will hit, i.e. the action specified by the trigger instructions will come into effect.\n * - Tag: 1100\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const TriggerType = Object.freeze({\n    /** Partial Execution */\n    PartialExecution: '1',\n    /** Specified Trading Session */\n    SpecifiedTradingSession: '2',\n    /** Next Auction */\n    NextAuction: '3',\n    /** Price Movement */\n    PriceMovement: '4',\n    /** On Order Entry or order modification entry */\n    OnOrderEntryOrModification: '5',\n} as const);\n\nexport type TriggerType = (typeof TriggerType)[keyof typeof TriggerType];\n", "/**\n * Used for derivatives that deliver into cash underlying.\n * - Tag: 974\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const UnderlyingCashType = Object.freeze({\n    /** FIXED */\n    FIXED: 'FIXED',\n    /** DIFF */\n    DIFF: 'DIFF',\n} as const);\n\nexport type UnderlyingCashType = (typeof UnderlyingCashType)[keyof typeof UnderlyingCashType];\n", "/**\n * Specifies whether the UnderlyingFxRate(1045) should be multiplied or divided.\n * - Tag: 1046\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const UnderlyingFXRateCalc = Object.freeze({\n    /** Divide */\n    Divide: 'D',\n    /** Multiply */\n    Multiply: 'M',\n} as const);\n\nexport type UnderlyingFXRateCalc = (typeof UnderlyingFXRateCalc)[keyof typeof UnderlyingFXRateCalc];\n", "/**\n * Specifies the conditions that govern the adjustment to the number of units of the return swap.\n * - Tag: 2617\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const UnderlyingNotionalAdjustments = Object.freeze({\n    /** Execution\n        The adjustments to the number of units are governed by an execution clause. */\n    Execution: 0,\n    /** Portfolio rebalancing\n        The adjustments to the number of units are governed by a portfolio rebalancing clause. */\n    PortfolioRebalancing: 1,\n    /** Standrd\n        The adjustments to the number of units are not governed by any specific clause. */\n    Standard: 2,\n} as const);\n\nexport type UnderlyingNotionalAdjustments =\n    (typeof UnderlyingNotionalAdjustments)[keyof typeof UnderlyingNotionalAdjustments];\n", "/**\n * Type of reference obligation for credit derivatives contracts.\n * - Tag: 2012\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const UnderlyingObligationType = Object.freeze({\n    /** Bond */\n    Bond: '0',\n    /** Convertible bond */\n    ConvertibleBond: '1',\n    /** Mortgage */\n    Mortgage: '2',\n    /** Loan */\n    Loan: '3',\n} as const);\n\nexport type UnderlyingObligationType = (typeof UnderlyingObligationType)[keyof typeof UnderlyingObligationType];\n", "/**\n * Specifies how the underlying price is determined at the point of option exercise. The underlying price may be set to the current settlement price, set to a special reference, set to the optimal value of the underlying during the defined period (\"Look-back\") or set to the average value of the underlying during the defined period (\"Asian option\").\n * - Tag: 1481\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const UnderlyingPriceDeterminationMethod = Object.freeze({\n    /** Regular */\n    Regular: 1,\n    /** Special reference */\n    SpecialReference: 2,\n    /** Optimal value (Lookback) */\n    OptimalValue: 3,\n    /** Average value (Asian option) */\n    AverageValue: 4,\n} as const);\n\nexport type UnderlyingPriceDeterminationMethod =\n    (typeof UnderlyingPriceDeterminationMethod)[keyof typeof UnderlyingPriceDeterminationMethod];\n", "/**\n * Indicates order settlement period for the underlying instrument.\n * - Tag: 975\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const UnderlyingSettlementType = Object.freeze({\n    /** T+1 */\n    TPlus1: 2,\n    /** T+3 */\n    TPlus3: 4,\n    /** T+4 */\n    TPlus4: 5,\n} as const);\n\nexport type UnderlyingSettlementType = (typeof UnderlyingSettlementType)[keyof typeof UnderlyingSettlementType];\n", "/**\n * The unit of measure of the underlying commodity upon which the contract is based. Two groups of units of measure enumerations are supported.\n    Fixed Magnitude UOMs are primarily used in energy derivatives and specify a magnitude (such as, MM, Kilo, M, etc.) and the dimension (such as, watt hours, BTU's) to produce standard fixed measures (such as MWh - Megawatt-hours, MMBtu - One million BTUs).\n    The second group, Variable Quantity UOMs, specifies the dimension as a single unit without a magnitude (or more accurately a magnitude of one) and uses the UnitOfMeasureQty(1147) field to define the quantity of units per contract. Variable Quantity UOMs are used for both commodities (such as lbs of lean cattle, bushels of corn, ounces of gold) and financial futures.\n    Examples:\n    For lean cattle futures contracts, a UnitOfMeasure of 'lbs' with a UnitOfMeasureQty(1147) of 40,000, means each lean cattle futures contract represents 40,000 lbs of lean cattle.\n    For Eurodollars futures contracts, a UnitOfMeasure of Ccy with a UnitOfMeasureCurrency(1716) of USD and a UnitOfMeasureQty(1147) of 1,000,000, means a Eurodollar futures contract represents 1,000,000 USD.\n    For gold futures contracts, a UnitOfMeasure is oz_tr (Troy ounce) with a UnitOfMeasureQty(1147) of 1,000, means each gold futures contract represents 1,000 troy ounces of gold.\n * - Tag: 996\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const UnitOfMeasure = Object.freeze({\n    /** Billion cubic feet */\n    BillionCubicFeet: 'Bcf',\n    /** Allowances */\n    Allowances: 'Alw',\n    /** Cubic Meters */\n    CubicMeters: 'CBM',\n    /** Barrels\n        Equal to 42 US gallons */\n    Barrels: 'Bbl',\n    /** gigajoules */\n    Gigajoules: 'GJ',\n    /** Board feet\n        Equal to 144 cubic inches */\n    BoardFeet: 'BDFT',\n    /** Heat rate\n        The number of BTUs required to produce one kilowatt hour of electricity, typically 3,412.14 BTUs per 1 kWh. */\n    HeatRate: 'kHR',\n    /** Bushels */\n    Bushels: 'Bu',\n    /** Kilowatt hours */\n    KilowattHours: 'kWh',\n    /** Amount of currency */\n    Currency: 'Ccy',\n    /** Mega heat rate\n        The number of million BTUs required to produce one megawatt hour of electricity, typically 3.41214 million BTUs per 1 MWh. */\n    MegaHeatRate: 'MHR',\n    /** Cooling degree day */\n    CoolingDegreeDay: 'CDD',\n    /** One Million BTU */\n    OneMillionBTU: 'MMBtu',\n    /** Certified emissions reduction */\n    CertifiedEmissionsReduction: 'CER',\n    /** Megawatt hours */\n    MegawattHours: 'MWh',\n    /** Critical precipitation day */\n    CriticalPrecipDay: 'CPD',\n    /** therms\n        Equal to 100,000 BTU */\n    Therms: 'thm',\n    /** Climate reserve tonnes */\n    ClimateReserveTonnes: 'CRT',\n    /** Tons of carbon dioxide */\n    TonsOfCarbonDioxide: 'tnCO2',\n    /** Hundredweight(US)\n        Equal to 100 lbs */\n    Hundredweight: 'cwt',\n    /** Days */\n    Day: 'day',\n    /** Dry metric tons */\n    DryMetricTons: 'dt',\n    /** Environmental allowance certificates */\n    EnvAllwncCert: 'EnvAllwnc',\n    /** Environmental credit */\n    EnvironmentalCredit: 'EnvCrd',\n    /** Environmental Offset */\n    EnvironmentalOffset: 'EnvOfst',\n    /** Grams */\n    Grams: 'g',\n    /** Gallons */\n    Gallons: 'Gal',\n    /** Gross tons\n        Also known as long tons or imperial tons, equal to 2240 lbs */\n    GrossTons: 'GT',\n    /** Heating degree day */\n    HeatingDegreeDay: 'HDD',\n    /** Index point */\n    IndexPoint: 'IPNT',\n    /** Kilograms */\n    Kilograms: 'kg',\n    /** kiloliters */\n    Kiloliters: 'kL',\n    /** Kilowatt year (electrical capacity) */\n    KilowattYear: 'kW-a',\n    /** Kilowatt day (electrical capacity) */\n    KilowattDay: 'kW-d',\n    /** Kilowatt hour (electrical capacity) */\n    KilowattHour: 'kW-h',\n    /** Kilowatt month (electrical capacity) */\n    KilowattMonth: 'kW-M',\n    /** Kilowatt-Minute (electrical capacity) */\n    KilowattMinute: 'kW-min',\n    /** liters */\n    Liters: 'L',\n    /** pounds */\n    Pounds: 'lbs',\n    /** Megawatt year (electrical capacity) */\n    MegawattYear: 'MW-a',\n    /** Megawatt day (electrical capacity) */\n    MegawattDay: 'MW-d',\n    /** Megawatt hour (electrical capacity) */\n    MegawattHour: 'MW-h',\n    /** Megawatt month (electrical capacity) */\n    MegawattMonth: 'MW-M',\n    /** Megawatt minute (electrical capacity) */\n    MegawattMinute: 'MW-min',\n    /** Troy ounces */\n    TroyOunces: 'oz_tr',\n    /** Principal with relation to debt instrument */\n    PrincipalWithRelationToDebtInstrument: 'PRINC',\n    /** Metric tons\n        Also known as Tonnes, equal to 1000 kg */\n    MetricTons: 't',\n    /** Tons (US)\n        Equal to 2000 lbs */\n    Tons: 'tn',\n    /** Are */\n    Are: 'a',\n    /** Acre */\n    Acre: 'ac',\n    /** Centiliter */\n    Centiliter: 'cL',\n    /** Centimeter */\n    Centimeter: 'cM',\n    /** Diesel gallon equivalent */\n    DieselGallonEquivalent: 'DGE',\n    /** Foot */\n    Foot: 'ft',\n    /** GB Gallon */\n    GBGallon: 'Gal_gb',\n    /** Gasonline gallon equivalent */\n    GasolineGallonEquivalent: 'GGE',\n    /** Hectare */\n    Hectare: 'ha',\n    /** Inch */\n    Inch: 'in',\n    /** Kilometer */\n    Kilometer: 'kM',\n    /** Meter */\n    Meter: 'M',\n    /** Mile */\n    Mile: 'mi',\n    /** Milliliter */\n    Milliliter: 'mL',\n    /** Millimeter */\n    Millimeter: 'mM',\n    /** US ounce */\n    USOunce: 'oz',\n    /** Piece */\n    Piece: 'pc',\n    /** US Pint */\n    USPint: 'pt',\n    /** GB pint */\n    GBPint: 'pt_gb',\n    /** US Quart */\n    USQuart: 'qt',\n    /** GB Quart */\n    GBQuart: 'qt_gb',\n    /** Square centimeter */\n    SquareCentimeter: 'SqcM',\n    /** Square foot */\n    SquareFoot: 'Sqft',\n    /** Square inch */\n    SquareInch: 'Sqin',\n    /** Square kilometer */\n    SquareKilometer: 'SqkM',\n    /** Square meter */\n    SquareMeter: 'SqM',\n    /** Square mile */\n    SquareMile: 'Sqmi',\n    /** Square millimeter */\n    SquareMillimeter: 'SqmM',\n    /** Square yard */\n    SquareYard: 'Sqyd',\n    /** Yard */\n    Yard: 'yd',\n    /** Million Barrels */\n    MillionBarrels: 'MMbbl',\n    /** US Dollars */\n    USDollars: 'USD',\n} as const);\n\nexport type UnitOfMeasure = (typeof UnitOfMeasure)[keyof typeof UnitOfMeasure];\n", "/**\n * Indicates whether or not message is being sent as a result of a subscription request or not.\n * - Tag: 325\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const UnsolicitedIndicator = Object.freeze({\n    /** Message is being sent as a result of a prior request */\n    MessageIsBeingSentAsAResultOfAPriorRequest: 'N',\n    /** Message is being sent unsolicited */\n    MessageIsBeingSentUnsolicited: 'Y',\n} as const);\n\nexport type UnsolicitedIndicator = (typeof UnsolicitedIndicator)[keyof typeof UnsolicitedIndicator];\n", "/**\n * Type of price used to determine upfront payment for swaps contracts.\n * - Tag: 1741\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const UpfrontPriceType = Object.freeze({\n    /** Percentage (i.e. percent of par) (often called \"dollar price\" for fixed income) */\n    Percentage: 1,\n    /** Fixed amount (absolute value) */\n    FixedAmount: 3,\n} as const);\n\nexport type UpfrontPriceType = (typeof UpfrontPriceType)[keyof typeof UpfrontPriceType];\n", "/**\n * Urgency flag\n * - Tag: 61\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const Urgency = Object.freeze({\n    /** Normal */\n    Normal: '0',\n    /** Flash */\n    Flash: '1',\n    /** Background */\n    Background: '2',\n} as const);\n\nexport type Urgency = (typeof Urgency)[keyof typeof Urgency];\n", "/**\n * Indicates the action required by a User Request Message\n * - Tag: 924\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const UserRequestType = Object.freeze({\n    /** Log On User */\n    LogOnUser: 1,\n    /** Log Off User */\n    LogOffUser: 2,\n    /** Change Password For User */\n    ChangePasswordForUser: 3,\n    /** Request Individual User Status */\n    RequestIndividualUserStatus: 4,\n    /** Request Throttle Limit */\n    RequestThrottleLimit: 5,\n} as const);\n\nexport type UserRequestType = (typeof UserRequestType)[keyof typeof UserRequestType];\n", "/**\n * Indicates the status of a user\n * - Tag: 926\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const UserStatus = Object.freeze({\n    /** Logged In */\n    LoggedIn: 1,\n    /** Not Logged In */\n    NotLoggedIn: 2,\n    /** User Not Recognised */\n    UserNotRecognised: 3,\n    /** Password Incorrect */\n    PasswordIncorrect: 4,\n    /** Password Changed */\n    PasswordChanged: 5,\n    /** Other */\n    Other: 6,\n    /** Forced user logout by Exchange */\n    ForcedUserLogoutByExchange: 7,\n    /** Session shutdown warning */\n    SessionShutdownWarning: 8,\n    /** Throttle parameters changed */\n    ThrottleParametersChanged: 9,\n} as const);\n\nexport type UserStatus = (typeof UserStatus)[keyof typeof UserStatus];\n", "/**\n * Specifies the type of valuation method applied.\n * - Tag: 1197\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const ValuationMethod = Object.freeze({\n    /** premium style */\n    PremiumStyle: 'EQTY',\n    /** futures style mark-to-market */\n    FuturesStyleMarkToMarket: 'FUT',\n    /** futures style with an attached cash adjustment */\n    FuturesStyleWithAnAttachedCashAdjustment: 'FUTDA',\n    /** CDS style collateralization of market to market and coupon */\n    CDSStyleCollateralization: 'CDS',\n    /** CDS in delivery - use recovery rate to calculate obligation */\n    CDSInDeliveryUseRecoveryRateToCalculate: 'CDSD',\n} as const);\n\nexport type ValuationMethod = (typeof ValuationMethod)[keyof typeof ValuationMethod];\n", "/**\n * Action to be taken for the ValueCheckType(1869).\n * - Tag: 1870\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ValueCheckAction = Object.freeze({\n    /** Do not check\n        Checks will not be done for the specified ValueCheckType(1869). */\n    DoNotCheck: 0,\n    /** Check\n        Checks will be done for the specificed ValueCheckType(1869) */\n    Check: 1,\n    /** Best effort\n        The market may or may not check the specified ValueCheckType(1869) depending on availability of reference data. */\n    BestEffort: 2,\n} as const);\n\nexport type ValueCheckAction = (typeof ValueCheckAction)[keyof typeof ValueCheckAction];\n", "/**\n * Type of value to be checked.\n * - Tag: 1869\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const ValueCheckType = Object.freeze({\n    /** Price check\n        In the context of ESMA RTS 6 Article 15(1)(a) investment firms are required to perform pre-trade controls using \"price collars, which automatically block or cancel orders that do not meet set price parameters, differentiating between different financial instruments, both on an order-by-order basis and over a specified period of time\". */\n    PriceCheck: 1,\n    /** Notional value check\n        In the context of ESMA RTS 6 Article 15(1)(b) investment firms are required to perform pre-trade controls using \"maximum order values, which prevent orders with an uncommonly large order value from entering the order book\". */\n    NotionalValueCheck: 2,\n    /** Quantity check\n        In the context of ESMA RTS 6 Article 15(1)(c) investment firms are required to perform pre-trade controls using \"maximum order volumes, which prevent orders with an uncommonly large order quantity from entering the order book\". */\n    QuantityCheck: 3,\n} as const);\n\nexport type ValueCheckType = (typeof ValueCheckType)[keyof typeof ValueCheckType];\n", "/**\n * Identifies the type of venue where a trade was executed.\n * - Tag: 1430\n * - FIX Specification type: char\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const VenueType = Object.freeze({\n    /** Electronic exchange */\n    Electronic: 'E',\n    /** Pit */\n    Pit: 'P',\n    /** Ex-pit */\n    ExPit: 'X',\n    /** Clearinghouse */\n    ClearingHouse: 'C',\n    /** Registered market\n        Markets registered with regulators such as exchange, multilateral trading facility (MTF), swap execution facility (SEF). In the context of regulatory reporting (e.g. CFTC reporting), this is used for regulated markets, e.g. swap markets. */\n    RegisteredMarket: 'R',\n    /** Off-market\n        Off-book, off-facility. In the context of regulatory reporting (e.g. CFTC reporting) this identifies trades conducted away from a regulated market. */\n    OffMarket: 'O',\n    /** Central limit order book */\n    CentralLimitOrderBook: 'B',\n    /** Quote driven market */\n    QuoteDrivenMarket: 'Q',\n    /** Dark order book */\n    DarkOrderBook: 'D',\n    /** Auction driven market\n        Markets where matching occurs only in scheduled auctions. */\n    AuctionDrivenMarket: 'A',\n    /** Quote negotiation\n        Discretionary quoting on request or \"request for quote\" market. */\n    QuoteNegotiation: 'N',\n    /** Voice negotiation\n        A trading system where transactions between members are arranged through voice negotiation. */\n    VoiceNegotiation: 'V',\n    /** Hybrid market\n        A hybrid system falling into two or more types of trading systems. In the context of ESMA reporting, this is for \"Hybrid system.\" In the context of FCA reporting, this is for \"Any other, including hybrid.\" */\n    HybridMarket: 'H',\n    /** Other market (lowercase \"z\")\n        A market that does not fall under any of the market types defined for VenueType(1430). In the context of ESMA reporting, this is for \"Any other, excluding hybrid.\" */\n    OtherMarket: 'z',\n} as const);\n\nexport type VenueType = (typeof VenueType)[keyof typeof VenueType];\n", "/**\n * Indication of how a trade was verified.\n * - Tag: 1931\n * - FIX Specification type: int\n * - Mapped type: number\n * @readonly\n * @public\n */\nexport const VerificationMethod = Object.freeze({\n    /** Non-electronic */\n    NonElectronic: 0,\n    /** Electronic */\n    Electronic: 1,\n} as const);\n\nexport type VerificationMethod = (typeof VerificationMethod)[keyof typeof VerificationMethod];\n", "/**\n * Indicates if the order is currently being worked. Applicable only for OrdStatus = \"New\". For open outcry markets this indicates that the order is being worked in the crowd. For electronic markets it indicates that the order has transitioned from a contingent order to a market order.\n * - Tag: 636\n * - FIX Specification type: Boolean\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const WorkingIndicator = Object.freeze({\n    /** Order has been accepted but not yet in a working state */\n    NotWorking: 'N',\n    /** Order is currently being worked */\n    Working: 'Y',\n} as const);\n\nexport type WorkingIndicator = (typeof WorkingIndicator)[keyof typeof WorkingIndicator];\n", "/**\n * Type of yield. (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\n * - Tag: 235\n * - FIX Specification type: String\n * - Mapped type: string\n * @readonly\n * @public\n */\nexport const YieldType = Object.freeze({\n    /** After Tax Yield (Municipals) */\n    AfterTaxYield: 'AFTERTAX',\n    /** Annual Yield */\n    AnnualYield: 'ANNUAL',\n    /** Yield At Issue (Municipals) */\n    YieldAtIssue: 'ATISSUE',\n    /** Yield To Avg Maturity */\n    YieldToAverageMaturity: 'AVGMATURITY',\n    /** Book Yield */\n    BookYield: 'BOOK',\n    /** Yield to Next Call */\n    YieldToNextCall: 'CALL',\n    /** Yield Change Since Close */\n    YieldChangeSinceClose: 'CHANGE',\n    /** Closing Yield */\n    ClosingYield: 'CLOSE',\n    /** Compound Yield */\n    CompoundYield: 'COMPOUND',\n    /** Current Yield */\n    CurrentYield: 'CURRENT',\n    /** Gvnt Equivalent Yield */\n    GvntEquivalentYield: 'GOVTEQUIV',\n    /** True Gross Yield */\n    TrueGrossYield: 'GROSS',\n    /** Yield with Inflation Assumption */\n    YieldWithInflationAssumption: 'INFLATION',\n    /** Inverse Floater Bond Yield */\n    InverseFloaterBondYield: 'INVERSEFLOATER',\n    /** Most Recent Closing Yield */\n    MostRecentClosingYield: 'LASTCLOSE',\n    /** Closing Yield Most Recent Month */\n    ClosingYieldMostRecentMonth: 'LASTMONTH',\n    /** Closing Yield Most Recent Quarter */\n    ClosingYieldMostRecentQuarter: 'LASTQUARTER',\n    /** Closing Yield Most Recent Year */\n    ClosingYieldMostRecentYear: 'LASTYEAR',\n    /** Yield to Longest Average Life */\n    YieldToLongestAverageLife: 'LONGAVGLIFE',\n    /** Mark to Market Yield */\n    MarkToMarketYield: 'MARK',\n    /** Yield to Maturity */\n    YieldToMaturity: 'MATURITY',\n    /** Yield to Next Refund (Sinking Fund Bonds) */\n    YieldToNextRefund: 'NEXTREFUND',\n    /** Open Average Yield */\n    OpenAverageYield: 'OPENAVG',\n    /** Previous Close Yield */\n    PreviousCloseYield: 'PREVCLOSE',\n    /** Proceeds Yield */\n    ProceedsYield: 'PROCEEDS',\n    /** Yield to Next Put */\n    YieldToNextPut: 'PUT',\n    /** Semi-annual Yield */\n    SemiAnnualYield: 'SEMIANNUAL',\n    /** Yield to Shortest Average Life */\n    YieldToShortestAverageLife: 'SHORTAVGLIFE',\n    /** Simple Yield */\n    SimpleYield: 'SIMPLE',\n    /** Tax Equivalent Yield */\n    TaxEquivalentYield: 'TAXEQUIV',\n    /** Yield to Tender Date */\n    YieldToTenderDate: 'TENDER',\n    /** True Yield */\n    TrueYield: 'TRUE',\n    /** Yield Value Of 1/32 */\n    YieldValueOf32nds: 'VALUE1_32',\n    /** Yield To Worst */\n    YieldToWorst: 'WORST',\n} as const);\n\nexport type YieldType = (typeof YieldType)[keyof typeof YieldType];\n", "import type { Logger } from '../logger/Logger.ts';\n\nexport const timestamp = (dateObject: Date, logger: Logger): string => {\n    if (Number.isNaN(dateObject.getTime())) {\n        logger.log({ level: 'error', message: 'Invalid date specified!' });\n        return '';\n    }\n\n    const utcDate = new Date(\n        Date.UTC(\n            dateObject.getUTCFullYear(),\n            dateObject.getUTCMonth(),\n            dateObject.getUTCDate(),\n            dateObject.getUTCHours(),\n            dateObject.getUTCMinutes(),\n            dateObject.getUTCSeconds(),\n            dateObject.getUTCMilliseconds(),\n        ),\n    );\n\n    const year = utcDate.getUTCFullYear();\n    const month = String(utcDate.getUTCMonth() + 1).padStart(2, '0');\n    const day = String(utcDate.getUTCDate()).padStart(2, '0');\n    const hoursUTC = String(utcDate.getUTCHours()).padStart(2, '0');\n    const minutesUTC = String(utcDate.getUTCMinutes()).padStart(2, '0');\n    const secondsUTC = String(utcDate.getUTCSeconds()).padStart(2, '0');\n    const millisecondsUTC = String(utcDate.getUTCMilliseconds()).padStart(3, '0');\n\n    return `${year}${month}${day}-${hoursUTC}:${minutesUTC}:${secondsUTC}.${millisecondsUTC}`;\n};\n", "import { ApplVerID } from '../fieldtypes/index.ts';\n\ntype OptionalKeys<T> = {\n    [K in keyof T]-?: {} extends Pick<T, K> ? K : never;\n}[keyof T];\n\ntype RequiredKeys<T> = {\n    [K in keyof T]-?: {} extends Pick<T, K> ? never : K;\n}[keyof T];\n\nexport type PickWithOptionality<T, K extends keyof T> = Pick<T, Extract<K, RequiredKeys<T>>> &\n    Partial<Pick<T, Extract<K, OptionalKeys<T>>>>;\n\nexport type Version = {\n    version: string | undefined;\n    build: string | undefined;\n};\n\ndeclare global {\n    const __PACKAGE_VERSION__: string;\n    const __BUILD_TIME__: string;\n}\n\nexport const version: Version = {\n    version: __PACKAGE_VERSION__ || process.env.__PACKAGE_VERSION__,\n    build: __BUILD_TIME__ || process.env.__BUILD_TIME__,\n};\n\nexport type FIXValue = number | string | boolean | null | undefined;\nexport type Parser = 'FIXServer' | 'FIXParser' | 'FIXParserBrowser';\nexport const parseFixVersion = (version: FIXValue): string => {\n    return FIX_VERSIONS[version as string] ?? version;\n};\nconst FIX_VERSIONS: Record<string, string> = {\n    [ApplVerID.FIX27]: 'FIX.2.7',\n    [ApplVerID.FIX30]: 'FIX.3.0',\n    [ApplVerID.FIX40]: 'FIX.4.0',\n    [ApplVerID.FIX41]: 'FIX.4.1',\n    [ApplVerID.FIX42]: 'FIX.4.2',\n    [ApplVerID.FIX43]: 'FIX.4.3',\n    [ApplVerID.FIX44]: 'FIX.4.4',\n    [ApplVerID.FIX50]: 'FIX.5.0',\n    [ApplVerID.FIX50SP1]: 'FIX.5.0SP1',\n    [ApplVerID.FIX50SP2]: 'FIX.5.0SP2',\n    [ApplVerID.FIXLatest]: 'FIXT.1.1',\n};\nexport const DEFAULT_FIX_VERSION: string = FIX_VERSIONS[ApplVerID.FIXLatest];\nexport const DEFAULT_HEARTBEAT_SECONDS: number = 30;\nexport const DEFAULT_TLS_TIMEOUT: number = 100_000;\nexport const DEFAULT_TLS_ENCODING: BufferEncoding = 'utf8';\nexport const SOH: string = '\\x01';\nexport const STRING_EQUALS: string = '=';\nexport const RE_ESCAPE: RegExp = /[.*+?^${}()|[\\]\\\\]/g;\nexport const RE_FIND: RegExp = /8=FIXT?\\.\\d\\.\\d([^\\d]+)/i;\nexport const READY_MS: number = 100;\n\nexport const pad = (value: number, size: number): string => {\n    const paddedString = `0000000000000000${value}`;\n    return paddedString.slice(-size);\n};\n\nexport { timestamp } from './timestamp.ts';\n", "import { Components } from '../components/Components.ts';\nimport { Enums } from '../enums/Enums.ts';\nimport { DataTypes } from '../fields/datatypes/Datatypes.ts';\nimport { Field } from '../fields/Field.ts';\nimport { Fields } from '../fields/Fields.ts';\nimport { Field as FieldType } from '../fieldtypes/Field.ts';\nimport { Groups } from '../groups/Groups.ts';\nimport { LicenseManager } from '../licensemanager/LicenseManager.ts';\nimport type { RefType, Structure } from '../messagetype/MessageType.ts';\nimport type { ISpecComponents, Ref } from '../spec/SpecComponents.ts';\nimport type { ISpecEnums } from '../spec/SpecEnums.ts';\nimport type { ISpecFields } from '../spec/SpecFields.ts';\nimport type { ISpecGroups, NumInGroup } from '../spec/SpecGroups.ts';\nimport { DEFAULT_FIX_VERSION, type FIXValue, pad, parseFixVersion, SOH } from '../util/util.ts';\n\nconst TAG_CHECKSUM: string = '10=';\nconst TAG_MSGTYPE: string = '35=';\nconst MARKER_BODYLENGTH: string = '\\x02';\nconst MARKER_CHECKSUM: string = '\\x03';\n\ntype FieldValues = {\n    [tag: string]: any;\n};\n\n/**\n * The MessageError object is used by FIXParser validation to\n * represent detailed error information when validation fails,\n * including the field, tag, value, expected value, and a\n * descriptive error message.\n *\n * @public\n */\nexport type MessageError = {\n    field: RefType | ISpecFields | undefined;\n    name: string | undefined;\n    tag: number;\n    value: FIXValue;\n    expectedValue?: FIXValue;\n    error: string;\n};\n\n/**\n * Represents a repeating group in the FIX protocol.\n * A repeating group is a collection of FIX fields that can appear multiple times in a message.\n *\n * @typedef {Object} RepeatingGroup\n * @property {string} name - The name of the repeating group.\n * @property {string} parentName - The name of the parent field or group that this repeating group belongs to.\n * @property {Set<number>} availableTagsInGroup - A set of tag numbers that are available in the group.\n * @property {number | undefined} valueInstanceFirstTag - The tag number of the first instance in the repeating group, or undefined if not specified.\n * @property {Record<string, FIXValue | FIXValue[]>} valueInstance - An object representing the value(s) associated with a specific instance of the repeating group.\n * @property {Array<Record<string, FIXValue | FIXValue[]>>} values - An array of objects representing multiple instances of the repeating group, with each instance containing key-value pairs.\n */\ntype RepeatingGroup = {\n    name: string;\n    parentName: string;\n    availableTagsInGroup: Set<number>;\n    valueInstanceFirstTag: number | undefined;\n    valueInstance: Record<string, FIXValue | FIXValue[]>;\n    values: Array<Record<string, FIXValue | FIXValue[]>>;\n};\n\n/**\n * Represents a complete FIX (Financial Information eXchange) message structure.\n * The message is divided into three main parts: Header, Body, and Trailer.\n *\n * @typedef {Object} FIXJSON\n * @property {Record<string, FIXValue | FIXValue[]>} Header - The header section of the FIX message, which includes metadata such as the sender, target, and timestamp.\n * @property {Record<string, FIXValue | FIXValue[] | Record<string, FIXValue | FIXValue[]>[]}> Body - The body section of the FIX message, which contains the actual transaction or data being conveyed. It can contain nested groups.\n * @property {Record<string, FIXValue | FIXValue[]>} Trailer - The trailer section of the FIX message, which typically contains checksum or other closing information.\n */\ntype FIXJSON = {\n    Header: Record<string, FIXValue | FIXValue[]>;\n    Body: Record<string, FIXValue | FIXValue[] | Record<string, FIXValue | FIXValue[]>[]>;\n    Trailer: Record<string, FIXValue | FIXValue[]>;\n};\n\nconst explain = (field: Field) => field.enumeration?.name ?? field.value;\nconst setFieldValue = (field: Field, values: FieldValues, useName = false): void => {\n    const fieldValue = useName ? explain(field) : field.value;\n    const fieldKey = field.name ?? field.tag;\n\n    if (values[fieldKey]) {\n        values[fieldKey] = Array.isArray(values[fieldKey])\n            ? [...values[fieldKey], fieldValue]\n            : [values[fieldKey], fieldValue];\n    } else {\n        values[fieldKey] = fieldValue;\n    }\n};\n\n/**\n * A FIX message is a standardized electronic communication used in\n * financial markets to exchange information such as orders,\n * executions, and market data between trading participants,\n * following the FIX protocol's predefined structure and rules.\n *\n * @public\n */\nexport class Message {\n    /** The fix version associated with the message. */\n    public fixVersion: string = DEFAULT_FIX_VERSION;\n    /** The data fields associated with the message. */\n    public data: Field[] = [];\n    /** The FIX string representation of the message. */\n    public messageString = '';\n    /** The description of the message. */\n    public description = '';\n    /** The type of the message. */\n    public messageType = '';\n    /** A description of the message type. */\n    public messageTypeDescription = '';\n    /** The sequence number of the message. */\n    public messageSequence = -1;\n    /** The structure of the message, can be null if not defined. */\n    public structure: Structure[] | undefined = undefined;\n    /** Flag indicating whether the body length is valid. */\n    public bodyLengthValid = false;\n    /** Flag indicating whether the checksum is valid. */\n    public checksumValid = false;\n    /** The specified checksum value of the message, can be null if not available. */\n    public checksumValue: string | undefined = undefined;\n    /** The actual checksum value of the message, can be null if not provided. */\n    public checksumExpected: string | undefined = undefined;\n    /** The specified body length of the message, can be null if not available. */\n    public bodyLengthValue: number | undefined = undefined;\n    /** The actual body length of the message, can be null if not provided. */\n    public bodyLengthExpected: number | undefined = undefined;\n\n    // Lazily initialized\n    #_specEnums: Enums | undefined = undefined;\n    #_specFields: Fields | undefined = undefined;\n    #_specDatatypes: DataTypes | undefined = undefined;\n    #_specComponents: Components | undefined = undefined;\n    #_specGroups: Groups | undefined = undefined;\n\n    /**\n     * Creates a new FIX Message instance.\n     *\n     * The constructor initializes the FIX Message with the specified FIX version and optional\n     * custom fields. It processes the fields to set specific FIX tags such as `BeginString`,\n     * `MsgSeqNum`, and `MsgType`, and updates the message accordingly.\n     *\n     * @param {string} [fixVersion=DEFAULT_FIX_VERSION] - The FIX protocol version. Defaults to `DEFAULT_FIX_VERSION`.\n     * @param {...Field} fields - A variable number of `Field` objects that represent individual tags in the FIX message.\n     * Each field object must contain a `tag` and a `value`, where `tag` indicates the field type (e.g., `BeginString`, `MsgSeqNum`, etc.).\n     *\n     * @throws {Error} If the field contains an invalid tag or value type.\n     *\n     * @example\n     * const message = new Message('FIXT.1.1', new Field(FieldType.MsgType, Messages.NewOrderSingle), new Field(Fields.OrderQty, 10000));\n     *\n     */\n    constructor(fixVersion: string = DEFAULT_FIX_VERSION, ...fields: Field[]) {\n        this.fixVersion = parseFixVersion(fixVersion);\n        this.reset();\n\n        // Add other tags\n        fields.forEach((field: Field) => {\n            if (field.tag === FieldType.BeginString) {\n                this.fixVersion = String(field.value);\n            }\n            if (field.tag === FieldType.MsgSeqNum) {\n                this.messageSequence = Number(field.value);\n            }\n\n            if (field.tag === FieldType.MsgType) {\n                this.data.splice(0, 0, field);\n            } else {\n                this.data.push(field);\n            }\n        });\n    }\n\n    readonly #initializeCacheMaps = () => {\n        if (!this.#_specEnums) {\n            this.#_specEnums = new Enums();\n        }\n        if (!this.#_specFields) {\n            this.#_specFields = new Fields();\n        }\n        if (!this.#_specDatatypes) {\n            this.#_specDatatypes = new DataTypes();\n        }\n        if (!this.#_specComponents) {\n            this.#_specComponents = new Components();\n        }\n        if (!this.#_specGroups) {\n            this.#_specGroups = new Groups();\n        }\n    };\n\n    readonly #calculateBodyLength = (value: string): number => {\n        const startLength: number = value.indexOf(TAG_MSGTYPE) === -1 ? 0 : value.indexOf(TAG_MSGTYPE) + 1;\n        const endLength: number =\n            value.lastIndexOf(TAG_CHECKSUM) === -1 ? value.length : value.lastIndexOf(TAG_CHECKSUM) + 1;\n\n        return endLength - startLength;\n    };\n\n    readonly #calculateChecksum = (value: string): string => {\n        let cks = 0;\n        for (let i = 0; i < value.length; i++) {\n            cks += value.charCodeAt(i);\n        }\n        return pad(cks % 256, 3);\n    };\n\n    readonly #nonEmpty = (parts: TemplateStringsArray, ...args: string[]): string => {\n        let res: string = parts[0];\n        let i = 1;\n        for (i; i < parts.length; i++) {\n            if (args[i - 1] || args[i - 1] === '0') {\n                res += args[i - 1];\n            }\n            res += parts[i];\n        }\n        return res.replace(/\\s+/g, ' ');\n    };\n\n    readonly #validateRef = (\n        structureItem: Structure,\n        refType: 'fieldRef' | 'componentRef' | 'groupRef',\n        tagSet: Set<number>,\n    ): MessageError | undefined => {\n        if (structureItem?.data[refType] && structureItem?.presence === 'required') {\n            const list = structureItem?.data[refType].filter((ref) => ref.presence === 'required');\n            for (const ref of list) {\n                if (tagSet.has(Number(ref.id))) {\n                    continue;\n                }\n\n                return {\n                    field: {\n                        ...ref,\n                    },\n                    name: ref.name,\n                    tag: Number(ref.id),\n                    value: null,\n                    error: `Missing field ${ref.name}`,\n                };\n            }\n        }\n        return undefined;\n    };\n\n    readonly #validateMessage = (message: Message, requiredFieldsOnly = true): MessageError[] => {\n        this.#initializeCacheMaps();\n\n        const result: MessageError[] = [];\n        const fields: Field[] = structuredClone(message.data);\n        const tagSet = new Set(fields.map((field) => field.tag));\n\n        const addError = (field: Field, error: string, expectedValue?: any) => {\n            const fieldSpec = this.#_specFields?.cacheMap.get(field.tag);\n            result.push({\n                field: fieldSpec,\n                name: field.name,\n                tag: field.tag,\n                value: field.value,\n                error,\n                expectedValue,\n            });\n        };\n\n        // Validate fields\n        for (const field of fields) {\n            const hasEnum = this.#_specEnums?.getEnumByTag(String(field.tag));\n            const isValidEnum = hasEnum && this.#_specEnums?.getEnum(String(field.tag), field.value);\n            const isValidDatatype = this.#_specDatatypes?.validateDatatype(field.value, field.type?.name);\n\n            if ((hasEnum && !isValidEnum) || !isValidDatatype) {\n                addError(field, 'Incorrect data format for value');\n            }\n\n            if (field.tag === FieldType.BodyLength && !this.validateBodyLength(String(this.bodyLengthValue))) {\n                addError(field, 'Incorrect value for BodyLength', this.bodyLengthExpected);\n            }\n\n            if (field.tag === FieldType.CheckSum && !this.validateChecksum(String(this.checksumValue))) {\n                addError(field, 'Incorrect value for CheckSum', this.checksumExpected);\n            }\n        }\n\n        // Validate structure\n        if (this.structure) {\n            for (const item of this.structure) {\n                if (requiredFieldsOnly && item.presence !== 'required') continue;\n\n                const { id, name, fieldRef, groupRef, componentRef } = item.data;\n                const fieldId = Number(id);\n\n                const isFieldMissing =\n                    !tagSet.has(fieldId) && !fieldRef && !groupRef && !componentRef && fieldId !== 1003;\n\n                /*\n                    Application Version Precedence\n                    Lowest: DefaultApplVerID(1137)\n                    Supersedes: RefMsgType(372), RefApplVerID(1130), DefaultVerIndicator(1410),\n                    Highest, explicit: ApplVerID(1128)\n                 */\n                const isSuperseded =\n                    [1137, 372, 1130, 1410, 1128].includes(fieldId) &&\n                    [1137, 372, 1130, 1410, 1128].some((tag) => tagSet.has(tag));\n\n                // Single field type\n                if (isFieldMissing && !isSuperseded) {\n                    if (item.data.type === 'component') {\n                        const componentFields = this.#extractComponentFields(fieldId);\n                        const messageFields = new Set(fields.map((field) => field.tag));\n                        if (componentFields.length > 0 && !componentFields.some((field) => messageFields.has(field))) {\n                            result.push({\n                                field: { ...item.data },\n                                tag: Number(item.data.id),\n                                name: item.data.name,\n                                value: null,\n                                error: `Missing block ${item.data.name}`,\n                            });\n                        }\n                        // Recursively validate required fields in the component\n                        const componentSpec = this.#_specComponents?.cacheMap.get(fieldId);\n                        if (componentSpec?.fieldRef) {\n                            for (const ref of componentSpec.fieldRef) {\n                                if (ref.presence === 'required' && !tagSet.has(Number(ref.id))) {\n                                    // Look up the field name and spec from the spec fields cache\n                                    const fieldSpec = this.#_specFields?.cacheMap.get(Number(ref.id));\n                                    // Merge the field spec with the presence information from the component reference\n                                    const fieldWithPresence = fieldSpec\n                                        ? { ...fieldSpec, presence: ref.presence, id: String(fieldSpec.id) }\n                                        : undefined;\n                                    result.push({\n                                        field: fieldWithPresence,\n                                        tag: Number(ref.id),\n                                        name: fieldSpec?.name ?? undefined,\n                                        value: null,\n                                        error: `Missing field ${fieldSpec?.name ?? ref.id}`,\n                                    });\n                                }\n                            }\n                        }\n                    } else {\n                        addError({ tag: fieldId, name } as unknown as Field, `Missing field ${name}`);\n                    }\n                }\n\n                // Validate references\n                (['fieldRef', 'componentRef', 'groupRef'] as ('fieldRef' | 'componentRef' | 'groupRef')[]).forEach(\n                    (refType) => {\n                        const refError = this.#validateRef(item, refType, tagSet);\n                        if (refError) result.push(refError);\n                    },\n                );\n            }\n        }\n\n        return result;\n    };\n\n    readonly #extractComponentFields = (componentId: number): number[] => {\n        const componentSpec = this.#_specComponents?.cacheMap.get(componentId);\n        if (!componentSpec) return [];\n\n        const { fieldRef = [], componentRef = [], groupRef = [] } = componentSpec;\n        return [\n            ...fieldRef.map((ref) => ref.id),\n            ...componentRef.map((ref) => ref.id),\n            ...groupRef.map((ref) => ref.id),\n        ];\n    };\n\n    /**\n     * Adds a single `Field` object to the message data.\n     *\n     * @param {Field} field - The `Field` object to be added.\n     */\n    public addField(field: Field): void {\n        this.data.push(field);\n    }\n\n    /**\n     * Adds multiple `Field` objects to the message data.\n     * If the field's tag is `MsgType`, it will be added at the beginning of the `data` array.\n     * Otherwise, it will be appended to the end.\n     *\n     * @param {...Field} fields - One or more `Field` objects to be added.\n     */\n    public addFields(...fields: Field[]): void {\n        fields.forEach((field: Field) => {\n            if (field.tag === FieldType.MsgType) {\n                this.data.splice(0, 0, field);\n            } else {\n                this.data.push(field);\n            }\n        });\n    }\n\n    /**\n     * Removes a field from the message data by its `tag`.\n     *\n     * @param {number} tag - The tag of the field to be removed.\n     */\n    public removeFieldByTag(tag: number): void {\n        const index: number = this.data.findIndex((field: Field) => field.tag === tag);\n        if (index > -1) {\n            this.data.splice(index, 1);\n        }\n    }\n\n    /**\n     * Retrieves a single field from the message data by its `tag`.\n     *\n     * @param {number} tag - The tag of the field to be retrieved.\n     * @returns {Field | undefined} The `Field` object if found, otherwise `undefined`.\n     */\n    public getField(tag: number): Field | undefined {\n        return this.data.find((field: Field) => field.tag === tag);\n    }\n\n    /**\n     * Retrieves all fields from the message data that have the specified `tag`.\n     *\n     * @param {number} tag - The tag of the fields to be retrieved.\n     * @returns {Field[]} An array of `Field` objects that match the specified `tag`, or an empty array if no fields match.\n     */\n    public getFields(tag: number): Field[] | undefined {\n        return this.data.filter((field: Field) => field.tag === tag);\n    }\n\n    /**\n     * Returns an object containing the name-explain pairs of all fields in the message.\n     * The `name` of each field is used as the key, and the enumeration of the (`value`) is assigned to it.\n     * For example, `MsgType: 'D'` gets assigned `MsgType: 'NewOrderSingle'`,\n     *\n     * @returns {FieldValues} An object where the keys are field names and the values are the explained field values.\n     * @example\n     * console.log(message.getFieldExplains());\n     * {\n     *   '47': 'A',\n     *   BeginString: 'FIX42',\n     *   BodyLength: 146,\n     *   MsgType: 'NewOrderSingle',\n     *   MsgSeqNum: 4,\n     *   SenderCompID: 'ABC_DEFG01',\n     *   SendingTime: '20090323-15:40:29',\n     *   TargetCompID: 'CCG',\n     *   OnBehalfOfCompID: 'XYZ',\n     *   ClOrdID: 'NF 0542/03232009',\n     *   Side: 'Buy',\n     *   OrderQty: 100,\n     *   Symbol: 'CVS',\n     *   OrdType: 'Market',\n     *   TimeInForce: 'Day',\n     *   TransactTime: '20090323-15:40:29',\n     *   HandlInst: 'AutomatedExecutionNoIntervention',\n     *   SecurityExchange: 'N',\n     *   CheckSum: '195'\n     * }\n     */\n    public getFieldExplains(): FieldValues {\n        const values: FieldValues = {};\n        this.data.forEach((field: Field) => {\n            setFieldValue(field, values, true);\n        });\n        return values;\n    }\n\n    /**\n     * Returns an object containing the name-value pairs of all fields in the message.\n     * The `name` of each field is used as the key, and the `value` is assigned to it.\n     *\n     * @returns {FieldValues} An object where the keys are field names and the values are field values.\n     * @example\n     * console.log(message.getFieldNameValues());\n     * {\n     *   '47': 'A',\n     *   BeginString: 'FIX.4.2',\n     *   BodyLength: 146,\n     *   MsgType: 'D',\n     *   MsgSeqNum: 4,\n     *   SenderCompID: 'ABC_DEFG01',\n     *   SendingTime: '20090323-15:40:29',\n     *   TargetCompID: 'CCG',\n     *   OnBehalfOfCompID: 'XYZ',\n     *   ClOrdID: 'NF 0542/03232009',\n     *   Side: '1',\n     *   OrderQty: 100,\n     *   Symbol: 'CVS',\n     *   OrdType: '1',\n     *   TimeInForce: '0',\n     *   TransactTime: '20090323-15:40:29',\n     *   HandlInst: '1',\n     *   SecurityExchange: 'N',\n     *   CheckSum: '195'\n     * }\n     */\n    public getFieldNameValues(): FieldValues {\n        const values: FieldValues = {};\n        this.data.forEach((field: Field) => {\n            setFieldValue(field, values, false);\n        });\n        return values;\n    }\n\n    /**\n     * Returns an object containing the values of all fields in the message, indexed by their `tag`.\n     * If a tag has multiple fields, the values will be stored in an array.\n     *\n     * @returns {FieldValues} An object where the keys are field tags and the values are field values (or arrays of values).\n     * @example\n     * console.log(message.getFieldValues());\n     * {\n     *   '8': 'FIX.4.2',\n     *   '9': 146,\n     *   '10': '195',\n     *   '11': 'NF 0542/03232009',\n     *   '21': '1',\n     *   '34': 4,\n     *   '35': 'D',\n     *   '38': 100,\n     *   '40': '1',\n     *   '47': 'A',\n     *   '49': 'ABC_DEFG01',\n     *   '52': '20090323-15:40:29',\n     *   '54': '1',\n     *   '55': 'CVS',\n     *   '56': 'CCG',\n     *   '59': '0',\n     *   '60': '20090323-15:40:29',\n     *   '115': 'XYZ',\n     *   '207': 'N'\n     * }\n     */\n    public getFieldValues(): FieldValues {\n        const values: FieldValues = {};\n        this.data.forEach((field: Field) => {\n            if (values[field.tag]) {\n                if (Array.isArray(values[field.tag])) {\n                    values[field.tag] = [...values[field.tag], field.value];\n                } else {\n                    values[field.tag] = [values[field.tag], field.value];\n                }\n            } else {\n                values[field.tag] = field.value;\n            }\n        });\n        return values;\n    }\n\n    /**\n     * Updates a field in the message data based on its `tag`.\n     * If a field with the same tag exists, it will be replaced with the new `Field` object.\n     *\n     * @param {Field} field - The `Field` object to update in the data.\n     */\n    public setField(field: Field): void {\n        const index: number = this.data.findIndex((item: Field) => item.tag === field.tag);\n        if (index > -1) {\n            this.data[index] = field;\n        } else {\n            this.data.push(field);\n        }\n        // Only recalculate if this isn't a body length or checksum field\n        if (field.tag !== FieldType.BodyLength && field.tag !== FieldType.CheckSum) {\n            this.recalculateMessageLengths();\n        }\n    }\n\n    /**\n     * Retrieves the enumeration for a given `tag` and `value` based on the message's `MsgType`.\n     * This method ensures that the `MsgType` field is present and has a value before attempting\n     * to retrieve the corresponding enumeration.\n     *\n     * @param {number} tag - The tag of the field for which the enum is to be retrieved.\n     * @param {FIXValue} value - The value of the field for which the enum is to be retrieved.\n     * @returns {ISpecEnums | undefined} The corresponding enumeration if found, or `undefined` if the `MsgType` field is missing\n     * or has no value, or if no matching enum is found.\n     *\n     * @example\n     * const enumValue = message.getEnum(35, 'D');\n     * console.log(`Enum: ${enumValue}`);\n     */\n    public getEnum(tag: number, value: FIXValue): ISpecEnums | undefined {\n        if (!this.getField(FieldType.MsgType)?.tag) {\n            return;\n        }\n\n        if (!this.getField(FieldType.MsgType)?.value) {\n            return;\n        }\n\n        const enums = new Enums();\n        return enums.getEnum(tag.toString(), value);\n    }\n\n    /**\n     * Generates a brief Bloomberg-style description of the current message based on its fields, such as `Side`, `OrderQty`, `Symbol`, `Price`, etc.\n     * The description is typically used for a quick summary of an order or trade message, formatted with key field values.\n     *\n     * Depending on the available fields, the method formats and returns a string summarizing the message's main details,\n     * such as quantity, price, symbol, and order type. If certain fields (like `LeavesQty`, `OrderQty`, `Price`, etc.) are not present,\n     * it adjusts the description accordingly.\n     *\n     * @returns {string | null} A brief string description summarizing the message. If no description can be formed, `null` is returned.\n     *\n     * @example\n     * const description = message.getBriefDescription();\n     * console.log(description); // \"100 AAPL LMT @123.45 GTC\"\n     */\n    public getBriefDescription(): string | undefined {\n        let returnValue = '';\n        const sideField: Field | undefined = this.getField(FieldType.Side);\n        let side: string | undefined = '';\n        if (sideField?.enumeration) {\n            side = sideField.enumeration.name;\n            side = side ? side.replace('Sell', 'SL').toUpperCase() : undefined;\n        }\n\n        if (this.getField(FieldType.LeavesQty) !== undefined) {\n            let quantity = '';\n\n            if (this.getField(FieldType.ContraTradeQty)) {\n                quantity = String(this.getField(FieldType.ContraTradeQty)?.value);\n            } else {\n                quantity = String(this.getField(FieldType.OrderQty)?.value ?? '');\n            }\n            const leavesQuantity: string = String(this.getField(FieldType.LeavesQty)?.value);\n            const lastPrice: number = this.getField(FieldType.LastPx)\n                ? Number(this.getField(FieldType.LastPx)?.value)\n                : 0;\n            returnValue = this.#nonEmpty`${quantity} @${\n                lastPrice || lastPrice === 0 ? lastPrice.toFixed(2) : '0.00'\n            } ${this.getField(FieldType.LeavesQty)!.name!.replace('LeavesQty', 'LvsQty')} ${Number.parseInt(\n                leavesQuantity,\n                10,\n            ).toString()}`;\n        } else if (this.getField(FieldType.OrderQty)) {\n            const orderQuantity: string = String(this.getField(FieldType.OrderQty)?.value);\n            const symbol: string = this.getField(FieldType.Symbol)\n                ? String(this.getField(FieldType.Symbol)?.value)\n                : '';\n            const orderType: Field = this.getField(FieldType.OrdType)!;\n            let name = '';\n            if (orderType?.enumeration?.name) {\n                name = orderType.enumeration.name;\n            }\n            const timeInForceField = this.getField(FieldType.TimeInForce)!;\n            let timeInForce = '';\n            if (timeInForceField?.enumeration) {\n                timeInForce = String(timeInForceField.enumeration.name);\n            }\n\n            const priceField = this.getField(FieldType.Price);\n            if (priceField) {\n                let price: string = String(priceField.value);\n                const priceValue = Number(priceField.value);\n\n                if (priceValue >= 1) {\n                    price = priceValue.toFixed(2);\n                } else if (priceValue < 1) {\n                    price = priceValue.toString().replace('0.', '.');\n                }\n\n                const sidePart = side ? `${side} ` : '';\n                const orderQuantityPart = orderQuantity ? `${orderQuantity} ` : '';\n                const symbolPart = symbol ? `${symbol.toUpperCase()} ` : '';\n                const namePart = name ? `${name.replace('Market', 'MKT').replace('Limit', 'LMT').toUpperCase()} ` : '';\n                const pricePart = `@${price} `;\n                const timeInForcePart = timeInForce ? timeInForce.toUpperCase() : '';\n\n                const fullString = sidePart + orderQuantityPart + symbolPart + namePart + pricePart + timeInForcePart;\n                returnValue = this.#nonEmpty`${fullString}`;\n            } else {\n                returnValue = this.#nonEmpty`${side ?? ''} ${orderQuantity} ${symbol ? symbol.toUpperCase() : ''} ${\n                    name ? name.replace('Market', 'MKT').replace('Limit', 'LMT').toUpperCase() : ''\n                } ${timeInForce ? timeInForce.toUpperCase() : ''}`;\n            }\n        } else {\n            const messageType = this.getField(FieldType.MsgType);\n            if (messageType?.tag && messageType.value) {\n                const name = this.getEnum(messageType.tag, String(messageType.value))?.name;\n                return name ?? '';\n            }\n            return undefined;\n        }\n\n        return returnValue.trim();\n    }\n\n    /**\n     * Validates the body length of the FIX message by comparing the provided value to the actual body length.\n     * The body length is calculated as the difference between the positions of the `MsgType` tag and the `Checksum` tag.\n     *\n     * @param {string} value - The body length value to validate against the calculated body length.\n     * @returns {boolean} `true` if the provided body length matches the calculated body length, otherwise `false`.\n     *\n     * @example\n     * const isValid = message.validateBodyLength('123');\n     * console.log(isValid); // true if the body length is correct, false otherwise\n     */\n    public validateBodyLength(value: string): boolean {\n        const index: number = this.messageString.indexOf(TAG_MSGTYPE);\n        const lastIndex: number = this.messageString.lastIndexOf(TAG_CHECKSUM);\n        const startLength: number = index === -1 ? 0 : index;\n        const endLength: number = lastIndex === -1 ? this.messageString.length : lastIndex;\n        const bodyLength: number = endLength - startLength;\n\n        this.bodyLengthValue = Number(value);\n        this.bodyLengthExpected = bodyLength;\n        this.bodyLengthValid = Number(value) === bodyLength;\n        return this.bodyLengthValid;\n    }\n\n    /**\n     * Validates the checksum of the FIX message by comparing the provided checksum value to the calculated checksum.\n     * The checksum is calculated based on the substring of the message string before the `Checksum` tag.\n     *\n     * @param {string} value - The checksum value to validate against the calculated checksum.\n     * @returns {boolean} `true` if the provided checksum matches the calculated checksum, otherwise `false`.\n     *\n     * @example\n     * const isValid = message.validateChecksum('123456');\n     * console.log(isValid); // true if the checksum is valid, false otherwise\n     */\n    public validateChecksum(value: string): boolean {\n        const lastIndex: number = this.messageString.lastIndexOf(TAG_CHECKSUM);\n        const length: number = lastIndex === -1 ? this.messageString.length : lastIndex;\n        const data: string = this.messageString.substring(0, length);\n        const calculatedChecksum: string = this.#calculateChecksum(data);\n\n        this.checksumValue = value;\n        this.checksumExpected = calculatedChecksum;\n        this.checksumValid = value === calculatedChecksum;\n        return this.checksumValid;\n    }\n\n    /**\n     * Recalculates and updates the body length and checksum of the FIX message.\n     * This method is useful when message fields have been modified and the message\n     * needs to be updated with correct length and checksum values.\n     *\n     * The method will:\n     * 1. Calculate the new body length based on the message content\n     * 2. Calculate the new checksum based on the entire message\n     * 3. Update the message's internal state with the new values\n     *\n     * @returns {Object} An object containing the new body length and checksum values\n     * @property {number} bodyLength - The newly calculated body length\n     * @property {string} checksum - The newly calculated checksum\n     *\n     * @example\n     * const message = new Message('FIX.4.4');\n     * message.addField(new Field(FieldType.OrderQty, 100));\n     * const { bodyLength, checksum } = message.recalculateMessageLengths();\n     * console.log(`New body length: ${bodyLength}, New checksum: ${checksum}`);\n     */\n    public recalculateMessageLengths(): { bodyLength: number; checksum: string } {\n        const bodyLength = this.#calculateBodyLength(this.messageString);\n        const lastIndex = this.messageString.lastIndexOf(TAG_CHECKSUM);\n        const length = lastIndex === -1 ? this.messageString.length : lastIndex;\n        const data = this.messageString.substring(0, length);\n        const checksum = this.#calculateChecksum(data);\n\n        this.bodyLengthValue = bodyLength;\n        this.bodyLengthExpected = bodyLength;\n        this.bodyLengthValid = true;\n\n        this.checksumValue = checksum;\n        this.checksumExpected = checksum;\n        this.checksumValid = true;\n\n        // Update the actual fields in data[]\n        this.setField(new Field(FieldType.BodyLength, bodyLength));\n        this.setField(new Field(FieldType.CheckSum, checksum));\n\n        return { bodyLength, checksum };\n    }\n\n    /**\n     * Validates the structure and content of a given FIX message.\n     *\n     * This method checks the fields in the provided `message` for correct data format, required fields,\n     * and field references (such as `fieldRef`, `groupRef`, `componentRef`). It also validates specific fields\n     * like `BodyLength` and `CheckSum` against expected values.\n     *\n     * The validation process can be constrained to only required fields, based on the `requiredFieldsOnly` flag.\n     *\n     * @param {boolean} [requiredFieldsOnly=true] - If `true`, only required fields (as specified in the message structure) are validated.\n     * Defaults to `true`.\n     *\n     * @returns {MessageError[]} - An array of validation errors. Each error includes details about the field that caused the error,\n     * such as the field's `tag`, `name`, `value`, the error message, and any expected value (if applicable).\n     *\n     * @throws {Error} If any internal validation process fails or an invalid message is encountered.\n     *\n     * @example\n     * const validationErrors = message.validate();\n     *\n     * if (validationErrors.length > 0) {\n     *   validationErrors.forEach(error => {\n     *     console.error(`Field ${error.name} (Tag ${error.tag}) has error: ${error.error}`);\n     *   });\n     * }\n     */\n    public validate(requiredFieldsOnly = true): MessageError[] {\n        if (!LicenseManager.validateFreeLicense()) {\n            throw new Error(LicenseManager.ERROR_MESSAGE_NO_FREE_LICENSE);\n        }\n        return this.#validateMessage(this, requiredFieldsOnly);\n    }\n\n    /**\n     * Encodes the FIX message into a string format based on the current message data, including its header, body, and trailer.\n     * This method first validates the license, then constructs the message by adding fields such as `BeginString`, `BodyLength`,\n     * and `CheckSum`. It also calculates the body length and checksum dynamically, ensuring the message is correctly formatted\n     * according to the FIX protocol.\n     *\n     * @param {string} [separator=SOH] - The separator used to separate fields in the encoded FIX message. Defaults to `SOH` (Start of Header).\n     * @returns {string} The encoded FIX message string, including calculated body length and checksum.\n     * @throws {Error} If the license is invalid, it throws an error with a message indicating no valid license.\n     *\n     * @example\n     * const fixMessage = message.encode();\n     * console.log(fixMessage); // \"8=FIX.4.4|35=D|49=SenderCompID|56=TargetCompID|34=1|10=123\"\n     */\n    public encode(separator: string = SOH): string {\n        if (!LicenseManager.validateLicense()) {\n            throw new Error(LicenseManager.ERROR_MESSAGE_NO_LICENSE);\n        }\n        const fields: Field[] = this.data.map((field: Field) => new Field(field.tag, field.value));\n        const data: string[] = [];\n\n        let beginString: string = new Field(FieldType.BeginString, this.fixVersion).toString();\n        let bodyLength: string = new Field(FieldType.BodyLength, MARKER_BODYLENGTH).toString();\n        let checksum: string = new Field(FieldType.CheckSum, MARKER_CHECKSUM).toString();\n        let index: number = fields.findIndex((field) => field.tag === FieldType.BeginString);\n\n        // Check for header\n        if (index > -1) {\n            const version = parseFixVersion(fields[index].value);\n            beginString = new Field(FieldType.BeginString, version).toString();\n            fields.splice(index, 1);\n        }\n\n        // Check for body length\n        index = fields.findIndex((field) => field.tag === FieldType.BodyLength);\n        if (index > -1) {\n            bodyLength = fields[index].toString();\n            fields.splice(index, 1);\n        }\n\n        // Check for trailer\n        index = fields.findIndex((field) => field.tag === FieldType.CheckSum);\n        if (index > -1) {\n            checksum = fields[index].toString();\n            fields.splice(index, 1);\n        }\n\n        data.push(beginString);\n        data.push(bodyLength);\n\n        // Add other fields\n        fields.forEach((field) => {\n            data.push(field.toString());\n        });\n\n        data.push(checksum);\n\n        let fixMessage = `${data.join(separator)}${separator}`;\n        fixMessage = fixMessage.replace(MARKER_BODYLENGTH, this.#calculateBodyLength(fixMessage).toString());\n\n        const length: number =\n            fixMessage.lastIndexOf(TAG_CHECKSUM) === -1 ? fixMessage.length : fixMessage.lastIndexOf(TAG_CHECKSUM);\n        const calculatedChecksum: string = this.#calculateChecksum(fixMessage.substring(0, length));\n        fixMessage = fixMessage.replace(MARKER_CHECKSUM, calculatedChecksum);\n\n        return fixMessage;\n    }\n\n    /**\n     * Converts the current FIX message to a JSON-like structure (FIX JSON), representing the message in a format that mirrors the FIX protocol.\n     * The structure includes three main sections: `Header`, `Body`, and `Trailer`. Each section contains fields and, where applicable,\n     * groups of repeating fields. The method processes the fields in the `data` array and organizes them into these sections, handling\n     * groups, references, and field types appropriately.\n     *\n     * @returns {FIXJSON} The FIX message converted into a structured JSON-like format with `Header`, `Body`, and `Trailer` sections.\n     *\n     * @throws {Error} If the license is invalid, an error is thrown with a message indicating that no valid license is available.\n     *\n     * @example\n     * const fixJson = message.toFIXJSON();\n     * console.log(fixJson);\n     * // {\n     * //   \"Header\": {\n     * //     \"BeginString\": \"FIXT.1.1\",\n     * //     \"MsgType\": \"NewOrderSingle\",\n     * //     \"SenderCompID\": \"ABC\",\n     * //     \"TargetCompID\": \"XYZ\"\n     * //   },\n     * //   \"Body\": {\n     * //     \"OrderQty\": 1000,\n     * //     \"Price\": 50.25,\n     * //     \"Symbol\": \"AAPL\",\n     * //     \"Side\": \"Buy\"\n     * //   },\n     * //   \"Trailer\": {\n     * //     \"CheckSum\": \"123\"\n     * //   }\n     * // }\n     */\n    public toFIXJSON(): FIXJSON {\n        if (!LicenseManager.validateLicense()) {\n            throw new Error(LicenseManager.ERROR_MESSAGE_NO_LICENSE);\n        }\n        this.#initializeCacheMaps();\n        const headerFields: number[] | undefined = this.#_specComponents?.getTagsByComponentName('StandardHeader');\n        const trailerFields: number[] | undefined = this.#_specComponents?.getTagsByComponentName('StandardTrailer');\n\n        const header: Record<string, FIXValue | FIXValue[]> = {};\n        const body: Record<string, FIXValue | FIXValue[] | Record<string, FIXValue | FIXValue[]>[]> = {};\n        const trailer: Record<string, FIXValue | FIXValue[]> = {};\n\n        let groupIndex = 0;\n        const groups: RepeatingGroup[] = [];\n\n        const closeGroup = () => {\n            pushInstanceToValues();\n\n            const group: RepeatingGroup = groups[groupIndex];\n            const parent: RepeatingGroup | undefined | typeof body =\n                group.parentName === 'Body' ? body : groups.find((g) => g.name === group.parentName);\n\n            if (parent) {\n                if (group.parentName === 'Body') {\n                    body[group.name] = group.values;\n                } else {\n                    (parent.valueInstance as typeof body)[group.name] = group.values;\n                }\n            }\n\n            groups.splice(groupIndex, 1);\n            groupIndex--;\n        };\n\n        const closeAllGroups = (field: Field) => {\n            while (groups.length > 0 && !groups[groupIndex].availableTagsInGroup.has(field.tag)) {\n                closeGroup();\n            }\n        };\n\n        const createGroup = (field: Field, index: number) => {\n            const parentName = groups.length > 0 ? groups[groupIndex].name : 'Body';\n            const group: RepeatingGroup = {\n                name: field.name ?? `${field.tag}`,\n                parentName,\n                availableTagsInGroup: new Set<number>(),\n                valueInstanceFirstTag: this.data[index + 1].tag,\n                valueInstance: {},\n                values: [],\n            };\n\n            groups.push(group);\n            groupIndex = groups.length === 1 ? 0 : groupIndex + 1;\n\n            const groupFields = this.#_specGroups?.filterMapByNumInGroupId(field.tag, this.messageType);\n            if (!groupFields) return;\n\n            extractRefsIntoGroup(groupFields);\n        };\n\n        const extractRefsIntoGroup = (groupFields: ISpecGroups | ISpecComponents) => {\n            if (!groupFields) return;\n\n            const addRef = (ref: NumInGroup) => groups[groupIndex].availableTagsInGroup.add(Number(ref.id));\n\n            if (groupFields.numInGroup) {\n                addRef(groupFields.numInGroup);\n            }\n\n            if (groupFields.fieldRef) {\n                groupFields.fieldRef.forEach((ref) => {\n                    addRef(ref);\n                });\n            }\n\n            const processRefs = (refs: Ref[], spec: Groups | Components) => {\n                refs.forEach((ref) => {\n                    const refFields = spec.find(Number(ref.id));\n                    refFields && extractRefsIntoGroup(refFields);\n                });\n            };\n\n            if (groupFields.groupRef && this.#_specGroups) processRefs(groupFields.groupRef, this.#_specGroups);\n            if (groupFields.componentRef && this.#_specComponents)\n                processRefs(groupFields.componentRef, this.#_specComponents);\n        };\n\n        const pushInstanceToValues = () => {\n            const { valueInstance, values } = groups[groupIndex];\n            if (Object.keys(valueInstance).length > 0) {\n                values.push(valueInstance);\n                groups[groupIndex].valueInstance = {};\n            }\n        };\n\n        this.data.forEach((field: Field, index: number) => {\n            const tag = field.tag;\n            const value = field.enumeration?.name ?? field.value;\n            const fieldName: string = field.name ?? `${field.tag}`;\n\n            if (headerFields?.includes(tag)) {\n                header[fieldName] = value;\n                return;\n            }\n\n            if (trailerFields?.includes(tag)) {\n                closeAllGroups(field);\n                trailer[fieldName] = value;\n                return;\n            }\n\n            if (field?.type?.name === 'NumInGroup') {\n                if (groups.length === 0 || (groups.length > 0 && groups[groupIndex]?.availableTagsInGroup.has(tag))) {\n                    createGroup(field, index);\n                } else {\n                    closeGroup();\n                    createGroup(field, index);\n                }\n                return;\n            }\n\n            if (groups.length > 0 && groups[groupIndex].availableTagsInGroup.has(tag)) {\n                if (groups[groupIndex].valueInstanceFirstTag === tag) {\n                    pushInstanceToValues();\n                    groups[groupIndex].valueInstance[fieldName] = value;\n                } else {\n                    groups[groupIndex].valueInstance = {\n                        ...groups[groupIndex].valueInstance,\n                        [field?.name ?? String(tag)]: value,\n                    };\n                }\n                return;\n            }\n\n            closeAllGroups(field);\n\n            if (groups[groupIndex]?.valueInstanceFirstTag === tag) {\n                pushInstanceToValues();\n                groups[groupIndex].valueInstance[fieldName] = value;\n            }\n\n            if (!groups[groupIndex]?.availableTagsInGroup.has(tag)) {\n                body[fieldName] = value;\n            }\n        });\n\n        return {\n            Header: header,\n            Body: body,\n            Trailer: trailer,\n        };\n    }\n\n    /**\n     * Creates and returns a new instance of the `Message` class, which is a deep clone of the current `Message` instance.\n     * The cloned instance has the same `fixVersion`, `messageSequence`, and `messageType`, but the `data` array is also cloned to avoid references to the original fields.\n     *\n     * @returns {Message} A new `Message` instance that is a clone of the current one.\n     *\n     * @example\n     * const originalMessage = new Message('FIXT.1.1', field1, field2, field3);\n     * const clonedMessage = originalMessage.clone();\n     * console.log(clonedMessage); // A new Message instance with the same data as the original\n     */\n    public clone(): Message {\n        const cloned: Message = new Message(this.fixVersion, ...this.data);\n        cloned.messageSequence = this.messageSequence;\n        cloned.messageType = this.messageType;\n        return cloned;\n    }\n\n    /**\n     * Resets the internal state of the `Message` instance to its initial, empty state.\n     * This includes clearing all data fields, resetting various properties to their default values,\n     * and ensuring the message is in a clean state ready for processing.\n     *\n     * This method is typically used when you want to clear the state of the current `Message` object\n     * and prepare it for new data, e.g., when parsing or constructing a new FIX message.\n     *\n     * @private\n     * @returns {void} This method does not return any value.\n     *\n     * @example\n     * const message = new Message('FIX.4.4', field1, field2);\n     * message.reset(); // Clears all properties and prepares the message for a new state\n     */\n    private reset(): void {\n        this.data = [];\n        this.messageString = '';\n        this.description = '';\n        this.messageType = '';\n        this.messageSequence = -1;\n        this.structure = undefined;\n        this.bodyLengthValid = false;\n        this.checksumValid = false;\n        this.checksumValue = undefined;\n        this.checksumExpected = undefined;\n        this.bodyLengthValue = undefined;\n        this.bodyLengthExpected = undefined;\n    }\n}\n", "import type { ConnectionOptions, KeyObject, TlsOptions } from 'node:tls';\nimport type { IMessageStore } from 'fixparser-common';\nimport type { ProxyAgent } from 'proxy-agent';\nimport { Enums as EnumsCache } from './enums/Enums.ts';\nimport { Field } from './fields/Field.ts';\nimport { Fields as FieldsCache } from './fields/Fields.ts';\nimport { Field as FieldType } from './fieldtypes/Field.ts';\nimport { LicenseManager } from './licensemanager/LicenseManager.ts';\nimport type { LogOptions } from './logger/Logger.ts';\nimport { Message } from './message/Message.ts';\nimport { DEFAULT_FIX_VERSION, RE_ESCAPE, RE_FIND, SOH, STRING_EQUALS } from './util/util.ts';\n\n/**\n * Connection transport type.\n * @public\n */\nexport type Protocol = 'tcp' | 'ssl-tcp' | 'tls-tcp' | 'websocket';\n/**\n * Type of connection (client or server).\n * @public\n */\nexport type ConnectionType = 'acceptor' | 'initiator';\n\n/**\n * Represents the configuration options for initializing the instance.\n *\n * @typedef {Object} BaseOptions\n * @property {boolean} [skipValidation=false] - Whether to skip validation of FIX messages. Defaults to `false`.\n * @property {string} [fixVersion=\"FIXT.1.1\"] - The FIX protocol version to use. Defaults to `\"FIXT.1.1\"`, which is typically used by the BeginString tag (tag 8).\n * @property {boolean} [logging=true] - Whether to enable or disable logging. Defaults to `true`.\n * @property {LogOptions} [logOptions] - Options for customizing logging behavior. If not provided, no specific log configuration is applied.\n */\nexport type BaseOptions = {\n    /* Skip validation of fix messages */\n    skipValidation?: boolean;\n    /* Protocol version, defaults to \"FIXT.1.1\" used by BeginString tag 8 */\n    fixVersion?: string;\n    /* Disable logs */\n    logging?: boolean;\n    /* Log options */\n    logOptions?: LogOptions;\n};\n\n/**\n * FIXParser initialization options.\n * @public\n */\nexport type Options = {\n    /* Target hostname or IP address */\n    host?: string;\n    /* Target port */\n    port?: number;\n    /* Type of protocol */\n    protocol?: Protocol;\n    /* Assigned value used to identify firm sending message, SenderCompID tag 49 */\n    sender?: string;\n    /* Assigned value used to identify receiving firm, TargetCompID tag 56 */\n    target?: string;\n    /* Heartbeat interval in seconds */\n    heartbeatIntervalSeconds?: number;\n    /* Protocol version, defaults to \"FIXT.1.1\" used by BeginString tag 8 */\n    fixVersion?: string;\n    /* Message buffer of incoming messages, defaults to built-in MessageBuffer() */\n    messageStoreIn?: IMessageStore<Message>;\n    /* Message buffer of outgoing messages, defaults to built-in MessageBuffer() */\n    messageStoreOut?: IMessageStore<Message>;\n    /* Skip Standard Input pipe of TLS socket */\n    tlsSkipStdInPipe?: boolean;\n    /* TLS Connection Options */\n    tlsOptions?: ConnectionOptions | TlsOptions;\n    /* TLS timeout in milliseconds */\n    tlsTimeout?: number;\n    /* TLS encoding */\n    tlsEncoding?: BufferEncoding;\n    /* Use a proxy connection */\n    proxy?: ProxyAgent;\n    /* Skip validation of fix messages */\n    skipValidation?: boolean;\n    /* Called when the FIX connection is opened and ready */\n    onReady?: () => void;\n    /* Called when a message has been received */\n    onMessage?: (message: Message) => void;\n    /* Called when the FIX connection has been initiated */\n    onOpen?: () => void;\n    /* Called when the FIX connection has been closed */\n    onClose?: () => void;\n    /* Called if the FIX connection has failed */\n    onError?: (error?: Error) => void;\n};\n\n/**\n * Base class responsible for parsing and processing FIX messages.\n *\n * This class handles parsing of FIX messages, processing message fields and tags,\n * and performing validation on specific fields such as the body length, checksum,\n * and protocol version. It provides methods to process raw message data, extract\n * tag-value pairs, and validate the structure and content of FIX messages.\n */\nexport class FIXParserBase {\n    /* Protocol version, defaults to \"FIXT.1.1\" used by BeginString tag 8 */\n    public fixVersion: string = DEFAULT_FIX_VERSION;\n    /* Current Message instance being processed */\n    public message: Message | undefined = undefined;\n    /* Current FIX message tag=value pair */\n    public messageTags: string[] = [];\n    /* Current FIX message in string format */\n    public messageString = '';\n    /* Collection of field values from the FIX specification */\n    public fields: FieldsCache = new FieldsCache();\n    /* Collection of enum values from the FIX specification */\n    public enums: EnumsCache = new EnumsCache();\n    /* Proxy */\n    public proxy?: ProxyAgent = undefined;\n    /* TLS Private keys in PEM format */\n    public tlsKey?: string | Buffer | Array<string | Buffer | KeyObject>;\n    /* TLS Certificate chains in PEM format */\n    public tlsCert?: string | Buffer | Array<string | Buffer>;\n    /* TLS Use Server Name Indication extension (requires FQDN hostname) */\n    public tlsUseSNI?: boolean;\n    /* TLS Skip Standard Input pipe of socket */\n    public tlsSkipStdInPipe?: boolean;\n    /* Skip validation of fix messages */\n    public skipValidation?: boolean;\n\n    /**\n     * Processes the message string by searching for a specific pattern and replacing occurrences\n     * of a delimiter with a special character (SOH). It then sets the processed string into the\n     * message object and splits the string into tags for further processing.\n     *\n     * - Uses a regular expression to find specific patterns in the message string.\n     * - Replaces occurrences of the matched pattern with a delimiter (SOH).\n     * - Sets the processed message string into the `message` object and splits it into `messageTags`.\n     * - If the message format is invalid, the method resets the `message` and clears the `messageTags`.\n     *\n     * @returns {void}\n     */\n    public processMessage(): void {\n        const matches: RegExpExecArray | null = RE_FIND.exec(this.messageString);\n        if (matches && matches.length === 2) {\n            const stringData: string = this.messageString.replace(\n                new RegExp(matches[1].replace(RE_ESCAPE, '\\\\$&'), 'g'),\n                SOH,\n            );\n            if (this.message) {\n                this.message.messageString = stringData;\n            }\n            this.messageTags = stringData.split(SOH);\n        } else {\n            this.message = undefined;\n            this.messageTags = [];\n        }\n    }\n\n    /**\n     * Processes the fields of the message by iterating over the tags and values, extracting\n     * the tag-value pairs, and performing validation or other processing for specific fields.\n     *\n     * - Each tag-value pair is extracted from `messageTags` and converted into a `Field` object.\n     * - The field is processed by both `fields.processField()` and `enums.processEnum()` methods.\n     * - Special handling is applied to certain fields such as `BeginString`, `BodyLength`, and `CheckSum`.\n     * - Validates the body length and checksum for the message, and updates the `fixVersion` based on the `BeginString` field.\n     * - Adds each processed field to the `message` object for further processing or storage.\n     *\n     * @returns {void}\n     */\n    public processFields(): void {\n        let tag: number;\n        let value: string | number | undefined;\n        let i = 0;\n        let equalsOperator: number;\n        let field: Field;\n\n        for (i; i < this.messageTags.length - 1; i++) {\n            equalsOperator = this.messageTags[i].indexOf(STRING_EQUALS);\n\n            tag = Number(this.messageTags[i].substring(0, equalsOperator));\n            value = this.messageTags[i].substring(equalsOperator + 1);\n\n            field = new Field(tag, value);\n\n            this.fields.processField(this.message!, field);\n            this.enums.processEnum(field);\n\n            if (field.tag === FieldType.BeginString) {\n                this.message!.fixVersion = String(field.value);\n            } else if (field.tag === FieldType.BodyLength) {\n                this.message?.validateBodyLength(value);\n            } else if (field.tag === FieldType.CheckSum) {\n                this.message?.validateChecksum(value);\n            }\n\n            this.message?.addField(field);\n        }\n    }\n\n    /**\n     * Parses a string of data into an array of `Message` objects by splitting the input data\n     * into individual FIX messages and processing each message's fields and tags.\n     *\n     * The data is split using a regular expression to identify FIX message boundaries, specifically\n     * looking for the `8=FIX` marker. Each resulting message string is processed, and its fields\n     * are extracted and validated.\n     *\n     * - If the message string contains the `SOH` character, it is directly processed and split into tags.\n     * - If `SOH` is absent, the message is processed using the `processMessage()` method.\n     * - After processing, each `Message` object is populated with fields and added to the result array.\n     *\n     * @param {string} data - The raw data string containing one or more FIX messages.\n     * @returns {Message[]} An array of `Message` objects parsed from the input string.\n     */\n    public parse(data: string): Message[] {\n        if (!LicenseManager.validateFreeLicense()) {\n            throw new Error(LicenseManager.ERROR_MESSAGE_NO_FREE_LICENSE);\n        }\n\n        let i = 0;\n\n        const messageStrings: string[] = data ? data.split(/(?<!\\d)8=FIX/) : [];\n        const messages: Message[] = [];\n\n        for (i; i < messageStrings.length; i++) {\n            this.message = new Message(this.fixVersion);\n            this.messageString = `8=FIX${messageStrings[i]}`;\n            if (this.messageString.indexOf(SOH) > -1) {\n                this.message.messageString = this.messageString;\n                this.messageTags = this.messageString.split(SOH);\n            } else {\n                this.processMessage();\n            }\n\n            if (this.message) {\n                if (!this.skipValidation) {\n                    this.processFields();\n                }\n                messages.push(this.message);\n            }\n        }\n\n        return messages;\n    }\n}\n", "import type { ILogTransporter, LogMessage } from 'fixparser-common';\n\n/**\n * Logger output format options.\n *\n * - 'console': Output log in plain text format\n * - 'json': Output log in JSON format\n * - 'jsonrpc': Output log in JSON-RPC 2.0 format\n *\n * @public\n */\nexport type ConsoleFormat = 'console' | 'json' | 'jsonrpc';\n\n/**\n * A LogTransporter implementation for logging to the console.\n * It supports text (console), JSON, and JSON-RPC 2.0 formats.\n */\nexport class ConsoleLogTransport implements ILogTransporter {\n    private format: ConsoleFormat;\n    private useStderr: boolean;\n\n    constructor({ format = 'json', useStderr = false }: { format: ConsoleFormat; useStderr?: boolean }) {\n        this.format = format;\n        this.useStderr = useStderr;\n    }\n\n    /**\n     * Configures the format for console logging (either 'console' for text, 'json', or 'jsonrpc').\n     */\n    configure(config: { format: 'console' | 'json' | 'jsonrpc'; useStderr?: boolean }): void {\n        this.format = config.format || 'json';\n        if (config.useStderr !== undefined) {\n            this.useStderr = config.useStderr;\n        }\n    }\n\n    /**\n     * Sends the log message to the console in the configured format.\n     */\n    async send(log: LogMessage): Promise<void> {\n        const logMethod = this.useStderr ? console.error : console.log;\n\n        if (this.format === 'json') {\n            logMethod(JSON.stringify(log));\n        } else if (this.format === 'jsonrpc') {\n            const { message, ...rest } = log;\n            const jsonrpcMessage = {\n                jsonrpc: '2.0',\n                method: log.level,\n                params: {\n                    message,\n                    ...rest,\n                },\n            };\n            logMethod(JSON.stringify(jsonrpcMessage));\n        } else {\n            const { name, id, message, level, ...additionalProperties } = log;\n            const kv = Object.entries(additionalProperties).map(([key, value]) => `${key}: ${value}`);\n            let logMessage = '';\n            if (name) {\n                logMessage += `${name} `;\n            }\n            logMessage += `${id}: ${message}`;\n            void kv;\n            void level;\n            logMethod(logMessage, kv.join(', '));\n        }\n    }\n\n    /**\n     * Flushes the log buffer (if any buffering mechanism exists).\n     */\n    async flush(): Promise<void> {\n        // No flushing needed for console transport\n    }\n\n    /**\n     * Closes the transport (not needed for console, but keeping the method for consistency).\n     */\n    async close(): Promise<void> {\n        // No close logic needed for console transport\n    }\n\n    /**\n     * Returns the status of the transport (always \"connected\" for console).\n     */\n    status(): string {\n        return 'connected';\n    }\n}\n", "import type { ILogTransporter, Level, LogMessage } from 'fixparser-common';\nimport { uuidv4 } from 'fixparser-common';\nimport { ConsoleLogTransport, type ConsoleFormat as Format } from 'fixparser-plugin-log-console';\n\n/**\n * Configuration options for logging output.\n *\n * @public\n */\nexport type LogOptions = {\n    name?: string;\n    id?: string;\n    level?: Level;\n    format?: Format;\n    transport?: ILogTransporter;\n};\n\n/**\n * Determines if a message should be logged based on the current log level.\n * Messages are logged if their level is equal to or more severe than the current level.\n *\n * @param {LogMessage} message - The message to check\n * @param {Level} level - The current log level\n * @returns {boolean} True if the message should be logged, false otherwise\n */\nconst shouldLog = (message: LogMessage, level: Level): boolean => {\n    if (level === 'error' && message.level === 'error') {\n        return true;\n    }\n    if (level === 'warn' && (message.level === 'error' || message.level === 'warn')) {\n        return true;\n    }\n    return level === 'info' && (message.level === 'error' || message.level === 'warn' || message.level === 'info');\n};\n\n/**\n * Logger class for handling FIX protocol logging.\n * Provides methods for logging messages at different severity levels\n * and supports custom log transports and formats.\n */\nexport class Logger {\n    /** Name of the logger instance */\n    public name: string;\n    /** Unique identifier for the logger instance */\n    public id: string;\n    /** Whether logging is enabled */\n    readonly #enabled = true;\n    /** The transport used for sending log messages */\n    readonly #transport: ILogTransporter;\n    /** The format used for log messages */\n    readonly #format: Format;\n    /** Current log level */\n    #level: Level;\n\n    /**\n     * Creates a new Logger instance with the specified options.\n     *\n     * @param {LogOptions} [options] - Configuration options for the logger\n     * @param {string} [options.name=''] - Name of the logger\n     * @param {string} [options.id] - Unique identifier for the logger (auto-generated if not provided)\n     * @param {Level} [options.level='info'] - Initial log level\n     * @param {Format} [options.format='json'] - Log message format\n     * @param {ILogTransporter} [options.transport] - Custom log transport (defaults to console)\n     */\n    constructor(options?: LogOptions) {\n        this.name = options?.name ?? '';\n        this.id = options?.id ?? uuidv4();\n        this.#level = options?.level ?? 'info';\n        this.#level = options?.level ?? 'info';\n        this.#format = options?.format ?? 'json';\n        this.#transport = options?.transport ?? new ConsoleLogTransport({ format: this.#format });\n    }\n\n    /**\n     * Processes a log message, adding metadata and sending it through the transport.\n     * Only processes messages if logging is enabled and the message level meets the current level.\n     *\n     * @param {LogMessage} msg - The message to process\n     * @returns {this} The logger instance for chaining\n     */\n    private processMessage(msg: LogMessage): this {\n        if (this.#level === 'silent' || !this.#enabled) return this;\n\n        if (!shouldLog(msg, this.#level)) {\n            return this;\n        }\n\n        const processedMessage = {\n            name: this.name,\n            id: this.id,\n            timestamp: Date.now(),\n            ...msg,\n        };\n\n        this.#transport.send(processedMessage);\n\n        return this;\n    }\n\n    /**\n     * Logs a message at the specified level.\n     * If no level is specified, defaults to 'info'.\n     *\n     * @param {LogMessage} msg - The message to log\n     * @returns {this} The logger instance for chaining\n     */\n    public log(msg: LogMessage): this {\n        return this.processMessage({ ...msg, level: msg.level ? msg.level : ('info' as Level) });\n    }\n\n    /**\n     * Logs a warning message.\n     *\n     * @param {Omit<LogMessage, 'level'>} msg - The message to log (level will be set to 'warn')\n     * @returns {this} The logger instance for chaining\n     */\n    public logWarning(msg: Omit<LogMessage, 'level'>): this {\n        return this.processMessage({ ...msg, level: 'warn' as Level } as LogMessage);\n    }\n\n    /**\n     * Logs an error message.\n     *\n     * @param {Omit<LogMessage, 'level'>} msg - The message to log (level will be set to 'error')\n     * @returns {this} The logger instance for chaining\n     */\n    public logError(msg: Omit<LogMessage, 'level'>): this {\n        return this.processMessage({ ...msg, level: 'error' as Level } as LogMessage);\n    }\n\n    /**\n     * Sets whether the logger should be silent.\n     * When silent, no messages will be logged regardless of their level.\n     *\n     * @param {boolean} silent - Whether to silence the logger\n     */\n    public set silent(silent: boolean) {\n        this.#level = silent ? 'silent' : 'info';\n    }\n\n    /**\n     * Gets whether the logger is currently silent.\n     *\n     * @returns {boolean} True if the logger is silent, false otherwise\n     */\n    public get silent(): boolean {\n        return this.#level === 'silent';\n    }\n\n    /**\n     * Gets the current log level.\n     *\n     * @returns {Level} The current log level\n     */\n    public get level(): Level {\n        return this.#level;\n    }\n\n    /**\n     * Gets the current log format.\n     *\n     * @returns {Format} The current log format\n     */\n    public get format(): Format {\n        return this.#format;\n    }\n}\n\nexport type { Format };\n", "import { Field } from '../fields/Field.ts';\nimport { Field as FieldType } from '../fieldtypes/Field.ts';\nimport { GapFillFlag } from '../fieldtypes/index.ts';\nimport { Message as MessageType } from '../fieldtypes/Message.ts';\nimport type { IFIXParser } from '../IFIXParser.ts';\nimport { LicenseManager } from '../licensemanager/LicenseManager.ts';\nimport type { Message } from '../message/Message.ts';\n\n/**\n * Creates a Heartbeat message for the FIX session.\n * Heartbeat messages are used to maintain the connection and indicate that the session is still active.\n * Optionally includes a TestReqID if provided.\n *\n * @param {IFIXParser} parser - The FIX parser instance\n * @param {Field} [testReqId] - Optional TestReqID field to include in the heartbeat\n * @returns {Message} A FIX Heartbeat message\n * @throws {Error} If the license is invalid\n */\nexport const heartBeat = (parser: IFIXParser, testReqId?: Field): Message => {\n    if (!LicenseManager.validateLicense()) {\n        throw new Error(LicenseManager.ERROR_MESSAGE_NO_LICENSE);\n    }\n    const fields: Field[] = [\n        new Field(FieldType.BeginString, parser.fixVersion),\n        new Field(FieldType.MsgType, MessageType.Heartbeat),\n        new Field(FieldType.MsgSeqNum, parser.getNextTargetMsgSeqNum()),\n        new Field(FieldType.SenderCompID, parser.sender),\n        new Field(FieldType.TargetCompID, parser.target),\n        new Field(FieldType.SendingTime, parser.getTimestamp(new Date())),\n    ];\n\n    if (testReqId) {\n        fields.push(testReqId);\n    }\n\n    return parser.createMessage(...fields);\n};\n\n/**\n * Creates a Sequence Reset message for the FIX session.\n * Used to reset the sequence numbers between two parties in a FIX session.\n * Can be used to fill gaps in message sequences or to reset the sequence number.\n *\n * @param {IFIXParser} parser - The FIX parser instance\n * @param {number} seqNo - The current sequence number\n * @param {number} newSeqNo - The new sequence number to set\n * @param {'Y' | 'N'} [gapFillFlag=GapFillFlag.GapFillMessage] - Flag indicating if this is a gap fill message\n * @returns {Message} A FIX Sequence Reset message\n * @throws {Error} If the license is invalid\n */\nexport const sequenceReset = (\n    parser: IFIXParser,\n    seqNo: number,\n    newSeqNo: number,\n    gapFillFlag: 'Y' | 'N' = GapFillFlag.GapFillMessage,\n): Message => {\n    if (!LicenseManager.validateLicense()) {\n        throw new Error(LicenseManager.ERROR_MESSAGE_NO_LICENSE);\n    }\n    const fields: Field[] = [\n        new Field(FieldType.BeginString, parser.fixVersion),\n        new Field(FieldType.MsgType, MessageType.SequenceReset),\n        new Field(FieldType.MsgSeqNum, seqNo),\n        new Field(FieldType.SenderCompID, parser.sender),\n        new Field(FieldType.TargetCompID, parser.target),\n        new Field(FieldType.SendingTime, parser.getTimestamp(new Date())),\n        new Field(FieldType.GapFillFlag, gapFillFlag),\n        new Field(FieldType.NewSeqNo, newSeqNo + 1),\n    ];\n\n    return parser.createMessage(...fields);\n};\n", "import type { IMessageStore } from 'fixparser-common';\nimport { Field } from '../fields/Field.ts';\nimport { Field as FieldType } from '../fieldtypes/Field.ts';\nimport { EncryptMethod, ResetSeqNumFlag } from '../fieldtypes/index.ts';\nimport { Message as MessageType } from '../fieldtypes/Message.ts';\nimport type { IFIXParser } from '../IFIXParser.ts';\nimport type { Message } from '../message/Message.ts';\n\n/**\n * Handles the Logon message in a FIX session.\n * This function processes the Logon message, validates the sender and target,\n * and manages the session state accordingly.\n *\n * @param {IFIXParser} parser - The FIX parser instance handling the session\n * @param {IMessageStore<Message>} messageStore - The message store for managing message sequences\n * @param {Message} message - The Logon message to process\n * @returns {boolean} - Returns true if the Logon was successful, false otherwise\n */\nexport const handleLogon = (parser: IFIXParser, _messageStore: IMessageStore<Message>, message: Message): boolean => {\n    if (parser.isLoggedIn) {\n        if (parser.connectionType === 'acceptor') {\n            if (\n                message.getField(FieldType.ResetSeqNumFlag) &&\n                message.getField(FieldType.ResetSeqNumFlag)!.value!.toString() === 'Y'\n            ) {\n                parser.logger.log({\n                    level: 'info',\n                    message: `FIXServer (${parser.protocol!.toUpperCase()}): -- Logon acknowledged by acceptor.`,\n                    fix: message.encode('|'),\n                });\n                parser.messageStoreIn.setNextMsgSeqNum(1);\n            }\n        } else {\n            parser.logger.log({\n                level: 'info',\n                message: `FIXServer (${parser.protocol!.toUpperCase()}): -- Logon acknowledged by initiator.`,\n                fix: message.encode('|'),\n            });\n        }\n        return true;\n    }\n\n    const fixVersion: string | undefined = String(message.getField(FieldType.BeginString)?.value);\n    let validSender = true;\n    let validTarget = true;\n\n    if (fixVersion) {\n        parser.logger.log({\n            level: 'info',\n            message: `FIXServer (${parser.protocol?.toUpperCase()}): -- FIX version set to ${fixVersion}`,\n            fix: message.encode('|'),\n        });\n        parser.fixVersion = fixVersion;\n        if (parser.fixParser) {\n            parser.fixParser.fixVersion = fixVersion;\n        }\n    }\n\n    const target: string | undefined = message.getField(FieldType.TargetCompID)?.value?.toString() ?? parser.sender;\n    const sender: string | undefined = message.getField(FieldType.SenderCompID)?.value?.toString() ?? parser.target;\n\n    if (target && target !== parser.sender) {\n        parser.logger.logWarning({\n            message: `FIXServer (${parser.protocol!.toUpperCase()}): -- Expected TargetCompID=${\n                parser.sender\n            }, but got ${target}`,\n            fix: message.encode('|'),\n        });\n        validTarget = false;\n    }\n    if (sender && sender !== parser.target) {\n        parser.logger.logWarning({\n            message: `FIXServer (${parser.protocol?.toUpperCase()}): -- Expected SenderCompID=${\n                parser.target\n            }, but got ${sender}`,\n            fix: message.encode('|'),\n        });\n        validSender = false;\n    }\n\n    if (validSender && validTarget) {\n        if (parser.connectionType === 'acceptor') {\n            const logonAcknowledge: Message = parser.createMessage(\n                new Field(FieldType.MsgType, MessageType.Logon),\n                new Field(FieldType.MsgSeqNum, message.getField(FieldType.MsgSeqNum)?.value?.toString()),\n                new Field(FieldType.SenderCompID, target),\n                new Field(FieldType.SendingTime, parser.getTimestamp(new Date())),\n                new Field(FieldType.TargetCompID, sender),\n                new Field(\n                    FieldType.ResetSeqNumFlag,\n                    message.getField(FieldType.ResetSeqNumFlag)?.value?.toString() === 'Y'\n                        ? ResetSeqNumFlag.Yes\n                        : ResetSeqNumFlag.No,\n                ),\n                new Field(FieldType.EncryptMethod, EncryptMethod.None),\n                new Field(\n                    FieldType.HeartBtInt,\n                    message.getField(FieldType.HeartBtInt)\n                        ? (message.getField(FieldType.HeartBtInt)?.value as number)\n                        : parser.heartBeatInterval,\n                ),\n            );\n            parser.send(logonAcknowledge);\n            parser.logger.log({\n                level: 'info',\n                message: `FIXServer (${parser.protocol?.toUpperCase()}): >> sent Logon acknowledge`,\n                fix: logonAcknowledge.encode('|'),\n            });\n        }\n\n        if (\n            message.getField(FieldType.ResetSeqNumFlag) &&\n            message.getField(FieldType.ResetSeqNumFlag)?.value?.toString() === 'Y'\n        ) {\n            parser.logger.log({\n                level: 'info',\n                message: `FIXServer (${parser.protocol?.toUpperCase()}): -- Logon contains ResetSeqNumFlag=Y, resetting sequence numbers to 1`,\n                fix: message.encode('|'),\n            });\n            parser.messageStoreIn.setNextMsgSeqNum(1);\n            parser.setNextTargetMsgSeqNum(2);\n        }\n\n        parser.isLoggedIn = true;\n        parser.logger.log({\n            level: 'info',\n            message: `FIXServer (${parser.protocol?.toUpperCase()}): >> Logon successful by ${parser.connectionType}`,\n            fix: message.encode('|'),\n        });\n        const heartBtField = message.getField(FieldType.HeartBtInt);\n        const heartBeatInterval: number =\n            heartBtField?.value !== undefined && heartBtField?.value !== null\n                ? Number(heartBtField.value)\n                : parser.heartBeatInterval;\n        parser.heartBeatInterval = heartBeatInterval;\n        if (parser.fixParser) {\n            parser.fixParser.heartBeatInterval = heartBeatInterval;\n        }\n        parser.startHeartbeat(heartBeatInterval);\n        return true;\n    }\n    const logonReject: Message = parser.createMessage(\n        new Field(FieldType.MsgType, MessageType.Logout),\n        new Field(FieldType.MsgSeqNum, parser.getNextTargetMsgSeqNum()),\n        new Field(FieldType.SenderCompID, validSender ? sender : 'INVALID_SENDER'),\n        new Field(FieldType.SendingTime, parser.getTimestamp(new Date())),\n        new Field(FieldType.TargetCompID, validTarget ? target : 'INVALID_TARGET'),\n        new Field(FieldType.Text, 'Invalid Logon TARGET or SENDER.'),\n    );\n    parser.isLoggedIn = false;\n    parser.send(logonReject);\n    parser.logger.logWarning({\n        message: `FIXServer (${parser.protocol?.toUpperCase()}): >> sent Logout due to invalid Logon`,\n        fix: message.encode('|'),\n    });\n    parser.stopHeartbeat();\n    parser.close();\n    return false;\n};\n", "import { Field } from '../fields/Field.ts';\nimport { Field as FieldType } from '../fieldtypes/Field.ts';\nimport { Message as MessageType } from '../fieldtypes/Message.ts';\nimport type { IFIXParser } from '../IFIXParser.ts';\nimport type { Message } from '../message/Message.ts';\n\nexport const handleLogout = (parser: IFIXParser, message: Message): void => {\n    parser.isLoggedIn = false;\n\n    if (!parser.requestedLogout) {\n        const logoutAcknowledge: Message = parser.createMessage(\n            new Field(FieldType.MsgType, MessageType.Logout),\n            new Field(FieldType.MsgSeqNum, parser.getNextTargetMsgSeqNum()),\n            new Field(\n                FieldType.SenderCompID,\n                message.getField(FieldType.SenderCompID)\n                    ? message.getField(FieldType.TargetCompID)!.value!.toString()\n                    : parser.sender,\n            ),\n            new Field(FieldType.SendingTime, parser.getTimestamp(new Date())),\n            new Field(\n                FieldType.TargetCompID,\n                message.getField(FieldType.SenderCompID)\n                    ? message.getField(FieldType.SenderCompID)!.value!.toString()\n                    : parser.target,\n            ),\n            new Field(FieldType.Text, 'Logout acknowledgement'),\n        );\n        parser.send(logoutAcknowledge);\n        parser.logger.log({\n            level: 'info',\n            message: `FIXServer (${parser.protocol?.toUpperCase()}): >> sent Logout acknowledge`,\n            fix: logoutAcknowledge.encode('|'),\n        });\n    }\n    parser.stopHeartbeat();\n    parser.close();\n};\n", "import { type IAsyncMessageStore, type IMessage, type IMessageStore, isAsyncMessageStore } from 'fixparser-common';\nimport { Field } from '../fields/Field.ts';\nimport { Field as FieldType } from '../fieldtypes/Field.ts';\nimport { GapFillFlag, MsgType, PossDupFlag } from '../fieldtypes/index.ts';\nimport type { IFIXParser } from '../IFIXParser.ts';\nimport type { Message } from '../message/Message.ts';\nimport { sequenceReset } from './../messagetemplates/MessageTemplates.ts';\n\n/**\n * Handles the ResendRequest message in a FIX session.\n * This function processes the ResendRequest message, retrieves the requested messages\n * from the message store, and resends them with appropriate flags and timestamps.\n * If messages are not found, it sends a SequenceReset message to fill the gap.\n *\n * @param {IFIXParser} parser - The FIX parser instance handling the session\n * @param {IMessageStore<Message>} messageStore - The message store containing the messages to resend\n * @param {Message} message - The ResendRequest message containing the sequence range to resend\n */\nexport const handleResendRequest = (\n    parser: IFIXParser,\n    messageStore: IMessageStore<Message>,\n    message: Message,\n): void => {\n    const from: number | undefined = message.getField(FieldType.BeginSeqNo)\n        ? Number(message.getField(FieldType.BeginSeqNo)?.value)\n        : undefined;\n    let to: number | undefined = message.getField(FieldType.EndSeqNo)\n        ? Number(message.getField(FieldType.EndSeqNo)?.value)\n        : undefined;\n\n    if (from === undefined || to === undefined) {\n        parser.logger.logWarning({\n            message: `${\n                parser.parserName\n            } (${parser.protocol?.toUpperCase()}): -- Ignoring ResendRequest - Invalid BeginSeqNo or EndSeqNo`,\n        });\n        return;\n    }\n\n    if (to === 0) {\n        to = parser.getNextTargetMsgSeqNum() > from ? parser.getNextTargetMsgSeqNum() - 1 : from;\n    }\n\n    // If the message store does not have the requested messages then force reset sequence numbers\n    if (messageStore.size() === 0) {\n        parser.logger.logWarning({\n            message: `${\n                parser.parserName\n            } (${parser.protocol?.toUpperCase()}): -- Message Store does not contain the messages requested by the ResendRequest. Sending SequenceReset.`,\n        });\n        parser.send(sequenceReset(parser, from, to, GapFillFlag.SequenceReset));\n        parser.setNextTargetMsgSeqNum(to + 1);\n        return;\n    }\n\n    if (from >= 1 && to >= from) {\n        let i: number = from;\n        let targetMsgSeqNum: number = to;\n        for (i; i <= to; i++) {\n            const messageBySequenceFromStore: IMessage | undefined = messageStore.getByMsgSequence(i);\n            if (messageBySequenceFromStore) {\n                const messageBySequence = messageBySequenceFromStore as Message;\n                const messageType = messageBySequence.getField(FieldType.MsgType)?.value;\n                if (\n                    // Administrative messages\n                    messageType === MsgType.Heartbeat ||\n                    messageType === MsgType.Logon ||\n                    messageType === MsgType.Logout ||\n                    messageType === MsgType.Reject ||\n                    messageType === MsgType.ResendRequest ||\n                    messageType === MsgType.SequenceReset ||\n                    messageType === MsgType.TestRequest ||\n                    messageType === MsgType.XMLnonFIX ||\n                    // Session-level messages\n                    messageType === MsgType.MarketDataSnapshotFullRefresh ||\n                    messageType === MsgType.SecurityDefinition\n                ) {\n                    if (from === to || i < to) {\n                        const seqResetMessage = sequenceReset(parser, i, i, GapFillFlag.GapFillMessage);\n                        parser.send(seqResetMessage);\n                        parser.logger.log({\n                            level: 'info',\n                            message: `${parser.parserName} (${parser.protocol?.toUpperCase()}): >> resending message with sequence ${i} (replaced administrative message)`,\n                            fix: seqResetMessage.encode('|'),\n                        });\n                    }\n                } else {\n                    messageBySequence.removeFieldByTag(FieldType.PossDupFlag);\n                    messageBySequence.addField(new Field(FieldType.PossDupFlag, PossDupFlag.PossibleDuplicate));\n\n                    if (messageBySequence.getField(FieldType.SendingTime)) {\n                        const originalSendingTime: string = `${messageBySequence.getField(FieldType.SendingTime)?.value}`;\n                        messageBySequence.removeFieldByTag(FieldType.SendingTime);\n                        messageBySequence.addField(new Field(FieldType.SendingTime, parser.getTimestamp(new Date())));\n\n                        messageBySequence.removeFieldByTag(FieldType.OrigSendingTime);\n                        messageBySequence.addField(new Field(FieldType.OrigSendingTime, originalSendingTime));\n                    }\n                    parser.send(messageBySequence);\n                    parser.logger.log({\n                        level: 'info',\n                        message: `${parser.parserName} (${parser.protocol?.toUpperCase()}): >> resending message with sequence ${i}`,\n                        fix: messageBySequence.encode('|'),\n                    });\n                }\n                targetMsgSeqNum = i + 1;\n            } else {\n                parser.send(sequenceReset(parser, i, to, GapFillFlag.GapFillMessage));\n                parser.logger.logWarning({\n                    message: `${\n                        parser.parserName\n                    } (${parser.protocol?.toUpperCase()}): -- Could not find message with sequence ${i}. Sending SequenceReset-GapFill from ${i} to ${to}...`,\n                });\n                targetMsgSeqNum = to + 1;\n                break;\n            }\n        }\n        parser.setNextTargetMsgSeqNum(targetMsgSeqNum);\n        parser.logger.log({\n            level: 'info',\n            message: `${parser.parserName} (${parser.protocol?.toUpperCase()}): >> sent message sequence from ${from} to ${to}`,\n        });\n    } else {\n        parser.logger.logWarning({\n            message: `${parser.parserName} (${parser.protocol?.toUpperCase()}): -- BeginSeqNo<${from}> or EndSeqNo<${to}> out of range`,\n        });\n    }\n};\n\n/**\n * Async variant of handleResendRequest for stores that implement IAsyncMessageStore.\n * Uses getByMsgSequenceAsync() to retrieve messages from persistent storage.\n * If the store is not async, delegates to the synchronous handleResendRequest.\n *\n * @param {IFIXParser} parser - The FIX parser instance handling the session\n * @param {IMessageStore<Message>} messageStore - The message store containing the messages to resend\n * @param {Message} message - The ResendRequest message containing the sequence range to resend\n */\nexport const handleResendRequestAsync = async (\n    parser: IFIXParser,\n    messageStore: IMessageStore<Message>,\n    message: Message,\n): Promise<void> => {\n    if (!isAsyncMessageStore(messageStore)) {\n        handleResendRequest(parser, messageStore, message);\n        return;\n    }\n\n    const asyncStore: IAsyncMessageStore<Message> = messageStore;\n\n    const from: number | undefined = message.getField(FieldType.BeginSeqNo)\n        ? Number(message.getField(FieldType.BeginSeqNo)?.value)\n        : undefined;\n    let to: number | undefined = message.getField(FieldType.EndSeqNo)\n        ? Number(message.getField(FieldType.EndSeqNo)?.value)\n        : undefined;\n\n    if (from === undefined || to === undefined) {\n        parser.logger.logWarning({\n            message: `${\n                parser.parserName\n            } (${parser.protocol?.toUpperCase()}): -- Ignoring ResendRequest - Invalid BeginSeqNo or EndSeqNo`,\n        });\n        return;\n    }\n\n    if (to === 0) {\n        to = parser.getNextTargetMsgSeqNum() > from ? parser.getNextTargetMsgSeqNum() - 1 : from;\n    }\n\n    // Check both in-memory and persistent store\n    if (messageStore.size() === 0) {\n        const allMessages = await asyncStore.getAllAsync();\n        if (allMessages.length === 0) {\n            parser.logger.logWarning({\n                message: `${\n                    parser.parserName\n                } (${parser.protocol?.toUpperCase()}): -- Message Store does not contain the messages requested by the ResendRequest. Sending SequenceReset.`,\n            });\n            parser.send(sequenceReset(parser, from, to, GapFillFlag.SequenceReset));\n            parser.setNextTargetMsgSeqNum(to + 1);\n            return;\n        }\n    }\n\n    if (from >= 1 && to >= from) {\n        let i: number = from;\n        let targetMsgSeqNum: number = to;\n        for (i; i <= to; i++) {\n            const messageBySequenceFromStore: IMessage | undefined = await asyncStore.getByMsgSequenceAsync(i);\n            if (messageBySequenceFromStore) {\n                const messageBySequence = messageBySequenceFromStore as Message;\n                const messageType = messageBySequence.getField(FieldType.MsgType)?.value;\n                if (\n                    // Administrative messages\n                    messageType === MsgType.Heartbeat ||\n                    messageType === MsgType.Logon ||\n                    messageType === MsgType.Logout ||\n                    messageType === MsgType.Reject ||\n                    messageType === MsgType.ResendRequest ||\n                    messageType === MsgType.SequenceReset ||\n                    messageType === MsgType.TestRequest ||\n                    messageType === MsgType.XMLnonFIX ||\n                    // Session-level messages\n                    messageType === MsgType.MarketDataSnapshotFullRefresh ||\n                    messageType === MsgType.SecurityDefinition\n                ) {\n                    if (from === to || i < to) {\n                        const seqResetMessage = sequenceReset(parser, i, i, GapFillFlag.GapFillMessage);\n                        parser.send(seqResetMessage);\n                        parser.logger.log({\n                            level: 'info',\n                            message: `${parser.parserName} (${parser.protocol?.toUpperCase()}): >> resending message with sequence ${i} (replaced administrative message)`,\n                            fix: seqResetMessage.encode('|'),\n                        });\n                    }\n                } else {\n                    messageBySequence.removeFieldByTag(FieldType.PossDupFlag);\n                    messageBySequence.addField(new Field(FieldType.PossDupFlag, PossDupFlag.PossibleDuplicate));\n\n                    if (messageBySequence.getField(FieldType.SendingTime)) {\n                        const originalSendingTime: string = `${messageBySequence.getField(FieldType.SendingTime)?.value}`;\n                        messageBySequence.removeFieldByTag(FieldType.SendingTime);\n                        messageBySequence.addField(new Field(FieldType.SendingTime, parser.getTimestamp(new Date())));\n\n                        messageBySequence.removeFieldByTag(FieldType.OrigSendingTime);\n                        messageBySequence.addField(new Field(FieldType.OrigSendingTime, originalSendingTime));\n                    }\n                    parser.send(messageBySequence);\n                    parser.logger.log({\n                        level: 'info',\n                        message: `${parser.parserName} (${parser.protocol?.toUpperCase()}): >> resending message with sequence ${i}`,\n                        fix: messageBySequence.encode('|'),\n                    });\n                }\n                targetMsgSeqNum = i + 1;\n            } else {\n                parser.send(sequenceReset(parser, i, to, GapFillFlag.GapFillMessage));\n                parser.logger.logWarning({\n                    message: `${\n                        parser.parserName\n                    } (${parser.protocol?.toUpperCase()}): -- Could not find message with sequence ${i}. Sending SequenceReset-GapFill from ${i} to ${to}...`,\n                });\n                targetMsgSeqNum = to + 1;\n                break;\n            }\n        }\n        parser.setNextTargetMsgSeqNum(targetMsgSeqNum);\n        parser.logger.log({\n            level: 'info',\n            message: `${parser.parserName} (${parser.protocol?.toUpperCase()}): >> sent message sequence from ${from} to ${to}`,\n        });\n    } else {\n        parser.logger.logWarning({\n            message: `${parser.parserName} (${parser.protocol?.toUpperCase()}): -- BeginSeqNo<${from}> or EndSeqNo<${to}> out of range`,\n        });\n    }\n};\n", "import { Field } from '../fields/Field.ts';\nimport { Field as FieldType } from '../fieldtypes/Field.ts';\nimport { Message as MessageType } from '../fieldtypes/Message.ts';\nimport type { IFIXParser } from '../IFIXParser.ts';\nimport type { Message } from '../message/Message.ts';\n\n/**\n * Handles message sequence validation in a FIX session.\n * This function checks if the received message's sequence number matches the expected sequence number.\n * If there is a mismatch, it sends a ResendRequest message to request the missing messages.\n *\n * @param {IFIXParser} parser - The FIX parser instance handling the session\n * @param {Message} message - The message to validate sequence number for\n * @returns {boolean} - Returns true if the sequence number is valid, false otherwise\n */\nexport const handleSequence = (parser: IFIXParser, message: Message): boolean => {\n    if (\n        message.messageSequence !== parser.messageStoreIn.getNextMsgSeqNum() &&\n        message.messageType !== MessageType.Logon &&\n        message.messageType !== MessageType.SequenceReset\n    ) {\n        parser.logger.logWarning({\n            message: `FIXServer (${parser.protocol?.toUpperCase()}): Expected MsgSeqNum ${parser.messageStoreIn.getNextMsgSeqNum()}, but got ${\n                message.messageSequence\n            }`,\n            fix: message.encode('|'),\n        });\n\n        // Message has wrong sequence, respond with ResendRequest\n        const resendRequest: Message = parser.createMessage(\n            new Field(FieldType.MsgType, MessageType.ResendRequest),\n            new Field(FieldType.MsgSeqNum, parser.getNextTargetMsgSeqNum()),\n            new Field(FieldType.SenderCompID, parser.sender),\n            new Field(FieldType.SendingTime, parser.getTimestamp(new Date())),\n            new Field(FieldType.TargetCompID, parser.target),\n            new Field(FieldType.BeginSeqNo, parser.messageStoreIn.getNextMsgSeqNum()),\n            new Field(FieldType.EndSeqNo, 0),\n        );\n        parser.logger.log({\n            level: 'info',\n            message: `FIXServer (${parser.protocol?.toUpperCase()}): Sending ResendRequest from ${parser.messageStoreIn.getNextMsgSeqNum()} to 0`,\n            fix: resendRequest.encode('|'),\n        });\n        parser.send(resendRequest);\n        return false;\n    }\n    return true;\n};\n", "import { Field as FieldType } from '../fieldtypes/Field.ts';\nimport type { IFIXParser } from '../IFIXParser.ts';\nimport type { Message } from '../message/Message.ts';\n\n/**\n * Handles the SequenceReset message in a FIX session.\n * This function processes the SequenceReset message and updates the message sequence number\n * to the new value specified in the message.\n *\n * @param {IFIXParser} parser - The FIX parser instance handling the session\n * @param {Message} message - The SequenceReset message containing the new sequence number\n */\nexport const handleSequenceReset = (parser: IFIXParser, message: Message): void => {\n    const newSeqNo: number = message.getField(FieldType.NewSeqNo)?.value as number;\n    if (newSeqNo && Number.isFinite(newSeqNo)) {\n        parser.logger.log({\n            level: 'info',\n            message: `${\n                parser.parserName\n            } (${parser.protocol?.toUpperCase()}): -- SequenceReset: new sequence number ${newSeqNo}`,\n            fix: message.encode('|'),\n        });\n        parser.messageStoreIn.setNextMsgSeqNum(Number(newSeqNo) - 1);\n    }\n};\n", "import { Field } from '../fields/Field.ts';\nimport { Field as FieldType } from '../fieldtypes/Field.ts';\nimport type { IFIXParser } from '../IFIXParser.ts';\nimport type { Message } from '../message/Message.ts';\nimport { heartBeat } from '../messagetemplates/MessageTemplates.ts';\n\n/**\n * Handles the TestRequest message in a FIX session.\n * This function processes the TestRequest message and responds with a Heartbeat message.\n * If the TestRequest contains a TestReqID, it is included in the Heartbeat response.\n *\n * @param {IFIXParser} parser - The FIX parser instance handling the session\n * @param {Message} message - The TestRequest message to process\n */\nexport const handleTestRequest = (parser: IFIXParser, message: Message): void => {\n    let heartBeatMessage: Message = heartBeat(parser);\n    const testReqIdValue: string | undefined = (message.getField(FieldType.TestReqID)?.value as string) ?? null;\n    if (testReqIdValue !== null && testReqIdValue !== '') {\n        const testReqId: Field = new Field(FieldType.TestReqID, testReqIdValue);\n        heartBeatMessage = heartBeat(parser, testReqId);\n        parser.send(heartBeatMessage);\n        parser.logger.log({\n            level: 'info',\n            message: `${\n                parser.parserName\n            } (${parser.protocol?.toUpperCase()}): >> responded to TestRequest with Heartbeat<TestReqID=${testReqIdValue}>`,\n            fix: heartBeatMessage.encode('|'),\n        });\n    } else {\n        parser.send(heartBeatMessage);\n        parser.logger.log({\n            level: 'info',\n            message: `${parser.parserName} (${parser.protocol?.toUpperCase()}): >> responded to TestRequest with Heartbeat`,\n            fix: heartBeatMessage.encode('|'),\n        });\n    }\n};\n", "import { isAsyncMessageStore } from 'fixparser-common';\nimport type { FIXParser } from '../FIXParser.ts';\nimport type { FIXParser as FIXParserBrowser } from '../FIXParserBrowser.ts';\nimport { Message as MessageType } from '../fieldtypes/Message.ts';\nimport type { Message } from '../message/Message.ts';\nimport { handleLogon } from './SessionLogon.ts';\nimport { handleLogout } from './SessionLogout.ts';\nimport { handleResendRequest, handleResendRequestAsync } from './SessionResendRequest.ts';\nimport { handleSequence } from './SessionSequence.ts';\nimport { handleSequenceReset } from './SessionSequenceReset.ts';\nimport { handleTestRequest } from './SessionTestRequest.ts';\n\n/**\n * Processes incoming messages for a FIX client session.\n * This function handles message sequence validation, logging, and routing to appropriate\n * message handlers based on the message type. It also manages heartbeat timers and\n * message sequence numbers.\n *\n * @param {FIXParser | FIXParserBrowser} parser - The FIX parser instance handling the session\n * @param {Message} message - The message to process\n */\nexport const clientProcessMessage = (parser: FIXParser | FIXParserBrowser, message: Message): void => {\n    handleSequence(parser, message);\n    parser.logger.log({\n        level: 'info',\n        message: `FIXParser (${parser.protocol?.toUpperCase()}): << received ${message.description}`,\n        fix: message.encode('|'),\n    });\n    parser.restartHeartbeat();\n\n    if (message.messageType === MessageType.SequenceReset) {\n        handleSequenceReset(parser, message);\n    } else if (message.messageType === MessageType.TestRequest) {\n        handleTestRequest(parser, message);\n    } else if (message.messageType === MessageType.Logon) {\n        handleLogon(parser, parser.messageStoreOut, message);\n    } else if (message.messageType === MessageType.Logout) {\n        handleLogout(parser, message);\n    } else if (message.messageType === MessageType.ResendRequest) {\n        if (isAsyncMessageStore(parser.messageStoreOut)) {\n            void handleResendRequestAsync(parser, parser.messageStoreOut, message);\n        } else {\n            handleResendRequest(parser, parser.messageStoreOut, message);\n        }\n    }\n    parser.messageStoreIn.setNextMsgSeqNum(parser.messageStoreIn.getNextMsgSeqNum() + 1);\n};\n", "import { Transform, type TransformCallback, type TransformOptions } from 'node:stream';\n\nexport class FrameDecoder extends Transform {\n    public data: string | undefined;\n\n    constructor(opts?: TransformOptions) {\n        super(opts);\n        this.data = '';\n    }\n\n    public override _transform(chunk: string, encoding: string, callback: TransformCallback): void {\n        void encoding;\n        const chunks: string[] = (String(this.data) + chunk).split(/(8=.+?\\x0110=\\d\\d\\d\\x01)/gs);\n        let i = 0;\n        for (i; i < chunks.length - 1; i++) {\n            this.push(chunks[i]);\n        }\n        this.data = chunks[chunks.length - 1];\n        callback();\n    }\n\n    public override destroy(error?: Error) {\n        this.data = undefined;\n        return super.destroy(error);\n    }\n}\n", "import { Field } from '../fields/Field.ts';\nimport { Field as FieldType } from '../fieldtypes/Field.ts';\nimport { Message as MessageType } from '../fieldtypes/Message.ts';\nimport type { IFIXParser } from '../IFIXParser.ts';\nimport type { Message } from '../message/Message.ts';\n\n/**\n * Handles the first message in a FIX session.\n * This function validates that the first message is a Logon message.\n * If not, it sends a Logout message and closes the connection.\n *\n * @param {IFIXParser} parser - The FIX parser instance handling the session\n * @param {Message} message - The first message received in the session\n * @returns {boolean} - Returns true if the first message is a Logon, false otherwise\n */\nexport const handleFirstMessage = (parser: IFIXParser, message: Message): boolean => {\n    if (message.getField(FieldType.MsgType)?.value === MessageType.Logon) {\n        return true;\n    }\n    const firstMessageNotALogon: Message = parser.createMessage(\n        new Field(FieldType.MsgType, MessageType.Logout),\n        new Field(FieldType.MsgSeqNum, parser.getNextTargetMsgSeqNum()),\n        new Field(\n            FieldType.SenderCompID,\n            message.getField(FieldType.SenderCompID)\n                ? message.getField(FieldType.SenderCompID)!.value!.toString()\n                : parser.sender,\n        ),\n        new Field(FieldType.SendingTime, parser.getTimestamp(new Date())),\n        new Field(\n            FieldType.TargetCompID,\n            message.getField(FieldType.TargetCompID)\n                ? message.getField(FieldType.TargetCompID)!.value!.toString()\n                : parser.target,\n        ),\n        new Field(FieldType.Text, 'First message not a Logon'),\n    );\n    parser.send(firstMessageNotALogon);\n    parser.logger.log({\n        level: 'info',\n        message: `FIXServer (${parser.protocol!.toUpperCase()}): >> sent Logout`,\n        fix: firstMessageNotALogon.encode('|'),\n    });\n    parser.stopHeartbeat();\n    parser.close();\n    return false;\n};\n", "import { isAsyncMessageStore } from 'fixparser-common';\nimport { type FIXServer, LicenseManager } from '../FIXServer.ts';\nimport { Message as MessageType } from '../fieldtypes/Message.ts';\nimport type { Message } from '../message/Message.ts';\nimport { handleFirstMessage } from './SessionFirstMessage.ts';\nimport { handleLogon } from './SessionLogon.ts';\nimport { handleLogout } from './SessionLogout.ts';\nimport { handleResendRequest, handleResendRequestAsync } from './SessionResendRequest.ts';\nimport { handleSequence } from './SessionSequence.ts';\nimport { handleSequenceReset } from './SessionSequenceReset.ts';\nimport { handleTestRequest } from './SessionTestRequest.ts';\n\n/**\n * Processes incoming messages for a FIX server session.\n * This function handles message sequence validation, logging, and routing to appropriate\n * message handlers based on the message type. It also manages heartbeat timers,\n * message sequence numbers, and validates the license.\n *\n * @param {FIXServer} parser - The FIX server instance handling the session\n * @param {Message} message - The message to process\n * @throws {Error} If the license is invalid\n */\nexport const serverProcessMessage = (parser: FIXServer, message: Message): void => {\n    if (!LicenseManager.validateLicense()) {\n        throw new Error(LicenseManager.ERROR_MESSAGE_NO_LICENSE);\n    }\n    handleSequence(parser, message);\n    parser.logger.log({\n        level: 'info',\n        message: `FIXServer (${parser.protocol?.toUpperCase()}): << received ${message.description}`,\n        fix: message.encode('|'),\n    });\n\n    parser.restartHeartbeat();\n\n    if (parser.messageCounter === 0 && !handleFirstMessage(parser, message)) {\n        parser.logger.logError({\n            message: `FIXServer (${parser.protocol.toUpperCase()}): First message not a logon!`,\n            fix: message.encode('|'),\n        });\n        return;\n    }\n    if (message.messageType === MessageType.SequenceReset) {\n        handleSequenceReset(parser, message);\n    } else if (message.messageType === MessageType.TestRequest) {\n        handleTestRequest(parser, message);\n    } else if (message.messageType === MessageType.Logon) {\n        handleLogon(parser, parser.messageStoreOut, message);\n    } else if (message.messageType === MessageType.Logout) {\n        handleLogout(parser, message);\n    } else if (message.messageType === MessageType.ResendRequest) {\n        if (isAsyncMessageStore(parser.messageStoreOut)) {\n            void handleResendRequestAsync(parser, parser.messageStoreOut, message);\n        } else {\n            handleResendRequest(parser, parser.messageStoreOut, message);\n        }\n    }\n    parser.messageStoreIn.setNextMsgSeqNum(parser.messageStoreIn.getNextMsgSeqNum() + 1);\n    parser.messageCounter++;\n};\n"],
  "mappings": "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K;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7C;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7C;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7C;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7C;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7C;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7C;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7C;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7C;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7C;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7C;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAAK;AAAA,EAC7C;AAAA,EAAK;AAAA,EAAK;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EACxC;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1C;AAAA,EAAM;AAAA,E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IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,MAAI,EAAE,CAAC;AACP,QAAM,IAAI;AACV,QAAM,IAAI;AACV,QAAM,IAAI;AACV,QAAM,IAAI;AACV,QAAM,IAAI;AACV,QAAM,IAAI;AACV,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,MAAI,EAAE,CAAC;AACP,QAAM,IAAI;AACV,QAAM,IAAI;AACV,QAAM,IAAI;AACV,QAAM,IAAI;AACV,QAAM,IAAI;AACV,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,MAAI,EAAE,CAAC;AACP,QAAM,IAAI;AACV,QAAM,IAAI;AACV,QAAM,IAAI;AACV,QAAM,IAAI;AACV,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,MAAI,EAAE,CAAC;AACP,QAAM,IAAI;AACV,QAAM,IAAI;AACV,QAAM,IAAI;AACV,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,MAAI,EAAE,CAAC;AACP,QAAM,IAAI;AACV,QAAM,IAAI;AACV,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;AACX,SAAO,IAAI;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;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;AAAA,EAAY;AAAA,EACpC;AAAA,EAAY;AAAA,EAAY;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AA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,EACxF;AACA,OAAK,CAAC,IAAI;AAAA,IACN;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,EACxF;AACA,OAAK,CAAC,IAAI;AAAA,IACN;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,EACxF;AACA,OAAK,CAAC,IAAI;AAAA,IACN;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,EACxF;AACA,OAAK,CAAC,IAAI;AAAA,IACN;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,EACxF;AACA,OAAK,CAAC,IAAI;AAAA,IACN;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,EACxF;AACA,OAAK,CAAC,IAAI;AAAA,IACN;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,EACxF;AACA,OAAK,CAAC,IAAI;AAAA,IACN;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpF;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAA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IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,EACxC;AAAA,EACA;AAAA,IACI;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,EACxC;AAAA,EACA;AAAA,IACI;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,EACxC;AAAA,EACA;AAAA,IACI;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IAC5D;AAAA,IAAY;AAAA,IAAY;AAAA,IAA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AAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AAAA,IAAY;AAAA,IACpC;AAAA,IAAY;AAAA,IAAY;AA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AA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,MACX;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,MACV;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aAAa;AAAA,IACb,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,MACX;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,MACX;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,MACX;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,MACX;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,MACX;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,MACX;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aAAa;AAAA,IACb,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,aACI;AAAA,MACR;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aAAa;AAAA,IACb,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,MACV;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,MACV;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,MACV;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,cAAc;AAAA,MAClB;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,MACV;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,MACV;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aAAa;AAAA,IACb,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,MACf;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aAAa;AAAA,IACb,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,MACV;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,MACV;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,MACV;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;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OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;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,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA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MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,cAAc;AAAA,MACV;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,MACjB;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,IACJ;AAAA,IACA,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,QACT,aACI;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AAAA,EACA;AAAA,IACI,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aACI;AAAA,IACJ,UAAU;AAAA,MACN;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI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A,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,IAAI;AAAA,QACJ,OAAO;AAA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",
  "names": ["concat", "zlib", "PerMessageDeflate", "err", "data", "PerMessageDeflate", "concat", "Receiver", "err", "isUint8Array", "PerMessageDeflate", "Sender", "byteLength", "compress", "err", "parse", "extension", "randomBytes", "createHash", "PerMessageDeflate", "Receiver", "Sender", "parse", "WebSocket", "err", "key", "WebSocket", "err", "createWebSocketStream", "parse", "protocol", "createHash", "extension", "PerMessageDeflate", "subprotocol", "WebSocket", "WebSocketServer", "index", "version", "err", "verified", "index", "max", "timeBasedRandom", "Field", "batch1", "batch2", "batch3", "batch4", "Field", "clone", "transform", "writer", "process", "nobleCurves", "bits", "str", "webCrypto", "index", "config", "gcd", "_8n", "max", "_0n", "nobleHashes", "randomBytes", "err", "_2n", "verify", "A", "ed448", "verified", "pad", "isLE", "_32n", "sbox", "sbox2", "t0", "t1", "t2", "t3", "ctr", "i", "tagLength", "legacyCiphers", "x448", "ecdh", "X", "Z", "S", "nodeCrypto", "oid", "cfb", "cbc", "ntz", "Buffer", "l", "add", "_a", "_b", "fl", "Deflate", "split", "Inflate", "Zlib", "Unzlib", "allowedPackets", "reader", "MessageType", "version", "ivLength", "version", "config", "version", "index", "err", "bits", "config", "config", "config", "err", "user", "A", "index", "err", "sessionKey", "aeadAlgorithm", "results", "hashAlgos", "err", "pad", "max", "gen", "gcd", "Fp", "Field", "S", "Z", "M", "zero", "isLE", "bitLength", "_32n", "A", "D", "G", "bits", "window", "wbits", "transform", "Fn", "_b", "err", "L", "X", "Y", "endo", "mul", "Signature", "r", "s", "verify", "uvRatio", "X2", "Y2", "Z2", "p", "adjustScalarBytes", "eddsa", "cswap", "_3n", "_11n", "_22n", "_44n", "_88n", "K", "I", "q", "i", "a", "b", "c", "d", "key", "slice", "version", "tagLength", "imports", "message", "index", "atob", "atob", "verified", "Message", "Field", "Message", "version", "pad", "Message", "Field", "pad", "index", "enums", "version", "Field", "Message", "config", "Field", "Message", "Field", "Message", "Field", "Message", "Field", "Message", "Field", "Field", "Field", "Message", "err", "WebSocket", "Message", "Field", "Field", "Message", "Message", "WebSocketServer"]
}
